特集
» 2017年12月27日 11時00分 公開

「AI/IoT時代のソフトウェア開発」講演レポート:機械学習システムは「高金利クレジット」、ソフトの品質保証は難しいが可能性も (3/4)

[朴尚洙,MONOist]

組み込み業界は今後どう変わっていくべきなのか

 MONOist Quality Trackでは、PFNの丸山氏の他、連載「山浦恒央の“くみこみ”な話」100回突破を記念して筆者である東海大学 大学院 組込み技術研究科 非常勤講師の山浦恒央氏による講演も行われた。また、日本シノプシス、SHIFT SECURITYも講演を行っている。

山浦恒央氏 山浦恒央氏

 山浦氏の講演テーマは「組み込みソフトウェアで変わったこと、変わらないこと」。MONOist10周年に合わせて寄稿した記事「組み込みソフトがこの10年で変わったこと、変わらないこと」の内容に沿って、組み込みソフトウェアに携わる技術者を巡る周辺環境の変化と、今も変わらない課題、そして「今後、どう変わるべきか」について語った。

 「今後、どう変わるべきか」に向けた提案としては「ソフトウェア開発のパラダイムシフト」と「品質のレベル分け」の2つを挙げた。

 「ソフトウェア開発のパラダイムシフト」では、「いかに、ソフトウェアを早く大量に作るか」「いかに、効率よくテスト項目を設計し、実施するか」という現在のソフトウェア開発の基本思想を、「いかに、作らないで済ますか」「いかに、テストしないで済ますか」に変えるべきとした。

 そこで重要になるのは常に期待されてきた「ソフトウェアの再利用」だが、元のソフトウェアの内容を理解しないと改造箇所が分からない、という最大の課題が存在する。もちろん理解しやすいソフトウェアを作ることで対処できるが、さらに山浦氏は「元のソフトウェアの内容を理解せずにそのまま使う」という選択肢を示す。

 「作らない」「テストしない」「理解しない」の「3ないソフトウェア」の鍵になるのが「オブジェクト志向」だ。オブジェクト志向ではカプセル化を推進することになるが、これまでも言われてきた「機能のカプセル化」に加えて、「品質のカプセル化」も必要になるとする。

 山浦氏が「機能のカプセル化」と「品質のカプセル化」を実現している事例として挙げるのが、自動販売機と図書館だ。自動販売機は、電源プラグをつなげれば、日本全国どこでも、同じ機能、同じ品質で動作する。また図書館は、利用者から見れば、図書館員に書名を言えばその本が出てくる自動販売機のようなものだという。

 ソフトウェアの「機能のカプセル化」と「品質のカプセル化」に向けて「従来はソフトウェア=ソースコードだったが、今後はソースコードに加えて、仕様書、テスト項目と実行結果も付けることを意識付けすべきではないか」(山浦氏)とした。

 「品質のレベル分け」は、投資における債権の格付けのように、ソフトウェアの品質も格付けすることだ。山浦氏は「発注側が希望する品質レベルを明示できるし、開発側も作り込む品質を明示して、開発コストに説得力を持たせられる。例えば、NASAでは1人当たり1カ月で100行のコードを作ると聞いているが、このソフトウェアであれば投資の格付けにおけるAAAクラスと言ってもいいかもしれない」と説明する。

 具体例としては、プロセス成熟度を示すCMMIと同様にレベル1〜5に分ける提案を行った。

  • レベル1:レベル2〜5に該当しない(=正常ケースも動作しない場合がある)。C0網羅、C1網羅とも計測せず
  • レベル2:正常系は全て、異常系は代表的なケースでのみ正しく動作する。C0網羅80%、C1網羅は計測せず
  • レベル3:正常系、異常系は全て、組み合わせ系は代表的なケースでのみ正しく動作する。C0網羅80%、C1網羅50%以上
  • レベル4:正常系、異常系、組み合わせ系が全て正しく動作する。C0網羅100%、C1網羅80%以上
  • レベル5:過負荷テスト、最小構成テスト、長時間耐久テストなどを全て実施。C0網羅、C1網羅とも100%

Copyright © ITmedia, Inc. All Rights Reserved.