Singer, Carl A. (1989, ASQC) Bell Communications Research, Piscataway, NJ
Although software engineering recognizes change as a major factor in the system development life cycle - a useful approach to managing change is still lacking. In part this is due to the "waterfall" paradigm - some sequence of steps will, if properly followed, result in a good system.
The paper highlights the problem - that systems do not meet requirements and/or are not developed within time and budget constraints - and builds a pragmatic approach to incorporating change into the systems development life cycle. Requirements, specifically, managing changing requirements is the focal point of this effort. Based on the tenet that "Quality is conformance to valid requirements", methods for expressing and analyzing requirements are explored and a change management system is "installed" to facilitate quality.
The change process is explored. Examples are presented to highlight the policy issues and implications.
To build the foundation for a change management system, formal requirements languages and methodologies are reviewed with an emphasis on the analysis that can be done when using formal requirements statement languages. Consistency and completeness analysis are explained, as are other precursors to CASE (computer-aided software engineering) design.
Practical methods for requirements decomposition, tracing and change management are developed. Detailed examples of decomposition and the utility of using decomposition are developed. Similarly, tracing is developed. The use of tracing to help determine the impact of proposed changes is demonstrated.
This paper concludes that good requirements must have both decomposition and traceability, and that a change management system that evaluates the full impact of proposed changes and facilitates acceptable change is vital to quality systems.