平成24年度社会知能情報学専攻修士論文発表会(発表資料)
DESCRIPTION
TRANSCRIPT
修論発表会発表資料
ソフトウェア再利用に向けた
共通ゴール判別手法の提案
電気通信大学
大学院情報システム学研究科
大須賀・田原研究室
1151025 中村 祐貴
1
非効率
効率がいい
1から開発
再利用して開発
• 既存システムを上手く再利用することで、
効率よく新システムを開発できる[1]
再利用開発
1. Klaus Pohl, Gunter Bockle, Frank Van Der Linden: Software Product Line Engineering: Foundations, Principles
And Techniques, SpringerVerlag New York Inc 2005.
再利用資産の構築
• 既存システムを再利用し易いように整理する必要がある
2
再利用資産
既存システム 新システム
共通機能と可変機能に分類[2]
3
機能1 機能2
機能3 機能4
機能1 機能2
機能3 機能4
機能1 機能2
機能3 機能4
2. Lianping Chen, Muhammad Ali Babar, Nour Ali Lero: Variability Management in Software Product Lines: A
Systematic Review, SPLC2009,pp.81-90.
共通機能と可変機能に分類[2]
4
機能1 機能2 機能1 機能2 機能1 機能2
共通機能
いかなる場合でも
再利用すべき機能
共通機能 可変機能
いかなる場合でも
再利用すべき機能
顧客の要求に応じて
再利用すべき機能
2. Lianping Chen, Muhammad Ali Babar, Nour Ali Lero: Variability Management in Software Product Lines: A
Systematic Review, SPLC2009,pp.81-90.
要求と機能のギャップ
5
録画機能
ブルーレイディスク
機能
ハードディスク
ドライブ機能
録画したい!!
• 機能モデル[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.
ゴールモデルを使うと機能を選べる
6
用途に合わせて
番組を録画できる
ブルーレイディスクで録画できる
ハードディスクドライブで録画できる
録画して持ち
運びできる
長時間
録画できる
or
ゴールモデル
• ゴールモデル[4]があると、
要求を辿ることで「再利用すべき機能」に到達できる
顧客
録画したい!!
4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software
Specications, Wiley, 2009.
ゴールモデルを使うと機能を選べる
7
用途に合わせて
番組を録画できる
ブルーレイディスクで録画できる
ハードディスクドライブで録画できる
録画して持ち
運びできる
長時間
録画できる
そうか、
この機能が
必要なのか!! or
ゴールモデル
• ゴールモデル[4]があると、
要求を辿ることで「再利用すべき機能」に到達できる
顧客
抽象的な要求
具体的な機能
4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software
Specications, Wiley, 2009.
既存研究
8
A
B C and
A
B D and +
A
B C or D
and
C D or
A
B
C D
E E NOP E
or
青:共通ゴール
白:可変ゴール
• 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける
ゴールモデル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-
Variability Software Design, ICIST2008.
ゴールを選ぶと、短期間・低コストで
要求を満たした派生システムが[7]
9
機能1 機能2
機能3 機能4
機能1 機能2
機能3 機能4
機能1 機能2
機能3 機能4 共通機能
A
OR
B
E F OR
C
G H OR
D
I J OR
OR
顧客1
派生システム1
共通機能 可変機能
7. Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi,Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product
Line Engineering, SAC2011,pp.691-698.
ゴールを選ぶと、短期間・低コストで
要求を満たした派生システムが[7]
10
機能1 機能2
機能3 機能4
機能1 機能2
機能3 機能4
機能1 機能2
機能3 機能4 共通機能
A
OR
B
E F OR
C
G H OR
D
I J OR
OR
顧客2 派生システム2
共通機能 可変機能
7. Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi,Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product
Line Engineering, SAC2011,pp.691-698.
既存研究
11
A
B C and
A
B D and +
A
B C or D
and
C D or
A
B
C D
E E NOP E
or
青:共通ゴール
白:可変ゴール
• 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける
ゴールモデル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-
Variability Software Design, ICIST2008.
問題:共通ゴールの判別手法が自明でない
「共通」と「非共通」と「可変」
12
A B 共通 A B 非共通
A 非共通
D
C
非共通
非共通
B
AとBは共通ゴール AとBは非共通ゴール
Aは可変ゴール
同じゴール
同じじゃないゴール
共通ゴールの判別は困難
13
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
C
C C
C
C C
C C
C C
• 現場の大規模システムのゴール数は膨大
この中から共通ゴールをすべて早く正確に見つけてください
G1 G2
提案手法の概要
14
A
B C
D E
F
G H
I J
G2
A F
明共通
E J
明可変
と
B G と ゴールモデル
×2
明らかに共通・ 可変なゴール
提案手法を
実装したツール
「C」の共通ゴールランキング
1位:「H」
2位:「I」
「D」の共通ゴールランキング
1位:「I」
2位:「H」
共通ゴール
ランキング
G1
自動で判別(増やしたい)
人手で判別(減らしたい)
ツールの内部処理
15
ゴール名の
類似度を計測
提案ルールを適用
+
閾値を基準に判別
ゴールモデル×2
明らかに共通
明らかに可変
共通ゴール
ランキング ツール
ツールの内部処理
16
ゴール名の
類似度を計測
提案ルールを適用
+
閾値を基準に判別
ゴールモデル×2
明らかに共通
明らかに可変
共通ゴール
ランキング ツール
• 「類似度の高い非共通ゴール」
→ ゴール名が似ているため、
共通ゴールと判別されやすい
• 「類似度の低い共通ゴール」
→ ゴール名が似ていないため、
非共通ゴールと判別されやすい
類似度のみを用いた場合の問題点
17
解決の方針
• 自然言語処理を利用して解決
– オントロジーで意味を与え、類似度をより繊細に計測する
– デメリット1:ドメインごとにオントロジーを用意する必要がある
– デメリット2:「類似度の低い共通ゴール」は見分けられるが、「類似度の高い非共通ゴール」は困難
• ゴールモデルの構造を利用して解決
– 親子ゴールの情報を使う
– メリット1:ドメインごとに何か準備する必要はない
– メリット2:「類似度の低い共通ゴール」、
「類似度の高い非共通ゴール」共に判別可能
18
採用
「類似度の高い非共通ゴール」を見分ける
• より具体的なゴールから共通ゴールのセットを作り除外する
19
ゴール
抽象的な
ゴール
具体的な
ゴール
類似度:0.9
類似度:0.9
抽象的な
ゴール
具体的な
ゴール
具体的な
ゴール
• 「1ゴール1共通」
→ 1つのゴールに対して、共通ゴールは一つまで
• 「下位ゴール優先」
→ 類似度が等しい場合は、より下位のゴールを優先
優先
1. (1-2)と(2-1)は「類似度の高い非共通ゴール」
2. 下位ゴール(1-2)(1-3)(2-2)(2-3)だけで比較
3. (1-2)(2-2)と(1-3)(2-3)の2セットができる
4. 1ゴール1共通なので、これらを除外
5. (1-2)の共通ゴール候補に(2-1)が出現しない
「1ゴール1共通」・「下位ゴール優先」の例
20
0
番組情報や番組説明を
見ることができる(1-1)
番組情報を見ることができる(1-2)
AND AND
番組説明を見ることができる(1-3)
番組の情報を
見ることができる(2-1)
番組情報を見ることができる(2-2)
AND AND
番組説明を見ることができる(2-3)
共通
共通 共通
G1 G2
類似度の高い非共通ゴール
「類似度の低い共通ゴール」を見分ける
• 具体的なゴールの情報を参考に、抽象的なゴールを判別する
21
抽象的な
ゴール
具体的な
ゴール
具体的な
ゴール
• 「子ゴール共通性の反映」
→ 子ゴールの中に「明らかに共通なゴール」が
一つでもあれば、その親ゴールは
「明らかに可変なゴール」にしない
抽象的な
ゴール
具体的な
ゴール
具体的な
ゴール
判別が困難
参考に
1. (1-1)と(2-1)は「類似度の低い共通ゴール」
2. (1-2)と(2-2)は明らかに共通
3. 子ゴール共通性を反映し、その親である(1-1)と(2-1)は
明らかに可変にしない
4. (1-1)と(2-1)は共通ゴールランキングに出現
「子ゴール共通性の反映」の例
22
0
searching in the
search field (1-1)
by user name
(1-2)
AND AND
by words (1-3)
searching friends
(2-1)
by name (2-2)
AND AND
by e-mail address
(2-3)
共通
G1 G2
類似度の低い
共通ゴール
評価実験
ドメイン テレビ SNS 就職支援システム カメラ ゴールモデル名 55X3 55ZX9000 Twitter Facebook リクナビ マイナビ A37 NEX-F3 ゴール数 51 70 31 54 33 84 57 50 正解共通ゴール数 20 9 13 23 企業 同企業 別企業 別企業 同企業 作成者 同作者 同作者 別作者 同作者 言語 日本語 英語 日本語 英語
23
• 実験1:テレビ、SNS、就職支援システム
→ 提案ルール( 「1ゴール1共通」、「下位ゴール優先」、「子ゴール共通性の反映」)
の有効性を評価
• 実験2:カメラ
→ 提案手法全体の有効性を評価
実験1:実験の方法
24
G1 G2
共通ゴール 可変ゴール
正解データ
明らかに共通 明らかに可変
ツールの出力
手動で共通ゴールを判別 自作ツールで共通ゴールを判別
比較
ゴールモデル×2
実験1:テレビの結果
25
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
(threshold)
The process of identifying clearly common goals
(テレビ)
60.00%
70.00%
80.00%
90.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
The process of identifying clearly variable goals
(テレビ)
Before
precision
(threshold)
(threshold)
(threshold)
Before
precision
Before recall Before recall
After precision After precision
After recall After recall
• 明らかに共通
– 提案ルール適用前:0.00%の共通ゴールを判別
– 提案ルール適用後:40.00%の共通ゴールを判別 (40.00%向上)
• 明らかに可変
– 提案ルール適用前:34.57%の可変ゴールを判別
– 提案ルール適用後:34.57%の可変ゴールを判別 (変化なし)
実験1:SNSの結果
26
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
The process of identifying clearly common goals
(SNS)
The process of identifying clearly variable goals
(SNS)
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
60.00%
70.00%
80.00%
90.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
(threshold)
(threshold) (threshold)
(threshold)
Before
precision
Before
precision
Before recall Before recall
After precision After precision
After recall After recall
• 明らかに共通
– 提案ルール適用前:77.78%の共通ゴールを判別
– 提案ルール適用後:77.78%の共通ゴールを判別 (変化なし)
• 明らかに可変
– 提案ルール適用前:16.42%の可変ゴールを判別
– 提案ルール適用後:91.04%の可変ゴールを判別 (74.62%向上)
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
実験1:就職支援システムの結果
27
The process of identifying clearly common goals
(就職サイト)
Before
precision
Before recall
After precision
After recall
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
(threshold)
(threshold)
The process of identifying clearly variable goals
(就職サイト)
Before
precision
Before recall After recall
(threshold)
(threshold)
After precision
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
• 明らかに共通
– 提案ルール適用前:38.46%の共通ゴールを判別
– 提案ルール適用後:53.85%の共通ゴールを判別 (15.39%向上)
• 明らかに可変
– 提案ルール適用前:23.66%の可変ゴールを判別
– 提案ルール適用後:23.66%の可変ゴールを判別 (変化なし)
実験1:考察
• テレビでは「類似度の高い非共通ゴール」が、
SNSでは「類似度の低い共通ゴール」が出現し、
それらを見分けられたことで精度が上がった
• 就職支援システムでは「類似度の低い共通ゴール」を見分けられていない
→ 原因:ゴールモデルの作者が別作者
– 最下位ゴールの分解粒度が粗い
– 最下位ゴールの分解粒度が統一されていない
「子ゴール共通性の反映」は最下位ゴールの
分解粒度が細かく、かつ統一されている場合に有効 28
実験2:実験の方法(チームA)
29
G1 G2
共通ゴール 可変ゴール
手作業で共通ゴールを判別
ゴールモデル×2
作業時間
ツール
実験2:実験の方法(チームB)
30
共通ゴール 可変ゴール
作業時間
C
C
C C
C
C
C
C
C
C C C
C
C
C
G1 C
C C
C
C
C C
C
C
C C C
C
C
G2
ゴールモデル×2
「C」の共通ゴールランキング
1位:「H」
2位:「I」
「D」の共通ゴールランキング
1位:「I」
2位:「H」
手作業で共通ゴールを判別
明共通
明可変
共通ゴール
可変ゴール
実験2:実験結果
• 提案手法を用いた方が…
–作業時間:53.5分→39.25分( 7割の作業時間で)
–適合率:81.69%→92.43%(約10%向上)
–再現率:69.75%→91.30%(約20%向上)
提案手法を用いた方が、
早く正確に多くの共通ゴールを判別できる
31
研究の課題
シナリオ:同一企業内のシステムで
共通ゴールを判別し再利用する
• 別企業のシステムと共通ゴールを判別する場合
– オントロジーを用いて類似度計測手法の精度を上げる
– 最下位ゴールの分解粒度が統一されていない箇所を
自動で見つけ統一する
ことが必要
32
しかし、もし…
まとめ
再利用開発では、
顧客の要求を既存システムの機能に反映できるモデルが必要
既存研究ではゴールモデルを用いて
それを実現しようしているが、
共通ゴールの判別手法が自明でない
本研究で、ゴールモデルの構造に基づいた
共通ゴール判別手法を提案した
実験により、提案ルールが有効な場合とそうでない場合を
明確化し、有効な場合は作業の効率化に貢献することがわかった 33
研究成果
• 論文誌:
中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦
"ソフトウェア再利用に向けた共通ゴール判別手法の提案“
日本ソフトウェア科学会誌「コンピュータソフトウェア」「ソフトウェア工学」
特集2013(投稿中).
• 国内査読付きシンポジウム:
中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦
"ゴールモデルの構造に基づいた共通ゴール判別手法の提案"
第19 回ソフトウェア工学の基礎ワークショップ2012(FOSE2012) (2012.12).
• その他研究発表:
中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦
"ソフトウェア再利用に向けた共通ゴール判別手法の提案“
ウインターワークショップ2013 (2013.1). 34
ここから、質問対応用
35
ゴール名の類似度(一般的な既存手法[8]を使用)
• ゴール名を構成する名詞と動詞が一致する割合を算出
(動詞は基本形に変換してから)
類似度 = | X ∩ Y | / | X ∪ Y |
例)「見たい番組を探すことができる」と
「見たい番組を番組表で探すことができる」の場合…
| X ∩ Y |は「見る」「番組」「探す」の3単語
| X ∪ Y |は「見る」「番組」「番組表」「探す」の4単語
→ 類似度は 3 / 4 = 0.75
36
共通要素数 少なくとも一方にある要素数
8. Muhammad Ilyas , Josef Kung: A Similarity Measurement Framework for Requirements Engineering,
ICCGI2009, pp.31-34.
非共通ゴールを共通と判別すると…
37
閾値1
可変 共通 共通 共通
明らかに共通
A
B C
A
B C
• 本来なくてもいい機能
• ユーザビリティが低下
• 手戻り 1
共通ゴールを可変と判別すると…
38
閾値2
可変 可変 可変 共通
明らかに可変
A
C B
A
C B
• 必要な機能がない
• ユーザビリティが低下
• 手戻り 0
類似度と閾値
39
似てない 似ている
明らかに共通
明らかに可変
閾値2
共通ゴール
ランキング
閾値1
0 1 類似度
+
提案ルール
• 類似度+提案ルールに閾値(基準)を設定し、
それに従ってツールが共通・可変を判別する仕様に
閾値1・閾値2の値はいくらにしよう…??
最適な閾値を求めるために1
最適な閾値(共通ゴールのみ・可変ゴールのみを
正しく判別できる閾値)をどうやって見つけよう
• 閾値の値はゴールモデルによって違う
• 正解の共通ゴールが分からないと、最適な閾値もわからない
• ゴールモデルの一部だけを使って、手作業で正解の共通ゴールを判別するのは??
• そしてその部分で閾値を出せばいいのでは??
40
閾値の求め方(予備実験の方法)
41
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
共通ゴール 可変ゴール
正解データ
専門家
正解データだけで
最適な閾値を算出
自作ツール
G1 G2
テレビ、SNSのゴール例
42
テレビ
• 共通ゴール:チャンネルを選ぶことができる
画面を二画面で見ることができる など
• 可変ゴール: 3D映像を楽しむことができる(テレビ1)
降雨対応放送を利用できる(テレビ2) など
SNS
• 共通ゴール: signing up account
uploading profile picture など
• 可変ゴール: adding hash tags (twitter)
using wall tab (Facebook) など
就職支援システム
• 共通ゴール:企業をフリーワードで検索できる
企業を本社や勤務地の場所から検索できる など
• 可変ゴール: 1週間以内に説明会が開催される企業を検索
できる(リクナビ)
企業を採用実績校で検索できる(マイナビ) など
カメラ
• 共通ゴール: recognizes the scene
Installing the software など
• 可変ゴール: hold the camera (A37)
Using the self-timer (NEX-F3) など
就職支援システム、カメラのゴール例
43
実験2:実験の方法(チームB-ステップ1)
44
手作業で共通ゴールを判別
G1 G2
ゴールモデルの一部×2
共通ゴール 可変ゴール
作業時間1
C
C
C C
C
C
C
C
C
C C C
C
C
C
G1 C
C C
C
C
C C
C
C
C C C
C
C
G2
ゴールモデル×2
閾値
ツール
提案ルールが上手く機能しない場合の例
「企業を詳細な業種で複数選択し検索できる」
(リクナビ)
と
「業種を小分類で検索できる」
(マイナビ)
は、類似度の低い共通ゴール
しかし、これ以上分解されていないため
子ゴール共通性を反映できない 45
フィーチャロケーション[9]
• フィーチャとコードを対応付ける
46
必須フィーチャ:スタック
任意フィーチャ:ロック
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.
コードのモジュール化[10]
• #define,ifdef,endifで
ロックを付け替え可能に
47
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.
ゴールモデルの入力
番組情報や番組説明を見ることができる(1-1)
(タブ)番組情報を見ることができる(1-2)
(タブ)番組説明を見ることができる(1-3)
48
番組情報や番組説明を
見ることができる(1-1)
番組情報を見ることができる(1-2)
AND AND
番組説明を見ることができる(1-3)
• ゴールNo:ツールに入力した順に振られる
• ゴール名:ゴールの名前
• レイヤNo:タブの数で判別
• 親ゴールNo:タブの数で判別
• テキスト形式で入力
提案手法に至るまで
共通ゴールの判別手法が自明でない
全自動で共通ゴールを判別したい
全自動・高精度で判別は難しい
なら、半自動・高精度を目指そう
手動の部分もできるだけ楽にしよう
49
提案ルールに至るまで
類似度の高い非共通ゴールと
類似度の低い共通ゴールを正しく見分けられない
自分なら、どうやって見分けるだろう??
親子ゴールの情報を参考にするだろうな…
アルゴリズム化して実装しよう
ヒューリスティックな手法だけど、上手くいったな
50