組み込み業界でソフトウェア開発に従事する技術者は23万5000人。それに対して不足する開発者数はなんと9万9000人。しかも不足数は増加の一途 ―― 2007年に発表されたこの数字(※1)にショックを受けた業界関係者は多いはずだ。早急に開発者を増やさなければ、「日本の強み」と言われる組み込み開発の屋台骨が揺るぎかねない。とはいえ、ハードウェアが絡む組み込み開発は、IT系のソフトウェア開発に比べて難しく、ハードルが高い。

 組み込み業界の最前線でソフトウェアを開発しながら、このたび『Windows Embedded CE 6.0組み込みOS構築技法入門』を執筆したメンバーの皆さんに、組み込みソフトウェア開発の現状と課題、そして楽しさを語ってもらった。(※2)(聞き手は中西 佳世子=日経BPソフトプレス)

(※1)経済産業省「2007年版組込みソフトウェア産業実態調査報告書」より。
(※2)この座談会はメールで交換した意見をもとに編集したものです。

急速に大規模化する組み込み開発。でもメモリやレジスタを扱う基本は不変

開発歴の長い方が多いですが、最近の組み込み開発はどういう点が変わってきていると実感しますか?

松岡:急速に大規模化していることですね。デバイスもプロジェクトも。

高根 英哉 氏
高根 英哉氏。株式会社コムラッド
高根:デバイスについて言えば、以前のOSはこじんまりしていましたね。とにかくメモリの制約が厳しかったから、大きなプログラムは乗せられなかった。今ではOSだけで数Mバイトなんて当たり前で、そのうえ多機能になったので、プログラムの量も桁違いに増えました。

大場:OSが大規模になって複雑化すると同時にモジュール化も進み、全体を見渡すのが難しくなってきましたね。

岩崎:私が初めて組み込み開発をしたVシリーズ(NEC)のときは、OSなんて無かったですよ(笑)。

古賀:今やCPUは32ビットでMMU搭載が普通。パソコンと変わりません。

松井:GUIやネットワークを介した外部との連携など、デバイスに要求される機能がかなり増えた実感があります。

マヘシュ:組み込みデバイスにWindowsみたいな高級なGUIが必要になるとは、以前は思ってもいませんでした。

杉本 拓也 氏
杉本 拓也氏。株式会社富士通ソフトウェアテクノロジーズ
杉本:特にiPhone効果は絶大でしたね。どこのお客様からも「UI(ユーザーインターフェイス)はiPhoneみたいにして」と言われました(笑)。お客様の関心が、OSとして当然のパフォーマンスやリアルタイム性から、UIに向かってきています。

中山:以前は、組み込み向けのUIといえば非常に簡素なものでしたが、今はAdobe Flashや3DベースのUIまであります。メモリ的にもCPU能力的にも、それが可能になったんですね。

高根:そうやってデバイスが多機能になっていくうえに、機能をハードウェアよりソフトウェアで実現する方が量産時のコスト削減になるから、プログラムは大きくなる一方です。

マヘシュ:それでプロジェクトも大きくなって、以前は人数が一桁で数えられるチームだったのが、最近は100人単位。システム全体で数百人いるプロジェクトもあります。

江島:それなのに開発工程は圧縮される一方です。だから、昔のようにソフトウェアをスクラッチから開発する技量よりも、ソフトウェア部品や開発ツールを活用する技量がエンジニアに求められるようになった気がします。

岩崎:そういう意味では、開発環境自体が変わりましたね。開発ツールがずいぶん充実してきました。

田靡 哲也 氏
田靡 哲也氏。NEC システムテクノロジー株式会社
田靡:開発環境やツールのサポートが充実してきたのは、私も実感します。以前はソースコード中に地道にデバック文を書き込んだり、障害が発生したら大きな機材を持ち出したりツールを借りたり、とたいへんでしたが、そういう作業が減りました。ただし、バグが減ってきたわけではない…(笑)。

大場:苦労してきたことが非常に簡単に実現できるようになったのは、嬉しいことです。

伊藤:昔はたいへんでしたよ。開発環境ではソースレベルのデバッグができなかったから、インテル製のICEを使い、C言語でソースを書いて80286アセンブラでデバッグして…。つまり頭の中でCインタプリタを動かしながらデバッグしていました(笑)。

古賀:変わった点は、ソフトウェアレベルでの共通開発基盤、つまりプラットフォームが導入され、そのもとで開発するようになったことでしょう。

岩崎 平 氏
岩崎 平氏。安川情報システム株式会社
岩崎:そうですね。だけど実際作っているプログラム自体はそんなに変わりません。メモリやらI/Oやらレジスタを操作するのは、いつの時代も同じです。

伊藤:実は組み込みのベタな部分は何も変わっていないと思います。ただ昔よりも大規模でかつデバイスが高速化し、そのうえ周辺機器はデスクトップパソコンと同じように複雑で高度になってきた。これが組み込み開発者にとっては重荷になり、開発自体が非常に困難になっている気がします。これだけ大規模になってくるとエンジニアの質もバラバラで、スーパーエンジニア一人ですべてを把握することもできません。大規模になって、組み込み開発自体が大きな転機を迎えている感じがします。