C/C++を始める前に覚えておくべき知識

沖林正紀
2007/12/24 07:00

C/C++は用途が幅広いプログラム言語で、業務システムにも組込み系にも用いられている。プログラミングを実践する前に、それぞれの開発でどのようなことに重点が置かれるのか、その違いを考えてみたい。

動作環境の制約

 業務システムの場合は、動作環境がオープンなOSやミドルウェアであれば、他の言語での経験を生かせるが、メインフレームのような独自の環境の場合は、それぞれに合わせる必要がある。システムとしては、新規の開発でない限りは他のシステムとの連携がきちんととれることが重要だろう。

 組込み系の場合は、ハードやOSが機種ごとに異なる。そもそもOSが存在せず、直接デバイスを操作したり、メモリ管理をしなくてはならないことも多い。それから、CPUやメモリ容量などのハード資源が制約となることもある。

異常時の対応

 プログラムの処理に異常が生じた時の対応も大きく異なることは想像できるだろう。

 業務システムでは、まずヘルプデスクで対応し、それで足りなければ運用担当者が再始動など当面の対策を施し、最終的には保守担当者がプログラムを修正して異常の原因を取り去ることになる。

 組込み系ではどうか。製品を出荷してしまった後にそれを修正することは、携帯電話のように通信が可能でない限り難しい。そうなると、製品を回収(リコール)するか、別の機種に変えてもらうといった方法しかない。

 それから、異常が生じたとしてもユーザーに危険が及ばないようにしておかなくてはならない。たとえば、もし自動車の走行制御プログラムにどんな異常があったとしても、突然走り出すよりは止まってくれたほうが良いはずだ。

開発サイクルの違い

 開発サイクルにも大きな違いがある。業務システムではアジャイル開発に象徴されるように、変更に素早く対応できることが望まれている。一方の組込み系では、最終的に半導体上にプログラムが書き込まれ、固定してしまうことがほとんどだ。そのため設計と出荷前のチェックが特に重要になる。

UMLやオブジェクト指向の利用状況

 これに関しては業務システムのほうが進んでいると考えられるが、組込み系でも規模が大きい場合に利用されるケースが増えている。組込み系を扱う各種媒体でUMLやオブジェクト指向を取り上げた記事をよく見かけるようになったところにも、ニーズの高まりが表れている。

 これらの習得に積極的に取り組んでいけば、どちらの分野の開発にも身につけた技術を生かせることになる。読者の健闘を祈りたい。

 次回からは、いよいよC/C++言語によるプログラミングに取り組むことにしよう。

記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
RIAやAjaxによりインターフェイスデザインの幅が広がりました。「正しいデザイン」へのアプローチを、テクノロジーとメソドロジー両方の切り口で、具体的にご紹介するリアルイベントです。
  • 2日前のトップ記事
  • 3日前
  • 4日前
  • 5日前
  • 6日前
  • 新着記事
  • 人気記事
  • 特集
  • ブログ