Simulated Annealing for Aiding Genetic Algorithm in Software Architecture Synthesis

AbstractThe dream of software engineers is to be able to automatically producesoftware systems based on their requirements. Automatic synthesis of soft-ware architecture has already been shown to be feasible with genetic algo-rithms. Genetic algorithms, however, easily become very slow if the size ofthe problem and complexity of mutations increase as GAs handle a large pop-ulation with much data. Also, for purely scientific interest it is worthwhileto investigate how other search algorithms handle the problem of softwarearchitecture synthesis. The present paper studies the possibilities of usingsimulated annealing for synthesizing software architecture. For this purposewe have two goals: 1) to study whether a simpler search algorithm can handlesynthesis and 2) if a seeded algorithm can provide quality results faster than asimple genetic algorithm. We start from functional requirements which forma base architecture and consider three quality attributes, modifiability, effi-ciency and complexity. Synthesis is performed by adding design patterns andarchitecture styles to the base architecture. The algorithm thus produces asoftware architecture which fulfills the functional requirements and also corre-sponds to the quality requirements. It is concluded that simulated annealingas such does not produce good architectures, but it is useful for speeding upthe evolution process by quickly fine-tuning a seed solution achieved with agenetic algorithm. The main contribution is thus a new seeded algorithm forsoftware architecture design.Keywords: search-based software engineering, simulated annealing, softwaredesign, genetic algorithm, software architecture

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

[2]  Erkki Mäkinen,et al.  Using simulated annealing for producing software architectures , 2009, GECCO '09.

[3]  Bryant A. Julstrom,et al.  Seeding the population: improved performance in a genetic algorithm for the rectilinear Steiner problem , 1993, SAC '94.

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  Johannes Stammel,et al.  Search-based determination of refactorings for improving the class structure of object-oriented systems , 2006, GECCO.

[6]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[7]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[8]  Erkki Mäkinen,et al.  Pattern-Based Genetic Model Refinements in MDA , 2008, Nord. J. Comput..

[9]  Patrick Siarry,et al.  A theoretical study on the behavior of simulated annealing leading to a new cooling schedule , 2005, Eur. J. Oper. Res..

[10]  Outi Raiha,et al.  Genetic Algorithms in Software Architecture Synthesis , 2011 .

[11]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[12]  Ian C. Parmee,et al.  Interactive, Evolutionary Search in Upstream Object-Oriented Class Design , 2010, IEEE Transactions on Software Engineering.

[13]  Mark Harman,et al.  Reformulating software engineering as a search problem , 2003 .

[14]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[15]  Dorothea Heiss-Czedik,et al.  An Introduction to Genetic Algorithms. , 1997, Artificial Life.

[16]  Caro Lucas,et al.  A GENETIC ALGORITHM APPROACH TO DESIGN EVOLUTION USING DESIGN PATTERN TRANSFORMATION , 2010 .

[17]  Erkki Mäkinen,et al.  Multi-objective genetic synthesis of software architecture , 2011, GECCO.

[18]  M. Harman,et al.  A Search Based Approach for Overlapping Concept Boundaries , 2006 .

[19]  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).

[20]  Cecilia R. Aragon,et al.  Optimization by Simulated Annealing: An Experimental Evaluation; Part II, Graph Coloring and Number Partitioning , 1991, Oper. Res..

[21]  Erkki Mäkinen,et al.  Generating software architecture spectrum with multi-objective genetic algorithms , 2011, 2011 Third World Congress on Nature and Biologically Inspired Computing.

[22]  Betty H. C. Cheng,et al.  On the use of genetic programming for automated refactoring and the introduction of design patterns , 2010, GECCO '10.

[23]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[24]  Christopher L. Simons,et al.  A cross-disciplinary technology transfer for search-based evolutionary computing: from engineering design to software engineering design , 2007 .

[25]  Cecilia R. Aragon,et al.  Optimization by Simulated Annealing: An Experimental Evaluation; Part I, Graph Partitioning , 1989, Oper. Res..

[26]  Lionel C. Briand,et al.  Solving the Class Responsibility Assignment Problem in Object-Oriented Analysis with Multi-Objective Genetic Algorithms , 2010, IEEE Transactions on Software Engineering.

[27]  John J. Grefenstette,et al.  Case-Based Initialization of Genetic Algorithms , 1993, ICGA.

[28]  Erkki Mäkinen,et al.  Genetic Synthesis of Software Architecture , 2008, SEAL.

[29]  Mark Kent O'Keeffe,et al.  Search-based software maintenance , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[30]  Erkki Mäkinen,et al.  Complementary crossover for genetic software architecture synthesis , 2010, 2010 10th International Conference on Intelligent Systems Design and Applications.

[31]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[32]  Mark Harman,et al.  Pareto optimal search based refactoring at the design level , 2007, GECCO '07.

[33]  Erkki Mäkinen,et al.  Scenario-Based Genetic Synthesis of Software Architecture , 2009, 2009 Fourth International Conference on Software Engineering Advances.

[34]  Matthias Biehl,et al.  Search-based improvement of subsystem decompositions , 2005, GECCO '05.

[35]  Kiarash Mahdavi,et al.  Allowing Overlapping Boundaries in Source Code using a Search Based Approach to Concept Binding , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[36]  Mark Kent O'Keeffe,et al.  Search-based refactoring for software maintenance , 2008, J. Syst. Softw..

[37]  Mel Ó Cinnéide,et al.  Towards automated design improvement through combinatorial optimisation , 2004, ICSE 2004.

[38]  Thierry Bodhuin,et al.  A search-based approach for dynamically re-packaging downloadable applications , 2007, CASCON.

[39]  Lars Grunske,et al.  ArcheOpterix: An extendable tool for architecture optimization of AADL models , 2009, 2009 ICSE Workshop on Model-Based Methodologies for Pervasive and Embedded Software.

[40]  Emile H. L. Aarts,et al.  Simulated Annealing: Theory and Applications , 1987, Mathematics and Its Applications.

[41]  Erkki Mäkinen,et al.  Empirical study on the effect of crossover in genetic software architecture synthesis , 2009, 2009 World Congress on Nature & Biologically Inspired Computing (NaBIC).

[42]  Michael de la Maza,et al.  Book review: Genetic Algorithms + Data Structures = Evolution Programs by Zbigniew Michalewicz (Springer-Verlag, 1992) , 1993 .

[43]  John A. Clark,et al.  Formulating software engineering as a search problem , 2003, IEE Proc. Softw..

[44]  Erkki Mäkinen,et al.  Synthesizing Architecture from Requirements: A Genetic Approach , 2011, Relating Software Requirements and Architectures.

[45]  David Frankel,et al.  Model Driven Architecture: Applying MDA to Enterprise Computing , 2003 .

[46]  Ian C. Parmee,et al.  Single and multi-objective genetic operators in object-oriented conceptual software design , 2006, GECCO.

[47]  Giuliano Antoniol,et al.  Simulated annealing for improving software quality prediction , 2006, GECCO.

[48]  Chandrasekharan Rajendran,et al.  A multi-objective simulated-annealing algorithm for scheduling in flowshops to minimize the makespan and total flowtime of jobs , 2005, Eur. J. Oper. Res..

[49]  N. Metropolis,et al.  Equation of State Calculations by Fast Computing Machines , 1953, Resonance.

[50]  Ian C. Parmee,et al.  Dynamic parameter control of interactive local search in UML software design , 2010, 2010 IEEE International Conference on Systems, Man and Cybernetics.