Evaluating variability at the software architecture level: an overview

Software architecture are designed for developing software systems needed for a diverse of business goals. Consequently, architecture has to deal with a significant amount of variability in functionality and quality attributes to create different products. Due to this variability, the evaluation in software architectures is much more complex, as different alternatives of systems might be developed leading to an expensive and time consuming task. Several methods and techniques have been proposed to evaluate product line architectures (PLAs) aiming to asses whether or not the architecture will lead to the desired quality attributes. However, there is little consensus on the existing evaluations methods is most suitable for evaluating variability in software architectures, instead of only considering PLAs. Understanding and explicitly evaluating variations in architectures is a cost-effective way of mitigating substantial risk to organizations and their software systems. Therefore, the main contribution of this research work is to present the state of the art about means for evaluating software architectures (including, PLAs, software architectures, reference and enterprise architectures) that contain variability information. We conducted a Systematic Mapping Study (SMS) to provide an overview and insight to practitioners about the most relevant techniques and methods developed for this evaluation. Results indicate that most evaluation techniques assess variability as a quality attribute in PLAs through scenario-based; however, little is known about their real effectiveness as most studies present gaps and lack of evaluation, which difficult the usage of such techniques in an industrial environment.

[1]  Kai Petersen,et al.  Guidelines for conducting systematic mapping studies in software engineering: An update , 2015, Inf. Softw. Technol..

[2]  Muhammad Ali Babar,et al.  Scenarios, quality attributes, and patterns: capturing and using their synergistic relationships for product line architectures , 2004, 11th Asia-Pacific Software Engineering Conference.

[3]  Vojislav B. Misic,et al.  A holistic architecture assessment method for software product lines , 2007, Inf. Softw. Technol..

[4]  Eduardo Figueiredo,et al.  A Systematic Literature Review of Software Product Line Management Tools , 2015, ICSR.

[5]  Jan Bosch,et al.  Trends in Systems and Software Variability , 2015, IEEE Softw..

[6]  Robyn R. Lutz,et al.  Analysis of a software product line architecture: an experience report , 2003, J. Syst. Softw..

[7]  Soo Dong Kim,et al.  A Systematic Process to Design Product Line Architecture , 2005, ICCSA.

[8]  RabiserRick,et al.  CASE Tool Support for Variability Management in Software Product Lines , 2017 .

[9]  Darío Correal,et al.  Variability quality evaluation on component-based software product lines , 2011, SPLC '11.

[10]  Paris Avgeriou,et al.  Handling Variability in Software Architecture: Problems and Implications , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[11]  K. Suzanne Barber,et al.  Performance evaluation of domain reference architectures , 2002, SEKE '02.

[12]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[13]  Xavier Franch,et al.  A Framework for Software Reference Architecture Analysis and Review , 2013, CIbSE.

[14]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[15]  Andrzej Zalewski,et al.  Beyond ATAM: Architecture Analysis in the Development of Large Scale Software Systems , 2007, ECSA.

[16]  Goiuria Sagardui Mendieta,et al.  Quality Assessment in Software Product Lines , 2008, ICSR.

[17]  Leonor Barroca,et al.  Systematic Evaluation of Software Product Line Architectures , 2013, J. Univers. Comput. Sci..

[18]  Alfred Zimmermann,et al.  ESARC - Enterprise Services Architecture Reference Cube for Capability Assessments of Service-oriented Systems , 2011 .

[19]  Guilherme Horta Travassos,et al.  Evaluation Approaches for Software Architectural Documents: a Systematic Review , 2006, CIbSE.

[20]  René Reiners,et al.  Maturity Assessments of Service-oriented Enterprise Architectures with Iterative Pattern Refinement , 2012, GI-Jahrestagung.

[21]  Balbir S. Barn On the evaluation of reference models for software engineering practice , 2009, ISEC '09.

[22]  Lianping Chen,et al.  Variability management in software product lines: a systematic review , 2009, SPLC.

[23]  Andrea Carugati,et al.  Mediterranean Conference on Information Systems ( MCIS ) Summer 9-4-2014 ENTERPRISE ARCHITECTURE EVALUATION : A SYSTEMATIC LITERATURE REVIEW , 2017 .

[24]  Paris Avgeriou,et al.  Describing, Instantiating and Evaluating a Reference Architecture : A Case Study , 2003 .

[25]  Kangtae Kim,et al.  A Case Study on SW Product Line Architecture Evaluation: Experience in the Consumer Electronics Domain , 2008, 2008 The Third International Conference on Software Engineering Advances.

[26]  Flávio Oquendo,et al.  RAModel: A Reference Model for Reference Architectures , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[27]  Paul W. P. J. Grefen,et al.  Towards a Method for the Evaluation of Reference Architectures: Experiences from a Case , 2008, ECSA.

[28]  Elisa Yumi Nakagawa,et al.  A Checklist for Evaluation of Reference Architectures of Embedded Systems (S) , 2013, SEKE.

[29]  Sungwon Kang,et al.  Extending ATAM to assess product line architecture , 2008, 2008 8th IEEE International Conference on Computer and Information Technology.

[30]  Paris Avgeriou,et al.  Supporting Variability Through Agility to Achieve Adaptable Architectures , 2014 .

[31]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[32]  Jie Zhang,et al.  Quantifying value in software product line design , 2011, SPLC '11.

[33]  Arie van Deursen,et al.  Evaluating an embedded software reference architecture - industrial experience report , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[34]  Eila Ovaska,et al.  Analysis of a cross-domain reference architecture using change scenarios , 2011, ECSA '11.

[35]  Luiz Fernando Capretz,et al.  An architecture process maturity model of software product line engineering , 2011, Innovations in Systems and Software Engineering.

[36]  John D. McGregor,et al.  Tailoring the ATAM for Software Ecosystems , 2015, ECSA.

[37]  Huilin Ye,et al.  Modeling Quality Attributes in Software Product Line Architecture , 2012, 2012 Spring Congress on Engineering and Technology.

[38]  Gunther Piller,et al.  Capability Diagnostics of Enterprise Service Architectures Using a Dedicated Software Architecture Reference Model , 2011, 2011 IEEE International Conference on Services Computing.

[39]  Sofia Ouhbi,et al.  Software Architecture Evaluation: A Systematic Mapping Study , 2018, ENASE.

[40]  Vojislav B. Misic Measuring the Coherence of Software Product Line Architectures , 2003, Software Engineering Research and Practice.

[41]  K. Suzanne Barber,et al.  Evaluating dynamic correctness properties of domain reference architectures , 2003, J. Syst. Softw..

[42]  Matthias Galster Architecting for Variability in Quality Attributes of Software Systems , 2015, ECSA Workshops.

[43]  Itana Maria de Souza Gimenes,et al.  A Meta-Process to Support Trade-Off Analysis in Software Product Line Architecture , 2011, SEKE.

[44]  Debra J. Richardson,et al.  An evaluation of software test environment architectures , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[45]  Johannes Koskinen,et al.  Experiences from Scenario-Based Architecture Evaluations with ATAM , 2010, ECSA.

[46]  Vojislav B. Misic,et al.  Extending the ATAM Architecture Evaluation to Product Line Architectures , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).