組み込み製品が社会の根幹を形成する今、以下のことが重要になると筆者は個人的に考えています。
ソフトウェアの生産性と品質をどのように向上させるか? この緊急課題に対し、2つのアプローチがあります。1つは、単位時間当たりに、より多くのソースコードを書き、たくさんのテスト項目を消化すること。もう1つは、ソースコードをなるべく書かず、また、テストもしないことです。
筆者が注目するのは後者で、オブジェクト指向の考え方を「機能」と「品質」の両方に適用し、「機能のブラックボックス化」「品質のブラックボックス化」を進めることです。再利用において、「機能の再利用」に注目するだけでなく、「品質の再利用」も効果が大きいことを認識してください。「品質のカプセル化」により、「いかに、多数のテストを効率よく実施するか?」から、「いかに、テストしないで済ませるか?」にパラダイムをシフトします。
ソフトウェアは工業製品なのに、実質上、JISマークはついていません。品質のレベルを定め、指定できると、ソフトウェア開発を発注する場合、要求する品質レベルを明示できますし、発注側は、「品質を上げるとコストも上がる」ことを認識できます。
品質のレベル分けの具体例を以下に示します。
上記のレベル1とレベル5では、品質制御の工数やコストは10倍の違いが出ると思われます。品質レベルを設定すると、製品全体の品質レベルや、機能単位での品質レベルを指定し、目標品質を明確に出来ます。
組み込み系ソフトウェアの応用分野が広範囲に渡るため、品質制御方式を一般化するのは困難で、非現実的です(心臓のペースメーカーの制御プログラムと、ゲームのソフトウェアでは、品質目標が大きく異なる)。デジタルカメラ制御用ソフトウェアと携帯電話機用プログラムでは、同じ組み込み系ソフトウェアであっても、「常連バグ」や、バグが出やすい状況は全く異なります。
各応用分野の「常連バグ」をデータベース化し、それを自社製品用にカスタマイズすることで、応用分野ごとの品質制御のレベルが上がると期待しています。
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.