解析ツールを「育成ツール」の視点で、JVCケンウッドの組み込み設計改革(1/2 ページ)
組み込みソフトはチームでの開発が主となっているが、その際に問題となるのが、メンバー間のスキル差だ。「静的解析ツールが開発チームを活性化する」そう紹介するJVCケンウッドの阿部博己氏が語る、組み込み設計改革とは。
「静的解析ツールの導入が、組み込みソフトの開発チームを活性化する」
一見すると相関性の薄そうな両者の結び付きを成果として紹介したのが、JVCケンウッドで業務用の放送機器や音響機器、非常放送システムを開発するプロオーディオ技術部に所属する阿部博己氏だ。
テクマトリックスが2016年2月10日に開催した組み込みソフトウェアの品質管理に関するセミナー、『開発現場の意識が変わる!品質向上を実感する「仕組み」作りとは?事例に学ぶ成功するテスト運用術と実践的品質管理』では、JVCケンウッドの阿部博己氏(業務用システム事業統括部 プロオーディオ事業部 ソフトグループ)が「品質向上に結果を出す静的解析のチーム運用術」と題して、静的解析ツール導入による組み込みソフトウェアの開発チーム活性化について語った。
フロントローディング手法に感じた限界
動作ミスの許されない放送用機器などのソフトウェア開発を行う阿部氏のチームではこれまで、ソフトウェア開発に前倒し(フロントローディング)の手法を導入することで、さまざまな事象に対応していた。この導入によって仕様に関する問題は解決できていたが、バグ検出など実装面の問題は解決しきれなかった。
この実装面の問題解決のため阿部氏は静的解析ツールの導入を検討し、ファイルをまたいだバグ検出が行えるなど、検出能力が高いテクマトリックス「C++test」の選択に至った。バグの網羅的検出を目的とすればツール導入は即効性があり、その効果は高いといえるが、ソフトウェア開発は、ツール導入だけで全ての問題が解決するほど甘いものではない。
そこで阿部氏がたどり着いた答えは「人的問題」だった。ソフトウェア開発現場の多分にもれず阿部氏のチームもメンバーのスキルにバラツキがあり、全体としてのスキルレベルアップが諸問題の解決に欠かせない状況にあった。
また、チーム内にスキル差があればどうしても個人レベルの解決に依存することになりがちであり、「チームとしての機能」も十分とは言いにくい状態にあった。つまり、ツール導入によって、「メンバーの育成」と「開発チームの活性化」という2つの人的問題が浮き彫りにされたのだ。
静的解析ツールを教育ツールに
スキルレベルアップを図るための教育と言っても、その方法はさまざまだ。代表的なものは研修やセミナー受講といったOffJTと実務を通じてのOJTで、教育の成果を業務に直結させるという視点で見るとOJTが効果的だ。しかし、OJTでは体系だった教育が難しく、また、指導者が指導のプロではないため、トレーニングにおいても個人のスキルに依存するという問題が内包される。
C++test導入を導入したことでさらなる問題に直面してしまった阿部氏だが、次の問題解決もヒントはC++testにあった。C++testの解析結果をコードレビューに導入したのだ。C++testの解析結果は問題点の見やすさや分かりやすさに秀でており、コードレビューに導入することで、レビューポイントの明確化がなされ、結果としてコードレビューに十分な時間をかけることが可能となり、それがチームメンバーの教育に大きな効果を発揮したのだという。
「“ツールを使ってレビュー時間を短縮”というのは高レベルなメンバーがそろっている場合のみ有効な手段で、教育しながらの開発をしなくてはならない場合、レビュー時間を長くとることが重要になる。コードレビューを間違い発見の場ではなく、教育の場とすることが大切」(阿部氏)
関連記事
- テクマトリックスがISO26262対応ツールを発売、価格は75万円から
テクマトリックスが販売するツール「Parasoft Concerto」は、ISO 26262をはじめとする機能安全規格に準拠したソフトウェアを開発するのに必要なトレーサビリティを確保するための機能を有している。価格は、10人規模のソフトウェア開発プロジェクトで利用できるパッケージで75万円からとなっている。 - テクマトリックス、テストツールの新版同時リリース「C++test 9.4」「dotTEST 9.4」
テクマトリックスは、米Parasoft Corporationが開発したC/C++対応テストツール「Parasoft C++test 9.4(C++test 9.4)」と、.NET対応テストツール「Parasoft dotTEST 9.4(dotTEST 9.4)」の日本語版の販売を開始した。 - 本当に役立つ静的解析ツールは?その判断基準と事例
静的解析ツールは、ソフトウエア・プログラムを実行することなく、そのソースコードをチェックして、不具合を開発者に知らせるものだ。 中には、プログラムの欠陥数を減らすためだけでなく、セキュリティ脆弱性の検出にも利用できるものもある。解析の正確さ、使用中の開発ツールとの統合と連携が可能かどうか、検出した欠陥が影響する範囲まで分析できるかどうかが重要である。
Copyright © ITmedia, Inc. All Rights Reserved.