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

Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 

Recently uploaded (20)

Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 

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