130924 yann-gael gueheneuc - an overview of software code quality and connection to business...

75
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 1 st IEEE International Workshop on Communicating Business Process and Software Models (Quality, Understandability, and Maintainability)

Upload: ptidej-team

Post on 29-Nov-2014

209 views

Category:

Technology


2 download

DESCRIPTION

Software quality, software code, business processes, patterns, social studies, developers studies, empirical studies

TRANSCRIPT

Page 1: 130924   yann-gael gueheneuc - an overview of software code quality and connection to business process quality

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

2/75

Page 3: 130924   yann-gael gueheneuc - an overview of software code quality and connection to business process quality

3/75

Page 4: 130924   yann-gael gueheneuc - an overview of software code quality and connection to business process quality

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

33/75

Good Practices

Page 34: 130924   yann-gael gueheneuc - an overview of software code quality and connection to business process quality

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

75/75

MaintainabilityUnderstandability

Quality Models Models

Good Practices Definition

Metrics

Detection Occurrences

Social Studies Characteristics

Eye-tracking Studies Behaviour

Factors

Measures