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
May 10, 2015
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