Evolutionary Software Architecture Design

This thesis experiments with a novel approach to applying genetic algorithms in software architecture design by giving the structure of an architecture at a highly abstract level. Previously in the literature, genetic algorithms are used only to improve existing architectures. The structure and evaluation of software architectures and the principles of meta-heuristic search algorithms are introduced to give a basis to understand the implementation. Current research in the field of search-based software engineering is explored to give a perspective to the implementation presented in this thesis. The chosen genetic construction of software architectures is based on a model which contains information of a set of responsibilities and dependencies between them. An implementation using this model is presented, as well as test results achieved from a case study made on a sketch of an electronic home control system. The test results show that quality results can be achieved using the selected approach and that the presented implementation is a good starting point for future research.

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

[2]  C. Reeves Modern heuristic techniques for combinatorial problems , 1993 .

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

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

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

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

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

[8]  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.

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

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

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

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

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

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

[15]  Niraj K. Jha,et al.  MOGAC: a multiobjective genetic algorithm for the co-synthesis of hardware-software embedded systems , 1997, ICCAD 1997.

[16]  Zbigniew Michalewicz,et al.  Genetic Algorithms + Data Structures = Evolution Programs , 1992, Artificial Intelligence.

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

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

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

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

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

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

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