Top Banner
A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research Pooyan Jamshidi, Mohammad Ghafari, Aakash Ahmad, Claus Pahl Lero - The Irish Software Engineering Research Centre, School of Computing, Dublin City University
45

A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

May 10, 2015

Download

Documents

Pooyan Jamshidi

http://www.computing.dcu.ie/~pjamshidi/SLR-ACSE.html
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

A Framework for Classifying and Comparing

Architecture-Centric Software Evolution Research

Pooyan Jamshidi, Mohammad Ghafari,

Aakash Ahmad, Claus Pahl Lero - The Irish Software Engineering Research Centre,

School of Computing, Dublin City University

Page 2: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Architecture-Centric Software Evolution

Software Architecture represents the blue-print of a software as

topological configuration of computational components and connectors that

enable component-level interconnections. [ISO/IEC/IEEE 42010 Standard]

Software Evolution adapts a software to changing requirements and

operating environment by means of addition, removal and modification of

software artefacts. [ACM/IEEE Software Engineering Curriculum, 2004]

- Evolution @ Design-time

- Evolution @ Run-time

2

Page 3: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Traditional Architecture-Centric Software Evolution

3

Page 4: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

A Paradigm Change (I): models@runtime

4

Page 5: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

A Paradigm Change (II): executable models

Executing the model makes sense

An engine is responsible for the execution

An interpreted DSL is needed

5

System=Executable Model

Run-Time Environment

Adaptation

Page 6: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

6

The Conceptual Framework

Page 7: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Motivations for this Study

Wide spectrum of approaches

Different paradigms and frameworks

Different problem and solution spaces

Different interpretation of concepts

No systematic insight into state-of-the-art

Such insight is crucial for practitioners and researchers

To that end, we performed an SLR

Taxonomic Scheme

Classification and Comparison

7

Page 8: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Agenda

• Research Methodology

• Research Questions

• Search Strategy & Quality Assessment

• Data Items

• Results

• Limitations

8

Page 9: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Systematic Literature Review (Abstract)

9

Page 10: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

10

Research Methodology

Page 11: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Research Methodology

11

Page 12: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Project Scope

• 60 papers selected after exclusion process

• Protocol defined by 4 researchers

• Papers reviewed by 2 researchers

• Data analysis with 4 researchers

• ~30 discussion sessions to get an agreement on

data extraction

• Duration of the study ~ 9 months

• Special thanks to Excel and Dropbox!!!

12

Page 13: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Research Questions

RQ1: What types of evolution are supported in

ACSE?

RQ2: Which formalisms are required to enable an

ACSE approach?

RQ3: How architectural reasoning is adopted in

ACSE?

RQ4: Which execution environments and mechanisms

are needed to enable run-time evolution?

RQ5: What tool supports is available for ACSE?

13

Page 14: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Search Strings and Retrieved Papers

14

No Name Results

1 ACM 663

2 IEEE 1149

3 Science Direct 194

4 Web Of Science 480

5 Springer Link 445

6 Pro-Quest 231 7 Google Scholar 460

8 Wiley 516 Total 4138

Page 15: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Quality Assessment of Studies

General 1. Problem definition of the study (2)

2. Environment in which the study was carried out (1)

3. Research design of the study refers to the way the study was organized (2)

4. Contributions of the study refer to the study results (2)

5. Insights derived from the study (2)

6. Limitations of the study (2)

Specific 1. Main focus of the paper (2)

2. The architecture descriptions presented in the studies (2)

3. Architectural properties in terms of constraints (2)

4. Evaluation of the study (2)

Ranking formula= G1+G2+G3+G4+G5+G6

11+

(S1+S2+S3+S4)

8∗ 3

4= Quality papers; 3: Acceptable; 2, 1, 0: Excluded

15

Page 16: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Number of Included Studies per Year

16

0

2

4

6

8

10

12

Page 17: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Collected Data Items

17

