This book describes an object-oriented design approach that combines the benefits of abstract modeling with the analytic power of formal methods to give designs that can be rigorously validated and assured with automated support. Aimed at software architects, designers, and developers as well as computer scientists, the elements of functional modeling are introduced using numerous examples and exercises, industrial case studies, and experience reports. Industry-strength tools support the text.
I - Models and Software Development Introduction Building a Model in VDM++: an Overview VDM++ Tool Support II - Modelling Object-oriented Systems in VDM++ Defining Data Defining Functionality Modelling Unordered Collections Modelling Ordered Collections Modelling Relationships III - Modelling in Practice: Three Case Studies Model Structuring: The Enigma Cipher Combining Views: The CSLaM System TradeOne: From Enterprise Architecture to Business Application IV - From Models to Code Concurrency in VDM++ Model Quality Implementing in Java A - Solutions to exercises Bibliography List of Acronyms Subject Index Definitions Index