vdm++ tutorial overview john fitzgerald peter gorm larsen paul mukherjee nico plat

8
VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat

Upload: edgar-walters

Post on 16-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VDM++ Tutorial Overview John Fitzgerald Peter Gorm Larsen Paul Mukherjee Nico Plat

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

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

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

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

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

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

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

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)