Software Engineering 1: Abstraction and ModellingSpringer Science & Business Media, 2007 M06 1 - 714 pages 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. |
Contents
3 | |
DISCRETE MATHEMATICS | 43 |
5 | 52 |
5 | 70 |
Programming Language Type Concepts | 77 |
Functions | 87 |
A XCalculus | 109 |
5 | 116 |
Sets in RSL | 263 |
Cartesians in RSL | 295 |
Lists in RSL 321 | 320 |
Maps in RSL | 349 |
HigherOrder Functions in RSL | 393 |
SPECIFICATION TYPES | 410 |
SPECIFICATION PROGRAMMING | 426 |
Imperative Specification Programming | 467 |
Algebras | 126 |
5 | 133 |
Mathematical Logic | 141 |
Proposition Evaluation Eval_PRO | 168 |
SIMPLE | 201 |
Function Definitions in RSL 221 | 220 |
PropertyOriented and ModelOriented Abstraction | 231 |
Concurrent Specification Programming | 511 |
Etcetera | 557 |
B Glossary | 567 |
Type Checking | 581 |
Indexes | 649 |
References | 687 |