2. Software Product Line Engineering
• 既存システムを再利用すると効率よく開発できる[1]
→ 顧客が再利用すべき機能を選択しやすいように
既存システムをモデル化することが重要[2]
既存システム
機能1 機能2 新システム
機能3 機能4
機能1 機能2
機能5 機能6
機能3 機能5
機能1 機能2
機能4 機能5
機能3 機能4
機能5 機能6
1. Klaus Pohl, Gunter Bockle, Frank Van Der Linden: Software Product Line Engineering: Foundations, Principles
And Techniques, Springer-Verlag New York Inc 2005.
2. Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi, Marek Hatala, Bardia Mohabbati: Goal-Driven Software
Product Line Engineering, SAC2011, pp.691-698.
1
3. 既存研究で扱っているモデル例1
• フィーチャモデル[3]だけでは、システムの機能に
詳しくない顧客は必要な機能を選べない
よくわからない どっちが
必要ですか??
録画機能
ブルーレイディスク ハードディスク
機能 ドライブ機能
フィーチャモデル
3. Czarnecki K, Helsen S, and Eisenecker U: Formalizing: Cardinality-based Feature Models and their Specialization,
Software Process. Improvement and Practice, Vol.10, No.1 2005, pp.7-29. 2
4. 既存研究で扱っているモデル例2
• ゴールモデル[4]があると、
要求を辿ることで必要な機能に到達できる
そうか、 番組を録画
できる 抽象的な
この機能が
要求
必要なのか!!
or
録画して持ち 大容量で
運びできる 録画できる
具体的な
機能
ブルーレイディスク ハードディスクドライブ
で録画できる で録画できる
ゴールモデル
4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software
Specications, Wiley, 2009.
3
5. 既存研究で扱っているモデル例3
• 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける
可変ゴールは
共通ゴールは
よし、 青:共通ゴール
この機能を頼む!!
必要なものを…
必ず選んで… 白:可変ゴール
A A
and
A A
and + and
B C or D B
B C B D or
or
C D C D
E E
NOP
E
ゴールモデル1 ゴールモデル2 結合ゴールモデル フィーチャモデル
問題:共通ゴールの判別手法が自明でない
5. Uno K, Hayashi S, Saeki M: Constructing Feature Models using Goal Oriented Analysis, QSIC2009, pp.412-417.
6. Yijun Yu, Alexei Lapouchnian, Sotirios Liaskos, John Mylopoulos, and Julio C.S.P.Leite: From Goals to High- 4
Variability Software Design, ICIST2008.
7. 提案手法の概要
1. 明らかに共通なゴールを判別
自動 手動
2. 明らかに可変なゴールを判別
3. 共通ゴールランキングで共通ゴールを判別
明らかに共通なゴール 「C」の共通ゴールランキング
ゴールの類似度に 1位:「F」
G1 G2
基づいて判別 2位:「G」
A A :
B C B F G1 G2 「D」の共通ゴールランキング
C F
1位:「G」
2位:「F」
D E G H D G
:
明らかに可変なゴール
残ったゴールで
明らかに共通・可変な 明らかに共通・可変な 共通ゴール
ゴールを抽出 ゴールを除外 ランキングを作成 6
8. ゴールの類似度(一般的な既存手法[7]を使用)
• 名詞と動詞だけでジャッカード係数を算出
(動詞は基本形に変換)
類似度 = | X ∩ Y | / | X ∪ Y |
共通要素数 少なくとも一方にある要素数
例)「見たい番組を探すことができる」と
「見たい番組を番組表で探すことができる」の場合…
| X ∩ Y |は「見る」「番組」「探す」の3単語
| X ∪ Y |は「見る」「番組」「番組表」「探す」の4単語
→ 類似度は 3 / 4 = 0.75
7. Muhammad Ilyas , Josef Kung: A Similarity Measurement Framework for Requirements Engineering,
ICCGI2009, pp.31-34.
7
17. 明らかに共通・可変(テレビ)の結果
The process of identifying clearly common goals The process of identifying clearly variable goals
(TV) (TV)
100.00% 100.00%
80.00% 90.00%
60.00%
80.00%
40.00%
20.00% 70.00%
(threshold) (threshold)
0.00% 60.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Before After precision Before After precision
precision precision
100.00% 100.00%
80.00% 80.00%
60.00% 60.00%
40.00% 40.00%
20.00% 20.00%
(threshold) (threshold)
0.00% 0.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Before recall After recall Before recall After recall
• 明らかに共通
– 手法適用前:0.00%の共通ゴールを判別
– 手法適用後:40.00%の共通ゴールを判別 (40.00%向上)
• 明らかに可変
– 手法適用前:34.57%の可変ゴールを判別
– 手法適用後:34.57%の可変ゴールを判別 (変化なし) 16
18. 明らかに共通・可変(SNS)の結果
The process of identifying clearly common goals The process of identifying clearly variable goals
(SNS) (SNS)
100.00% 100.00%
80.00% 90.00%
60.00%
80.00%
40.00%
20.00% 70.00%
(threshold) (threshold)
0.00% 60.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Before After precision Before After precision
precision precision
100.00% 100.00%
80.00% 80.00%
60.00% 60.00%
40.00% 40.00%
20.00% 20.00%
(threshold) (threshold)
0.00% 0.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Before recall After recall Before recall After recall
• 明らかに共通
– 手法適用前:77.78%の共通ゴールを判別
– 手法適用後:77.78%の共通ゴールを判別 (変化なし)
• 明らかに可変
– 手法適用前:16.42%の可変ゴールを判別
– 手法適用後:91.04%の可変ゴールを判別 (74.62%向上) 17
19. 共通ゴールランキングの結果
• テレビ
– 順位:1.60位(除外前)→1.17位(除外後)(0.43位向上)
– 照合回数:21.55%削減(除外前)→87.35%削減(除外後)
• SNS
– 順位:1.00位(除外前) →1.00位(除外後)
– 照合回数:16.35%削減(除外前) →99.86%削減(除外後)
Times of collation of goal(TV) Times of collation of goal(SNS)
3000 1500
2500 1200
2000 900
1500
600
1000
300
500
0 0
using using
using ranking using ranking
no ranking no ranking
ranking with ranking with
remove remove
times of collation 2870 2202 363 times of collation 1431 1197 2 18
25. 閾値の求め方(予備実験の方法)
G1 G2
C C
C C C C C C C C
C C C C C C C
C
C C C C C
C
C C C C C C
C C
C C C C C C C
C C C
C C C C
C
C C
C C C
C C C
C C
C C
専門家 自作ツール
ツールが適合率100%・再現率最大
共通ゴール 可変ゴール で明らかに共通・可変を判別できる
正解データ 閾値を算出 24
26. 明らかに共通・可変(テレビ)の結果
の詳細説明
• 手法を使わないと適合率が100%にならない
→手法を使わないと共通ゴールのみをとってくること
ができない(類似度が高い可変ゴールが混ざる)
The process of identifying clearly common goals
100.00%
(TV)
90.00%
80.00%
70.00%
60.00%
50.00%
40.00%
30.00%
20.00%
10.00%
0.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 (threshold)
Before precision After precision
25
27. 明らかに共通・可変(SNS)の結果
の詳細説明
• 閾値が大きいほど、再現率は高い
→手法を使うと、適合率100%時の閾値が大きくなる
(より多くの可変ゴールがとってこれるようになる)
The process of identifying clearly variable goals (SNS)
100.00%
90.00%
80.00%
70.00%
(threshold)
60.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Before precision After precision
100.00%
80.00%
60.00%
40.00%
20.00%
(threshold)
0.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Before recall After recall
26