SlideShare a Scribd company logo
Olivier Kaczor, Yann-Gaël Guéhéneuc and Sylvie Hamel
{kaczorol, guehene, hamelsyl}@iro.umontreal.ca
© Olivier Kaczor 2006
GEODES qnd LBIT
Department of Informatics and Operations Research
University of Montreal
GEODES
Efficient Identification of Design
Patterns with Bit-vector Algorithm
2/22
Outline
1. Introduction
2. Related Work
3. Our Approach:
1. Code source transformation
2. Identification with Bit-vector algorithm
4. Case Study
5. Current and Future Work
3/22
Design patterns:
Provide good solutions to recurring design problems
Provide design vocabulary to improve communication
Encourage designs re-use
Auto document the source code
“Design patterns help a designer get a design "right" faster”
[Gamma and al. 1994]
1. Introduction (1/2)
4/22
Why detect design motifs:
Measure the quality of a system
Help document the source code
Help understand the design problems and choices
Sub-problem: Identify micro-architectures similar to design motifs
Program model rarely reflects a design motif completely
Help to improve the code by applying corrections based on the
design motifs
What is a design motif occurrence?
An occurrence is a micro-architecture where each role of the design
motif is played by only one entity
1. Introduction (2/2)
5/22
Some known identification techniques:
– Logic programming [Kramer-Prechelt 1996, Wuyts 1998]
– Constraints programming with explanations [Guéhéneuc-Jussien 2001]
– Fuzzy logic [Jahnke and al. 1997, Niere and al. 2001]
– Graphs transformation [Smolarova-Kadlec 2000]
General problem: limited performance
2. Related Work (1/3)
6/22
Metrics to improve efficiency [Antoniol and al. 1998, Guéhéneuc and al. 2004]
Idea : Reduce the search space by removing entities which obviously do not
participate in a design motif according to expected metrics values
1. Create fingerprints of design patterns roles with internal attributes of classes playing
those roles
2. Use those fingerprints to create identification rules
Multi-stage-filtering:
Metrics
evaluations
Other
evaluations
Structural
evaluations
A B C D
D ≤ C ≤ B ≤ A
2. Related Work (2/3)
7/22
Similar problem in bioinformatics:
– Localising mutated (or not) genes in long anonymous DNA
sequences
– Localising modified (or not) proteins in long amino-acid sequences
Solutions adopted in bioinformatics:
– Vector algorithms [Myers 1997, Bergeron-Hamel 2002]
– Automata simulation [Holub 1997]
– Dynamic programming alignment [Needleman-Wunsch 1970, Smith-
Waterman 1981]
2. Related Work (3/3)
8/22
Design patterns detection system:
Source Code Results
Source Code
Transformation
Detection
Algorithm
Design
Patterns
Detection
9/22
Problem:
Bioinformatics algorithms work on strings
Program and design motifs models must be converted in
strings
3. Our approach: Source code transformation (1/3)
Solution:
Program and design motifs models can be seen as directed
graphs
Build their string representations by going through every edge
in their graphs
10/22
Steps to obtain the string representations:
1. Transform the graphs into Eulerian graphs:
– Build an adjacency matrix to identify vertices with unequal in-degree and
out-degree
– Compute an optimal list of flows to be added between those vertices with
the transportation simplex
Composite
+remove( c : Component )
+add( c : Component )
+getChild( i : int )
+operation()+operation()
Leaf
+operation()
ComponentClient coas
in in
Composite
+remove( c : Component )
+add( c : Component )
+getChild( i : int )
+operation()+operation()
Leaf
+operation()
ComponentClient coas
dm
in in
3. Our approach: Source code transformation (2/3)
001Composite
000Leaf
110Component
CompositeLeafComponentinout
Leaf: out-degree: 0
in-degree: 1
11/22
Steps to obtain the string representations:
2. Find an Eulerian circuit and build the strings:
– Resolve the directed Chinese Postman Problem to find the shortest tour of
the graphs (an Eulerian circuit)
– Build the strings by running through the circuits
Composite
+remove( c : Component )
+add( c : Component )
+getChild( i : int )
+operation()+operation()
Leaf
+operation()
ComponentClient coas
dm
in in
3. Our approach: Source code transformation (3/3)
ComponentComponent in LeafComponent in Leaf dm ComponentComponent in Leaf dm Component in CompositeComponent in Leaf dm Component in Composite co Component
12/22
Problem: The design motif string is more like a regular expression
than a word
Solution: Iterative bit-vector algorithm
Objective:
3. Our approach: Identification algorithm (1/6)
Vector
Algorithm
13/22
Let x = x1x2…xm be a string representing a program model and c a symbol in
that string
We define the characteristic vector of c associated to the string x to be:
3. Our approach: Identification algorithm (2/6)
Characteristic vectors are circular sequences of bits on which we operate
with standard bit operations:
• and
• or
• left shift
• right shift
• etc.
14/22
3. Our approach: Identification algorithm (3/6)
A in B in D dm B in E co B in C dm G cr C dm G cr D dm G cr E dm G as F ag A
Example:
15/22
We match against each other the two strings to build a list of potential
occurrences
The algorithm reads triplets of tokens in the design motif string and
associates program entities to the roles
3. Our approach: Identification algorithm (4/6)
We retrieve entities before and after an in token in the program string with
bit-wise operations on the characteristic vectors to have potential entities
for the Component and Leaf roles
For example:
16/22
We search for entities after a
Component entity and an in relationship
(ex: B in Composite)
3. Our approach: Identification algorithm (5/6)
EEB
DEB
CEB
EDB
DDB
CDB
ECBEB
EEBDCBDB
EDBCCBCB
ECBBBABA
Fourth (co)Third (in)First (in)
Triplets
Component
Leaf
Composite
Component
Component
Leaf
Leaf
Composite
Occurrences after processing
the first third and fourth triplets
17/22
3. Our approach: Identification algorithm (6/6)
A program model rarely reflects a design motif completely
We include automatic and manual approximation mechanisms
1. Association relationships:
– Composition, aggregation, association and use relationship
– Conjunction of characteristic vectors
2. Entity counts
– Ex: A Composite without leaf
– Triplets can be overlooked
3. Inheritance relationship:
– Some entities could be inserted or removed from a hierarchy
– Parent and children of a class are also possible entities for a role
18/22
We applied our algorithm on 3 public domain software:
1. Juzzle v0.5
2. JHotDraw v5.1
3. QuickUML 2001
We used an AMD Athlon at 2Ghz with 1024 Mb RAM
4. Case Study (1/3)
149373QuickUML 2001
37261JHotDraw v5.1
599Juzzle v0.5
Computation timesSizesPrograms
Computation times (in seconds) for building the string representation
19/22
4. Case Study (2/3)
Identification times (in seconds) of design
motifs with all approximations
We compared our bit-vector technique with Ptidej, a framework implementing:
Explanation-based constraint programming
Metric-enhanced explanation-based constraint programming
2718526514+∞QuickUML 2001
0.30.5345Juzzle v0.5
2512917362+∞JHotDraw v5.1
Composite
2997153785QuickUML 2001
0.30.921Juzzle v0.5
272182751202JHotDraw v5.1
Abstract Factory
BV+OBVCP+MCP
20/22
4. Case Study (3/3)
Number of identified occurrences of the design motifs
5134743N/A00N/A22QuickUML 2001
00200000Juzzle v0.5
60916983N/A00N/A70JHotDraw v5.1
Composite
11812459357235713QuickUML 2001
13090000Juzzle v0.5
1948492994221692210JHotDraw v5.1
Abstract Factory
BVCP+MCPBVCP+MCP
ApproximateExact
Existing
Occurrences
21/22
Improve the precision of the results
– Combine bit-vector algorithms with empirical metrics values
– Add negative relationships in design motifs
– Add dynamic information in the string representations
Try the approach on more and bigger software
Try other bioinformatics string matching algorithms
5. Current and Future Work
Csmr06a.ppt