Taxonomical Classification

(Higher-Order Theme)

Sub-classifications

(Sub-themes)

Coded Attributes (Domain Knowledge, Standards, Keywords)

Type of Evolution

Need for Evolution ISO/IEC 14764 typology of change: Corrective, Perfective, Adaptive, Preventive, All applicable

Means of Evolution Static: Transformation, Refactoring, Refinement, Restructuring, Pattern change; Dynamic: Reconfiguration, Adaptation

Time of Evolution Design-Time, Run-Time

Support Activity Change impact: Consistency checking, Impact analysis, Propagation; Change history: Evolution analysis, Versioning

Stage of Evolution SDLC: Analysis/Design, Implementation, Integration/provisioning, Deployment, Evolution

Type of Specification

Level of Formalism Lightweight, Formal

Type of Formalism

Modeling language: ADL, Programming lang., Domain-specific lang., Type systems, Archface, Model-based; Formal models: Graph theory, Petri-net, Ontology, State machine, Constraint automata, CHAM; Process algebra: FSP, CSP, π-calculus; Logic (Constraint language): OCL, CCL, FOL, Grammars, Temporal logics, Rules, Description logic, Z, Alloy, Larch

Description Language Process algebra: Darwin, Wright, LEDA, PiLar; Standards: UML, Ex.-UML, SysML, AADL; Others: ACME, Aesop, C2, MetaH, Rapide, SADL, UniCon, Weaves, Koala, xADL, ADML, AO-ADL, xAcme

UML Specification Static: Class, Component, Object; Dynamic: Activity, State, Sequence, Transition, Communication

Description Aspect Structural, Behavioral, Semantic

Type of Reasoning

Architectural Constraint

Structural: Pattern, Architectural style, Primitive, Metaphore, Micro-structure, Crosscutting concern, Clue; Invariant: Component-level invariant, Cross-component invariant, Pre-/Post-condition, Temporal invariant; Relational constraints: Coding rules, Cardinality, Coordination, Meta-model, Variability

Intent of Reasoning Specify, Preserve, Change, Enforce, Match, Discover, Analyze

Type of Analysis Consistency checking, Model checking, Pattern conformance, Graph refinement, Enforcement

Run-Time Issue

Runtime Environment Component model: Fractal, KOALA, SOFA 2.0, CCM, OpenCOM, KobrA, Middleware: SIENA, OSGi, .NET, MS-COM, EJB, JavaBeans, SOA middleware, Coordination model: Reo, Linda, MANIFOLD

Mechanism of Runtime Evolution

Reflection mechanisms: Introspection, Constraint injection, Intercession, Reification, Causal connection, Evolution enablers: Safe stopping, Runtime binding, State transfer

Tool Support

Need for Tool Support Architecture life-cycle: Business case, Creating architecture, Documenting, Analyzing, Evolving

Analysis Usage of Tool Support

Simulation, Dependence analysis, Model checking, Conformance testing, Interface consistency, Inspection and review-based

Level of Automation Fully automated, Partially automated, Manual

Research Method

Research Motivation A particular problem/challenge, Overview or Survey, Formalism for constraint specification, Formalism for architectural analysis, Formalism for arch. evolution, Formalism for code generation

Application Domain Development paradigm: SPL, OO, SOA, CBS; Traditional: Embedded, Real-time, Process-aware, Distributed, Event-based, Concurrent, Mechatronic, Mobile, Robotic, Grid computing; Emerging: Cloud computing, Smart-*, Autonomic computing, *-critical, Ubiquitous

Evaluation Method Case study, Mathematical proof, Example application, Industrial validation

Taxonomical Classification

(Higher-Order Theme)

Sub-classifications

(Sub-themes)

Coded Attributes (Domain Knowledge, Standards, Keywords)

Type of Evolution

Need for Evolution ISO/IEC 14764 typology of change: Corrective, Perfective, Adaptive, Preventive, All applicable

