2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

27
FOSE2012発表資料 ゴールモデルの構造に基づいた 共通ゴール判別手法の提案 電気通信大学 大学院情報システム学研究科 M2 中村 祐貴

description

 

Transcript of 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

Page 1: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

FOSE2012発表資料

ゴールモデルの構造に基づいた

共通ゴール判別手法の提案

電気通信大学

大学院情報システム学研究科 M2

中村 祐貴

Page 2: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

Software Product Line Engineering

• 既存システムを再利用すると効率よく開発できる[1]

→ 顧客が再利用すべき機能を選択しやすいように

既存システムをモデル化することが重要[2]

1

機能1 機能2

機能3 機能4

機能5 機能6

機能1 機能2

機能3 機能4

機能5 機能6

機能1 機能2

機能3

機能4 機能5

機能5

既存システム 既存システム

新システム 新システム

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.

Page 3: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

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.

既存研究で扱っているモデル例1

2

録画機能

ブルーレイディスク

機能

ハードディスク

ドライブ機能

よくわからない よくわからない

• フィーチャモデル[3]だけでは、システムの機能に

詳しくない顧客は必要な機能を選べない

フィーチャモデル

どっちが

必要ですか??

どっちが

必要ですか??

Page 4: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software

Specications, Wiley, 2009.

既存研究で扱っているモデル例2

3

番組を録画できる

ブルーレイディスクで録画できる

ハードディスクドライブで録画できる

抽象的な

要求

抽象的な

要求

録画して持ち

運びできる

大容量で

録画できる

抽象的な

要求

抽象的な

要求

そうか、

この機能が

必要なのか!!

そうか、

この機能が

必要なのか!!

抽象的な

要求

抽象的な

要求 or

ゴールモデル

• ゴールモデル[4]があると、

要求を辿ることで必要な機能に到達できる

具体的な

機能

具体的な

機能

Page 5: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

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.

既存研究で扱っているモデル例3

4

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 結合ゴールモデル フィーチャモデル

問題:共通ゴールの判別手法が自明でない

Page 6: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

共通ゴールの判別は困難

5

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

Page 7: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

1. 明らかに共通なゴールを判別

2. 明らかに可変なゴールを判別

3. 共通ゴールランキングで共通ゴールを判別

提案手法の概要

6

「C」の共通ゴールランキング

1位:「F」

2位:「G」

:

「D」の共通ゴールランキング

1位:「G」

2位:「F」

:

A

B C

D E

明らかに共通なゴール

明らかに可変なゴール

A

B F

G H

C

D

F

G

明らかに共通・可変な

ゴールを除外

残ったゴールで

共通ゴール

ランキングを作成 明らかに共通・可変な

ゴールを抽出

G1 G2

G2 G1

ゴールの類似度に

基づいて判別

ゴールの類似度に

基づいて判別

自動 自動 手動 手動

Page 8: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

ゴールの類似度(一般的な既存手法[7]を使用)

• 名詞と動詞だけでジャッカード係数を算出

(動詞は基本形に変換)

類似度 = | X ∩ Y | / | X ∪ Y |

例)「見たい番組を探すことができる」と

「見たい番組を番組表で探すことができる」の場合…

| X ∩ Y |は「見る」「番組」「探す」の3単語

| X ∪ Y |は「見る」「番組」「番組表」「探す」の4単語

→ 類似度は 3 / 4 = 0.75

7

共通要素数 少なくとも一方にある要素数

7. Muhammad Ilyas , Josef Kung: A Similarity Measurement Framework for Requirements Engineering,

ICCGI2009, pp.31-34.

Page 9: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

類似度と閾値

• 閾値1より類似度が高い:明らかに共通なゴール

• 閾値2より類似度が低い:明らかに可変なゴール

• 閾値1と閾値2の間:共通・可変が曖昧なゴール

(共通ゴールランキングとして提示)

0 1

8

似てない 似ている

明らかに共通 明らかに可変

閾値2

共通ゴール

ランキング

閾値1

類似度だけで判別すると、問題が発生する

Page 10: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

明らかに共通(問題と提案ルール)

問題:類似度だけだと、類似度が高い可変ゴールを

誤って明らかに共通と判断してしまう

原因:親子でゴール名が似ていて、

共通ゴールの親子ゴールを共通と判断してしまう

解決:より具体的なゴールからセットを作り除外する

「1ゴール1共通」

→ 1つのゴールに対して、共通ゴールは1つまで

「下位ゴール優先」

→ 類似度が等しい場合は下位ゴールを優先して共通とする

9

新規性あり 新規性あり

Page 11: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

1. (1-2)と(2-1)は共通ゴールではないが、類似度は1.00と高い

→ (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)が出現しない

明らかに共通(提案ルールの例)

10

0

番組情報や番組説明を

見ることができる(1-1)

番組情報を見ることができる(1-2)

AND AND

番組説明を見ることができる(1-3)

番組の情報を

見ることができる(2-1)

番組情報を見ることができる(2-2)

AND AND

番組説明を見ることができる(2-3)

共通

共通 共通

G1 G2

共通と判別されやすい

Page 12: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

明らかに可変(問題と提案ルール)

問題:類似度だけだと、類似度が低い共通ゴールを

誤って明らかに可変と判断してしまう

原因:同じ内容のゴールを、

別の単語を用いて記述しているから

解決:「子ゴール共通性の反映」

→ 子ゴールの中に明らかに共通なゴールが

1つでもあれば、その親ゴールは

明らかに可変にしない

11

新規性あり 新規性あり

Page 13: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

1. (1-1)と(2-1)は共通ゴールだが、類似度は0.17と低い

→ (1-1)と(2-1)は類似度だけでは「明らかに可変」と判別される