More Related Content

What's hot

Hybrid ga svm for efficient feature selection in e-mail classification
Hybrid ga svm for efficient feature selection in e-mail classificationHybrid ga svm for efficient feature selection in e-mail classification
Hybrid ga svm for efficient feature selection in e-mail classification
Alexander Decker
 
11.hybrid ga svm for efficient feature selection in e-mail classification
11.hybrid ga svm for efficient feature selection in e-mail classification11.hybrid ga svm for efficient feature selection in e-mail classification
11.hybrid ga svm for efficient feature selection in e-mail classification
Alexander Decker
 
An effective approach to offline arabic handwriting recognition
An effective approach to offline arabic handwriting recognitionAn effective approach to offline arabic handwriting recognition
An effective approach to offline arabic handwriting recognition
ijaia
 
Facial Image Analysis for age and gender and
Facial Image Analysis for age and gender andFacial Image Analysis for age and gender and
Facial Image Analysis for age and gender and
Yuheng Wang
 
A bidirectional text transcription of braille for odia, hindi, telugu and eng...
A bidirectional text transcription of braille for odia, hindi, telugu and eng...A bidirectional text transcription of braille for odia, hindi, telugu and eng...
A bidirectional text transcription of braille for odia, hindi, telugu and eng...
eSAT Journals
 
