モデル、テスト、コードの要求仕様のトレース
自動車、航空機器や医療機器などにおけるソフトウェアの依存度は年々高まっており、その複雑度も増加の一途を辿っています。これらの機器に組み込まれるソフトウェアに対しては高い安全性が求められますが、品質を高める施策として、仕様書とソフトウェア(コード)間のトレーサビリティを確保し、仕様からソースコードまでを追跡できるような仕組みが必要であると考えられています。ソフトウェアの開発においては、個々の成果物が相互に影響するのかどうか、独立しているのかどうかを判断できることが非常に重要であり、ソフトウェアに変更が加えられた際の影響を把握できるように、トレーサビリティを意識して開発を進めることが非常に重要となります。トレーサビリティを意識して作成された文書および成果物は上位文書との関連付けができているため、不整合や機能の不足などが減少し、結果として品質向上に繋がります。また、関連する文書の参照も容易となり、第三者によるレビューを実施しやすく、レビューの質と効率を向上させる効果も期待できます。
トレーサビリティマトリクスとは
このトレーサビリティを維持する手段として有効なのがトレーサビリティマトリクスです。トレーサビリティマトリクスでは要求仕様がどのように設計に盛り込まれ、該当するソースコードの場所や関数名などが一目でわかるように表としてまとめられます。一般的に、ソフトウェア開発において成果物はプログラミング言語で記述されたコードとなるため、仕様が定義された文書とは言語が異なるケースや、抽象度が異なるケースがあります。こういった場合、文書と成果物の管理することは困難ですが、トレーサビリティマトリクスを活用することにより、仕様書と成果物の関係が非常に解りやすくなります。
要求仕様 | システム 設計書 |
詳細 設計書 |
ソースコードの場所 | ファイル名 | コード 関数 |
行番号 | 要件ソース |
周波数 |
Fine |
位相差検出 | H:\work… | rx2_fine_afc |
a | 19 | A |
LPF | H:\work… | rx2_fine_afc |
b | 43 | B | ||
Coarse |
位相差検出 | H:\work… | rx2_coarse_afc |
c | 63 | C | |
LPF | H:\work… | rx2_coarse_afc |
d | 105 | D |
トレーサビリティマトリクスの例
トレーサビリティマトリクスにより可視化することで要求仕様からテストの仕様など関連ドキュメントまでの追跡、要求仕様から該当ソースコードまでの追跡を行うことが可能となり、要求仕様に追加変更が生じた場合でも影響範囲を容易に把握できるメリットがあります。
IEC 62304におけるトレーサビリティ管理の必要性
上述したように、ソフトウェア開発におけるトレーサビリティ管理の必要性は増しており、ソフトウェアの品質を証明するための一つの指標として用いられるようになってきました。以前は航空宇宙や鉄道などソフトウェアの複雑度が高く厳格な品質管理が求められる産業で特に重要視されてきましたが、近年では様々なソフトウェア開発において広く用いられるようになっています。医療機器におけるソフトウェアもその一つで、IEC 62304に代表されるような医療機器ソフトウェアの安全性向上を目的としたIEC国際規格においても、トレーサビリティ管理が認証取得の要件となっています。医療機器は近年ソフトウェア起因のリコールが増加傾向にあり、多くの医療機器メーカーがこの国際規格であるIEC 62304の採用にシフトしてきています。
このIEC 62304はソフトウェア開発プロセスに重点が置かれており、全ての医療機器ソフトウェアは開発ライフサイクル全体を通じて要件の管理とトレーサビリティ分析を行い、その記録が残されていることが要求されています。
Simulink環境で実現するモデルベースデザインとトレーサビリティマトリクス
トレーサビリティマトリクスの活用をはじめ、トレーサビリティを意識した開発や管理はソフトウェアの品質向上に寄与する反面、作業工数の増加を伴います。ソフトウェア自体の複雑度も増加傾向にある中で、このようなトレーサビリティに代表されるような品質維持・向上への取り組みに要する工数も増加しており、従来主流であったプログラミング言語を手書きすることによる機器の開発は限界に近づきつつあります。
自動車や航空宇宙、上述した医療機器などソフトウェアに対して高い品質と厳格な品質管理を要求する産業においては、モデルベースデザイン (MBD、モデルベース開発)による開発が主流になりつつあります。モデルベースデザインでは開発言語を用いず、エンジニアが直感的に理解しやすいブロック線図環境を中心に開発を進め、開発の早い段階でシステム全体のシミュレーションを可能にします。また、ターゲットハードウェアに実装するためのコードはモデルから自動生成する形となり、要求仕様の段階から十分検証されたモデルをベースとして、エンジニアのスキルに依存しない再現性の高いコード生成が可能です。
一方、トレーサビリティの観点でも多くの利点があり、モデルベースデザインを実現するための基本環境となるSimulink®は、要求仕様のトレーサビリティの効率的なリンク、解析、およびレポートを実行する機能を提供します。また、Requirements Toolbox™では、Simulink環境で作成されたモデルの要求仕様のトレーサビリティを達成できます。具体的には以下を行うことができます。
- 設計、テスト、および要求仕様情報を含むトレーサビリティレポートを単一のドキュメントに生成
- 要求仕様にリンクしているモデル内のオブジェクトを強調表示し、外部要求仕様へのリンクを提供
- モデル構造とリンク情報を、要求仕様管理リポジトリにエクスポート
- 自動化APIを使用してユーザーワークフローでリンクと統合を確立
さらに、IEC Certification Kitを使うことで、トレーサビリティマトリクスも自動生成することができます。
このように、モデルベースデザインを実現するSimulink環境には様々なドキュメント、マトリクスを自動生成する機能が備わっており、コード自体の自動生成も含めて開発効率と品質向上に大きく貢献します。
製品使用例および使い方
ユーザー事例
PTC インテグリティとの統合
IBM Rational DOORS との統合
医療機器開発における取り組み・事例
ソフトウェア リファレンス
参考: formal verification, Requirements Toolbox, model-based testing, Simulink Design Verifier, requirements traceability videos