Skip to main content

SBSE Meets Software Maintenance: Achievements and Open Problems

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7515))

Abstract

Software maintenance is, together with testing, one of the most critical and effort-prone activities in software development. Surveys conducted in the past [4] have estimated that up to 80% of the overall software development cost is due to maintenance activities. For such a reason, automated techniques aimed at supporting developers in their daunting tasks are highly appealing. Problems developers often face off include understanding undocumented software, improving the software design and source code structure to ease future maintenance tasks, and producing patches to fix bugs.

Finding a solution for the aforementioned problems is intrinsically NP-Hard, and therefore such problems are not tractable with conventional algorithmic techniques; this is particularly true in presence of very complex and large software systems. For this reason, search-based optimization techniques have been—and currently are—successfully applied to deal with all the aforementioned problems. Noticeable examples of successful applications of search-based software engineering (SBSE) to software maintenance include software modularization [2], software refactoring [3], or automated bug fixing [1].

Despite the noticeable achievements, there are still crucial challenges researchers have to face-off. First, software development is still an extremely human-centric activity, in which many decisions concerning design or implementation are really triggered by personal experience, that is unlikely to be encoded in heuristics of automated tools. Automatically-generated solutions to maintenance problems tend very often to be meaningless and difficult to be applied in practice. For this reason, researchers should focus their effort in developing optimization algorithms—for example Interactive Genetic Algorithms [5]—where human evaluations (partially) drive the production of problem solutions. This, however, requires to deal with difficulties occurring when involving humans in the optimization process: human decisions may be inconsistent and, in general, the process tend to be fairly expensive in terms of required effort.

A further challenge where SBSE meets software maintenance concerns systems which necessitate rapid reconfigurations at run-time, e.g., highly dynamic service-oriented architectures, or autonomic systems. If, on the one hand, such reconfigurations imply complex decisions where the space of possible choices is high, on the other hand such decisions have to be taken in a very short time. This implies a careful choice and performance assessment of the search-based optimization techniques adopted, aspect that is often not particularly considered when search-based optimization techniques are applied offline, e.g. for test data generation or for software modularization.

Last, but not least, many modern software systems—open source and not only—are part of large and complex software ecosystems where the evolution of a component might impact others, e.g., by creating incompatibilities from a technical or even legal point of view. Also in this case, SBSE has a great potential to support the explore such large spaces of software configurations.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Le Goues, C., Nguyen, T., Forrest, S., Weimer, W.: Genprog: A generic method for automatic software repair. IEEE Trans. Software Eng. 38(1), 54–72 (2012)

    Article  Google Scholar 

  2. Mitchell, B.S., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE Trans. Software Eng. 32(3), 193–208 (2006)

    Article  Google Scholar 

  3. O’Keeffe, M.K., Cinnéide, M.Ó.: Search-based refactoring for software maintenance. Journal of Systems and Software 81(4), 502–516 (2008)

    Article  Google Scholar 

  4. Standish: The scope of software development project failures. Tech. rep., The Standish Group, Dennis, MA (1995), http://www.standishgroup.com/chaos.html

  5. Takagi, H.: Interactive evolutionary computation: Fusion of the capacities of ec optimization and human evaluation. Proceedings of the IEEE 89(9), 1275–1296 (2001)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Di Penta, M. (2012). SBSE Meets Software Maintenance: Achievements and Open Problems. In: Fraser, G., Teixeira de Souza, J. (eds) Search Based Software Engineering. SSBSE 2012. Lecture Notes in Computer Science, vol 7515. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33119-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-33119-0_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-33118-3

  • Online ISBN: 978-3-642-33119-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics