Skip to main content

Synthesizing Architecture from Requirements: A Genetic Approach

  • Chapter
  • First Online:

Abstract

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Denning P, Comer DE, Gries D, Mulder MC, Tucker A, Turner AJ, Young PR (1989) Computing as a discipline, Commun. ACM 32(1):9–23

    Article  Google Scholar 

  2. Brown WJ, Malveau C, McCormick HW, Mowbray TJ (1998) Antipatterns – refactoring software, architectures, and projects in crisis. Wiley

    Google Scholar 

  3. S3 (2008) Proceedings of the 2008 workshop on self-sustaining systems. S3’2008, Potsdam, Germany, 15–16 May 2008. Lecture notes in computer science, vol 5146. Springer-Verlag, Heidelberg

    Google Scholar 

  4. Diaz-Pace A, Kim H, Bass L, Bianco P, Bachmann F (2008) Integrating quality-attribute reasoning frameworks in the ArchE design assistant. In: Becker S, Plasil F, Reussner R (eds) Proceedings of the 4th international conference on quality of software-architectures: models and architectures. Lecture notes in computer science, vol 5281. Springer, Karlsruhe, Germany, p 171

    Google Scholar 

  5. Buschmann F, Meunier R, Rohnert H, Sommerland P, Stal M (1996) A system of patterns – pattern-oriented software architecture. John Wiley & Sons, West Sussex, England

    Google Scholar 

  6. Holland JH (1975) Adaption in natural and artificial systems. MIT Press, Ann Arbor, Michigan, USA

    MATH  Google Scholar 

  7. Mitchell M (1996) An introduction to genetic algorithms. MIT Press, Cambridge

    MATH  Google Scholar 

  8. ISO (2001) Software engineering – product quality – part I: quality model. ISO/TEC 9126–1:2001

    Google Scholar 

  9. Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE T Software Eng 20(6):476–492

    Article  Google Scholar 

  10. Clements P, Kazman R, Klein M (2002) Evaluating software architectures. Addison-Wesley, Reading

    Google Scholar 

  11. Clarke J, Dolado JJ, Harman M, Hierons R, Jones MB, Lumkin M, Mitchell B, Mancoridis S, Rees K, Roper M, Shepperd M (2003) Reformulating software engineering as a search problem. IEE Proc – Softw 150(3):161–175

    Article  Google Scholar 

  12. Glover FW, Kochenberger GA (eds) (2003) Handbook of metaheuristics, vol 57, International series in operations research & management science. Springer, Heidelberg

    MATH  Google Scholar 

  13. Salomon R (1998) Short notes on the schema theorem and the building block hypothesis in genetic algorithms. In: Porto VW, Saravanan N, Waagen D, Eiben AE (eds) Evolutionary programming VII, 7th international conference, EP98, California, USA. Lecture notes in computer science, vol 1447. Springer, Berlin, p 113

    Google Scholar 

  14. Babar MA, Dingsoyr T, Lago P, van Vliet H (eds) (2009) Software architecture knowledge management – theory and practice establishing and managing knowledge sharing networks. Springer, Heidelberg

    Google Scholar 

  15. ISO (2010) Systems and software engineering – architecture description. ISO/IEC CD1 42010: 1–51

    Google Scholar 

  16. Kruchten P (1995) Architectural blueprints – the “4 + 1” view model of software architecture. IEEE Softw 12(6):42–50

    Article  Google Scholar 

  17. Selonen P, Koskimies K, Systä T (2001) Generating structured implementation schemes from UML sequence diagrams. In: QiaYun L, Riehle R, Pour G, Meyer B (eds) Proceedings of TOOLS 2001. IEEE CS Press, California, USA, p 317

    Google Scholar 

  18. Harman M, Mansouri SA, Zhang Y (2009) Search based software engineering: a comprehensive review of trends, techniques and applications. Technical report TR-09-03, Kings College, London

    Google Scholar 

  19. Räihä O (2010) A survey on search-based software design. Comput Sci Rev 4(4):203–249

    Article  Google Scholar 

  20. Bowman M, Brian, LC, Labiche Y (2007) Solving the class responsibility assignment problem in object-oriented analysis with multi-objective genetic algorithms. Technical report SCE-07-02, Carleton University

    Google Scholar 

  21. Simons CL, Parmee IC (2007a) Single and multi-objective genetic operators in object-oriented conceptual software design. In: Proceedings of the genetic and evolutionary computation conference (GECCO’07). ACM Press, London, UK, p 1957

    Google Scholar 

  22. Simons CL, Parmee IC (2007) A cross-disciplinary technology transfer for search-based evolutionary computing: from engineering design to software engineering design. Eng Optim 39(5):631–648

    Article  Google Scholar 

  23. Amoui M, Mirarab S, Ansari S, Lucas C (2006) A GA approach to design evolution using design pattern transformation. Int J Inform Technol Intell Comput 1:235–245

    Google Scholar 

  24. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns, elements of reusable object-oriented software. Addison-Wesley, Reading

    MATH  Google Scholar 

  25. Seng O, Bauyer M, Biehl M, Pache G (2005) Search-based improvement of subsystem decomposition. In: Proceedings of the genetic and evolutionary computation conference (GECCO’05). ACM Press, Mannheim, Germany, p 1045

    Google Scholar 

  26. Seng O, Stammel J, Burkhart D (2006) Search-based determination of refactorings for improving the class structure of object-oriented systems. In: Proceedings of the genetic and evolutionary computation conference (GECCO’06). ACM Press, Washington, USA, p 1909

    Google Scholar 

  27. O’Keeffe M, Ó Cinnéide M (2004) Towards automated design improvements through combinatorial optimization. In: Workshop on directions in software engineering environments (WoDiSEE2004), Workshop at ICSE’04, 26th international conference on software engineering. Edinburgh, Scotland, p 75

    Google Scholar 

  28. O’Keeffe M, Ó Cinnéide M (2006) Search-based software maintenance. In: Proceedings of conference on software maintenance and reengineering. IEEE CS Press, Bari, Italy, p 249

    Google Scholar 

  29. O’Keeffe M, Ó Cinnéide M (2008) Search-based refactoring for software maintenance. J Syst Software 81(4):502–516

    Article  Google Scholar 

  30. Mancoridis S, Mitchell BS, Rorres C, Chen YF, Gansner ER (1998) Using automatic clustering to produce high-level system organizations of source code. In: Proceedings of the international workshop on program comprehension (IWPC’98). Silver Spring, p 45

    Google Scholar 

  31. Di Penta M, Neteler M, Antoniol G, Merlo E (2005) A language-independent software renovation framework. J Syst Software 77:225–240

    Article  Google Scholar 

  32. Menascé DA, Sousa JP, Malek S, Gomaa H (2010) QoS architectural patterns for self-architecting software systems. In: Proceedings of the 7th international conference on autonomic computing and communications. ACM Press, Washington DC, USA, p 195

    Google Scholar 

  33. Shaw M, Garlan D (1996) Software architecture – perspectives on an emerging discipline. Prentice Hall, Englewood Cliffs

    MATH  Google Scholar 

  34. Räihä O, Koskimies K, Mäkinen E (2008) Genetic synthesis of software architecture. In: Li X et al. (eds) Proceedings of the 7th international conference on simulated evolution and learning (SEAL’08). Lecture notes in computer science, vol 5361. Springer, Melbourne, Australia, p 565

    Google Scholar 

  35. Räihä O, Koskimies K, Mäkinen E, Systä T (2008) Pattern-based genetic model refinements in MDA. Nordic J Comput 14(4):338–355

    MATH  Google Scholar 

  36. Michalewicz Z (1992) Genetic algorithms + data structures = evolutionary programs. Springer, New York

    MATH  Google Scholar 

  37. Losavio F, Chirinos L, Matteo A, Lévy N, Ramdane-Cherif A (2004) ISO quality standards measuring architectures. J Syst Software 72:209–223

    Article  Google Scholar 

  38. Mens T, Demeyer S (2001) Future trends in evolution metrics. In: Proceedings of international workshop on principles of software evolution. ACM Press, Vienna, Austria, p 83

    Google Scholar 

  39. Bass L, Clements P, Kazman R (1998) Software architecture in practice. Addison-Wesley, Boston

    Google Scholar 

  40. Räihä O, Koskimies K, Mäkinen E (2009) Scenario-based genetic synthesis of software architecture. In: Boness K, Fernandes JM, Hall JG, Machado RJ, Oberhauser R (eds) Proceedings of the 4th international conference on software engineering advances (ICSEA’09). IEEE, Porto, Portugal, p 437

    Google Scholar 

  41. Deb K (1999) Evolutionary algorithms for multicriterion optimization in engineering design. In: Miettinen K, Mäkelä MM, Neittaanmäki P, Periaux J (eds) Proceedings of the evolutionary algorithms in engineering and Computer Science (EUROGEN’99). University of Jyväskylä, Finland, p 135

    Google Scholar 

  42. Cheng B, de Lemos R, Giese H, Inverardi P, Magee J (2009) Software engineering for self-adaptive systems: a research roadmap. In: Cheng BHC, Lemos R de, Giese H, Inverardi P, Magee J (eds) Software engineering for self-adaptive systems. Lecture notes in computer science, vol 5525. Springer, Amsterdam, p 1

    Google Scholar 

Download references

Acknowledgments

We wish to thank the students and experts for participating in the experiment. The anonymous reviewers have significantly helped to improve the paper. This work has been funded by the Academy of Finland (project Darwin).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Outi Räihä .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Räihä, O., Kundi, H., Koskimies, K., Mäkinen, E. (2011). Synthesizing Architecture from Requirements: A Genetic Approach. In: Avgeriou, P., Grundy, J., Hall, J.G., Lago, P., Mistrík, I. (eds) Relating Software Requirements and Architectures. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21001-3_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-21001-3_18

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-21000-6

  • Online ISBN: 978-3-642-21001-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics