![Page 1: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/2.jpg)
2/75
![Page 3: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/3.jpg)
3/75
![Page 4: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/4.jpg)
4/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 5: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/10.jpg)
10/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 11: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/13.jpg)
13/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 14: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/15.jpg)
15/75
Definitions
Software code artefacts
– Source code, such as Java
– UML-like models
– …
Labelled, weighted multi-graphs
![Page 16: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/16.jpg)
16/75
Definitions
Business process artefacts
– Languages, such as BEPL
– BPMN
– …
Labelled, weighted multi-graphs
![Page 17: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/17.jpg)
17/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 18: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/23.jpg)
23/75
Quality Models
Few quality models exist
– Boehm’s
– ISO9126
– McCall’s
– QMOOD
– …
![Page 24: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/33.jpg)
33/75
Good Practices
![Page 34: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/35.jpg)
35/75
Good Practices
Pattern solution = Motif which
connotes an
elegant architecture
![Page 36: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/39.jpg)
39/75
Good Practices
Multi-layer framework for design motif identification
Information retrieval
– Search space
– Query
– Results
![Page 40: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/43.jpg)
43/75
Good Practices – Example
Example of JHotDraw
– Erich Gamma and Thomas Eggenschwiler
– 2D drawing
– Design patterns
![Page 44: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/45.jpg)
45/75
Good Practices – Example
Micro-architecture ( )
Maintainability
Understandability
Figure
CompositeFigureAttributeFigure PolyLineFigureDecoratorFigure
![Page 46: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/51.jpg)
51/75
Social Studies
Problem: how to characterise developers?Solution: study developers’ social behaviours
![Page 52: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/60.jpg)
60/75
Eye-tracking Studies
Problem: how to study developers’ behaviour?Solution: study developers’ thought processes
![Page 61: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/63.jpg)
63/75
Eye-tracking Studies
Picking into developers’ thought processes
![Page 64: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/64.jpg)
64/75
Eye-tracking Studies
Picking into developers’ thought processes
![Page 65: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/69.jpg)
69/75
Eye-tracking Studies
Threats to validity
– Construct validity
– Internal validity
– External validity
– Conclusion validity
![Page 70: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/70.jpg)
70/75
Eye-tracking Studies
One study
– Relevant regions [Petrusel and Mendling]
• Fixations
• Fixation time
– Others?
![Page 71: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/html5/thumbnails/71.jpg)
71/75
Outline
Example
Introduction
Trail
Definitions
Following the Trail
Conclusion
![Page 72: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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: An Overview of Software Code Quality and Connection to … · 2013-10-07 · An Overview of Software Code Quality and Connection to Business Process Quality 1st IEEE International](https://reader034.vdocuments.us/reader034/viewer/2022042405/5f1cfd3f51790c431c397409/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