42
Matthew B. Kelly Jason S. Alexander Bram Adams Ahmed E. Hassan Recovering a Balanced Overview of Topics in a Software Domain

Recovering a Balanced Overview of Topics in a Software Domain

  • Upload
    sailqu

  • View
    31

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Recovering a Balanced Overview of Topics in a Software Domain

Matthew B. Kelly Jason S. Alexander Bram Adams Ahmed E. Hassan

Recovering a Balanced Overview of Topics in a Software Domain

Page 2: Recovering a Balanced Overview of Topics in a Software Domain

Domain Analysis

2

Page 3: Recovering a Balanced Overview of Topics in a Software Domain

Domain Analysis

3

address bar

Page 4: Recovering a Balanced Overview of Topics in a Software Domain

Domain Analysis

4

address bartabbedbrowsing

Page 5: Recovering a Balanced Overview of Topics in a Software Domain

Domain Analysis

5

address bartabbedbrowsing

HTML rendering engine

Page 6: Recovering a Balanced Overview of Topics in a Software Domain

Domain Analysis

6

address bartabbedbrowsing

HTML rendering engine

JavaScript engine

Page 7: Recovering a Balanced Overview of Topics in a Software Domain

Domain Analysis

7

address bartabbedbrowsing

HTML rendering engine

JavaScript engine

browser extensions

Page 8: Recovering a Balanced Overview of Topics in a Software Domain

Domain Analysis

8

address bartabbedbrowsing

HTML rendering engine

JavaScript engineGUI components

browser extensions

Page 9: Recovering a Balanced Overview of Topics in a Software Domain

Domain Analysis

9

address bartabbedbrowsing

HTML rendering engine

JavaScript engineGUI components

browser extensions

bookmarks

history

supporting libraries

CSS

XMLA manual, expensive process for large domains!

Page 10: Recovering a Balanced Overview of Topics in a Software Domain

Topic Modeling

10

html css xml javascript png jpeg gif sqlite bmp

gtk event image html button frame window

Page 11: Recovering a Balanced Overview of Topics in a Software Domain

Topic Modeling

11

Latent Dirichlet Allocation

html css xml javascript png jpeg gif sqlite bmp

gtk event image html button frame window

Page 12: Recovering a Balanced Overview of Topics in a Software Domain

Topic Modeling

12

KeywordsTopic

html css xml javascript

A

png jpeg gif bmp image

B

sqliteCLatent Dirichlet

Allocation

gtk event button frame window

D

html css xml javascript png jpeg gif sqlite bmp

gtk event image html button frame window

Page 13: Recovering a Balanced Overview of Topics in a Software Domain

Topic Modeling

13

KeywordsTopic

html css xml javascript

A

png jpeg gif bmp image

B

sqliteC

html css xml javascript png jpeg gif sqlite bmp

gtk event image html button frame window

Latent Dirichlet Allocation

gtk event button frame window

D

A: 0.4B: 0.4C: 0.2D: 0.0

A: 0.2B: 0.2C: 0.0D: 0.6

Page 14: Recovering a Balanced Overview of Topics in a Software Domain

Topic Modeling

14

KeywordsTopic

html css xml javascript

A

png jpeg gif bmp image

B

sqliteC

html css xml javascript png jpeg gif sqlite bmp

gtk event image html button frame window

Latent Dirichlet Allocation

gtk event button frame window

D

A: 0.4B: 0.4C: 0.2D: 0.0

A: 0.2B: 0.2C: 0.0D: 0.6

Human analysis

Page 15: Recovering a Balanced Overview of Topics in a Software Domain

Unbalanced Domain Analysis

15

Page 16: Recovering a Balanced Overview of Topics in a Software Domain

Unbalanced Domain Analysis

16

Corpus

Page 17: Recovering a Balanced Overview of Topics in a Software Domain

Unbalanced Domain Analysis

17

LDACorpus

Topics

Page 18: Recovering a Balanced Overview of Topics in a Software Domain

Unbalanced Domain Analysis

18

No consideration of project sizes.But, useful for prioritizing based on popularity.

LDACorpus

Topics

Page 19: Recovering a Balanced Overview of Topics in a Software Domain

Balanced Domain Analysis

19

LDA

LDA

LDA

Page 20: Recovering a Balanced Overview of Topics in a Software Domain

Balanced Domain Analysis

20

LDA

LDA

LDA

Topics

Topics

Topics

