Advertisement

Specifying and prototyping: Some thoughts on why they are successful

  • Daniel M. Berry
  • Jeannette M. Wing
Colloquium On Software Engineering Concepts And Methods In Software Development
Part of the Lecture Notes in Computer Science book series (LNCS, volume 186)

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.

Keywords

Working Paper Rapid Prototype Specification Language Production Version Type Check 
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

  1. [Ala84]
    Alavi, M., “An Assessment of the Prototyping Approach to Information Systems Development,” CACM 27:6, June, 1984.Google Scholar
  2. [Bac78]
    Backus, J., “Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs,” CACM, 21:8, Aug., 1978.Google Scholar
  3. [BGW82]
    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.Google Scholar
  4. [BGS84]
    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.Google Scholar
  5. [Boe81]
    Boehm, B.W., Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ, 1981.Google Scholar
  6. [Bro75]
    Brooks, F.P., Jr., The Mythical Man Month, Essays on Software Engineering, Addison-Wesley, Reading, MA, 1975.Google Scholar
  7. [BKMZ84]
    Budde, R., Kuhlenkamp, K., Mathiassen, L., and Züllighoven, H. (Eds.), Approaches to Prototyping, Springer-Verlag, Berlin, 1984.Google Scholar
  8. [CCI81]
    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.Google Scholar
  9. [CL76]
    Chmura, L.J. and Ledgard, H.F., COBOL with Style, Programming Proverbs, Heyden, Rochelle Pk., NJ, 1976.Google Scholar
  10. [CO84]
    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.Google Scholar
  11. [CM81]
    Clocksin, W.F., and Mellish, C.S., Programming in Prolog, Springer-Verlag, Berlin, 1981.Google Scholar
  12. [Dav82]
    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.Google Scholar
  13. [DLP79]
    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.Google Scholar
  14. [Fea82]
    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.Google Scholar
  15. [Flo84]
    Floyd, C., “A Systematic Look at Prototyping,” in [BKMZ84], pp. 1–18, 1984.Google Scholar
  16. [Fra83]
    Fraim, L.J. “SCOMP: A Solution to the MLS Problem,” Computer 16:7, July, 1983.Google Scholar
  17. [FG83]
    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.Google Scholar
  18. [GM82]
    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.Google Scholar
  19. [GT79]
    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.Google Scholar
  20. [Gyp78]
    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.Google Scholar
  21. [GSS82]
    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.Google Scholar
  22. [GHW82]
    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.Google Scholar
  23. [GH83]
    Guttag, J.V., and Horning, J.J., “An Introduction to the Larch Shared Language,” Proceedings IFIP Congress 1983, Paris, 1983.Google Scholar
  24. [GH80]
    Guttag, J.V., and Horning, J.J., “Formal Specification as a Design Tool,” Proceedings Principles of Programming Languages Conference, Las Vegas, 1980.Google Scholar
  25. [Hen79]
    Heninger, K.L. “Specifying Software Requirements for Complex Systems: New Techniques and Their Application,” Proceedings Conference on Specifications of Reliable Software, Boston, 1979.Google Scholar
  26. [HAK83]
    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.Google Scholar
  27. [HH82]
    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.Google Scholar
  28. [Orl84]
    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.Google Scholar
  29. [KE83]
    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.Google Scholar
  30. [Ker82]
    Kernighan, B.W., “A Typesetter-independent TROFF,” Computing Science Technical Report No. 97, Bell Laboratories, Murray Hill, NJ, 1982.Google Scholar
  31. [KP74]
    Kernighan, B.W. and Plauger, P.J., The Elements of Programming Style, McGraw-Hill, New York, 1974.Google Scholar
  32. [KK82]
    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.Google Scholar
  33. [KS84]
    Kruchten, P., and Schonberg, E., “The Ada/Ed System: A Large-Scale Experiment in Software Prototyping Using SETL,” in [BKMZ84], pp. 398–415, 1984.Google Scholar
  34. [Lan83]
    Landwehr, C.E., “The Best Available Technologies for Computer Security,” Computer 16:7, July, 1983.Google Scholar
  35. [LHN79]
    Ledgard, H.F., Hueras, J.F., and Nagin, P.A., Pascal with Style, Programming Proverbs, Heyden, Rochelle Pk., NJ, 1979.Google Scholar
  36. [Les83]
    Lescanne, P., “Computer Experiments with the REVE Term Rewriting system Generator,” Proceedings of Tenth Symposium on Principles of Programming Languages, Austin, TX, Jan., 1983.Google Scholar
  37. [Hdm79]
    Levitt, K.N., Robinson, L., and Silverberg, B.A., “The HDM Handbook,” Vols. 1–3, SRI International, Menlo Pk., CA, 1979.Google Scholar
  38. [Ina80]
    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.Google Scholar
  39. [Mac82]
    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.Google Scholar
  40. [MG83]
    McMullin, P.R., and Gannon, J.D., “Combining Testing with Formal Specifications: A Case Study,” IEEE-TSE, SE-9:3, May, 1983.Google Scholar
  41. [MS82]
    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.Google Scholar
  42. [Mye78]
    Myers, G.J., Composite/Structured Design, Van Nostrand Reinhold, New York, 1979.Google Scholar
  43. [NCC??]
    “Programmer's Reference Manual for S-PORT SIMULA 67 System, Norwegian Computing Center, (data cannot be determined from document).Google Scholar
  44. [Par72]
    Parnas, D.L., “On the Criteria to be Used in Decomposing Systems into Modules,” CACM, 15:2, Dec., 1972.Google Scholar
  45. [RS82]
    Rees, D.J., “The Kernel of the EMAS 2900 Operating System,” Software—Practice and Experience 12, 655–667, 1982.Google Scholar
  46. [SRSY77]
    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.Google Scholar
  47. [SYRS80]
    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.Google Scholar
  48. [Smo82]
    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.Google Scholar
  49. [Pro82]
    “Special Issue on Rapid Prototyping, Working Papers from the ACM SIGSOFT Rapid Prototyping Workshop,” SOFTWARE ENGINEERING NOTES 7:5, Dec., 1982.Google Scholar
  50. [Sta81]
    Stahl, S., “LSI GUARD System Specification (Type A),” MTR-8452, MITRE Corp., Bedford, MA, Oct., 1981.Google Scholar
  51. [SW82]
    Sutton, S.A. and Wilut, C.K., “COS/NFE Functional Description,” DTI Document 389, Compion Corp., Champaign, IL, Nov., 1982.Google Scholar
  52. [Tei84]
    Teitelman, W., “A Tour Through Cedar,” Proceedings of the Seventh International Conference on Software Engineering, Orlando, FL, May, 1984.Google Scholar
  53. [Uni81]
    “The UNIX Programmer's Manual,” Bell Telephone Laboratories, Murray Hill, NJ, June, 1981.Google Scholar
  54. [Aff81]
    Thompson, D.H. and Erickson, R.W. (Eds.), “AFFIRM Reference Manual,” USC Information Sciences Institute, Marina Del Rey, CA, Feb., 1981.Google Scholar
  55. [Win80]
    Wing, J.M., “Experience with Two Examples: A Household Budget and Graphs,” USC/ISI Affirm Memo-30-JMW, Aug., 1980.Google Scholar
  56. [Win84]
    Wing, J.M., “Helping Specifiers Evaluate Their Specifications,” Proceedings Second International Conference on Software Engineering, AFCET, Nice, France, June, 1984.Google Scholar
  57. [Zav82]
    Zave, P., “An Operational Approach to Requirements Specification for Embedded Systems,” IEEETSE, SE-8:3, May, 1982.Google Scholar
  58. [Zav84]
    Zave, P., “The Operational Versus the Conventional Approach to Software Development,” CACM, 27:2, Feb., 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • Daniel M. Berry
    • 1
    • 2
  • Jeannette M. Wing
    • 1
    • 2
  1. 1.Computer Science DepartmentUniversity of CaliforniaLos AngelesUSA
  2. 2.Computer Science DepartmentUniversity of Southern CaliforniaLos AngelesUSA

Personalised recommendations