静的解析ツール活用は顧客満足のため――カーナビ開発で活躍するCoverity Static Analysisコベリティ静的解析ツール活用事例〜三菱電機三田製作所

高性能・多品種化する近年の電子機器ではソースコードが肥大化しており、短時間で不具合を検出する静的解析ツールの重要性はますます高まっている。しかし、せっかくの静的解析ツールもバグの検出精度が低ければ、最終的には人手を煩わしたりと結局余計な時間がかかってしまう。高性能化が進むカーナビの開発で、検出精度の高さに定評があるコベリティの静的解析ツール「Coverity Static Analysis」を導入した三菱電機三田製作所の事例を紹介する。

» 2011年11月16日 10時00分 公開
[PR/MONOist]
PR

 組み込みソフトウェアの開発効率を高める手段として注目度が高まっている静的解析ツール。電子機器自体の高性能化に加え、市場規模や機種数の拡大といった環境変化に伴い、短時間で不具合を検出する静的解析ツールの重要性はますます高まっている。現在利用できる静的解析ツールの中でも、最も検出精度が高いといわれているコベリティの「Coverity Static Analysis」を、約1年前に導入した三菱電機三田製作所(兵庫県三田市)の事例を紹介する。

 三菱電機三田製作所は、カーナビゲーションシステム(カーナビ)やカーオーディオをはじめとする自動車用の電子情報機器を担当する事業所。特にカーナビでは、現在一般的になっている「GPS測位データ+マップマッチング技術」で自車位置を地図画面上に表示するタイプを世界で初めて商品化し、1984年にマツダ ユーノスコスモに納入したカーナビ先駆者だ。カー用品量販店で販売する市販カーナビのほか、国内外の大手自動車メーカーに直接納入するライン装着品も手掛けている。

 カーナビ市場は、カーナビの純正搭載比率が高まるに従い、その市場規模も拡大している。カーナビ開発の課題について、三菱電機三田製作所 カーマルチメディア技術第一部管理グループ専任の田中一郎氏は「いまやカーナビはインターネットにもつながり、渋滞情報や周辺駐車場情報、さらにはETC情報なども扱うクルマの情報端末であり、当初の『電子地図上への自車位置表示、経路誘導』タイプに比べて桁違いにソフトウェアの規模は大きくなっている。加えて、カーナビを純正採用する車種・グレードが増えたため開発機種数も増加しており、ソフト開発量は急増している」と明かす。

photo 三菱電機三田製作所 カーマルチメディア技術第一部管理グループ専任の田中一郎氏

 しかも自動車業界は、採用する部品や電子機器の“品質(信頼性)と納期”に対して非常に厳しい。「不具合のあるカーナビを搭載した車が市場に出てしまえば、世界中を駆けずり回って回収せねばならず、自動車メーカーからの信頼も失う。そうかといって、納期も短くなっており、各工程で念入りに検証する時間の確保が難しくなることが見え始めていた」(田中氏)と二律背反の苦しさをにじませる。

 そこで、ソフト品質の向上と開発スピードの向上の両立を図るため、三田製作所では早くから静的解析ツールの導入を進めていたという。ところが「最初に導入した静的解析ツールは検出する障害件数が非常に多く、それらのうちのどこに着目すればいいのか、どのように対処すればいいのか判断するのが困難で、結局は当社のソフトウェアエンジニアが1カ月がかりで検証する、という状態だった」と、開発現場の責任者であるカーマルティメディア技術第一部ソフトウェア設計第一課専任の辻堂仁規氏は語る。「一方で、DRに時間を掛けても検出しきれない不具合もあり、人手のコードレビューには限界があると痛感した」(辻堂氏)という。こうした状態が続くことで、エンジニアからは「静的解析ツールなど使っていられない」という感情が生まれ、プログラムを書いたらその都度静的解析ツールをかけて検証する、ということに現場からのクレームも大きくなっていた。

 この状況を打開するため、検出精度の高さに定評があるコベリティのCoverity Static Analysisの導入を決断。「導入へのネックはコストだったが、検出精度が非常に高いこと、そして他のツールには無い管理機能を持っているので導入を決めた。成果がしっかり出ているので、『結果的にはコストは安かった』と今は思っている」(田中氏)という。

 また「導入の狙いは時間短縮。近年のソフトウェア開発ではテストにかける時間が飛躍的に増えており、これを短縮することが開発全体の時間短縮につながると考えた。なるべく上流で問題を見つけて対処することで全体の開発負荷を軽減する、というフロントローディングの考え方にも沿うものだ」(田中氏)とも考察している。

 開発現場からは「ビューアが非常によくできていると思う。従来の静的解析ツールだと、問題の箇所が指摘されるだけであり、理由を考える必要があったが、Coverity Static Analysisは理由や関連するところも紐付きで出てくるので大変便利だ」(辻堂氏)という声が上がっている。

