ifad dr peter gorm larsen ifad a/s forskerparken 10a dk-5230 odense m denmark ten years of...

28
IFAD IFAD www.ifad.dk www.ifad.dk Dr Peter Gorm Larsen Dr Peter Gorm Larsen IFAD A/S IFAD A/S Forskerparken 10A Forskerparken 10A DK-5230 Odense M DK-5230 Odense M Denmark Denmark Ten Years of Ten Years of Historical Historical Development Development Bootstrapping” Bootstrapping” VDMTools VDMTools ® ®

Upload: abagail-tindall

Post on 16-Dec-2015

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

IFAD

IFAD

www.ifad.dkwww.ifad.dk

Dr Peter Gorm LarsenDr Peter Gorm LarsenIFAD A/SIFAD A/SForskerparken 10AForskerparken 10ADK-5230 Odense MDK-5230 Odense MDenmarkDenmark

Ten Years of Ten Years of Historical Historical DevelopmentDevelopment

““Bootstrapping” Bootstrapping” VDMToolsVDMTools®®

Page 2: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

2IFAD

IFAD““Bootstrapping” Bootstrapping” VDMToolsVDMTools®®

What is IFAD? VDMTools overview Staff overview Development environment The “Bootstrapping” process Perspectives

Page 3: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

3IFAD

IFADIFAD CapabilitiesIFAD Capabilities

IFAD providesIFAD providesProfessional software development tools that assist Professional software development tools that assist engineers in producing high-quality softwareengineers in producing high-quality software

IFAD ensuresIFAD ensuresTechnology transfer by offering training courses,Technology transfer by offering training courses,customer-specific consultancy, and by organising customer-specific consultancy, and by organising seminarsseminars

IFAD offersIFAD offersSubcontracted software specification and development Subcontracted software specification and development performed by highly qualified and experienced performed by highly qualified and experienced personnelpersonnel

Page 4: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

4IFAD

IFADIFAD Organisation ChartIFAD Organisation Chart

Henrik Voss

Management

MarketingQA

Admin.Systems

SubcontractingConsultancy

Sales

Services Projects

Sales

Tools

R&D

VDMTools

Products

MUSTER

R&D

Methods & Tools Training & Simulation

Page 5: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

5IFAD

IFADBoeing/Joint Strike Boeing/Joint Strike FighterFighter

Page 6: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

6IFAD

IFAD““Bootstrapping” Bootstrapping” VDMToolsVDMTools®®

What is IFAD? VDMTools overview Staff overview Development environment The “Bootstrapping” process Perspectives

Page 7: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

7IFAD

IFADVDMToolsVDMTools

Page 8: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

8IFAD

IFADIFAD VDMTools IFAD VDMTools AlliancesAlliances

IFAD

ISPRAS,Russia

Sidereus,Portugal

Rational,USA

JFITS,Japan

DDC-I,USA

Aichernig,Austria

Alagar,Canada

SofTools,USA

Page 9: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

9IFAD

IFADReferences, World-References, World-widewide

FranceFranceAerospatiale Espace et DefenseAerospatiale Espace et DefenseDassault AviationDassault AviationDasssault ElectroniqueDasssault ElectroniqueCISI CEA et DefenseCISI CEA et DefenseCEA LetiCEA LetiCap GeminiCap GeminiLAASLAASMatra Bae DynamicsMatra Bae Dynamics

U.K.U.K.British Aerospace Systems & British Aerospace Systems & EquipmentEquipmentBritish Aerospace DefenseBritish Aerospace DefenseAdelardAdelardICL Enterprise EngineeringICL Enterprise EngineeringRolls RoyceRolls RoyceTransitive TechnologiesTransitive Technologies

ItalyItalyENEAENEAAnsaldoAnsaldoAlstromAlstrom

The NetherlandsThe NetherlandsDutch Dept. of DefenceDutch Dept. of DefenceOriginOriginChessChess

DenmarkDenmarkDanish RailwaysDanish RailwaysBaan NordicBaan NordicOdense Steel ShipyardOdense Steel ShipyardDDC InternationalDDC International

North AmericaNorth AmericaBoeingBoeingRockwell CollinsRockwell CollinsLockheed MartinLockheed MartinDDC-I, Inc.DDC-I, Inc.Rational Software Corp.Rational Software Corp.Formal Systems Inc.Formal Systems Inc.

JapanJapanRTRI (Japan Railways)RTRI (Japan Railways)JFITSJFITS

GermanyGermanyGAO mbHGAO mbH

More than 150 clients world-wide

Page 10: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

10IFAD

IFADVDMToolsVDMTools®® Overview Overview

The Rose-VDM++ Link

Document Generator

Code Generators- C++, Java

Syntax & Type Checker

API (Corba), DL Facility

Interpreter (Debugger)

Page 11: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

11IFAD

IFADVDM for Analysis & VDM for Analysis & DesignDesign

Coding Unit Test

SoftwareDesign

Module Test

SystemAnalysis

System TestVDMModel

