# 1212 Formal Methods Jos Baeten, TU/e. 1212 Formal methods Is the mathematics of software engineering. Modeling, calculation.

## Presentation on theme: "1212 Formal Methods Jos Baeten, TU/e. 1212 Formal methods Is the mathematics of software engineering. Modeling, calculation."— Presentation transcript:

1212 Formal Methods Jos Baeten, TU/e

1212 Formal methods Is the mathematics of software engineering. Modeling, calculation.

1212 Formal Methods Research in Formal Methods is a systematic and scientific study of issues in computer science, based on solid mathematical principles. Formal Methods apply to systems and constructions used in computer science. These constructions are described exactly in a formal syntax and are supplied with a formal semantics whenever appropriate.

1212 Formal Methods increase understanding of systems, increase clarity of description and help solve problems and remove errors. Use of Formal Methods increases dependability and usability of constructions and systems in computer science. Why Formal Methods?

1212 Software (+ hardware) Engineering is craft, not science. -Complex -No margin of error -Local action has global consequences -Discrete -(no intra-, extrapolation, some statistics possible)

1212 Quality control Process Product Quality assurance safety + liveness

1212 Formal Methods Specification - descriptive Verification - analysis

1212 Specification Communication between designers. Control and data. “What” over “how”. Reactive, parallel, distributed systems.

1212 Verification Not pde but discrete math calculation. Logic and deduction. All behaviours. Parameters. Hierarchy of abstraction. Model needs to be validated against reality.

1212 Issues and choices Selection: -Level of formality: 1. Math. argument 2. Formal spec. 3. Verif. system -Part of system, selected components -Selected properties -Part of lifecycle -Level of abstraction

1212 Specification: varieties Model-oriented: operational. Z. Property-oriented: logical. CTL/LTL. Concurrency. Process algebra.

1212 Verification: varieties. Consistency analysis and type checking Validation: animation, challenges. Predicting behaviour and verifying refinement –State space exploration, model checking, language inclusion –Theorem proving, proof checking

1212 Certification of critical systems Can never achieve failure rate of 10 -9.

1212 User req. def. Sw. req. def. Arch. design Detailed design Code Acceptance tests System tests Integration tests Unit tests Docs Verif.

1212 Alexander theory EREA, PVS ADL SDL, MSC, Spin, PVS, Z Invariants, PVS RPA Spin, PVS, TTCN, TorX Docs Verif.

1212 Advantages of FM Precision engineering Complexity engineering Correctness engineering Automation engineering

1212 History 1956 Noam Chomsky models language 1957 John Backus defines Fortran syntax 1958 Haskel Curry and Robert Feys describe propositions-as-types analogy 1960 Peter Naur applies BNF to ALGOL60 1968 Adriaan van Wijngaarden defines ALGOL68, experiments with, 2 l. grammar 1968 Donald Knuth invents attribute grammars

1212 History 1968 Dana Scott denotational sem. for 1969 Tony Hoare axiomatic semantics 1970 N.G. de Bruijn Automath 1972 IBM Vienna: FM for PL/I design 1974 Goguen Thatcher init. alg. sem. data types 1977 Joseph Stoy book denotational sem. 1978 Dines Bjørner, Cliff Jones VDM 1979 Philips Brussels CHILL design

1212 History 1980 Robin Milner CCS 1980 Jean-Raymond Abrial Z 1980-1990 Gerard Holzmann SPIN 1983 Jan Bergstra ACP 1985 Ed Brinksma LOTOS 1985-1995 ESPRIT: CIP, OBJ, PLUSS, ASL, Larch, SDL, ExSpect, ADJ, ASF, SDF, PSF, PVS, COLD, SPRINT, ERAE, CLEAR, …

1212 History 1993 VDM Europe becomes FME 1997 Intel establishes FM group after Pentium 1999 FM World Commercial firms offering FM (Verum, FDR) FMICS, IFM

1212 Ingredients SyntaxStates LogicTransitions ProofExecution Data typesCommunication ModularisationAbstraction Type systemTiming Object orientationHybrid systems

1212 Semantics Denotational De Bakker, Rozenberg Operational Axiomatic - assertional Kuiper, Jonkers, De Boer

1212 Varieties Logic Logic: thm proving PVS, COQ Hooman, Poll, Barendregt, Hesselink Temporele logica: CTL, LTL: Kuiper Game theory: v.d. Herik, De Bruin Categories, co-algebras: Rutten, Jacobs Multi-agent systems: Renardel

1212 Varieties Equational Equational: -calculus Barendregt term rewriting Klop, v. Oostrom, Zantema type theory: Barendregt, Swierstra ASF+SDF: Klint Program derivation: Meertens Process algebra: Bergstra, Fokkink, Baeten, Groote, Brinksma

1212 Varieties Operational Operational: sequential: Z, VDM, Larch SOS Fokkink, Reniers I/O automata Vaandrager Petri nets Van Hee, Van der Aalst Model checking Larsen Katoen Graphs Rozenberg Rensink  Rooda TorX Tretmans

1212 Varieties Visual Visual: MSC, Petri nets

1212 Applications Software Engineering, in particular components, coordination Embedded Systems (hybrid systems) Business Processes Biological Processes Security Web services & grid computing Agents, games, quantum & relativistic comput.

Download ppt "1212 Formal Methods Jos Baeten, TU/e. 1212 Formal methods Is the mathematics of software engineering. Modeling, calculation."

Similar presentations