V字モデルについてご存知でしょうか。主にソフトウェアの開発やテストにおいて用いられる一般的な手法として知られていますが、近年自動車に搭載されるソフトウェアが増加しており、自動車開発の際ソフトウェアの開発プロセスの一つであるV字モデルの採用が加速しています。今回は、ソフトウェアプロセスの一つである「V字モデル」についてご紹介します。
ソフトウェアプロセスとは?
ソフトウェアがますます複雑になり、 開発期間や工数がかかり費用も増加する反面、ソフトウェアの品質における信頼性が低下するという状態を「ソフトウェア危機」と呼びます。「ソフトウェア危機」という言葉は、NATO(北大西洋条約機構)科学委員会主催の「NATOソフトウェアエンジニアリング・カンファレンス」で、ミュンヘン工科大学教授のフリードリッヒ・L・バウアー(Friedrich Ludwig Bauer)によって初めて使われたもので、このソフトウェア危機を克服するために、登場下概念が「ソフトウェアプロセス」です。
ソフトウェアプロセスとは、ソフトウェアの欠陥が原因で発生しうる事故を減らし、ソフトウェアの危機を回避を実現できるソフトウェアエンジニアリング手法の一つです。ソフトウェアシステムの開発に必要な活動や関連情報を段階別に分けて、ソフトウェアの開発、配布、運用のそれぞれのプロセスで実施すべき活動を定義したもので、ソフトウェアプロセスに沿って開発することになれば、修正や再開発の可能性が減ることになることから、ソフトウェアの開発時によく採用されています。
(ソフトウェアプロセス: https://www.itmedia.co.jp/im/articles/1109/09/news135.html)
V字モデルとは?
(出典:V字モデル、ウィキペディア)
V字モデルとは、システム開発の開始から終了までのプロセスのことで、ウォーターフォールモデル(要求定義‐ソフトウェア設計‐ソフトウェア実装‐テスト‐メンテナンス)の進化版ともいわれ、アルファベットV字のように見えることからV字モデルといわれます。
V字モデルの左側は「開発工程」で、V字の下の方へ工程が進み、ソースコードの作成まで済んだら開発工程は終了になります。その後、V字の右側であるテスト工程に移動していきます。V字モデルでは、ソフトウェア開発の各段階において、その上位の成果物や情報を文書化しながらプロセスを進めていきます。
(出典:ASPICE公式HP)
自動車エンジニアリング分野で広く採用される開発プロセス評価モデルである「A-SPICE」は、 典型的なV字開発モデルに基づいています。要求定義(左側)と受け入れテスト(右側)、基本設計(左側)と結合テスト(右側)、詳細設計(左側)と単体テスト(右側)がそれぞれ対応します。つまり開発工程に対応しテスト工程が決められており、実施するテストの内容が明確になります。要求定義の内容を受け入れテストで、基本設計の内容を結合テストで、詳細設計の内容を単体テストでそれぞれ確認でき、各テストで開発工程で実施した内容が正しく実装できているかを検証することができます。その上、V字モデルは、ソフトウェアの開発初期の段階からテスト計画が同時に作成されるため、迅速にプロセスを経ることができ、順次開発成果物を検証・確認することでエラーを減らし、ソフトウェアの品質向上にもつながります。
(出展: https://www.autocrypt.jp/sdv/)
WP29の参照先となるISO/SAE 21434では、OEMやサプライヤー向けに製品開発サイクルでV字モデルを適用させる形で高度のセキュリティを実装し、持続的なサイバーセキュリティを実現することを要求しています。アウトクリプトは、車載ソフトウェアの品質向上を実現するために、このV字モデルに基づいてCSMSコンサルティングを行っております。ソフトウェアプロセスの各段階に必要とされる製品やソリューション、テストなどを提供し、車両型式認証に求められるコンプライアンス遵守をサポートします。
アウトクリプトが提供するCSMSコンサルティングの詳細は、こちらのページからご覧いただけます。
https://www.autocrypt.jp/sdv/