2004年11月01日
「日産自動車のソフト品質改善」について事例紹介!ソフト品質に最もシビアと言われる自動車業界でのソフト品質改善への取り組みレポート
GAIO CLUB 特集
GAIO CLUB【2004/11月号】
ソフトウェア品質評価管理プロセスの実例
日産自動車とサプライヤとの協力体制とソフトレビュー
~ソフト品質保証ツールを利用した効率的なソース評価手法~
今回は、日産自動車(株)電子システム開発部(敬称略、以下同様)からのご協力を頂き、車に実装される組み込みソフトウエアの品質管理の方法を取材させて頂きました。本特集では、日産自動車のソフト品質向上への取り組みと、サプライヤとの協力体制によるソフト品質評価の手法についてご紹介致します。
※本特集は、日産自動車(株)電子システム開発部へのインタビューを元に、ガイオテクノロジーで執筆、日産自動車で監修を行ったものです。
自動車1台あたりのMPU実装数が50個を超える!?
現在の自動車は制御システムの電子化が進み、各電装パーツのほとんどにマイコンが搭載されています。車内の各ユニット間をつなぐ配線(ハーネス)を効率化する車内ネットワーク「CAN」を採用する車も多くなり、マイコンの実装数増大に拍車をかけています。
日産自動車では、2000年頃から、1台当たり50個を超えるマイコンが搭載される車種が登場し、そのソフト規模は100万行を超えました。ソフトウェアはサプライヤで開発されること、ソースコードは日産自動車へは納入されないこと、ソフト開発には多くの2次、3次のソフト協力会社が関わっていることから、日産自動車本体からは、各ユニットのソフト構造、各ユニットの相関関係など、開発されたソフトウェアの実体が見え難くなっていました。
日産自動車内で行われる車両評価試験でも、ソフトウェアに起因する不具合の割合が急激に多くなり、ソフトウェア品質を維持管理するための新たな管理体制が必要とされていました。
ソフトウェア品質を維持するための管理プロセス
日産自動車では、製品である車の品質管理の体制として、エンジン、メカ、機構などのハードウエアに対する品質評価プロセスは既に確立されていました。しかし、ハードウェアに比べると、組み込みソフトウェアに対する品質評価プロセスは遅れていました。実際に不具合が発見されても、この原因が何に起因するものかを特定することが非常に難しい状況でした。
日産自動車内のソフト管理プロセスや、多くのサプライヤが関係する開発状況を可視化するために、2001年4月に「ソフトウェア品質グループ」を発足させ、まずは、ソフトウェアの設計基準、テスト基準の策定が行われました。
サプライヤとのアセスメントとしての協力体制
日産自動車では、多数のサプライヤが開発する組み込みソフトの品質を管理していく上で、サプライヤとの協業体制を作ることを重視しています。ソフト開発を発注した立場で、サプライヤに対してクレームする、監督すると言うことでなく、「アセスメント」としての協力体制で、成果物である組み込みソフトの品質改善を図っています。
日産自動車がサプライヤへ出向き、最も効率的な方法でレビュー作業が行われています。
ソフトウェアの構造レビューを重視
ソフトのレビューでは、ソースコードそのもののトレースではなく、システムの構造を中心としたレビューが行われています。タスク図、プログラムアーキテクチャ、スケジューラなどを中心にレビューが行われ、車に実装される際の、他のシステムとの関連を考慮した評価が行われます。
その理由としては、
1. ソースコードはサプライヤにとって重要な資産であること
2. ソースコードのすべてをトレースすることは膨大な時間と工数を必要とし、現実的でないこと
3. コーディングミスはサプライヤ内部の単体テストなどで発見可能であるのに対し、ソフト構造に起因する不具合は再現が困難なため、日産自動車における車両実験では評価が困難なこと
が挙げられます。
ソフト品質保証ツールの利用
サプライヤとの協力体制の一例として、サプライヤが作成したソースコードそのものをチェックリストに従って解析するケースがあります。この場合でも両社にとって最も効率的な方法が採用されます。
日産自動車は、SQA(Software QualityAssurance)ツールを用いて自動チェックするシステムを構築しています。たとえば、MISRA-C基準に対しては「QAC」(英Programming Research社製)、モジュール間I/Fに対しては「IMAGIX-4D」(米IMAGIX社製)、ランタイムエラーに対しては「PolySpace」(米PolySpace Tech-nologies社製)を導入しています。SQAツールによる解析内容や解析結果はサプライヤに全面開示されレビューされます。
注)MISRA-C : 英MISRA(Motor IndustrySoftware Reliability Association)が策定した自動車向けのC言語コーディングガイドライン
組み込み特有のCコード評価
「PolySpace」は、NULLポインタ、境界外配列アクセス、ゼロ除算、オーバー/アンダーフローなど、動作時に想定されるエラーを、事前にソースコードから発見するツールです。しかしながら、このツールは汎用的な評価ツールであるため、ISO-Cへの厳格な対応を要求します。組み込みソフトにおいては、メモリ消費の節約や絶対番地へのアクセスなどの理由から、特有のコード記述が必須となり、これコーディングミス仕様誤理解構造的問題コーディングミス仕様誤理解構造的問題不具合発生原因には構造的問題が多いらの部分がPolySpaceでは解析できない場合があります。
PolySpaceによる解析の工程で、これらをその都度修正するのは、膨大な工数がかかるため、日産自動車では、豊富な組み込みCコンパイラ技術を持つガイオをパートナーとして選び、ガイオが開発した文法自動修正ツール「PolyCode」(日産自動車向けカスタム)を利用して、「PolySpace」によるコードチェックを自動化しています。
まとめ
自動車業界では、ソフトウエア品質に対する考え方や取り組みは、他の業界に比べて一歩先を進んでいますが、最近になって他の業界でも、ソフト品質に対する注目度は上がって来ました。
皆様の開発におかれましても、膨大なソフトの品質管理が破綻してしまう前に、早めに対策を講じてはいかがでしょうか?
■取材協力・監修
日産自動車(株)電子システム開発部ソフトウェア品質グループ
長谷川美和子氏、菊池光彦氏、大場美都氏