SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction

Support Vector Machines for Anti-pattern
Detection

Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

Abdou Maiga, Nasir Ali, Neelesh Bhattacharya, Aminata
Saban´, Yann-Ga¨l Gu´h´neuc, Giuliano Antoniol, Esma
e
e
e e
A¨
ımeur
´
DGIGL et DIRO, Ecole Polytechnique et Universit´ de Montr´al, Qu´bec,
e
e
e
Canada
E-mails: {abdou.maiga, nasir.ali, n.bhattacharya, a.sabane,
giuliano.antoniol}@polymtl.ca, {guehene, aimeur}@iro.umontreal.ca

ASE 2012
August 15, 2013
Pattern Trace Identification, Detection, and Enhancement in Java
SOftware Cost-effective Change and Evolution Research Lab
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur

Outline
Introduction

Introduction
Related Work

Related Work

Our Approach:
SVMDetect
Study Results

Our Approach: SVMDetect

Discussions
Conclusion and
Future Work
Questions
References

Study Results
Discussions
Conclusion and Future Work
Questions

2 / 25
SVMDetect

Introduction

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

3 / 25

Motivation
Anti-patterns: “poor” solutions to recurring design and
implementation problems.
Impact program comprehension, software evolution and
maintenance activities [8].
Important to detect them early in software
development process, to reduce the maintenance costs
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work

Introduction
Limitations
Current anti-pattern detection approaches have several
limitations:

Our Approach:
SVMDetect

they require extensive knowledge of anti-patterns

Study Results

they have limited precision and recall

Discussions

they cannot be applied on subsets of systems.

Conclusion and
Future Work
Questions
References

We propose
Apply SVM on subsets because it considers system
classes one at a time, not collectively as previous
rule-based approaches do.
To the best of our knowledge, researchers have not yet
studied the potential benefits of using SVM to
detect anti-patterns.

4 / 25
SVMDetect

Introduction

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

Contributions
SVMDetect to detect anti-patterns using SVM
Use of precision and recall to compare SVMDetect to
DETEX [13], the best state-of-the-art approach, on 3
programs and 4 anti-patterns.
The accuracy of SVMDetect is greater than of
DETEX on subsets.
For whole system, SVMDetect find more anti-patterns
occurrences than DETEX.
We thus conclude that: a SVM-based approach can
overcome the limitations of previous approaches.

5 / 25
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

Related Work
Smell/Anti-pattern Detection
Many researchers studied anti-patterns detection.
Alikacem et al. [1] used meta-model for representing
the source code and fuzzy thresholds.
Langelier et al. [10] used a visual approach.
Marinescu [11] used quantifiable expression of rules.
Sahraoui et al. [7] used search-based techniques.
Moha et al. [13] proposed an approach based on a set
of rules that describes each anti-pattern.
The works carried out so far suffered from some limitations:
they have limited precision and recall (if reported at all)
had not been adopted by practitioners yet
cannot be applied on subsets of systems
required sufficient knowledge of anti-patterns.

6 / 25
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect

Related Work
SVM Applications
SVM in several domains for various applications, e.g.,
bioinformatics [2], object recognition [4].

Study Results

SVM is a recent alternative to the classification
problems.

Discussions

Guihong et al. [3] used SVM, for terms classification.

Conclusion and
Future Work

SVM used in image retrieval systems by Sethia et al.
[12]

Questions
References

Kim et al. [9] proposed the change classification
approach for predicting latent software bugs based on
SVM.
To the best of our knowledge, no previous approach used
SVM for anti-pattern Detection.

7 / 25
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

Our Approach: SVMDetect
SVMDetect
SVMDetect is based on Support Vector Machines (SVM)
using a polynomial kernel to detect occurrences of
anti-patterns.
We use SVMDetect to detect the well-known anti-patterns:
Blob, Functional Decomposition, Spaghetti code, and Swiss
Army Knife. For each anti-pattern detection, the detection
process is identical.
We illustrate the detection process with the Blob
anti-pattern for the sake of clarity. We define:
TDS = {Ci , i = 1, . . . , p}, a set of classes Ci derived
from an object-oriented system that constitutes the
training dataset;
∀i, Ci is labelled as Blob (B) or not (N);
DDS is the set of the classes of a system in which we
want to detect the Blob classes.

