In software engineering , software aging refers to progressive performance degradation or a sudden hang/crash of a software system due to exhaustion of operating system resources, fragmentation , and/or accumulation of errors. A proactive fault management method to deal with the software aging phenomenon is software rejuvenation . This method can be classified as an environment diversity technique that usually is implemented through software rejuvenation agents (SRA). The simplest ways to emulate software rejuvenation are to reboot the system or find, close and restart the aging application .
Memory leaks are a potential cause or contributing factor in software aging, as they can exhaust available system memory .