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

Post on 10-May-2015

663 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

http://www.computing.dcu.ie/~pjamshidi/SLR-ACSE.html

Transcript

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

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

Traditional Architecture-Centric Software Evolution

3

A Paradigm Change (I): models@runtime

4

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

6

The Conceptual Framework

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

Agenda

• Research Methodology

• Research Questions

• Search Strategy & Quality Assessment

• Data Items

• Results

• Limitations

8

Systematic Literature Review (Abstract)

9

10

Research Methodology

Research Methodology

11

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

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

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

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

Number of Included Studies per Year

16

0

2

4

6

8

10

12

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

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

Results, RQ1: types of evolution (I)

19

0 5 10 15 20

Corrective

Perfective

Adaptive

Preventive

All applicable

Need for Evolution

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

Results, RQ1: types of evolution (III)

21

0 10 20 30 40 50

Design-Time

Run-Time

Time of Evolution

Results, RQ1: types of evolution (IV)

22

0 2 4 6 8

Consistency checking

Evolution analysis

Change propagation

Versioning

Support Activity

Results, RQ1: types of evolution (V)

23

0 10 20 30 40

Analysis and Design

Implementation

Maintenance

Stage of Evolution

Results, RQ2: “formalisms”

1. Level of Formalism

2. Type of Formalism

3. Description Language

4. UML Specification

5. Description Aspect

24

Results, RQ2: formalisms (I)

25

0 10 20 30 40

Lightweight

Formal

Level of Formalism

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

Results, RQ2: formalisms (II)

27

0 5 10 15 20

ACME

xAcme

UML

Extended UML

AO-ADL

Darwin

SafArchie

Description Language

Results, RQ2: formalisms (III)

28

0 5 10 15 20

Activity

State

Sequence

Class

Component

Object

Communication

Transition

UML Specification

Results, RQ2: formalisms (IV)

29

0 10 20 30 40 50 60

Structural

Behavioral

Semantic

Description Aspect

Results, RQ3: “architectural reasoning”

1. Architectural Constraint

2. Intent of Reasoning

3. Type of Analysis

30

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

Results, RQ3: architectural reasoning (II)

32

0 10 20 30 40

Specify

Preserve

Change

Enforce

Match

Discover

Analyze

Intent of Reasoning

Results, RQ3: architectural reasoning (III)

33

0 5 10 15

Consistency checking

Model checking

Pattern conformance

Graph-based refinement

Constraint enforcement

Type of Analysis

Results, RQ4: “execution environments”

1. Environment of Runtime Evolution

2. Mean of Runtime Evolution

34

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

Results, RQ5: “tool supports”

1. Need for Tool Support

2. Analysis Usage of Tool Support

3. Level of Automation

36

Results, RQ5: tool supports (I)

37

0 10 20 30 40

Creating

Documenting

Analyzing

Evolving

Need for Tool Support

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

Results, RQ5: tool supports (III)

39

0 10 20 30 40

Full

Partial

Manual

Level of Automation

Results: Research method

1. Application Domain

2. Evaluation Method

40

Results: research method (I)

41

0 10 20 30 40

SOA

OO

Distributed system

Event-based system

CBD

Application Domain

Results: research method (II)

42

0 5 10 15 20 25 30

Case study

Mathematical proof

Example application

Evaluation Method

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

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

Thanks, more details? Check out the link below

45 http://tiny.cc/hcg8sw

top related