Applying Declarative Analysis to Software Product Line Models: An Industrial Study

Software Product Lines (SPLs) are families of related software products developed from a common set of artifacts. Most existing analysis tools can be applied to a single product at a time, but not to an entire SPL. Some tools have been redesigned/re-implemented to support the kind of variability exhibited in SPLs, but this usually takes a lot of effort, and is error-prone. Declarative analyses written in languages like Datalog have been collectively lifted to SPLs in prior work [1], which makes the process of applying an existing declarative analysis to a product line more straightforward. In this paper, we take an existing declarative analysis (behaviour alteration) and apply it to a set of automotive software product lines from General Motors. We discuss the design of the analysis pipeline used in this process, present its scalability results, and provide a means to visualize the analysis results for a subset of products filtered by feature expression. We also reflect on some of the lessons learned throughout this project.

[1]  Pierre-Yves Schobbens,et al.  Featured Transition Systems: Foundations for Verifying Variability-Intensive Systems and Their Application to LTL Model Checking , 2013, IEEE Transactions on Software Engineering.

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

[3]  Dirk Zeckzer,et al.  IMMV: An interactive multi-matrix visualization for program comprehension , 2013, 2013 First IEEE Working Conference on Software Visualization (VISSOFT).

[4]  Richard C. Holt Binary Relational Algebra Applied to Software Architecture , 1996 .

[5]  Goetz Botterweck,et al.  Visual Tool Support for Configuring and Understanding Software Product Lines , 2008, 2008 12th International Software Product Line Conference.

[6]  Claus Brabrand,et al.  Systematic derivation of correct variability-aware program analyses , 2015, Sci. Comput. Program..

[7]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[8]  Marek Hatala,et al.  The effects of visualization and interaction techniques on feature model configuration , 2016, Empirical Software Engineering.

[9]  Sven Apel,et al.  Feature cohesion in software product lines: an exploratory study , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[10]  Karsten Klein,et al.  High-Quality Ultra-Compact Grid Layout of Grouped Networks , 2016, IEEE Transactions on Visualization and Computer Graphics.

[11]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[12]  Thomas W. Reps,et al.  Precise interprocedural dataflow analysis via graph reachability , 1995, POPL '95.

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

[14]  Ramy Shahin,et al.  Annotative Software Product Line Analysis Using Variability-Aware Datalog , 2021, IEEE Transactions on Software Engineering.

[15]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[16]  Feza Buzluca,et al.  E-Quality: A graph based object oriented software quality visualization tool , 2011, 2011 6th International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT).

[17]  Gabriele Taentzer,et al.  Henshin: advanced concepts and tools for in-place EMF model transformations , 2010, MODELS'10.

[18]  Mira Mezini,et al.  SPLLIFT: statically analyzing software product lines in minutes instead of years , 2013, Software Engineering.

[19]  Rick Salay,et al.  Lifting model transformations to product lines , 2014, ICSE.

[20]  Felix Lösch,et al.  Optimization of Variability in Software Product Lines , 2007, 11th International Software Product Line Conference (SPLC 2007).

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

[22]  Krzysztof Czarnecki,et al.  Verifying feature-based model templates against well-formedness OCL constraints , 2006, GPCE '06.

[23]  Paul C. Clements,et al.  Product Line Engineering Meets Model Based Engineering in the Defense and Automotive Industries , 2017, SPLC.

[24]  Yehuda Koren,et al.  Improved Circular Layouts , 2006, GD.

[25]  Fabian Beck,et al.  Visualizing Group Structures in Graphs: A Survey , 2017, Comput. Graph. Forum.

[26]  Michael W. Godfrey,et al.  Detecting Feature-Interaction Symptoms in Automotive Software using Lightweight Analysis , 2019, 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[27]  Sven Apel,et al.  Guaranteeing Syntactic Correctness for All Product Line Variants: A Language-Independent Approach , 2009, TOOLS.

[28]  Pierre-Yves Schobbens,et al.  Model checking lots of systems: efficient verification of temporal properties in software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[29]  Sebastian Erdweg,et al.  Variability-aware parsing in the presence of lexical macros and conditional compilation , 2011, OOPSLA '11.

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

[31]  Fabio Somenzi,et al.  CUDD: CU Decision Diagram Package Release 2.2.0 , 1998 .

[32]  Gunter Saake,et al.  Type checking annotation-based product lines , 2012, TSEM.

[33]  Robert Grimm,et al.  SuperC: parsing all of C by taming the preprocessor , 2012, PLDI.

[34]  Ramy I. Shahin,et al.  Variability-aware Datalog , 2019, PADL.

[35]  Letizia Tanca,et al.  What you Always Wanted to Know About Datalog (And Never Dared to Ask) , 1989, IEEE Trans. Knowl. Data Eng..

[36]  Ee-Peng Lim,et al.  ViStruclizer: A Structural Visualizer for Multi-dimensional Social Networks , 2013, PAKDD.

[37]  Christian Wende,et al.  On Controlled Visualisations in Software Product Line Engineering , 2008, SPLC.

[38]  Marsha Chechik,et al.  Automatic and efficient variability-aware lifting of functional programs , 2020, Proc. ACM Program. Lang..

[39]  Sven Apel,et al.  An analysis of the variability in forty preprocessor-based software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[40]  Jean-Daniel Fekete,et al.  MatrixExplorer: a Dual-Representation System to Explore Social Networks , 2006, IEEE Transactions on Visualization and Computer Graphics.

[41]  Rick Salay,et al.  Lifting Datalog-based analyses to software product lines , 2019, ESEC/SIGSOFT FSE.

[42]  Michael D. Ernst,et al.  An Empirical Analysis of C Preprocessor Use , 2002, IEEE Trans. Software Eng..