Mapping Features to Source Code through Product Line Architecture: Traceability and Conformance

Existing software product line approaches often develop and evolve product line features, architecture, and source code independently, which makes it difficult to manage the relationship and conformance between these artifacts. This paper presents a novel approach using the architecture as a pivot to address this problem. It consists of a modeling mechanism that integrates features specification into an architectural model, and an architecture-implementation mapping mechanism that combines code generation with annotation processing. The approach can trace a product line feature to the architecture and source code, and automatically update the architecture and source code to maintain their conformance when feature changes occur. We implemented an Eclipse-based toolset to support the approach, and conducted a case study with the Apache Solr open-source system. The result shows that our approach is both applicable and capable to support the development and evolution of real-world variations of a software system.

[1]  Cristina Gacek,et al.  Implementing product line variabilities , 2001, SSR '01.

[2]  Christian Wende,et al.  FeatureMapper: mapping features to models , 2008, ICSE Companion '08.

[3]  André van der Hoek,et al.  Modeling Product Line Architectures through Change Sets and Relationships , 2007, 29th International Conference on Software Engineering (ICSE'07).

[4]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[5]  Nicolas Anquetil,et al.  A model-driven traceability framework for software product lines , 2010, Software & Systems Modeling.

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

[7]  Jane Cleland-Huang,et al.  Detecting, Tracing, and Monitoring Architectural Tactics in Code , 2016, IEEE Transactions on Software Engineering.

[8]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

[9]  Sebastian Krieter,et al.  FeatureIDE: Taming the Preprocessor Wilderness , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[10]  Richard N. Taylor,et al.  Enhancing architecture-implementation conformance with change management and support for behavioral mapping , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[11]  Patrick Mäder,et al.  Software traceability: trends and future directions , 2014, FOSE.

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

[13]  Uirá Kulesza,et al.  Investigating the safe evolution of software product lines , 2011, GPCE '11.

[14]  Dikshant Shahi Apache Solr , 2015, Apress.

[15]  Viviana Bono,et al.  Delta-Oriented Programming of Software Product Lines , 2010, SPLC.

[16]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[17]  Andreas Classen,et al.  A code tagging approach to software product line development , 2012, International Journal on Software Tools for Technology Transfer.

[18]  Iris Groher,et al.  Integrating Variability Management and Software Architecture , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[19]  C. Chambers,et al.  ArchJava: connecting software architecture to implementation , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[20]  Charles W. Krueger The BigLever Software Gears Unified Software Product Line Engineering Framework , 2008, 2008 12th International Software Product Line Conference.

[21]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[22]  Danny Weyns,et al.  Variability in software architecture: current practice and challenges , 2011, SOEN.

[23]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[24]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[25]  Richard N. Taylor,et al.  Software traceability with topic modeling , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[26]  Remco C. de Boer,et al.  On the similarity between requirements and architecture , 2009, J. Syst. Softw..

[27]  Yongjie Zheng,et al.  Architecture-centric derivation of products in a software product line , 2016, MiSE@ICSE.