Applications of Pattern Recognition Algorithms in Agriculture: A Review
Applications of Pattern Recognition Algorithms in Agriculture: A ReviewApplications of Pattern Recognition Algorithms in Agriculture: A Review
Applications of Pattern Recognition Algorithms in Agriculture: A Review
Eswar Publications
 
Representation and recognition of handwirten digits using deformable templates
Representation and recognition of handwirten digits using deformable templatesRepresentation and recognition of handwirten digits using deformable templates
Representation and recognition of handwirten digits using deformable templates
Ahmed Abd-Elwasaa
 
BrailleOCR: An Open Source Document to Braille Converter Application
BrailleOCR: An Open Source Document to Braille Converter ApplicationBrailleOCR: An Open Source Document to Braille Converter Application
BrailleOCR: An Open Source Document to Braille Converter Application
pijush15
 
HANDWRITTEN DIGIT RECOGNITION USING k-NN CLASSIFIER
HANDWRITTEN DIGIT RECOGNITION USING k-NN CLASSIFIERHANDWRITTEN DIGIT RECOGNITION USING k-NN CLASSIFIER
HANDWRITTEN DIGIT RECOGNITION USING k-NN CLASSIFIER
vineet raj
 
IRJET- Object Detection using Hausdorff Distance
IRJET-  	  Object Detection using Hausdorff DistanceIRJET-  	  Object Detection using Hausdorff Distance
IRJET- Object Detection using Hausdorff Distance
IRJET Journal
 
Transcription Factor DNA Binding Prediction
Transcription Factor DNA Binding PredictionTranscription Factor DNA Binding Prediction
Transcription Factor DNA Binding Prediction
UT, San Antonio
 
Self-Directing Text Detection and Removal from Images with Smoothing
Self-Directing Text Detection and Removal from Images with SmoothingSelf-Directing Text Detection and Removal from Images with Smoothing
Self-Directing Text Detection and Removal from Images with Smoothing
Priyanka Wagh
 
Multi biometric cryptosystems based on feature-level fusion
Multi biometric cryptosystems based on feature-level fusionMulti biometric cryptosystems based on feature-level fusion
Multi biometric cryptosystems based on feature-level fusion
Parag Tamhane
 
­­­­Cursive Handwriting Recognition System using Feature Extraction and Artif...
­­­­Cursive Handwriting Recognition System using Feature Extraction and Artif...­­­­Cursive Handwriting Recognition System using Feature Extraction and Artif...
­­­­Cursive Handwriting Recognition System using Feature Extraction and Artif...
IRJET Journal
 
A Novel Design For Generating Dynamic Length Message Digest To Ensure Integri...
A Novel Design For Generating Dynamic Length Message Digest To Ensure Integri...A Novel Design For Generating Dynamic Length Message Digest To Ensure Integri...
A Novel Design For Generating Dynamic Length Message Digest To Ensure Integri...
IRJET Journal
 
A NOVEL APPROACH FOR GENERATING FACE TEMPLATE USING BDA
A NOVEL APPROACH FOR GENERATING FACE TEMPLATE USING BDAA NOVEL APPROACH FOR GENERATING FACE TEMPLATE USING BDA
A NOVEL APPROACH FOR GENERATING FACE TEMPLATE USING BDA
csandit
 
Introduction to image processing and pattern recognition
Introduction to image processing and pattern recognitionIntroduction to image processing and pattern recognition
Introduction to image processing and pattern recognition
Saibee Alam
 
SE-IT JAVA LAB SYLLABUS
SE-IT JAVA LAB SYLLABUSSE-IT JAVA LAB SYLLABUS
SE-IT JAVA LAB SYLLABUS
nikshaikh786
 

What's hot (18)

