This document summarizes a study on the impact of antipatterns on software quality. The study aims to analyze how antipatterns are introduced in code and how they relate to class evolution over multiple versions. The researcher is using the SAD tool to detect antipatterns and design patterns in programs like ArgoUML and Netbeans. Preliminary results from analyzing ArgoUML show general statistics on antipattern introduction and removal over versions, as well as the distribution of class stability groups, but no clear links between antipattern introduction and class evolution yet. Further work includes integrating the Evolizer tool to extract code changes and cross-reference with SAD results.
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
130531 francis nahm - on the evolution of antipatterns genealogies
1. IMPACT OF ANTIPATTERNS
ON SOFTWARES QUALITY
HOW ANTIPATTERNS ARE
INTODUCED IN THE CODE AND
WHAT LINKS THEY HAVE WITH THE
EVOLUTION OF THE CLASSES?
Supervisor Professor: Foutse KHOMH
Date: 31 May 2013
By Francis NAHM
3. 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.
4. 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
5. 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:
8. SAD Tool
The two previous table are joined with table
containing all the classes of the program to obtain
this final table:
9. SAD Tool
This table contains all the information to generate
three other useful tables:
A table containing characteristics of each class for each version
10. SAD Tool
o
With this table, we can create a table containing for each class
changement from one version to another
11. SAD Tool
This table allows us to organize classes in 4 groups: stable
classes, stabilized classes; deteriorated classes and improved
classes
12. 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 ….
14. 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
15. 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.
20. 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
21. 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..