Software aging

In software engineering, software aging is the tendency for software to fail or cause a system failure after running continuously for a certain time, or because of ongoing changes in systems surrounding the software. Software aging has several causes, including the inability of old software to adapt to changing needs or changing technology platforms, and the tendency of software patches to introduce further errors. As the software gets older it becomes less well-suited to its purpose and will eventually stop functioning as it should. Rebooting or reinstalling the software can act as a short-term fix.[1] A proactive fault management method to deal with the software aging incident is software rejuvenation. This method can be classified as an environment diversity technique that usually is implemented through software rejuvenation agents (SRA).

The phenomenon was first identified by David Parnas, in an essay that explored what to do about it:[2]

"Programs, like people, get old. We can't prevent aging, but we can understand its causes, take steps to limit its effects, temporarily reverse some of the damage it has caused, and prepare for the day when the software is no longer viable."[3]

From both an academic and industrial point of view, the software aging phenomenon has increased. Recent research has focussed on clarifying its causes and effects.[4] Memory bloating and leaking, along with data corruption and unreleased file-locks are particular causes of software aging.

  1. ^ Shereshevsky, M.; Crowell, J.; Cukic, B.; Gandikota, V.; Yan Liu (2003). "Software aging and multifractality of memory resources". 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings. pp. 721–730. doi:10.1109/DSN.2003.1209987. ISBN 978-0-7695-1952-4. S2CID 18697750.
  2. ^ Parnas, D.L. (1994). "Software aging". Proceedings of 16th International Conference on Software Engineering. pp. 279–287. doi:10.1109/ICSE.1994.296790. ISBN 978-0-8186-5855-6. S2CID 790287.
  3. ^ "Software Aging | the morning paper". 2014-10-14. Retrieved 2024-02-12.
  4. ^ Grottke, Michael; Matias, Rivalino; Trivedi, Kishor S. (2008). "The fundamentals of software aging". 2008 IEEE International Conference on Software Reliability Engineering Workshops (ISSRE WKSP). pp. 1–6. doi:10.1109/ISSREW.2008.5355512. ISBN 978-1-4244-3416-9. S2CID 11527276.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne