A Process for Documenting Variability Design Rationale of Flexible and Adaptive PLAs

Variability is a means for evolution of component-based architectures, driving flexible and adaptive architectures. In recent years, researches have emphasized the need for documenting architectural knowledge to maintain and evolve software, i.e. the need for documenting not only the design of the solution, but also the decisions driving the design and their rationale. However, few approaches document the architectural knowledge behind variability, known as variability design rationale. This paper presents the process for documenting variability design rationale of flexible and adaptive architectures alongside their architectural description. This process is supported by the metamodels Flexible-PLA and Product-Line Architectural Knowledge which define the modeling primitives to completely describe the structure of product-line architectures and to document variability design rationale, respectively. The tool FPLA implements these modeling primitives supporting the specification of architectural models ready to be involved in a model-driven development process. It is illustrated with an example.

[1]  Pim van den Broek,et al.  A model for variability design rationale in SPL , 2010, ECSA '10.

[2]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[3]  Krzysztof Czarnecki,et al.  Staged configuration through specialization and multilevel configuration of feature models , 2005, Softw. Process. Improv. Pract..

[4]  Peng Liang,et al.  Architectural design decision: Existing models and tools , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[5]  Juan Garbajosa,et al.  Development of a Software Product Line for Validation Environments , 2009 .

[6]  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.

[7]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[8]  Rick Kazman,et al.  Realizing and Refining Architectural Tactics: Availability , 2009 .

[9]  Jørgen Lindskov Knudsen ECOOP 2001 — Object-Oriented Programming , 2001, Lecture Notes in Computer Science.

[10]  Sooyong Park,et al.  Applied Software Product Line Engineering , 2009 .

[11]  Leonard J. Bass,et al.  Managing variability in software architectures , 2001, SSR '01.

[12]  Muhammad Ali Babar,et al.  A comparative study of architecture knowledge management tools , 2010, J. Syst. Softw..

[13]  Raymond McCall,et al.  Rationale Management in Software Engineering , 2006 .

[14]  Muhammad Ali Babar,et al.  Software Architecture Knowledge Management: Theory and Practice , 2009 .

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

[16]  Jennifer Pérez,et al.  Plastic Partial Components: A solution to support variability in architectural components , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[17]  Richard N. Taylor,et al.  A comprehensive approach for the development of modular software architecture description languages , 2005, TSEM.

[18]  Hans van Vliet,et al.  Software Architecture Knowledge Management , 2008, 19th Australian Conference on Software Engineering (aswec 2008).

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

[20]  Ioannis Stamelos,et al.  Product Line Variability with Elastic Components and Test-Driven Development , 2008, 2008 International Conference on Computational Intelligence for Modelling Control & Automation.

[21]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[22]  Marija Mikic-Rakic,et al.  Taming architectural evolution , 2001, ESEC/FSE-9.

[23]  Kannan Mohan,et al.  Managing variability with traceability in product and service families , 2002, Proceedings of the 35th Annual Hawaii International Conference on System Sciences.

[24]  Kannan Mohan,et al.  Tracing variations in software product families , 2007, CACM.

[25]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[26]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[27]  Mari Matinlassi,et al.  Comparison of software product line architecture design methods: COPA, FAST, FORM, KobrA and QADA , 2004, Proceedings. 26th International Conference on Software Engineering.

[28]  Jens Knodel,et al.  The Role of Rationale in the Design of Product Line Architectures – A Case Study from Industry , 2006 .