SlideShare a Scribd company logo
1 of 43
Download to read offline
A New Generation of Class Blueprint
Nour J. Agouf*, Stéphane Ducasse, Anne Etien, Michele Lanza.
*Arolla, Inria, Univ. Lille, CNRS, Centrale Lille,
UMR 9189 - CRIStAL-France
nour-jihene.agouf@arolla.fr
1
.fr
AROLLA IS A CONSULTING COMPANY SPECIALIZED IN
THE ADVANCED TECHNIQUES OF SOFTWARE
DEVELOPMENT: CLEAN CODE, TDD, BDD, LEGACY
REMEDIATION, etc.
2
2
3
The time spent on reading
and understand source
code is over 70% of the
maintenance task
4
The Class Blueprint
Is a representation of static data of classes in object-
oriented programming. It gives an overview of a taste of
the class, focusing on methods classification and
displaying their call-flow.
5
Class Blueprint V1
6
7
Initialization Externals Internals Accessors Attributes
V1: Methods/attributes classification
8
Initialization Externals Internals Accessors Attributes
V1: Methods/attributes nodes
9
Initialization Externals Internals Accessors Attributes
Number of
LOC
Number of Invocations
V1: Method node metrics
10
Initialization Externals Internals Accessors Attributes
Number of
LOC
Number of Invocations
Number
of
external
accesses
Number
of
internal
accesses
V1: Attribute node metrics
11
Initialization Externals Internals Accessors Attributes
Black line: Connection
between methods
Cyan line: Connection from
accessors to attributes
V1: Simple line connection
12
RMODPublicationsBblForReportDocBuilder class
Initialization Externals Internals Accessors Attributes
Abstract
Overriding
Delegating
Extending
Setter
Getter
Attribute
Internal Implementation
Other
Constant
V1: Node type = a Color
- Obsolete classification of methods
- Missing information about attribute accesses
- The interplay between instance side and class side is not well supported
- Does not heed dead code
- Unclear direction of links
- Does not show the occurrences of method names
- A method cyclomatic complexity is not revealed
- Does not show if a method is tested or not
V1: Limitations
Class Blueprint V2
14
V2: Merging attributes & accessors layers
Dead
Initialize Externals Internals Attributes
15
16
Dead
Superclasses
Attributes
Instance Side
Attributes
V2: Superclass attributes
Initialize Externals Internals Attributes
V2: Static vs Instance
Static
Attributes
Dead Methods Dead
Accessors
&
Attributes
17
17
Superclasses
Attributes
Instance Side
Attributes
Static Methods
Initialize Externals Internals
V2: Used vs Unused code
18
Dead Methods Dead
Attributes
Static
Attributes
Superclasses
Attributes
Instance Side
Attributes
Static Methods
Initialize Externals Internals
Static
Instance
Dead
V2: Segment connection
19
V2: Border width = Occurrences
20
Monomorphic: One method by
that name in the whole project.
Polymorphic: Commonly named
method
Megamorphic: Frequently
named methods
21
V2: Border color = Cyclomatic complexity
22
Green: Accesses in the class and
in the subsystem
Blue: Accesses in the class
V2: Sub-hierarchy attribute access
23
Setter
Getter
Lazy Initializer
Top
Bottom
Bottom
Position Color
Accessor
Lazy Initializer
Setter
Attribute
V2: Attribute protectors
24
Tested method
V2: Test annotation
25
Abstract & Reimplemented
V2: Abstract reimplementation
26
• Merging attributes & accessors layers
• Superclass attributes
• Static vs Instance side
• Used vs Unused code
• Segment connection
• Method names occurrences
• Cyclomatic complexity
• Sub-hierarchy attribute access
• Detection of lazy initializers
• Detection of tested/untested methods
• Reimplemented abstract methods
ClassBlueprintV2
ClassBlueprint V1
V2: Recap
Qualitative
Leon Zernitsky
…
…
Quantitative
Evaluation.
27
Invited people from the community
(26 participants)
Individual/ Group meetings
The meeting took from 10 to 25 minutes
28
Evaluation: Protocol
✓ Select a project they wish to analyze
✓ Use the visualization on the selected project
✓ Screen record the experiment
✓ Write a report summarizing their findings
✓ Fill the post-experiment survey
29
Evaluation: What we asked for?
The projects chosen by the participants englobe several domains (19 projects)
Project #Packages #Classes Median of methods Domain
Avatar 2 18 6 Proxy
Sindarin 3 18 14 Debugging
MoTion 2 35 5 Pattern Machine
Clap 5 47 8 Parsing
Slang 2 73 29 Virtual machine
Polyphemus 3 79 9 Virtual machine
AST-Core 3 101 21 Domain-Specific-Language
Reflectivity 5 114 13 Domain-Specific-Language
Druid 1 170 12 Virtual Machine
Seeker 2 236 9 Debugging
MooseIDE 16 250 8 Analysis
Polymath 60 309 11 Computing
Refactoring 12 378 6 Refactorings
AIPharo 85 424 6 Artificial Intelligence
Roassal 39 445 12 Visualizations
Iceberg 11 488 10 Version Control
Fylgja 73 941 15 Migration
Microdown 29 268 11 Parsing
30
Evaluation: About the projects
Participants level of knowledge about the
project.
31
The participants have diverse profiles:
• Interns
• Developers
• PhD students
• Researchers
Evaluation: About the participants
Experts
Debutants
Intermediary
Advanced
45 %
10 %
35 %
10 %
The participants have diverse profiles:
• Interns
• Developers
• PhD students
• Researchers
Experts
Debutants
Intermediary
Advanced
45 %
10 %
35 %
10 %
Participants level of knowledge about the project.
32
Evaluation: About the participants
Analyse data about the human-visualization interaction
33
Evaluation: Qualitative
Screen records Findings reports
(over 600 hours)
34
Qualitative evaluation: What did we find?
✓ Empty Classes
✓ Big Classes
✓ Complex Classes
✓ Dying Classes
✓ Tested/Untested Classes
35
Qualitative evaluation: Flight over
36
✓ Duplicated Code
✓ Complex Methods
✓ Dead Code
✓ Long Method Comments
✓ Tested/Untested Methods
Qualitative evaluation: Plunge in
Quantitative
37
Evaluation: Quantitative
1. The visualization helps in understanding the:
2. Does the visualization help in detecting:
3. The visualization is:
Dead code
Complex methods
Tested/Untested methods
26%
46%
34%
46% 11% 3% 11%
38% 11% 3%
34% 19% 7% 3%
Easy to use
3%
15%
42%
76%
30% 15%
7%
7%
Scalable
Code/State of a class is reused
Reused code from the superclass
Class/instance side communication
Design of the class
Strongly agree Agree Undecided Disagree Strongly Disagree
15% 46%
3%
19%
7%
23%
53%
38%
15%
53%
19%
30%
23%
19%
7%
23%
Mono/poly/megamorphic methods 26% 46% 26%
“In the MicHTMLDoc class we could exclusively
see the tested and untested methods.
”
- From the Microdown project
38
Anecdotal evidence
“Dead methods correspond mostly to
unused code that I forgot to remove.
”
- From the Seeker project
39
Anecdotal evidence
“I found obsolete prototype code by
taking a look at these long methods
”
- From the Seeker project
40
Anecdotal evidence
The visualization also helped me quickly identify dead code and eliminate it. As
this is a new project (early stage of development) I didn’t remove all dead
methods or classes, but in other kinds of projects I would do it.
”
- From the Druid project
“
41
Anecdotal evidence
I couldn't used it in the large classes, those
are the most interesting to analyze.
”
- From the Iceberg project
“
42
Anecdotal evidence
• An enhancement of the Class Blueprint
visualization based on new requirements
• Qualitative & quantitative evaluations on 26
participants and 19 projects
• Participants reported some interesting
findings about anomalies in their software
Conclusion

