Demonstration of a Toolchain for Feature Extraction, Analysis and Visualization on an Industrial Case Study

Transforming a clone-and-own (i.e., new product variants are created by copying and modifying existing artifacts) code structure and development process to a Software Product Line Engineering (PLE) approach is a tedious and error-prone task. Holistic tool support for such a process is highly desirable, especially to lower efforts and to speed up the transformation. Unfortunately, such a holistic toolchain for reverse engineering of variability, supporting variant-centric and platform-centric extraction approaches is not available. In this paper, we present a toolchain covering the first steps for moving a clone-and-own product development to a PLE approach. We validate the first prototype of the toolchain on a case study consisting of industrial firmware for smart motor controllers and we show that even this early prototype reduces time and effort for moving to a configurable platform approach in the sense of PLE.

[1]  Sven Apel,et al.  A Study of Feature Scattering in the Linux Kernel , 2021, IEEE Transactions on Software Engineering.

[2]  Andreas Burger,et al.  FLOrIDA: Feature LOcatIon DAshboard for extracting and visualizing feature traces , 2017, VaMoS.

[3]  D. Beuche Product Line Engineering with Feature Models , 2006 .

[4]  Michal Antkiewicz,et al.  Maintaining feature traceability with embedded annotations , 2015, SPLC.

[5]  Sven Apel,et al.  Scalable analysis of variable software , 2013, ESEC/FSE 2013.

[6]  Ralf Lämmel,et al.  Flexible product line engineering with a virtual platform , 2014, ICSE Companion.

[7]  Julio Sincero,et al.  Facing the Linux 8000 Feature Nightmare , 2010 .

[8]  Jacques Klein,et al.  Bottom-up adoption of software product lines: a generic and extensible approach , 2015, SPLC.

[9]  Krzysztof Czarnecki,et al.  Where Do Configuration Constraints Stem From? An Extraction Approach and an Empirical Study , 2015, IEEE Transactions on Software Engineering.

[10]  Wolfgang Schröder-Preikschat,et al.  A robust approach for variability extraction from the Linux build system , 2012, SPLC '12.

[11]  Jacques Klein,et al.  Bottom-Up Technologies for Reuse: Automated Extractive Adoption of Software Product Lines , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[12]  David M. Weiss,et al.  Software Product Line Hall of Fame , 2006, 10th International Software Product Line Conference (SPLC'06).

[13]  Andreas Burger,et al.  FINALIsT2: Feature identification, localization, and tracing tool , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[14]  Wolfgang Schröder-Preikschat,et al.  Efficient extraction and analysis of preprocessor-based variability , 2010, GPCE '10.

[15]  Richard C. Holt,et al.  Mining Kbuild to Detect Variability Anomalies in Linux , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[16]  Andreas Burger,et al.  Semi-Automated Feature Traceability with Embedded Annotations , 2018, 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[17]  Juha Kuusela,et al.  Ten years of product line engineering at Danfoss: lessons learned and way ahead , 2016, SPLC.

[18]  Wolfgang Schröder-Preikschat,et al.  Feature consistency in compile-time-configurable system software: facing the linux 10,000 feature problem , 2011, EuroSys '11.

[19]  Sascha El-Sharkawy,et al.  Reverse engineering code dependencies: converting integer-based variability to propositional logic , 2018, SPLC.

[20]  Sascha El-Sharkawy,et al.  KernelHaven – An Experimentation Workbench for Analyzing Software Product Lines , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).