Synthesizing Architecture from Requirements: A Genetic Approach

The generation of software architecture using genetic algorithms is studied with architectural styles and patterns as mutations. The main input for the genetic algorithm is a rudimentary architecture representing the functional decomposition of the system, obtained as a refinement of use cases. Using a fitness function tuned for desired weights of simplicity, efficiency and modifiability, the technique produces a proposal for the software architecture of the target system, with applications of architectural styles and patterns. The quality of the produced architectures is studied empirically by comparing these architectures with the ones produced by undergraduate students.

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

[2]  F. Glover,et al.  Handbook of Metaheuristics , 2019, International Series in Operations Research & Management Science.

[3]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

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

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

[6]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

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

[8]  Outi Räihä,et al.  An Updated Survey on Search-Based Software Design , 2009 .

[9]  M. Mari,et al.  Quality-Driven Architecture Design Method , 2002 .

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

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

[12]  Sam Malek,et al.  Qos architectural patterns for self-architecting software systems , 2010, ICAC '10.

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

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

[15]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[16]  Leonard J. Bass,et al.  Integrating Quality-Attribute Reasoning Frameworks in the ArchE Design Assistant , 2008, QoSA.

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

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

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

[20]  Philippe Krutchen,et al.  Architectural blueprints--the '4+1' view model of software architecture , 1995 .

[21]  Tom Mens,et al.  Future trends in software evolution metrics , 2001, IWPSE '01.

[22]  Kai Koskimies,et al.  Generating structured implementation schemes from UML sequence diagrams , 2001, Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39.

[23]  Ralf Salomon Short Notes on the Schema Theorem and the Building Block Hypothesis in Genetic Algorithms , 1998, Evolutionary Programming.

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

[25]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[26]  Muhammad Ali Babar,et al.  Software Architecture Knowledge Management: Theory and Practice , 2009 .

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

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

[29]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[30]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[31]  Yuanyuan Zhang,et al.  Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications , 2009 .

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

[33]  Philippe Kruchten,et al.  Architecture blueprints—the “4+1” view model of software architecture , 1995, TRI-Ada '95.

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

[35]  Sooyong Park,et al.  Quality-driven architecture development using architectural tactics , 2009, J. Syst. Softw..

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

[37]  Emden R. Gansner,et al.  Using automatic clustering to produce high-level system organizations of source code , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

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

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

[40]  Mikael Lindvall,et al.  Evaluating software architectures , 2004, Adv. Comput..

[41]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

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

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

[44]  Forrest Shull,et al.  Using the ISO/IEC 9126 product quality model to classify defects: A controlled experiment , 2012, EASE.

[45]  Peter J. Denning,et al.  Computing as a discipline , 1989, Computer.