21
Reverse Engineering Feature Models 電気通信大学大学院 大須賀・田原研究室 M2 中村 祐貴

2011 icse-reverse engineering feature models

  • Upload
    n-yuki

  • View
    285

  • Download
    6

Embed Size (px)

Citation preview

Reverse Engineering Feature Models

電気通信大学大学院

大須賀・田原研究室 M2中村 祐貴

発表論文

• タイトル

「Reverse Engineering Feature Models」(フィーチャモデルをリバースエンジニアリング)

• 著者

– Steven She, Rafael Lotufo, Thorsten Berger, Andrzej Wasowski , Krzysztof Czarnecki

• 出典

– 33rd International Conference on Software Engineering(ICSE 2011)

1

year accept rate2009 12%2010 14%2011 14%

概要

• 目的:既存システムの機能の中から、

必要なものを効率よく選択できるようにするため

• 問題:フィーチャの親子関係を判別することが難しい

• 手法:– 記述中の語句の類似性をもとに

親フィーチャの候補をランク付け

– 依存関係に基づき無関係なフィーチャを無視する

• 結論:効率よくフィーチャモデルを作れるようになった2

背景1:再利用開発による効率化

3

• 既存システムの機能の中から、

新システムに必要なものを選択

1から開発するよりも効率がいい

今回必要な機能

今回は不必要な機能

・・・

背景2:現場における再利用開発の実情

4

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能がありすぎて、必要な機能を

見つけ出せない…。

大規模システム

機能数:5000

・・・

背景2:現場における再利用開発の実情

5

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

たぶん、これと…これと…

これがあれば…。

大規模システム

本当は、不必要な機能

本当は、必要な機能

背景2:現場における再利用開発の実情

6

作り直しか…。納期に間に合わないし、予算オーバーだな…。

・・・

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

機能 機能 機能 機能

大規模システム

必要な機能を早く正確に、判別できなければならない

一つの機能を選ぶと、

他に必要な機能も推移的に決まる

必要な機能を早く正確に判別できる

フィーチャ(機能)モデルがあると…

7

携帯電話

通話機能 メール機能

発信機能 着信機能 送信機能 受信機能

必須フィーチャ

任意フィーチャ

フィーチャモデル生成に必要なもの1

8

• 「フィーチャ名」

• 「フィーチャの依存関係」

(必須フィーチャと任意フィーチャの判別)

既存研究を用いると入手できる

フィーチャモデル生成に必要なもの2

9

• 「フィーチャの親子関係」がわからない

(A∧B→C)∧(C→B)

フィーチャの依存関係

A B

C!?

BとCのどっちが親!?

判別できるようにしたい!!

提案手法:親候補ランキングの作成

Bluetoothの親フィーチャは??

• 親フィーチャをランク付けする手法

• 無関係フィーチャを除去する手法 が必要10

親フィーチャのランク付け1• フィーチャの説明文の単語の類似度からランキング

(※説明文はマニュアルやコード中のコメントから入手)

os_kernel Operating system.scheduler I/O scheduling.

1位 networking Networking drivers.2位 ethernet Type of local area networking.

の中から、

bluetooth a network driver.

の親フィーチャを探す 11

親フィーチャのランク付け2

12

• δ(p,s)→ フィーチャpとフィーチャsの類似度

• D1(f):→ フィーチャfの説明文を構成する単語のセット

• D2(p)(w):→ フィーチャpの説明文中にある単語wの個数

親フィーチャのランク付け3

13

• idf(w)

→ 単語wが複数のフィーチャに出現していれば、

単語wは判別には使えないので重みを小さく

• |F|:→ システムを構成するすべてのフィーチャ

• |{f:w∈D1(f)}|:→ 単語wが説明文中にあるフィーチャの数

無関係フィーチャの除去

探索範囲を狭めたい

依存関係から、無関係なフィーチャを除去

14

Bluetoothと依存関係にあるフィーチャを追っていくと…

Ethernetが無関係だとわかる

2つの親候補ランキング

• 親候補ランキング

– RIF:関係するフィーチャだけでランキング

– RAF:すべてのフィーチャでランキング

15

RIFの評価1• RIFのトップ5中に、正解の親フィーチャが

含まれている確率は?(高い方がいい)

16

フィーチャ11位:AA2位:BB3位:CC4位:DD5位:EE

フィーチャ21位:FF2位:GG3位:HH4位:II5位:JJ

フィーチャ31位:KK2位:LL3位:MM4位:NN5位:OO

フィーチャ41位:PP2位:QQ3位:RR4位:SS5位:TT

正解!! 正解!!不正解 不正解

RIFの精度:50%例)

RIFの評価2• Linux:76%、eCos:79%が正解

• %Implsが増える(無関係フィーチャを無視する)

ほど、正解が上位に来る

• 記述中の単語を用いるほど、正解が上位に来る(?)

17

RAFの評価1• RAFで正解率75%を出すには、全体の何%の

フィーチャが必要か? (低い方がいい)

フィーチャ11位:AA

::

50位:EE:

1位までで正解!!

1%のフィーチャで、正解率75%例)

フィーチャ21位:BB

::

50位:FF:

フィーチャ31位:CC

::

50位:GG:

フィーチャ41位:DD

::

50位:HH:

1位までで正解!!

1位までで正解!!

1位までで不正解

100フィーチャ中 18

RAFの評価2• Linux:3%、eCos:6%で正解率75%• 記述中の単語を用いるほど、

少ないフィーチャ数で正解率75%

19

まとめ

再利用開発を有効化するために、

効率よく既存システムの機能を選択できるようにしたい

フィーチャモデルがあればそれが可能だが、

フィーチャの親子関係がわからず作るのが難しい

• 記述中の語句の類似性から、

親フィーチャの候補をランク付け

• 依存関係に基づき無関係なフィーチャを無視する

効率よくフィーチャモデルを作れるようになった 20