Page 21: Recovering a Balanced Overview of Topics in a Software Domain

Balanced Domain Analysis

21

LDA

LDA

LDA

Topics

Topics

Topics

Clustering

Page 22: Recovering a Balanced Overview of Topics in a Software Domain

Balanced Domain Analysis

22

LDA

LDA

LDA

Topics

Topics

Topics

Clustering

Topics

Page 23: Recovering a Balanced Overview of Topics in a Software Domain

Balanced Domain Analysis

23

LDA

LDA

LDA

Topics

Topics

Topics

Clustering

Topics

Commonalities and variability exposedregardless of size!

Page 24: Recovering a Balanced Overview of Topics in a Software Domain

Case Study: Over 39M Lines of Code

24

Page 25: Recovering a Balanced Overview of Topics in a Software Domain

Case Study: Over 39M Lines of Code

25

TextBased

GUIBased

Page 26: Recovering a Balanced Overview of Topics in a Software Domain

Case Study: Over 39M Lines of Code

26

TextBased

GUIBased

WebBrowsers

Page 27: Recovering a Balanced Overview of Topics in a Software Domain

Case Study: Over 39M Lines of Code

27

TextBased

GUIBased

WebBrowsers

Question:Can Domain Analysis be performed with Topic Models?

Page 28: Recovering a Balanced Overview of Topics in a Software Domain

28

0102030405060708090

100

Percent of Systems

containedin cluster (spread)

Top 10 Topic Clusters

GUIBase

d

Successful Identification of Commonalities & Variability in Subdomain

Page 29: Recovering a Balanced Overview of Topics in a Software Domain

Successful Identification of Commonalities & Variability in Subdomain

0102030405060708090

100

Percent of Systems

containedin cluster (spread)

Top 10 Topic Clusters

29

GTK+ ui framework:gtk, view, window, action

GUIBase

d

Page 30: Recovering a Balanced Overview of Topics in a Software Domain

Successful Identification of Commonalities & Variability in Subdomain

0102030405060708090

100

Percent of Systems

containedin cluster (spread)

Top 10 Topic Clusters

30

GTK+ ui framework:gtk, view, window, action

Qt ui framework:qstring, qwidget, parent, window

GUIBase

d

Page 31: Recovering a Balanced Overview of Topics in a Software Domain

31

0102030405060708090

100

Percent of Systems

containedin cluster (spread)

Top 10 Topic Clusters

TextBased

GUIBased

Web

Browsers

Successful Identification of Commonalities &Variability in Domain

Page 32: Recovering a Balanced Overview of Topics in a Software Domain

Successful Identification of Commonalities &Variability in Domain

TextBased

GUIBased

Web

Browsers

0102030405060708090

100

Percent of Systems

containedin cluster (spread)

Top 10 Topic Clusters

32

layout:view, window, event, widget, terminal, tab

Page 33: Recovering a Balanced Overview of Topics in a Software Domain

Successful Identification of Commonalities &Variability in Domain

TextBased

GUIBased

Web

Browsers

0102030405060708090

100

Percent of Systems

containedin cluster (spread)

Top 10 Topic Clusters

33

layout:view, window, event, widget, terminal, tab

text-based components:text, items, line, term, htext

Page 34: Recovering a Balanced Overview of Topics in a Software Domain

34

02468

101214161820

Unbalanced LDA spreads Topics across Software Systems

Page 35: Recovering a Balanced Overview of Topics in a Software Domain

35

02468

101214161820

Entropy value: 0.43

Unbalanced LDA spreads Topics across Software Systems

Page 36: Recovering a Balanced Overview of Topics in a Software Domain

36

0

2

4

6

8

10

12Balanced LDA spreads Topics across Software Systems

Page 37: Recovering a Balanced Overview of Topics in a Software Domain

37

0

2

4

6

8

10

12

Entropy value: 0.98

Balanced LDA spreads Topics across Software Systems

Page 38: Recovering a Balanced Overview of Topics in a Software Domain

Threats

38

• Comments: more semantic information than code, but often missing

• Only open source systems studied

• Other documentation

• One set of thresholds and cluster size tested

Page 39: Recovering a Balanced Overview of Topics in a Software Domain
Page 40: Recovering a Balanced Overview of Topics in a Software Domain
Page 41: Recovering a Balanced Overview of Topics in a Software Domain
Page 42: Recovering a Balanced Overview of Topics in a Software Domain

VS.