Hybrid ga svm for efficient feature selection in e-mail classification
Hybrid ga svm for efficient feature selection in e-mail classificationHybrid ga svm for efficient feature selection in e-mail classification
Hybrid ga svm for efficient feature selection in e-mail classification
 
11.hybrid ga svm for efficient feature selection in e-mail classification
11.hybrid ga svm for efficient feature selection in e-mail classification11.hybrid ga svm for efficient feature selection in e-mail classification
11.hybrid ga svm for efficient feature selection in e-mail classification
 
An effective approach to offline arabic handwriting recognition
An effective approach to offline arabic handwriting recognitionAn effective approach to offline arabic handwriting recognition
An effective approach to offline arabic handwriting recognition
 
Facial Image Analysis for age and gender and
Facial Image Analysis for age and gender andFacial Image Analysis for age and gender and
Facial Image Analysis for age and gender and
 
A bidirectional text transcription of braille for odia, hindi, telugu and eng...
A bidirectional text transcription of braille for odia, hindi, telugu and eng...A bidirectional text transcription of braille for odia, hindi, telugu and eng...
A bidirectional text transcription of braille for odia, hindi, telugu and eng...
 
Applications of Pattern Recognition Algorithms in Agriculture: A Review
Applications of Pattern Recognition Algorithms in Agriculture: A ReviewApplications of Pattern Recognition Algorithms in Agriculture: A Review
Applications of Pattern Recognition Algorithms in Agriculture: A Review
 
Representation and recognition of handwirten digits using deformable templates
Representation and recognition of handwirten digits using deformable templatesRepresentation and recognition of handwirten digits using deformable templates
Representation and recognition of handwirten digits using deformable templates
 
BrailleOCR: An Open Source Document to Braille Converter Application
BrailleOCR: An Open Source Document to Braille Converter ApplicationBrailleOCR: An Open Source Document to Braille Converter Application
BrailleOCR: An Open Source Document to Braille Converter Application
 
HANDWRITTEN DIGIT RECOGNITION USING k-NN CLASSIFIER
HANDWRITTEN DIGIT RECOGNITION USING k-NN CLASSIFIERHANDWRITTEN DIGIT RECOGNITION USING k-NN CLASSIFIER
HANDWRITTEN DIGIT RECOGNITION USING k-NN CLASSIFIER
 
IRJET- Object Detection using Hausdorff Distance
IRJET-  	  Object Detection using Hausdorff DistanceIRJET-  	  Object Detection using Hausdorff Distance
IRJET- Object Detection using Hausdorff Distance
 
Transcription Factor DNA Binding Prediction
Transcription Factor DNA Binding PredictionTranscription Factor DNA Binding Prediction
Transcription Factor DNA Binding Prediction
 
Self-Directing Text Detection and Removal from Images with Smoothing
Self-Directing Text Detection and Removal from Images with SmoothingSelf-Directing Text Detection and Removal from Images with Smoothing
Self-Directing Text Detection and Removal from Images with Smoothing
 
Multi biometric cryptosystems based on feature-level fusion
Multi biometric cryptosystems based on feature-level fusionMulti biometric cryptosystems based on feature-level fusion
Multi biometric cryptosystems based on feature-level fusion
 
­­­­Cursive Handwriting Recognition System using Feature Extraction and Artif...
­­­­Cursive Handwriting Recognition System using Feature Extraction and Artif...­­­­Cursive Handwriting Recognition System using Feature Extraction and Artif...
­­­­Cursive Handwriting Recognition System using Feature Extraction and Artif...
 
A Novel Design For Generating Dynamic Length Message Digest To Ensure Integri...
A Novel Design For Generating Dynamic Length Message Digest To Ensure Integri...A Novel Design For Generating Dynamic Length Message Digest To Ensure Integri...
A Novel Design For Generating Dynamic Length Message Digest To Ensure Integri...
 
A NOVEL APPROACH FOR GENERATING FACE TEMPLATE USING BDA
A NOVEL APPROACH FOR GENERATING FACE TEMPLATE USING BDAA NOVEL APPROACH FOR GENERATING FACE TEMPLATE USING BDA
A NOVEL APPROACH FOR GENERATING FACE TEMPLATE USING BDA
 
Introduction to image processing and pattern recognition
Introduction to image processing and pattern recognitionIntroduction to image processing and pattern recognition
Introduction to image processing and pattern recognition
 