Means of Evolution Static: Transformation, Refactoring, Refinement, Restructuring, Pattern change; Dynamic: Reconfiguration, Adaptation

Time of Evolution Design-Time, Run-Time

Support Activity Change impact: Consistency checking, Impact analysis, Propagation; Change history: Evolution analysis, Versioning

Stage of Evolution SDLC: Analysis/Design, Implementation, Integration/provisioning, Deployment, Evolution

Type of Specification

Level of Formalism Lightweight, Formal

Type of Formalism

Modeling language: ADL, Programming lang., Domain-specific lang., Type systems, Archface, Model-based; Formal models: Graph theory, Petri-net, Ontology, State machine, Constraint automata, CHAM; Process algebra: FSP, CSP, π-calculus; Logic (Constraint language): OCL, CCL, FOL, Grammars, Temporal logics, Rules, Description logic, Z, Alloy, Larch

Description Language Process algebra: Darwin, Wright, LEDA, PiLar; Standards: UML, Ex.-UML, SysML, AADL; Others: ACME, Aesop, C2, MetaH, Rapide, SADL, UniCon, Weaves, Koala, xADL, ADML, AO-ADL, xAcme

UML Specification Static: Class, Component, Object; Dynamic: Activity, State, Sequence, Transition, Communication

Description Aspect Structural, Behavioral, Semantic

Type of Reasoning

Architectural Constraint

Structural: Pattern, Architectural style, Primitive, Metaphore, Micro-structure, Crosscutting concern, Clue; Invariant: Component-level invariant, Cross-component invariant, Pre-/Post-condition, Temporal invariant; Relational constraints: Coding rules, Cardinality, Coordination, Meta-model, Variability

Intent of Reasoning Specify, Preserve, Change, Enforce, Match, Discover, Analyze

Type of Analysis Consistency checking, Model checking, Pattern conformance, Graph refinement, Enforcement

Run-Time Issue

Runtime Environment Component model: Fractal, KOALA, SOFA 2.0, CCM, OpenCOM, KobrA, Middleware: SIENA, OSGi, .NET, MS-COM, EJB, JavaBeans, SOA middleware, Coordination model: Reo, Linda, MANIFOLD

Mechanism of Runtime Evolution

Reflection mechanisms: Introspection, Constraint injection, Intercession, Reification, Causal connection, Evolution enablers: Safe stopping, Runtime binding, State transfer

Tool Support

Need for Tool Support Architecture life-cycle: Business case, Creating architecture, Documenting, Analyzing, Evolving

Analysis Usage of Tool Support

Simulation, Dependence analysis, Model checking, Conformance testing, Interface consistency, Inspection and review-based

Level of Automation Fully automated, Partially automated, Manual

Research Method

Research Motivation A particular problem/challenge, Overview or Survey, Formalism for constraint specification, Formalism for architectural analysis, Formalism for arch. evolution, Formalism for code generation

Application Domain Development paradigm: SPL, OO, SOA, CBS; Traditional: Embedded, Real-time, Process-aware, Distributed, Event-based, Concurrent, Mechatronic, Mobile, Robotic, Grid computing; Emerging: Cloud computing, Smart-*, Autonomic computing, *-critical, Ubiquitous

Evaluation Method Case study, Mathematical proof, Example application, Industrial validation

Taxonomical Classification

(Higher-Order Theme)

Sub-classifications

(Sub-themes)

Coded Attributes (Domain Knowledge, Standards, Keywords)

Type of Evolution

Need for Evolution ISO/IEC 14764 typology of change: Corrective, Perfective, Adaptive, Preventive, All applicable

Means of Evolution Static: Transformation, Refactoring, Refinement, Restructuring, Pattern change; Dynamic: Reconfiguration, Adaptation

Time of Evolution Design-Time, Run-Time

Support Activity Change impact: Consistency checking, Impact analysis, Propagation; Change history: Evolution analysis, Versioning

Stage of Evolution SDLC: Analysis/Design, Implementation, Integration/provisioning, Deployment, Evolution

Type of Specification

Level of Formalism Lightweight, Formal

Type of Formalism

Modeling language: ADL, Programming lang., Domain-specific lang., Type systems, Archface, Model-based; Formal models: Graph theory, Petri-net, Ontology, State machine, Constraint automata, CHAM; Process algebra: FSP, CSP, π-calculus; Logic (Constraint language): OCL, CCL, FOL, Grammars, Temporal logics, Rules, Description logic, Z, Alloy, Larch

Description Language Process algebra: Darwin, Wright, LEDA, PiLar; Standards: UML, Ex.-UML, SysML, AADL; Others: ACME, Aesop, C2, MetaH, Rapide, SADL, UniCon, Weaves, Koala, xADL, ADML, AO-ADL, xAcme

UML Specification Static: Class, Component, Object; Dynamic: Activity, State, Sequence, Transition, Communication

Description Aspect Structural, Behavioral, Semantic

Type of Reasoning

Architectural Constraint

Structural: Pattern, Architectural style, Primitive, Metaphore, Micro-structure, Crosscutting concern, Clue; Invariant: Component-level invariant, Cross-component invariant, Pre-/Post-condition, Temporal invariant; Relational constraints: Coding rules, Cardinality, Coordination, Meta-model, Variability

Intent of Reasoning Specify, Preserve, Change, Enforce, Match, Discover, Analyze

Type of Analysis Consistency checking, Model checking, Pattern conformance, Graph refinement, Enforcement

Run-Time Issue

Runtime Environment Component model: Fractal, KOALA, SOFA 2.0, CCM, OpenCOM, KobrA, Middleware: SIENA, OSGi, .NET, MS-COM, EJB, JavaBeans, SOA middleware, Coordination model: Reo, Linda, MANIFOLD

Mechanism of Runtime Evolution

Reflection mechanisms: Introspection, Constraint injection, Intercession, Reification, Causal connection, Evolution enablers: Safe stopping, Runtime binding, State transfer

Tool Support

Need for Tool Support Architecture life-cycle: Business case, Creating architecture, Documenting, Analyzing, Evolving

Analysis Usage of Tool Support

Simulation, Dependence analysis, Model checking, Conformance testing, Interface consistency, Inspection and review-based

Level of Automation Fully automated, Partially automated, Manual

Research Method

Research Motivation A particular problem/challenge, Overview or Survey, Formalism for constraint specification, Formalism for architectural analysis, Formalism for arch. evolution, Formalism for code generation

Application Domain Development paradigm: SPL, OO, SOA, CBS; Traditional: Embedded, Real-time, Process-aware, Distributed, Event-based, Concurrent, Mechatronic, Mobile, Robotic, Grid computing; Emerging: Cloud computing, Smart-*, Autonomic computing, *-critical, Ubiquitous

Evaluation Method Case study, Mathematical proof, Example application, Industrial validation

Page 18: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ1: “types of evolution”

1. Need for Evolution

2. Means of Evolution

3. Time of Evolution

4. Support Activity

5. Stage of Evolution

18

Page 19: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ1: types of evolution (I)

19

0 5 10 15 20

Corrective

Perfective

Adaptive

Preventive

All applicable

Need for Evolution

Page 20: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ1: types of evolution (II)

20

0 5 10 15 20

Transformation

Refactoring

Refinement

Restructuring

Adaptation

Reconfiguration

Pattern-based

Arch. decision

Change operation

Means of Evolution

Page 21: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ1: types of evolution (III)

21

0 10 20 30 40 50

Design-Time

Run-Time

Time of Evolution

Page 22: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ1: types of evolution (IV)

22

0 2 4 6 8

Consistency checking

Evolution analysis

Change propagation

Versioning

Support Activity

Page 23: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ1: types of evolution (V)

23

