Bővebb ismertető
PREFACE
Software maintenance claims an extremely large share of the software dollar and is becoming the most expensive part of the software life cycle. Yet, although there are countless books and courses on systems analysis and design, the very important subject of software maintenance has been almost totally neglected. There is little understanding of what can be done to lessen the crippling maintenance problem.
In fact much can be done. Widespread use of the techniques described in this book would cut the maintenance costs in most organizations to a fraction of what they are today.
To solve the software crisis the tasks of developing, using, and maintaining software must be simplified and automated. Software technologies typically have focused on the development phases of the software life cycle-in short, programming methods and tools. Following the development of high-level programming languages in the early 1960s, the predominant software advance has been the introduction of software engineering, and in particular structured techniques. Unfortunately, we have grossly underestimated the need to change programs and the difficulties of doing so.
The cost of failing to design systems for maintenance is very high. Often this is calculated to be the overt cost of doing the maintenance. There is, however, a hidden cost which is often higher. The system becomes so fragile that programmers and their managers are reluctant to change it. Any change has unforeseen consequences which often cause problems in other parts of the system, annoy users, and consume precious software personnel time.
A fundamental problem with software maintenance is that when a change is made it often introduces unforeseen side effects. Fixing a bug has a great chance of introducing a new bug.
While the worst maintenance stories are nightmares, we should also