Skip to main content
Log in

Pinnacles of software engineering: 25 years of formal methods

  • Published:
Annals of Software Engineering

Abstract

In this invited paper we review 25 years of propagating formal specification in software engineering. We will do so through outlining a paradigmatic approach to the practice of software engineering. For the sake of contrasting argument we shall claim that this approach stands in sharp contrast to classical engineering – and that there is little help to be obtained from classical engineering in securing the quality of the most important facets of software engineering! We shall be outlining a software engineering* practice in which formal techniques are applied in capturing the application domain void of any reference to requirements let alone software; and in then capturing requirements: Domain requirements (projected, instantiated, possibly extended and usually initialised from domain descriptions), interface requirements and machine requirements. The software engineering practice then goes on to design the software: First the architecture, then the program structure, etc. Throughout abstraction and modelling, hand‐in‐hand, are used in applicative (functional), imperative and process oriented descriptions, from loose specifications towards concrete, instantiated descriptions, using hierarchical as well as configurational modelling, denotational as well as computational modelling, and in structuring even small scale descriptions using appropriate modularisation concepts: Schemes, classes and objects. All the concepts spelled in this font are software engineering “program” description notions that have been honed over the years, starting in 1973 with VDM [Bekić et al. 1974; Bjørner and Jones 1978, 1982b] and continuing with RAISE [Group 1992, 1995]. The current status of our approach to software engineering, based on extensive, but not exclusive use of formal techniques, developed significantly during my years as UN Director of the UN University's International Institute for Software Technology (UNU/IIST) in Macau, 1992–1997. Many large scale software developments based on the domain/requirements/software design paradigm outlined here were systematically applied to the experimental development of software designs for the computing support of a number of diverse infrastructure components**. Special boxes, scattered throughout the text, highlight ‘pinnacle’ contribution by named computer and computing scientists as well as by specific R&D projects.

*The text high‐lighted in ‘this font’ identifies important software development principles and techniques – the main contribution and subject of this quarter century overview.

