組込み業界は、より複雑なソフトウェアをかつてないペースで提供するという課題に直面しています。この課題によってソフトウェアエラーのリスクが増大し、そのことが製品の品質に影響を与え、セキュリティの問題を引き起こすことが懸念されています。

このことはRISC-Vコードベースでは、より現実的な問題となっています。多くの場合、同じ結果が得られるという想定の下に、ソースコードを再利用したり他のアーキテクチャから移植したりしますが、開発者のほとんどは、そのアーキテクチャで、新しい命令セットや一部の拡張機能を使って作業に着手するのにとどまります。

RISC-Vコードベースの管理について検討する場合、実際、2つの側面があります。1つめは将来のプロジェクトでのコードベースを再利用することで、2つめは品質の低いコードが蔓延している事実です。低品質のコーディング方法がそのまま脆弱性につながるという主張を裏付ける証拠は多数存在します。このことから、将来にわたってソフトウェアを継続して使えるように、開発者や企業がコード品質を改善する必要があることは明らかです。つまり、ソフトウェアの欠陥をなくすか、可能な限り欠陥のない状態に近づける必要があります。

コードの再利用

図1に示すベーム(Boehm)のCOCOMO[1]法では、再利用ソフトウェアにどれだけの変更を加えるかによって、コード記述の相対コストがいかに大きな影響を受けるかを予測しています。

x軸は再利用するコードに加える変更の割合で、y軸は新規にコードを記述した場合をパーセントで表しています。留意すべきは、コードの3つのデータサンプルのうち2つのサンプルでは、再利用コードをほとんど変更する必要がなかった状態から、コードをまったく新規に書き直した場合の50%まで、作業が急増していることです。ここで重要な点は、実際にコードを再利用する必要があるのであれば、コスト効果を高めるには、そのコードが高い品質を持ち、良好に設計されていなくてならないということです。

  • ベームのCOCOM非線形再利用効果法

    図1 - ベームのCOCOM非線形再利用効果法

コード品質を重視する

コード品質が大きな問題となる理由は複数あります。1つは、所属する開発組織の成熟度により、持てる時間の最大80%がデバッグに費やされる可能性があることです。

正式なビルドの前に欠陥を迅速に特定できていれば、欠陥が組込まれてしまう可能性は低くなります。このことは、開発者が組織の品質基準を満たすために費やす時間を大幅に短縮できることを意味します。さらに、そのコードに残留するバグが全体として少なくなり、結果的に良好な再利用候補となることを意味します。そのようなコードは再利用した場合、それまで未発見のバグが新たに発見される可能性が低くなるからです。高品質のコードは欠陥が少ないので維持管理が容易で、良好なソフトウェア・エンジニアリングの原則に従っていれば、拡張も容易です。したがって、そのようなコードを再利用すれば、その後のプロジェクトを極めて迅速に進めることができます。また、必要に応じて、アプリケーションの安全認証を取得することも簡単に行えます。結局、コード品質が高ければ、再利用にあたって「技術的負債」が小さくなります。