110 likes | 221 Views
Two courses on VDM++ for Embedded Systems: Learning by Doing. Professor Peter Gorm Larsen Engineering College of Aarhus Computer Technology & Embedded Systems (pgl@iha.dk). Background of Students. Students at MSc level but with an BSc in Engineering of embedded systems as background
E N D
Two courses on VDM++ for Embedded Systems: Learning by Doing Professor Peter Gorm Larsen Engineering College of Aarhus Computer Technology & Embedded Systems (pgl@iha.dk) August 2006
Background of Students • Students at MSc level but with an BSc in Engineering of embedded systems as background • Practically oriented • Limited introduction of proof and abstraction • Course is meant to provide them skills for precision and abstraction VDM++ Courses for Embedded Systems
Vienna Development Method • Invented at IBM’s labs in Vienna in the 70’s • VDM-SL and VDM++ • ISO Standardisation of VDM-SL • VDM++ is an object-oriented extension • 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) VDM++ Courses for Embedded Systems
Teaching Material • John Fitzgerald, Peter Gorm Larsen, Paul Mukherjee, Nico Plat and Marcel Verhoef: Validated Designs for Object-oriented Systems. Springer Verlag, 2005. • Development Guidelines for Real-Time Systems Using VDMTools, CSK public document 2006 • Tool used during the course http://www.vdmbook.com/tools.php • Rational Rose for UML models VDM++ Courses for Embedded Systems
Course Delivery • Contact with the teacher • Tuesdays 14:30 – 15:45 (I present theory) • Thursdays 13:00 – 15:45 (students present their projects) • Students read in advance of each lecture • Combination of • Strategy for lessons: quick intro to concepts and then usage in larger examples • Projects where theory is turned into practice • Using VDMTools for projects • Exam form • 15 minutes oral examination without preparation + 5 minutes for evaluation • Oral examination will be centered around projects performed • Projects will be reused and extended further in the second course VDM++ Courses for Embedded Systems
Structure of the first course • Introduction and development process • VDMTools and logic • Defining data and functionality • Modeling using unordered collections • Modeling using ordered collections • Modeling relationships • Course evaluation and revision VDM++ Courses for Embedded Systems
Projects selected by students • SAFER • Production Cell • Cash Dispenser • CyberRail • Car radio navigation system • Self navigating vehicle • Personal Medical Unit VDM++ Courses for Embedded Systems
Milestones for Projects • Week 2: Reading existing material about the project and formulating a new requirements definition for the project to undertake with focus on the purpose of the model to develop • Week 3: Complete UML class diagram for the project with signatures for operations/functions • Week 4+5: Model and validate functionality using VDM++ • Week 6: Project report is handed in to the teacher • Week 7: Evaluation of insight gained by using the model-driven approach combining VDM++ and UML VDM++ Courses for Embedded Systems
Structure of the second course • Model Structuring and Combining Views • Concurrency in VDM++ • Real-time modelling in VDM++ (over two weeks) • Distributed systems in VDM++ • Model Quality • Course evaluation and revision VDM++ Courses for Embedded Systems
The second course will use new VDM++ extensions • Developed by Marcel Verhoef and me • Presented at FM’06 conference • Enable VDM++ to describe and analyse distributed real time systems VDM++ Courses for Embedded Systems
Concluding Remarks • It has been possible to extend VDM++ for more embedded and distributed systems • “Learning by doing” has been successful • Tool support is essential • The students have acquired new skills • If they don’t use it directly afterwards at least new good principles have been incorporated • Fetch course material at http://www.vdmbook.com/teach.php VDM++ Courses for Embedded Systems