Scenario-Based Genetic Synthesis of Software Architecture

Software architecture design can be regarded as finding an optimal combination of known general solutions and architectural knowledge with respect to given requirements. Based on previous work on synthesizing software architecture using genetic algorithms, we propose a refined fitness function for assessing software architecture in genetic synthesis, taking into account the specific anticipated needs of the software system under design. Inspired by real life architecture evaluation methods, the refined fitness function employs scenarios, specific situations possibly occurring during the lifetime of the system and requiring certain modifiability properties of the system. Empirical studies based on two example systems suggest that using this kind of fitness function significantly improves the quality of the resulting architecture.

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

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

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

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

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

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

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

[8]  Outi Räihä,et al.  Evolutionary Software Architecture Design , 2008 .

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

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

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

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

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

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

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

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

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