Scalable Prediction of Non-functional Properties in Software Product Lines

A software product line is a family of related software products, typically, generated from a set of common assets. Users can select features to derive a product that fulfills their needs. Often, users expect a product to have specific non-functional properties, such as a small footprint or a minimum response time. Because a product line can contain millions of products, it is usually not feasible to generate and measure non-functional properties for each possible product of a product line. Hence, we propose an approach to predict a product's non-functional properties, based on the product's feature selection. To this end, we generate and measure a small set of products, and by comparing the measurements, we approximate each feature's non-functional properties. By aggregating the approximations of selected features, we predict the product's properties. Our technique is independent of the implementation approach and language. We show how already little domain knowledge can improve predictions and discuss trade-offs regarding accuracy and the required number of measurements. Although our approach is in general applicable for quantifiable non-functional properties, we evaluate it for the non-functional property footprint. With nine case studies, we demonstrate that our approach usually predicts the footprint with an accuracy of 98% and an accuracy of over 99% if feature interactions are known.

[1]  Paul Grünbacher,et al.  Tool Support for Product Derivation in Large-Scale Product Lines: A Wizard-based Approach , 2007, SPLC.

[2]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[3]  Jules White,et al.  Automating Product-Line Variant Selection for Mobile Devices , 2007 .

[4]  T. W. Anderson,et al.  The New Statistical Analysis of Data , 1986 .

[5]  Derek Coleman,et al.  A cooperative model for cross-divisional product development for a software product line , 2000, SPLC.

[6]  Douglas C. Schmidt,et al.  Selecting highly optimal architectural feature sets with Filtered Cartesian Flattening , 2009, J. Syst. Softw..

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

[8]  Sven Apel,et al.  Measuring and Characterizing Crosscutting in Aspect-Based Programs: Basic Metrics and Case Studies , 2007, FASE.

[9]  Wolfgang Schröder-Preikschat,et al.  On the Configuration of Non-Functional Properties in Software Product Lines , 2007, SPLC.

[10]  Gunter Saake,et al.  Measuring Non-Functional Properties in Software Product Line for Product Derivation , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[11]  Wolfgang Stolz,et al.  Introducing PLA at Bosch Gasoline Systems: Experiences and Practices , 2004, SPLC.

[12]  Steffen Zschaler,et al.  Towards pervasive treatment of non-functional properties at design and run-time , 2003 .

[13]  Wolfgang Schröder-Preikschat,et al.  Approaching Non-functional Properties of Software Product Lines: Learning from Products , 2010, 2010 Asia Pacific Software Engineering Conference.

[14]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.

[15]  Sergio Segura,et al.  FAMA: Tooling a Framework for the Automated Analysis of Feature Models , 2007, VaMoS.

[16]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[17]  Goetz Botterweck,et al.  Towards Supporting Feature Configuration by Interactive Visualisation , 2007, SPLC.

[18]  S S Stevens,et al.  On the Theory of Scales of Measurement. , 1946, Science.

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

[20]  Ron Cytron,et al.  Footprint and feature management using aspect-oriented programming techniques , 2002, LCTES/SCOPES '02.

[21]  Gary J. Chastek,et al.  Measures for Software Product Lines , 2003 .

[22]  Thomas A Henzinger,et al.  Two challenges in embedded systems design: predictability and robustness , 2008, Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences.

[23]  Krzysztof Czarnecki,et al.  Evolution of the Linux Kernel Variability Model , 2010, SPLC.

[24]  Thomas A. Henzinger,et al.  The Discipline of Embedded Systems Design , 2007, Computer.

[25]  Michal Antkiewicz,et al.  FeaturePlugin: feature modeling plug-in for Eclipse , 2004, eclipse '04.

[26]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

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

[28]  Sebastian Oster,et al.  Automated Incremental Pairwise Testing of Software Product Lines , 2010, SPLC.

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