Preface Reasons for Writing These Volumes Shortcomings of These Volumes Methods of Approach A New Look at Software Formal Techniques“Light” The“Super Programmer” what Is Software Engineering? The Author’S Aspirations Role of These Volumes in an SE Education Programme Why So Much Material? How to Use These Volumes in a Course Bfief Guide to the Book Guide to This Volume Acknowledgments Part Ⅰ OPENING 1 Introduction 1.1 Setting the Stage 1.2 A Software Engineering Triptych 1.2.1 Software Versus Systems Development 1.2.2 Motivating the Triptych 1.2.3 Domain Engineering 1.2.4 Requirements Engineering 1.2.5 Software Design 1.2.6 Discussion 1.3 Documentation 1.3.1 Document Kinds 1.3.2 Phase,Stage and Step Documents 1.3.3 Informative Documents 1.3.4 Descriptive Documents 1.3.5 Analytic Documents 1.4 Formal:r:echniques and Formal Tools 1.4.1 On Formal Techniques and Languages 1.4.2 Formal Techniques in SE Textbooks 1.4.3 Some Programming Languages 1.4.4 Some Formal Specification Languages 1.4.5 Insufficiency of Current.Formal Languages 1.4.6 Other Formal Tools 1.4.7 Why Formal Techniques and Formal Tools? 1.5 Method and Methodology 1.5.1 Method 1.5.2 Methodology 1.5.3 Discussion 1.5.4 Meta-methodology 1.6 The Very Bases of Software 1.6.1 Didactics and Paradigms 1.6.2 Pragmatics,Semantics and Syntax 1.6.3 On Specification and Programming Paradigms 1.6.4 Descriptions,Prescriptions and Specifications 1.6.5 Metalanguages 1.6.6 Summary 1.7 Aims and Objectives 1.7.1 Aims 1.7.2 Objectives 1.7.3 Discussion 1.8 BibnographiCal Notes 1.9 Exercises Part Ⅱ DISCRETE MATHEMATICS 2 Numbers 3 Sets 4 Cartesians 5 Types 6 Functions 7 A λ-Calculus 8 Algebras 9 Mathematical Logic Part Ⅲ SIMPLE RSL 10 Atomic Types and Values in RSL 11 Function Definitions in RSL 12 Property-Oriented and Model-Oriented Abstraction 13 Sets in RSL 14 Cartesians in RSL 15 Lists in RSL 16 Maps in RSL 17 Higher-Order Functions in RSL Part Ⅳ SPECIFIVCATION TYPES 18 Types in RSL Part Ⅴ SPECIFICATION PROGRANMMING 19 Applicative Specification Programming 20 Imperative Specification Programming 21 Concurrent Specification Programming Part Ⅵ AND SO ON! 22 Etcetera! Part Ⅶ APPENDIXES A Common Exercise Topics B Glossary C Indexes References