130531 francis nahm - on the evolution of antipatterns genealogies

22
HOW ANTIPATTERNS ARE INTODUCED IN THE CODE AND WHAT LINKS THEY HAVE WITH THE EVOLUTION OF THE CLASSES? IMPACT OF ANTIPATTERNS ON SOFTWARES QUALITY By Francis NAHM Date: 31 May 2013 Supervisor Professor: Foutse KHOMH

Upload: ptidej-team

Post on 27-May-2015

75 views

Category:

Technology


2 download

DESCRIPTION

Anti-patterns, evolution, genealogies

TRANSCRIPT

Page 1: 130531   francis nahm - on the evolution of antipatterns genealogies

HOW ANTIPATTERNS ARE

INTODUCED IN THE CODE AND

WHAT LINKS THEY HAVE WITH THE

EVOLUTION OF THE CLASSES?

IMPACT OF ANTIPATTERNS ON SOFTWARES QUALITY

By Francis NAHM Date: 31 May 2013

Supervisor Professor: Foutse KHOMH

Page 2: 130531   francis nahm - on the evolution of antipatterns genealogies

SUMMARY

I. Context of the study

II. Tools Used

III. First Results

IV. Remaining Work

Page 3: 130531   francis nahm - on the evolution of antipatterns genealogies

Context of the study

The study of antipatterns and their impact is not a new concern for researchers.

However, many studies thus far did not link the evolution of classes to antipatterns

The goal of this study is to establish existing links between antipatterns and evolution of classes.

Page 4: 130531   francis nahm - on the evolution of antipatterns genealogies

Context of the study

2 importants steps:

First step: How and When Antipatterns are introduced in

the code

Second step: Links between these antipatterns and the

classes evolution

Page 5: 130531   francis nahm - on the evolution of antipatterns genealogies

Tools Used

SAD Tool:

Used to detects design patterns and anti patterns in classes

Example of programs aanalyzed : ArgoUML, Netbeans, Eclipse (In progress)

Very very long to detect Design Pattern; creation of the model is extremely expensive in time and resource

Results are stored in a database in two tables:

Page 6: 130531   francis nahm - on the evolution of antipatterns genealogies

SAD Tool

Table for antipatterns detection

Page 7: 130531   francis nahm - on the evolution of antipatterns genealogies

SAD Tool

Table for design patterns detection

Page 8: 130531   francis nahm - on the evolution of antipatterns genealogies

SAD Tool

The two previous table are joined with table containing all the classes of the program to obtain this final table:

Page 9: 130531   francis nahm - on the evolution of antipatterns genealogies

SAD Tool

This table contains all the information to generate three other useful tables:

A table containing characteristics of each class for each version

Page 10: 130531   francis nahm - on the evolution of antipatterns genealogies

SAD Tool

o With this table, we can create a table containing for each class changement from one version to another

Page 11: 130531   francis nahm - on the evolution of antipatterns genealogies

SAD Tool

This table allows us to organize classes in 4 groups: stable classes, stabilized classes; deteriorated classes and improved classes

Page 12: 130531   francis nahm - on the evolution of antipatterns genealogies

SAD Tool

With this 3 tables, we can compute stats on programs: Average time for a default add/remove, Percent of classes added/removed at each version ….

Page 13: 130531   francis nahm - on the evolution of antipatterns genealogies

SAD Tool

Page 14: 130531   francis nahm - on the evolution of antipatterns genealogies

Tools Used

Evolizer

Used to extract changes between two subsequent files

Changes are stored in a database.

Used with a SVN repository, it gives all the evolution of the classes from one specified revision to another one

Still not able to use it on my computer

Page 15: 130531   francis nahm - on the evolution of antipatterns genealogies

Evolizer and SAD

By crossing data from SAD and Evolizer, we will be able to detect which kind of changement in the class is more likely to introduce a specific default (antipattern or bugs) in the future

The main idea is to determine for the developers what are the way of coding which are risked.

Page 16: 130531   francis nahm - on the evolution of antipatterns genealogies

RESULTS

Page 17: 130531   francis nahm - on the evolution of antipatterns genealogies

ArgoUML results

Some general stats by version:

0.10.1

30/12/1899

0.18.1

30/12/1899

30/12/1899

30/12/1899

30/12/1899

0.30.2

0.32.1

30/12/1899

0

10

20

30

40

50

60

70

Percents of classes with APs

0.10.1

30/12/1899

0.18.1

30/12/1899

30/12/1899

30/12/1899

30/12/1899

0.30.2

0.32.1

30/12/1899

0

5

10

15

20

25

30

35

Percent of added classes

0.10.1

30/12/1899

0.18.1

30/12/1899

30/12/1899

30/12/1899

30/12/1899

0.30.2

0.32.1

30/12/1899

0

5

10

15

20

25

30

Percent of classes removed

0.10.1

30/12/1899

0.18.1

30/12/1899

30/12/1899

30/12/1899

30/12/1899

0.30.2

0.32.1

30/12/1899

0

10

20

30

40

50

60

Percent of APs added

0.10.1

30/12/1899

0.18.1

30/12/1899

30/12/1899

30/12/1899

30/12/1899

0.30.2

0.32.1

30/12/1899

0

5

10

15

20

25

30

Percent of APs removed

Page 18: 130531   francis nahm - on the evolution of antipatterns genealogies

ArgoUML Results

Page 19: 130531   francis nahm - on the evolution of antipatterns genealogies

ArgoUML results

Repartition of groups

Deteriorated classes percent: 18.11

Improved classes percent: 13.28

Stable classes percent: 61.12

Stabilized classes percent: 7.47

Page 20: 130531   francis nahm - on the evolution of antipatterns genealogies

First Results

Only two programs has been analyzed by SAD tool until now: ArgoUML and Netbeans

According to the results, it seems like there’s no particular links between introduction of antipatterns and designpatterns evolution

Page 21: 130531   francis nahm - on the evolution of antipatterns genealogies

Remaining work

Find a way to operate Evolizer and cross data with SAD results.

Check the SVN logs to get usefuls information like the modifiers, or the bugs and cross this data with SAD results.

Re-Organize the actual way it’s coded..

Page 22: 130531   francis nahm - on the evolution of antipatterns genealogies

THANK YOU FOR YOUR ATTENTION