SlideShare a Scribd company logo
Automatic Generation of
Detection Algorithms for Design Defects

Naouel Moha, Yann-Gaël Guéhéneuc, Pierre Leduc
Ptidej team, GEODES, University of Montreal, Canada
LIFL, INRIA project Jacquard, University of Lille, France

CASCON 2006
October 17-20, 2006, Toronto, Canada
Context


Design Patterns are “good” solutions to recurring design problems



Design Defects (DDs)





are “bad” solutions to recurring problems
2 categories:
 High-level (global) problems: antipatterns [BRO 98]
 Low-level (local) problems: code smells [FOW 99]

Why it is important to detect DDs ?






DDs lessen the quality of OO architectures and impede their
evolution and their maintenance
Maintenance is expensive because of DDs [PER 92] : adding,
debugging, and evolving of features are difficult
A good software architecture without DDs: easier to understand,
change, and thus maintain

Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

2
Context


2 examples of high-level DDs


Blob


Large controller class



Many fields and methods with a low cohesion*



Dependent on the data stored in associated
data classes

*How closely the methods are related to the instance variables
in the class. Measure: LCOM (Lack of Cohesion Metric)

Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

3
Context


2 examples of high-level DDs


Spaghetti Code



Lack of structure : no inheritance, no reuse, no
polymorphism



Long process-oriented methods with no
parameters and low cohesion



Moha © ASE 2006

Procedural thinking in OO programming

Excessive use of class and global variables for
processing

Automatic Generation of Detection Algorithms for Design Defects

4
Problem Description


What are the problems ?


Textual descriptions of DDs [Brown 98] [Fowler 99]





Lack of precision and misinterpretations
Difficult to build detection algorithms from textual descriptions

Lack of precise specifications and tools: metrics only

[Marinescu 04]

[Tools: SmallLint, PMD]




Lack of work on high-level DDs




Metrics only : metrics cannot express important structural and semantic
properties

Focus only on low-level DDs (code smells)

Semi-manual detection [Marinescu 04] [Munro 05]

Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

5
Solution
 How to address these problems ?




We propose a language and a framework
to specify precisely high-level DDs in order
to ease and automate their detection

We define a systematic method, called DECOR, to specify high-level DDs
significantly and to generate detection and correction algorithms
from the specifications of DDs

Method in 10 steps

Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

6
Our Approach
We define a systematic method, called DECOR, to specify high-level DDs
significantly and to generate detection and correction algorithms
from the specifications of DDs

 Illustration with the Blob


Blob



Many fields and methods with a low cohesion



Moha © ASE 2006

Large controller class

Dependent on the data stored in data classes
associated

Automatic Generation of Detection Algorithms for Design Defects

7
Specification of Design Defects
Rule Cards


More structured description

