Automatic Analysis of Software Architectures with Variability

Software Product Line Engineering is successfully applied in the development of families of related products. Basically, it allows reusing the software artifacts that are common to all the products, and adding/removing the variable ones. There are two alternatives to manage variability, one that models the commonalities and variabilities separately from the software product line architecture (SPLA), using, for instance, feature models (FM), and another one that models the variability as part of the SPLA. These two alternatives have both benefits and limitations. Our approach picks the best of both alternatives and, on the one hand, models variability as part of the SPLA (as in the second alternative), but, on the other hand, maps the SPLA with variability into an FM, generating an Architectural FM. By doing this our approach takes advantage of the FM tools and formal reasoning (as in the first alternative) to provide the automatic support that it is not available in other SPLA with variability approaches to: (i) check the consistency of architectural variability specifications, (ii) generate valid architectural configurations, and (iii) reason about variability at the architectural level.

[1]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[2]  Lianping Chen,et al.  A systematic review of evaluation of variability management approaches in software product lines , 2011, Inf. Softw. Technol..

[3]  Mathieu Acher,et al.  Reverse Engineering Architectural Feature Models , 2011, ECSA.

[4]  Krzysztof Czarnecki,et al.  Cool features and tough decisions: a comparison of variability modeling approaches , 2012, VaMoS.

[5]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[6]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.

[7]  Volker Gruhn,et al.  Proceedings of the 5th European Conference on Software Architecture: Companion Volume , 2011, ECSA 2011.

[8]  Ramtin Khosravi,et al.  Modeling variability in the component and connector view of architecture using UML , 2008, 2008 IEEE/ACS International Conference on Computer Systems and Applications.

[9]  Lidia Fuentes,et al.  Language Support for Managing Variability in Architectural Models , 2008, SC@ETAPS.

[10]  Itana Maria de Souza Gimenes,et al.  Systematic Management of Variability in UML-based Software Product Lines , 2010, J. Univers. Comput. Sci..

[11]  Sergio Segura,et al.  BeTTy: benchmarking and testing on the automated analysis of feature models , 2012, VaMoS.

[12]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[13]  Hassan Gomaa,et al.  Designing Software Product Lines with UML , 2005, 29th Annual IEEE/NASA Software Engineering Workshop - Tutorial Notes (SEW'05).

[14]  Laurence Duchien,et al.  Feature-Based Composition of Software Architectures , 2010, ECSA.

[15]  Bernhard Rumpe,et al.  Delta-oriented architectural variability using MontiCore , 2011, ECSA '11.

[16]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[17]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[18]  Iris Reinhartz-Berger,et al.  Comprehensibility of UML-based software product line specifications , 2014, Empirical Software Engineering.

[19]  Matthias Clauss,et al.  Generic Modeling using UML extensions for variability , 2001 .

[20]  Brice Morin,et al.  Weaving Variability into Domain Metamodels , 2009, MoDELS.

[21]  Thaís Vasconcelos Batista,et al.  PL-AspectualACME: An Aspect-Oriented Architectural Description Language for Software Product Lines , 2011, ECSA.

[22]  Jean-Marc Jézéquel,et al.  Software Product Line Engineering with the UML: Deriving Products , 2006, Software Product Lines.

[23]  Matthias Riebisch,et al.  Using feature modeling for program comprehension and software architecture recovery , 2004, Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004..

[24]  Lidia Fuentes,et al.  Run-time adaptation of mobile applications using genetic algorithms , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).