Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Shaw, M., Garlan, D.: Software Architecture - Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns – Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Michalewicz, Z.: Genetic Algorithms + Data Structures = Evolutionary Programs. Springer, Heidelberg (1992)
Clarke, J., Dolado, J.J., Harman, M., Hierons, R.M., Jones, B., Lumkin, M., Mitchell, B., Mancoridis, S., Rees, K., Roper, M., Shepperd, M.: Reformulating software engineering as a search problem. IEE Proceedings - Software 150(3), 161–175 (2003)
Harman, M., Hierons, R., Proctor, M.: A new representation and crossover operator for search-based optimization of software modularization. In: Proc. GECCO 2000, pp. 1351–1358 (2000)
Seng, O., Bauyer, M., Biehl, M., Pache, G.: Search-based improvement of subsystem decomposition. In: Proc. GECCO 2005, pp. 1045–1051 (2005)
Seng, O., Stammel, J., Burkhart, D.: Search-based determination of refactorings for improving the class structure of object-oriented systems. In: Proc. GECCO 2006, pp. 1909–1916 (2006)
O’Keeffe, M., Ó Cinnéide, M.: Towards automated design improvements through combinatorial optimization. In: Workshop on Directions in Software Engineering Environments – 26th ICSE, pp. 75–82 (2004)
O’Keeffe, M., Ó Cinnéide, M.: Getting the most from search-based refactoring. In: Proc. GECCO 2007, pp. 1114–1120 (2007)
Harman, M., Tratt, L.: Pareto optimal search based refactoring at the design level. In: Proc. GECCO 2007, pp. 1106–1113 (2007)
Amoui, M., Mirarab, S., Ansari, S., Lucas, C.: A genetic algorithm approach to design evolution using design pattern transformation. International Journal of Information Technology and Intelligent Computing 1, 235–245 (2006)
Räihä, O.: Genetic Synthesis of Software Architecture, University of Tampere, Department of Computer Sciences, Licentiate thesis (2008)
Sahraoui, H.A., Godin, R., Miceli, T.: Can metrics help bridging the gap between the improvement of OO design quality and its automation? In: Proc. ICSM 2000, pp. 154–162 (2000)
Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Transactions on Software Engineering 20(6), 476–492 (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Räihä, O., Koskimies, K., Mäkinen, E. (2008). Genetic Synthesis of Software Architecture. In: Li, X., et al. Simulated Evolution and Learning. SEAL 2008. Lecture Notes in Computer Science, vol 5361. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89694-4_57
Download citation
DOI: https://doi.org/10.1007/978-3-540-89694-4_57
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-89693-7
Online ISBN: 978-3-540-89694-4
eBook Packages: Computer ScienceComputer Science (R0)