SE-IT JAVA LAB SYLLABUS
SE-IT JAVA LAB SYLLABUSSE-IT JAVA LAB SYLLABUS
SE-IT JAVA LAB SYLLABUS
 

Similar to Csmr06a.ppt

CSMR06a.ppt
CSMR06a.pptCSMR06a.ppt
CSMR06a.ppt
Ptidej Team
 
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Hugo Bruneliere
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
Ptidej Team
 
Questions On The Equation For Regression
Questions On The Equation For RegressionQuestions On The Equation For Regression
Questions On The Equation For Regression
Tiffany Sandoval
 
Web Information Extraction Learning based on Probabilistic Graphical Models
Web Information Extraction Learning based on Probabilistic Graphical ModelsWeb Information Extraction Learning based on Probabilistic Graphical Models
Web Information Extraction Learning based on Probabilistic Graphical Models
GUANBO
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosa
Pharo
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
B.T.L.I.T
 
C04701019027
C04701019027C04701019027
C04701019027
ijceronline
 
Characterization of a 2D Geometry Using C++ Interface
Characterization of a 2D Geometry Using C++ InterfaceCharacterization of a 2D Geometry Using C++ Interface
Characterization of a 2D Geometry Using C++ Interface
drboon
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for Benchmarks
Markus Scheidgen
 
Ase06.ppt
Ase06.pptAse06.ppt
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
Abdalmassih Yakeen
 
Ase02 dmp.ppt
Ase02 dmp.pptAse02 dmp.ppt
Ase02 dmp.ppt
Yann-Gaël Guéhéneuc
 
Software architacture recovery
Software architacture recoverySoftware architacture recovery
Software architacture recovery
Imdad Ul Haq
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
Kuwait10
 
Algorithm Identification In Programming Assignments
Algorithm Identification In Programming AssignmentsAlgorithm Identification In Programming Assignments
Algorithm Identification In Programming Assignments
Karin Faust
 
Assignment-1-NF.docx
Assignment-1-NF.docxAssignment-1-NF.docx
Assignment-1-NF.docx
KhondokerAbuNaim
 
Thesis Giani UIC Slides EN
Thesis Giani UIC Slides ENThesis Giani UIC Slides EN
Thesis Giani UIC Slides EN
Marco Santambrogio
 
COMPSAC 2008 Presentation
COMPSAC 2008 PresentationCOMPSAC 2008 Presentation
COMPSAC 2008 Presentation
Ahrim Han, Ph.D.
 
Source Code Summarization
Source Code SummarizationSource Code Summarization
Source Code Summarization
Ra'Fat Al-Msie'deen
 

Similar to Csmr06a.ppt (20)

CSMR06a.ppt
CSMR06a.pptCSMR06a.ppt
CSMR06a.ppt
 
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
Questions On The Equation For Regression
Questions On The Equation For RegressionQuestions On The Equation For Regression
Questions On The Equation For Regression
 
Web Information Extraction Learning based on Probabilistic Graphical Models
Web Information Extraction Learning based on Probabilistic Graphical ModelsWeb Information Extraction Learning based on Probabilistic Graphical Models
Web Information Extraction Learning based on Probabilistic Graphical Models
 
2014 01-ticosa
2014 01-ticosa2014 01-ticosa
2014 01-ticosa
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
C04701019027
C04701019027C04701019027
C04701019027
 
Characterization of a 2D Geometry Using C++ Interface
Characterization of a 2D Geometry Using C++ InterfaceCharacterization of a 2D Geometry Using C++ Interface
Characterization of a 2D Geometry Using C++ Interface
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for Benchmarks
 
Ase06.ppt
Ase06.pptAse06.ppt
Ase06.ppt
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
Ase02 dmp.ppt
Ase02 dmp.pptAse02 dmp.ppt
Ase02 dmp.ppt
 
Software architacture recovery
Software architacture recoverySoftware architacture recovery
Software architacture recovery
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Algorithm Identification In Programming Assignments
Algorithm Identification In Programming AssignmentsAlgorithm Identification In Programming Assignments
Algorithm Identification In Programming Assignments
 
Assignment-1-NF.docx
Assignment-1-NF.docxAssignment-1-NF.docx
Assignment-1-NF.docx
 
Thesis Giani UIC Slides EN
Thesis Giani UIC Slides ENThesis Giani UIC Slides EN
Thesis Giani UIC Slides EN
 
