Softwareの種類jpg

組込みソフト:ソフト組込みアセスメントの必要性

 2020年代は5GとIoTの時代であると同時に、組込みソフト(Embedded Software)の時代にもなるだろう。
 組込みソフトとは、家電製品や産業機器に組み込まれて特定の機能を提供するためのコンピュータシステムを組込みシステム(Embedded System)と呼び、 この組込みシステム上で動作するソフトウェアのことである。
 これまでの組込みシステムは冷蔵庫や洗濯機などの家電製品の制御や自動車のエンジン制御など、機能が自己完結する単独の「装置」の制御に用いられるものがほとんどだった。
 5G 、IoTの時代には、インフラなどの大規模・複雑で重要な装置・システムの制御に「組込みソフト」による制御が用いられるようになる(注)。そのような時代には「ソフトウェアの組込みがもたらす影響のアセスメント」が不可欠になる。

注:以下、このようなシステムを「大規模組込みシステム」と仮称する。

 その理由は、社会的に重要なシステムへのソフトウェアの組込みにおいては、「組込みソフトの品質」、「組込みソフトが制御するシステム全体の品質」が社会に及ぼす影響が極めて大きくなり、一旦システムに障害が生起した場合には、その影響により大きな社会的損失を招く可能性が出てくるからである。
 具体的な社会的損失の例として、
・交通機関の乱れや各種事故の発生
・通信の途絶や、重要な情報の損失・欠落・漏洩
・ライフラインのサービス低下
などが考えられる。
 なぜ、このような懸念を抱くのか。その理由は以下のような点にある。

(1)避けられない残存バグ
ソフトウェアにはバグはつきものである。大規模ソフトウェアには残存バグは不可避である。バグが残ることを前提にシステムを構築する必要がある。この場合、どのようなバグがどのような結果を引き起こすかをアセスメントし、その対策を講じておかないと万が一の場合に大きな社会的損失を招く。場合によっては、論理的には実現可能だが、完全なソフトを開発することが不可能であるために実現できないシステムもありうる。実際に、1980年代におけるSDI(戦略防衛構想、計画だけで実現されなかった)システムなどはその例である。

(2)ソフト・ハードのトータルシステム的視点の不足
組込みソフトの専門家が、ソフト・ハードを統合したトータルシステムとしての「システム全体の品質」について検討できるスキルを持つとは限らない。システム全体の総合的な品質を確保するには、トータルシステムに求められる要件を高い立場から検討するスキルが必要であるが、実際にはそのようなスキルを身に付ける訓練を受ける機会は少ないし、そのような人材を育成する教育機関もほとんどない。問題発生時の社会的影響が大きい組込みシステムには、このようなトータルシステムとしての観点から要件に対するアセスメントを行うことが望ましい。

(3)大規模組込みシステム開発に関する社会全体としての経験不足 
大規模組込みシステムの開発の難しさは、汎用コンピュータシステムの開発とも、小型組込みシステムの開発とも性格が異なる。その開発設計にも、システムの検証にも、独特の知見が要求される。残念ながらこのような複雑・大規模な組込みソフトにより制御される装置・システムの開発は従来は限られた分野にしか存在しなかった。そのため、大規模組込みシステムの開発に関する豊富な経験を持つ人材は限られている。これはこの種のシステムの開発に必要な「失敗の経験」のない人材が開発や検証に携わることになるということを意味している。バグが顕在化した時の「最悪の事態」を事前にアセスメントし、その影響を社会的に受容可能な程度に抑える手立てが必要である。

 自動車の自律運転や飛行機の自動操縦のような分野はそのような組込みソフトの適用分野の一つの例である。一昨年から2件の事故を起こし、現在飛行停止中のボーイング737MAXMCAS (Maneuvering Characteristics Augmentation System)の失敗は、このようなアセスメントの不足から来る組込みソフトへの過信が原因の一部となっている可能性が高いのではないかと筆者は考えている。
 トヨタが裾野市に「自動運転実験都市」を作ろうとしている理由にも、大規模組込みシステムとしての自動運転技術を実用化するには、実際に自動運転車を運用できる街がないとアセスメントすら満足に出来ないことを、肌身で感じ始めていることがあるのではないだろうか。

この記事が気に入ったらサポートをしてみませんか?