Abstract :
Summary form only given. Conventional software maintenance is difficult because it is often performed using only source code as a source of design information. Rediscovery of essential design information and assumptions is difficult, if not impossible, from just the code. The author believes that emphasis should rather be placed on capturing and maintaining the design of a program, with source code being derived directly from the design. This approach ensures that the design is retained, rather than the source code. A design maintenance system captures the specification of a program, how the implementation is derived from the specification, and the justification showing why the implementation satisfies the specification, and allows that design to be updated. To make specifications, derivations and justifications concrete, he chose to build a DMS in a formal transformational context. He defines maintenance deltas, which specify a desired change to a program. Delta propagation procedures revise and rearrange the derivation and design histories to remove useless parts. He shows how these procedures integrate into a transformation system to effect repair on the cauterised design history. The end result of the process is another complete design history, from which a program may be generated, and to which another maintenance delta may be applied