RULE_CARD : Blob {
RULE : Blob {ASSOC: associated FROM: MainClass ONE TO: DataClass MANY } ;
RULE : MainClass {UNION LargeClassLowCohesion ControllerClass } ;
RULE : LargeClassLowCohesion {UNION LargeClass LowCohesion } ;
RULE : LargeClass { (METRIC: NMD + NAD, VERY_HIGH) } ;
RULE : LowCohesion { (METRIC: LCOM5, VERY_HIGH) } ;
RULE : ControllerClass {UNION (SEMANTIC: METHODNAME, {Process, Main, Ctrl})
(SEMANTIC: CLASSNAME, {Process, Main, Ctrl)};
RULE : DataClass { (STRUCT: METHOD, Accessor) } ;
} ;
Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

8
Generation of Detection Algorithms


SAD Framework (Software Architectural Defects)








A meta-model to instantiate rule cards of DDs
A parser to analyse and reify rule cards
A repository of metrics
Services to analyse structural relationships
Services to perform semantic and structural analyses

Concrete Generation
1. Parse the rule card
2. Build a model representing this rule card
3. Visit the model of the rule card
4. Generate the detection algorithm

Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

9
Our Approach
We define a systematic method, called DECOR, to specify high-level DDs
significantly and to generate detection and correction algorithms
from the specifications of DDs

Method in 10 steps

Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

10
Preliminary Results
We specify and detect DDs in several open-source programs
Blob
ArgoUML

Precisions
Time

GanttProject

PMD

QuickUML

113 KLOC
1230 classes

Effectifs

Azureus
192 KLOC
1449 classes

22 KLOC
188 classes

42 KLOC
423 classes

9 KLOC
142 classes

Total

91

143

19

15

3

271

70/91
= 76.9%

82/143
= 57.3%

10/19
= 52.6%

3/15
= 20%

1/3
= 33.3%

166/271
= 61.5%

40.5s

2m

5.6s

31.6s

2.1s

3m 19.8s

Spaghetti Code
ArgoUML
Effectifs
Precisions
Time

Azureus

GanttProject

PMD

QuickUML

Total

26

35

8

11

1

81

21/26
= 80.7%

29/35
= 82.8%

6/8
= 75%

6/11
= 54.5%

0/1
= 0%

62/81
= 76.6%

39s

1m55s

5.4s

31s

1.9s

3m12s

 Results are encouraging ! 
Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

11
Conclusion


Contributions
 Meta-model enriched with semantic and structural
properties
 Rule-based Language & Framework
 Method DECOR in 10 steps



Our approach




A systematic method based on a meta-model and a rule-based
language to generate automatically detection and correction
algos of high-level DDs

Future Work




Correction of DDs
More defects and case studies including commercial programs
Use of a dictionnary such as WordNet for semantics

Moha © ASE 2006

Automatic Generation of Detection Algorithms for Design Defects

12

More Related Content

What's hot

Resume_Nov2016 - LinkedIn
Resume_Nov2016 - LinkedInResume_Nov2016 - LinkedIn
Resume_Nov2016 - LinkedIn
Magnus Hök
 
Interactive Requirements Prioritization Using Search Based Optimization Techn...
Interactive Requirements Prioritization Using Search Based Optimization Techn...Interactive Requirements Prioritization Using Search Based Optimization Techn...
Interactive Requirements Prioritization Using Search Based Optimization Techn...
Francis Palma
 
Software developer occupational brief
Software developer occupational briefSoftware developer occupational brief
Software developer occupational brief
Enda Crossan
 
A Regression Analysis Approach for Building a Prediction Model for System Tes...
A Regression Analysis Approach for Building a Prediction Model for System Tes...A Regression Analysis Approach for Building a Prediction Model for System Tes...
A Regression Analysis Approach for Building a Prediction Model for System Tes...
MIMOS Berhad/Open University Malaysia/Universiti Teknologi Malaysia
 
Understanding software metrics
Understanding software metricsUnderstanding software metrics
Understanding software metrics
Tushar Sharma
 
Incremental
IncrementalIncremental
Incremental
Waed Shagareen
 
Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012
Neelamani Samal
 
Correctness
CorrectnessCorrectness
Correctness
Hamza Khan
 
Slides chapter 15
Slides chapter 15Slides chapter 15
Slides chapter 15
Priyanka Shetty
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
Amr E. Mohamed
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
NancyBeaulah_R
 
Machine Learning Approach for Quality Assessment and Prediction in Large Soft...
Machine Learning Approach for Quality Assessmentand Prediction in Large Soft...Machine Learning Approach for Quality Assessmentand Prediction in Large Soft...
Machine Learning Approach for Quality Assessment and Prediction in Large Soft...
RAKESH RANA
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
Fáber D. Giraldo
 
Slides chapters 21-23
Slides chapters 21-23Slides chapters 21-23
Slides chapters 21-23
Priyanka Shetty
 
software engineering
software engineeringsoftware engineering
software engineering
ramyavarkala
 
Refactoring for software design smells - icse 2014 tutorial
Refactoring for software design smells - icse 2014 tutorialRefactoring for software design smells - icse 2014 tutorial
Refactoring for software design smells - icse 2014 tutorial
Ganesh Samarthyam
 
Improving software econimics
Improving software econimicsImproving software econimics
Improving software econimics
Kalica Wadhwa
 
Ch01
Ch01Ch01
Ch01
蕭美蓮
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
Ivano Malavolta
 

What's hot (19)

Resume_Nov2016 - LinkedIn
Resume_Nov2016 - LinkedInResume_Nov2016 - LinkedIn
Resume_Nov2016 - LinkedIn
 
Interactive Requirements Prioritization Using Search Based Optimization Techn...
Interactive Requirements Prioritization Using Search Based Optimization Techn...Interactive Requirements Prioritization Using Search Based Optimization Techn...
Interactive Requirements Prioritization Using Search Based Optimization Techn...
 
Software developer occupational brief
Software developer occupational briefSoftware developer occupational brief
Software developer occupational brief
 
A Regression Analysis Approach for Building a Prediction Model for System Tes...
A Regression Analysis Approach for Building a Prediction Model for System Tes...A Regression Analysis Approach for Building a Prediction Model for System Tes...
A Regression Analysis Approach for Building a Prediction Model for System Tes...
 
Understanding software metrics
Understanding software metricsUnderstanding software metrics
Understanding software metrics
 
Incremental
IncrementalIncremental
Incremental
 
Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012
 
Correctness
CorrectnessCorrectness
Correctness
 
Slides chapter 15
Slides chapter 15Slides chapter 15
Slides chapter 15
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
Machine Learning Approach for Quality Assessment and Prediction in Large Soft...
Machine Learning Approach for Quality Assessmentand Prediction in Large Soft...Machine Learning Approach for Quality Assessmentand Prediction in Large Soft...
Machine Learning Approach for Quality Assessment and Prediction in Large Soft...
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
 
Slides chapters 21-23
Slides chapters 21-23Slides chapters 21-23
Slides chapters 21-23
 
software engineering
software engineeringsoftware engineering
software engineering
 
Refactoring for software design smells - icse 2014 tutorial
Refactoring for software design smells - icse 2014 tutorialRefactoring for software design smells - icse 2014 tutorial
Refactoring for software design smells - icse 2014 tutorial
 
Improving software econimics
Improving software econimicsImproving software econimics
Improving software econimics
 
Ch01
Ch01Ch01
Ch01
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 

Viewers also liked

Ppap13b.ppt
Ppap13b.pptPpap13b.ppt
Ppap13b.ppt
Ptidej Team
 
130823 eric vitouley - supporting source code maintenance using screencasts
130823   eric vitouley - supporting source code maintenance using screencasts130823   eric vitouley - supporting source code maintenance using screencasts
130823 eric vitouley - supporting source code maintenance using screencasts
Ptidej Team
 
130817 latifa guerrouj - context-aware source code vocabulary normalization...
130817   latifa guerrouj - context-aware source code vocabulary normalization...130817   latifa guerrouj - context-aware source code vocabulary normalization...
130817 latifa guerrouj - context-aware source code vocabulary normalization...
Ptidej Team
 
Wcre12a.ppt
Wcre12a.pptWcre12a.ppt
Wcre12a.ppt
Ptidej Team
 
Icpc13.ppt
Icpc13.pptIcpc13.ppt
Icpc13.ppt
Ptidej Team
 
130918 maelick claes - ecological studies of open source software ecosystems
130918   maelick claes - ecological studies of open source software ecosystems130918   maelick claes - ecological studies of open source software ecosystems
130918 maelick claes - ecological studies of open source software ecosystems
Ptidej Team
 
130719 sebastiano panichella - who is going to mentor newcomers in open sou...
130719   sebastiano panichella - who is going to mentor newcomers in open sou...130719   sebastiano panichella - who is going to mentor newcomers in open sou...
130719 sebastiano panichella - who is going to mentor newcomers in open sou...
Ptidej Team
 
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
Ptidej Team
 
Cpaior13.ppt
Cpaior13.pptCpaior13.ppt
Cpaior13.ppt
Ptidej Team
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
Ptidej Team
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
Ptidej Team
 
131010 jim cordy - submodel pattern extraction for simulink models
131010   jim cordy - submodel pattern extraction for simulink models131010   jim cordy - submodel pattern extraction for simulink models
131010 jim cordy - submodel pattern extraction for simulink models
Ptidej Team
 

Viewers also liked (12)

Ppap13b.ppt
Ppap13b.pptPpap13b.ppt
Ppap13b.ppt
 
130823 eric vitouley - supporting source code maintenance using screencasts
130823   eric vitouley - supporting source code maintenance using screencasts130823   eric vitouley - supporting source code maintenance using screencasts
130823 eric vitouley - supporting source code maintenance using screencasts
 
130817 latifa guerrouj - context-aware source code vocabulary normalization...
130817   latifa guerrouj - context-aware source code vocabulary normalization...130817   latifa guerrouj - context-aware source code vocabulary normalization...
130817 latifa guerrouj - context-aware source code vocabulary normalization...
 
Wcre12a.ppt
Wcre12a.pptWcre12a.ppt
Wcre12a.ppt
 
Icpc13.ppt
Icpc13.pptIcpc13.ppt
Icpc13.ppt
 
130918 maelick claes - ecological studies of open source software ecosystems
130918   maelick claes - ecological studies of open source software ecosystems130918   maelick claes - ecological studies of open source software ecosystems
130918 maelick claes - ecological studies of open source software ecosystems
 
130719 sebastiano panichella - who is going to mentor newcomers in open sou...
130719   sebastiano panichella - who is going to mentor newcomers in open sou...130719   sebastiano panichella - who is going to mentor newcomers in open sou...
130719 sebastiano panichella - who is going to mentor newcomers in open sou...
 
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
 
Cpaior13.ppt
Cpaior13.pptCpaior13.ppt
Cpaior13.ppt
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 
131010 jim cordy - submodel pattern extraction for simulink models
131010   jim cordy - submodel pattern extraction for simulink models131010   jim cordy - submodel pattern extraction for simulink models
131010 jim cordy - submodel pattern extraction for simulink models
 

Similar to Cascon06 tooldemo.ppt

Cascon06 tooldemo.ppt
Cascon06 tooldemo.pptCascon06 tooldemo.ppt
Cascon06 tooldemo.ppt
Yann-Gaël Guéhéneuc
 
Ase06.ppt
Ase06.pptAse06.ppt
ASE06.ppt
ASE06.pptASE06.ppt
ASE06.ppt
Ptidej Team
 
Fase08.ppt
Fase08.pptFase08.ppt
Waterfall model
Waterfall modelWaterfall model
Waterfall model
LPK Any Komputer
 
Accelerated Disassembly, Reconstruction and Reversing training public slides
Accelerated Disassembly, Reconstruction and Reversing training public slidesAccelerated Disassembly, Reconstruction and Reversing training public slides
Accelerated Disassembly, Reconstruction and Reversing training public slides
Dmitry Vostokov
 
MOND Semantics Integration
MOND Semantics IntegrationMOND Semantics Integration
MOND Semantics Integration
Sales Emea
 
Productivity mdd mdb_code_centric
Productivity mdd mdb_code_centricProductivity mdd mdb_code_centric
Productivity mdd mdb_code_centric
Santiago Meliá
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software Engineering
Jordi Cabot
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
timtebeek1
 
FASE08.ppt
FASE08.pptFASE08.ppt
FASE08.ppt
Ptidej Team
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
gjuljo
 
DAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - IntroductionDAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - Introduction
Dragan Nikolić
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosa
Pharo
 
A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small Projects
Gabor Guta
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
David Solivan
 
Architecture Design Decisions and Group Decision Making
Architecture Design Decisions and Group Decision MakingArchitecture Design Decisions and Group Decision Making
Architecture Design Decisions and Group Decision Making
Henry Muccini
 
Ecoop05 woo ra.ppt
Ecoop05 woo ra.pptEcoop05 woo ra.ppt
Ecoop05 woo ra.ppt
Yann-Gaël Guéhéneuc
 
ECOOP05 WOORa.ppt
ECOOP05 WOORa.pptECOOP05 WOORa.ppt
ECOOP05 WOORa.ppt
Ptidej Team
 
Software testing presentation for engineering students of computer science
Software testing presentation for engineering students of computer scienceSoftware testing presentation for engineering students of computer science
Software testing presentation for engineering students of computer science
AmaanAli86
 

Similar to Cascon06 tooldemo.ppt (20)

Cascon06 tooldemo.ppt
Cascon06 tooldemo.pptCascon06 tooldemo.ppt
Cascon06 tooldemo.ppt
 
Ase06.ppt
Ase06.pptAse06.ppt
Ase06.ppt
 
ASE06.ppt
ASE06.pptASE06.ppt
ASE06.ppt
 
Fase08.ppt
Fase08.pptFase08.ppt
Fase08.ppt
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Accelerated Disassembly, Reconstruction and Reversing training public slides
Accelerated Disassembly, Reconstruction and Reversing training public slidesAccelerated Disassembly, Reconstruction and Reversing training public slides
Accelerated Disassembly, Reconstruction and Reversing training public slides
 
MOND Semantics Integration
MOND Semantics IntegrationMOND Semantics Integration
MOND Semantics Integration
 
Productivity mdd mdb_code_centric
Productivity mdd mdb_code_centricProductivity mdd mdb_code_centric
Productivity mdd mdb_code_centric
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software Engineering
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
FASE08.ppt
FASE08.pptFASE08.ppt
FASE08.ppt
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
DAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - IntroductionDAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - Introduction
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosa
 
A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small Projects
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
Architecture Design Decisions and Group Decision Making
Architecture Design Decisions and Group Decision MakingArchitecture Design Decisions and Group Decision Making
Architecture Design Decisions and Group Decision Making
 
Ecoop05 woo ra.ppt
Ecoop05 woo ra.pptEcoop05 woo ra.ppt
Ecoop05 woo ra.ppt
 
ECOOP05 WOORa.ppt
ECOOP05 WOORa.pptECOOP05 WOORa.ppt
ECOOP05 WOORa.ppt
 
Software testing presentation for engineering students of computer science
Software testing presentation for engineering students of computer scienceSoftware testing presentation for engineering students of computer science
Software testing presentation for engineering students of computer science
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
Ptidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
Ptidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
Ptidej Team
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
Ptidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
Ptidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
Ptidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
Ptidej Team
 
MIPA
MIPAMIPA
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
Ptidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
Ptidej Team
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
Ptidej Team
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
Ptidej Team
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
Ptidej Team
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
Ptidej Team
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
Ptidej Team
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
Ptidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Recently uploaded

leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 

Recently uploaded (20)

leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 

Cascon06 tooldemo.ppt

  • 1. Automatic Generation of Detection Algorithms for Design Defects Naouel Moha, Yann-Gaël Guéhéneuc, Pierre Leduc Ptidej team, GEODES, University of Montreal, Canada LIFL, INRIA project Jacquard, University of Lille, France CASCON 2006 October 17-20, 2006, Toronto, Canada
  • 2. Context  Design Patterns are “good” solutions to recurring design problems  Design Defects (DDs)    are “bad” solutions to recurring problems 2 categories:  High-level (global) problems: antipatterns [BRO 98]  Low-level (local) problems: code smells [FOW 99] Why it is important to detect DDs ?    DDs lessen the quality of OO architectures and impede their evolution and their maintenance Maintenance is expensive because of DDs [PER 92] : adding, debugging, and evolving of features are difficult A good software architecture without DDs: easier to understand, change, and thus maintain Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 2
  • 3. Context  2 examples of high-level DDs  Blob  Large controller class  Many fields and methods with a low cohesion*  Dependent on the data stored in associated data classes *How closely the methods are related to the instance variables in the class. Measure: LCOM (Lack of Cohesion Metric) Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 3
  • 4. Context  2 examples of high-level DDs  Spaghetti Code   Lack of structure : no inheritance, no reuse, no polymorphism  Long process-oriented methods with no parameters and low cohesion  Moha © ASE 2006 Procedural thinking in OO programming Excessive use of class and global variables for processing Automatic Generation of Detection Algorithms for Design Defects 4
  • 5. Problem Description  What are the problems ?  Textual descriptions of DDs [Brown 98] [Fowler 99]    Lack of precision and misinterpretations Difficult to build detection algorithms from textual descriptions Lack of precise specifications and tools: metrics only [Marinescu 04] [Tools: SmallLint, PMD]   Lack of work on high-level DDs   Metrics only : metrics cannot express important structural and semantic properties Focus only on low-level DDs (code smells) Semi-manual detection [Marinescu 04] [Munro 05] Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 5
  • 6. Solution  How to address these problems ?    We propose a language and a framework to specify precisely high-level DDs in order to ease and automate their detection We define a systematic method, called DECOR, to specify high-level DDs significantly and to generate detection and correction algorithms from the specifications of DDs Method in 10 steps Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 6
  • 7. Our Approach We define a systematic method, called DECOR, to specify high-level DDs significantly and to generate detection and correction algorithms from the specifications of DDs  Illustration with the Blob  Blob   Many fields and methods with a low cohesion  Moha © ASE 2006 Large controller class Dependent on the data stored in data classes associated Automatic Generation of Detection Algorithms for Design Defects 7
  • 8. Specification of Design Defects Rule Cards  More structured description RULE_CARD : Blob { RULE : Blob {ASSOC: associated FROM: MainClass ONE TO: DataClass MANY } ; RULE : MainClass {UNION LargeClassLowCohesion ControllerClass } ; RULE : LargeClassLowCohesion {UNION LargeClass LowCohesion } ; RULE : LargeClass { (METRIC: NMD + NAD, VERY_HIGH) } ; RULE : LowCohesion { (METRIC: LCOM5, VERY_HIGH) } ; RULE : ControllerClass {UNION (SEMANTIC: METHODNAME, {Process, Main, Ctrl}) (SEMANTIC: CLASSNAME, {Process, Main, Ctrl)}; RULE : DataClass { (STRUCT: METHOD, Accessor) } ; } ; Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 8
  • 9. Generation of Detection Algorithms  SAD Framework (Software Architectural Defects)       A meta-model to instantiate rule cards of DDs A parser to analyse and reify rule cards A repository of metrics Services to analyse structural relationships Services to perform semantic and structural analyses Concrete Generation 1. Parse the rule card 2. Build a model representing this rule card 3. Visit the model of the rule card 4. Generate the detection algorithm Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 9
  • 10. Our Approach We define a systematic method, called DECOR, to specify high-level DDs significantly and to generate detection and correction algorithms from the specifications of DDs Method in 10 steps Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 10
  • 11. Preliminary Results We specify and detect DDs in several open-source programs Blob ArgoUML Precisions Time GanttProject PMD QuickUML 113 KLOC 1230 classes Effectifs Azureus 192 KLOC 1449 classes 22 KLOC 188 classes 42 KLOC 423 classes 9 KLOC 142 classes Total 91 143 19 15 3 271 70/91 = 76.9% 82/143 = 57.3% 10/19 = 52.6% 3/15 = 20% 1/3 = 33.3% 166/271 = 61.5% 40.5s 2m 5.6s 31.6s 2.1s 3m 19.8s Spaghetti Code ArgoUML Effectifs Precisions Time Azureus GanttProject PMD QuickUML Total 26 35 8 11 1 81 21/26 = 80.7% 29/35 = 82.8% 6/8 = 75% 6/11 = 54.5% 0/1 = 0% 62/81 = 76.6% 39s 1m55s 5.4s 31s 1.9s 3m12s  Results are encouraging !  Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 11
  • 12. Conclusion  Contributions  Meta-model enriched with semantic and structural properties  Rule-based Language & Framework  Method DECOR in 10 steps  Our approach   A systematic method based on a meta-model and a rule-based language to generate automatically detection and correction algos of high-level DDs Future Work    Correction of DDs More defects and case studies including commercial programs Use of a dictionnary such as WordNet for semantics Moha © ASE 2006 Automatic Generation of Detection Algorithms for Design Defects 12