Abstract
Two methods that have been successful in producing good software are 1) specifying and then implementing and 2) prototyping and then implementing. This paper identifies what the two methods have in common, namely that the implementation is the second time through carefully thinking about the problem. It proposes that perhaps this common aspect is more important to the successes of the methods than other aspects of the methods.
© Copyright 1984 by Daniel M. Berry and Jeannette M. Wing
This work was supported in part by the University of California MICRO Program, SDC, A Burroughs Company, and NCR Corporation.
This work was supported in part by the National Science Foundation under Grant No. ECS-8403905.
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.
Bibliography
Alavi, M., “An Assessment of the Prototyping Approach to Information Systems Development,” CACM 27:6, June, 1984.
Backus, J., “Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs,” CACM, 21:8, Aug., 1978.
Balzer, R.M., Goldman, N.M., and Wile, D.S., “Operational Specification as the Basis for Rapid Prototyping,” “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
Boehm, B.W., Gray, T.E., and Seewaldt, T., “Prototyping vs. Specifying: A Multi-Project Experiment,” Proceedings of the Seventh International Conference on Software Engineering, Orlando, FL, May, 1984.
Boehm, B.W., Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ, 1981.
Brooks, F.P., Jr., The Mythical Man Month, Essays on Software Engineering, Addison-Wesley, Reading, MA, 1975.
Budde, R., Kuhlenkamp, K., Mathiassen, L., and Züllighoven, H. (Eds.), Approaches to Prototyping, Springer-Verlag, Berlin, 1984.
CCITT, “Specifications of Signalling System No. 7,” Yellow Book, VI, Fascicle VI-6, Recommendations Q.701–Q.741, 1981. Referenced in [Orl84] by J. Woodcock.
Chmura, L.J. and Ledgard, H.F., COBOL with Style, Programming Proverbs, Heyden, Rochelle Pk., NJ, 1976.
Clemmensen, G.B. and Oest, O.N. “Formal Specification and Development of an Ada Compiler — A VDM Case Study,” Proceedings of the Seventh International Conference on Software Engineering, Orlando, FL, May, 1984.
Clocksin, W.F., and Mellish, C.S., Programming in Prolog, Springer-Verlag, Berlin, 1981.
Davis, A.M. “Rapid Prototyping Using Executable Requirements Specification,” “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
De Millo, R.A., Lipton, R.J., and Perlis, A., “Social Processes and Proofs of Theorems and Programs,” CACM, 22:5, pp. 271–280, 1979.
Feather, M. “Mappings for Rapid Prototyping,” “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
Floyd, C., “A Systematic Look at Prototyping,” in [BKMZ84], pp. 1–18, 1984.
Fraim, L.J. “SCOMP: A Solution to the MLS Problem,” Computer 16:7, July, 1983.
Forgaard, R., and Guttag, J.V., “REVE: A Term Rewriting System Generator with Failure-Resistant Knuth-Bendix,” in Procceedings of an NSF Workshop on the Rewrite Rule Laboratory, September, 1983, J.V. Guttag, D. Kapur, and D.R. Musser, (editors), available as a General Electric Technical Report No. 84GEN008, April, 1984.
Goguen, J.A. and Meseguer, J., “Rapid Prototyping in the OBJ Executable Specification Language,” “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
Goguen, J.A., and Tardo, J., “An Introduction to OBJ: A Language for Writing and Testing Formal Algebraic Program Specifications,” Proceedings Conference on Specifications of Reliable Software, Boston, 1979.
Good, D.I., Cohen, R.M., Hoch, C.G., Hunter, L.W., and Hare, D.F., “Report on the Language Gypsy, Version 2.0,” Tech. Report ICSCA-CMP-10, University of Texas, Austin, Sept., 1978.
Good, D.I., Siebert, A.E., and Smith, L.M., “Message Flow Modulator,” Final Report, Institute for Computing Science TR-34, University of Texas, Austin, Dec., 1982.
Guttag, J.V., Horning, J.J., and Wing, J.M., “Some Notes on Putting Formal Specifications to Productive Use,” Science of Computer Programming, 2:1, Oct., 1982.
Guttag, J.V., and Horning, J.J., “An Introduction to the Larch Shared Language,” Proceedings IFIP Congress 1983, Paris, 1983.
Guttag, J.V., and Horning, J.J., “Formal Specification as a Design Tool,” Proceedings Principles of Programming Languages Conference, Las Vegas, 1980.
Heninger, K.L. “Specifying Software Requirements for Complex Systems: New Techniques and Their Application,” Proceedings Conference on Specifications of Reliable Software, Boston, 1979.
Hinke, T., Althouse, J., and Kemmerer, R.A., “SDC Secure Release Terminal Project,” Proceedings of the 1983 Symposium on Security and Privacy, Oakland, CA, April, 1983.
Hooper, J.W. and Hsia, P., “Scenario-Based Prototyping for Requirements Identification,” “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
International Workshop on Models and Languages for Software Specification and Design, Orlando, Florida, Workshop Notes, R.G. Babb and A. Mili, editors, Département d'Informatique, Université Laval, Québec, DIUL-RR-8408, March, 1984.
Kemmerer, R.A. and Eckmann, S.T., “A User's Manual for the UNISEX System,” Department of Computer Science, UCSB, Santa Barbara, CA, Dec., 1983.
Kernighan, B.W., “A Typesetter-independent TROFF,” Computing Science Technical Report No. 97, Bell Laboratories, Murray Hill, NJ, 1982.
Kernighan, B.W. and Plauger, P.J., The Elements of Programming Style, McGraw-Hill, New York, 1974.
Klausner, A. and Konchan, T.E., “Rapid Prototyping and Requirements Specification Using PDS,” “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
Kruchten, P., and Schonberg, E., “The Ada/Ed System: A Large-Scale Experiment in Software Prototyping Using SETL,” in [BKMZ84], pp. 398–415, 1984.
Landwehr, C.E., “The Best Available Technologies for Computer Security,” Computer 16:7, July, 1983.
Ledgard, H.F., Hueras, J.F., and Nagin, P.A., Pascal with Style, Programming Proverbs, Heyden, Rochelle Pk., NJ, 1979.
Lescanne, P., “Computer Experiments with the REVE Term Rewriting system Generator,” Proceedings of Tenth Symposium on Principles of Programming Languages, Austin, TX, Jan., 1983.
Levitt, K.N., Robinson, L., and Silverberg, B.A., “The HDM Handbook,” Vols. 1–3, SRI International, Menlo Pk., CA, 1979.
Locasso, R., Scheid, J., Schorre, D.V., and Eggert, P.R., “The Ina Jo Reference Manual,” TM-(L)-6021/001/000, System Development Corporation, 1980.
MacEwan, G.H., “Specification Prototyping,” “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
McMullin, P.R., and Gannon, J.D., “Combining Testing with Formal Specifications: A Case Study,” IEEE-TSE, SE-9:3, May, 1983.
Melliar-Smith, P.M., and Schwartz, R.L., “Formal Specification and Mechanical Verification of SIFT: A Fault-Tolerant Flight Control System,” IEEE Transactions on Computers, C-31:7, July, 1982.
Myers, G.J., Composite/Structured Design, Van Nostrand Reinhold, New York, 1979.
“Programmer's Reference Manual for S-PORT SIMULA 67 System, Norwegian Computing Center, (data cannot be determined from document).
Parnas, D.L., “On the Criteria to be Used in Decomposing Systems into Modules,” CACM, 15:2, Dec., 1972.
Rees, D.J., “The Kernel of the EMAS 2900 Operating System,” Software—Practice and Experience 12, 655–667, 1982.
Shelness, N.H., Rees, D.J., Stephens, P.D., and Yarwood, J.K., “An Experiment in Doing it Again, But Very Well This Time,” CSR-18-77 Department of Computer Science, University of Edinburgh, December, 1977.
Stephens, P.D., Yarwood, J.K., Rees, D.J., and Shelness, N.H., “The Evolution f the Operating System EMAS 2900”, Software—Practice and Experience 10, 993–1008, 1980.
Smoliar, S.W., “Approaches to Executable Specifications,” “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
“Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.
Stahl, S., “LSI GUARD System Specification (Type A),” MTR-8452, MITRE Corp., Bedford, MA, Oct., 1981.
Sutton, S.A. and Wilut, C.K., “COS/NFE Functional Description,” DTI Document 389, Compion Corp., Champaign, IL, Nov., 1982.
Teitelman, W., “A Tour Through Cedar,” Proceedings of the Seventh International Conference on Software Engineering, Orlando, FL, May, 1984.
“The UNIX Programmer's Manual,” Bell Telephone Laboratories, Murray Hill, NJ, June, 1981.
Thompson, D.H. and Erickson, R.W. (Eds.), “AFFIRM Reference Manual,” USC Information Sciences Institute, Marina Del Rey, CA, Feb., 1981.
Wing, J.M., “Experience with Two Examples: A Household Budget and Graphs,” USC/ISI Affirm Memo-30-JMW, Aug., 1980.
Wing, J.M., “Helping Specifiers Evaluate Their Specifications,” Proceedings Second International Conference on Software Engineering, AFCET, Nice, France, June, 1984.
Zave, P., “An Operational Approach to Requirements Specification for Embedded Systems,” IEEETSE, SE-8:3, May, 1982.
Zave, P., “The Operational Versus the Conventional Approach to Software Development,” CACM, 27:2, Feb., 1984.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1985 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Berry, D.M., Wing, J.M. (1985). Specifying and prototyping: Some thoughts on why they are successful. 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_8
Download citation
DOI: https://doi.org/10.1007/3-540-15199-0_8
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