Software change through design maintenance
- 23 November 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 250-259
- https://doi.org/10.1109/icsm.1997.624252
Abstract
Conventional software engineering tends to focus on a small part of the software life cycle: the design and implementation of a product. The bulk of the lifetime cost is in the maintenance phase, where one must live with the product previously developed. Presently, we have little theory and fewer tools to help us manage the maintenance activity. We contend that a fundamental cause of the difficulty is the failure to preserve design information. This results from an over preoccupation with the synthesis and maintenance of code. We offer an alternative paradigm: make the design the central focus of the construction process-get code as a byproduct; make the design the central focus of the maintenance process-preserve revised designs and get code as a byproduct. A transformational scheme for accomplishing this is presented. We call it the Design Maintenance System. The programming roles change radically from coding instances for ill defined specifications to specifiers of functionality and (compiler like) implementation methods. Specification and implementation method debugging would then become prominent activities. The design scheme and change management procedures are illustrated with a simple data processing application. We sketch an ongoing implementationKeywords
This publication has 10 references indexed in Scilit:
- The Maintainer's Assistant (software tool)Published by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Software lifetime and its evolution process over generationsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Delphi study of software maintenance problemsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Programming through disciplined modificationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1994
- Design maintenance systemsCommunications of the ACM, 1992
- Efficiently computing static single assignment form and the control dependence graphACM Transactions on Programming Languages and Systems, 1991
- Specification and Transformation of ProgramsPublished by Springer Nature ,1990
- Program translation via abstraction and reimplementationIEEE Transactions on Software Engineering, 1988
- TMM: Software Maintenance by TransformationIEEE Software, 1986
- Program developmentsCommunications of the ACM, 1983