Académique Documents
Professionnel Documents
Culture Documents
Evolution Research
Pooyan Jamshidi 1, Mohammad Ghafari 2, Aakash Ahmad 1, Claus Pahl 1
1
I. INTRODUCTION
Modern software systems are increasingly required to
operate in an open world [27], characterized by frequent
and unpredictable change in the environment in which they
are functioning and in the requirements they have to meet.
Considering existing research [1, 6, 18] and practice [23,
28], software architectures provide a sound basis to
smoothly evolve software and dynamically adapt it to
provide expected services. Architecture-centric software
evolution [1, 6, 10] allows an appropriate abstraction to
model, analyze and execute software evolution in a
controllable and manageable fashion.
Traditionally, software architecture is considered as an
appropriate abstraction level in the early stages of software
Please note that notation [SN] refers to the primary studies in Table 5.
Study Focus
Change Time
Design-Time
Run-Time
Both
Both
Both
Number
of Studies
82
14
130
16
60
Years
1992-2010
1992-2002
1976-2008
2004-2012
1995-2011
A. Research Questions
We formulated the general goal of the study through
PICOC (Population, Intervention, Comparison, Outcome
and Context) perspectives [22], summarized in Table 2.
The central research question translates to five concrete
questions:
RQ1: What types of evolution are supported in ACSE?
The aim is to get insight in what types of evolution are
proposed by researchers following four perspectives of
evolution: what, when, where, and why.
RQ2: Which formalisms are required to enable an
ACSE approach? The aim is to get insight in the usage of
formal methods by researchers. This aims to assess which
languages and what levels of expressiveness have been
used for modeling architectural constraints, verifying
properties and automation support.
RQ3: How architectural reasoning is adopted in
ACSE? The aim is to assess types of constraints and
architectural reasoning in existing ACSE.
RQ4: Which execution environments and mechanisms
are needed to enable run-time aspects of ACSE? The aim is
to investigate execution environments or dynamic
reconfiguration functionalities used in ACSE.
RQ5: What tool supports is available for ACSE? The
aim is to investigate what automation facilities are utilized
to provide support for ACSE concerns.
TABLE 2. PICOC CRITERIA TO DEFINE THE SCOPE AND GOALS OF THIS SLR
Criteria
Population
Intervention
Comparison
Outcome
Context
RQ1
RQ2
RQ3
RQ4
RQ5
Type of
Type of
Type of
Runtime
Tool Support
Evolution
Specification
Reasoning
Issues
Taxonomical classification; Internal/external validation; Extracting data and Synthesis
A comparison by mapping the primary studies to the classification framework
A classification framework; A comparison framework; Hypotheses for future research
A systematic investigation to consolidate the peer-reviewed research
Name
ACM
IEEE
Science Direct
Web Of Science
Springer Link
Pro-Quest
Google Scholar
Wiley
Total
Results
663
1149
194
480
445
231
460
516
4138
Exclusion
4
2
Rationale
We might have included studies which employ formal
methods, but do not actually employ them particularly
for evolution.
We might have included studies which are in their
initial stages and mostly are based on trial examples.
These studies do not provide a reasonable amount of
information.
These studies do not provide information regarding the
research questions.
These studies do not propose any specific approach.
Publication Channel
Count
16
8
4
4
3
3
3
3
2
2
2
1
1
1
1
1
1
1
1
1
1
60
S2
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S26
S27
S28
S29
S30
S31
S32
S33
S34
S35
S36
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001
2000
S25
1999
S3
1998
1997
Criteria
I1: The study must formalize
architecture description as well as
architectural properties.
I2: The study must provide some
evaluation evidences or theoretical
reasoning.
E1: A study that is an editorial,
abstract or a short paper.
E2: A study that focuses on formal
methods themselves, rather than on
the use of formal methods for ACSE.
E3: A study that is a review paper.
1995
Inclusion
1996
S51
S52
S53
S54
S55
S56
S57
S58
S59
S60
Year
2009
A
17
2005
18
2007
18
2008
16
2004
20
2010
19
2006
16
2007
16
2008
17
2004
17
2010
20
2008
17
2010
12
2010
12
2011
12
2007
2007
17
2011
12
2010
12
2010
14
2007
16
2010
14
2011
2008
14
2008
16
2006
13
2008
10
2008
14
1995
12
2005
15
2004
17
2004
20
2010
14
2011
11
2005
15
2006
14
2004
16
2009
2005
17
2007
16
2002
14
1999
14
2008
17
1998
12
2010
14
2001
18
1998
15
2007
18
2010
12
2006
17
2001
14
2006
14
2010
17
2006
16
2011
13
2007
13
1996
11
2003
10
2008
15
2005
18
Subclassifications
(Sub-themes)
Need for Evolution
Means of Evolution
Type of
Evolution
Time of Evolution
Support Activity
Stage of Evolution
Level of Formalism
Type of Formalism
Type of
Specification
Description Language
UML Specification
Description Aspect
Type of
Reasoning
Run-Time
Issue
Tool
Support
Architectural
Constraint
Intent of Reasoning
Type of Analysis
Runtime Environment
Mechanism of
Runtime Evolution
Need for Tool Support
Analysis
Usage of Tool Support
Level of Automation
Research Motivation
Research
Method
Application Domain
Evaluation Method
Coded Attributes
(Domain Knowledge, Standards, Keywords)
ISO/IEC 14764 typology of change: Corrective, Perfective, Adaptive, Preventive, All applicable
Static: Transformation, Refactoring, Refinement, Restructuring, Pattern change; Dynamic:
Reconfiguration, Adaptation
Design-Time, Run-Time
Change impact: Consistency checking, Impact analysis, Propagation; Change history: Evolution
analysis, Versioning
SDLC: Analysis/Design, Implementation, Integration/provisioning, Deployment, Evolution
Lightweight, Formal
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
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
Static: Class, Component, Object; Dynamic: Activity, State, Sequence, Transition, Communication
Structural, Behavioral, Semantic
Structural: Pattern, Architectural style, Primitive, Metaphore, Micro-structure, Crosscutting
concern, Clue; Invariant: Component-level invariant, Cross-component invariant, Pre-/Postcondition, Temporal invariant; Relational constraints: Coding rules, Cardinality, Coordination,
Meta-model, Variability
Specify, Preserve, Change, Enforce, Match, Discover, Analyze
Consistency checking, Model checking, Pattern conformance, Graph refinement, Enforcement
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
Reflection mechanisms: Introspection, Constraint injection, Intercession, Reification, Causal
connection, Evolution enablers: Safe stopping, Runtime binding, State transfer
Architecture life-cycle: Business case, Creating architecture, Documenting, Analyzing, Evolving
Simulation, Dependence analysis, Model checking, Conformance testing, Interface consistency,
Inspection and review-based
Fully automated, Partially automated, Manual
A particular problem/challenge, Overview or Survey, Formalism for constraint specification,
Formalism for architectural analysis, Formalism for arch. evolution, Formalism for code generation
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
Case study, Mathematical proof, Example application, Industrial validation
Need for
Evolution
Means of
Evolution
Time of
Evolution
Support
Activity
Attributes
Corrective
Perfective
Adaptive
Preventive
All applicable
Transformation
Refactoring
Refinement
Restructuring
Adaptation
Reconfiguration
Pattern-based
Arch. decision
Change operation
Design-Time
Run-Time
Consistency checking
Evolution analysis
Change propagation
Versioning
Impact analysis
Approaches
[50]
[12]
[1,9,40,42,46,50,53,56,59,60]
[45,46,52]
[2,3,5,6,8,10,11,17,37,39,41,44,47,48,49,51,54,55]
[1,2,6,7,8,21,26,28,29,31,33,36,39,40,50,58]
[8,41,51]
[2,7,13,22,29,31,43,51,58]
[8,13,50,53]
[4,6,10,44,46,56]
[2,3,4,5,6,7,22,24,28,31,32,37,54,59,60]
[1,9,17,21,26,34,35,41,42,45,48,49,52]
[11,12,25,47,55,57]
[4, 28]
[1,2,4,7,9,11,13,14,15,17,18-23,25-30,33-36,39,41-43,45-55,57,58]
[2,3,5-10,12,24,31,32,37,40,44,54,56,59,60]
[2,11,33,43,48,60]
[5,7]
[3,6]
[50]
[1,4,6,8,9,13-16,18-20,22,25,26,27,29,30,3336,38,39,42,43,45,47,48,52,57,58]
Implementation
[3,6,8,24,33,34]
Evolution
[3,5,6,10,12,17,21,23,28,31,37,40,41,44,46,49,50,51,53,54,56,59,60]
Integration and provisioning, Deployment
P%
52
83
95
18
92
N
1
1
10
3
18
16
3
9
4
6
15
13
6
2
43
19
6
2
2
1
0
Distribution %
95060905
08
11
30
50
20
50
31
28
50
22
19
40
23
47
46
13
31
27
42
35
53
37
5
32
25
34
31
6
23
0
39
44
17
Type of
Formalism
Description
Language
Attributes
Approaches
Lightweight
[1,8,9,12,13,15,18,20,23,25,26,33-35,36,38,55]
[2-7,10,11,14,17,19,21,22,24,27-32,37,39-43,45-48,50,52-54,59,60]
Formal
Graph
[2,6,7,21,22,31,32,40,47,48,53,59,60]
Petri-net
[3,12,24]
Model-based
[1,2,4,5,6,7,9,11,13,15,18,19,20,26,28,35,55,56,60]
Description logic
[29,32,41,52]
-calculus
[10,45]
Prog. language
[8,3,17,41]
Alloy
[14,27,37]
OCL
[2,4,6,7,9,11,25,28,30,31,35,36,43,60]
CCL
[11,36]
State machine
[5]
Z
[3,6,22,24,28]
C. Automata
[39,46]
Process algebra
[32,42]
Temporal logics
[5,19,50,52]
Archface
[33]
Ontology, Domain-Specific, Larch, Grammars, Type, FSP, CSP, CHAM, FOL, Rules
ACME
[8,14,15,25,30,36,46,50]
xAcme
[30,36]
UML
[1,5,17-21,26,30,31,33, 48,51,53,56,60]
Extended UML
[2,4,6,7,9,11,25,28,35,39,43]
AO-ADL
[18]
Darwin
[37,56]
SafArchie
[39,54]
P%
88
83
58
Aesop, SADL, Koala, xADL, ADML, AO-ADL, UniCon, Weaves, Wright, C2, Rapide, MetaH, AADL
UML
Specification
Description
Aspect
Activity
State
Sequence
Class
Component
Object
Communication
Transition
Structural
Behavioral
Semantic
[2,28,43,53]
[2,5]
[5,7,18,19,20,51]
[1,4,7,8,9,11,17,19,21,25,26,31,33,35,39,48,51,52,60]
[2,6,7,8,18,20,28,30,35,43,46,50,51,53,54,57,60]
[2]
[31,33]
[2,3]
[1-4,6-15,17,19-22,24-30,32-34,36,37,39-57,59,60]
[2,3,5,7,9,10,12,19,20,22,24,27,29,31-35,39-42,44-46,49-57]
[43,58]
55
93
N
17
36
13
3
19
4
2
4
3
14
2
1
5
2
2
4
1
0
7
2
16
11
1
2
2
0
4
2
6
19
17
1
2
2
52
34
2
Distribution %
95060905
08
11
8
38
38
46
42
39
46
20
23
21
32
47
36
50
14
Attributes
Approaches
Pattern
Architectural style
Primitive
Architectural
Constraint
31
27
31
55
38
18
Intent
of
Reasoning
26
41
53
35
21
24
28
41
42
32
30
27
Type of
Analysis
[1,5,11,16,17,19,21,23,26,34,35,39,41-43,45,48,49,52,57]
[7,10,12,25,36,37,38,40,42,43,44,46,47,50,51,53,57-60]
[1,9,26,35,39,41,43,54]
Component-level invariant
[30,39,60]
Cross-component invariant
[2,3,9,20,25,30,36,39,42,44,50,56,58,60]
Crosscutting concern
[18,39]
Meta-model
[4,7,9,43]
Pre-/Post-condition
[2,3,4,6,7,22,24,25,31,39,46,55,56,60]
Coordination constraint
[3,24]
Coding rules
[11]
Cardinality, Metaphore, Micro-structure, Clue, Variability, Temporal
[5,9,11,13,14,15,24,25,27,28,35-37,39,43,45,47,50-56,58-60]
Specify
[1,2,6-11,18-22,25,26,29-31,35,36,40,41,44,47,48,50,51,53-60]
Preserve
Change
[11,39,40,41,46,51,60]
Enforce
[3,6,8,11,13,24,33,34,46,50]
Match
[4,12,17,40,42,49,50]
Discover
[17,23,38,49]
Analyze
[3,5,6,11,14]
Consistency checking
[1,6,9,10,11,12,21,23,30,39,40,46,48,60]
Model checking
[2,3,5,22,24,27,29,31,32,37]
Pattern conformance
[4,17,41,54]
Graph-based refinement
[7,53]
Constraint enforcement
[8,25,59]
P%
85
97
55
N
20
20
8
3
14
2
4
14
2
1
0
27
35
7
10
7
4
5
14
10
4
2
5
Distribution %
95060905
08
11
30
50
35
40
35
10
50
43
36
43
21
30
37
44
37
26
26
10
40
50
36
60
36
30
28
10
Motivation
Application
Domain
Environment of
Run-Time Evolution
Mechanism of
Run-Time Evolution
Attributes
Approaches
Fractal
[30]
OSGi
[12]
CCM
[11]
PKUAS
[10]
SOA middleware
[7]
SIENA
[5]
KOALA, MS COM, SOFA 2.0, EJB, JavaBeans,
OpenCOM, KobrA, .NET, Reo, Linda, MANIFOLD
Reflection
[10]
Causal connection
[5,9,11]
Runtime binding
[7]
Introspection, Constraint injection, State transfer,
Intercession, Reification, Safe stopping
P%
10
N
1
1
1
1
1
1
Evaluation
Method
0
1
3
1
Need for
Tool Support
Analysis
Usage of
Tool Support
Level of
Automation
Attributes
Creating
Documenting
Analyzing
Evolving
Business case
Simulation
Dependence analysis
Model checking
Conformance
Inspection
Interface consistency
Full
Partial
Manual
Approaches
[15,20,22,27,29,30,34,38,45]
[1,3,8,9,11,35,36,43,52,55,57]
[1-3,5,6,8,12-14,17,23,33,38,49]
[3-7,9-11,18,21,24,25,28,31-33,36,37,39-42,44,
46-48,50,51,53-56,58-60]
[7,31]
[5,11]
[2,3,5,6,7,14,31,33,43,46]
[4,10,12,15,40,47]
[20]
[4,21,30,41,54]
[1-3,5-12,14,17,18,20,22,24,26-29,31,33,39,40,
43,44,48,49,50,51,53,57,58]
[13,15,16,19,23,25,32,34-38,42,45-47,52,55,56,59,60]
P%
95
Distribution %
95060905
08
11
9
11
14
18
14
55
29
27
57
35
40
43
17
30
0
2
2
10
6
1
0
5
100
Approaches
[2,3,6,7,15,18,20,25,38,42,49,50,52,54,56-58]
[8,16,32,38,49]
[4,9,11,14,19,22,26,27,30,35,45,47,52]
[4,5,9,12,14,17,23,28,33,35,40,49,55]
[1,6,10,13,18,20-22,24,26,28,29,31,33,34,36,37,39-41,44, 46Evolution
48,50,51,53,55,59,60]
A formalism to enable code generation
SOA
[1,2,7,31,43]
OO
[1,3,8,17,21,26,41,42,48,49,51,57]
Distributed system
[3,24,46,60]
Event-based system
[5,22,44]
Component-based
[6,10-13,22,24,25,28,30-37, 39,40,43,45-47,50,53-60]
40
30
30
34
29
41
30
21
33
29
38
Mathematical proof
Example application
Experience report
[1-3,5,17,19,21,22,29,47,54]
[3,11,13,14,21,25,27-31,33,34,36,37,39,41,42,44,45,48-50,52,54,59]
Distribution %
95060905
08
11
P%
24
41
35
98
17
5
13
13
23
15
38
46
39
39
30
37
30
33
33
50
17
38
34
28
29
36
31
30
36
42
41
28
27
78
Attributes
Problem or Challenge
Overview or Survey
Unambiguous description
Analysis
0
5
12
4
3
32
0
87
27
11
26
0
Targets
Focus
Evolution
Self-adaptive
systems
Change patterns,
Repository
mining
Self-reaction to
violations of
constraints
Run-time
Formalism
Emerging
properties
Formal
theory
Semantic
models
Design-time
Architectural
Reasoning
Quantitative
verification
Explicit constraints,
Probabilistic
modelling
Constraint
preservation,
property verification
Run-time
Run-Time
Issues
Decentralized
evolution
Model@runtime, Reflective
environment
Efficiency and
Reliability in
evolution
Run-time
Evaluation
Rigorous
validation
Empirical
studies
Real-world
evidences
Both
REFRENCES
[1] Mens, T., Magee, J., and Rumpe, B. 2010. Evolving software
architecture descriptions of critical systems. Computer, 43(5): 4248.
[28] Stammel, J., Durdik, Z., Krogmann, K., Weiss, R. and Koziolek, H.
2011. Software Evolution for Industrial Automation Systems: Literature
Overview, Karlsruhe Reports in Informatics.
[2] Tamura, G., at al. 2012. Towards practical runtime verification and
validation of self-adaptive software systems. Springer.
[3] Zhang, H., Babar, M.A. 2012. Systematic Reviews in Software
Engineering: An Empirical Investigation, IST.
[29] Weyns, D., Andersson, J., Malek, S., Schmerl, B. 2012. Introduction
to the special issue on state of the art in engineering self-adaptive systems,
JSS.
[32] Jamshidi, P., Ghafari, M., Aakash, A., Pahl, C. 2012. A protocol for
systematic literature review on Architecture-Centric Software Evolution
Research, Technical Report.
[33] Ardagna, D., Ghezzi, C., Mirandola, R. 2008. Rethinking the use of
models in software architecture. Quality of Software Architectures, 1-27.
[34] Lehman, M. 1996. Laws of software evolution revisited. Software
process technology, 108-124.