Skip to main content
Log in

Understanding and exploring formal specifications

  • Published:
Annals of Software Engineering

Abstract

Formal methods is seen as a means of applying scientific knowledge to software construction, thereby legitimating the use of mathematics within software engineering. However, the software engineering community faces numerous challenges before an effective transfer of this formal methods technology can take place because of the level of skill, expertise and effort required in their application. It is argued that at present the use of formal notations for system specification is a mature technology offering the greatest leverage. The relative benefits of a declarative approach with a “getting it right the first time” maxim versus an imperative approach coupled with an exploratory trial and error flavour are explored. Detailed characteristics of a teaching and learning environment developed to support the latter approach are provided. Its varied uses in the context of teaching and learning within undergraduate and postgraduate courses in software engineering are discussed. Exemplars from these uses show how users of the environment explore formal specifications to improve their understanding of specification and thereby illustrate the effectiveness of the environment. Implications of our approach on technology transfer and training are briefly explored.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  • Abelson, H. and G. Sussman (1985), The Structure and Interpretation of Computer Programs, McGraw-Hill.

  • Balzer, R.M. (1985), “A 15 Year Perspective on Automatic Programming,” IEEE Transactions on Software Engineering 11, 11, 1257–1268.

    Google Scholar 

  • Dahl, O.J., E.W. Dijkstra, and C.A.R. Hoare (1972), Structured Programming, Academic Press, New York.

    Google Scholar 

  • Dijkstra, E.W. (1976), A Discipline of Programming, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Faulk, S. et al. (1992), “The Core Method for Real-Time Requirements,” IEEE Software 9, 5.

  • Ford, G. and H. Gibbs (1996), “Attributes and Goals for a Mature Software Engineering Profession,” In Proceedings of Professional Awareness in Software Engineering, London.

  • GAO, U.S. General Accounting Office (1992), “Mission Critical Systems: Defense Attempting to Address Major Software Challenges,” GAO/IMTEC-93-13.

  • Gladden, G.R. (1982), “Stop the Life-Cycle, I Want to Get off,” ACM SIGSOFT Software Engineering Notes 7, 2.

  • Gries, D. (1981), The Science of Programming, Springer-Verlag, New York, NY.

    Google Scholar 

  • Hoare, C.A.R. (1987), “Laws of Programming,” Communications of the ACM 30, 8.

  • Lutz, R. (1993), “Analysing Software Requirements in Errors in Safety Critical Embedded Systems,” Proc. IEEE Internat. Symp. Requirements Engrg., IEEE CS Press, pp. 126–133.

  • McCracken, D.D. and M.A. Jackson (1981), “A Minority Dissenting Position,” In Systems Analysis and Design – A Foundation for the 1980's, W.W. Cotterman et al., Eds., pp. 551–553.

  • Mills, H.D., M. Dyer, and R.C. Linger (1987), “Cleanroom Software Engineering,” IEEE Software 4, 5, 19–25.

    Google Scholar 

  • Morgan, C. (1987), “Telephone Network,” In Specification Case Studies, I. Hayes, Ed., 1st Edition, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Morgan, C. (1993), “Telephone Network,” In Specification Case Studies, I. Hayes, Ed., 2nd Edition, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Morrey, I., J. Siddiqi, R. Hibberd, and G. Buckberry (1998), “A Toolset to Support the Construction and Animation of Formal Specifications,” Journal of Systems Software 41, 147–160.

    Google Scholar 

  • Nix, C.J. and B.P. Collins (1988), “The Use of Software Engineering Including the Z Notation, in the Development of CICs,” Quality Assurance 14, 3, 103–110.

    Google Scholar 

  • Parnas, D. (1995), “Using Mathematical Descriptions in the Inspection of Safety-Critical Software,” In Applications of Formal Methods, M.G. Hinchey and J.P. Bowen, Eds., Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Place, P.R.H., W. Wood, and M. Tudball (1990), “Survey of Formal Specification Techniques for Reactive Systems,” Software Engineering Institute, CMU/SEI-90-TR-5.

  • Ratcliff, B. and J.I.A. Siddiqi (1985), “An Empirical Investigation into Problem Decomposition Strategies Used in Program Design,” International Journal of Man-Machine Studies 22, 77–90.

    Google Scholar 

  • Saiedman, H. and M. Hinchey (1996), “Challenges in the Successful Transfer of Formal Methods Technology into Industrial Application,” Information and Software Technology 38, 5, 313–321.

    Google Scholar 

  • Sherrell, L.B. and D.L. Carver (1994), “Experiences in Translating Z Designs to Haskell Implementations,” Software – Practice and Experience 24, 12, 1159–1178.

    Google Scholar 

  • Siddiqi, J., I. Morrey, C. Roast, and M. Ozcan (1997), “Towards Quality Requirements via Animated Formal Specifications,” Annals of Software Engineering 3, 131–155.

    Google Scholar 

  • Siddiqi, J.I.A. and B. Ratcliff (1989), “Specifications Influences in Program Design,” International Journal of Man–Machine Studies 31, 393–404.

    Google Scholar 

  • Siddiqi, J.I.A., B. Khazaei, R. Osborn, and C. Roast (1996), “The Pitfalls of Changing Programming Paradigms,” In Empirical Studies of Programmers, Ablex Publishers, Washington.

    Google Scholar 

  • Spivey, J.M. (1989), The Z Notation, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Vienneau, R. (1997), “A Review of Formal Methods,” In Software Requirements Engineering, M. Thayer and R.H. Dorfman, Eds., 2nd Edition, pp. 324–335.

  • Wordsworth, J.B. (1989), “A Z Development Method,” In Proc. of the Workshop on Refinement, The Open University, Milton Keynes.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Siddiqi, J., Morrey, I., Hibberd, R. et al. Understanding and exploring formal specifications. Annals of Software Engineering 6, 411–432 (1998). https://doi.org/10.1023/A:1018977919653

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018977919653

Keywords

Navigation