Architectural Feature Re-Modularization for Software Product Line Evolution

Extensive maintenance leads to the Software Product Line Architecture (PLA) degradation over time. When there is the need of evolving the Software Product Line (SPL) to include new features, or move to a new platform, a degraded PLA requires considerable effort to understand and modify, demanding expensive refactoring activity. In the state of the art, search-based algorithms are used to improve PLA at package level. However, recent studies have shown that the most variability and implementation details of an SPL are described in the level of classes. There is a gap between existing approaches and existing practical needs. In this work, we extend the current state of the art to deal with feature modularization in the level of classes by introducing a new search operator and a set of objective functions to deal with feature modularization in a finer granularity of the architectural elements, namely at class level. We evaluated the proposal in an exploratory study with a PLA widely investigated and a real-world PLA. The results of quantitative and qualitative analysis point out that our proposal provides solutions to properly re-modularize features in a PLA, being preferred by practitioners, in order to support the evolution of SPLs.

[1]  Marc Roubens,et al.  Multiple criteria decision making , 1994 .

[2]  Thelma Elita Colanzi,et al.  A search-based approach for software product line design , 2014, SPLC.

[3]  Alexander Egyed,et al.  Evolutionary Computation for Software Product Line Testing: An Overview and Open Challenges , 2016, Computational Intelligence and Quantitative Software Engineering.

[4]  Alessandro F. Garcia,et al.  Towards a Microservices-Based Product Line with Multi-Objective Evolutionary Algorithms , 2020, 2020 IEEE Congress on Evolutionary Computation (CEC).

[5]  Krzysztof Czarnecki,et al.  Variability in Software: State of the Art and Future Directions - (Extended Abstract) , 2013, FASE.

[6]  Bixin Li,et al.  Evaluating Software Architecture Evolution Using Performance Simulation , 2016, 2016 4th Intl Conf on Applied Computing and Information Technology/3rd Intl Conf on Computational Science/Intelligence and Applied Informatics/1st Intl Conf on Big Data, Cloud Computing, Data Science & Engineering (ACIT-CSII-BCD).

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

[8]  Jocelyn Simmonds,et al.  Software product line evolution: A systematic literature review , 2019, Inf. Softw. Technol..

[9]  Grady Booch,et al.  Object-oriented analysis and design with applications, third edition , 2007, SOEN.

[10]  Martin Höst,et al.  Tracking degradation in software product lines through measurement of design rule violations , 2002, SEKE '02.

[11]  Lothar Thiele,et al.  Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study , 1998, PPSN.

[12]  Thelma Elita Colanzi,et al.  The Symposium on Search-Based Software Engineering: Past, Present and Future , 2020, Inf. Softw. Technol..

[13]  Lionel C. Briand,et al.  A Hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering , 2014, Softw. Test. Verification Reliab..

[14]  Thelma Elita Colanzi,et al.  An Enhanced Evaluation Model for Search-based Product Line Architecture Design , 2017, CIbSE.

[15]  Roberto Erick Lopez-Herrejon,et al.  Evaluating Support for Features in Advanced Modularization Technologies , 2005, ECOOP.

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

[17]  Priyadarshi Tripathy,et al.  Software Evolution and Maintenance: A Practitioner's Approach , 2014 .

[18]  Thelma Elita Colanzi,et al.  Optimizing Software Product Line Architectures with OPLA-Tool , 2015, SSBSE.

[19]  Steffen Küpper,et al.  Managed and Continuous Evolution of Dependable Automotive Software Systems / Andreas Rausch, Oliver Brox, Axel Grewe, Marcel Ibe, Stefanie Jauns-Seyfried, Christoph Knieke, Marco Körner, Steffen Küpper, Malte Mauritz, Henrik Peters, Arthur Strasser, Martin Vogel, Norbert Weiss , 2015 .

[20]  ArcuriAndrea,et al.  A Hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering , 2014 .

[21]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[22]  Martin Vogel,et al.  From product architectures to a managed automotive software product line architecture , 2016, SAC.

[23]  Thelma Elita Colanzi,et al.  Are MAs profitable to search-based PLA design? , 2019, IET Softw..

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

[25]  Andreia Malucelli,et al.  Software product line applied to the internet of things: A systematic literature review , 2020, Inf. Softw. Technol..

[26]  Jaime Font,et al.  Achieving Knowledge Evolution in Dynamic Software Product Lines , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[27]  Johann Mortara,et al.  Identifying and Visualizing Variability in Object-Oriented Variability-Rich Systems , 2019, SPLC.

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

[29]  Wenhao Yu,et al.  Supplementary material , 2015 .

[30]  Carlos José Pereira de Lucena,et al.  On the Modularity of Software Architectures: A Concern-Driven Measurement Framework , 2007, ECSA.

[31]  Marco Laumanns,et al.  Performance assessment of multiobjective optimizers: an analysis and review , 2003, IEEE Trans. Evol. Comput..

[32]  Thelma Elita Colanzi,et al.  A feature-driven crossover operator for multi-objective and evolutionary optimization of product line architectures , 2016, J. Syst. Softw..

[33]  Jacob Krüger,et al.  Variability management meets microservices: six challenges of re-engineering microservice-based webshops , 2020, SPLC.

[34]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[35]  Thelma Elita Colanzi,et al.  OPLA-Tool v2.0: a Tool for Product Line Architecture Design Optimization , 2020, SBES.

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