Abstract
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.
Work supported by the Spanish Ministry of Economy and Competitiveness, project TIN2014-55252-P, and the Ministry of Education, FPU program (FPU13/01466).
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
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)
Harman, M., Afshin Mansouri, S., Zhang, Y.: Search based software engineering: trends, techniques and applications. ACM Comput. Surv. 45, 1–64 (2012)
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)
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)
Aleti, A., Buhnova, B., Grunske, L., Koziolek, A., Meedeniya, I.: Software architecture optimization methods: a systematic literature review. IEEE Trans. Soft. Eng. 39, 658–683 (2013)
Ramírez, A., Romero, J.R., Ventura, S.: An approach for the evolutionary discovery of software architectures. Inf. Sci. 305, 234–255 (2015)
Krasnogor, N., Smith, J.: A tutorial for competent memetic algorithms: model, taxonomy, and design issues. IEEE Trans. Evol. Comp. 9, 474–488 (2005)
Neri, F., Cotta, C.: Memetic algorithms and memetic computing optimization: A literature review. Swarm Evol. Comput. 2, 1–14 (2012)
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)
Sievi-Korte, O., Erkki, M., Poranen, T.: Simulated annealing for aiding genetic algorithm in software architecture synthesis. Acta Cybernetica 21, 235–265 (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Ramírez, A., Barbudo, R., Romero, J.R., Ventura, S. (2017). Memetic Algorithms for the Automatic Discovery of Software Architectures. In: Madureira, A., Abraham, A., Gamboa, D., Novais, P. (eds) Intelligent Systems Design and Applications. ISDA 2016. Advances in Intelligent Systems and Computing, vol 557. Springer, Cham. https://doi.org/10.1007/978-3-319-53480-0_43
Download citation
DOI: https://doi.org/10.1007/978-3-319-53480-0_43
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-53479-4
Online ISBN: 978-3-319-53480-0
eBook Packages: EngineeringEngineering (R0)