More Related Content

Similar to VISSOFTPresentation.pdf

Can we induce change with what we measure?
Can we induce change with what we measure?Can we induce change with what we measure?
Can we induce change with what we measure?Michaela Greiler
 
An Empirical Investigation on Documentation Usage Patterns in Maintenance Tasks
An Empirical Investigation on Documentation Usage Patterns in Maintenance TasksAn Empirical Investigation on Documentation Usage Patterns in Maintenance Tasks
An Empirical Investigation on Documentation Usage Patterns in Maintenance TasksSebastiano Panichella
 
Smart like a Fox: How clever students trick dumb programming assignment asses...
Smart like a Fox: How clever students trick dumb programming assignment asses...Smart like a Fox: How clever students trick dumb programming assignment asses...
Smart like a Fox: How clever students trick dumb programming assignment asses...Nane Kratzke
 
Growing Software and Growing Ourselves
Growing Software and Growing OurselvesGrowing Software and Growing Ourselves
Growing Software and Growing OurselvesDaniel Parkin
 
Deep Learning Made Easy with Deep Features
Deep Learning Made Easy with Deep FeaturesDeep Learning Made Easy with Deep Features
Deep Learning Made Easy with Deep FeaturesTuri, Inc.
 
SE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxSE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxBharat Chawda
 
Incremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software EngineeringIncremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software EngineeringÁkos Horváth
 
IEEE SocialCom 2009: NetViz Nirvana (NodeXL Learnability)
IEEE SocialCom 2009: NetViz Nirvana (NodeXL Learnability)IEEE SocialCom 2009: NetViz Nirvana (NodeXL Learnability)
IEEE SocialCom 2009: NetViz Nirvana (NodeXL Learnability)Elizabeth Bonsignore
 
Traceability Beyond Source Code: An Elusive Target?
Traceability Beyond Source Code: An Elusive Target?Traceability Beyond Source Code: An Elusive Target?
Traceability Beyond Source Code: An Elusive Target?Lionel Briand
 
Managing Large-scale Multimedia Development Projects
Managing Large-scale Multimedia Development ProjectsManaging Large-scale Multimedia Development Projects
Managing Large-scale Multimedia Development ProjectsSimon Price
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observabilityDanylenko Max
 
Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...
Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...
Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...Justin Gordon
 
Recognize, assess, reduce, and manage technical debt
Recognize, assess, reduce, and manage technical debtRecognize, assess, reduce, and manage technical debt
Recognize, assess, reduce, and manage technical debtJim Bethancourt
 
EKON 23 Code_review_checklist
EKON 23 Code_review_checklistEKON 23 Code_review_checklist
EKON 23 Code_review_checklistMax Kleiner
 
An Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsAn Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsPavneet Singh Kochhar
 

Similar to VISSOFTPresentation.pdf (20)

MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
Can we induce change with what we measure?
Can we induce change with what we measure?Can we induce change with what we measure?
Can we induce change with what we measure?
 
An Empirical Investigation on Documentation Usage Patterns in Maintenance Tasks
An Empirical Investigation on Documentation Usage Patterns in Maintenance TasksAn Empirical Investigation on Documentation Usage Patterns in Maintenance Tasks
An Empirical Investigation on Documentation Usage Patterns in Maintenance Tasks
 
Smart like a Fox: How clever students trick dumb programming assignment asses...
Smart like a Fox: How clever students trick dumb programming assignment asses...Smart like a Fox: How clever students trick dumb programming assignment asses...
Smart like a Fox: How clever students trick dumb programming assignment asses...
 
ThesisPresentation
ThesisPresentationThesisPresentation
ThesisPresentation
 
Growing Software and Growing Ourselves
Growing Software and Growing OurselvesGrowing Software and Growing Ourselves
Growing Software and Growing Ourselves
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Deep Learning Made Easy with Deep Features
Deep Learning Made Easy with Deep FeaturesDeep Learning Made Easy with Deep Features
Deep Learning Made Easy with Deep Features
 
SE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxSE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptx
 
Incremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software EngineeringIncremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software Engineering
 
IEEE SocialCom 2009: NetViz Nirvana (NodeXL Learnability)
IEEE SocialCom 2009: NetViz Nirvana (NodeXL Learnability)IEEE SocialCom 2009: NetViz Nirvana (NodeXL Learnability)
IEEE SocialCom 2009: NetViz Nirvana (NodeXL Learnability)
 