8 / 25
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

Our Approach: SVMDetect
SVMDetect - Steps
To detect the Blob classes in the set DDS, we apply
SVMDetect through the following steps:
Step 1 (Object Oriented Metric Specification)
SVMDetect takes as input the training dataset TDS
with object-oriented metrics for classes.
Step 2 (Train the SVM Classifier) Train SVMDetect
with TDS defined in Step 1.
Step 3 (Construction of the dataset DDS and
detection of the occurrences of an anti-pattern)
Build detection dataset DDS and apply SVMDetect
trained in step 2 to DDS.
We use Weka to implement SVMDetect using its SVM
classifier.

9 / 25
SVMDetect

Empirical Study

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

10 / 25

Empirical Study
goal: validate that SVMDetect can overcome previous
approaches’ limitations
quality focus: accuracy of SVMDetect, in terms of
precision and recall.
perspective: researchers and practitioners interested in
verifying if SVMDetect can be effective in detecting
various kinds of anti-patterns, and in overcoming the
previous limitations.
SVMDetect

Empirical Study

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results

Research Questions
RQ1: How does the accuracy of SVMDetect compare
with that of DETEX, in terms of precision and recall?
We decompose RQ1 as follows:

Discussions
Conclusion and
Future Work
Questions
References

11 / 25

RQ11 : How does the accuracy of SVMDetect compare
with that of DETEX, in terms of precision and recall,
when applied on a same subset of a system?
RQ12 : How many occurrences of Blob SVMDetect can
detect when comparing with that of DETEX on a same
entire system?
SVMDetect

Empirical Study

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect

Objects
Names

Versions

ArgoUML

0.19.8

Study Results
Discussions
Conclusion and
Future Work
Questions
References

12 / 25

# Lines of Code

# Classes

113,017
A design tool for UML

# Interfaces

1,230

67

Azureus
2.3.0.6
191,963
1,449
546
A peer-to-peer client that implements the protocol BitTorrent
Xerces

2.7.0

71,217
A syntaxic analyser

513

Table : Description of the objects of the study

162
SVMDetect

Empirical Study

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction

Subjects

Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

The subjects of our study are the following four
anti-patterns:
Blob
Functional Decomposition (FD)
Spaghetti Code (SC)
Swiss Army Knife (SAK)
These four anti-patterns because known anti-patterns,
commonly studied in previous work for comparison.

13 / 25
SVMDetect

Study Results

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction

Subsets of System: RQ11

Related Work
Our Approach:
SVMDetect

Table : Precision of SVMDetect vs. DETEX in subsets (%)

Study Results
Discussions

Blob

Conclusion and
Future Work

FD

Questions
References

SC
SAK

14 / 25

DETEX
SVMDetect
DETEX
SVMDetect
DETEX
SVMDetect
DETEX
SVMDetect

ArgoUML
0.00
97.09
0.00
70.68
0.00
85.00
10.00
75.46

Azureus
0.00
97.32
0.00
72.01
0.00
88.00
10.00
84.54

Xerces
0.00
95.51
0.00
66.93
0.00
86.00
0.00
80.76
SVMDetect

Study Results

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction

Subsets of System: RQ11

Related Work
Our Approach:
SVMDetect

Table : Recall of SVMDetect vs. DETEX in subsets (%)

Study Results
Discussions

Blob

Conclusion and
Future Work

FD

Questions
References

SC
SAK

15 / 25

DETEX
SVMDetect
DETEX
SVMDetect
DETEX
SVMDetect
DETEX
SVMDetect

ArgoUML
0.00
84.09
0.00
57.50
0.00
71.00
0.00
77.14

Azureus
0.00
91.33
0.00
84.28
0.00
89.00
0.00
85.71

Xerces
0.00
95.29
0.00
70.00
0.00
86.00
0.00
75.50
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work

Study Results
Complete System: RQ12
Table : Total recovered occurrences of BLOB by DETEX and
SVMDetect

ArgoUML
Azureus
Xerces
Total

DETEX
25
38
39
102

SVMDetect
40
48
55
143

Questions
References

