組込みソフトウェアの開発と設計
組込みソフトウェアの開発と設計では、CPU性能やメモリ容量、消費電力といった制約のもとで、再利用性、ネットワーク化、セキュリティを両立させる設計が求められる。組込みシステムは機能の拡大と大規模化が進んでおり、アーキテクチャの設計、開発環境の選択、コーディング規約の適用を一体として考える必要がある。
再利用性を考慮したアーキテクチャ
新規開発では、ハードウェアやソフトウェアの構成部品の追加、削除、変更を想定してアーキテクチャを設計する。こうしておくと、改変があった場合でも一部分の変更で対応でき、再利用による開発工数の削減につながる。
しかし、改変で想定外の変更があった場合や、改変の繰返しで構造が複雑化した場合には、アーキテクチャそのものを見直す必要がある。さらに、元のシステムと改変で増えたバリエーションや再利用できる部品を管理することも欠かせない。管理が適切であれば、不具合が見つかったときに関連箇所を容易に抽出できる。
制約と自動化の範囲の判断
自動化を検討する際には、まずシステムの特徴と制約を把握する。使用環境、有人か無人か、無停止稼働、遠隔操作の有無といった特徴と、メモリ容量や演算速度といった制約が、設計できる範囲を決める。
次に、自動化の目的を明確にして目標を設定し、どの範囲を自動化するか、どの機能を機器と人とで分担するかを決める。例えば、ドローンでは姿勢制御を自動化し、人は操縦に集中するという分担が考えられる。
制約への対応としては、性能向上だけでなく機能分担の変更も選択肢になる。バッテリ駆動の機器では消費電力を抑える必要があり、モバイル機器では重量や形状、振動から周辺機器が制約される。データ処理をハードウェア化してCPUの負担を増やさずに処理能力を上げる工夫や、外部機器との処理負荷分担の変更が有効な場合がある。
ネットワーク化、デバッグ、セキュリティの実務
ネットワーク化された組込みシステムでは、機能をサーバと各端末機器にどう割り当てるかが重要になる。負荷の高い処理はサーバ側で実行し、端末では収集したデータをいったん格納して間欠的に送ることで、通信負荷を軽減できる。
この節の続き
- 開発環境と開発手法の区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む