II-24-1. 組み込みシステムの開発技術

組み込みシステムの開発について、システム全体の開発工程やハードウェア、ソフトウェア開発の考え方、開発ライフサイクルや開発プロセスの概要、管理方法など、システム開発の基本的な考え方や主要な開発技法、特徴や留意点を解説する。

【学習の要点】

* 組み込みシステムの開発は多様で複雑である。

* 必要な機能と要素技術を決定する工程がシステムエンジニアリングプロセスである。

* システムエンジニアリングプロセスは大きく分けて、システム要求分析とシステムアーキテクチャ設計に分けられる。

* システム要求分析では、システム全体の機能仕様と制約を分析し、定義する。

* システムアーキテクチャ設計はシステム要求分析の後に行われ、システム全体のアーキテクチャを決定する。

* システムエンジニアリングプロセスにより、ハードウェア・ソフトウェアの機能実装についての仕様が明らかになるので、ハードウェア設計とソフトウェア設計に移行することができる。

 

図II-24-1. 組み込みシステムの開発技術

 

【解説】

1) 組み込みシステムの開発

* 組み込みシステムの開発と一口でいってもその内容は多様性に富んでいる。例えばリアルタイムOSについても100種類を超える選択肢があり、実装に必要な要素技術についてもソフトウェア、ハードウェア共にあまりに多様である。従って組み込みシステムの開発については、仕様と要件に対してどのような要素技術が必要であるかを判断することが必要になる。

* 例えば携帯電話の開発について言えば、通話に必要なベースバンド処理、音声の符号・復号処理、音楽再生処理、カメラ撮影・画像処理等の多様な機能を実現することが必要でそのための個々の要素技術をどう利用するかという判断が必要である。

* 組み込みシステムの開発において、ハードウェアに必要な技術・ソフトウェアに必要な技術を判断していく工程をシステムエンジニアリングプロセスという。システムエンジニアリングプロセスは大きく分けて、システム要求分析とシステムアーキテクチャ設計に分けることができる。

2) システム要求分析

* システム要求分析とはシステムエンジニアリングプロセスの最初の工程にあたるものである。ここではシステム全体の機能仕様と制約を定義し分析する。

* 具体的にはシステムにどのような機能が要求されているか、システムに対する制約条件(コスト、処理時間、物理的サイズ、バッテリー等の外部要件)を明らかにし、必要な機能を確定することが必要である。

* システム要求分析で行われるのは具体的には次のような決定である。

- 必要なシステムはどのモジュールに分けることができるか。

- 具体的な機能としては何を実現するか。

- 機能の処理時間はどの程度か。

- ネットワーク機能やその他の別システムとの相互作用はあるかどうか。

- 耐久性や信頼性はどの程度か。

* これらの作業に必要な人材リソースやハードウェア・ソフトウェアに関する要素技術の洗い出しを行うこともある。

3) システムアーキテクチャ設計

* システムアーキテクチャ設計は、システム要求分析の後に行われる工程で、システム全体のアーキテクチャを決定することを目的とする。

* システムアーキテクチャ設計で具体的に行われるものは次のような決定である。

- システム全体を一つのマシンで行うか、それとも分散化するか。

- システムのどの部分をハードウェアで実現し、どの部分をソフトウェアで実現するか。

- プロセッサとして汎用LSIを用いるか、それともSoC(System on a Chip)やSiP(System in Package)と呼ばれる専用LSIを用いるか。

- 機能ごとに商用チップを利用するか、それとも独自開発をするか。

- OSを利用するかどうか。OSとして何を利用するか。

- ソフトウェアとしてどのような言語を用いるか。

* システムアーキテクチャ設計が終了すれば、次はハードウェア・ソフトウェア設計に移行する。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。