今回は、IT分野でよく使われるコンポーネント指向の開発手法を、組み込み(ET:Embedded Technology)分野に展開する取り組みを紹介する。

IT分野におけるコンポーネント指向の現状

 コンポーネント指向とは、ソフトウエアを機能ごとに部品(ソフトウエアコンポーネント)として分割し、必要に応じて組み合わせて使うという考え方である。ソフトウエア開発に適用することで、開発期間を短縮して生産性を向上するとともに、より要求に適合したソフトウエアを実現するなどの効果があるとされている。

 ソフトウエアコンポーネントを端的に定義すると、以下の三つの条件を満たしているソフトウエア実装といえる。

 ・公開インタフェースを提供し、他のソフトウエアコンポーネントと連携が可能である
 ・コンテキスト(ソフトウエアの実行状況、環境)に依存せずに仕様通りに動作する
 ・独立して配布、版管理が可能である

 IT分野では、開発するソフトウエア規模の増大や、高機能化に対応するため積極的にコンポーネント指向が推進されてきた。「SQLによる永続化・検索機能を提供するDBサーバーコンポーネント」や「業務上の共通機能を部品化したビジネスロジック」がイメージしやすい例であろう。これらのソフトウエアコンポーネントは、大きく以下の二つに分類することができる(図1)。

・業務処理などビジネス領域に対する機能を部品化したドメインコンポーネント
・ドメインコンポーネントを含むアプリケーションを実行するための基本機能を部品化した基盤コンポーネント

図1●ドメインコンポーネントと基盤コンポーネントの位置付け
図1●ドメインコンポーネントと基盤コンポーネントの位置付け

 アプリケーション基盤領域は、Windows/LinuxなどのOSやJava/Rubyなどの実行環境がタスク管理、通信管理、GUI管理機能などの基本的な機能を提供している。そのため、要求機能に応じて不足している機能(DBや帳票印刷)を実現する基盤コンポーネントを追加して構成することが多い。

 ビジネス領域は、アプリケーション基盤領域の構成を前提に、実現すべき機能を分析してドメインコンポーネント化を行う。ドメインコンポーネントは実行基盤レイヤーを直接利用して構成することもあるが、一般的にはビジネス領域の処理内容をパターン化したフレームワークを適用して構成することが多い。フレームワークの例としては、EJB、ActiveX、Struts、Ruby on Railsなどがあり、用途や環境に応じて多数公開されている。

 フレームワークを前提として部品化することで、コンポーネント同士の連携が容易になる。コンポーネントのコンテキストが隠ぺいされるため、よりビジネス領域に特化した部品化を実現しているといえる。

 今ではIT分野のソフトウエア開発におけるコンポーネント指向の取り込みは定番となっている。ビジネス領域のフレームワーク化/ドメインコンポーネント化に関するドメインエンジニアリングが中心になっている状況であると言える。

 そして、比較的導入が遅れているET分野においても、ソフトウエア規模の増加や複雑化に伴って、コンポーネント指向による問題解決のニーズが高まり標準化が行われてきている。以下では、比較的小規模な組み込み機器のソフトウエア開発に適した「TECS仕様」と、自動車に搭載するソフトウエア(車載ソフトウエア)を規格化した「AUTOSAR仕様」のコンポーネント化について紹介する。