Interactive multi-objective evolutionary optimization of software architectures

Abstract While working on a software specification, designers usually need to evaluate different architectural alternatives to be sure that quality criteria are met. Even when these quality aspects could be expressed in terms of multiple software metrics, other qualitative factors cannot be numerically measured, but they are extracted from the engineers know-how and prior experiences. In fact, detecting not only strong but also weak points in the different solutions seems to fit better with the way humans make their decisions. Putting the human in the loop brings new challenges to the search-based software engineering field, especially for those human-centered activities within the early analysis phase. This paper explores how the interactive evolutionary computation can serve as a basis for integrating the humans judgment into the search process. An interactive approach is proposed to discover software architectures, in which both quantitative and qualitative criteria are applied to guide a multi-objective evolutionary algorithm. The obtained feedback is incorporated into the fitness function using architectural preferences allowing the algorithm to discern between promising and poor solutions. Experimentation with real users has revealed that the proposed interaction mechanism can effectively guide the search towards those regions of the search space that are of real interest to the expert.

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

[2]  Jorge Andrés Díaz Pace,et al.  Producing Just Enough Documentation: An Optimization Approach Applied to the Software Architecture Domain , 2015, Journal on Data Semantics.

[3]  KruchtenPhilippe,et al.  Decision-making techniques for software architecture design , 2011 .

[4]  S Vathsavayi,et al.  Interleaving human and search-based software architecture design , 2013 .

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

[6]  Christopher L. Simons,et al.  Interactive ant colony optimization (iACO) for early lifecycle software design , 2012, Swarm Intelligence.

[7]  Jürgen Branke,et al.  Learning Value Functions in Interactive Evolutionary Multiobjective Optimization , 2015, IEEE Transactions on Evolutionary Computation.

[8]  Athanasios V. Vasilakos,et al.  A modified differential evolution-based combined routing and sleep scheduling scheme for lifetime maximization of wireless sensor networks , 2015, Soft Comput..

[9]  Gary B. Lamont,et al.  Evolutionary Algorithms for Solving Multi-Objective Problems , 2002, Genetic Algorithms and Evolutionary Computation.

[10]  Eila Niemelä,et al.  A Survey on Software Architecture Analysis Methods , 2002, IEEE Trans. Software Eng..

[11]  Outi Räihä,et al.  A survey on search-based software design , 2010, Comput. Sci. Rev..

[12]  Luis Martínez-López,et al.  Dealing with heterogeneous information in engineering evaluation processes , 2007, Inf. Sci..

[13]  Mohamed Wiem Mkaouer,et al.  Recommendation system for software refactoring using innovization and interactive dynamic optimization , 2014, ASE.

[14]  Lars Grunske,et al.  Software Architecture Optimization Methods: A Systematic Literature Review , 2013, IEEE Transactions on Software Engineering.

[15]  Sebastián Ventura,et al.  A comparative study of many-objective evolutionary algorithms for the discovery of software architectures , 2016, Empirical Software Engineering.

[16]  R. J. Balling,et al.  The maximin fitness function for multi-objective evolutionary computation: application to city planning , 2001 .

[17]  Kaisa Miettinen,et al.  On scalarizing functions in multiobjective optimization , 2002, OR Spectr..

[18]  Andreea Vescan An Evolutionary Multiobjective Approach for the Dynamic Multilevel Component Selection Problem , 2015, ICSOC Workshops.

[19]  Nicolas Gaud,et al.  A Review and Taxonomy of Interactive Optimization Methods in Operations Research , 2015, ACM Trans. Interact. Intell. Syst..

[20]  Ian C. Parmee,et al.  Elegant Object-Oriented Software Design via Interactive, Evolutionary Computation , 2012, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[21]  Murat Köksalan,et al.  An Interactive Territory Defining Evolutionary Algorithm: iTDEA , 2010, IEEE Transactions on Evolutionary Computation.

[22]  Sergei Vassilvitskii,et al.  k-means++: the advantages of careful seeding , 2007, SODA '07.

[23]  Richard Torkar,et al.  An initial industrial evaluation of interactive search-based testing for embedded software , 2015, Appl. Soft Comput..

[24]  Ian C. Parmee Poor-Definition, Uncertainty, and Human Factors - Satisfying Multiple Objectives in Real-World Decision-Making Environments , 2001, EMO.

[25]  Sebastián Ventura,et al.  An approach for the evolutionary discovery of software architectures , 2015, Inf. Sci..

[26]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[27]  Kalyanmoy Deb,et al.  Multiobjective optimization , 1997 .

[28]  Jeremy Singer,et al.  Search-Based Refactoring: Metrics Are Not Enough , 2015, SSBSE.

[29]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[30]  Ashutosh Tiwari,et al.  Ergonomic Chair Design by Fusing Qualitative and Quantitative Criteria Using Interactive Genetic Algorithms , 2008, IEEE Transactions on Evolutionary Computation.

[31]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[32]  Ganesh Ram Santhanam Qualitative optimization in software engineering: A short survey , 2016, J. Syst. Softw..

[33]  Raffaela Mirandola,et al.  Hybrid multi-attribute QoS optimization in component based software systems , 2013, J. Syst. Softw..

[34]  Aurora Ramírez,et al.  A Systematic Review of Interaction in Search-Based Software Engineering , 2019, IEEE Transactions on Software Engineering.

[35]  Hideyuki Takagi,et al.  Interactive evolutionary computation: fusion of the capabilities of EC optimization and human evaluation , 2001, Proc. IEEE.

[36]  Jasbir S. Arora,et al.  Survey of multi-objective optimization methods for engineering , 2004 .

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