A Framework For Classifying and Comparin
A Framework For Classifying and Comparin
Evolution Research
Pooyan Jamshidi 1, Mohammad Ghafari 2, Aakash Ahmad 1, Claus Pahl 1
1
Lero - The Irish Software Engineering Research Centre
School of Computing, Dublin City University, Ireland
2
DeepSE Group @ DEI - Politecnico di Milano, Italy
1
{pooyan.jamshidi|ahmad.aakash|claus.pahl}@computing.dcu.ie, 2 [email protected]
Abstract—Context: Software systems are increasingly required development to better understand requirements,
to operate in an open world, characterized by continuous systematically communicate with the stakeholders and
changes in the environment and in the prescribed objectively reason about qualities. Architecture models also
requirements. Architecture-centric software evolution (ACSE) help to crystallize design decisions and evaluate the
is considered as an approach to support software adaptation tradeoffs among them [1, 4]. This role of software
at a controllable level of abstraction in order to survive in the architecture also contributes to control the evolution [21] in
uncertain environment. This requires evolution in system order to avoid degradation as erosion [5], drifts [4] as well
structure and behavior that can be modeled, analyzed and as architecture pendency [16].
evolved in a formal fashion. Existing research and practices
Software architecture models not only facilitate
comprise a wide spectrum of evolution-centric approaches in
terms of formalisms, methods, processes and frameworks to
software development, but also extend their lifetime to run-
tackle ACSE as well as empirical studies to consolidate time to support dynamic software adaptation [30] and
existing research. However, there is no unified framework continuous verification [24]. This promotes dynamic
providing systematic insight into classification and architectures as a means to evolve software systems at
comparison of state-of-the-art in ACSE research. runtime [S44]1. Through reflective middleware, software
architecture models can be actively connected to the
Objective: We present a taxonomic scheme for a classification
running systems by providing facilities to change the
and comparison of existing ACSE research approaches,
leading to a reflection on areas of future research.
computation logic of a system.
We observed that existing studies for evidence-based
Method: We performed a systematic literature review (SLR), consolidation of ACSE research has focused on surveying
resulting in 4138 papers searched and 60 peer-reviewed [6] and characterizing [10] software architecture
papers considered for data collection. We populated the evolvability. They also focus on comparison of the support
taxonomic scheme based on a quantitative and qualitative for architecture evolution [17] and classification of
extraction of data items from the included studies.
dynamic aspects of architecture [S32] as well as taxonomic
Results: We identified five main classification categories: (i) frameworks [18]. These studies provide insight in the
type of evolution, (ii) type of specification, (iii) type of potential use of software architecture in software evolution.
architectural reasoning, (iv) runtime issues, and (v) tool However, we could not find any evidence to empirically
support. The selected studies are compared based on their synthesize the collective impact of existing literature.
claims and supporting evidences through the scheme. The objective of this paper is to systematically (i)
Conclusion: The classification scheme provides a critical view identify the focus of current research and (ii) classify the
of different aspects to be considered when addressing specific claims made for ACSE and available evidences for these
ACSE problems. Besides, the consolidation of the ACSE claims, and; (iii) provide a holistic comparison to analyze
evidences reflects current trends and the needs for future the potentials and limitations in current approaches that
research directions. (iv) outline hypotheses for future research.
To achieve this, we performed a systematic literature
Keywords- Architecture-Centric Software Evolution; Evidence- review. We adopted and tailored an integrated approach
Based and Empirical Study; Systematic Literature Review
[11, 26] to extract a coded schema by which we can
I. INTRODUCTION systematically review state-of-the-art of ACSE. Based on
this, we collected data from selected studies to answer five
Modern software systems are increasingly required to questions: (i) what types of evolutions are supported? (ii)
operate in an open world [27], characterized by frequent which formalisms are required? (iii) how architectural
and unpredictable change in the environment in which they reasoning is applied? (iv) which execution environments
are functioning and in the requirements they have to meet. are needed? (v) what tool support is available?.
Considering existing research [1, 6, 18] and practice [23, Having answered the research questions, we highlight
28], software architectures provide a sound basis to areas and hypotheses for future research. We report our
smoothly evolve software and dynamically adapt it to observations of the synthesis on the extracted data.
provide expected services. Architecture-centric software Extended materials that were used for the study comprising
evolution [1, 6, 10] allows an appropriate abstraction to a protocol, search results, quality assessments and lessons
model, analyze and execute software evolution in a learned as well as the extracted data are available at [25].
controllable and manageable fashion.
Traditionally, software architecture is considered as an
appropriate abstraction level in the early stages of software 1
Please note that notation [SN] refers to the primary studies in Table 5.
The rest of the paper is structured as follows: Section II architecture description which should be treated by
compares and contrasts related work to justify the needs researchers and practitioners. Our paper extends some of
and scope of this review. Section III outlines the the findings related to evolution support in ADLs illustrated
methodology we adopted in this SLR. In Section IV we in their work. Mens et al. [1] also note the importance of
explain study planning. The first contribution of this paper, software architecture description to accommodate changes
a classification framework for ACSE approaches, is when there is a need to evolve critical software systems.
presented in Section V. This allows us to synthesize the They highlight key problem areas in ACSE and review the
data extracted from the primary studies and interpret this existing promising proposals to tackle them which helped
data answering the research questions in Section VI. us in the categorization process in our thematic mappings.
Section VII identifies future research directions based on
the results and it also discusses the limitations of our study. C. Taxonomies on Software Evolution
Finally, Section VII presents the conclusions. Although not directly related to the ACSE study
presented in this paper, some taxonomies of software
II. RELATED WORK change [18, 19] are proposed trying to answer the why,
In recent years, evidence-based and empirical research how, what, when and where of software evolution.
in software engineering gained a considerable momentum TABLE 1. SYSTEMATIC REVIEWS ON ACSE
[3]. In the context of ACSE, we observed that existing Study Reference Study Focus Change Time Number Years
of Studies
studies have focused on evolvability analysis [6], change Berivold et al. [6] Architecture evolvability analysis Design-Time 82 1992-2010
characterization [10] and classification of approaches Bradbury et al. [S32] Dynamic software architectures Run-Time 14 1992-2002
Williams et al. [10] Architecture change characterization Both 130 1976-2008
[S32], as summarized in Table 1. These are discussed Ahmad et al. [31] Architecture evolution reuse-knowledge Both 16 2004-2012
below in order to justify the needs for this review. Jamshidi et al. [25] Architecture-centric software evolution Both 60 1995-2011
described in Table 3. 8
6
TABLE 3. INCLUSION AND EXCLUSION CRITERIA 4
2
Criteria Rationale
I1: The study must formalize We might have included studies which employ formal 0
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
architecture description as well as methods, but do not actually employ them particularly
Inclusion
E2: A study that focuses on formal These studies do not provide information regarding the TABLE 5. SELECTED PRIMARY STUDIES
methods themselves, rather than on research questions.
Id Study Title, Corresponding Author Year A
the use of formal methods for ACSE. S1 XSLT-based evolutions and analyses of design patterns, Dong et al. 2009 17
E3: A study that is a review paper. These studies do not propose any specific approach. S2 Behavior-preserving refinement relations between dynamic software architectures, Heckel et al. 2005 18
S3 Combining formal methods and aspects for specifying and enforcing architectural invariants, Kallel et al. 2007 18
S4 Evaluating pattern conformance of UML models a divide-and-conquer approach and case studies, Kim et al. 2008 16
C. Data Extraction and Synthesis S5 Formal analysis of architectural patterns, Caporuscio et al. 2004 20
S6 Modeling and enforcing invariants of dynamic software architectures, Kallel et al. 2010 19
the framework (Table 6). The included papers have been S14
S15
Analyzing architectural styles, Kim et al.
Changing attitudes towards the generation of architectural models, Castro et al.
2010
2011
12
12
initially reviewed and necessary information has been S16
S17
Classifying architectural constraints as a basis for software quality assessment, Giesecke et al.
A rule-based method to match software patterns against UML models, Ballis et al.
2007
2007
4
17
extracted and the framework populated with the extracted S18 Deriving detailed design models from an aspect-oriented ADL using MDD, Pinto et al. 2011 12
S19 Formal specification of the variants and behavioral features of design patterns, Bayley et al. 2010 12
information by one of the authors and then cross checked S20 Model-driven development for early aspects, Sánchez et al. 2010 14
S21 Pattern-based design evolution using graph transformation, Zhao et al. 2007 16
by the other authors. The results of the synthesis will be S22 PS-CoM building correct by design Publish Subscribe architectural styles with safe reconfiguration, Loulou e al. 2010 14
S23 Understanding the relevance of micro-structures for design patterns detection, Arcelli et al. 2011 9
described in the Section VI. S24 Using aspects for enforcing formal architectural invariants, Kallel et al. 2008 14
S25 Evolution styles to the rescue of architectural evolution knowledge, Le Goaer et al. 2008 16
S26 A model transformation approach for design pattern evolutions, Dong et al. 2006 13
TABLE 4. STUDY DISTRIBUTION PER PUBLICATION CHANNEL S27 A scalable approach to multi-style architectural modeling and verification, Wong et al. 2008 10
Publication Channel Count S28 A UML rule-based approach for describing and checking dynamic software architectures, Miladi et al. 2008 14
S29 Correct architecture refinement, Moriconi et al. 1995 12
Non-Pioneering Software Engineering Journals and Conferences 16
Preserving Architectural Choices throughout the Component-based Software Development Process,
Journal of Systems and Software (JSS) 8 S30 2005 15
Tibermacine et al.
Working IEEE/IFIP Conference on Software Architecture (WICSA) 4 S31 Style-based refinement of dynamic software architectures, Baresi et al. 2004 17
Workshop on Engineering of Computer-Based Systems (ECBS) 4 S32 A survey of self-management in dynamic software architecture specifications, Bradbury et al. 2004 20
International Conference on Software Engineering (ICSE) 3 S33 A contract place where architectural design and code meet together, Ubayashi et al. 2010 14
IEEE Transactions on Software Engineering (TSE) 3 S34 Design pattern solutions as explicit entities in component-based software development, Stepan et al. 2011 11
Lecture Notes in Computer Science (LNCS) 3 S35 Modeling architectural patterns using architectural primitives, Zdun et al. 2005 15
Journal of Information and Software Technology (IST) 3 S36 Simplifying transformation of software architecture constraints, Tibermacine et al. 2006 14
Software and System Modeling Journal (SOSYM) 2 A constraint architectural description approach to self-organizing component-based software systems,
S37 2004 16
Electronic Notes in Theoretical Computer Science (ENTCS) 2 Waewsawangwong et al.
S38 A constraint-oriented approach to software architecture design, Van den Berg et al. 2009 8
Workshop on Sharing and Reusing Architectural Knowledge (SHARK) 2
S39 A framework to specify incremental software architecture transformations, Barais et al. 2005 17
IEEE International Conference on Software Maintenance (ICSM) 1
An approach based on biographical reactive systems to check architectural instance conforming to its style,
International Conference on Quality Software (QSIC) 1 S40 2007 16
Chang et al.
Wiley Journal of Software: Practice and Experience (SPE) 1 An automated refactoring approach to design pattern-based program transformations in Java programs, Jeon
S41 2002 14
European Conference on Software Architecture (ECSA) 1 et al.
Springer Software Quality Journal (SQJ) 1 S42 Analyzing and comparing architectural styles, Levy et al. 1999 14
Journal of Visual Languages & Computing (JVLC) 1 S43 Architecting as Decision Making with Patterns and Primitives, Zdun et al. 2008 17
Workshop on Self-Managed Systems (WOSS) 1 S44 Architecture-based runtime software evolution, Oreizy et al. 1998 12
Workshop on Component-Oriented Programming (CompArch- WCOP) 1 S45 Capturing interactions in architectural patterns, Yadav et al. 2010 14
S46 Describing evolving dependable systems using co-operative software architectures, de Lemos et al. 2001 18
IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE) 1
S47 Describing software architecture styles using graph grammars, Le Metayer et al. 1998 15
Future of Software Engineering (FOSE) 1
S48 Design pattern evolution and verification using graph transformation, Zhao et al. 2007 18
Total 60 S49 Evaluation of accuracy in design pattern occurrence detection, Pettersson et al. 2010 12
S50 Evolution styles foundations and tool support for software architecture evolution, Garlan et al. 2006 17
S51 Focus: a light-weight, incremental approach to software architecture recovery and evolution, Ding et al. 2001 14
D. Publication Channels and Trends S52 Formal specification of design patterns and their instances, Taibi et al. 2006 14
S53 Guiding architectural restructuring through architectural styles, Tamzalit et al. 2010 17
architecture specification into a semantic model. Software Evaluation Method Case study, Mathematical proof, Example application, Industrial validation
evolution deals with the violation of correctness criteria The groupings and their dimensions are shown in Table
after A is embedded in the environment and starts to 6. Note that the proposed framework is used for the
operate [24]. The violation may occur as a result of the comparison of ACSE approaches based on our focus which
divergence of (i) the system A from specification S, (ii) the was discussed in the previous section and should not be
environment behavior from specification D, (iii) the system adopted without a justification or verification. Firstly, we
goals from requirements R. Usually, a software system is deliberately did not include all aspects of software
architecture evolution. For example, the who question, (i) Need for evolution. According to the ISO/IEC
which identifies the stakeholders involved in software 14764 standard for software maintenance and Lehman’s
architecture change, is not covered in the current law of software evolution [34], the reason for evolution
classification because it reflects human aspects of evolution (purpose of change) can be categorized into four types:
and our focus of rigorous formal theory, analytical corrective, perfective, adaptive and preventive. Most
reasoning based on architectural constraints and runtime approaches are applicable for all purposes, but among them
issues aims to lessen human intervention. The where adaptive changes in the context of runtime evolution [S44]
question is also excluded because it has been thoroughly was explicitly mentioned in considerable number of
covered in [17] for specification-time evolution and in studies. (ii) Means of evolution. Among the different types
[S32] for runtime reconfiguration. Secondly, the proposed of evolution, transformation, reconfiguration, and pattern-
framework provides only one of the many ways in which based evolution gained significant attention. Refinement,
ACSE can be characterized. Most importantly, the restructuring, adaptation and architectural decision
framework is subject to continuous improvements, since evolution were explicitly adopted as a promising
the comparison attributes continue to mature due to mechanism for enabling evolution in the studies. (iii) Time
scientific and technological advances. A list of of evolution. Specification-time software architecture
improvement suggestions can be found in the protocol [32]. evolution has been more popular than runtime evolution.
The relative lack of contributions on runtime evolution
VI. RESULTS AND COMPARATIVE ANALYSIS results from a recent adoption of reflective component
We compare ACSE approaches along the dimensions models that provide architecture information to the
summarized in Table 6. The results of this analysis process mechanisms that enable the dynamic reconfiguration.
are summarized in Tables 7-12 below. Table 7-11 presents However, dynamic evolution recently gained a momentum.
the technical characterization of selected approaches based (iv) Support activities. ACSE related activities contain
on the model proposed in Section V. Table 12 classifies the analytic work to check relevant properties of architectures
studies based on their research method. Column P shows after the evolution takes place. For instance, consistency
the percentage of studies classified in each sub-criterion. checking aims to check whether the system architecture is
The last column shows the percentage of frequencies in consistent after the requested changes. Consistency
three yearly disjoint categories (1995-2005, 2006-2008, and checking is a popular architecture analysis, but other
2009-2011) for attributes that characterize 10 or more context-based analyses were also utilized. (v) Stage of
approaches. evolution. The focal stage of the software lifecycle was
A synthesized analysis of the studies is discussed in considered. Both early and late stages of the lifecycle were
each section and the investigated approaches are critically key areas of attention in comparison. Design and
summarized in subsequent tables. Mapping the studies to maintenance stages were the two stages in which evolution
the common scheme provides us with a unified framework mechanisms were active.
to group contributory artifacts of similar approaches. These
TABLE 7. COMPARATIVE ANALYSIS BASED ON “TYPE OF EVOLUTION”
categories provide a means to compare ACSE approaches. Sub-
Distribution %
Attributes Approaches P% N 95- 06- 09-
Moreover, the analysis of evidence based on a considerable Criteria
Corrective [50] 1
05 08 11
results based on the table content, deriving future directions Evolution Run-Time
Consistency checking
[2,3,5-10,12,24,31,32,37,40,44,54,56,59,60]
[2,11,33,43,48,60]
19
6
42 53 5
(i) Level of formalism. The main observation, which is (i) Means of constraint. Architectural styles, patterns,
biased because of our inclusion/exclusion criteria, is that component-level invariants, cross component invariants,
formal approaches dominate the ACSE area. (ii) Type of pre- and post-conditions which have an explicit description
formalism. Traditional modeling languages such as graph separable from the architecture of a system under
and model-based languages are the most popular. The consideration, are determinants of some characteristics of
majority of studies formulate the architectural constraints the system [13]. (ii) Intent of constraint. Specification,
corresponding to some properties of interest in OCL or a preservation and enforcement of constraints are the main
variation of logic as constraint specification language. We reasons behind constraints in the approaches. (iii) Analysis
observed that the majority of the studies either formulate of constraint. Most approaches are accompanied or
the properties of interest in the modeling language or they enabled by analytical mechanisms such as consistency
utilize a logic combined with a modeling language. checking, model checking, and conformance checking.
Recently, the creation of new languages has declined and We observed a trend towards quantitative verification
researchers tend to combine or extend existing languages of system properties based on constraints for correct
for their own purposes. (iii) Description language. UML adaptations, especially in self-adaptive systems which
extensions [12], especially component and class diagrams operate in uncertain environments that promote the use of
((iv) UML specification), are widely adopted by ACSE probabilistic modeling of systems.
approaches. Although UML has restricted architectural D. Run-time Issues
analysis support, its wide adoption is based on its support
for different domains and business contexts [12] and its This category compares the studies in terms of
standardization. Other description languages such as underlying environment and mechanism to enable dynamic
ACME, Darwin or SafArchie are approximately equally reconfiguration. It identifies the prerequisites for what is
needed to implement and utilize the often complex and or partially automated in either of them. Thus,
hypothetical conceptual contributions in the context of unsurprisingly, the majority of studies use tool support
reliable runtime infrastructures. The studies are classified either for proof of concept or automated analysis purposes.
into two sub-categories (Table 10).
(i) Environment of runtime evolution. A variety of F. Research methodology of the studies
execution environments has been proposed, ranging from This category differs from the other 5 purely technical
traditional platforms such as CORBA Component Model aspects and only reflects general aspects (Table 12).
(CCM) to the reflective and flexible Fractal and OpenCOM
to a new SOA and Cloud based platforms. (ii) Mean of TABLE 12. COMPARATIVE ANALYSIS BASED ON “RESEARCH METHOD”
Distribution %
Sub-
Attributes Approaches P% N
runtime evolution. To enable runtime evolution, these Criteria
Problem or Challenge [2,3,6,7,15,18,20,25,38,42,49,50,52,54,56-58] 17
95-
05
24
06-
08
41
09-
11
35
environments need to expose functions to provide the Overview or Survey
Unambiguous description
[8,16,32,38,49]
[4,9,11,14,19,22,26,27,30,35,45,47,52]
5
13 23 38 39
current state of a system at a specific time during its Motivation Analysis [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, 46-
98 13 15 46 39
Evolution 30 37 30 33
execution and a causal connection between the running 48,50,51,53,55,59,60]
A formalism to enable code generation 0
techniques verify specific properties or preserve the initial Limitations. To validate our model, we analyzed 60
constraints. However, these techniques that are normally peer-reviewed studies. The model was useful for
conceived as design-time activities must extend their scope characterizing the approaches since the average number of
to runtime and comply with the time constraints of runtime dimensions characterizing approaches is 15 according to
environment. We observe that the need for runtime column A, Table 5. However, we believe that neither the
verification and validation to detect violations and plan model nor the comparison is unchangeable. We restricted
self-reactions demands for efficient analytical and ourselves to a limited number of high quality approaches
syntactical “@runtime” techniques [2, 24]. with highest rank as it mentioned in Section IV, indicating
(iv) Run-Time evolution: In a considerable number of that our comparison is not comprehensive enough, though
approaches, formal specifications are applied during it is reliable to cover a variety of studies. We are currently
development activities for verification and validation, working on a more comprehensive comparison, including
rather than the system itself at runtime. More importantly, studies with lower ranks among the 154 ones ranked.
those approaches that utilize formal specification at runtime
use it for mainly modeling and analysis rather than other B. Threats to Validity
ACSE activities. We observe an improvement of adaptive In general, the external validity and construct validity
middleware based on reflection mechanisms. However, are strong for systematic reviews [22, 26, 3]. The main
decentralized evolution and @runtime notions are still threats to validity of this review are biased by our selection
relevant concerns for further research in ACSE. of studies to be included, data extraction and data synthesis.
(vi) Evaluation evidence: An important issue that we (i) To be able to identify relevant studies and ensure that
observed and is asserted by work by Barnes at NASA JPL the process of selection was unbiased, a research protocol
regarding space systems architectural evolution is the lack was developed. However, systematic reviews are per
of rigorous validation [21]. Previous work tended to make definition limited by search period, databases and
heavy use of trial examples and unrealistic assumptions and terminologies. ACSE research is related to different
has not been well supported by real-world scenarios. We communities including software architecture, software
came across this when excluding a large number of studies evolution and self-adaptive software which use different
that had been retrieved based on our search, but violated an terminologies. Therefore, to cover all and avoid bias, we
inclusion criterion (I2 in Table 3). To stimulate ACSE searched for common terms and combined them in our
community to produce empirical real-world case studies, search string. While this approach decreases the bias, it also
such efforts need recognition at established conferences [7]. significantly increases the search work. (ii) To ensure
Implications for practitioners. The data [25] collected correctness in data extraction, we defined a comprehensive
may help practitioners in searching for relevant approaches data extraction Excel sheet [25] to obtain consistent and
before adopting and tailoring them by examining the also relevant data. In addition, we performed quality
context of their own software development, and comparing assessment on the studies to ensure that the identified
with characteristics of relevant approaches. However, [28] findings and implications came from credible sources. (iii)
provides an overview of various approaches evaluated Another challenge of systematic reviews is addressing the
based on real-world industrial scenarios concerning reliability threats. The reliability is mitigated as far as
evolution of sustainable industrial systems. We believe that possible by involving several researchers, and having a
this document can suitably assist practitioners because it is unified scheme, and several steps where the scheme and
more general based on a growing number of experience process were piloted and externally evaluated. If the study
reports which might not necessarily be peer-reviewed. is replicated by another set of researchers, it is highly likely
Practical application of the collected database. Since that some included papers are changed. However, it is
this classification framework and its accompanying highly unlikely that random differences based on personal
templates contain more than 160 attributes, it provides a judgments would change findings. It may only change the
actual count numbers to some extent. Therefore, in general [10] Williams, B. J., Carver, J. C. 2010. Characterizing software
we believe that the validity of the study is high, given the architecture changes: A systematic review. IST 52(1): 31-51.
use of a systematic procedure and the involvement and [11] Cruzes, D.S, and Dyba, T. 2011. Recommended Steps for Thematic
discussion among four researchers and also external Synthesis in Software Engineering, ESEM.
evaluations. The openness of our review by exposing our [12] Medvidovic, N., Dashofy, E. M., and Taylor, R. N. 2007. Moving
data in [25] allows other researchers to judge the architectural description from under the technology lamppost. IST, 49.
trustworthiness of the results more objectively. This [13] Pahl, C., Giesecke, S., and Hasselbring, W. 2007. An ontology-based
initiative is suggested by the evidence-based software approach for modelling architectural styles, ECSA.
engineering community http://www.dur.ac.uk/ebse/. It is [14] Bencomo, N. 2009. On the Use of Software Models during Software
followed by some researchers as [7]. Execution. ICSE Workshop on Modeling in Software Engineering. IEEE.
[15] Wermelinger, M., Yu, Y., Lozano, A., Capiluppi, A. 2011. Assessing
VIII. CONCLUSIONS architectural evolution: a case study. Empirical Software Engineering,
The objective of this study was to consolidate existing 16(5), pp. 623–666.
research on architecture-centric software evolution [16] Zhang, H. 2010. A multi-dimensional architecture description
regarding the claimed benefits and the provided evidences language for forward and reverse evolution of component-based software,
PhD Dissertation.
of evolution. The main contribution of this study is a
classification framework for ACSE and a comparison of [17] Medvidovic, N., Taylor, R. N. 2000. A Classification and
Comparison Framework for Software Architecture Description
systematically selected studies through the framework to Languages. IEEE Trans. Software Eng. 26(1): 70-93.
point out existing research gaps. We identified unexplored
areas by synthesizing collected data, reflecting on areas of [18] Buckley, J., Mens, T. Zenger, M., Rashid, A., Kniesel, G. 2005.
Towards a taxonomy of software change. JSS 17(5): 309-332.
future research. The results of classification and
comparison are presented as structure tables – as a means to [19] Chapin, N., Hale, J. E., Kham, K. M., Ramil, J. F. and Tan, W.G.
2001. Types of software evolution and software maintenance. JSM 13(1).
transfer knowledge among ACSE researchers and
practitioners about a collective impact of existing research. [20] Zhang, P., Muccini, H., Li, B. 2010. A classification and comparison
of model checking software architecture techniques. JSS 83(5), 723–744.
We observed an inclination towards runtime adaptation
to serve self-adaptive applications. We also observed vast [21] Jeffrey M. Barnes. 2012. NASA’s Advanced Multi-mission
interests towards probabilistic modeling and quantitative Operations System: A case study in software architecture evolution. ACM
SIGSOFT Conference on the Quality of Software Architectures.
verification of system properties. Reflective environments
and Models@run-time are identified as the key drivers to [22] Petticrew M, Roberts H. 2006. Systematic reviews in the social
sciences: a practical guide. Oxford: Blackwell.
enable adaptations. However, evidences of rigorous
validation were lacking in existing evidences in ACSE. [23] ISO/IEC/IEEE 42010:2011, Systems and software engineering-
Architecture description, http://www.iso-architecture.org/ieee-1471/.
ACKNOWLEDGMENTS [24] Calinescu, R. Ghezzi, C., Kwiatkowska, M., Mirandola R. 2012. Self-
Adaptive Software Needs Quantitative Verification at Runtime.
The authors would like to thank the following persons
for their feedback and thoughtful suggestions regarding the [25] Jamshidi, P., Ghafari, M., Aakash, A., Pahl, C. A Framework for
Classifying and Comparing Architecture-Centric Software Evolution
methodology, data and the final report: Jim Buckely, Research [Online: Auxiliary Review Material],
Jeffrey M. Barnes, Fereidoon Shams, Mehdi Fahmideh and http://www.computing.dcu.ie/~pjamshidi/SLR-ACSE.html.
Frank Fowley. This work was supported, in part, by [26] Brereton, P., Kitchenham, B., Budgen, D., Turner, M., Khalil M.
Science Foundation Ireland grant 10/CE/I1855 to Lero - the 2007. Lessons from applying the systematic literature review process
Irish Software Engineering Research Centre (www.lero.ie). within the software engineering domain, JSS 80.
[27] Baresi, L., Di Nitto, E., Ghezzi, C. 2006. Toward open-world
REFRENCES software: Issue and challenges. Comput. 39(10), 36–43.
[1] Mens, T., Magee, J., and Rumpe, B. 2010. Evolving software [28] Stammel, J., Durdik, Z., Krogmann, K., Weiss, R. and Koziolek, H.
architecture descriptions of critical systems. Computer, 43(5): 42–48. 2011. Software Evolution for Industrial Automation Systems: Literature
[2] Tamura, G., at al. 2012. Towards practical runtime verification and Overview, Karlsruhe Reports in Informatics.
validation of self-adaptive software systems. Springer. [29] Weyns, D., Andersson, J., Malek, S., Schmerl, B. 2012. Introduction
[3] Zhang, H., Babar, M.A. 2012. Systematic Reviews in Software to the special issue on state of the art in engineering self-adaptive systems,
Engineering: An Empirical Investigation, IST. JSS.
[4] Taylor, R. N., Medvidovic, N., and Dashofy, E. M. 2009. Software [30] Baresi, L., Ghezzi, C. 2010. The disappearing boundary between
architecture: Foundations, theory, and practice. John Wiley & Sons. development-time and run-time. FSE/SDP workshop, 17-22.
[5] Silva, L., and Balasubramaniam, D. 2012. Controlling software [31] Aakash, A., Jamshidi, P., Pahl, C. A Classification and Comparison
architecture erosion: A survey, JSS, vol. 85, no. 1, pp. 132–151. of Software Architecture Evolution Reuse-Knowledge [Online: Auxiliary
Material], http://www.computing.dcu.ie/~pjamshidi/SLR/SLR-ERK.html.
[6] Breivold, H. P., Crnkovic, I., Larsson, M. 2011. A systematic review
of software architecture evolution research, IST, 54(1), 16-40. [32] Jamshidi, P., Ghafari, M., Aakash, A., Pahl, C. 2012. A protocol for
systematic literature review on Architecture-Centric Software Evolution
[7] Weyns, D., Iftikhar, M., Iglesia, D., Ahmad, T. 2012. A Survey on
Research, Technical Report.
Formal Methods in Self-Adaptive Systems. FMSAS.
[33] Ardagna, D., Ghezzi, C., Mirandola, R. 2008. Rethinking the use of
[8] Vestal, S. 1993. A Cursory Overview and Comparison of Four
models in software architecture. Quality of Software Architectures, 1-27.
Architecture Description Languages. Honeywell Technology Centre.
[34] Lehman, M. 1996. Laws of software evolution revisited. Software
[9] Clements, P. 1996. A survey of architecture description languages,
process technology, 108-124.
Eighth International Workshop Software Specification and Design.