![Page 1: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/1.jpg)
Yann-Gaël Guéhéneuc
This work is licensed under a Creative Commons Attribution-NonCommercial-
ShareAlike 3.0 Unported License
An Overview of Software Code Quality and Connection to Business Process Quality
1st IEEE International Workshop on
Communicating Business Process
and Software Models(Quality, Understandability, and Maintainability)
![Page 2: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/2.jpg)
2/75
![Page 3: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/3.jpg)
3/75
![Page 4: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/4.jpg)
4/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 5: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/5.jpg)
5/75
Introduction
Software total cost of ownership (TCO) includes all the costs to acquire and keep a program running, from specifications to licenses to training
Maintenance contributes between 50% and 90% of TCO [Erlikh, Lientz]
![Page 6: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/6.jpg)
6/75
Introduction
Four factors impact maintainers [ISO9126]
– Software analysability
• Their ability to identify and understand defects
– Software Changeability
• The effort needed to change the software
– Software Stability
• The sensitivity of the software to change
– Software Testability
• The effort needed to test the software
![Page 7: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/7.jpg)
7/75
Introduction
Two factors impact software analysability
– Software quality characteristics
• ISO/IEC standards 9126:2001 and 25000:2005 decompose software quality into process quality, product quality, and quality in use
– Software products are the output of software processes. Product quality is determined by the degree to which the developed software meets the defined requirements
– Developers’ characteristics
• Status, experience, education, gender
• …
![Page 8: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/8.jpg)
8/75
Introduction
Three dimensions characterise software quality characteristics
– Functional vs. non-functional
• At runtime vs. overall
– Internal vs. external
• Maintainability vs. understandability
– Metric-based vs. practice-based
• Objective vs. subjective
![Page 9: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/9.jpg)
9/75
Introduction
Three dimensions characterise software quality characteristics
– Functional vs. non-functional
• At runtime vs. overall
– Internal vs. external
• Maintainability vs. understandability
– Metric-based vs. practice-based
• Objective vs. subjective
![Page 10: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/10.jpg)
10/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 11: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/11.jpg)
11/75
Trail
In this talk, we will discuss how to measure the overall quality characteristics of maintainability and understandability objectively and subjectively
![Page 12: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/12.jpg)
12/75
Trail
MaintainabilityUnderstandability
Quality Models Models
Good Practices Definition
Metrics
Detection Occurrences
Social Studies Characteristics
Eye-tracking Studies Behaviour
Factors
Measures
![Page 13: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/13.jpg)
13/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 14: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/14.jpg)
14/75
Definitions
Maintainability
– Ease with which a software system can be modified [IEEE Standard Glossary of Software Engineering Terminology]
Understandability
– Ease with which a software system can be understood [Boehm]
![Page 15: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/15.jpg)
15/75
Definitions
Software code artefacts
– Source code, such as Java
– UML-like models
– …
Labelled, weighted multi-graphs
![Page 16: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/16.jpg)
16/75
Definitions
Business process artefacts
– Languages, such as BEPL
– BPMN
– …
Labelled, weighted multi-graphs
![Page 17: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/17.jpg)
17/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 18: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/18.jpg)
18/75
Trail
MaintainabilityUnderstandability
Quality Models Models
Good Practices Definition
Metrics
Detection Occurrences
Social Studies Characteristics
Eye-tracking Studies Behaviour
Factors
Measures
![Page 19: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/19.jpg)
19/75
Quality Models
Problem: how to measure software code artefacts?Solution: define and use quality metrics and models
![Page 20: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/20.jpg)
20/75
Quality Models
Quality models
– A model with the objective to describe, assess and–or predict quality [Deissenboeck]
Metrics
Models
![Page 21: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/21.jpg)
21/75
Quality Models
Metrics have been well researched since the early days of software engineering
– Chidamber and Kemerer
– Hitz and Montazeri
– Lorenz and Kidd
– McCabe
– …
(Don’t miss Briand et al.’s surveys on the metrics of cohesion and coupling)
![Page 22: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/22.jpg)
22/75
Quality Models
Metrics alone are meaningless
– Size vs. IQ
– …
– Hotness vs. IQ [Srivastava]
http://hardsci.wordpress.com/2013/09/17/the-hotness-iq-tradeoff-in-academia/
![Page 23: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/23.jpg)
23/75
Quality Models
Few quality models exist
– Boehm’s
– ISO9126
– McCall’s
– QMOOD
– …
![Page 24: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/24.jpg)
24/75
Quality Models
Bansiya and Davis’ QMOOD
– Hierarchical model for OO designs
– Structural and behavioural design properties of classes, objects, and their relationships
• Reusability, flexibility, and complexity
– Object-oriented design metrics, such as
• Encapsulation, modularity, coupling, and cohesion
– Validated using empirical and expert opinion on several large commercial systems
![Page 25: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/25.jpg)
25/75
Quality Models
Difficulty to relate metric values with quality characteristics, such as maintainability and understandability
Difficulty to identify relevant metrics and show that the metrics measure what they are expected to measure
![Page 26: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/26.jpg)
26/75
Quality Models
Metrics
– 3QM-Framework [Overhage et al.]
– ProM [Vanderfeesten et al.]
Models
There probably exist more?
![Page 27: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/27.jpg)
27/75
Trail
MaintainabilityUnderstandability
Quality Models Models
Good Practices Definition
Metrics
Detection Occurrences
Social Studies Characteristics
Eye-tracking Studies Behaviour
Factors
Measures
![Page 28: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/28.jpg)
28/75
Good Practices
Problem: how to identify good/bad practices?Solution: collect and detect models of the practices
![Page 29: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/29.jpg)
29/75
Good Practices
Software engineering development and maintenance are based on a few principles
– SOLID
– Do not reinvent the wheel
– Beware of assumptions
– …
![Page 30: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/30.jpg)
30/75
Good Practices
Martin and Feather’s SOLID
– Single responsibility
– Open/closed
– Liskov substitution
– Interface segregation
– Dependency inversion
(Don’t miss Michael Feather’s keynote on Thursday on the software useful life)
![Page 31: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/31.jpg)
31/75
Good Practices
Each pattern describes a problem which occurs over and over again in our environ-ment, and then describes the core of the solution to that problem, in such way that you can use this solution a million times over, without ever doing it the same way twice.
—Christopher Alexander, 1977
![Page 32: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/32.jpg)
32/75
Good Practices
Important assumptions
– That patterns can be codified in such a way that they can be shared between different designers.
– That reuse will lead to “better” designs. There is an obvious question here of what constitutes “better”, but a key measure is maintainability.
—Zhang and Budgen, 2012
(With minor adaptations)
![Page 33: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/33.jpg)
33/75
Good Practices
![Page 34: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/34.jpg)
34/75
Good Practices
Design Patterns
– A general reusable solution to a commonly occurring problem within a given context in software design
Design Antipatterns
– A design pattern that may be commonly used but is ineffective/counterproductive in practice
![Page 35: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/35.jpg)
35/75
Good Practices
Pattern solution = Motif which
connotes an
elegant architecture
![Page 36: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/36.jpg)
36/75
Good Practices
How to identify
in the architecture
of a program
micro-architectures
similar to
design motifs
to explain the
problem solved?
Figure
CompositeFigureAttributeFigure PolyLineFigureDecoratorFigure
To compose objectsin a tree-like structureto describe whole–parthierarchies
Frame
DrawingEditor
Tool
Handle
Panel
DrawingView
Drawing
Figure
AbstractFigure
CompositeFigureAttributeFigure PolyLineFigureDecoratorFigure
Component
operation()
Leaf
operation()
Composite
add(Component)remove(Component)getComponent(int)operation()
ramification
For each componentscomponent.operation()
1..nClient
![Page 37: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/37.jpg)
37/75
Good Practices
What motifs and what model for these motifs?
What model for the program architecture?
How to perform the identification?
![Page 38: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/38.jpg)
38/75
Good Practices
What motifs and what model for these motifs?
What model for the program architecture?
How to perform the identification?
Design Meta-model
Design motifs and a motif meta-model
![Page 39: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/39.jpg)
39/75
Good Practices
Multi-layer framework for design motif identification
Information retrieval
– Search space
– Query
– Results
![Page 40: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/40.jpg)
40/75
Good Practices
Multi-layer framework for design motif identification
Code
Model
Model + Associations, aggregations
Model + Associations, aggregations,
and composition
![Page 41: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/41.jpg)
41/75
Good Practices
Constraint satisfaction problem solved with explanation-based constraint programming (e-CP) to obtain
– No a priori descriptions of variations
– Justification of the identified micro-architectures
– Strong interaction with the developers
![Page 42: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/42.jpg)
42/75
Good Practices – Example
Design motif ( )
Component
operation()
Leaf
operation()
Composite
add(Component)remove(Component)getComponent(int)operation()
ramification
For each componentscomponent.operation()
1..nClient
![Page 43: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/43.jpg)
43/75
Good Practices – Example
Example of JHotDraw
– Erich Gamma and Thomas Eggenschwiler
– 2D drawing
– Design patterns
![Page 44: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/44.jpg)
44/75
Goo
d P
ract
ices
–E
xam
ple
Frame
DrawingEditor
Tool
Handle
Panel
DrawingView
Drawing
Figure
AbstractFigure
CompositeFigureAttributeFigure PolyLineFigureDecoratorFigure
![Page 45: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/45.jpg)
45/75
Good Practices – Example
Micro-architecture ( )
Maintainability
Understandability
Figure
CompositeFigureAttributeFigure PolyLineFigureDecoratorFigure
![Page 46: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/46.jpg)
46/75
Component
operation()
Leaf
operation()
Composite
add(Component)remove(Component)getComponent(int)operation()
ramification
For each componentscomponent.operation()
1..nClient
Frame
DrawingEditor
Tool
Handle
Panel
DrawingView
Drawing
Figure
AbstractFigure
CompositeFigureAttributeFigure PolyLineFigureDecoratorFigure
e-CP
V = {component, leaf, composite}
C = {leaf < component, composite < component, composite component}
D = {DrawingEditor, DrawingView…}
![Page 47: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/47.jpg)
47/75
Frame
DrawingEditor
Tool
Handle
Panel
DrawingView
Drawing
Figure
AbstractFigure
CompositeFigureAttributeFigure PolyLineFigureDecoratorFigure
e-CP
V = {component, leaf, composite}
C = {leaf < component, composite < component, composite component}
D = {DrawingEditor, DrawingView…}
<< <<
Component
operation()
Leaf
operation()
Composite
add(Component)remove(Component)getComponent(int)operation()
ramification
For each componentscomponent.operation()
1..nClient
![Page 48: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/48.jpg)
48/75
Good Practices
Search space can be very large and the efficiency in time of the search very low
Use metrics and topology to reduce the search space
![Page 49: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/49.jpg)
49/75
Good Practices
“Design” patterns
– Workflow patterns [van der Aalst]
“Design” antipatterns
– In BPEL [Palma et al.]
More? Detection? Impact?
![Page 50: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/50.jpg)
50/75
Trail
MaintainabilityUnderstandability
Quality Models Models
Good Practices Definition
Metrics
Detection Occurrences
Social Studies Characteristics
Eye-tracking Studies Behaviour
Factors
Measures
![Page 51: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/51.jpg)
51/75
Social Studies
Problem: how to characterise developers?Solution: study developers’ social behaviours
![Page 52: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/52.jpg)
52/75
Social Studies
Developers’ characteristics
– Gender
• Males vs. females
– Professional status
• Practitioner vs. Students
– Expertise
• Experts vs. novices
(Don’t miss the sessions Developers, What are you Thinking? and Context)
![Page 53: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/53.jpg)
53/75
Social Studies
Such studies are typically experiments
– Independent variable (few)
– Dependent variables (many)
– Statistical analyses
– Threats to validity
![Page 54: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/54.jpg)
54/75
Social Studies
For example, impact on identifiers on program understandability
– Identifier styles [Sharif, Binkley]
– Identifier quality [Lawrie]
– Developers’ gender and identifiers [Sharafi]
– …
![Page 55: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/55.jpg)
55/75
Social Studies
Independent variables
– Gender: male vs. female
– Identifier: camel case vs. underscore
Dependent variables
– Accuracy
– Time
– Effort
![Page 56: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/56.jpg)
56/75
Social Studies
Subjects
Conclusions
Subjects’ Demography(24 Subjects)
Academic background Gender
Ph.D. M.Sc. B.Sc. Male Female
11 10 3 15 9
Accuracy Time Effort
![Page 57: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/57.jpg)
57/75
Social Studies
Threats to validity
– Construct validity
• Measurements represent the construct being studied
– Internal validity
• A causal conclusion based on the study is warranted
– External validity
• Extent to which the results of the study can be generalised to other contexts or developers
– Conclusion validity
• Whether the presumed cause and effect covary
![Page 58: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/58.jpg)
58/75
Social Studies
Few studies
– Notations [Recker, Reijers]
• Understandability
• Personal factors
• Model factors
– Structuredness [Dumas et al.]
• Understanding
– Others?
![Page 59: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/59.jpg)
59/75
Trail
MaintainabilityUnderstandability
Quality Models Models
Good Practices Definition
Metrics
Detection Occurrences
Social Studies Characteristics
Eye-tracking Studies Behaviour
Factors
Measures
![Page 60: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/60.jpg)
60/75
Eye-tracking Studies
Problem: how to study developers’ behaviour?Solution: study developers’ thought processes
![Page 61: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/61.jpg)
61/75
Eye-tracking Studies
Developers’ thought processes
– Cognitive theories
• Brooks’
• Von Mayrhauser’s
• Pennington’s
• Soloway’s
– Mental models
• Gentner and Stevens’ mental models
– Memory theories
• Kelly’s categories
• Minsky’s frames
• Piaget’s schema
• Schank’s scripts
![Page 62: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/62.jpg)
62/75
Eye-tracking Studies
Studying developers’thought processes
– Yarbus’ eye-movements and vision
– Just and Carpenter’s eye-mind hypothesis
– Palmer’s vision science
– …
![Page 63: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/63.jpg)
63/75
Eye-tracking Studies
Picking into developers’ thought processes
![Page 64: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/64.jpg)
64/75
Eye-tracking Studies
Picking into developers’ thought processes
![Page 65: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/65.jpg)
65/75
Eye-tracking Studies
Such studies are typically experiments
– Independent variable (few)
– Dependent variables (many)
– Statistical analyses
– Threats to validity
![Page 66: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/66.jpg)
66/75
Eye-tracking Studies
For example, impact of design pattern notations
– Strongly visual [Schauer and Keler]
– Strongly textual [Dong et al.]
– Mixed [Vlissides]
– …
![Page 67: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/67.jpg)
67/75
Eye-tracking Studies
Independent variables
– Design pattern notations
– Tasks: Participation, Composition, Role
Dependent variables
– Average fixation duration
– Ratio of fixations
– Ration of fixation times
![Page 68: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/68.jpg)
68/75
Eye-tracking Studies
Subjects
– 24 Ph.D. and M.Sc. students
Conclusions
– Stereotype-enhanced UML diagram [Dong et al.]
more efficient for Composition and Role
– UML collaboration notation and the pattern-enhanced class diagrams more efficient for Participation
![Page 69: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/69.jpg)
69/75
Eye-tracking Studies
Threats to validity
– Construct validity
– Internal validity
– External validity
– Conclusion validity
![Page 70: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/70.jpg)
70/75
Eye-tracking Studies
One study
– Relevant regions [Petrusel and Mendling]
• Fixations
• Fixation time
– Others?
![Page 71: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/71.jpg)
71/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 72: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/72.jpg)
72/75
Conclusion
How to measure the overall quality characteristics of maintainability and understandability objectively and subjectively?
Focus on source code artefacts modelled as graphs, business process can be modelled as graphs too
![Page 73: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/73.jpg)
73/75
Conclusion
Software code quality is based on the modelling of code as graphs and on
– Quality metrics
– Quality models
– Good practices
and depends
– Experiences
– Human factors
![Page 74: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/74.jpg)
74/75
Conclusion
Business process quality could also be based on the modelling of business process code as graphs and follow similar research directions as source code?
![Page 75: 130924 yann-gael gueheneuc - an overview of software code quality and connection to business process quality](https://reader033.vdocuments.site/reader033/viewer/2022051817/547a05a4b379596f2b8b48ae/html5/thumbnails/75.jpg)
75/75
MaintainabilityUnderstandability
Quality Models Models
Good Practices Definition
Metrics
Detection Occurrences
Social Studies Characteristics
Eye-tracking Studies Behaviour
Factors
Measures