情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)
製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
吉 村健 太 郎†1成沢文雄†1菊野亨†2
本論文では，既存システムにソフトウェア・プロダクトラインを導入するための，論理的結合集合に基づく横断フィーチャ分析法を提案する．大規模な組み込みシステムには可変フィーチャ数を削減する横断フィーチャの導入が有効だが，分析期間と定量的評価が課題となる．提案手法では製品リリース履歴におけるソフトウェア部品間の論理的結合集合に基づいて横断フィーチャ候補を抽出する．また，精度と再現度を評価用メトリックスとして定義する本手法により，横断フィーチャ候補を自動的かつ定量的に決定できる．本手法を車両制御システムに適用したところ，横断フィーチャ候補を精度 97%，再現度 31%で自動抽出した．
A Method to Analyze Cross-cutting Features Based onLogical Coupling Sets of Product Release History
Kentaro Yoshimura,†1 Fumio Narisawa†1
and Tohru Kikuno†2
This paper describes a method to analyze cross-cutting features based onlogical coupling of legacy product release history for migrating into softwareproduct line engineering.Crosscutting features help developer of large em-bedded systems to reduce the number of variable feature. However, time foranalyzing and quantitative evaluations are problems to be solved. The proposedmethod mines candidates for crosscutting features from the product release his-tory, based on the logical coupling of software components. Also, the methodapplies the precision and the recall as metrics and determines the candidatesquantitatively and automatically. We apply the proposed method to an embed-ded software, automotive control system. The method extracted the candidateswith evaluation metrics, 97% of precision and 31% of recall.
1.は じ め に
自動車，産業用機器，家電製品等，広い分野で組み込みソフトウェアが用いられている．
組み込みソフトウェアは，特定のビジネス領域における単一製品として開発されることが多
く，その後ビジネスの成功とともに改良，派生が加えられ，多くの製品バリエーションで構
成される製品系列（プロダクトライン）として開発されるようになる．たとえば自動車用
エンジン制御システムは，エンジン仕様の違い，自動車メーカごとの独自要求仕様，さら
に地域ごとに異なる法規制に対応するために製品バリエーションが非常に多い．その一方，
ソフトウェア規模・複雑度の増大，開発コスト・期間の削減，信頼性の向上等の要求によっ
て，バリエーションを個別に開発することはきわめて困難であり，組み込みソフトウェアの
再利用性向上が重要な課題になっている．
近年，製品群を横断したソフトウェア再利用のための手法として，ソフトウェア・プロダ
クトライン（Software Product Line，以下，SPL）が注目されている1)–6)．SPL 型開発の
特徴の 1 つは，フィーチャの概念の導入である．Kang らの定義7) によれば，フィーチャと
はユーザ視点でのシステムの特性である．製品間の共通部分である共通フィーチャに加え，
製品仕様に基づいて可変フィーチャを選択することによって，製品バリエーションの個別大
量生産が可能になる．SPL 型開発の成功事例として，製品バリエーション数が多いドメイ
ンである携帯電話8) や自動車制御システム9),10) 等が報告されている．
その一方で，SPL の効率的な運用には可変フィーチャ数の削減が必要不可欠である．た
とえば，2 通りの選択を持つ可変フィーチャを 20 個持つシステムですら，組合せ数は 100
万通りを超えてしまう．自動車制御システムでは，可変フィーチャ数が製品全体で数千にな
る例も報告されており9)，製品開発時に選択しなければならない可変フィーチャの組合せ数
が膨大になる．このため，派生製品の開発において製品仕様を満足する可変フィーチャを設
定するための工数が増大するという課題がある．SPL 型開発を効率的に運用するためには，
可変フィーチャ数の削減が重要である．
SPL 導入後のシステムを対象として，横断フィーチャを用いた可変フィーチャ数の削減
手法がすでに提案されている11),12)．横断フィーチャとは，複数の詳細な可変フィーチャを
†1 株式会社日立製作所日立研究所Hitachi Research Laboratory, Hitachi, Ltd.†2 大阪大学大学院情報科学研究科Graduate School of Information Science and Technology, Osaka University
2654c⃝ 2009 Information Processing Society of Japan
2655製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
図 1横断フィーチャFig. 1Cross-cutting feature.
横断して影響を及ぼす，抽象度の高いフィーチャである．図 1 に車両制御システムの例を
示す．可変フィーチャとして「距離センサ fi」，「ブレーキ制御 fj」が定義されている．こ
こで，fi，fj は独立なフィーチャとして個別に設定可能である．しかし，製品 A から E ま
での開発履歴を確認すると，fi，fj の両方が要，または両方が不要として設定されている
ことが分かる．横断フィーチャとして「車間距離制御 Xk」を定義することによって，共通
に影響を受けていた複数の可変フィーチャfi，fj をまとめられる．そのため，製品開発時の
選択肢を削減することが可能となり，派生製品の開発を効率化できるという利点がある．
図 2 に横断フィーチャに基づく SPL の概要をまとめる．従来のソフトウェア再利用では
ソフトウェアを部品化することによって再利用してきた．しかし，実際の製品開発における
製品仕様とソフトウェア部品仕様とのギャップが大きいため，ソフトウェアの再利用性が低
いという課題があった．これに対し SPL では，製品間における仕様の可変部分に対応する
可変フィーチャを導入し，ソフトウェア部品と対応付けることによって再利用性を向上させ
ている．さらに，可変フィーチャ数が大規模になる製品分野に対して横断フィーチャを導入
することによって，製品開発時の選択肢を削減して開発を効率化できる．しかしながら，先
行手法は SPL 導入後の可変フィーチャの設定実績に基づいているため，既存システムから
SPL 型開発への移行には利用できない．ところが，自動車制御等のセーフティ・クリティカ
ル・システムでは信頼性がきわめて重視されるため，実績のある既存システムに基づいて
設計を最適化したいという要求が強い．そのため，開発済みの製品バリエーションに基づい
て，横断フィーチャを分析することが望ましい．
一方で，ソフトウェア保守の分野では，論理的結合集合に基づいたアーキテクチャ分析手
法13) や開発支援手法14) が成果をあげている．論理的結合集合とは，CVS 等のソフトウェ
図 2本研究の位置付けFig. 2Scope of the proposed method.
アリポジトリ上で同時に変更されるファイル，関数，変数等のプログラム要素の同時変更関
係である．しかし，従来手法は時系列に沿って直線的に進化するシステムを対象としてお
り，SPL 型開発で対象とする開発分岐をともなう製品の分析には十分でない．
そこで我々の研究の目的は，既存システムへの SPL 型開発導入のための横断フィーチャ分
析法を確立することである．図 3 に提案するアプローチの概要を示す．既存製品から SPL
への移行にあたり，まずはじめに，(a) 製品リリース履歴の前処理を行う．次に，(b) 分析
閾値に沿ってソフトウェア部品の論理的結合集合を抽出する．さらに，(c) 分析結果の評価
を行う．(d) 決定した論理的結合集合に基づいて横断フィーチャを定義し，(e) 再利用資産
として用いる．
上記目的を達成するための第 1 の課題は，バリエーションを有する既存製品の分析に適
した，製品リリース履歴の前処理である．関連研究もリポジトリ上に蓄積されたデータを処
理したうえで変更履歴の前処理を行っているが，多品種同時開発による分岐を考慮していな
い．提案手法では，開発履歴の分岐を考慮したうえで，製品リリースタイミング間での変更
箇所を抽出して製品リリース履歴を前処理する．これにより，バリエーション開発が行われ
ている製品分野における分析が可能になる．
第 2 の課題は，横断フィーチャ候補自動分析のための分析閾値の開発である．大量の製品
リリース履歴を効率的に分析するためには，処理を自動化するための分析閾値を定義する必
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2656製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
要がある．また，対象とする製品によって変更履歴の性質が異なるため，対象ドメインごと
に調整が可能な分析閾値であることが望ましい．そこで我々は，最小同時変更頻度と最小同
時変更信頼度をパラメータとした横断フィーチャ候補分析閾値を開発した．これにより自動
分析が可能になるとともに，次に述べる評価メトリクスに基づいたパラメータ調整が可能に
第 3 の課題は，抽出した横断フィーチャ候補に対する評価メトリクスの開発である．分
析閾値を用いて横断フィーチャ候補が抽出できるが，分析結果が SPL 導入支援の観点から
どの程度有効かを定量的に評価する必要がある．そこで我々は，情報検索技術で実績のある
「精度」と「再現度」の評価指標を SPL 向けに拡張した．精度は，横断フィーチャによる変
更がどれだけ製品リリース履歴に合致するかを示す．再現度は，製品リリース履歴における
変更箇所がどれだけ横断フィーチャによってカバーされるかを示す．これにより，分析した
横断フィーチャ候補を定量的に評価することができる．
以上により，SPL の導入に向けて，レガシーソフトウェアに基づいて自動的にかつ定量
的に横断フィーチャ候補を決定できる．
なお，提案手法の適用対象は同一のソフトウェアアーキテクチャ上で改良型開発が行わ
れたソフトウェアの変更履歴であるという制限を持つ．van der Linden ら15) によれば，製
品系列の開発は新規開発，改良型開発を経たうえで，SPL 型開発へと移行することが多い．
そのため，SPL 導入支援が必要な既存システムでは改良型開発が行われていることが多く，
図 3既存システムへの SPL 導入Fig. 3Migrating into SPL from legacy software.
本手法の適用範囲は十分広いと考えている．
以下本論文では，2 章で本論文の提案する横断フィーチャ分析法について述べる．そして
3 章で，本手法の自動車エンジン制御用組み込みソフトウェアへの適用実験を行い，有用性
を確認する．また 4 章で関連する研究との比較を行う．
2.提 案 手 法
本論文では，既存製品リリース履歴におけるソフトウェア部品間の論理的結合集合を用い
た横断フィーチャ分析法を提案する．図 4 に提案手法の全体構成を示す．
まずはじめに，(a) 製品リリース履歴の前処理を行う．本研究では製品間でのソフトウェ
ア可変性を分析対象とするため，変更履歴の分析にはリリースされた製品間でのソフトウェ
ア更新情報を用いる．また，バリエーション開発において生じることが多い開発の分岐を分
析対象に含む．この前処理には既存製品の構成情報を入力とし，製品リリース間でのソフト
ウェア部品の変更情報（修正・追加・削除）が出力となる．この変更情報を，(b) での分析
に用いる学習用データと，(c) での評価に用いる評価用データとに分割する．
次に，(b) 分析閾値に沿ってソフトウェア部品の論理的結合集合を抽出する．本研究の目
的は横断フィーチャ候補の分析のため，ある論理的結合集合を横断フィーチャとして採用し
た際の効果が高くなるような分析閾値を用いる必要がある．そこで，ソフトウェア部品が同
時に変更された頻度と，ソフトウェア部品が同時に変更された信頼度とを分析閾値として採
用する．なお，同時変更頻度と同時変更信頼度の閾値はこの段階では固定しない．同時変更
頻度と同時変更信頼度を段階的に変化させて論理的結合集合を抽出し，その結果を次の (c)
で評価，対象システムに適した閾値を決定する．
図 4提案プロセスの概要Fig. 4An overview of the proposed method.
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2657製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
図 5製品リリース履歴Fig. 5Product release history.
続いて，(c) 抽出結果の評価を行う．ここでは，抽出した論理的結合集合が製品リリース
履歴における変更をどの程度表現できているかを評価する．評価には，情報検索分野で実績
のある精度と再現度のメトリクスをもとに，SPL 向けに拡張して用いる．精度は論理的結
合集合どおりに変更が生じている割合を示す．再現度は製品リリース履歴における変更にお
いて，論理的結合集合が占める割合を示す．さらに，分析閾値を変更して抽出および評価を
繰り返す．メトリクスに基づいて抽出結果を評価し，次の (d) で分析対象とする論理的結合
集合を決定する．
最後に，(d) 決定した論理的結合集合に対して横断フィーチャを定義する．論理的結合集
合を構成するソフトウェア部品と，論理的結合集合が生じた製品リリース履歴を用いて製品
仕様との対応付けを行う．この工程は，熟練者が仕様書との対応をとりながら行う．
2.2製品リリース履歴の前処理
本論文で提案する手法の入力となる，製品リリース履歴の一例を図 5 に示す．製品リリー
ス履歴は，新規製品名，ベース製品名，そして新規製品を構成するソフトウェア部品名およ
びその ID（バージョン情報等）で構成される．提案手法では，製品リリース履歴に基づい
て，ベース製品から新製品への差分情報を抽出し，製品を構成するソフトウェア部品の変更
集合として表現する．
製品を構成するソフトウェア部品を fi，ソフトウェア部品全体の集合を F とする．
F = {f1, f2, · · · , fn}(1)
製品リリース履歴 i において変更されたソフトウェア部品の集合を変更集合 Ci とする．
Ci は，F のべき集合（Power(F)）に属する．
図 6製品開発の流れFig. 6Product development ﬂow.
Ci = {fj, fk, · · · , fl} , Ci ∈ Power(F)(2)
・例 1図 6 の例では，製品 A から製品 B にかけての変更集合 C1 は下記のようになる．
C1 = {f1, f2, f3, f5}
図 6 に製品開発の流れの概要を示す．一般に，新製品の開発は複数回のソフトウェア変
更で実現される．特に，ソフトウェア部品を新規に追加する場合は，バグ修正のため製品リ
リースまでに複数回更新されることが多い．ただし，提案手法は SPL 導入に向けた製品間
可変性の分析である．そのため，1 回変更されたソフトウェア部品も，複数回変更されたソ
フトウェア部品も同等に扱うこととする．
また，新製品を並行開発するため，1 つのベース製品から複数の新製品が開発されること
がある．これを製品リリース履歴の分岐と呼ぶ．図 6 の例では，製品 B から製品 C を開発
している途中で，製品 D の開発へと分岐している．このような場合は，製品リリース履歴の
分岐直前にリリースした製品と分岐後にリリースした製品との比較で変更集合を生成する．
なお，提案手法は SPL 導入前の製品間可変性分析を主な目的としている．そのため，分
析例では個々のソフトウェア部品の機能を可変フィーチャとして定義し，可変フィーチャと
ソフトウェア部品とを 1 対 1 に対応させている．すでに部分的に SPL を導入し，1 つの可
変フィーチャに複数のソフトウェア部品が対応している場合には，ある可変フィーチャに含
まれているソフトウェア部品のいずれかが変更された場合に，その可変フィーチャは変更さ
れたものとして扱い，変更集合を抽出する．
・例 2図 6 の例では，製品 B から製品 D にかけての変更集合 C3 は下記のようになる．
C3 = {f1, f3, f4, f5}
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2658製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
以上のように抽出した変更集合 Ci を用いて，製品リリース履歴全体の変更集合である製品系
列変更集合 C を以下のように定義する．C は，F のべき集合のべき集合（Power(Power(F))）
C = {C1, C2, · · · , Cn} ,(3)
C ∈ Power(Power(F))
提案手法では，抽出した横断フィーチャを評価するために k-分割交差検定16) を採用する．
k-分割交差検定では，標本群をおおむね同一サイズの k 個の部分集合にランダムに分割す
る．そして，(k − 1) 個の部分集合で構成されるデータを学習データとして用い，残り 1 つ
の部分集合を評価用データとして学習結果の評価を行う手法である．交差検定として，k 個
に分割された標本群それぞれが評価用データとなるように k 回検定を行う．
提案手法では，製品系列変更集合 C を k 個の部分集合に分割し，(k − 1) 個の部分集合
で構成される抽出用変更集合 CL と，残り 1 つの部分集合で構成される評価用変更集合 CE
とに分割する．
CL ⊂ C(4)
CE = C − CL(5)
以降では，CL，CE の要素をそれぞれ CLi ∈ CL，CEj ∈ CE と表記する．
・例 3以降の説明のために，図 6 の例における製品系列変更集合 C を次のようにおい
て計算例を示していく．
C = {C1, C2, C3, C4, C5, C6}
C1 = {f1, f2, f3, f5}
C2 = {f1, f4, f6}
C3 = {f1, f3, f4, f5}
C4 = {f2, f3, f5}
C5 = {f3}
C6 = {f1, f3, f5, f6}
計算例における k-分割交差検定では簡単のために k = 2 とし，抽出用変更集合 CL と評価
用変更集合 CE は次のように分割する．
CL = {CL1, CL2, CL3} ,
CL1 = C1, CL2 = C2, CL3 = C3CE = {CE1, CE2, CE3} ,
CE1 = C4, CE2 = C5, CE3 = C6
2.3論理的結合集合の抽出
2.3.1分析用メトリクス
抽出用変更集合 CL から論理的結合集合を抽出するため，分析メトリクスを定義する．分
析用メトリクスとして，同時変更頻度（frequency）と同時変更信頼度（conﬁdence）とを
同時変更頻度 freq は，複数個のソフトウェア部品で構成される論理的結合集合候補 x が，
抽出用変更集合 CL において同時に変更された回数を示す．その定義式を以下に示す．
x = {fj, fk, · · · , fl} , x ∈ Power(F)(6)
freq(x) = |{CLi | CLi ∈ CL, x ⊆ CLi}|(7)
同時変更信頼度 conf は，論理的結合集合候補 x に含まれるソフトウェア部品が変更され
たときに，x 全体が変更された割合を示す．その定義式を以下に示す．
conf(x) =freq(x)
|{CLi | CLi ∈ CL, x ∩ CLi ̸= φ}|(8)
同時変更頻度 freq と同時変更信頼度 conf とをあわせて分析用メトリクス λ とする．
λ(x) = [freq(x), conf(x)](9)
・例 4論理的結合集合候補 xex を以下のように定義した場合の分析用メトリクス λ(xex)
xex = {f1, f4}
ソフトウェア部品 f1 と f4 の組は，変更集合 C2，C3 において 2 回変更されている．よっ
て，同時変更頻度は “2” となる．
freq(xex) = |{C2, C3}|
また，変更集合 C1，C2，C3 において，xex の少なくとも一部に変更が生じている．よっ
て，同時変更信頼度は 2/3 = 0.66 となる．
conf(xex) =freq(xex)
|{C1, C2, C3}|
3= 0.66
よって，この論理的結合集合候補 xex に対する分析用メトリクス λ は以下のようになる．
λ(xex) = [2, 0.66]
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2659製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
2.3.2分 析 閾 値
次に分析閾値を用いて，論理的結合集合候補を抽出する．分析閾値として，最小同時変更
頻度と最小同時変更信頼度を用いる．最小同時変更頻度は，製品リリース履歴において最低
限生じた同時変更回数を示す．最小同時変更信頼度は，論理的結合集合と扱うための同時変
更信頼度の最小値を示す．
θ = [freqmin, confmin](10)
そのうえで，分析用メトリクス λ が分析閾値以上となる論理的結合集合候補を抽出し，論
理的結合集合 L(θ) とする．
L(θ) = {x | freq(x) ≥ freqmin, conf(x) ≥ confmin}
= {l1(θ), l2(θ), · · · , lk(θ)} ,(11)
L(θ) ∈ Power(Power(F))
・例 5分析閾値として最小同時変更頻度は 2，最小同時変更信頼度は 0.75 に設定した
場合を考える．
θex = [2, 0.75]
最小同時変更頻度 2 を満たす論理的結合集合候補として，{f1, f4}，{f1, f3, f5}，{f3, f5}
が存在する．
λ({f1, f4}) = [2, 0.66]
λ({f3, f5}) = [2, 1.0]
λ({f1, f3, f5}) = [2, 0.66]
さらに同時変更信頼度に基づいて，閾値 0.75 を超えた {f3, f5} が抽出される．
L(θex) = {x | freq(x) ≥ 2, conf(x) ≥ 0.75}
= {l1(θex)}
= {{f3, f5}}
2.4論理的結合集合の評価
抽出した論理的結合集合 L(θ) を，評価用メトリクスを用いて定量的に評価する．横断
フィーチャとして採用した場合の精度（Precision）と再現度（Recall）を評価用メトリック
スとして定義する．
精度 P は，論理的結合集合と同一のパターンで変更が生じた度合いを示す．ある製品リ
リースにおける精度 Pj は，評価用変更集合 CEj ∈ CE において，論理的結合集合 li(θ) に
含まれるソフトウェア部品が変更されたときの li(θ) に含まれるソフトウェア部品の割合と
して求められる．
Pj(θ) =|{li(θ) ∈ L(θ) | CEj ∈ CE, li(θ) ⊆ CEj}|
|{li(θ) ∈ L(θ) | CEj ∈ CE, li(θ) ∩ CEj ̸= φ}|(12)
製品系列変更集合 C における精度 P は，Pj の平均値とする．
P(θ) =1
jPj(θ)(13)
再現度 R は，製品リリース履歴で生じた変更に対して，論理的結合集合で再現できた度
合いを示す．ある製品リリースにおける再現度 Rj は，評価用変更集合 CEj ∈ CE におい
て，どの程度が論理的結合集合 li(θ) どおりに変更されたかどうかで判断する．
Rj(θ) = |{li(θ) ∈ L(θ) | CEj ∈ CE, li(θ) ⊆ CEj}|
|CEj|(14)
製品系列変更集合 C における再現度 R は，Rj の平均値とする．
R(θ) =1
jRj(θ)(15)
評価メトリクスの代表値として，精度と再現度との調和平均 H を用いる．
H(θ) =2
P (θ) +1
R(θ)(16)
・例 6評価用変更集合 C4 の精度 P4(θex) は，論理的結合集合が 1 組（{f3, f5}）のた
め，次のようになる．
P4(θex) = |{f3, f5}|
|{f3, f5}|
2= 1.0
さらに，C4，C5，C6 における精度の平均値から，P(θex) は次のように求められる．
P(θex) =1
jPj(θex)
= P4(θex) + P5(θex) + P6(θex)
|{C4, C5, C6}|
= 1.0 + 0 + 1.0
3= 0.66
また，変更集合 C4 における論理的結合集合 L(θex) の再現度 R4(θex) は次のようになる．
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2660製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
R4(θex) =|{f3, f5}|
|{f2, f3, f5}|
3= 0.66
さらに，C4，C5，C6 における再現度の平均値から，R(θex) は次のように求められる．
R(θex) =1
jRj(θex)
= R4(θex) + R5(θex) + R6(θex)
|{C4, C5, C6}|
= 0.66 + 0 + 0.5
3= 0.39
以上の結果から，調和平均値は以下のとおり 0.49 となる．
H(θex) =2
P (θex) +1
R(θex)= 0.49
2.5分析閾値のサンプリング
以上の手順を分析閾値を変化させて，繰返し論理的結合集合を分析する．対象とするシス
テムによって，論理的結合集合が生じる傾向は異なるため，最小同時変更頻度および最小同
時変更信頼度を変更して論理的結合集合を評価する．
・例 7図 7 に分析閾値のサンプリングの例を示す．この例では，最小同時変更頻度は
2，3，4，5 と変化させ，最小同時変更信頼度は 0.25，0.50，0.75，1.0 と変化させる．計 16
通りの閾値の組合せで論理的結合集合を分析する．
さらに，分析した精度と再現度の調和平均により，対象とするシステムにおける分析閾
値を決定する．調和平均値が最大になる閾値を対象システム分析用の閾値 θmax として採用
し，抽出した論理的結合集合 li(θmax) を横断フィーチャXi として採用する．
Xi = li(θmax)(17)
2.6横断フィーチャの定義
最後に，分析・評価した論理的結合集合を横断フィーチャとして定義する．分析に用いる
情報は，論理的結合集合を構成するソフトウェア部品の仕様と，論理的結合集合による変更
が生じた製品リリース履歴での製品仕様である．この分析は，対象製品の知識を十分に持っ
た熟練者が行う必要がある．
図 7閾値のサンプリングFig. 7Sampling of threshold.
まず，ソフトウェア部品仕様の分析を行う．論理的結合集合を構成している複数のソフト
ウェア部品に対し，共通の機能・非機能的要件を推定する．具体的な手順は 3.2 節で説明
次に，製品仕様の分析を行う．論理的結合集合による変更が生じた製品リリースにおい
て，推定した機能・非機能的要件が変更されているかどうかを分析する．推定した要件が変
更されていれば，その推定を横断フィーチャとして採用する．もし変更されていなければ，
ソフトウェア部品仕様の分析を再び行う．
3.適 用 実 験
3.1実験の概要
提案手法の有効性を評価するため，組み込み制御ソフトウェアの製品リリース履歴に対し
て本手法を適用した．
実験対象の概要を表 1 に示す．分析対象のソフトウェアは自動車用エンジン制御システ
ムであり，ソフトウェア全体の規模は 50 万 LOC 以上である．実験では，特にエンジン気
筒数等の機械的構成や，仕向地による排気規制等の非機能要件の影響を受けやすい，燃焼制
御サブシステムの一部を選定して実験対象とした．対象となるサブシステムは 63 個のソフ
トウェア部品で構成されている．各ソフトウェア部品はたとえば補正係数等の，粒度の細か
いフィーチャf1 から f63 に対応している．製品変更履歴には 37 製品が含まれ，搭載車種，
気筒数等のエンジン形式，出荷地域等多くの製品仕様が少しずつ異なっている．
適用実験では，図 4 に示したプロセスに沿って実施した．まず，37 製品の製品リリース
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2661製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
表 1実験対象Table 1Experimental example.
製品系列エンジン制御（一部）
ソフトウェア部品数63
図 8評価メトリクスの実験結果Fig. 8Evaluation metrics result.
履歴に対する前処理を行って，36 個の変更集合からなる製品系列変更集合 C を得た．交差
検定法としては，k-分割交差検定の一種である leave-one-out 交差検定を採用した．製品系
列変更集合 C を，35 個の変更集合からなる分析用変更集合 CL と，1 個の変更集合からな
る評価用分析集合 CE に分割する．分析閾値に基づいて論理的結合集合を抽出し，評価用分
析集合を用いて評価メトリクスを得る．この抽出および評価を，全変更集合が 1 回ずつ評価
用分析集合となるように繰り返した．さらにこの一連の処理を，分析閾値を変更しながら繰
り返し行い，製品リリース履歴全体での評価メトリクスを求めた．
3.2実 験 結 果
適用実験で得られた論理的結合集合の評価メトリクスを図 8 に示す．分析閾値の設定値
を変更しながら，複数回実験を実施した．たとえば，最小同時変更頻度 2，最小同時変更信
頼度 0.75 における評価メトリクスは精度 0.97，再現度 0.31 となった．精度 0.97 は，論理
的結合集合を構成するソフトウェア部品が変更されるときには，97%の割合で論理的結合集
表 2横断フィーチャ定義結果Table 2Result of crosscutting feature deﬁnition.
横断フィーチャ可変フィーチャ
X1f21，f31X2f25，f26，f27X3f28，f29，f30X4（燃料性状）f32（点火時期補正），f39（燃料補正）X5f50，f51X6f52，f53
合どおりに変更されたことを意味する．再現度 0.31 は，製品リリース履歴で生じた変更の
うち，論理的結合集合のパターンどおりの変更が 31%を占めていることを意味する．
次に，横断フィーチャの定義を行った．分析対象を選定するため，評価メトリクスの調和
平均を用いた．調和平均は，分析閾値を最小同時変更頻度 2，最小同時変更信頼度 0.75 の
結果が最も高かったため，このときの論理的結合集合を分析対象とした．
論理的結合集合に対して仕様分析を行い，横断フィーチャを定義した結果を表 2 に示す．
まず，論理的結合集合にあるソフトウェア部品の可変フィーチャを調査し，その後に可変
フィーチャ間に共通する横断フィーチャを推定，確認した．
たとえば，点火時期補正 f32 と燃料補正 f39 という 2 つのソフトウェア部品に共通する
フィーチャとして，燃料性状（レギュラー or ハイオク）という横断フィーチャX4 を定義し
た．これは，製品が対応している燃料性状の違いにより，点火時期補正 f32 と燃料補正 f39
とに関わる制御アルゴリズムが変更されるためである．さらに，論理的結合集合が生じてい
る製品リリース履歴において，定義した横断フィーチャ（燃料性状）が実際に変更されてい
たかどうかを調べ，推定の妥当性を確認した．
上記の仕様分析を抽出した論理的結合集合に対して実施し，燃料性状やバルブタイミング
制御の有無等，6 つの横断フィーチャX1，X2，X3，X4，X5，X6 を定義した．
まず，製品リリース履歴の分析について検討する．自動車用エンジン制御システムは，複
数製品の並行開発が行われているため製品リリース履歴にも開発履歴の分岐が存在した．こ
の課題に対し，提案手法は製品リリースタイミング間での変更箇所を抽出しており，バリ
エーション開発が行われている製品分野での既存システム分析が可能となった．
次に，論理的結合集合の自動抽出に関しては，提案した分析メトリクスおよび分析閾値を
用いて自動抽出を実施した．これにより，大量の既存製品を有する製品分野においても，提
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2662製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
案手法により横断フィーチャ候補の抽出が可能となる見通しを得た．
さらに，熟練開発者へのヒアリングによって，評価メトリクスに基づいた横断フィーチャ
分析結果の妥当性を検証した．提案手法により定義された 6 つの横断フィーチャ中の 5 つ
については，複数ソフトウェア部品の同時変更要因として熟練開発者の経験と一致した．ま
た，1 つの横断フィーチャは熟練開発者の経験と一致しなかったが，詳細な検討の結果，対
象製品の横断フィーチャとして新たに確認された．また，横断フィーチャを構成する複数の
ソフトウェア部品を統合化できるかを検討したが，各ソフトウェア部品は細粒度制御要件に
対応しており，統合化は困難であると判断した．その一方で各ソフトウェア部品の変更要因
は共通であり，提案手法の狙いどおり横断フィーチャが抽出できたと考えられる．
以上の考察より，本研究において課題とした点を，提案手法により解決できたと考える．
最後に，実験結果に基づいて本手法の有用性を議論する．本実験で用いた適用対象は 63
個のソフトウェア部品で構成されている．そのため，横断フィーチャ候補となる 2 つのソフ
トウェア部品の組合せは 1,953 通り，3 つのソフトウェア部品による組合せは 39,711 通り，
合計 41,644 通り存在する．これらすべての組合せに対して熟練開発者による仕様分析を実
施した場合，その分析期間は長期間に及ぶという問題がある．これに対して提案手法では，
既存システムの製品リリース履歴における論理的結合集合に基づき，2 個または 3 個のソフ
トウェア部品で構成される 6 つの横断フィーチャ候補を自動的に抽出することに成功した．
提案手法の適用により，熟練開発者による仕様分析が必要な横断フィーチャ候補を約 7,000
分の 1 に削減し，既存システムへの横断フィーチャの導入効率を大幅に向上させることがで
きる見通しを得た．
今後の研究課題としては，既存製品数が少ない場合の適用範囲の検討と，横断フィーチャ
間の依存関係の分析とがある．
提案手法を適用するためには，対象製品のソフトウェア構造が安定した状態で，ある程度
の量の変更履歴が蓄積されていることが必要である．提案手法の適用範囲を明らかにするた
め，分析対象とする製品数を変化させ，分析結果の評価を行うことが必要である．
横断フィーチャ間の関係について検討したところ，ある横断フィーチャが変更された場合
にのみ，別の横断フィーチャも変更されるケースがあった．ここから，横断フィーチャ間の
依存関係があることが推測できる．今後，横断フィーチャ間の依存関係の分析に対応するこ
とが必要である．
4.関連する研究
組み込みシステムを対象としたプロダクトラインの事例研究がある8)–10)．しかし，これ
らの研究では，機能要求，バリエーション管理およびアーキテクチャ設計を対象としてお
り，実績ある既存システムを活用するという観点から見て十分ではない．また，Kang ら
はフィーチャ指向に基づいて，既存システムをプロダクトライン化する手法を提案してい
る17)．単一のシステムのソースコードにおける関数間の依存関係から実装されているアー
キテクチャを回復させ，SPL の観点からアーキテクチャを改良している．しかしながら複
数のバリエーションを有する既存システムの分析には十分でない．
これに対して我々の研究は，既存製品リリース履歴におけるソフトウェア部品間の論理的
結合集合に基づいて横断フィーチャを分析するという特徴がある．本手法は，過去の実績に
基づいた候補を提示することが可能であり，特に信頼性を重視する組み込み制御システム向
け SPL 導入支援手法として有効である．
変更履歴中の同時変更関係に基づくソフトウェア改良の研究がある．Gall ら13) は通信交
換システムの製品リリース履歴における同時変更関係を分析し，モジュール分割の見直しを
行う手法を提案している．この手法は，時間系列に沿って発展していく単一のシステムを対
象としているため，製品開発履歴の分岐は考慮されておらず，バリエーションを持つ製品に
はそのまま適用することができない．
我々の手法は，同時変更関係分析の先行研究を既存システムへの SPL 導入手法として拡
張したものであり，バリエーション開発による製品リリース履歴の分岐を考慮しているとい
う特徴がある．このため，複数の製品バリエーション間が並行して開発されることがある組
み込みシステムにおいて特に有効である．
我々はすでに，既存製品間のコードクローンに基づいて，共通性と可変性を分析する手
法を提案している18)．しかし，大規模システムにおいては可変フィーチャが数千に及ぶこ
とがあり，製品開発時の可変フィーチャ設定が困難になるという課題があった．この課題を
解決するため，既存製品の変更履歴における同時変更関係を分析して可変性と結びつける
基本的な概念を提案したが，分析結果に対する定量的な評価が欠けているという課題があっ
た19)．そこで論理的結合集合に基づく定量的な分析手法を提案したが，厳密な定義が不十
分であるという課題があった20)．
これに対し本論文では，抽出した論理的結合集合が SPL における可変性の概念に合致し
ているかどうか評価するメトリクスを形式的に定義して導入した．これにより，分析結果の
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2663製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
定量的評価が可能になるとともに，SPL 導入効果を最適化するための分析パラメータ調整
が可能になる．
本論文では，既存システムへのソフトウェア・プロダクトライン導入のための横断フィー
チャ分析手法として，製品リリース履歴における論理的結合集合を用いる手法を提案した．
また実際の組み込み制御ソフトウェアを用いて適用実験を行った．その結果，横断フィー
チャ候補の自動抽出が可能であることが分かった．
今後の取組みとしては，適用対象の製品数を増減させることによる提案手法の適用範囲の
検証および，分析結果に基づく SPL 導入を行うことが必要である．
1) Bayer, J., et al.: A methodology to Develop Software Product Line, Proc. 5th ACMSIGSOFT Symposium on Software Reusability (SSR’99) (1999).2) Clements, P. and Northrop, L.M.: Software Product Lines: Practices and Patterns,Addison-Wesley (2001).3) Pohl, K., B¨ockle, G. and van der Linden, F.: Software Product Line Engineering:Foundations, Principles And Techniques, Springer (2005). 林好一，吉村健太郎，今関剛（訳）：ソフトウェアプロダクトラインエンジニアリング—ソフトウェア製品系列開発の基礎と概念から技法まで，エスアイビー・アクセス (2009).4) 渡辺晴美：組み込みソフトウェア開発技術：4. プロダクトライン開発技術，情報処理，Vol.45, No.7 (2004).5) Lee, J. and Muthig, D.: Feature-Oriented Variability Management in Product LineEngineering, Comm. ACM, Vol.49, No.12, pp.55–59 (2006).6) 吉村健太郎：製品間を横断したソフトウェア共通化技術—ソフトウェアプロダクトラインの最新動向，情報処理，Vol.48, No.2, pp.171–176 (2007).7) Kang, K., et al.: Feature-Oriented Domain Analysis (FODA) Feasibility Study,No.CMU/SEI-90-TR-21, ADA 235785, Software Engineering Institute, CarnegieMellon University (1990).8) Ommering, R.V. and Bosch, J.: Widening the scope of Software Product Lines –From Variation to Composition, Proc. International Software Product Line Con-ference (SPLC) (2000).9) Steger, M., et al.: PLA at Bosch Gasoline Systems: Experiences and Practices,Proc. Intl. Software Product Line Conference (SPLC) (2004).10) Thiel, S. and Hein, A.: Modeling and Using Product Line Variability in Automo-
tive Systems, IEEE Software, Vol.19, No.4 (2002).11) Loesch, F. and Ploedereder, E.: Optimization of Variability in Software Prod-uct Lines, Proc. 11th International Software Product Line Conference, pp.151–162(2007).12) Conejero, J.M. and Hernandez, J.: Analysis od Crosscutting Features in SoftwareProduct Lines, Early Aspects at ICSE: Aspect-Oriented Requirements Engineeringand Architecture Design (EA 2008) (2008).13) Gall, H., Hajek, K. and Jazayeri, M.: Detection of Logical Coupling Based onProduct Release History, ICSM ’98: Proc. International Conference on SoftwareMaintenance, p.190 (1998).14) Zimmermann, T., Weisgerber, P., Diehl, S. and Zeller, A.: Mining Version Histo-ries to Guide Software Changes, ICSE ’04: Proc. 26th International Conference onSoftware Engineering, pp.563–572 (2004).15) van der Linden, F., et al.: Software Product Family Evaluation, 5th InternationalWorkshop on Software Product Family Engineering (PFE 2003) (2004).16) Kohavi, R.: A Study of Cross-Validation and Bootstrap for Accuracy Estimationand Model Selection, Proc. International Joint Conference on Artiﬁcial Intelligence(IJCAI’95) (1995).17) Kang, K.C., Kim, M., Lee, J. and Kim, B.: Feature-Oriented Re-engineering ofLegacy Systems into Product Line Assets – A case study, Proc. International Soft-ware Product Line Conference (SPLC) (2005).18) Yoshimura, K., Ganesan, D. and Muthig, D.: Deﬁning a strategy to introduce asoftware product line using existing embedded systems, EMSOFT ’06: Proc. 6thACM & IEEE International Conference on Embedded Software, pp.63–72 (2006).19) Yoshimura, K., Narisawa, F., Hashimoto, K. and Kikuno, T.: FAVE: Factor analy-sis based approach for detecting product line variability from change history, MSR’08: Proc. 2008 International Workshop on Mining Software Repositories, pp.11–18(2008).20) 吉村健太郎，成沢文雄，橋本幸司，菊野亨：製品リリース履歴における論理的結合関係に基づいた横断フィーチャ分析法，組込みシステムシンポジウム 2008 論文集，pp.51–59 (2008).
(平成 21 年 1 月 30 日受付)
(平成 21 年 9 月 11 日採録)
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan
2664製品リリース履歴における論理的結合集合に基づいた横断フィーチャ分析法
吉村健太郎（正会員）
1976 年生．1999 年早稲田大学理工学部機械工学科卒業．2001 年同大
学大学院理工学研究科機械工学専攻修士課程修了．同年（株）日立製作所
日立研究所入社．2005～2007 年仏国 Hitachi Europe．現在，（株）日立
製作所日立研究所研究員．2009 年大阪大学大学院情報科学研究科博士後
期課程修了．博士（情報科学）．主に組み込みソフトウェア開発方法論に
関する研究に従事．IEEE，日本機械学会各会員．
成沢文雄（正会員）
1970 年生．1994 年東北大学工学部情報工学科卒業．1996 年同大学大
学院情報科学研究科情報基礎科学専攻修士課程修了．同年（株）日立製作
所日立研究所入社．ソフトウェア工学，組み込みシステムの研究開発に従
事．ACM 会員．
菊野亨（フェロー）
1975 年大阪大学大学院博士課程修了．工学博士．同年広島大学工学部講
師．同大学助教授を経て，1987 年大阪大学基礎工学部情報工学科助教授．
1990 年同大学教授．現在，大阪大学大学院情報科学研究科教授．2008 年
大阪大学留学生センター・センター長．主にフォールトトレラントシステ
ム，ソフトウェア開発プロセスの定量的評価に関する研究に従事．電子情
報通信学会，情報処理学会各フェロー．ACM，IEEE 各会員．日本信頼性学会会長．
情報処理学会論文誌Vol. 50No. 112654–2664 (Nov. 2009)c⃝ 2009 Information Processing Society of Japan