Summary
Software evolution is an effort-prone activity, and requires developers to make complex and difficult decisions. This entails the development of automated approaches to support various software evolution-related tasks, for example aimed at suggesting refactoring or remodularization actions. Finding a solution to these problems is intrinsically NP-hard, and exhaustive approaches are not viable due to the size and complexity of many software projects. Therefore, during recent years, several software-evolution problems have been formulated as optimization problems, and resolved with meta-heuristics.
This chapter overviews how search-based optimization techniques can support software engineers in a number of software evolution tasks. For each task, we illustrate how the problem can be encoded as a search-based optimization problem, and how meta-heuristics can be used to solve it. Where possible, we refer to some tools that can be used to deal with such tasks.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Bavota, G., Di Penta, M., Oliveto, R. (2014). Search Based Software Maintenance: Methods and Tools. In: Mens, T., Serebrenik, A., Cleve, A. (eds) Evolving Software Systems. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45398-4_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-45398-4_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45397-7
Online ISBN: 978-3-642-45398-4
eBook Packages: Computer ScienceComputer Science (R0)