Course Material & Suggested Readings (E.Börger)

The goal of the course is to teach a practical technique for disciplined rigorous system engineering. For this purpose, Abstract State Machines (ASMs) are used as scientifically well-founded and industrially viable basis for the design and analysis of complex systems. The analysis covers both verification and validation, using mathematical reasoning (possibly theorem-prover-verified or model-checked) or experimental simulation (by running the executable models). The method, which has been applied successfully to programming languages, protocols, embedded systems, architectures, requirements capture, etc., is illustrated for defining, in a rigorous but concise way, satisfactory ground models for software requirements, and for refining such ground models in a controllable way to executable code. The student is guided to understand how the operational and abstract character of ASMs

Basic Text Book Abstract State Machines (by E. Börger and R. Stärk,  Springer-Verlag, 2003).

Case Study Text Book Java and the JavaVirtual Machine: Definition, Verification, Validation (by R. Stärk, J. Schmid, E. Börger,  Springer-Verlag, 2001)

The book is used to illustrate an extensive case study in applying practical rigorous methods to the design and the analysis of a real-life software system. The book provides a structured and high-level description, together with a mathematical and an experimental analysis, of Java and of the Java Virtual Machine (JVM), including the standard compilation of Java programs to JVM code and the security critical bytecode verifier component of the JVM. The following fundamental property of JVM verification and execution of compiled Java programs is analysed and proved:

Under explicitly stated conditions, any well-formed and well-typed Java program, when correctly compiled, passes the verifier and is executed on        the JVM. It executes without violating any run-time checks, and is correct with respect to the expected behavior as defined by the Java machine.

The description is structured into modules, and its abstract character implies that it is truly platform and programming language independent. It comes with a natural refinement to executable machines on which code can be tested. The method we develop for this purpose can be applied to other virtual machines and to other programming languages as well.

Lecture Slides and Papers

Copyright Notice. The work below is copyright by Egon Börger, and  other authors, who reserve all rights to their work. Fair personal use of the material is welcome, including using and making the material available for lecturing. In doing this, the source and the authors should be mentioned, when passing off the material this copyright notice should be added. In particular, it would not be fair to pass off any material made publicly available here as your own work.

Slides for lecturers, covering  most of the themes mentioned below, are available electronically via the AsmBook web site.

 

.