2. (1-2)と(2-2)は明らかに共通

3. 子ゴール共通性を反映し、その親である(1-1)と(2-1)は

明らかに可変にしない

4. (1-1)と(2-1)は共通ゴールランキングに出現

明らかに可変(提案ルールの例)

12

0

番組を条件を絞り込んで

探すことができる(1-1)

キーワードで探す

ことができる(1-2)

AND AND

ジャンルで探す

ことができる(1-3)

検索条件を

指定できる(2-1)

キーワードで探す

ことができる(2-2)

AND AND

日付で探す

ことができる(2-3)

共通

G1 G2

可変と判別されやすい

Page 14: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

評価実験(実験で用いたゴールモデル)

13

テレビ

• 共通ゴール:チャンネルを選ぶことができる

画面を二画面で見ることができる など

• 可変ゴール: 3D映像を楽しむことができる(テレビ1)

降雨対応放送を利用できる(テレビ2) など

SNS

• 共通ゴール: signing up account

uploading profile picture など

• 可変ゴール: adding hash tags (twitter)

using wall tab (Facebook) など

Page 15: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

評価実験(実験の方法)

14

テレビ1 テレビ2 SNS1 SNS2

共通ゴール 可変ゴール

正解データ

明らかに共通 明らかに可変

ツールの出力

手動で共通ゴールを判別 自作ツールで共通ゴールを判別

ゴール数:51 ゴール数:70 ゴール数:31 ゴール数:54

比較

Page 16: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

評価実験(評価項目)

• 明らかに共通なゴールを判別

– 「1ゴール1共通」「下位ゴール優先」を用いる前後で

適合率100%時の再現率を評価

• 明らかに可変なゴールを判別

– 「子ゴール共通性の反映」を用いる前後で

適合率100%時の再現率を評価

• 共通ゴールランキングで共通ゴールを判別

– 明らかに共通・可変なゴールを除外する前後で正解共通

ゴールが出現する順位の変化を評価

– 「ランキング適用前」・「ランキング適用後」・「除外ありの

ランキング適用後」の3段階に分け照合回数を評価

15

Page 17: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

明らかに共通・可変(テレビ)の結果

16

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

(TV)

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

(TV)

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%の可変ゴールを判別 (変化なし)

Page 18: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

明らかに共通・可変(SNS)の結果

17

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%向上)

Page 19: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

共通ゴールランキングの結果

18

no rankingusing

ranking

usingranking

withremove

times of collation 2870 2202 363

0

500

1000

1500

2000

2500

3000

Times of collation of goal(TV)

no rankingusing

ranking

usingranking

withremove

times of collation 1431 1197 2

0

300

600

900

1200

1500

Times of collation of goal(SNS)

• テレビ

– 順位:1.60位(除外前)→1.17位(除外後)(0.43位向上)

– 照合回数:21.55%削減(除外前)→87.35%削減(除外後)

• SNS

– 順位:1.00位(除外前) →1.00位(除外後)

– 照合回数:16.35%削減(除外前) →99.86%削減(除外後)

Page 20: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

実験の考察

• テレビは同企業(全体的に類似度が高い)

• SNSは別企業(全体的に類似度が低い)

のものを用いた

• 明らかに共通:「1ゴール1共通」「下位ゴール優先」

→ 全体的に類似度が高い場合(同企業)に有効

• 明らかに可変:「子ゴール共通性の反映」

→ 全体的に類似度が低い場合(別企業)に有効

• 結論:類似度が高くても低くても手法は有効 19

Page 21: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

まとめ

SPLE(再利用開発)では、

顧客の要求を既存システムの機能に反映できるモデルが必要

既存研究ではゴールモデルを用いて

それを実現しようしているが、

共通ゴールの判別手法が考慮されていない

本研究で、ゴールモデルの構造に基づいた

共通ゴール判別手法を提案した

実験により、

本手法はゴール名の類似性に関係なく有効だと判明

20

Page 22: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

手法が有効でない場合

• GMも正解データも人手で作るため、ミス(記述ミス・見逃しなど)が混ざる

→ 扱うデータにミスがあると、明らかに共通・可変なゴールを

正しく判別・評価できない

• ゴールによってゴール名の長さが異なる

→ ジャッカード係数だと長さの違いに影響され正しい類似度を算出できない可能性がある

• 最下位ゴールを、分解できるところまで完全に分解しきれてないことが多い

→ 「子ゴール共通性の反映」がうまく機能しない 21

Page 23: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

今後の課題

より多くのドメインで実験して考察する

手法が有効な場合とそうでない場合を

明確化する

本研究で扱うことができる

ゴールモデルの条件を定義する

条件を緩められるように手法を拡張していく 22

Page 24: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

ここから

質問対応用スライド

23

Page 25: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

閾値の求め方(予備実験の方法)

24

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%・再現率最大

で明らかに共通・可変を判別できる閾値を算出

自作ツール

G1 G2

Page 26: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

明らかに共通・可変(テレビ)の結果

の詳細説明

25

0.00%

10.00%

20.00%

30.00%

40.00%

50.00%

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 (threshold)

The process of identifying clearly common goals

(TV)

Before precision After precision

• 手法を使わないと適合率が100%にならない

→手法を使わないと共通ゴールのみをとってくることができない(類似度が高い可変ゴールが混ざる)

Page 27: 2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

明らかに共通・可変(SNS)の結果

の詳細説明

26

• 閾値が大きいほど、再現率は高い

→手法を使うと、適合率100%時の閾値が大きくなる

(より多くの可変ゴールがとってこれるようになる)

The process of identifying clearly variable goals (SNS)

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)

Before precision

Before recall

After precision

After recall