Memetic Algorithms for the Automatic Discovery of Software Architectures
Designing complex software systems involves making choices. Particularly in the early stages, software architects need to consider a wide range of design alternatives in order to satisfactorily meet all the requirements. Search techniques like evolutionary algorithms can support them to better explore these choices, requiring the resolution of the formulated search problem under the guidance of software metrics. Aspects like the system complexity and the diversity of metrics have a significant impact on the algorithm performance. Therefore, trying to improve its effectiveness by combining it with local search techniques represents an interesting option to fine tune the returned results. However, designing this kind of hybrid approaches, a.k.a. memetic algorithms, pose new challenges such as determining where these improvements should be located within the evolutionary process. Two memetic approaches are proposed with the aim of analysing and comparing their performance when dealing with a complex problem like the discovery of software architectures.
KeywordsSearch-based software engineering Memetic algorithm Software architecture Local search
- 1.Harman, M.: The role of artificial intelligence in software engineering. In: 1st International Workshop on Realizing AI Synergies in Software Engineering, pp. 1–6. IEEE Press, Piscataway (2012)Google Scholar
- 3.Mucientes, M., Lama, M., Couto, M.I.: A genetic programming-based algorithm for composing web services. In: 9th International Conference on Intelligent Systems Design and Applications, pp. 379–384. IEEE (2009)Google Scholar
- 4.Mahdavi, K., Harman, M., Hierons, R.M.: A multiple hill climbing approach to software module clustering. In: International Conference on Software Maintenance, pp. 315–324. IEEE Computer Society, Washington (2003)Google Scholar
- 9.Smith, J., Simons, C.L.: A comparison of two memetic algorithms for software class modelling. In: 15th Annual Conference on Genetic and Evolutionary Computation, pp. 1485–1492. ACM, New York (2013)Google Scholar