An approach for semi-automated design of software architecture is proposed. The approach makes use of a search-based architecture synthesis technique exploiting genetic algorithms. An interactive process of software architecture design is proposed, where the automatic search-based generation of architectural fragments interleaves with the decisions of a human architect. To support such a process, tool mechanisms are proposed and implemented. The approach is studied using a sample system, whose architecture is designed following the interactive process model.
1. Parish, Y. I. H. and Muller, P. Procedural modeling of cities. ACM SIGGRAPH 2001, Los Angeles, August 2001, 301–308.
2. Diaz-Pace, A., Kim, H., Bass, L., Bianco, P., and Bachmann, F. Integrating quality-attribute reasoning frameworks in the ArchE design assistant. In Proceedings of the 4th International Conference on Quality of Software-Architectures: Models and Architectures. Springer LNCS, 2008, 171–188.
3. Räihä, O. A survey on search-based software design. Computer Sci. Rev., 2010, 4, 203–249.
4. Quaum, F. and Heckel, R. Local search-based refactoring as graph transformation. In Proceedings of the 1st Symposium on Search-Based Software Engineering. 2009, 43–46.
5. Harman, M. and Tratt, L. Pareto optimal search based refactoring at the design level. In Proceedings of GECCO’07. 2007, 1106–1113.
6. Seng, O., Bauyer, M., Biehl, M., and Pache, G. Search-based improvement of subsystem decomposition. In Proceedings of GECCO’05. 2005, 1045–1051.
7. Bowman, M., Brian, L. C., and Labiche, Y. Solving the Class Responsibility Assignment Problem in Object-Oriented Analysis with Multi-Objective Genetic Algorithms. Technical report, Carleton University, 2007.
8. Amoui, M., Mirarab, S., Ansari, S., and Lucas, C. A GA approach to design evolution using design pattern transformation. Int. J. Inf. Technol. Intell. Comput., 2006, 1, 235–245.
9. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns – Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
10. Räihä, O., Hadaytullah, Koskimies, K., and Mäkinen, E. Synthesizing architecture from requirements: a genetic approach. In Relating Software Requirements and Architecture, Ch. 18 (Avgeriou, P., Grundy, J., Hall, J. G., Lago, P., and Mistrik, I., eds). Springer-Verlag, 2011, 307–331.
11. Räihä, O., Koskimies, K., and Mäkinen, E. Genetic synthesis of software architecture. In Proceedings of SEAL’08. Springer LNCS, 2008, 565–574.
12. Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs. Springer, 1992.
13. Mitchell, M. An Introduction to Genetic Algorithms. The MIT Press, 1996.
14. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. Pattern-Oriented Software Architecture: A System of Patterns, vol. 1. John Wiley and Sons, 1996.
15. Chidamber, S. R. and Kemerer, C. F. A metrics suite for object oriented design. IEEE Trans. Software Eng., 1994, 20(6), 476–492.
16. Hadaytullah, Vathsavayi, S., Räihä, O., and Koskimies, K. Tool support for software architecture design with genetic algorithms. In Proceedings of ICSEA’10. IEEE CS Press, August 2010, 359–366.
17. Darwin research project WWW site. http:// practise.cs.tut.fi/project.php?project=darwin (last viewed February 2011).
18. Eclipse WWW site. http://www.eclipse.org (last viewed February 2011).
19. Eclipse’s Model Development Tools WWW site. http://www.eclipse.org/modeling/mdt (last viewed February 2011).
20. Van Heesch, U. and Avgeriou, P. Mature architecting – a survey about the reasoning process of professional architects. In Proceedings of the 9th IEEE/IFIP Working Conference on Software Architecture (WICSA). IEEE Computer Society, 2011, 260–269.
21. Hadaytullah, Räihä, O., and Koskimies, K. Genetic approach to software architecture synthesis with work allocation scheme. In Proceedings of APSEC’10. IEEE CS Press, 2010, 70–79.