H27 技術士(情報工学)ソフトウェア工学 III-2:組込みソフトウェア


(1)組込みソフトウェアの課題
組込みソフトウェアは専用のRTOS上で動作するため、その開発環境は、MS-WindowsやLinuxなど汎用OS上の開発環境と比較し、開発ツールの整備が遅れていることがある。
しかし、開発するソフトウェアの規模は汎用OS上のソフトウェアと同じように、日々増大し、開発ツールなしでは十分な検証が行えなかったり、デバッグに時間がかかったりといった問題がある。
また、組込み装置の多くはキーボードなど入力デバイスやディスプレイなどの表示デバイスがないため、開発をスムーズに行うためにはキーボードやディスプレイを接続し実環境とは異なる構成で動作させることがあり、開発時には発生しない不具合が運用時には発生するという問題がある。

(2)組込みソフトウェアの課題の解決策
組込みソフトウェア開発のツールが整備されていないため、ハードウェアに依存しない論理的な処理については、模擬的にMS-WindowsやLinuxなど汎用OSの開発環境を使用して開発を行い、それを組込みソフトウェアに移植する開発手法が解決策になる。近年、増大している機能の多くはハードウェアに依存しない論理的な処理であることが多いので、論理的な処理を切り出して汎用OS上で開発することは納期短縮、品質向上の面で有効である。
また、ハードウェアに依存する部分については、汎用OS上で動作するシミュレータを使用する方法がある。使用するRTOSが独自な場合は難しいが、市販されているRTOSの多くは汎用OS上のシミュレータ機能があるので、この機能を使用することで実環境の動作を作り出し開発することは有効である。また、シミュレータを使うと、実機を使用したテスト環境ではなかなか発生しないタイミングで様々な事象を起こすことができるので、これまで連続動作させて確認を行うような作業を、あらゆるタイミングの事象を確認することで行え、テスト期間の短縮が行える。また、シミュレータを使用するとテストの自動化も可能になったり、再現テストが容易に行えるなどのメリットもある。

(3)組込みソフトウェアの課題の人材育成からの解決策
組込みソフトウェアの課題を人材面で解決するには、まず、装置の挙動をしっかりと把握できるような人材の育成を行うべきである。これはソフトウェアの技術だけはなく、電気的な面やメカトロ的な面も関係するため、人材としてはソフトウェアに限らず電気や機械についての知識を有する人材を育成する必要がある。また、電気系技術者、機械系技術者と動作についてコミュニケーションを行う必要があるので、文化の異なる人とのコミュニケーション力をスムーズに行える人材育成が必要になる。こういった人材は組込みシステムの開発において、ソフトウェアだけでなくシステム全体で問題を考えられるため、課題解決の能力が高く、組込みソフトウェアの開発において有効である。
また、ソフトウェア開発の分野はさまざまな開発手法が発表されたり、新しい開発ツールが出てきたりと、進歩が激しいのでこういった新しい技術に興味を持ち取り入れることのできる人材の育成も必要である。開発規模の増大、開発メンバの増加、納期の短縮化と組込みソフトウェアに求められる環境が変化していて、従来の開発手法や開発ツールでの開発には限界があるので、新しく効率的な開発ツールを適切にキャッチアップし取り入れることで、要求を可能とすることができる。


[Intermission]
長年、組込みソフトウェアの開発に携わってきたので、書きやすいテーマと思いましたが、これが予想以上に難問でした。
この問題は(2)の技術面と(3)の人材面で2種類の解決策を書かないといけないのですが、技術面と人材面に分けることのできる解決策というのが思いつきません。



戻る 一覧へ