V字プロセスでは左バンクにおいて次の工程を順に実施する。まずクルマとして機能で実現したいことである要件を収集する(ENG.1)。次にシステムとして必要な要件が何かを分析し(ENG.2),その要件が実現できるようにシステムアーキテクチャを設計し,各ECUに要件の配―133―2. ソフトウェア開発の効率化Right bankENG.10 ENG.9 ENG.8 ENG.6 ENG.7 Control Unit: ECU)間の車両ネットワーク通信により実現される。例としてマツダでのECU数と通信信号数の遷移を示す(Fig. 1)。機能の高度化,多様化及び制御システムの複雑化に伴い,ECUに搭載されるソフトウェアの規模は大きくなり,かつECU間のやり取りする通信量も増加している。それに伴いソフトウェア開発の負担も増大している。このような状況のため,いかにソフトウェア開発の効率を上げ,短期間に高品質なモノ造りを実現するかが重要になる。Fig. 1 Changes in the Number of Communication Signals and the Number of ECUs2.1 ソフトウェアの開発プロセス ソフトウェアをECUに搭載する開発プロセスは一般的にAutomotive SPICE® Process Assessment Model(1) (Automotive SPICE®はVerband der Automobilindustrie e.V.(VDA)の登録商標である)にて示されるV字プロセスが適用される。本稿では説明の簡単化のためシステムと各ECUで開発プロセスが分かれているVersion3.1のプロセスではなく,Version2.5のプロセスで説明する(Fig. 2)。Left bank ENG.1 ENG.2 ENG.3 ENG.4 ENG.5 Fig. 2 VType Software Development Process分を決定する(ENG.3)。更に配分された要件を分析し(ENG.4),各ECUとしての設計に落とし込む(ENG.5)。各ECU内のソフトウェアは複数の構成要素(モジュール)から成り立っており,各構成要素間の機能配分を設計する工程と,各構成要素そのものの設計はENG.5で実施する。ソフトウェアの実装は(ENG.6)で実施する。 右バンクにおいては次の工程を順に実施する。まず,実装に対するソフトウェアの動作検証を行う(ENG.7)。その次にECUが要件を満たしているかソフトウェアの妥当性確認(ENG.8)を実施する。次にシステムの動作検証(ENG.9)を行い,最後にシステムが要件を満たしているかの妥当性確認(ENG.10)を実施する。 「動作検証」は設計(仕様)のとおりシステム及びソフトウェアが動作するか検証するという意味である。また,「妥当性確認」とはシステム及びソフトウェアが要件(要求)を満足するか確認することを意味している。 これらの各工程はFig. 2に示すように,それぞれ各層ごとに対構造になっている。つまり,各左バンクの工程での要件(要求)及び設計(仕様)を対になる右バンクの妥当性確認及び動作検証時にて確認,検証するプロセスとなっている。2.2 マツダでの開発効率向上の考え方 左バンクの時点で早期に誤りを発見できた場合,右バンクにおいてシステム検証やシステムの妥当性確認にて誤りを発見した場合に比べて,改修にかかる時間を抑えることができる。Kelly, John C.らによる論文「An Analysis of Defect Densities Found During Software Inspection」(2)では,左バンクで発見した誤りを修正する時間を1とした場合,右バンクで発見した誤りを修正する時間は10~34倍だと報告されている。 そこでマツダは左バンクでの仕様策定に注力し,ENG.4のインプットとなるサプライヤーへの提示仕様の精度を向上する。それにより,右バンクのENG.8の段階でサプライヤーより成果物として受け入れるECUのソフトウェアおける提示仕様の誤りを撲滅することで,サプライヤー工程での実装不備による誤りの検証に集中できる状況を創り出す。この考え方を通じて,V字プロセス全体で問題が流出しないことを保証できる無駄のない開発プロセスの構築を目標とした。 左バンクで行う要件収集(ENG.1),要件分析(ENG.2/ENG.4),仕様設計(ENG.3/ENG.5)は,右バンクの動作検証(ENG.7/ENG.9),妥当性確認(ENG.8/ENG.10)を実施することで仕様の正しさが初めて分かる。つまり,左バンクの精度を上げるためには右バンク相当の動作検証,妥当性確認を何らかの形で早期に実施する必要がある。そこで実現したい機能について要求のとおりに動作するシミュレーターを左バンク時点にて作成する。実際に動くシステムで相互理解を行い,人によ
元のページ ../index.html#142