0 10 20 30 40

Analysis and Design

Implementation

Maintenance

Stage of Evolution

Page 24: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ2: “formalisms”

1. Level of Formalism

2. Type of Formalism

3. Description Language

4. UML Specification

5. Description Aspect

24

Page 25: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ2: formalisms (I)

25

0 10 20 30 40

Lightweight

Formal

Level of Formalism

Page 26: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ2: formalisms (II)

26 0 5 10 15 20

Graph

Petri-net

Model-based

Description logic

π-calculus

Prog. language

Alloy

OCL

CCL

State machine

Z

C. Automata

Process algebra

Temporal logics

Archface

Type of Formalism

Page 27: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ2: formalisms (II)

27

0 5 10 15 20

ACME

xAcme

UML

Extended UML

AO-ADL

Darwin

SafArchie

Description Language

Page 28: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ2: formalisms (III)

28

0 5 10 15 20

Activity

State

Sequence

Class

Component

Object

Communication

Transition

UML Specification

Page 29: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ2: formalisms (IV)

29

0 10 20 30 40 50 60

Structural

Behavioral

Semantic

Description Aspect

Page 30: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ3: “architectural reasoning”

1. Architectural Constraint

2. Intent of Reasoning

3. Type of Analysis

30

Page 31: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ3: architectural reasoning (I)

31

0 5 10 15 20 25

Pattern

Architectural style

Primitive

Component-level invariant

Cross-component invariant

Crosscutting concern

Meta-model

Pre-/Post-condition

Coordination constraint

Coding rules

Architectural Constraint

Page 32: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ3: architectural reasoning (II)

32

0 10 20 30 40

Specify

Preserve

Change

Enforce

Match

Discover

Analyze

Intent of Reasoning

Page 33: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ3: architectural reasoning (III)

33

0 5 10 15

Consistency checking

Model checking

Pattern conformance

Graph-based refinement

Constraint enforcement

Type of Analysis

Page 34: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ4: “execution environments”

1. Environment of Runtime Evolution

2. Mean of Runtime Evolution

34

Page 35: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ4: execution environments (I)

35

0 0.5 1 1.5

Fractal

OSGi

CCM

PKUAS

SOA middleware

SIENA

Environment of Runtime Evolution

0 2 4

Reflection

Causalconnection

Runtimebinding

Mean of Runtime Evolution

Page 36: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ5: “tool supports”

1. Need for Tool Support

2. Analysis Usage of Tool Support

3. Level of Automation

36

Page 37: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ5: tool supports (I)

37

0 10 20 30 40

Creating

Documenting

Analyzing

Evolving

Need for Tool Support

Page 38: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ5: tool supports (II)

38

0 2 4 6 8 10 12

Simulation

Dependence analysis

Model checking

Conformance

Inspection

Analysis Usage of Tool Support

Page 39: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results, RQ5: tool supports (III)

39

0 10 20 30 40

Full

Partial

Manual

Level of Automation

Page 40: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results: Research method

1. Application Domain

2. Evaluation Method

40

Page 41: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results: research method (I)

41

0 10 20 30 40

SOA

OO

Distributed system

Event-based system

CBD

Application Domain

Page 42: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Results: research method (II)

42

0 5 10 15 20 25 30

Case study

Mathematical proof

Example application

Evaluation Method

Page 43: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Main Results: Summary

Recent inclination towards

Runtime adaptation

Self-adaptive applications

Probabilistic modeling

Quantitative verification

“Reflective environments” and “Models @ run-

time” as the key drivers to enable adaptations

Lack of evidences for rigorous validation

Recent evidences of machine learning approaches

in ACSE

43

Page 44: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Study Limitations

Bias of the reviewers

Search strategies

Research protocol

Reliability

Consensus among researchers

Scheme

Pilot study

Open data

Results are valid, though not conclusive!!

44

Page 45: A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research

Thanks, more details? Check out the link below

45 http://tiny.cc/hcg8sw