C/C++を始める前に覚えておくべき知識
C/C++は用途が幅広いプログラム言語で、業務システムにも組込み系にも用いられている。プログラミングを実践する前に、それぞれの開発でどのようなことに重点が置かれるのか、その違いを考えてみたい。
動作環境の制約
業務システムの場合は、動作環境がオープンなOSやミドルウェアであれば、他の言語での経験を生かせるが、メインフレームのような独自の環境の場合は、それぞれに合わせる必要がある。システムとしては、新規の開発でない限りは他のシステムとの連携がきちんととれることが重要だろう。
組込み系の場合は、ハードやOSが機種ごとに異なる。そもそもOSが存在せず、直接デバイスを操作したり、メモリ管理をしなくてはならないことも多い。それから、CPUやメモリ容量などのハード資源が制約となることもある。
異常時の対応
プログラムの処理に異常が生じた時の対応も大きく異なることは想像できるだろう。
業務システムでは、まずヘルプデスクで対応し、それで足りなければ運用担当者が再始動など当面の対策を施し、最終的には保守担当者がプログラムを修正して異常の原因を取り去ることになる。
組込み系ではどうか。製品を出荷してしまった後にそれを修正することは、携帯電話のように通信が可能でない限り難しい。そうなると、製品を回収(リコール)するか、別の機種に変えてもらうといった方法しかない。
それから、異常が生じたとしてもユーザーに危険が及ばないようにしておかなくてはならない。たとえば、もし自動車の走行制御プログラムにどんな異常があったとしても、突然走り出すよりは止まってくれたほうが良いはずだ。
開発サイクルの違い
開発サイクルにも大きな違いがある。業務システムではアジャイル開発に象徴されるように、変更に素早く対応できることが望まれている。一方の組込み系では、最終的に半導体上にプログラムが書き込まれ、固定してしまうことがほとんどだ。そのため設計と出荷前のチェックが特に重要になる。
UMLやオブジェクト指向の利用状況
これに関しては業務システムのほうが進んでいると考えられるが、組込み系でも規模が大きい場合に利用されるケースが増えている。組込み系を扱う各種媒体でUMLやオブジェクト指向を取り上げた記事をよく見かけるようになったところにも、ニーズの高まりが表れている。
これらの習得に積極的に取り組んでいけば、どちらの分野の開発にも身につけた技術を生かせることになる。読者の健闘を祈りたい。
次回からは、いよいよC/C++言語によるプログラミングに取り組むことにしよう。
- 2人の推薦記事
- 0人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- 特集: C/C++のイロハ:メモリ管理からオブジェクト指向まで (15件)
- ホワイトペーパー
- 話題のタグ
ユーザーにとっては、UIがすべて
Google ChromeのCSS 3対応状況
Google Chromeのユーザーインタフェース:IE・Operaとの類似を考える
フォトレポート:Google Chromeを支えるブレーンたち、ローンチイベントで集合
Appleの「JailBreak」に対する考えを推理する
Oracle VM Templatesを活用する
iPhoneがそれでもJailBreakできる理由
Firefoxの必携アドオン10選
ITエンジニアの幸せな未来とは:ワークとライフは対立しない
Firefox 3.1のHTML 5対応を検証--Drag and drop API
フォトレポート:「iPhone」アプリで暇つぶし--CNET記者が「これで1日過ごしました」
ZDNet Japan Green IT
「シンプル」&「低コスト」な運用管理
サーバ仮想化・グリーン化の利点を最大化!
Techno Exchange
セキュリティ対策レベルテスト公開!
ログ管理ソリューション特集
Webセキュリティ特集
APC SOLUTIONS FORUM 2008をレポート
ZDNet Japan ホスティング特集