COMPSAC 2008 Presentation
COMPSAC 2008 PresentationCOMPSAC 2008 Presentation
COMPSAC 2008 Presentation
 
Source Code Summarization
Source Code SummarizationSource Code Summarization
Source Code Summarization
 

More from Yann-Gaël Guéhéneuc

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
Yann-Gaël Guéhéneuc
 
Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
Yann-Gaël Guéhéneuc
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
Yann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Yann-Gaël Guéhéneuc
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
Yann-Gaël Guéhéneuc
 
ICSOC'21
ICSOC'21ICSOC'21
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
Yann-Gaël Guéhéneuc
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
Yann-Gaël Guéhéneuc
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
Yann-Gaël Guéhéneuc
 
Msr20.ppt
Msr20.pptMsr20.ppt
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt

More from Yann-Gaël Guéhéneuc (20)

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
 
Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 

Recently uploaded

Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 

Recently uploaded (20)

Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 

Csmr06a.ppt

  • 1. Olivier Kaczor, Yann-Gaël Guéhéneuc and Sylvie Hamel {kaczorol, guehene, hamelsyl}@iro.umontreal.ca © Olivier Kaczor 2006 GEODES qnd LBIT Department of Informatics and Operations Research University of Montreal GEODES Efficient Identification of Design Patterns with Bit-vector Algorithm
  • 2. 2/22 Outline 1. Introduction 2. Related Work 3. Our Approach: 1. Code source transformation 2. Identification with Bit-vector algorithm 4. Case Study 5. Current and Future Work
  • 3. 3/22 Design patterns: Provide good solutions to recurring design problems Provide design vocabulary to improve communication Encourage designs re-use Auto document the source code “Design patterns help a designer get a design "right" faster” [Gamma and al. 1994] 1. Introduction (1/2)
  • 4. 4/22 Why detect design motifs: Measure the quality of a system Help document the source code Help understand the design problems and choices Sub-problem: Identify micro-architectures similar to design motifs Program model rarely reflects a design motif completely Help to improve the code by applying corrections based on the design motifs What is a design motif occurrence? An occurrence is a micro-architecture where each role of the design motif is played by only one entity 1. Introduction (2/2)
  • 5. 5/22 Some known identification techniques: – Logic programming [Kramer-Prechelt 1996, Wuyts 1998] – Constraints programming with explanations [Guéhéneuc-Jussien 2001] – Fuzzy logic [Jahnke and al. 1997, Niere and al. 2001] – Graphs transformation [Smolarova-Kadlec 2000] General problem: limited performance 2. Related Work (1/3)
  • 6. 6/22 Metrics to improve efficiency [Antoniol and al. 1998, Guéhéneuc and al. 2004] Idea : Reduce the search space by removing entities which obviously do not participate in a design motif according to expected metrics values 1. Create fingerprints of design patterns roles with internal attributes of classes playing those roles 2. Use those fingerprints to create identification rules Multi-stage-filtering: Metrics evaluations Other evaluations Structural evaluations A B C D D ≤ C ≤ B ≤ A 2. Related Work (2/3)
  • 7. 7/22 Similar problem in bioinformatics: – Localising mutated (or not) genes in long anonymous DNA sequences – Localising modified (or not) proteins in long amino-acid sequences Solutions adopted in bioinformatics: – Vector algorithms [Myers 1997, Bergeron-Hamel 2002] – Automata simulation [Holub 1997] – Dynamic programming alignment [Needleman-Wunsch 1970, Smith- Waterman 1981] 2. Related Work (3/3)
  • 8. 8/22 Design patterns detection system: Source Code Results Source Code Transformation Detection Algorithm Design Patterns Detection
  • 9. 9/22 Problem: Bioinformatics algorithms work on strings Program and design motifs models must be converted in strings 3. Our approach: Source code transformation (1/3) Solution: Program and design motifs models can be seen as directed graphs Build their string representations by going through every edge in their graphs
  • 10. 10/22 Steps to obtain the string representations: 1. Transform the graphs into Eulerian graphs: – Build an adjacency matrix to identify vertices with unequal in-degree and out-degree – Compute an optimal list of flows to be added between those vertices with the transportation simplex Composite +remove( c : Component ) +add( c : Component ) +getChild( i : int ) +operation()+operation() Leaf +operation() ComponentClient coas in in Composite +remove( c : Component ) +add( c : Component ) +getChild( i : int ) +operation()+operation() Leaf +operation() ComponentClient coas dm in in 3. Our approach: Source code transformation (2/3) 001Composite 000Leaf 110Component CompositeLeafComponentinout Leaf: out-degree: 0 in-degree: 1
  • 11. 11/22 Steps to obtain the string representations: 2. Find an Eulerian circuit and build the strings: – Resolve the directed Chinese Postman Problem to find the shortest tour of the graphs (an Eulerian circuit) – Build the strings by running through the circuits Composite +remove( c : Component ) +add( c : Component ) +getChild( i : int ) +operation()+operation() Leaf +operation() ComponentClient coas dm in in 3. Our approach: Source code transformation (3/3) ComponentComponent in LeafComponent in Leaf dm ComponentComponent in Leaf dm Component in CompositeComponent in Leaf dm Component in Composite co Component
  • 12. 12/22 Problem: The design motif string is more like a regular expression than a word Solution: Iterative bit-vector algorithm Objective: 3. Our approach: Identification algorithm (1/6) Vector Algorithm
  • 13. 13/22 Let x = x1x2…xm be a string representing a program model and c a symbol in that string We define the characteristic vector of c associated to the string x to be: 3. Our approach: Identification algorithm (2/6) Characteristic vectors are circular sequences of bits on which we operate with standard bit operations: • and • or • left shift • right shift • etc.
  • 14. 14/22 3. Our approach: Identification algorithm (3/6) A in B in D dm B in E co B in C dm G cr C dm G cr D dm G cr E dm G as F ag A Example:
  • 15. 15/22 We match against each other the two strings to build a list of potential occurrences The algorithm reads triplets of tokens in the design motif string and associates program entities to the roles 3. Our approach: Identification algorithm (4/6) We retrieve entities before and after an in token in the program string with bit-wise operations on the characteristic vectors to have potential entities for the Component and Leaf roles For example:
  • 16. 16/22 We search for entities after a Component entity and an in relationship (ex: B in Composite) 3. Our approach: Identification algorithm (5/6) EEB DEB CEB EDB DDB CDB ECBEB EEBDCBDB EDBCCBCB ECBBBABA Fourth (co)Third (in)First (in) Triplets Component Leaf Composite Component Component Leaf Leaf Composite Occurrences after processing the first third and fourth triplets
  • 17. 17/22 3. Our approach: Identification algorithm (6/6) A program model rarely reflects a design motif completely We include automatic and manual approximation mechanisms 1. Association relationships: – Composition, aggregation, association and use relationship – Conjunction of characteristic vectors 2. Entity counts – Ex: A Composite without leaf – Triplets can be overlooked 3. Inheritance relationship: – Some entities could be inserted or removed from a hierarchy – Parent and children of a class are also possible entities for a role
  • 18. 18/22 We applied our algorithm on 3 public domain software: 1. Juzzle v0.5 2. JHotDraw v5.1 3. QuickUML 2001 We used an AMD Athlon at 2Ghz with 1024 Mb RAM 4. Case Study (1/3) 149373QuickUML 2001 37261JHotDraw v5.1 599Juzzle v0.5 Computation timesSizesPrograms Computation times (in seconds) for building the string representation
  • 19. 19/22 4. Case Study (2/3) Identification times (in seconds) of design motifs with all approximations We compared our bit-vector technique with Ptidej, a framework implementing: Explanation-based constraint programming Metric-enhanced explanation-based constraint programming 2718526514+∞QuickUML 2001 0.30.5345Juzzle v0.5 2512917362+∞JHotDraw v5.1 Composite 2997153785QuickUML 2001 0.30.921Juzzle v0.5 272182751202JHotDraw v5.1 Abstract Factory BV+OBVCP+MCP
  • 20. 20/22 4. Case Study (3/3) Number of identified occurrences of the design motifs 5134743N/A00N/A22QuickUML 2001 00200000Juzzle v0.5 60916983N/A00N/A70JHotDraw v5.1 Composite 11812459357235713QuickUML 2001 13090000Juzzle v0.5 1948492994221692210JHotDraw v5.1 Abstract Factory BVCP+MCPBVCP+MCP ApproximateExact Existing Occurrences
  • 21. 21/22 Improve the precision of the results – Combine bit-vector algorithms with empirical metrics values – Add negative relationships in design motifs – Add dynamic information in the string representations Try the approach on more and bigger software Try other bioinformatics string matching algorithms 5. Current and Future Work