The art, craft, discipline, logic, practice, and science of developing large-scale software products needs a believable, professional base. The textbooks in this three-volume set combine informal, engineeringly sound practice with the rigour of formal, mathematics-based approaches. Volume 1 covers the basic principles and techniques of formal methods abstraction and modelling. First this book provides a sound, but simple basis of insight into discrete mathematics: numbers, sets, Cartesians, types, functions, the Lambda Calculus, algebras, and mathematical logic. Then it trains its readers in basic property- and model-oriented specification principles and techniques. The model-oriented concepts that are common to such specification languages as B, VDM-SL, and Z are explained here using the RAISE specification language (RSL). This book then covers the basic principles of applicative (functional), imperative, and concurrent (parallel) specification programming. Finally, the volume contains a comprehensive glossary of software engineering, and extensive indexes and references. These volumes are suitable for self-study by practicing software engineers and for use in university undergraduate and graduate courses on software engineering. Lecturers will be supported with a comprehensive guide to designing modules based on the textbooks, with solutions to many of the exercises presented, and with a complete set of lecture slides.
Author(s): Dines Bjørner
Series: Texts in Theoretical Computer Science. An EATCS Series
Publisher: Springer
Year: 2006
Language: English
Pages: 753
Front Matter....Pages 1-1
Introduction....Pages 3-42
Front Matter....Pages 43-43
Numbers....Pages 45-54
Sets....Pages 55-61
Cartesians....Pages 63-70
Types....Pages 71-85
Functions....Pages 87-108
A λ-Calculus....Pages 109-125
Algebras....Pages 127-140
Mathematical Logic....Pages 141-199
Front Matter....Pages 201-204
Atomic Types and Values in RSL....Pages 205-219
Function Definitions in RSL....Pages 221-230
Property-Oriented and Model-Oriented Abstraction....Pages 231-262
Sets in RSL....Pages 263-293
Cartesians in RSL....Pages 295-319
Lists in RSL....Pages 321-347
Maps in RSL....Pages 349-392
Higher-Order Functions in RSL....Pages 393-409
Front Matter....Pages 411-411
Types in RSL....Pages 413-425
Front Matter....Pages 427-428
Applicative Specification Programming....Pages 429-466
Imperative Specification Programming....Pages 467-510
Front Matter....Pages 427-428
Concurrent Specification Programming....Pages 511-554
Front Matter....Pages 555-555
Etcetera!....Pages 557-560