photo Coverity Static Analysisの画面

 また、エキスパートほど好んで使う傾向があるという。「優秀なエンジニアにとっては、Coverity Static Analysisは“痒いところに手が届くツール”と言える。初心者も1年経って良さが分かり始めてきている。今後はどんどん定着してくるはず。またCoverity Static Analysisの正確な解析結果を通し、エンジニアがメモリーリークなどといった深刻な不具合を入れない設計を身に着けつつあると期待している」(田中氏)とする。

 導入効果について辻堂氏は「ソースコードが肥大化していることは確実なのに、品質レベルを保持できているので、効果があったことは明らか。使っていなかったらどうなっていたか」と絶賛。また「以前の静的解析ツールで検出した不具合の8〜9割は誤検出だったが、Coverity Static Analysisは検出結果の精度が高い。これにより計画も立てやすくなった」という。

 管理面でのメリットとして重視しているのがインテグリティ・マネージャーの不具合管理機能。「部位別にどれくらいの不具合を見つけていて、どのように推移しているかを比較できるので、開発プロセスや仕事のやり方にフィードバックできる。この1年強でデータを蓄積できたので、今後の開発に生かしていきたい。また、他の静的解析ツールは検出しっぱなしだが、Coverity Static Analysisは経緯も残るので、管理機能が非常に有効」(田中氏)と評価している。

 さらに「先ほど触れたフロントローディングの観点では、全ソフトウェア開発の工程の中で検出された不具合の何割をコーディング完了時までに直しているかという数値を以前から算出しているが、Coverity Static Analysisを導入して確実に向上した。少なくとも5〜10%は上がっている。上流でこれだけ向上しているので、全体への貢献度は大きいと思う」(田中氏)と考察している。

 このほか田中氏は(1)階層深く追いかけてくれるので調べやすい(2)サマリーが出るので、マネージャークラスは余計な文章を作る手間が省ける(3)関西にも拠点があってサポートしてもらえる、などの点をメリットとして挙げる。

 「静的解析ツールを活用する最終的な目的は、顧客満足の向上。人手ではできない品質・納期の確保を静的解析ツールが担うことで、本来人でなければできないことに時間を割けるようになった」と田中氏はCoverity Static Analysis導入によるプラスαのメリットも強調している。

 ハイブリッド車やEV(電気自動車)の時代になると、自動車の情報中枢としてのカーナビの役割はますます高まる。高性能化によってソースコードもさらに肥大化する一方で、情報中枢を担うカーナビへはこれまで以上の信頼性が要求される。今後、このような高付加価値製品の設計開発に、静的解析ツールを活用するシーンはますます増えていくだろう。


Coverity Static Analysis 無料トライアル受け付け中

下記の応募フォームから無料トライアルにお申し込みいただけます。

お預かりする個人情報の利用者と利用目的については、以下のプライバシーポリシーをご確認ください。

Coverity, Inc

アイティメディア株式会社

当フォームの応募申込期間は、2011年12月15日までです。


アンケート・連絡先のご記入記入内容のご確認お申し込み受付完了

Copyright © ITmedia, Inc. All Rights Reserved.


提供:コベリティ 日本支社
アイティメディア営業企画/制作:@IT MONOist 編集部/掲載内容有効期限:2011年12月15日