TestCases

AnimationAnimation

Modelling & ValidationModelling & Validation

Requirements

Final Product

Page 12: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

12IFAD

IFADDevelopment Choices Development Choices TakenTaken

Executable modelsTesting and animation

Partial “analysis” (validation)System level testing

Code generationVDM for source code

Formal refinement and formal verification

Page 13: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

13IFAD

IFAD““Bootstrapping” Bootstrapping” VDMToolsVDMTools®®

What is IFAD? VDMTools overview Staff overview Development environment The “Bootstrapping” process Perspectives

Page 14: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

14IFAD

IFADStaff OverviewStaff Overview

PGL

PBLMA

ETN

HCHVNKJNJSALTOJWTOSJKPKSPM

91 92 93 94 95 96 97 98 99 00

NPMV KdB CA BF BA

SN JKP

VS JKP

WS

JSF

Page 15: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

15IFAD

IFAD““Bootstrapping” Bootstrapping” VDMToolsVDMTools®®

What is IFAD? VDMTools overview Staff overview Development environment The “Bootstrapping” process Perspectives

Page 16: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

16IFAD

IFADDevelopment Development EnvironmentEnvironment

GNU C++/Visual C++ Generic VDM C++ library GUI: Previously:Tcl/Tk, Now: Qt flex and bison CVS/Ediff version control OSs: Windows, Linux, Unix Test environments Development procedures

Page 17: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

17IFAD

IFAD““Bootstrapping” Bootstrapping” VDMToolsVDMTools®®

What is IFAD? VDMTools overview Staff overview Development environment The “Bootstrapping” process Perspectives

Page 18: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

18IFAD

IFAD

VDM++VDM++VDM++VDM++

VDM++VDM++VDM++VDM++

The “Bootstrapping” The “Bootstrapping” ProcessProcess

VDM-SL

DS spec

VDM-SL

DS impl

VDM-SL

SS spec

VDM-SL

SS impl

VDM-SL

SM spec

VDM-SL

SM impl

VDM-SL

PM spec

VDM-SL

PM impl

VDM-SL

CG spec

VDM-SL

CG impl

Implicit time line

Page 19: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

19IFAD

IFADSpecification SizesSpecification Sizes

Component Number of VDM linesAbstract Syntax etc 3020Static Semantics 17686Interpreter 25068Code generators 31524Specification Manager 3693Dependency 792Rose-VDM++ Link 1512Proof Support 28355In total 111650

Page 20: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

20IFAD

IFADComponent CategoriesComponent Categories

Purely hand-coded VDM + hand coding VDM + code generation

Page 21: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

21IFAD

IFADPurely Hand-coded Purely Hand-coded ComponentsComponents

Scanner/parser (lex/yacc) pretty-printer (simple C++ component) GUI (previously: Tcl/Tk, now: Qt) Interface to third party tools

Rational Rose Corba for API ML for HOL

Generic VDM C++ library

Page 22: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

22IFAD

IFADVDM + Hand CodingVDM + Hand Coding

Dynamic semantics (SL and ++) Static semantics (SL and ++) Java/C++ Code generators (SL and ++) Test environments for each component Reused at implementation level Java/C++ code generators now

themselves partially code generated

Page 23: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

23IFAD

IFADMaintenance ApproachMaintenance Approach

Bugs first reproduced at specification level

Tested using the VDM debugger Check that all tests are satisfactory Implement changes of specification Rerun all tests at implementation level

Page 24: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

24IFAD

IFADVDM + code VDM + code generationgeneration

Animator for SA/RT Specification Manager (SL and ++) VDM++ to/from UML translation Proof support (SL) VDM model becomes source Trade-off with abstraction

Page 25: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

25IFAD

IFADAbstraction in modelsAbstraction in models

Initial abstract syntax

Abstract syntax for code generator

Final abstract syntax

BinaryExpr:: left : Expr opr : BinaryOp right : Expr

BinaryExpr:: left : Expr opr : BinaryOp right : Expr ti : [TypeRep]

BinaryExpr:: left : Expr opr : BinaryOp right : Expr extra : Key

Page 26: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

26IFAD

IFAD““Bootstrapping” Bootstrapping” VDMToolsVDMTools®®

What is IFAD? VDMTools overview Staff overview Development environment The “Bootstrapping” process Perspectives

Page 27: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

27IFAD

IFADFuture IdeasFuture Ideas

Expect higher use of code generation Test case generation (ISPRAS, Russia) Data Cleaning (Sidereus, Portugal) Reverse Engineering Mission-critical web development More on proof support More academic collaboration More user-friendliness

Page 28: IFAD  Dr Peter Gorm Larsen IFAD A/S Forskerparken 10A DK-5230 Odense M Denmark Ten Years of Historical Development “Bootstrapping” VDMTools

28IFAD

IFADConcluding RemarksConcluding Remarks

Taking ones “own medicine” helps Use when worthwhile Use inside lifecycle Using VDM helps us master complexity It is FUN!