We answer RQ1: “How does the accuracy of SVMDetect
compare with that of DETEX, in terms of precision and
recall?” as follows:
on subsets of systems, SVMDetect dramatically
outperforms DETEX.

16 / 25

on entire systems, SVMDetect detects more
occurrences of Blob than DETEX.
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

Discussions
Threats to Validity
Threats to the validity of our results.
Construct validity (Measurement errors, subjectivity):
occurrences of anti-patterns manually validated.
Internal Validity (dependence of the obtained results
on chosen anti-patterns and systems.): used four
well-known and representative anti-patterns. used in
previous works. used 3 open-source systems with
different sizes, used in previous works.
Reliability Validity (possibility of replication): used 3
open-source systems available on-line.
External Validity (Generalisability): 3 systems with
different sizes and different domains. Representative
subset of anti-patterns.

17 / 25
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

Conclusion and Future Work
Conclusion
introduced a novel approach to detect anti-patterns,
SVMDetect, based on SVM.
SVMDetect performs on 3 systems (ArgoUML v0.19.8,
Azureus v2.3.0.6, and Xerces v2.7.0) and 4
anti-patterns (Blob, Functional Decomposition,
Spaghetti Code, and Swiss Army Knife)
the accuracy of SVMDetect is greater than that of
DETEX on a subset of classes.
on whole system, SVMDetect is able to find more
anti-patterns occurrences than DETEX
SVM-based approach can overcome the limitations of
the previous approaches and could be more readily
adopted by practitioners.

18 / 25
SVMDetect

Conclusion and Future Work

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

Future Work
Future work includes:
use SVMDetect in real-world environments.
reproduce the study with other systems and
anti-patterns to increase our confidence in the
generalisability of our conclusions.
take into account the user feedback.
evaluate the impact of the quality of training dataset
and feedback set on SVMDetect results.

19 / 25
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

20 / 25

Any Question?
SVMDetect

References

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect

