A hybrid approach to suggest software product line portfolios

Graphical abstractDisplay Omitted HighlightsThe work proposes a hybrid approach to deal with the Product Portfolio Scope Problem.The approach is composed by a solution to deploy the feature relevance indicated by the customers into code assets of a SPL, based on a systematic method (SQFD).The approach includes a method to estimate the cost of an asset based on common and relevant measures related to source code, together with a fuzzy system to deal with the imprecision to set reference values.The work presents an application of an NSGA-II to search for products minimizing the cost and maximizing the relevance of the candidate products.The approach was evaluated using different scenarios, exploring the mains aspects related to method in the practice: size, granularity of features and products search space.The previous version of our hybrid approach was dependent on the employed technologies and algorithms. Herein we reformulate our approach, detaching it from any particular technique/algorithm.The data collection process associated with our approach was improved to facilitate the hybrid approach's usage and mitigate associated construct validity threats.A more comprehensive evaluation, which focused on show the real word usefulness and scalability of our hybrid approach. To validate the usefulness of our approach, it was used the SPL associated with a tool broadly employed in both industrial and academic contexts (ArgoUML-SPL). The scalability of our approach was evaluated using a synthetic SPL.All the experiments were based on the guidelines defined by Arcuri and Briand in order to evaluate the statistical significance of this kind of work. Software product line (SPL) development is a new approach to software engineering which aims at the development of a whole range of products. However, as long as SPL can be useful, there are many challenges regarding the use of that approach. One of the main problems which hinders the adoption of software product line (SPL) is the complexity regarding product management. In that context, we can remark the scoping problem. One of the existent ways to deal with scoping is the product portfolio scoping (PPS). PPS aims to define the products that should be developed as well as their key features. In general, that approach is driven by marketing aspects, like cost of the product and customer satisfaction. Defining a product portfolio by using the many different available aspects is a NP-hard problem. This work presents an improved hybrid approach to solve the feature model selection problem, aiming at supporting product portfolio scoping. The proposal is based in a hybrid approach not dependent on any particular algorithm/technology. We have evaluated the usefulness and scalability of our approach using one real SPL (ArgoUML-SPL) and synthetic SPLs. As per the evaluation results, our approach is both useful from a practitioner's perspective and scalable.

[1]  Marco Laumanns,et al.  SPEA2: Improving the strength pareto evolutionary algorithm , 2001 .

[2]  Yuanyuan Zhang,et al.  Search based software engineering for software product line engineering: a survey and directions for future work , 2014, SPLC.

[3]  João Araújo,et al.  Evaluating scenario-based SPL requirements approaches: the case for modularity, stability and expressiveness , 2013, Requirements Engineering.

[4]  Mark Harman,et al.  Search Based Approaches to Component Selection and Prioritization for the Next Release Problem , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[5]  Tim Menzies,et al.  Scalable product line configuration: A straw to break the camel's back , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[6]  Enrique Alba,et al.  MOCell: A cellular genetic algorithm for multiobjective optimization , 2009, Int. J. Intell. Syst..

[7]  Mark Harman,et al.  Search--based approaches to the component selection and prioritization problem , 2006, GECCO.

[8]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[9]  Francisco Javier Orellana,et al.  Ant Colony Optimization for the Next Release Problem: A Comparative Study , 2010, 2nd International Symposium on Search Based Software Engineering.

[10]  Tim Menzies,et al.  On the value of user preferences in search-based software engineering: A case study in software product lines , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[11]  Sheng Yu,et al.  A survey on metric of software complexity , 2010, 2010 2nd IEEE International Conference on Information Management and Engineering.

[12]  Paul Grünbacher,et al.  Agile product line planning: A collaborative approach and a case study , 2008, J. Syst. Softw..

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

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

[15]  Yoji Akao,et al.  Quality Function Deployment : Integrating Customer Requirements into Product Design , 1990 .

[16]  Vahid Garousi,et al.  Decision support for moving from a single product to a product portfolio in evolving software systems , 2010, J. Syst. Softw..

[17]  Jerffeson Souza,et al.  A robust optimization approach to the next release problem in the presence of uncertainties , 2015, J. Syst. Softw..

[18]  Mark Harman,et al.  Exact scalable sensitivity analysis for the next release problem , 2014, ACM Trans. Softw. Eng. Methodol..

[19]  Yuanyuan Zhang,et al.  “Fairness Analysis” in Requirements Assignments , 2008, 2008 16th IEEE International Requirements Engineering Conference.

[20]  Antonio J. Nebro,et al.  jMetal: A Java framework for multi-objective optimization , 2011, Adv. Eng. Softw..