Traceability Beyond Source Code: An Elusive Target?
Traceability Beyond Source Code: An Elusive Target?Traceability Beyond Source Code: An Elusive Target?
Traceability Beyond Source Code: An Elusive Target?
 
ADOVH Strategies for Designing Assessment.pdf
ADOVH Strategies for Designing Assessment.pdfADOVH Strategies for Designing Assessment.pdf
ADOVH Strategies for Designing Assessment.pdf
 
Managing Large-scale Multimedia Development Projects
Managing Large-scale Multimedia Development ProjectsManaging Large-scale Multimedia Development Projects
Managing Large-scale Multimedia Development Projects
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observability
 
Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...
Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...
Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...
 
Recognize, assess, reduce, and manage technical debt
Recognize, assess, reduce, and manage technical debtRecognize, assess, reduce, and manage technical debt
Recognize, assess, reduce, and manage technical debt
 
Code coverage
Code coverageCode coverage
Code coverage
 
EKON 23 Code_review_checklist
EKON 23 Code_review_checklistEKON 23 Code_review_checklist
EKON 23 Code_review_checklist
 
An Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsAn Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source Projects
 

Recently uploaded

Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...Lovely Professional University
 
Online crime reporting system project.pdf
Online crime reporting system project.pdfOnline crime reporting system project.pdf
Online crime reporting system project.pdfKamal Acharya
 
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...ShivamTiwari995432
 
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...MohammadAliNayeem
 
Research Methodolgy & Intellectual Property Rights Series 1
Research Methodolgy & Intellectual Property Rights Series 1Research Methodolgy & Intellectual Property Rights Series 1
Research Methodolgy & Intellectual Property Rights Series 1T.D. Shashikala
 
Piping and instrumentation diagram p.pdf
Piping and instrumentation diagram p.pdfPiping and instrumentation diagram p.pdf
Piping and instrumentation diagram p.pdfAshrafRagab14
 
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
 
ALCOHOL PRODUCTION- Beer Brewing Process.pdf
ALCOHOL PRODUCTION- Beer Brewing Process.pdfALCOHOL PRODUCTION- Beer Brewing Process.pdf
ALCOHOL PRODUCTION- Beer Brewing Process.pdfMadan Karki
 
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas SachpazisSeismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas SachpazisDr.Costas Sachpazis
 
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
 
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
 
Electrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineElectrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineJulioCesarSalazarHer1
 
Supermarket billing system project report..pdf
Supermarket billing system project report..pdfSupermarket billing system project report..pdf
Supermarket billing system project report..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
 
Geometric constructions Engineering Drawing.pdf
Geometric constructions Engineering Drawing.pdfGeometric constructions Engineering Drawing.pdf
Geometric constructions Engineering Drawing.pdfJNTUA
 
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
 
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
 
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5T.D. Shashikala
 
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdf
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdfInvolute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdf
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdfJNTUA
 
Circuit Breaker arc phenomenon.pdf engineering
Circuit Breaker arc phenomenon.pdf engineeringCircuit Breaker arc phenomenon.pdf engineering
Circuit Breaker arc phenomenon.pdf engineeringKanchhaTamang
 

Recently uploaded (20)

Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
 
Online crime reporting system project.pdf
Online crime reporting system project.pdfOnline crime reporting system project.pdf
Online crime reporting system project.pdf
 
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
 
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
 
Research Methodolgy & Intellectual Property Rights Series 1
Research Methodolgy & Intellectual Property Rights Series 1Research Methodolgy & Intellectual Property Rights Series 1
Research Methodolgy & Intellectual Property Rights Series 1
 
Piping and instrumentation diagram p.pdf
Piping and instrumentation diagram p.pdfPiping and instrumentation diagram p.pdf
Piping and instrumentation diagram p.pdf
 
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
 
ALCOHOL PRODUCTION- Beer Brewing Process.pdf
ALCOHOL PRODUCTION- Beer Brewing Process.pdfALCOHOL PRODUCTION- Beer Brewing Process.pdf
ALCOHOL PRODUCTION- Beer Brewing Process.pdf
 
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas SachpazisSeismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
 
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
 
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
 
Electrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineElectrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission line
 
