Abstract
Software Engineers have been searching for the ideal software development process: a process in which programs are derived from specifications in the same way that lemmas and theorems are derived from axioms in published proofs. After explaining why we can never achieve it, this paper describes such a process. The process is described in terms of a sequence of documents that should be produced on the way to producing the software. We show that such documents can serve several purposes. They provide a basis for preliminary design review, serve as reference material during the coding, and guide the maintenance programmer in his work. We discuss how these documents can be constructed using the same principles that should guide the software design. The resulting documentation is worth much more than the "afterthought" documentation that is usually produced. If we take the care to keep all of the documents up-to-date, we can create the appearance of a fully rational design process.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Britton, K.H., Clements, P., Parnas, D.L., Weiss, D. Interface Specifications for the A-7E (SCR) Extended Computer Module; NRL Memorandum Report 4843, Jan. 1983.
Britton, K.H., Parker, R.A. and Parnas, D.L. "A Procedure for Designing Abstract Interfaces for Device-Interface Modules", Proceedings of the Fifth International Conference on Software Engineering, 1981.
Britton, K.H. and Parnas, D.L. A-7E Software Module Guide, NRL Memorandum Report 4702, December 1981.
Brooks, F.P. Jr. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley Publishing Company, 1975.
Clements, P., Parker, A., Parnas, D.L., Shore, J. and Britton, K. A Standard Organization for Specifying Abstract Interfaces, NRL Report 8815, 14 June 1984.
Clements, P., Parnas, D. and Weiss, D. "Enhancing Reusability with Information Hiding", Proceedings of a Workshop on Reusability in Programming, pp. 240–247, Sept. 1983
Elovitz, Honey S. "An Experiment in Software Engineering: The Architecture Research Facility as a Case Study", Proceedings of the Fourth International Conference on Software Engineering, Sept. 1979.
Heninger, K.L. "Specifying Software Requirements for Complex Systems: New Techniques and their Application", IEEE Transactions on Software Engineering, vol. SE-6, pp. 2–13, Jan. 1980.
Heninger, K., Kallander, J., Parnas, D.L. and Shore, J. Software Requirements for the A-7E Aircraft, NRL Memorandum Report 3876, 27 November, 1978.
Linger, R.C., Mills, H.D., Witt, B.I. Structure Programming: Theory and Practice, Addison-Wesley Publishing Company, 1979.
Parker, A., Heninger, K., Parnas, D. and Shore, J. Abstract Interface Specifications for the A-7E Device Interface Module, NRL Memorandum Report 4385, 20 November, 1980.
Parnas, D.L. "On the Design and Development of Program Families", IEEE Transactions on Software Engineering, Vol. SE-2, No. 1, March, 1976.
Parnas, D.L. "Designing Software for Extension and Contraction", Proceedings of the Third International Conference on Software Engineering, pp. 264–277, 10–12 May, 1978.
Parnas, D.L. An Alternative Control Structure and its Formal Definition, Technical Report FSD-81-0012, Federal Systems Division, IBM Corporation, Bethesda, MD, 1981.
Parnas, D.L., Clements, P. and Weiss, D. "The Modular Structure of Complex Systems", Proceedings of the Seventh International Conference on Software Engineering pp. 408–417, March 1984.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1985 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Parnas, D.L., Clements, P.C. (1985). A rational design process: How and why to fake it. In: Ehrig, H., Floyd, C., Nivat, M., Thatcher, J. (eds) Formal Methods and Software Development. TAPSOFT 1985. Lecture Notes in Computer Science, vol 186. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-15199-0_6
Download citation
DOI: https://doi.org/10.1007/3-540-15199-0_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-15199-9
Online ISBN: 978-3-540-39307-8
eBook Packages: Springer Book Archive