Genetic Synthesis of Software Architecture

Design of software architecture is intellectually one of the most demanding tasks in software engineering. This paper proposes an approach to automatically synthesize software architecture using genetic algorithms. The technique applies architectural patterns for mutations and quality metrics for evaluation, producing a proposal for a software architecture on the basis of functional requirements given as a graph of functional responsibilities. Two quality attributes, modifiability and efficiency, are considered. The behavior of the genetic synthesis process is analyzed with respect to quality improve ment speed, the effect of dynamic mutation, and the effect of quality attribute prioritization. Our tests show that it is possible to genetically synthesize architectures that achieve a high fitness value early on.

[1]  Maria Luisa Villani,et al.  An approach for QoS-aware service composition based on genetic algorithms , 2005, GECCO '05.

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

[3]  Enrique Alba,et al.  Software project management with GAs , 2007, Inf. Sci..

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

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

[6]  Bart Du Bois,et al.  Describing the impact of refactoring on internal program quality , 2003 .

[7]  Spiros Mancoridis,et al.  Automatic clustering of software systems using a genetic algorithm , 1999, STEP '99. Proceedings Ninth International Workshop Software Technology and Engineering Practice.

[8]  Mark Harman,et al.  A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization , 2002, GECCO.

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

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

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

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

[13]  Niraj K. Jha,et al.  MOGAC: a multiobjective genetic algorithm for the co-synthesis of hardware-software embedded systems , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[14]  Zbigniew Michalewicz,et al.  Genetic algorithms + data structures = evolution programs (2nd, extended ed.) , 1994 .

[15]  Giuliano Antoniol,et al.  A language-independent software renovation framework , 2005, J. Syst. Softw..

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

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

[18]  Houari A. Sahraoui,et al.  Can metrics help to bridge the gap between the improvement of OO design quality and its automation? , 2000, Proceedings 2000 International Conference on Software Maintenance.

[19]  Timo Mantere,et al.  Evolutionary computing in search-based software engineering , 2004 .

[20]  Lars Grunske,et al.  Identifying "good" architectural design alternatives with multi-objective optimization strategies , 2006, ICSE.

[21]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[22]  Robert Godin Can Metrics Help Bridging the Gap Between the Improvement of OO Design Quality and Its Automation ? , 2003 .

[23]  Amar Ramdane-Cherif,et al.  ISO quality standards for measuring architectures , 2004, J. Syst. Softw..

[24]  Jean-Marc Jézéquel,et al.  Selecting an Efficient OO Integration Testing Strategy: An Experimental Comparison of Actual Strategies , 2001, ECOOP.

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

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

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

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

[29]  Robert Laddaga,et al.  Self-Adaptive Software , 2001, Lecture Notes in Computer Science.

[30]  Kent L. Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA '89.

[31]  K. Roberts,et al.  Thesis , 2002 .

[32]  Xiaomei Li,et al.  Optimization Parameter Selection by Means of Limited Execution and Genetic Algorithms , 2003, APPT.

[33]  Paul Clements,et al.  ATAM: Method for Architecture Evaluation , 2000 .

[34]  Hans de Bruin,et al.  Quality-driven software architecture composition , 2003, J. Syst. Softw..

[35]  C. J. Burgess,et al.  A Genetic Algorithm for the Optimisation of a Multiprocessor Computer Architecture , 1995 .

[36]  Mark Kent O'Keeffe,et al.  Getting the most from search-based refactoring , 2007, GECCO '07.

[37]  F. Glover,et al.  In Modern Heuristic Techniques for Combinatorial Problems , 1993 .