Supermarket billing system project report..pdf
Supermarket billing system project report..pdfSupermarket billing system project report..pdf
Supermarket billing system project report..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
 
Geometric constructions Engineering Drawing.pdf
Geometric constructions Engineering Drawing.pdfGeometric constructions Engineering Drawing.pdf
Geometric constructions Engineering Drawing.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
 
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
 
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
 
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdf
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdfInvolute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdf
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdf
 
Circuit Breaker arc phenomenon.pdf engineering
Circuit Breaker arc phenomenon.pdf engineeringCircuit Breaker arc phenomenon.pdf engineering
Circuit Breaker arc phenomenon.pdf engineering
 

VISSOFTPresentation.pdf

  • 1. A New Generation of Class Blueprint Nour J. Agouf*, Stéphane Ducasse, Anne Etien, Michele Lanza. *Arolla, Inria, Univ. Lille, CNRS, Centrale Lille, UMR 9189 - CRIStAL-France nour-jihene.agouf@arolla.fr 1
  • 2. .fr AROLLA IS A CONSULTING COMPANY SPECIALIZED IN THE ADVANCED TECHNIQUES OF SOFTWARE DEVELOPMENT: CLEAN CODE, TDD, BDD, LEGACY REMEDIATION, etc. 2 2
  • 3. 3 The time spent on reading and understand source code is over 70% of the maintenance task
  • 4. 4
  • 5. The Class Blueprint Is a representation of static data of classes in object- oriented programming. It gives an overview of a taste of the class, focusing on methods classification and displaying their call-flow. 5
  • 7. 7 Initialization Externals Internals Accessors Attributes V1: Methods/attributes classification
  • 8. 8 Initialization Externals Internals Accessors Attributes V1: Methods/attributes nodes
  • 9. 9 Initialization Externals Internals Accessors Attributes Number of LOC Number of Invocations V1: Method node metrics
  • 10. 10 Initialization Externals Internals Accessors Attributes Number of LOC Number of Invocations Number of external accesses Number of internal accesses V1: Attribute node metrics
  • 11. 11 Initialization Externals Internals Accessors Attributes Black line: Connection between methods Cyan line: Connection from accessors to attributes V1: Simple line connection
  • 12. 12 RMODPublicationsBblForReportDocBuilder class Initialization Externals Internals Accessors Attributes Abstract Overriding Delegating Extending Setter Getter Attribute Internal Implementation Other Constant V1: Node type = a Color
  • 13. - Obsolete classification of methods - Missing information about attribute accesses - The interplay between instance side and class side is not well supported - Does not heed dead code - Unclear direction of links - Does not show the occurrences of method names - A method cyclomatic complexity is not revealed - Does not show if a method is tested or not V1: Limitations
  • 15. V2: Merging attributes & accessors layers Dead Initialize Externals Internals Attributes 15
  • 16. 16 Dead Superclasses Attributes Instance Side Attributes V2: Superclass attributes Initialize Externals Internals Attributes
  • 17. V2: Static vs Instance Static Attributes Dead Methods Dead Accessors & Attributes 17 17 Superclasses Attributes Instance Side Attributes Static Methods Initialize Externals Internals
  • 18. V2: Used vs Unused code 18 Dead Methods Dead Attributes Static Attributes Superclasses Attributes Instance Side Attributes Static Methods Initialize Externals Internals
  • 20. V2: Border width = Occurrences 20 Monomorphic: One method by that name in the whole project. Polymorphic: Commonly named method Megamorphic: Frequently named methods
  • 21. 21 V2: Border color = Cyclomatic complexity
  • 22. 22 Green: Accesses in the class and in the subsystem Blue: Accesses in the class V2: Sub-hierarchy attribute access
  • 23. 23 Setter Getter Lazy Initializer Top Bottom Bottom Position Color Accessor Lazy Initializer Setter Attribute V2: Attribute protectors
  • 25. 25 Abstract & Reimplemented V2: Abstract reimplementation
  • 26. 26 • Merging attributes & accessors layers • Superclass attributes • Static vs Instance side • Used vs Unused code • Segment connection • Method names occurrences • Cyclomatic complexity • Sub-hierarchy attribute access • Detection of lazy initializers • Detection of tested/untested methods • Reimplemented abstract methods ClassBlueprintV2 ClassBlueprint V1 V2: Recap
  • 28. Invited people from the community (26 participants) Individual/ Group meetings The meeting took from 10 to 25 minutes 28 Evaluation: Protocol
  • 29. ✓ Select a project they wish to analyze ✓ Use the visualization on the selected project ✓ Screen record the experiment ✓ Write a report summarizing their findings ✓ Fill the post-experiment survey 29 Evaluation: What we asked for?
  • 30. The projects chosen by the participants englobe several domains (19 projects) Project #Packages #Classes Median of methods Domain Avatar 2 18 6 Proxy Sindarin 3 18 14 Debugging MoTion 2 35 5 Pattern Machine Clap 5 47 8 Parsing Slang 2 73 29 Virtual machine Polyphemus 3 79 9 Virtual machine AST-Core 3 101 21 Domain-Specific-Language Reflectivity 5 114 13 Domain-Specific-Language Druid 1 170 12 Virtual Machine Seeker 2 236 9 Debugging MooseIDE 16 250 8 Analysis Polymath 60 309 11 Computing Refactoring 12 378 6 Refactorings AIPharo 85 424 6 Artificial Intelligence Roassal 39 445 12 Visualizations Iceberg 11 488 10 Version Control Fylgja 73 941 15 Migration Microdown 29 268 11 Parsing 30 Evaluation: About the projects
  • 31. Participants level of knowledge about the project. 31 The participants have diverse profiles: • Interns • Developers • PhD students • Researchers Evaluation: About the participants Experts Debutants Intermediary Advanced 45 % 10 % 35 % 10 %
  • 32. The participants have diverse profiles: • Interns • Developers • PhD students • Researchers Experts Debutants Intermediary Advanced 45 % 10 % 35 % 10 % Participants level of knowledge about the project. 32 Evaluation: About the participants
  • 33. Analyse data about the human-visualization interaction 33 Evaluation: Qualitative Screen records Findings reports (over 600 hours)
  • 35. ✓ Empty Classes ✓ Big Classes ✓ Complex Classes ✓ Dying Classes ✓ Tested/Untested Classes 35 Qualitative evaluation: Flight over
  • 36. 36 ✓ Duplicated Code ✓ Complex Methods ✓ Dead Code ✓ Long Method Comments ✓ Tested/Untested Methods Qualitative evaluation: Plunge in
  • 37. Quantitative 37 Evaluation: Quantitative 1. The visualization helps in understanding the: 2. Does the visualization help in detecting: 3. The visualization is: Dead code Complex methods Tested/Untested methods 26% 46% 34% 46% 11% 3% 11% 38% 11% 3% 34% 19% 7% 3% Easy to use 3% 15% 42% 76% 30% 15% 7% 7% Scalable Code/State of a class is reused Reused code from the superclass Class/instance side communication Design of the class Strongly agree Agree Undecided Disagree Strongly Disagree 15% 46% 3% 19% 7% 23% 53% 38% 15% 53% 19% 30% 23% 19% 7% 23% Mono/poly/megamorphic methods 26% 46% 26%
  • 38. “In the MicHTMLDoc class we could exclusively see the tested and untested methods. ” - From the Microdown project 38 Anecdotal evidence
  • 39. “Dead methods correspond mostly to unused code that I forgot to remove. ” - From the Seeker project 39 Anecdotal evidence
  • 40. “I found obsolete prototype code by taking a look at these long methods ” - From the Seeker project 40 Anecdotal evidence
  • 41. The visualization also helped me quickly identify dead code and eliminate it. As this is a new project (early stage of development) I didn’t remove all dead methods or classes, but in other kinds of projects I would do it. ” - From the Druid project “ 41 Anecdotal evidence
  • 42. I couldn't used it in the large classes, those are the most interesting to analyze. ” - From the Iceberg project “ 42 Anecdotal evidence
  • 43. • An enhancement of the Class Blueprint visualization based on new requirements • Qualitative & quantitative evaluations on 26 participants and 19 projects • Participants reported some interesting findings about anomalies in their software Conclusion