Software aging

from Wikipedia, the free encyclopedia

For software , software aging is the equivalent of material fatigue . Contrary to popular belief, software is also subject to a special kind of aging. It has no wear and tear, as it consists only of digital data, but it still has a limited life expectancy.

David Parnas first researched software aging in 1994.

Reasons for aging

Over time, the software environment changes . New techniques, requirements and formats have emerged that were not fully known or could not be predicted during development. Inadequate adaptation to these circumstances can lead to problems, errors or simply to reduced use of the program, in extreme cases to the point that the program can no longer be run.

On the other hand, it is precisely these necessary adjustments, bug fixes , expansions of the functional scope or other changes that often lead to an unstructured program, a confusing source code and to new errors; these are exactly the characteristics of software aging.


Probably the best-known examples were the year 2000 problem , the introduction of the new postcodes and, to a certain extent, the introduction of the euro .

In the year 2000 the basic problem arose that many programs only worked with two-digit year numbers, but here the 00 for 2000 would have been smaller than the 99 of the previous year, although the year was actually larger. In this context, many programs had to be checked and adapted, and many had to be replaced by new software.

During the reform of the postcode system triggered by German reunification, there was not only the problem of having to update the existing data, but also that the new postcode with five digits was one digit longer than the previously used postcodes. In addition, the generated documents had to be adapted regularly.

When the euro was introduced, the situation was different, as work with different currencies was often already included in the scope of the software. There was only a need for change in programs that worked exclusively with one currency and had to be able to make overlapping calculations during the transition phase between the introduction of the euro as book money and cash.

The MS-DOS operating system was still under the old Microsoft Windows versions . However, newer Windows versions have been almost completely rewritten to change the underlying architecture. Such new beginnings can be observed in many projects. They often result from the underlying source code being too "old" to revise and a complete restart seems more efficient.

Extension of the lifetime

However, you are not unconditionally exposed to software aging and you can consciously extend the life of a software. The software development with object orientation that is customary today, which ultimately leads to each function representing its own self-contained module, is particularly suitable for this.

Another possibility is a longer design phase, in which it is consciously considered which functions the software will have or which options can be used later. Subsequent changes can then be incorporated well, as they were planned in advance. In many cases, however, such considerations are counterproductive, as it will only become clear later which functions and possibilities the software should offer. The Agile Software Development therefore preferred a design that is easy to change, compared to a design that already anticipates the future. Easily changeable design is achieved by avoiding technical debts in software design, for example by avoiding overly complex code and design, close coupling or cyclical dependencies of the components.

Individual restoration work can also help. There is always the option of building in new code just in time for it to work, or redesigning parts of the software to better embed new functions.

Dependence on the manufacturer

The aging of the software means that the user is also dependent on changes to the software. In the case of proprietary software, this can only be supplied by the original manufacturer, so the user is dependent on it even after the purchase. With open source software , there is no compelling dependency on a specific manufacturer.

Since you are tied to the manufacturer by the updates, the illegal use of software is made more difficult, as you also need a way to get the software updates. For example, with Microsoft Windows , some updates are limited to registered users.



David Lorge Parnas : Software Aging . In: International Conference on Software Engineering . IEEE Computer Society Press, Sorrento, Italy 1994, ISBN 0-8186-5855-X , pp. 279–287 ( PDF, 789 K , lecture: PDF, 168 K ).