**Railways [Bjørner et al. 1997; George 1995], financial service institutions [Bjørner 1997; Bjørner et al. 1998], manufacturing [Bjørner 1996; Janowski 1996; Janowski and Acebedo 1996; Janowski and Atienza 1997], ministry of finance [Dung et al. 1996; George et al. 1995], airlines [Anh and More 1996], air traffic [Bjørner 1995], etc.

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

  • Abadi, M. and L. Cardelli (1996), A Theory of Objects, Springer, New York.

    Google Scholar 

  • Abowd, G., R. Allen, and D. Garlan (1993), “Using Style to Understand Descriptions of Software Architecture,” SIGSOFT Software Engineering Notes 18, 5, 9–20.

    Article  Google Scholar 

  • Abowd, G., R. Allen, and D. Garlan (1995), “Formalizing Style to Understand Descriptions of Software Architecture,” ACM Transactions on Software Engineering and Methodology 4, 4, 319–364.

    Article  Google Scholar 

  • Abrial, J. (1980), “(1) The Specification Language Z: Basic Library, 30 pgs.; (2) The Specification Language Z: Syntax and “Semantics”, 29 pgs.; (3) An Attempt to use Z for Defining the Semantics of an Elementary Programming Language, 3 pgs.; (4) A Low Level File Handler Design, 18 pgs.; (5) Specification of Some Aspects of a Simple Batch Operating System, 37 pgs.” Internal reports, Programming Research Group.

  • Abrial, J.-R. (1996), The B Book: Assigning Programs to Meanings, Tracts in Theoretical Computer Science, Cambridge University Press, Cambridge, England.

    Google Scholar 

  • Allen, R. and D. Garlan (1992), “A Formal Approach to Software Architectures,” In IFIP Transactions A (Computer Science and Technology), IFIP World Congress, Madrid, Spain, Vol. A-12, IFIP, North-Holland, Amsterdam, Netherlands, pp. 134-141.

    Google Scholar 

  • Allen, R. and D. Garlan (1994), “Formalizing Architectural Connection,” In 16th International Conference on Software Engineering, Sorrento, Italy, IEEE Computer Society Press, Los Alamitos, CA, pp. 71–80.

    Google Scholar 

  • Allen, R. and D. Garlan (1996), “A Case Study in Architectural Modeling: The AEGIS System,” In 8th International Workshop on Software Specification and Design, Schloss Velen, Germany, IEEE Computer Society Press, Los Alamitos, CA, pp. 6–15.

    Google Scholar 

  • an Airchinnigh, M.M. (1991), “Tutorial Lecture Notes on the Irish School of the VDM,” In VDM'91-Formal Software Development Methods, S. Prehn and W. Toetenel, Eds., Lecture Notes in Computer Science, Vol. 552, Springer-Verlag, pp. 141–237.

  • Anh, D. N. and R. Moore (1996), “Formal Modelling of Large Domains-with an Application to Airline Business,” Technical Report 74, UNU/IIST, Macau. Revised: September 1996.

    Google Scholar 

  • Anon (1980-1985), C.C.I.T.T. High Level Language (CHILL), Recommendation Z.200, Red Book Fascicle VI.12, See [Haff 1981], ITU (Intl. Telecmm. Union), Geneva, Switzerland.

  • Beki´c, H. (1984), “Programming Languages and Their Definition,” In Lecture Notes in Computer Science, Vol. 177, C. Jones, Ed., Springer-Verlag.

  • Beki´c, H., D. Bjørner, W. Henhapl, C. Jones, and P. Lucas (1974), “A Formal Definition of a PL/I Subset,” Technical Report 25.139, IBM Laboratory, Vienna.

    Google Scholar 

  • Bergstra, J., J. Heering, and P. Klint (1989), Algebraic Specification, Addison-Wesley, ACM Press.

    Google Scholar 

  • Bidoit, M. et al., Eds. (1991), Algebraic System Specification and Development: A Survey and Annotated Bibliography, Lecture Notes in Computer Science, Vol. 501, Springer-Verlag.

  • Bjørner, D., Ed. (1980), Abstract Software Specifications, Lecture Notes in Computer Science, Vol. 86, Springer-Verlag.

  • Bjørner, D. (1986a), “Project Graphs and Meta-Programs: Towards a Theory of Software Development,” In Proc. Capri '86 Conf. on Innovative Software Factories and Ada, N. Habermann and U. Montanari, D. Bjørner / Pinnacles of software engineering: 25 years of formal methods 59 Eds., Lecture Notes on Computer Science, Springer-Verlag.

  • Bjørner, D. (1986b), “Software Development Graphs-A Unifying Concept for Software Development?”, In Foundations of Software Technology and Theoretical Computer Science, K. Nori, Ed., Lecture Notes in Computer Science, Vol. 241, Springer-Verlag, pp. 1–9.

  • Bjørner, D. (1987), “The Stepwise Development of Software Development Graphs: Meta-Programming VDM Developments,” In Lecture Notes in Computer Science, Vol. 252, Springer-Verlag, Heidelberg, Germany, pp. 77–96.

    Google Scholar 

  • Bjørner, D. (1989), “A ProCoS Project Description,” Published in two slightly different versions: (1) EATCS Bulletin, October 1989, (2) Proceedings of Intl. Conf. on AI & Robotics, I. Plander, Ed., Strebske Pleso, Slovakia, November 5-9, 1989, North-Holland, Amsterdam.

  • Bjørner, D. (1995), “Software Systems Engineering-From Domain Analysis to Requirements Capture [-an Air Traffic Control Example],” Technical Report 48, UNU/IIST, Macau, Keynote paper for the Asia Pacific Software Engineering Conference, APSEC'95, Brisbane, Australia.

  • Bjørner, D. (1996), “Models of Enterprise Management: Strategy, Tactics & Operations-Case Study Applied to Airlines and Manufacturing,” Technical Report 60, UNU/IIST, Macau.

    Google Scholar 

  • Bjørner, D. (1997), “Models of Financial Services & Industries,” Research Report 96, UNU/IIST, Macau, Incomplete Draft Report.

  • Bjørner, D. (1997-1998), “Domains as a Prerequisite for Requirements and Software-Domain Perspectives & Facets, Requirements Aspects and Software Views,” In Proceedings of International Workshop on Requirements Targeting Software and Systems Engineering, Bernried am Starnberger See, Bavaria, Germany, 12-14 October 1997, Lecture Notes on Computer Science, Vol. 1526, M. Broy, Ed., Springer-Verlag, pp. 1–42.

  • Bjørner, D. (1999), “Where Do Software Architectures Come from? Systematic Development from Domains and Requirements. A Re-assessment of Software Engineering?” South African Journal of Computer Science.

  • Bjørner, D. and J. R. Cuéllar (1998), “Software Engineering Education: Rôles of Formal Specification and Design Calculi,” Annals of Software Engineering 6, 365–410.

    Article  Google Scholar 

  • Bjørner, D., A. Ershov, and N. Jones, Eds. (1988), Partial Evaluation and Mixed Computation, Proc. of IFIP TC2 Working Conference, Gl. Avernæs, Denmark, North-Holland, Amsterdam.

  • Bjørner, D., C. George, B. Hansen, H. Laustrup, and S. Prehn (1997), “A Railway System, Coordination' 97, Case Study Workshop Example,” Research Report 93, UNU/IIST, Macau.

    Google Scholar 

  • Bjørner, D., C. Hoare, and H. Langmaack, Eds. (1990), VDM and Z-Formal Methods in Software Development, Proc. of 3rd International Symposium of VDM Europe, Kiel, Germany, April 17-21, 1990, Lecture Notes in Computer Science, Vol. 428, Springer-Verlag.

  • Bjørner, D. and C. Jones, Eds. (1978), The Vienna Development Method: The Meta-Language, Lecture Notes in Computer Science, Vol. 61, Springer-Verlag.

  • Bjørner, D. and C. Jones, Eds. (1982), Formal Specification and Software Development, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Bjørner, D., C. Jones, M.M. an Airchinnigh, and E. Neuhold, Eds. (1987), VDM-A Formal Method at Work, Proc. of VDM-Europe Symposium 1987, Brussels, Belgium, Lecture Notes in Computer Science, Vol. 252, Springer-Verlag.

  • Bjørner, D. and M. Nielsen (1985), “Meta Programs and Project Graphs,” In ETW: Esprit Technical Week, Elsevier, pp. 479–491.

  • Bjørner, D. and J. Nilsson (1992), “Algorithmic & Knowledge Based Methods-Do They “Unify”?-with some Programme Remarks for UNU/IIST,” In International Conference on Fifth Generation Computer Systems: FGCS'92, ICOT, pp. 191–198.

  • Bjørner, D. and O. Oest (1980a), “The DDC Ada Compiler Development Project,” In [Bjørner and Oest 1980], pp. 1–19.

  • Bjørner, D. and O. Oest (1980b), Towards a Formal Description of Ada, Lecture Notes in Computer Science, Vol. 98, Springer-Verlag.

  • Bjørner, D., V. Rosario, and M. Helder (1998), “A Normative Model of Concrete Banking Operations-Banking Rules & Regulations and Staff/Client Behaviours,” Research, Department of Information Technology, Software Systems Section, Technical University of Denmark, Lyngby, Denmark.

  • Bloomfield, R., L. Marshall, and R. Jones, Eds. (1988), VDM-The Way Ahead, Proc. of 2nd VDMEurope Symposium 1988, Dublin, Ireland, Lecture Notes in Computer Science, Vol. 328, Springer-Verlag.

  • Burstall, R. and J. Goguen (1977), “Putting Theories together to Make Specifications,” In Proc. of (IJCAI) Int'l. Joint Conf. on AI, Boston.

  • Burstall, R. and J. Goguen (1980), “The Semantics of CLEAR: A Specification Language,” In [Bjørner 1980], pp. 292-332.

  • Cardelli, L. (1987), “Basic Polymorphic Type-checking,” Science of Computer Programming 8, 2, 147–172.

    Article  Google Scholar 

  • Cardelli, L. and P. Wegner (1987), “On Understanding Types, Data Abstraction and Polymorphism,” Computing Surveys 17, 4, 471–522.

    Google Scholar 

  • Chaochen, Z. (1993), “Duration Calculi: An Overview,” In Proceedings of Formal Methods in Programming and Their Applications, D. Bjørner, M. Broy, and I.V. Pottosin, Eds., Lecture Notes on Computer Science, Vol. 735, Springer-Verlag, pp. 256–266.

  • Chaochen, Z., C. Hoare, and A. Ravn (1991), “A Calculus of Durations,” Information Processing Letters 40, 5, 269–276.

    Article  MathSciNet  Google Scholar 

  • Chaochen, Z. and Y. Huiqun (1994), “A Duration Model for Railway Scheduling,” Technical Report 24b, UNU/IIST, Macau.

    Google Scholar 

  • Chaochen, Z., D.V. Hung, and L. Xiaoshan (1995), “A Duration Calculus with Infinite Intervals,” In Fundamentals of Computation Theory, H. Reichel, Ed., Lecture Notes on Computer Science, Vol. 965, Springer-Verlag, pp. 16–41.

  • Chaochen, Z., A. Ravn, and M. Hansen (1993), “An Extended Duration Calculus for Hybrid Systems,” In Hybrid Systems, R. Grossman, A. Nerode, A. Ravn, and H. Rischel, Eds., Lecture Notes in Computer Science, Vol. 736, Springer-Verlag, pp. 36–59.

  • Chaochen, Z. and L. Xiaoshan (1994), “A Mean Value Calculus of Durations,” In A Classical Mind: Essays in Honour of C.A.R. Hoare, A. Roscoe, Ed., Prentice-Hall, Englewood Cliffs, NJ, pp. 431–451.

    Google Scholar 

  • Clemmensen, G. and O. Oest (1984), “Formal Specification and Development of an Ada Compiler-A VDM Case Study,” In Proc. 7th International Conf. on Software Engineering, 26-29 March 1984, Orlando, FL, IEEE, pp. 430–440.

  • CoFI Task Group on Language Design (1997), “CASL-The Common Algebraic Specification Language Summary,” Available at http://www.brics.dk/Projects/CoFI/Documents/CASL/Summary/.

  • CoFI Task Group on Semantics (1997), “CASL-The CoFI Algebraic Specification Language (version 0.97) Semantics,” Available at http://www.brics.dk/Projects/CoFI/Notes/S-4/.

  • Cousot, P. (1996), “Abstract Interpretation,” ACM Computing Surveys 28, 2, 324–328.

    Article  Google Scholar 

  • Cousot, P. (1997a), “Constructive Design of a Hierarchy of Semantics of a Transition System by Abstract Interpretation (Extended Abstract),” Theoretical Computer Science 6, 25, Electronic Notes: http://www.elsevier.nl/locate/entcs/volume6.html, Elsevier Science.

  • Cousot, P. (1997b), “Design of Semantics by Abstract Interpretation,” In Mathematical Foundations of Programming Semantics, MFPS XIII, Carnegie Mellon University, Pittsburgh, PA.

  • Cousot, P. and R. Cousot (1977), “Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints,” In 4th POPL, Principles of Programming and Languages, ACM Press, pp. 238–252.

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

    Google Scholar 

  • Dijkstra, E. (1975), “Guarded Commands, Non-Determinacy and Formal Program Derivation,” Communications of the ACM 18, 8, 453–457.

    Article  MathSciNet  Google Scholar 

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

    Google Scholar 

  • Dung, D.T., L.L. Chi, N.L. Thu, P.P. Nam, T.M. Lien, and C. George (1996), “Developing a Financial Information System,” Technical Report 81, UNU/IIST, Macau.

  • Ehrig, H. and B. Mahr (1985), Fundamentals of Algebraic Specification 1, Equations and Initial Semantics, EATCS Monographs on Theoretical Computer Science, Vol. 6, Springer-Verlag.

  • Ehrig, H. and B. Mahr (1990), Fundamentals of Algebraic Specification 2, Module Specifications and Constraints, EATCS Monographs on Theoretical Computer Science, Vol. 21, Springer-Verlag.

  • Engeler, E. (1971), Symposium on Semantics of Algorithmic Languages, Lecture Notes in Mathematics, Vol. 188, Springer-Verlag.

  • Ershov, A. (1977), “On the Essence of Translation,” Computer Software and System Programming 3, 5, 332–346.

    MATH  Google Scholar 

  • Ershov, A., D. Bjørner, Y. Futamura, K. Furukawa, A. Haraldson, and W. Scherlis, Eds. (1988), New Generation Computing 6, 2,3, Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed Computation, 1987 Fitzgerald, J., C.B. Jones, and P. Lucas, Eds. (1997), FME'97: Industrial Applications and Strengthened Foundations of Formal Methods (Proc. 4th Intl. Symposium of Formal Methods Europe, Graz, Austria, September 1997), Lecture Notes in Computer Science, Vol. 1313, Springer-Verlag.

  • Fitzgerald, J. and P.G. Larsen (1997), Developing Software Using VDM-SL, Cambridge University Press, Cambridge, UK.

    Google Scholar 

  • Futamura, Y. (1971), “Partial Evaluation of Computation Process-An Approach to a Compiler-Compiler,” Systems, Computers, Controls 2, 5, 45–50.

    Google Scholar 

  • Futamura, Y., K. Nogi, and A. Takano (1991), “Essence of Generalized Partial Computation,” Theoretical Computer Science 90, 1, 61-79. Also in: D. Bjørner and V. Kotov, Images of Programming, North-Holland, 1991.

    Article  MATH  Google Scholar 

  • Futatsugi, K. and R. Diaconescu (1997), CafeOBJ Report-Definition of the Language, World Scientific AMAST Series at World Scientific, Singapore, to appear.

  • Futatsugi, K., J. Goguen, J.-P. Jouannaud, and J. Meseguer (1985), “Principles of OBJ-2,” In 12th Ann. Symp. on Principles of Programming, ACM, pp. 52–66.

  • Garlan, D. (1995), “Research Directions in Software Architecture,” ACM Computing Surveys 27, 2, 257–261.

    Article  Google Scholar 

  • Garlan, D. (1996), “Formal Approaches to Software Architecture,” In Studies of Software Design. ICSE '93 Workshop. Selected Papers, Springer-Verlag, Berlin, Germany, pp. 64–76.

    Google Scholar 

  • Garlan, D. and M. Shaw (1993), An Introduction to Software Architecture, World Scientific, Singapore, pp. 1–39.

    Google Scholar 

  • Gaudel, M.-C. and J. Woodcock, Eds. (1996), FME'96: Industrial Benefit and Advances in Formal Methods, Springer-Verlag.

  • George, C. (1995), “A Theory of Distributing Train Rescheduling,” Research Report 51, UNU/IIST, Macau. Also in: FME'96: Industrial Benefit and Advances in Formal Methods, M.-C. Gaudel and J. Woodcock, Eds., Lecture Notes on Computer Science, Vol. 1051, Springer-Verlag, 1996, pp. 499–517.

    Google Scholar 

  • George, C.W., T. Janowski, and R. Moore (1995), “Domain Analysis for a Budgetary System,” Technical note, UNU/IIST, Macau.

    Google Scholar 

  • Girard, J.-Y., Y. Lafont, and P. Taylor (1989), Proofs and Types, Cambridge Tracts in Theoretical Computer Science, Vol. 7, Cambridge Univ. Press, Cambridge, UK.

    Google Scholar 

  • Goguen, J., J. Thatcher, E. Wagner, and J. Wright (1975), “Abstract Data Types as Initial Algebras and Correctness of Data Representations,” In ACM Conf. on Computer Graphics, pp. 89–93.

  • Goguen, J., J. Thatcher, E. Wagner, and J. Wright (1977), “Initial Algebra Semantics and Continuous Algebras,” Journal of the ACM 24, 1, 68–95.

    Article  MathSciNet  Google Scholar 

  • Goguen, J., J. Thatcher, E. Wagner, and J. Wright (1978), “An Initial Algebra Approach to the Specifi-cation, Correctness and Implementation of Abstract Data Types,” In Current Trends in Programming Methodology, R. Yeh, Ed., Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Group, T. R. L. (1992), The RAISE Specification Language, The BCS Practitioner Series, Prentice-Hall, Hemel Hampstead, England.

    Google Scholar 

  • Group, T. R. M. (1995), The RAISE Method, The BCS Practitioner Series, Prentice-Hall, Hemel Hampstead, England.

    Google Scholar 

  • Guessarian, I. (1981), Algebraic Semantics, Lecture Notes in Computer Science, Vol. 99, Springer-Verlag.

  • Gunter, C. and D. Scott (1990), “Semantic Domains,” In [van Leeuwen 1990], Vol. B., pp. 633–674.

    MATH  MathSciNet  Google Scholar 

  • Haff, P., Ed. (1981), The Formal Definition of CHILL, see [Anon 1980-1985], ITU (Intl. Telecmm. Union), Geneva, Switzerland.

  • Haff, P. and A. Olsen (1987), “Use of VDM within CCITT,” In [Bjørner et al. 1987], pp. 324–330.

  • Hansen, K.M. (1992), “Designing a Lift Control System,” Technical Report ProCoS, Department of Computer Science, Technical University of Denmark.

  • Hansen, M. and Z. Chaochen (1992), “Semantics and Completeness of Duration Calculus,” In Real-Time: Theory in Practice, REX Workshop, J. de Bakker, C. Huizing, W.-P. de Roever, and G. Rozenberg, Eds., Lecture Notes in Computer Science, Vol. 600, Springer-Verlag, pp. 209–225.

  • Haraldsson, A. (1977), “A Program Manipulation System Based on Partial Evaluation,” Ph.D. thesis, Linköping Studies in Science and Technology Dissertations 14, Linköping University, Sweden.

  • Harel, D. (1987), “Statecharts: A Visual Formalism for Complex Systems,” Science of Computer Programming.

  • Harel, D., H. Lachover, A. Naamad, A. Pnueli, M. Politi, R. Sherman, A. Shtull-Trauring, and M. Trakhtenbrot (1990), “STATEMATE: A Working Environment for the Development of Complex Reactive Systems,” IEEE Transactions on Software Engineering 16, 4, 403–414.

    Article  Google Scholar 

  • Harel, D., A. Pnueli, J. Schmidt, and R. Sherman (1987), “On the Formal Semantic of Statecharts,” In Proc. of IEEE Symp. on Logic in Computer Science.

  • Haß, M. (1987), “Development and Application of a Meta IV Compiler,” In [Bjørner et al. 1987a], pp. 118–140.

  • Hayes, I.J., Ed. (1987), Specification Case Studies, International Series in Computer Science, Prentice-Hall, Hemel Hempstead, Hertfordshire, UK.

  • Hoare, C. (1972), “Notes on Data Structuring,” In [Dahl et al. 1972], pp. 83–174.

  • Hoare, C. (1978), “Communicating Sequential Processes,” Communications of the ACM 21, 8.

  • Hoare, C. (1985), Communicating Sequential Processes, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Hoare, C. and et al. (1987), “Laws of Programming,” Communications of the ACM 30, 8, 672–686, 770.

    Article  MathSciNet  Google Scholar 

  • Horebeek, I. and J. Lewi (1989), Algebraic Specifications in Software Engineering. An Introduction, Springer-Verlag, New York, NY.

    Google Scholar 

  • Jackson, M. (1994), “Problems, Methods and Specialisation,” Software Engineering Journal, 249–255.

  • Jackson, M. (1995), Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudices, ACM Press/Addison-Wesley, Wokingham, England.

    Google Scholar 

  • Jackson, M. (1997), “The Meaning of Requirements,” Annals of Software Engineering 3, 5–21.

  • Janowski, T. (1996), “Domain Analysis for Manufacturing: Formalization of the Market,” Research Report 63, UNU/IIST, Macau.

    Google Scholar 

  • Janowski, T. and C. Acebedo (1996), “Virtual Enterprise: On Refinement Towards an ODP Architecture,” Research Report 69, UNU/IIST, Macau.

    Google Scholar 

  • Janowski, T. and R.V. Atienza (1997), “A Formal Model For Competing Enterprises, Applied toMarketing Decision-Making,” Research Report 92, UNU/IIST, Macau.

    Google Scholar 

  • Jensen, K. (1985), Coloured Petri Nets, EATCS Monographs in Theoretical Computer Science, Vols. 1-3, Springer-Verlag, Heidelberg.

    Google Scholar 

  • Jensen, K. and N. Wirth (1976), Pascal User Manual and Report, Lecture Notes in Computer Science, Vol. 18, Springer-Verlag.

  • Jones, C. (1980), Software Development: A Rigorous Approach, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Jones, C. (1986), Systematic Software Development Using VDM, Prentice-Hall, Superseded by [Jones 1990].

  • Jones, C. (1990), Systematic Software Development using VDM, 2nd Edition, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Jones, N.D., C. Gomard, and P. Sestoft (1993), Partial Evaluation and Automatic Program Generation, C.A.R. Hoare Series in Computer Science, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • JuAn, W. and L. XiaoShan (1995a), “A Duration Calculus Approach to Specifying the Steam-boiler Problem,” Technical Report 38, UNU/IIST, Macau.

    Google Scholar 

  • JuAn, W. and L. XiaoShan (1995b), “Specifying Optimal Design of the Steam-boiler System,” Technical Report 39, UNU/IIST, Macau.

    Google Scholar 

  • Landin, P. (1964), “The Mechanical Evaluation of Expressions,” Computer Journal 6, 4, 308–320.

    Google Scholar 

  • Landin, P. (1965), “A Correspondence between ALGOL 60 and Church's Lambda-Notation (in 2 parts),” Communications of the ACM 8, 2-3, 89-101 and 158–165.

  • Landin, P. (1966a), “A Formal Description of ALGOL 60,” In [Steel 1966], pp. 266–294.

  • Landin, P. (1966b), “A Lambda Calculus Approach,” In Advances in Programming and Non-Numeric Computations, L. Fox, Ed., Pergamon Press, pp. 97–141.

  • Larsen, P.G., Ed. (1993), Formal Methods, Lecture Notes in Computer Science, Springer-Verlag, Heidelberg/ Berlin, Germany.

  • Larsen, P.G., B.S. Hansen, H.B.N. Plat, H. Toetenel, D.J. Andrews, J. Dawes, G. Parkin, et al. (1996), “Information Technology-Programming Languages, their Environments and System Software Interfaces-Vienna Development Method-Specification Language-Part 1: Base Language”.

  • Liskov, B. and S. Zilles (1974), “Programming with Abstract Data Types,” SIGPLAN 9, 4, 59.

    Google Scholar 

  • Lucas, P. (1972), “On the Semantics of Programming Languages and Software Devices,” In Formal Semantics of Programming Languages, Rustin, Ed., Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • McCarthy, J. (1960), “Recursive Functions of Symbolic Expressions and their Computation by Machines, Part I,” Communications of the ACM 3, 4, 184–195.

    Article  Google Scholar 

  • McCarthy, J. (1962), “Towards a Mathematical Science of Computation,” In IFIP World Congress Proceedings, C. Popplewell, Ed., pp. 21–28.

  • McCarthy, J. (1963), “A Basis for a Mathematical Theory of Computation,” In Computer Programming and Formal Systems, North-Holland, Amsterdam.

    Google Scholar 

  • McCarthy, J. and et al. (1962), LISP 1.5, Programmer's Manual, MIT Press, Cambridge, MA.

    Google Scholar 

  • McCarthy, J. and J. Painter (1966), “Correctness of a Compiler for Arithmetic Expressions,” In [Schwartz 1967], pp. 33–41.

  • Middelburg, C. (1988), “The VIP VDM Specification Language,” In VDM '88 VDM-The Way Ahead, Lecture Notes in Computer Science, Vol. 328, Springer-Verlag, pp. 187–201.

    Google Scholar 

  • Middelburg, K. and G.R. de Lavalette (1991), “LPF and MPL!-A Logical Comparison of VDM SL and COLD-K,” In VDM '91: Formal Software Development Methods, VDM-Europe, Springer-Verlag, pp. 279–308.

  • Milne, R. and C. Strachey (1976), A Theory of Programming Language Semantics, Chapman and Hall, London, Halsted Press/Wiley, New York.

    Google Scholar 

  • Milner, R. (1980), Calculus of Communication Systems, Lecture Notes in Computer Science, Vol. 94, Springer-Verlag.

  • Milner, R. (1989), Communication and Concurrency, C.A.R. Hoare Series in Computer Science, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Milner, R., M. Tofte, and R. Harper (1990), The Definition of Standard ML, MIT Press, Cambridge, MA and London, England.

    Google Scholar 

  • Mosses, P. (1997), “COFI: The Common Framework Initiative for Algebraic Specification and Development,” In TAPSOFT'97, M. Bidoit and M. Dauchet, Eds., Lecture Notes in Computer Science, Vol. 1212, Springer-Verlag.

  • Naftalin, M., T. Denvir, and M. Bertran, Eds. (1994), FME'94: Industrial Benefit of Formal Methods, Formal Methods Europe Symposium, Barcelona, Spain, Springer-Verlag, Heidelberg/Berlin, Germany.

  • Nakagawa, A.T., T. Sawada, and K. Futatsugi (1997), CafeOBJ Manual (for system version 1.3), 142 pages.

  • Nakagawa, K.F.A. (1997), “An Overview of CAFE Specification Environment-An Algebraic Approach for Creating, Verifying, and Maintaining Formal Specifications over Networks,” In ICFEM'97: International Conference on Formal Engineering Methods, IEEE Computer Society, Press, Los Alamitos, CA.

    Google Scholar 

  • Nordström, B., K. Petersson, and J.M. Smith (1990), Programming in Martin-L¨of's Type Theory An Introduction, International Series of Monographs on Computer Science, Vol. 7, Clarendon Press/Oxford University Press, Oxford, England.

    Google Scholar 

  • Oest, O. (1986), “VDM from Research to Practice,” In Information Processing '86, IFIP World Congress Proceedings, H.-J. Kugler, Ed., North-Holland, Amsterdam, pp. 527-533.

    Google Scholar 

  • Prehn, S. and W. Toetenel, Eds. (1991), VDM'91, Proc. of 4th International Symposium of VDM Europe, Noordwijkerhout, The Netherlands, October, 1991, Lecture Notes in Computer Science, Vol. 551, Springer-Verlag.

  • Qiwen, X. and H. Weidong (1995), “Hierarchical Design of a Chemical Concentration Control System,” Research Report 41, UNU/IIST, Macau.

    Google Scholar 

  • Qiwen, X. and Y. Zengyu (1996), “Derivation of Control Programs: A Heating System,” Research Report 73, UNU/IIST, Macau.

    Google Scholar 

  • Ravn, A., H. Rischel, and K. Hansen (1993), “Specifying and Verifying Requirements of Real-Time Systems,” IEEE Transactions on Software Engineering 19, 1, 41–55.

    Article  Google Scholar 

  • Reiser, M. (1991), The OBERON System, User Guide and Programmer's Manual, ACM Press, Addison-Wesley.

    Google Scholar 

  • Reisig, W. (1998), Theory and Practice of Petri Nets, Springer-Verlag, Berlin/Heidelberg.

    Google Scholar 

  • Roscoe, A. (1997), Theory and Practice of Concurrency, Prentice-Hall.

  • Schmidt, U. and R. Völler (1985), “The Development of a Machine Independent Multi Language Compiler System Applying the Vienna Development Method,” In Proc. IFIP Working Conference on Software Specification Methodologies, North-Holland, Amsterdam.

    Google Scholar 

  • Schmidt, U. and R. Völler (1987), “Experience with VDM in Norsk Data,” In [Bjørner et al. 1987a], pp. 49–62.

  • Schwartz, J. (1967), Mathematical Aspects of Computer Science, Proc. of Symp. in Appl. Math., American Mathematical Society, Providence, RI.

  • Schwartz, J. (1973), “The SETL Language and Examples of its Use,” Technical report, Courant Institute of Mathematics, New York University, New York.

  • Scott, D. (1970a), “The Lattice of Flow Diagrams,” In [Engeler 1971], pp. 311–366.

  • Scott, D. (1970b), “Outline of a Mathematical Theory of Computation,” In Proc. 4th Ann. Princeton Conf. on Information Science and Systems, p. 169.

  • Scott, D. (1972a), “Continuous Lattices,” In Toposes, Algebraic Geometry and Logic, F. Lawvere, Ed., Lecture Notes in Mathematics, Vol. 274, Springer-Verlag, pp. 97–136.

  • Scott, D. (1972b), “Lattice Theory, Data Types and Semantics,” In Symp. Formal Semantics, R. Rustin, Ed., Prentice-Hall, Englewood Cliffs, NJ, pp. 67–106.

    Google Scholar 

  • Scott, D. (1972c), “Mathematical Concepts in Programming Language Semantics,” In Proc. AFIPS, Spring Joint Computer Conference, Vol. 40, pp. 225–234.

    Google Scholar 

  • Scott, D. (1973), “Lattice-Theoretic Models for Various Type Free Calculi,” In Proc. 4th Int'l. Congr. for Logic Methodology and the Philosophy of Science, Bucharest, North-Holland, Amsterdam, pp. 157–187.

  • Scott, D. (1975), “λ-Calculus and Computer Science Theory,” In Lecture Notes in Computer Science, Vol. 37, C. Böhm, Ed., Springer-Verlag.

  • Scott, D. (1976), “Data Types as Lattices,” SIAM Journal on Computer Science 5, 3, 522–587.

    Article  Google Scholar 

  • Scott, D. (1981), Lectures on a Mathematical Theory of Computation, Technical Monograph, Vol. 19, Programming Research Group.

  • Scott, D. (1982a), “Domains for Denotational Semantics,” In International Colloquium on Automata, Languages and Programming, European Association for Theoretical Computer Science, Lecture Notes in Computer Science, Vol. 140, Springer-Verlag, pp. 577–613.

    MATH  Google Scholar 

  • Scott, D. (1982b), “Some Ordered Sets in Computer Science,” In Ordered Sets, I. Rival, Ed., Reidel Publ., pp. 677-718.

  • Scott, D. and C. Strachey (1971), “Towards a Mathematical Semantics for Computer Languages,” In Computers and Automata, Microwave Research Inst. Symposia, Vol. 21, pp. 19–46.

    MATH  Google Scholar 

  • Shekaran, C., D. Garlan et al. (1994), “The Role of Software Architecture in Requirements Engineering,” In First International Conference on Requirements Engineering, Colorado Springs, CO, IEEE Computer Society Press, Los Alamitos, CA, pp. 239–245.

    Google Scholar 

  • Skakkebæk, J., A. Ravn, H. Rischel, and Z. Chaochen (1992), “Specification of Embedded, Real-Time Systems,” In Proceedings of 1992 Euromicro Workshop on Real-Time Systems, IEEE Computer Society Press, Los Alamitos, CA, pp. 116–121.

    Google Scholar 

  • Skakkebæk, J. U. (M.Sc. Thesis), “Development of Provably Correct Systems,” Technical Report, Department of Computer Science, Technical University of Denmark.

  • Steel, T. (1966), Formal Language Description Languages, Proc. of IFIP TC-2 Work. Conf., Baden, North-Holland, Amsterdam.

  • Strachey, C. (1966), “Towards a Formal Semantics,” In [Steel 1966], pp. 198–220.

  • Strachey, C. (1973), The Varieties of Programming Languages, Technical Monograph, Vol. 10, Programming Research Group.

  • Strachey, C. (1974), Continuations: A Mathematical Semantics which Can Deal with Full Jumps, Technical Monograph, Programming Research Group.

  • Strachey, C. and D. Scott (1970), “Mathematical Semantics for Two Simple Languages,” Technical Report, Princeton University.

    Google Scholar 

  • van Leeuwen, J. (1990), Handbook of Theoretical Computer Science. Vol. A: Algorithms and Complexity, Vol. B: Formal Models and Semantics, North-Holland, Amsterdam.

    Google Scholar 

  • Widjaja, B. H., H. Weidong, C. Zongji, and Z. Chaochen (1994), “A Cooperative Design for Hybrid Systems,” Technical Report 36, UNU/IIST, Macau. Presented at and published in Proceedings from the Second European Workshop on Real-time and Hybrid Systems, Grenoble, France, June 1995.

    Google Scholar 

  • Wirth, N. (1963), “A Generalization of ALGOL,” Communications of the ACM 6, 547–554.

  • Wirth, N. (1971a), “Program Development by Stepwise Refinement,” Communications of the ACM 14, 4, 221–227.

    Article  Google Scholar 

  • Wirth, N. (1971b), “The Programming Language PASCAL,” Acta Informatica 1, 1, 35–63.

    Article  MATH  Google Scholar 

  • Wirth, N. (1973), Systematic Programming, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Wirth, N. (1976), Algorithms + Data Structures = Programs, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Wirth, N. (1982), Programming in Modula-2, Springer-Verlag, Heidelberg, Germany.

    Google Scholar 

  • Wirth, N. (1988a), “From Modula to Oberon,” Software-Practice and Experience 18, 661–670.

    MATH  Google Scholar 

  • Wirth, N. (1988b), “The Programming Language Oberon,” Software-Practice and Experience 18, 671–690.

    MATH  Google Scholar 

  • Wirth, N. and J. Gutknecht (1989), “The Oberon System,” Software-Practice and Experience 19, 9, 857–893.

    Google Scholar 

  • Wirth, N. and J. Gutknecht (1992), The Oberon Project, ACM Press/Addison-Wesley.

  • Wirth, N. and C. Hoare (1966), “A Contribution to the Development of ALGOL,” Communications of the ACM 9, 6, 413–432.

    Article  Google Scholar 

  • Wirth, N. and H. Weber (1966), “EULER: A Generalization of ALGOL, and its Formal Definition,” Communications of the ACM 9, 1-2, 13-23, 89–99.

  • Woodcock, J.C. and M. Loomes (1988), Software Engineering Mathematics: Formal Methods Demysti-fied, Pitman, London, UK.

  • XinYiao, Y. et al. (1994), “Stability of Railway Systems,” Technical Report 28, UNU/IIST, Macau.

    Google Scholar 

  • Zave, P. and M. Jackson (1997a), “Four Dark Corners of Requirements Engineering,” ACM Transactions on Software Engineering and Methodology 6, 1, 1–30.

    Article  Google Scholar 

  • Zave, P. and M. Jackson (1997b), “Requirements for Telecommunications Services: An Attack on Complexity,” In Proceedings of the Third IEEE International Symposium on Requirements Engineering, IEEE Computer Society Press, pp. 106–117.

  • Zhiming, L., A. Ravn, E. S. rensen, and Z. Chaochen (1993), “A Probabilistic Duration Calculus,” In Responsive Computer Systems, H. Kopetz and Y. Kakuda, Eds., Dependable Computing and Fault-Tolerant Systems, Vol. 7, Springer-Verlag, Wien/New York, pp. 30–52.

    Google Scholar 

Download references

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bjørner, D. Pinnacles of software engineering: 25 years of formal methods. Annals of Software Engineering 10, 11–66 (2000). https://doi.org/10.1023/A:1018983515535

Download citation

  • Issue Date:

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

Keywords

Navigation