To know about well-known categories of maintenance tasks and data on their distribution
To be able to discern major causes of maintenance problems
To be aware of reverse engineering, its limitations, and tools to support it
To appreciate different ways in which maintenance activities can be organized
To understand major differences between development and maintenance and the consequences of them
Software maintenance is not limited to the correction of faults. A large part of maintenance deals with accommodating new or changed user requirements and adapting software to a changed environment. It is about evolution, rather than just maintenance. We discuss the various types of maintenance task and how to organize them.
Like living organisms and most natural phenomena, software projects follow a life cycle that starts from emptiness, is followed by rapid growth during infancy, enters a long period of maturity, and then begins a cycle of decay that almost resembles senility.
Software, unlike a child, does not grow smarter and more capable; unfortunately, it does seem to grow old and cranky.
Consider UBank, a multinational bank, a typical large organization that is heavily dependent upon automation for its daily operation. UBank is the result of a number of mergers and takeovers.
UBank has hundreds of offices spread all over the world. It has a number of mainframes at a central site, as well as thousands of workstations ...