[21]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[22]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

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

[24]  John D. McGregor,et al.  A systematic mapping study of software product lines testing , 2011, Inf. Softw. Technol..

[25]  Yuanyuan Zhang,et al.  The multi-objective next release problem , 2007, GECCO '07.

[26]  Sven Apel,et al.  Segregating feature interfaces to support software product line maintenance , 2016, MODULARITY.

[27]  Jesús Alcalá-Fdez,et al.  jFuzzyLogic: a Java Library to Design Fuzzy Logic Controllers According to the Standard for Fuzzy Control Programming , 2013, Int. J. Comput. Intell. Syst..

[28]  Miguel A. Laguna,et al.  A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring , 2013, Sci. Comput. Program..

[29]  Capers Jones,et al.  Estimating software costs : bringing realism to estimating , 2007 .

[30]  Johannes Müller,et al.  Value-Based Portfolio Optimization for Software Product Lines , 2011, 2011 15th International Software Product Line Conference.

[31]  Ebrahim Mamdani,et al.  Applications of fuzzy algorithms for control of a simple dynamic plant , 1974 .

[32]  Per Runeson,et al.  Software product line testing - A systematic mapping study , 2011, Inf. Softw. Technol..

[33]  Derek Rayside,et al.  Comparison of exact and approximate multi-objective optimization for software product lines , 2014, SPLC.

[34]  Victor J. Rayward-Smith,et al.  The next release problem , 2001, Inf. Softw. Technol..

[35]  Des Greer,et al.  Quantitative studies in software release planning under risk and resource constraints , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[36]  Lothar Thiele,et al.  Multiobjective evolutionary algorithms: a comparative case study and the strength Pareto approach , 1999, IEEE Trans. Evol. Comput..

[37]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[38]  Hirotaka Nakayama,et al.  Theory of Multiobjective Optimization , 1985 .

[39]  Alexander Egyed,et al.  A systematic mapping study of search-based software engineering for software product lines , 2015, Inf. Softw. Technol..

[40]  Ricardo A. L. Rabêlo,et al.  Toward a hybrid approach to generate Software Product Line portfolios , 2013, 2013 IEEE Congress on Evolutionary Computation.

[41]  A. Vargha,et al.  A Critique and Improvement of the CL Common Language Effect Size Statistics of McGraw and Wong , 2000 .

[42]  Lotfi A. Zadeh,et al.  Fuzzy Sets , 1996, Inf. Control..

[43]  Lotfi A. Zadeh,et al.  Fuzzy logic = computing with words , 1996, IEEE Trans. Fuzzy Syst..

[44]  José del Sagrado Martínez,et al.  Multi-objective ant colony optimization for requirements selection , 2015 .

[45]  Yuanyuan Zhang,et al.  Search-based software engineering: Trends, techniques and applications , 2012, CSUR.

[46]  Michael Eisenbarth,et al.  A decade of scoping: a survey , 2009, SPLC.

[47]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[48]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[49]  T. Capers Jones,et al.  Estimating software costs , 1998 .

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

[51]  Yinglin Wang,et al.  A preliminary experimental study on optimal feature selection for product derivation using knapsack approximation , 2010, 2010 IEEE International Conference on Progress in Informatics and Computing.

[52]  Marco Tulio Valente,et al.  Extracting Software Product Lines: A Case Study Using Conditional Compilation , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[53]  Douglas C. Schmidt,et al.  Filtered Cartesian Flattening: An Approximation Technique for Optimally Selecting Features while Adhering to Resource Constraints , 2008, SPLC.

[54]  Tim Menzies,et al.  Optimum feature selection in software product lines: Let your model and values guide your search , 2013, 2013 1st International Workshop on Combining Modelling and Search-Based Software Engineering (CMSBSE).

[55]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[56]  Francisco Luna,et al.  MOCell: A cellular genetic algorithm for multiobjective optimization , 2009 .

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

[58]  Georg Herzwurm,et al.  QFD-PPP: Product Line Portfolio Planning Using Quality Function Deployment , 2005, SPLC.

[59]  E. H. Mamdani,et al.  Application of Fuzzy Logic to Approximate Reasoning Using Linguistic Synthesis , 1976, IEEE Transactions on Computers.

[60]  Anne Auger,et al.  Theory of the hypervolume indicator: optimal μ-distributions and the choice of the reference point , 2009, FOGA '09.

[61]  Yinglin Wang,et al.  A genetic algorithm for optimized feature selection with resource constraints in software product lines , 2011, J. Syst. Softw..

[62]  M. K. Raja,et al.  Quality function deployment usage in software development , 1996, CACM.