E. H. Alikacem and H. A. Sahraoui.
D´tection d’anomalies utilisant un langage de r`gle de
e
e
qualit´.
e
In LMO. Hermes Science Publications, 2006.

Study Results
Discussions
Conclusion and
Future Work
Questions
References

21 / 25

J. Bedo, C. Sanderson, and A. Kowalczyk.
An efficient alternative to svm based recursive feature
elimination with applications in natural language
processing and bioinformatics.
In A. Sattar and B.-h. Kang, editors, AI 2006: Advances
in Artificial Intelligence, volume 4304 of Lecture Notes
in Computer Science, pages 170–180. Springer Berlin
Heidelberg, 2006.
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

References
G. Cao, J.-Y. Nie, J. Gao, and S. Robertson.
Selecting good expansion terms for pseudo-relevance
feedback.
In Proceedings of the 31st Annual International ACM
SIGIR Conference on Research and Development in
Information Retrieval, SIGIR 2008, Singapore, July
20-24, 2008, pages 243–250. ACM, 2008.
M. J. Choi, A. Torralba, and A. S. Willsky.
A tree-based context model for object recognition.
IEEE Trans. Pattern Anal. Mach. Intell., 34:240–252,
Feb. 2012.
C. Cortes and V. Vapnik.
Support-vector networks.
Machine Learning, 20:273–297, 1995.
10.1007/BF00994018.

22 / 25
SVMDetect

References

Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work
Questions
References

23 / 25

Y.-G. Gu´h´neuc, H. Sahraoui, and Farouk Zaidi.
e e
Fingerprinting design patterns.
In E. Stroulia and A. de Lucia, editors, Proceedings of
the 11th Working Conference on Reverse Engineering
(WCRE). IEEE Computer Society Press, November
2004.
M. Kessentini, S. Vaucher, and H. Sahraoui.
Deviance from perfection is a better criterion than
closeness to evil when identifying risky code.
In Proceedings of the IEEE/ACM international
conference on Automated software engineering, ASE
’10, pages 113–122, New York, NY, USA, 2010. ACM.
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results
Discussions
Conclusion and
Future Work

References
F. Khomh, M. D. Penta, and Y.-G. Gu´h´neuc.
e e
An exploratory study of the impact of antipatterns on
class change-and fault-proneness.
Journal of Empirical Software Engineering (EMSE),
2011.
S. Kim, E. J. W. Jr., and Y. Zhang.
Classifying software changes: Clean or buggy?
IEEE Trans. Software Eng., 34(2):181–196, 2008.

Questions
References

24 / 25

G. Langelier, H. Sahraoui, and P. Poulin.
Visualization-based analysis of quality for large-scale
software systems.
In Proceedings of the 20th IEEE/ACM international
Conference on Automated software engineering, ASE
’05, pages 214–223, New York, NY, USA, 2005. ACM.
SVMDetect
Maiga, Ali,
Bhattacharya,
Saban´,
e
Gu´h´neuc,
e e
Antoniol, A¨
ımeur
Introduction
Related Work
Our Approach:
SVMDetect
Study Results

References
R. Marinescu.
Detection strategies: Metrics-based rules for detecting
design flaws.
In In Proceedings of the IEEE 20th International
Conference on Software Maintenance. IEEE Computer
Society Press, 2004.

Discussions
Conclusion and
Future Work
Questions

L. Setia, J. Ick, and H. Burkhardt.
Svm-based relevance feedback in image retrieval using
invariant feature histograms.

References

Naouel Moha, Y.-G. Gu´h´neuc, L. Duchien, and
e e
A.-F. L. Meur.
DECOR: A method for the specification and detection of
code and design smells.
Transactions on Software Engineering (TSE), 2009.
25 / 25

Más contenido relacionado

Destacado

Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smelleSAT Publishing House
 
A Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software RefactoringA Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software RefactoringAli Ouni
 
Recommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software EnginneringRecommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software EnginneringAli Ouni
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesPtidej Team
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in TheoryPtidej Team
 
When and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell BadWhen and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell BadFabio Palomba
 
Detecting bad smells in source code using change history information
Detecting bad smells in source code using change history informationDetecting bad smells in source code using change history information
Detecting bad smells in source code using change history informationCarlos Eduardo
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in PracticePtidej Team
 

Destacado (9)

Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
 
A Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software RefactoringA Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software Refactoring
 
Recommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software EnginneringRecommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software Enginnering
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in Theory
 
Ppap13a.ppt
Ppap13a.pptPpap13a.ppt
Ppap13a.ppt
 
When and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell BadWhen and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell Bad
 
Detecting bad smells in source code using change history information
Detecting bad smells in source code using change history informationDetecting bad smells in source code using change history information
Detecting bad smells in source code using change history information
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in Practice
 

Similar a Ase12.ppt

MEME – An Integrated Tool For Advanced Computational Experiments
MEME – An Integrated Tool For Advanced Computational ExperimentsMEME – An Integrated Tool For Advanced Computational Experiments
MEME – An Integrated Tool For Advanced Computational ExperimentsGIScRG
 
IRJET - Survey on Malware Detection using Deep Learning Methods
IRJET -  	  Survey on Malware Detection using Deep Learning MethodsIRJET -  	  Survey on Malware Detection using Deep Learning Methods
IRJET - Survey on Malware Detection using Deep Learning MethodsIRJET Journal
 
Chapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxChapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxketurahhazelhurst
 
IRJET- Intrusion Detection using IP Binding in Real Network
IRJET- Intrusion Detection using IP Binding in Real NetworkIRJET- Intrusion Detection using IP Binding in Real Network
IRJET- Intrusion Detection using IP Binding in Real NetworkIRJET Journal
 
Top 50 ML Ques & Ans.pdf
Top 50 ML Ques & Ans.pdfTop 50 ML Ques & Ans.pdf
Top 50 ML Ques & Ans.pdfJetender Sharma
 
Review of Algorithms for Crime Analysis & Prediction
Review of Algorithms for Crime Analysis & PredictionReview of Algorithms for Crime Analysis & Prediction
Review of Algorithms for Crime Analysis & PredictionIRJET Journal
 
Identifying and classifying unknown Network Disruption
Identifying and classifying unknown Network DisruptionIdentifying and classifying unknown Network Disruption
Identifying and classifying unknown Network Disruptionjagan477830
 
Building Azure Machine Learning Models
Building Azure Machine Learning ModelsBuilding Azure Machine Learning Models
Building Azure Machine Learning ModelsEng Teong Cheah
 
Email Spam Detection Using Machine Learning
Email Spam Detection Using Machine LearningEmail Spam Detection Using Machine Learning
Email Spam Detection Using Machine LearningIRJET Journal
 
Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the PeopleAndy Zaidman
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesObeo
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingJaguaraci Silva
 
Sentiment Analysis using Naïve Bayes, CNN, SVM
Sentiment Analysis using Naïve Bayes, CNN, SVMSentiment Analysis using Naïve Bayes, CNN, SVM
Sentiment Analysis using Naïve Bayes, CNN, SVMIRJET Journal
 

Similar a Ase12.ppt (20)

Ase12.ppt
Ase12.pptAse12.ppt
Ase12.ppt
 
Wcre12a.ppt
Wcre12a.pptWcre12a.ppt
Wcre12a.ppt
 
Wcre12a.ppt
Wcre12a.pptWcre12a.ppt
Wcre12a.ppt
 
Don't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptxDon't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptx
 
MEME – An Integrated Tool For Advanced Computational Experiments
MEME – An Integrated Tool For Advanced Computational ExperimentsMEME – An Integrated Tool For Advanced Computational Experiments
MEME – An Integrated Tool For Advanced Computational Experiments
 
IRJET - Survey on Malware Detection using Deep Learning Methods
IRJET -  	  Survey on Malware Detection using Deep Learning MethodsIRJET -  	  Survey on Malware Detection using Deep Learning Methods
IRJET - Survey on Malware Detection using Deep Learning Methods
 
Chapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxChapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docx
 
IRJET- Intrusion Detection using IP Binding in Real Network
IRJET- Intrusion Detection using IP Binding in Real NetworkIRJET- Intrusion Detection using IP Binding in Real Network
IRJET- Intrusion Detection using IP Binding in Real Network
 
Top 50 ML Ques & Ans.pdf
Top 50 ML Ques & Ans.pdfTop 50 ML Ques & Ans.pdf
Top 50 ML Ques & Ans.pdf
 
Test for AI model
Test for AI modelTest for AI model
Test for AI model
 
NAIVE BAYES ALGORITHM
NAIVE BAYES ALGORITHMNAIVE BAYES ALGORITHM
NAIVE BAYES ALGORITHM
 
Review of Algorithms for Crime Analysis & Prediction
Review of Algorithms for Crime Analysis & PredictionReview of Algorithms for Crime Analysis & Prediction
Review of Algorithms for Crime Analysis & Prediction
 
Identifying and classifying unknown Network Disruption
Identifying and classifying unknown Network DisruptionIdentifying and classifying unknown Network Disruption
Identifying and classifying unknown Network Disruption
 
Building Azure Machine Learning Models
Building Azure Machine Learning ModelsBuilding Azure Machine Learning Models
Building Azure Machine Learning Models
 
Email Spam Detection Using Machine Learning
Email Spam Detection Using Machine LearningEmail Spam Detection Using Machine Learning
Email Spam Detection Using Machine Learning
 
Practices and Tools for Better Software Testing
Practices and Tools for  Better Software TestingPractices and Tools for  Better Software Testing
Practices and Tools for Better Software Testing
 
Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems Architectures
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software Testing
 
Sentiment Analysis using Naïve Bayes, CNN, SVM
Sentiment Analysis using Naïve Bayes, CNN, SVMSentiment Analysis using Naïve Bayes, CNN, SVM
Sentiment Analysis using Naïve Bayes, CNN, SVM
 

Más de Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej 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 crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

Más de 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
 

Último

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Ase12.ppt

  • 1. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Support Vector Machines for Anti-pattern Detection Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References Abdou Maiga, Nasir Ali, Neelesh Bhattacharya, Aminata Saban´, Yann-Ga¨l Gu´h´neuc, Giuliano Antoniol, Esma e e e e A¨ ımeur ´ DGIGL et DIRO, Ecole Polytechnique et Universit´ de Montr´al, Qu´bec, e e e Canada E-mails: {abdou.maiga, nasir.ali, n.bhattacharya, a.sabane, giuliano.antoniol}@polymtl.ca, {guehene, aimeur}@iro.umontreal.ca ASE 2012 August 15, 2013 Pattern Trace Identification, Detection, and Enhancement in Java SOftware Cost-effective Change and Evolution Research Lab
  • 2. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Outline Introduction Introduction Related Work Related Work Our Approach: SVMDetect Study Results Our Approach: SVMDetect Discussions Conclusion and Future Work Questions References Study Results Discussions Conclusion and Future Work Questions 2 / 25
  • 3. SVMDetect Introduction Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References 3 / 25 Motivation Anti-patterns: “poor” solutions to recurring design and implementation problems. Impact program comprehension, software evolution and maintenance activities [8]. Important to detect them early in software development process, to reduce the maintenance costs
  • 4. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Introduction Limitations Current anti-pattern detection approaches have several limitations: Our Approach: SVMDetect they require extensive knowledge of anti-patterns Study Results they have limited precision and recall Discussions they cannot be applied on subsets of systems. Conclusion and Future Work Questions References We propose Apply SVM on subsets because it considers system classes one at a time, not collectively as previous rule-based approaches do. To the best of our knowledge, researchers have not yet studied the potential benefits of using SVM to detect anti-patterns. 4 / 25
  • 5. SVMDetect Introduction Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References Contributions SVMDetect to detect anti-patterns using SVM Use of precision and recall to compare SVMDetect to DETEX [13], the best state-of-the-art approach, on 3 programs and 4 anti-patterns. The accuracy of SVMDetect is greater than of DETEX on subsets. For whole system, SVMDetect find more anti-patterns occurrences than DETEX. We thus conclude that: a SVM-based approach can overcome the limitations of previous approaches. 5 / 25
  • 6. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References Related Work Smell/Anti-pattern Detection Many researchers studied anti-patterns detection. Alikacem et al. [1] used meta-model for representing the source code and fuzzy thresholds. Langelier et al. [10] used a visual approach. Marinescu [11] used quantifiable expression of rules. Sahraoui et al. [7] used search-based techniques. Moha et al. [13] proposed an approach based on a set of rules that describes each anti-pattern. The works carried out so far suffered from some limitations: they have limited precision and recall (if reported at all) had not been adopted by practitioners yet cannot be applied on subsets of systems required sufficient knowledge of anti-patterns. 6 / 25
  • 7. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Related Work SVM Applications SVM in several domains for various applications, e.g., bioinformatics [2], object recognition [4]. Study Results SVM is a recent alternative to the classification problems. Discussions Guihong et al. [3] used SVM, for terms classification. Conclusion and Future Work SVM used in image retrieval systems by Sethia et al. [12] Questions References Kim et al. [9] proposed the change classification approach for predicting latent software bugs based on SVM. To the best of our knowledge, no previous approach used SVM for anti-pattern Detection. 7 / 25
  • 8. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References Our Approach: SVMDetect SVMDetect SVMDetect is based on Support Vector Machines (SVM) using a polynomial kernel to detect occurrences of anti-patterns. We use SVMDetect to detect the well-known anti-patterns: Blob, Functional Decomposition, Spaghetti code, and Swiss Army Knife. For each anti-pattern detection, the detection process is identical. We illustrate the detection process with the Blob anti-pattern for the sake of clarity. We define: TDS = {Ci , i = 1, . . . , p}, a set of classes Ci derived from an object-oriented system that constitutes the training dataset; ∀i, Ci is labelled as Blob (B) or not (N); DDS is the set of the classes of a system in which we want to detect the Blob classes. 8 / 25
  • 9. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References Our Approach: SVMDetect SVMDetect - Steps To detect the Blob classes in the set DDS, we apply SVMDetect through the following steps: Step 1 (Object Oriented Metric Specification) SVMDetect takes as input the training dataset TDS with object-oriented metrics for classes. Step 2 (Train the SVM Classifier) Train SVMDetect with TDS defined in Step 1. Step 3 (Construction of the dataset DDS and detection of the occurrences of an anti-pattern) Build detection dataset DDS and apply SVMDetect trained in step 2 to DDS. We use Weka to implement SVMDetect using its SVM classifier. 9 / 25
  • 10. SVMDetect Empirical Study Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References 10 / 25 Empirical Study goal: validate that SVMDetect can overcome previous approaches’ limitations quality focus: accuracy of SVMDetect, in terms of precision and recall. perspective: researchers and practitioners interested in verifying if SVMDetect can be effective in detecting various kinds of anti-patterns, and in overcoming the previous limitations.
  • 11. SVMDetect Empirical Study Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Research Questions RQ1: How does the accuracy of SVMDetect compare with that of DETEX, in terms of precision and recall? We decompose RQ1 as follows: Discussions Conclusion and Future Work Questions References 11 / 25 RQ11 : How does the accuracy of SVMDetect compare with that of DETEX, in terms of precision and recall, when applied on a same subset of a system? RQ12 : How many occurrences of Blob SVMDetect can detect when comparing with that of DETEX on a same entire system?
  • 12. SVMDetect Empirical Study Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Objects Names Versions ArgoUML 0.19.8 Study Results Discussions Conclusion and Future Work Questions References 12 / 25 # Lines of Code # Classes 113,017 A design tool for UML # Interfaces 1,230 67 Azureus 2.3.0.6 191,963 1,449 546 A peer-to-peer client that implements the protocol BitTorrent Xerces 2.7.0 71,217 A syntaxic analyser 513 Table : Description of the objects of the study 162
  • 13. SVMDetect Empirical Study Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Subjects Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References The subjects of our study are the following four anti-patterns: Blob Functional Decomposition (FD) Spaghetti Code (SC) Swiss Army Knife (SAK) These four anti-patterns because known anti-patterns, commonly studied in previous work for comparison. 13 / 25
  • 14. SVMDetect Study Results Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Subsets of System: RQ11 Related Work Our Approach: SVMDetect Table : Precision of SVMDetect vs. DETEX in subsets (%) Study Results Discussions Blob Conclusion and Future Work FD Questions References SC SAK 14 / 25 DETEX SVMDetect DETEX SVMDetect DETEX SVMDetect DETEX SVMDetect ArgoUML 0.00 97.09 0.00 70.68 0.00 85.00 10.00 75.46 Azureus 0.00 97.32 0.00 72.01 0.00 88.00 10.00 84.54 Xerces 0.00 95.51 0.00 66.93 0.00 86.00 0.00 80.76
  • 15. SVMDetect Study Results Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Subsets of System: RQ11 Related Work Our Approach: SVMDetect Table : Recall of SVMDetect vs. DETEX in subsets (%) Study Results Discussions Blob Conclusion and Future Work FD Questions References SC SAK 15 / 25 DETEX SVMDetect DETEX SVMDetect DETEX SVMDetect DETEX SVMDetect ArgoUML 0.00 84.09 0.00 57.50 0.00 71.00 0.00 77.14 Azureus 0.00 91.33 0.00 84.28 0.00 89.00 0.00 85.71 Xerces 0.00 95.29 0.00 70.00 0.00 86.00 0.00 75.50
  • 16. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Study Results Complete System: RQ12 Table : Total recovered occurrences of BLOB by DETEX and SVMDetect ArgoUML Azureus Xerces Total DETEX 25 38 39 102 SVMDetect 40 48 55 143 Questions References We answer RQ1: “How does the accuracy of SVMDetect compare with that of DETEX, in terms of precision and recall?” as follows: on subsets of systems, SVMDetect dramatically outperforms DETEX. 16 / 25 on entire systems, SVMDetect detects more occurrences of Blob than DETEX.
  • 17. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References Discussions Threats to Validity Threats to the validity of our results. Construct validity (Measurement errors, subjectivity): occurrences of anti-patterns manually validated. Internal Validity (dependence of the obtained results on chosen anti-patterns and systems.): used four well-known and representative anti-patterns. used in previous works. used 3 open-source systems with different sizes, used in previous works. Reliability Validity (possibility of replication): used 3 open-source systems available on-line. External Validity (Generalisability): 3 systems with different sizes and different domains. Representative subset of anti-patterns. 17 / 25
  • 18. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References Conclusion and Future Work Conclusion introduced a novel approach to detect anti-patterns, SVMDetect, based on SVM. SVMDetect performs on 3 systems (ArgoUML v0.19.8, Azureus v2.3.0.6, and Xerces v2.7.0) and 4 anti-patterns (Blob, Functional Decomposition, Spaghetti Code, and Swiss Army Knife) the accuracy of SVMDetect is greater than that of DETEX on a subset of classes. on whole system, SVMDetect is able to find more anti-patterns occurrences than DETEX SVM-based approach can overcome the limitations of the previous approaches and could be more readily adopted by practitioners. 18 / 25
  • 19. SVMDetect Conclusion and Future Work Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References Future Work Future work includes: use SVMDetect in real-world environments. reproduce the study with other systems and anti-patterns to increase our confidence in the generalisability of our conclusions. take into account the user feedback. evaluate the impact of the quality of training dataset and feedback set on SVMDetect results. 19 / 25
  • 20. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References 20 / 25 Any Question?
  • 21. SVMDetect References Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect E. H. Alikacem and H. A. Sahraoui. D´tection d’anomalies utilisant un langage de r`gle de e e qualit´. e In LMO. Hermes Science Publications, 2006. Study Results Discussions Conclusion and Future Work Questions References 21 / 25 J. Bedo, C. Sanderson, and A. Kowalczyk. An efficient alternative to svm based recursive feature elimination with applications in natural language processing and bioinformatics. In A. Sattar and B.-h. Kang, editors, AI 2006: Advances in Artificial Intelligence, volume 4304 of Lecture Notes in Computer Science, pages 170–180. Springer Berlin Heidelberg, 2006.
  • 22. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References References G. Cao, J.-Y. Nie, J. Gao, and S. Robertson. Selecting good expansion terms for pseudo-relevance feedback. In Proceedings of the 31st Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR 2008, Singapore, July 20-24, 2008, pages 243–250. ACM, 2008. M. J. Choi, A. Torralba, and A. S. Willsky. A tree-based context model for object recognition. IEEE Trans. Pattern Anal. Mach. Intell., 34:240–252, Feb. 2012. C. Cortes and V. Vapnik. Support-vector networks. Machine Learning, 20:273–297, 1995. 10.1007/BF00994018. 22 / 25
  • 23. SVMDetect References Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work Questions References 23 / 25 Y.-G. Gu´h´neuc, H. Sahraoui, and Farouk Zaidi. e e Fingerprinting design patterns. In E. Stroulia and A. de Lucia, editors, Proceedings of the 11th Working Conference on Reverse Engineering (WCRE). IEEE Computer Society Press, November 2004. M. Kessentini, S. Vaucher, and H. Sahraoui. Deviance from perfection is a better criterion than closeness to evil when identifying risky code. In Proceedings of the IEEE/ACM international conference on Automated software engineering, ASE ’10, pages 113–122, New York, NY, USA, 2010. ACM.
  • 24. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results Discussions Conclusion and Future Work References F. Khomh, M. D. Penta, and Y.-G. Gu´h´neuc. e e An exploratory study of the impact of antipatterns on class change-and fault-proneness. Journal of Empirical Software Engineering (EMSE), 2011. S. Kim, E. J. W. Jr., and Y. Zhang. Classifying software changes: Clean or buggy? IEEE Trans. Software Eng., 34(2):181–196, 2008. Questions References 24 / 25 G. Langelier, H. Sahraoui, and P. Poulin. Visualization-based analysis of quality for large-scale software systems. In Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, ASE ’05, pages 214–223, New York, NY, USA, 2005. ACM.
  • 25. SVMDetect Maiga, Ali, Bhattacharya, Saban´, e Gu´h´neuc, e e Antoniol, A¨ ımeur Introduction Related Work Our Approach: SVMDetect Study Results References R. Marinescu. Detection strategies: Metrics-based rules for detecting design flaws. In In Proceedings of the IEEE 20th International Conference on Software Maintenance. IEEE Computer Society Press, 2004. Discussions Conclusion and Future Work Questions L. Setia, J. Ick, and H. Burkhardt. Svm-based relevance feedback in image retrieval using invariant feature histograms. References Naouel Moha, Y.-G. Gu´h´neuc, L. Duchien, and e e A.-F. L. Meur. DECOR: A method for the specification and detection of code and design smells. Transactions on Software Engineering (TSE), 2009. 25 / 25