SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
ClassName Distribution Visualization:
Detecting inconsistencies in class names
Nour J. Agouf
Arolla, Inria, Univ. Lille, CNRS, Centrale Lille,
UMR 9189 - CRIStAL
nour-jihene.agouf@arolla.fr
Problematic:
2
How can we identify inconsistent class
names inside projects?
Understanding class names:
HorizontalFlowLayout
3
Noun
Adjective
(prefix) (suffix)
Noun
Classes of the same hierarchy follow the same
naming pattern- following the same descriptive
vocabulary
Class name consistency:
4
CanvasBuilder
Event
Canvas
ShapeEvent
ColorPalette
ColoredTreePalette
Object
Interaction
AbstractCanvas
ShapeInteraction
Layout
CircleLayout
FlowLayout
ExtentChangedEvent
PositionChangedEvent
ScaleChangedCanvas
ShapeAddedEvent
HighlightableEvent
HighlightEvent
UnHighlightEvent
CompositeInteraction LineInteraction
GridLayout
Package 1.
Package 2.
AbstractContainerBuilder
AbstractShapesBuilder
UMLAbstractBuilder
UMLClassBuilder UMLPackage
Scale
Example:
5
A sample of the Roassal Project
CanvasBuilder
Event
Canvas
ShapeEvent
ColorPalette
ColoredTreePalette
Object
Interaction
AbstractCanvas
ShapeInteraction
Layout
CircleLayout
FlowLayout
ExtentChangedEvent
PositionChangedEvent
ScaleChangedCanvas
ShapeAddedEvent
HighlightableEvent
HighlightEvent
UnHighlightEvent
CompositeInteraction LineInteraction
GridLayout
Package 1.
Package 2.
AbstractContainerBuilder
AbstractShapesBuilder
UMLAbstractBuilder
UMLClassBuilder UMLPackage
Scale
6
A sample of the Roassal Project
..24 (bright colors)
Possibly Inconsistent Naming:
A hierarchy using more than one suffix is identified by an
attracting color
CanvasBuilder
Event
Canvas
ShapeEvent
ColorPalette
ColoredTreePalette
Object
Interaction
AbstractCanvas
ShapeInteraction
Layout
CircleLayout
FlowLayout
ExtentChangedEvent
PositionChangedEvent
ScaleChangedCanvas
ShapeAddedEvent
HighlightableEvent
HighlightEvent
UnHighlightEvent
CompositeInteraction LineInteraction
GridLayout
Package 1.
Package 2.
AbstractContainerBuilder
AbstractShapesBuilder
UMLAbstractBuilder
UMLClassBuilder UMLPackage
Scale
7
..24 (bright colors)
Possibly Inconsistent Naming:
A hierarchy using more than one suffix is identified by an
attracting color
Consistent Hierarchy: Uses one suffix
identified by the color gray
A sample of the Roassal Project
CanvasBuilder
Event
Canvas
ShapeEvent
ColorPalette
ColoredTreePalette
Object
Interaction
AbstractCanvas
ShapeInteraction
Layout
CircleLayout
FlowLayout
ExtentChangedEvent
PositionChangedEvent
ScaleChangedCanvas
ShapeAddedEvent
HighlightableEvent
HighlightEvent
UnHighlightEvent
CompositeInteraction LineInteraction
GridLayout
Package 1.
Package 2.
AbstractContainerBuilder
AbstractShapesBuilder
UMLAbstractBuilder
UMLClassBuilder UMLPackage
Scale
..24 (bright colors)
Possibly Inconsistent Naming:
A hierarchy using more than one suffix is identified by an
attracting color
Consistent Hierarchy: Uses one suffix
identified by the color gray
Class or trait:
belongs to no hierarchy,
colored in white
8
A sample of the Roassal Project
CanvasBuilder
Event
Canvas
ShapeEvent
ColorPalette
ColoredTreePalette
Object
Interaction
AbstractCanvas
ShapeInteraction
Layout
CircleLayout
FlowLayout
ExtentChangedEvent
PositionChangedEvent
ScaleChangedCanvas
ShapeAddedEvent
HighlightableEvent
HighlightEvent
UnHighlightEvent
CompositeInteraction LineInteraction
GridLayout
Package 1.
Package 2.
AbstractContainerBuilder
AbstractShapesBuilder
UMLAbstractBuilder
UMLClassBuilder UMLPackage
Scale
Consistent hierarchy of classes
Possible Inconsistent hierarchies
Mono class (in no hierarchy)
{
A sample of the Roassal Project
ClassName Distribution of the sample from the
Roassal project
Example:
9
Suffix: Event Suffix: Canvas
Package 2.
Suffix: Interaction Suffix: Layout
Suffix: Scale
Suffix: Event
Package 1.
Suffix: Package Suffix: Palette
Suffix: Builder
• Supports both Pharo and Java projects.
• Supports suffix analysis, prefix analysis and both of suffix and
prefix mixed to chose the most accurate word in the hierarchy,
describing its concept.
Languages:
Java: Quantitative Evaluation
on 50 Java Projects
Evaluation
11
Pharo: Qualitative Evaluation on 6
Pharo Projects
Experts of the tool/
Non-experts of the project
Non-experts of the tool/
Experts of the project
232 Validated Renamings
✓ >1000 Stars
✓ >50 Forks
✓ >5000 K.B
12
‣ The tool has shown to be easy to use and pretty intuitive,
‣ The tool provides a good summary of the distribution of classes inside
packages and their vocabulary.
‣ The tool is a good source of information about projects internal design,
‣ The tool has proven to be effective in detecting Pharo misnamed classes
‣ The tool showed inconsistencies also exist in Java projects
‣ A journal paper in the process of being published
Conclusion

Weitere ähnliche Inhalte

Ähnlich wie VannePresentation.pdf

Cis 328 Exceptional Education / snaptutorial.com
Cis 328   Exceptional Education / snaptutorial.comCis 328   Exceptional Education / snaptutorial.com
Cis 328 Exceptional Education / snaptutorial.comBaileya45
 
Ingles proyecto traducido
Ingles proyecto traducidoIngles proyecto traducido
Ingles proyecto traducidoJoseph Manuelth
 
Object Oriented Approach For Software Development
Object Oriented Approach For Software DevelopmentObject Oriented Approach For Software Development
Object Oriented Approach For Software DevelopmentJessica Tanner
 
Cis 328 Success Begins / snaptutorial.com
Cis 328 Success Begins / snaptutorial.comCis 328 Success Begins / snaptutorial.com
Cis 328 Success Begins / snaptutorial.comRobinson069
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxDrYogeshDeshmukh1
 
Cis 328 Effective Communication - snaptutorial.com
Cis 328  Effective Communication - snaptutorial.comCis 328  Effective Communication - snaptutorial.com
Cis 328 Effective Communication - snaptutorial.comHarrisGeorg11
 
Cis 328Believe Possibilities / snaptutorial.com
Cis 328Believe Possibilities / snaptutorial.comCis 328Believe Possibilities / snaptutorial.com
Cis 328Believe Possibilities / snaptutorial.comStokesCope11
 
CIS 328 Focus Dreams/newtonhelp.com
CIS 328 Focus Dreams/newtonhelp.comCIS 328 Focus Dreams/newtonhelp.com
CIS 328 Focus Dreams/newtonhelp.combellflower84
 
CIS 328 Life of the Mind/newtonhelp.com   
CIS 328 Life of the Mind/newtonhelp.com   CIS 328 Life of the Mind/newtonhelp.com   
CIS 328 Life of the Mind/newtonhelp.com   bellflower2
 
CIS 328 Imagine Your Future/newtonhelp.com   
CIS 328 Imagine Your Future/newtonhelp.com   CIS 328 Imagine Your Future/newtonhelp.com   
CIS 328 Imagine Your Future/newtonhelp.com   bellflower44
 
Cis 328 Extraordinary Success/newtonhelp.com
Cis 328 Extraordinary Success/newtonhelp.com  Cis 328 Extraordinary Success/newtonhelp.com
Cis 328 Extraordinary Success/newtonhelp.com amaranthbeg145
 
Java for android developers
Java for android developersJava for android developers
Java for android developersAly Abdelkareem
 
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEWONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEWijait
 
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW ijait
 
Traits: A New Language Feature for PHP?
Traits: A New Language Feature for PHP?Traits: A New Language Feature for PHP?
Traits: A New Language Feature for PHP?Stefan Marr
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programmingAbzetdin Adamov
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programmingmustafa sarac
 

Ähnlich wie VannePresentation.pdf (20)

Cis 328 Exceptional Education / snaptutorial.com
Cis 328   Exceptional Education / snaptutorial.comCis 328   Exceptional Education / snaptutorial.com
Cis 328 Exceptional Education / snaptutorial.com
 
Ingles proyecto traducido
Ingles proyecto traducidoIngles proyecto traducido
Ingles proyecto traducido
 
Object Oriented Approach For Software Development
Object Oriented Approach For Software DevelopmentObject Oriented Approach For Software Development
Object Oriented Approach For Software Development
 
Cis 328 Success Begins / snaptutorial.com
Cis 328 Success Begins / snaptutorial.comCis 328 Success Begins / snaptutorial.com
Cis 328 Success Begins / snaptutorial.com
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptx
 
Cis 328 Effective Communication - snaptutorial.com
Cis 328  Effective Communication - snaptutorial.comCis 328  Effective Communication - snaptutorial.com
Cis 328 Effective Communication - snaptutorial.com
 
Cis 328Believe Possibilities / snaptutorial.com
Cis 328Believe Possibilities / snaptutorial.comCis 328Believe Possibilities / snaptutorial.com
Cis 328Believe Possibilities / snaptutorial.com
 
CIS 328 Focus Dreams/newtonhelp.com
CIS 328 Focus Dreams/newtonhelp.comCIS 328 Focus Dreams/newtonhelp.com
CIS 328 Focus Dreams/newtonhelp.com
 
CIS 328 Life of the Mind/newtonhelp.com   
CIS 328 Life of the Mind/newtonhelp.com   CIS 328 Life of the Mind/newtonhelp.com   
CIS 328 Life of the Mind/newtonhelp.com   
 
CIS 328 Imagine Your Future/newtonhelp.com   
CIS 328 Imagine Your Future/newtonhelp.com   CIS 328 Imagine Your Future/newtonhelp.com   
CIS 328 Imagine Your Future/newtonhelp.com   
 
Cis 328 Extraordinary Success/newtonhelp.com
Cis 328 Extraordinary Success/newtonhelp.com  Cis 328 Extraordinary Success/newtonhelp.com
Cis 328 Extraordinary Success/newtonhelp.com
 
Research paper
Research paperResearch paper
Research paper
 
Java for android developers
Java for android developersJava for android developers
Java for android developers
 
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEWONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
 
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
 
Traits: A New Language Feature for PHP?
Traits: A New Language Feature for PHP?Traits: A New Language Feature for PHP?
Traits: A New Language Feature for PHP?
 
Suga java training_with_footer
Suga java training_with_footerSuga java training_with_footer
Suga java training_with_footer
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programming
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Proyecto
ProyectoProyecto
Proyecto
 

Kürzlich hochgeladen

Lesson no16 application of Induction Generator in Wind.ppsx
Lesson no16 application of Induction Generator in Wind.ppsxLesson no16 application of Induction Generator in Wind.ppsx
Lesson no16 application of Induction Generator in Wind.ppsxmichaelprrior
 
Supermarket billing system project report..pdf
Supermarket billing system project report..pdfSupermarket billing system project report..pdf
Supermarket billing system project report..pdfKamal Acharya
 
Theory for How to calculation capacitor bank
Theory for How to calculation capacitor bankTheory for How to calculation capacitor bank
Theory for How to calculation capacitor banktawat puangthong
 
ChatGPT Prompt Engineering for project managers.pdf
ChatGPT Prompt Engineering for project managers.pdfChatGPT Prompt Engineering for project managers.pdf
ChatGPT Prompt Engineering for project managers.pdfqasastareekh
 
Online book store management system project.pdf
Online book store management system project.pdfOnline book store management system project.pdf
Online book store management system project.pdfKamal Acharya
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGKOUSTAV SARKAR
 
EMPLOYEE MANAGEMENT SYSTEM FINAL presentation
EMPLOYEE MANAGEMENT SYSTEM FINAL presentationEMPLOYEE MANAGEMENT SYSTEM FINAL presentation
EMPLOYEE MANAGEMENT SYSTEM FINAL presentationAmayJaiswal4
 
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...Prakhyath Rai
 
Quiz application system project report..pdf
Quiz application system project report..pdfQuiz application system project report..pdf
Quiz application system project report..pdfKamal Acharya
 
analog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptxanalog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptxKarpagam Institute of Teechnology
 
ALCOHOL PRODUCTION- Beer Brewing Process.pdf
ALCOHOL PRODUCTION- Beer Brewing Process.pdfALCOHOL PRODUCTION- Beer Brewing Process.pdf
ALCOHOL PRODUCTION- Beer Brewing Process.pdfMadan Karki
 
Introduction to Heat Exchangers: Principle, Types and Applications
Introduction to Heat Exchangers: Principle, Types and ApplicationsIntroduction to Heat Exchangers: Principle, Types and Applications
Introduction to Heat Exchangers: Principle, Types and ApplicationsKineticEngineeringCo
 
Introduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AIIntroduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AISheetal Jain
 
Piping and instrumentation diagram p.pdf
Piping and instrumentation diagram p.pdfPiping and instrumentation diagram p.pdf
Piping and instrumentation diagram p.pdfAshrafRagab14
 
Artificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian ReasoningArtificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian Reasoninghotman30312
 
Linux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message QueuesLinux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message QueuesRashidFaridChishti
 
Multivibrator and its types defination and usges.pptx
Multivibrator and its types defination and usges.pptxMultivibrator and its types defination and usges.pptx
Multivibrator and its types defination and usges.pptxalijaker017
 
SLIDESHARE PPT-DECISION MAKING METHODS.pptx
SLIDESHARE PPT-DECISION MAKING METHODS.pptxSLIDESHARE PPT-DECISION MAKING METHODS.pptx
SLIDESHARE PPT-DECISION MAKING METHODS.pptxCHAIRMAN M
 
Intelligent Agents, A discovery on How A Rational Agent Acts
Intelligent Agents, A discovery on How A Rational Agent ActsIntelligent Agents, A discovery on How A Rational Agent Acts
Intelligent Agents, A discovery on How A Rational Agent ActsSheetal Jain
 
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdf
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdfInstruct Nirmaana 24-Smart and Lean Construction Through Technology.pdf
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdfEr.Sonali Nasikkar
 

Kürzlich hochgeladen (20)

Lesson no16 application of Induction Generator in Wind.ppsx
Lesson no16 application of Induction Generator in Wind.ppsxLesson no16 application of Induction Generator in Wind.ppsx
Lesson no16 application of Induction Generator in Wind.ppsx
 
Supermarket billing system project report..pdf
Supermarket billing system project report..pdfSupermarket billing system project report..pdf
Supermarket billing system project report..pdf
 
Theory for How to calculation capacitor bank
Theory for How to calculation capacitor bankTheory for How to calculation capacitor bank
Theory for How to calculation capacitor bank
 
ChatGPT Prompt Engineering for project managers.pdf
ChatGPT Prompt Engineering for project managers.pdfChatGPT Prompt Engineering for project managers.pdf
ChatGPT Prompt Engineering for project managers.pdf
 
Online book store management system project.pdf
Online book store management system project.pdfOnline book store management system project.pdf
Online book store management system project.pdf
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
 
EMPLOYEE MANAGEMENT SYSTEM FINAL presentation
EMPLOYEE MANAGEMENT SYSTEM FINAL presentationEMPLOYEE MANAGEMENT SYSTEM FINAL presentation
EMPLOYEE MANAGEMENT SYSTEM FINAL presentation
 
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
 
Quiz application system project report..pdf
Quiz application system project report..pdfQuiz application system project report..pdf
Quiz application system project report..pdf
 
analog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptxanalog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptx
 
ALCOHOL PRODUCTION- Beer Brewing Process.pdf
ALCOHOL PRODUCTION- Beer Brewing Process.pdfALCOHOL PRODUCTION- Beer Brewing Process.pdf
ALCOHOL PRODUCTION- Beer Brewing Process.pdf
 
Introduction to Heat Exchangers: Principle, Types and Applications
Introduction to Heat Exchangers: Principle, Types and ApplicationsIntroduction to Heat Exchangers: Principle, Types and Applications
Introduction to Heat Exchangers: Principle, Types and Applications
 
Introduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AIIntroduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AI
 
Piping and instrumentation diagram p.pdf
Piping and instrumentation diagram p.pdfPiping and instrumentation diagram p.pdf
Piping and instrumentation diagram p.pdf
 
Artificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian ReasoningArtificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian Reasoning
 
Linux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message QueuesLinux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message Queues
 
Multivibrator and its types defination and usges.pptx
Multivibrator and its types defination and usges.pptxMultivibrator and its types defination and usges.pptx
Multivibrator and its types defination and usges.pptx
 
SLIDESHARE PPT-DECISION MAKING METHODS.pptx
SLIDESHARE PPT-DECISION MAKING METHODS.pptxSLIDESHARE PPT-DECISION MAKING METHODS.pptx
SLIDESHARE PPT-DECISION MAKING METHODS.pptx
 
Intelligent Agents, A discovery on How A Rational Agent Acts
Intelligent Agents, A discovery on How A Rational Agent ActsIntelligent Agents, A discovery on How A Rational Agent Acts
Intelligent Agents, A discovery on How A Rational Agent Acts
 
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdf
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdfInstruct Nirmaana 24-Smart and Lean Construction Through Technology.pdf
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdf
 

VannePresentation.pdf