vdm++ tutorial overview john fitzgerald peter gorm larsen paul mukherjee nico plat
TRANSCRIPT
![Page 1: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat](https://reader036.vdocument.in/reader036/viewer/2022082713/56649e915503460f94b968b3/html5/thumbnails/1.jpg)
VDM++ Tutorial
Overview
John Fitzgerald
Peter Gorm Larsen
Paul Mukherjee
Nico Plat
![Page 2: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat](https://reader036.vdocument.in/reader036/viewer/2022082713/56649e915503460f94b968b3/html5/thumbnails/2.jpg)
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!
![Page 3: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat](https://reader036.vdocument.in/reader036/viewer/2022082713/56649e915503460f94b968b3/html5/thumbnails/3.jpg)
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)
![Page 4: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat](https://reader036.vdocument.in/reader036/viewer/2022082713/56649e915503460f94b968b3/html5/thumbnails/4.jpg)
Introductionclass Alarm
typespublic String = seq of char;
instance variables descr : String;reqQuali : Expert`Qualification;
operationspublic Alarm: Expert`Qualification * String ==> AlarmAlarm(quali,str) ==( descr := str; reqQuali := quali);
public GetReqQuali: () ==> Expert`QualificationGetReqQuali() == return reqQuali;
end Alarm
Simple types & type constructors
State Variables
State-modifying operations
![Page 5: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat](https://reader036.vdocument.in/reader036/viewer/2022082713/56649e915503460f94b968b3/html5/thumbnails/5.jpg)
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
![Page 6: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat](https://reader036.vdocument.in/reader036/viewer/2022082713/56649e915503460f94b968b3/html5/thumbnails/6.jpg)
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
![Page 7: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat](https://reader036.vdocument.in/reader036/viewer/2022082713/56649e915503460f94b968b3/html5/thumbnails/7.jpg)
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
![Page 8: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat](https://reader036.vdocument.in/reader036/viewer/2022082713/56649e915503460f94b968b3/html5/thumbnails/8.jpg)
Schedule1400-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)