第 2 章 関連研究と課題の提起
2.2 差分開発の現状調査
2.2 差分開発の現状調査
経済産業省,並びに情報処理推進機構が発行する組込みソフトウェア産業実 態調査報告書[1]には組込みソフトウェアの開発に関する様々な調査が報告さ れている.しかしながら差分開発に関する詳細な調査報告は存在しないことか らその詳細な実態が把握できない.そこで差分開発を適用している組込みシス テム開発の実態を調査した.本調査は2005年から2012年にかけて筆者がプロ ジェクトマネージャを担当したプロジェクト,もしくはメンバーとして関わっ たプロジェクト,もしくは調査活動を行ったプロジェクトからの抽出である.
表2.1 組込みシステム開発の実態調査の対象
領域 企業数 プロジェクト チーム数
ソフトウェア 開発チーム数
ハードウェア 開発チーム数
MFP関連 3 7 2 5
ネットワーク関連 1 1 0 1
自動車関連 1 10 10 0
工場設備関連 1 2 1 1
計 6 20 13 7
調査の対象
調査の対象とした企業の数は6社である(表2.1).それらの企業は,マルチ・
ファンクション・プリンター(MFP:Multi Function Peripheral/Printer,複 合機)の企業が3社,ネットワーク関連機器の企業が1社,自動車関連企業が 1社,工場設備の企業が1社である.調査の対象とした開発チームもしくはプ ロジェクトチームの数は20チームである.MFP の開発チームが 7 チーム,
ネットワーク関連機器の開発チームが1チーム,自動車関連の開発チームが1 0チーム,工場設備の開発チームが2チームである.それらのチームはソフト
2.2. 差分開発の現状調査 第 2. 関連研究と課題の提起
!"#
$%&'#
()*+,-.#
/0#
12/0#
34+5#
67#
89+4:#
;<=:+4:#
67>?@#
AB)CD=,#
図2.1 開発フロー V-モデル
ウェア開発チームが13チーム,ハードウェア開発チームが7チームに大別で きる.ハードウェア開発チームはASIC開発,SoC開発,サブシステム開発の チームで構成される.差分開発の現状調査の前提として,図2.1のV-モデルに よって開発アクティビティを分類した.V-モデルは,システム開発に伴う複雑 さの理解を簡素化するために設計されたシステムの開発モデルである[62].組 込みシステム開発では製品やプロジェクト開発のための統一手続きを定義する ために使用されている.
差分開発は調査対象の20チーム全てが適用しており,適用率は100%であ る.技術成果物の再利用率の平均は78.25%であった.再利用率が80%を超え
!"#!$%&!& #'"(!$%&#&
('")!$%&#&
)'"*!$%&)&
*!$"%&'!&
図2.2 差分開発の実態調査の対象
2.2. 差分開発の現状調査 第 2. 関連研究と課題の提起 る10 のチームは,自動車関連の9チームと,MFP のSoC 開発の1チームで あった(図2.2).自動車関連の開発チームは,差分開発における再利用率が高い ことが特徴である.
再利用の対象となる技術成果物
再利用の対象は58%がC,C++,HDL(Hardware description language)を 用いて記述されたコードであり,最も大きな割合を占める(図2.3).モデルの再
!"#$"%
!"#"$$#%&'(#)
*+,&
'()#)-,)
*+,#) ./,)
-./#)/.,&
図2.3 再利用の対象となる技術成果物
!"#$%!"
#$%"
!"&'(!"
$&%)
*+,-.
/0&'(!"
$#%)
1234(!"
$$%)
34&'(
5'()*+),-./0!"
$1%)
図2.4 各開発アクティビティへの入力
2.2. 差分開発の現状調査 第 2. 関連研究と課題の提起
!"#$"%
!"#"$$#%&'(#)
*+,&
'()#)+,&
*+,#)-.,&
-./01 2/0123451678(#)
-*,&
345296::)
<=25>6=:0;) 6#) .,&
789:1#) .-,&
図2.5 各開発アクティビティからの出力
利用率は21%である.仕様書の再利用率は12%であり,仕様書の再利用率に 対してコードとモデルの再利用率がはるかに高い.このことから,仕様書を作 成してからコードやモデルを作成するトップダウン開発のアプローチの適用が 少ないことを示唆している.
各開発アクティビティへの入力となる技術成果物
V-モデルにおける各開発アクティビティへの入力は,要件がリスト化された 要求リストと,要求仕様書がその60%を占める(図2.4).ここで要件とは要件 定義アクティビティへの入力であり,要求仕様とは要件定義アクティビティの 出力である.要件がアーキテクチャ設計や詳細設計,実装の各開発アクティビ ティの入力となっていることが調査の結果,判明した.また同様に要件定義の 結果である要求仕様書も下流の開発アクティビティの入力となっていた.仕様 書が設計の入力として用いられる割合は,最大でも詳細設計の16%である.こ れらのことから,要件定義が実施されておらず要件が直接,開発アクティビティ の入力として用いられている場合があることが判明した.
2.2. 差分開発の現状調査 第 2. 関連研究と課題の提起
!"#$%&!"
#$'
()*+),$
%&!"%&$'
-./0)-1 2!"'($' 34!"()$"
図2.6 差分の特定方法
各開発アクティビティからの出力となる技術成果物
各開発アクティビティからの出力(図 2.5)において特徴的な点は,設計仕 様書が14%に対して,実装解説書がそれを上回る 21%であることである.実 装解説書の内容は実装により実現した機能の解説であることが多い.このこと により設計仕様書を作成してからコードやモデルを作成するのでは無く,コー ドやモデルを作成してから技術解説書を作成する場合が多いことがわかる.
差分の特定手法
差分の特定,すなわち設計の追加もしくは改良の箇所を特定するために最も 多く用いられている方法は,エンジニア同士の Face to Faceのコミュニケー ションである会議体の開催である(図2.6). 次に多く用いられている方法がソー スコードの解析である.ソースコード解析においては下流工程の詳細設計,実 装における設計の追加,もしくは改良の箇所の特定が行われている.シミュ レーションによる変更機能の確認や性能評価を実施している14%のチームの大 半はハードウェア開発のチームである.仕様書から差分を特定しているチーム
2.2. 差分開発の現状調査 第 2. 関連研究と課題の提起
!"#$
%&"!"#$%'
()*$%&
"!"&'%' +,-$%&
"!"(&%'
./0!"$%'
図2.7 品質管理のアクティビティ
!"#$!"#$% &'()*+, -.!"%$%
/0-.!"&'$%
12!"&'$"
図2.8 モデルを活用している工程
は9%. シミュレーションまたは仕様書からの差分の抽出を実施しているチーム がトップダウン開発を実施しているとするならば,トップダウン開発を適用し ているチームは調査対象全体の23%である.
品質保証のアクティビティ
開発における品質保証のアクティビティの対象は,開発の主成果物である ソースコードとモデルであり,それらに対するレビューが全体の71%を占め
る(図2.7).仕様書のレビューの実施はコードやモデルに対するレビューと比較
して少ない.その他はプロセスレビューであり,あらかじめ定めたアクティビ
2.2. 差分開発の現状調査 第 2. 関連研究と課題の提起 ティを実地したことを確認するレビューである.
ここで用いられているモデルは2種類に分類される.1つはASICやSoCの開 発に用いられるバスモデルやビヘビアモデルである.これらのモデルは上流工 程であるアーキテクチャ設計において,性能評価や機能検証のために用いられ る.2つ目のモデルは主に下流工程に用いられており,それらは連続系の制御 ソフトウェアの詳細設計や実装に使われるモデルである.モデルの利用の大部 分を占める92%が詳細設計や実装の領域に限定されている(図2.8).