90 likes | 112 Views
VDM++ Tutorial. Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat. Introduction. VDM and VDM++ The Vienna Development Method Austrian, Irish, British, Danish, …? ISO Standardisation of VDM-SL Steady expansion in tool support Afrodite O-o & concurrency extensions
E N D
VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat
Introduction • VDM and VDM++ • The Vienna Development Method • Austrian, Irish, British, Danish, …? • ISO Standardisation of VDM-SL • Steady expansion in tool support • Afrodite • O-o & concurrency extensions • The aim: raising the state of the art!
Introduction • Model-oriented specification: • Simple, abstract data types • Invariants to restrict membership • Functional specification: • Referentially transparent functions • Operations with side effects on state variables • Implicit specification (pre/post) • Explicit specification (functional or imperative)
Introduction class Alarm types public String = seq of char; instance variables descr : String; reqQuali : Expert`Qualification; operations public Alarm: Expert`Qualification * String ==> Alarm Alarm(quali,str) == ( descr := str; reqQuali := quali); public GetReqQuali: () ==> Expert`Qualification GetReqQuali() == return reqQuali; end Alarm Simple types & type constructors State Variables State-modifying operations
Raising the State of the Art • Stress on modelling and analysis: • … on industrial strength • integration with architecture and design • strong tool support • driven by industrial experience Model, n. A schematic description of a system, theory, or phenomenon that accounts for its known or inferred properties and may be used for further study of its characteristics
Raising the State of the Art • … and on a capable language! • Scale and complexity: o-o & concurrency • V&V Potential: • model quality: integrity properties • building on rigour in the semantics • admitting test, code generation, animation
Our aim … • You will be informed • Key aspects of VDM++ • Role in architecture and design • Salient language features: o-o, concurrency • Analysis & synthesis features: model quality & code gen. • and encouraged • Tool support • Industrial experience
Schedule 1400-1500: Part I - VDM++ in Context 1400-1420 Overview (John) 1420-1440 Architecture/process (Nico) 1440-1500 A quick flight through the tools (Peter) 1500-1645 Part II - VDM++ Features(Paul) incl. coffee break 1530-1600 - Concurrency - Quality - Java 1645-1730 Part III - Industrial Experience to date Closing Discussion (All)