2. 再利用開発
• 既存システムを上手く再利用することで、
効率よく新システムを開発できる[1]
1から開発
非効率
再利用して開発 効率が
いい
1. Klaus Pohl, Gunter Bockle, Frank Van Der Linden: Software Product Line Engineering: Foundations, Principles 1
And Techniques, SpringerVerlag New York Inc 2005.
4. 共通機能と可変機能に分類[2]
機能1 機能2 機能1 機能2 機能1 機能2
機能3 機能4 機能3 機能4 機能3 機能4
2. Lianping Chen, Muhammad Ali Babar, Nour Ali Lero: Variability Management in Software Product Lines: A 3
Systematic Review, SPLC2009,pp.81-90.
5. 共通機能と可変機能に分類[2]
可変機能 共通機能
顧客の要求に応じて いかなる場合でも
再利用すべき機能 再利用すべき機能
機能1 機能2 機能1 機能2 機能1 機能2
共通機能
2. Lianping Chen, Muhammad Ali Babar, Nour Ali Lero: Variability Management in Software Product Lines: A 4
Systematic Review, SPLC2009,pp.81-90.
6. 要求と機能のギャップ
• 機能モデル[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. 5
7. ゴールモデルを使うと機能を選べる
• ゴールモデル[4]があると、
要求を辿ることで「再利用すべき機能」に到達できる
録画したい!! 用途に合わせて
番組を録画できる
or
録画して持ち 長時間
運びできる 録画できる
ブルーレイディスク ハードディスクドライブ
で録画できる で録画できる
顧客 ゴールモデル
4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software
Specications, Wiley, 2009.
6
8. ゴールモデルを使うと機能を選べる
• ゴールモデル[4]があると、
要求を辿ることで「再利用すべき機能」に到達できる
そうか、 用途に合わせて 抽象的な
この機能が 番組を録画できる
要求
必要なのか!!
or
録画して持ち 長時間
運びできる 録画できる
具体的な
機能
ブルーレイディスク ハードディスクドライブ
で録画できる で録画できる
顧客 ゴールモデル
4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software
Specications, Wiley, 2009.
7
9. 既存研究
• 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける
青:共通ゴール
白:可変ゴール
A A
and
A A
and + and
B C or D
or
B
B C B D or
C D C D
ゴールモデル1
E E
NOP
E
ゴールモデル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-
Variability Software Design, ICIST2008. 8
10. ゴールを選ぶと、短期間・低コストで
要求を満たした派生システムが[7]
A
OR OR
B C D
OR OR OR
派生システム1
顧客1 E F G H I J
機能1 機能2 機能1 機能2 機能1 機能2
機能3 機能4 機能3 機能4
共通機能 機能3 機能4
可変機能 共通機能
7. Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi,Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product 9
Line Engineering, SAC2011,pp.691-698.
11. ゴールを選ぶと、短期間・低コストで
要求を満たした派生システムが[7]
A
OR OR
B C D
OR OR OR 派生システム2
顧客2 E F G H I J
機能1 機能2 機能1 機能2 機能1 機能2
機能3 機能4 機能3 機能4
共通機能 機能3 機能4
可変機能 共通機能
7. Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi,Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product10
Line Engineering, SAC2011,pp.691-698.
12. 既存研究
• 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける
青:共通ゴール
白:可変ゴール
A A
問題:共通ゴールの判別手法
and
A A
and + B C or D
が自明でない
and
or
B
B C B D or
C D C D
ゴールモデル1
E E
NOP
E
ゴールモデル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-
Variability Software Design, ICIST2008. 11
15. 提案手法の概要
明らかに共通・
自動で判別(増やしたい) 可変なゴール
明共通 明可変
A と F E J
ゴールモデル 提案手法を
×2 実装したツール B と G
G1 G2
A F
共通ゴール
B C G H ランキング
D E I J 「C」の共通ゴールランキング
1位:「H」
2位:「I」
「D」の共通ゴールランキング
人手で判別(減らしたい) 1位:「I」
2位:「H」
14
23. 「子ゴール共通性の反映」の例
1. (1-1)と(2-1)は「類似度の低い共通ゴール」
2. (1-2)と(2-2)は明らかに共通
3. 子ゴール共通性を反映し、その親である(1-1)と(2-1)は
明らかに可変にしない
4. (1-1)と(2-1)は共通ゴールランキングに出現
G1 G2
searching in the 類似度の低い searching friends
search field (1-1) 共通ゴール (2-1)
AND AND AND 0 AND
by user name by e-mail address
by words (1-3) by name (2-2)
(1-2) (2-3)
共通 22
31. 実験2:実験の方法(チームB)
G1 G2 「C」の共通ゴールランキング
C C
C C C C C C
1位:「H」
C C C C C C
2位:「I」
C C C C C
C
C
C C
C
C
C
「D」の共通ゴールランキング 手作業で共通ゴールを判別
1位:「I」
C C C
2位:「H」
ゴールモデル×2
明共通 共通ゴール
明可変 可変ゴール
ツール
共通ゴール 可変ゴール
作業時間 30
37. ゴール名の類似度(一般的な既存手法[8]を使用)
• ゴール名を構成する名詞と動詞が一致する割合を算出
(動詞は基本形に変換してから)
類似度 = | X ∩ Y | / | X ∪ Y |
共通要素数 少なくとも一方にある要素数
例)「見たい番組を探すことができる」と
「見たい番組を番組表で探すことができる」の場合…
| X ∩ Y |は「見る」「番組」「探す」の3単語
| X ∪ Y |は「見る」「番組」「番組表」「探す」の4単語
→ 類似度は 3 / 4 = 0.75
8. Muhammad Ilyas , Josef Kung: A Similarity Measurement Framework for Requirements Engineering,
ICCGI2009, pp.31-34. 36
38. 非共通ゴールを共通と判別すると…
明らかに共通
• 本来なくてもいい機能
可変 共通 共通 共通
1 • ユーザビリティが低下
• 手戻り
閾値1
A A
B C B C
37
39. 共通ゴールを可変と判別すると…
明らかに可変
• 必要な機能がない
• ユーザビリティが低下 可変 可変 可変 共通
• 手戻り 0
閾値2
A A
C B C B
38
42. 閾値の求め方(予備実験の方法)
G1 C
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
専門家 自作ツール
共通ゴール 可変ゴール 正解データだけで
正解データ 最適な閾値を算出 41
44. 就職支援システム、カメラのゴール例
就職支援システム
• 共通ゴール:企業をフリーワードで検索できる
企業を本社や勤務地の場所から検索できる など
• 可変ゴール: 1週間以内に説明会が開催される企業を検索
できる(リクナビ)
企業を採用実績校で検索できる(マイナビ) など
カメラ
• 共通ゴール: recognizes the scene
Installing the software など
• 可変ゴール: hold the camera (A37)
Using the self-timer (NEX-F3) など43
45. 実験2:実験の方法(チームB-ステップ1)
G1 G2 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
ゴールモデル×2 ゴールモデルの一部×2
手作業で共通ゴールを判別
ツール
共通ゴール 可変ゴール
閾値 作業時間1 44
47. フィーチャロケーション[9]
• フィーチャとコードを対応付ける
必須フィーチャ:スタック
任意フィーチャ:ロック
9. Dapeng Liu , Andrian Marcus , Denys Poshyvanyk , Vclav Rajlich:Feature Location via Information Retrieval
based Filtering of a Single Scenario Execution Trace, ASE2007, pp.234-243.
46
48. コードのモジュール化[10]
• #define,ifdef,endifで
ロックを付け替え可能に
10. Jorg Liebig, Sven Apel, Christian Lengauer, Christian Kstner, Michael Schulze: An Analysis of the Variability in
Forty Preprocessor-Based Software Product Lines,ICSE2010, pp.105-114.
47