Title: Ten%20Years%20of%20Historical%20Development
1Ten Years of Historical Development
Bootstrapping VDMTools
Dr Peter Gorm Larsen IFAD A/S Forskerparken
10A DK-5230 Odense M Denmark
www.ifad.dk
2Bootstrapping VDMTools
- What is IFAD?
- VDMTools overview
- Staff overview
- Development environment
- The Bootstrapping process
- Perspectives
3IFAD Capabilities
IFAD provides Professional software development
tools that assist engineers in producing
high-quality software IFAD ensures Technology
transfer by offering training courses, customer-sp
ecific consultancy, and by organising
seminars IFAD offers Subcontracted software
specification and development performed by highly
qualified and experienced personnel
4IFAD Organisation Chart
Management
Subcontracting
Consultancy
Tools
Products
Henrik Voss
VDMTools
MUSTER
Sales
Services
Methods Tools
Training Simulation
5Boeing/Joint Strike Fighter
6Bootstrapping VDMTools
- What is IFAD?
- VDMTools overview
- Staff overview
- Development environment
- The Bootstrapping process
- Perspectives
7VDMTools
8IFAD VDMTools Alliances
Sidereus, Portugal
ISPRAS, Russia
Rational, USA
SofTools, USA
Technical partners
IFAD
DDC-I, USA
Fellows
Distributors
Alagar, Canada
JFITS, Japan
Aichernig, Austria
9References, World-wide
More than 150 clients world-wide
France Aerospatiale Espace et Defense Dassault
Aviation Dasssault Electronique CISI CEA et
Defense CEA Leti Cap Gemini LAAS Matra Bae
Dynamics U.K. British Aerospace Systems
Equipment British Aerospace Defense Adelard ICL
Enterprise Engineering Rolls Royce Transitive
Technologies
North America Boeing Rockwell Collins Lockheed
Martin DDC-I, Inc. Rational Software Corp. Formal
Systems Inc. Japan RTRI (Japan
Railways) JFITS Germany GAO mbH
Italy ENEA Ansaldo Alstrom The
Netherlands Dutch Dept. of Defence Origin Chess D
enmark Danish Railways Baan Nordic Odense Steel
Shipyard DDC International
10VDMTools Overview
11VDM for Analysis Design
Animation
System Analysis
System Test
VDM Model
Test Cases
Modelling Validation
Software Design
Module Test
Coding
Unit Test
12Development Choices Taken
- Executable models
- Testing and animation
- Partial analysis (validation)
- System level testing
- Code generation
- VDM for source code
- Formal refinement and formal verification
13Bootstrapping VDMTools
- What is IFAD?
- VDMTools overview
- Staff overview
- Development environment
- The Bootstrapping process
- Perspectives
14Staff Overview
91
92
93
94
95
96
97
98
99
00
PGL
MV
KdB
CA
BF
BA
NP
SN
JKP
ETN
PBL
MA
HC
VS
JKP
HV
NK
JNJ
SA
WS
LTO
JWT
OS
JKP
KS
JSF
PM
15Bootstrapping VDMTools
- What is IFAD?
- VDMTools overview
- Staff overview
- Development environment
- The Bootstrapping process
- Perspectives
16Development Environment
- GNU C/Visual C
- Generic VDM C library
- GUI PreviouslyTcl/Tk, Now Qt
- flex and bison
- CVS/Ediff version control
- OSs Windows, Linux, Unix
- Test environments
- Development procedures
17Bootstrapping VDMTools
- What is IFAD?
- VDMTools overview
- Staff overview
- Development environment
- The Bootstrapping process
- Perspectives
18The Bootstrapping Process
VDM-SL DS spec
VDM-SL DS impl
Implicit time line
19Specification Sizes
20Component Categories
- Purely hand-coded
- VDM hand coding
- VDM code generation
21Purely Hand-coded Components
- 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
22VDM 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
23Maintenance 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
24VDM code generation
- Animator for SA/RT
- Specification Manager (SL and )
- VDM to/from UML translation
- Proof support (SL)
- VDM model becomes source
- Trade-off with abstraction
25Abstraction 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
26Bootstrapping VDMTools
- What is IFAD?
- VDMTools overview
- Staff overview
- Development environment
- The Bootstrapping process
- Perspectives
27Future 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
28Concluding Remarks
- Taking ones own medicine helps
- Use when worthwhile
- Use inside lifecycle
- Using VDM helps us master complexity
- It is FUN!