| Preface to the Second Edition | 6 |
---|
| Preface to the First Edition | 7 |
---|
| Acknowledgements | 9 |
---|
| Contents | 10 |
---|
| 1 Introduction | 13 |
---|
| 1.1 Introduction to Requirements | 13 |
| 1.2 Introduction to Systems Engineering | 15 |
| 1.3 Requirements and Quality | 18 |
| 1.4 Requirements and the Lifecycle | 18 |
| 1.5 Requirements Traceability | 21 |
| 1.6 Requirements and Modelling | 25 |
| 1.7 Requirements and Testing | 27 |
| 1.8 Requirements in the Problem and Solution Domains | 27 |
| 1.9 How to Read This Book | 30 |
| 2 A Generic Process for Requirements Engineering | 32 |
---|
| 2.1 Introduction | 32 |
| 2.2 Developing Systems | 32 |
| 2.3 Generic Process Context | 35 |
| 2.3.1 Input Requirements and Derived Requirements | 36 |
| 2.3.2 Acceptance Criteria and Qualification Strategy | 36 |
| 2.4 Generic Process Introduction | 38 |
| 2.4.1 Ideal Development | 38 |
| 2.4.2 Development in the Context of Change | 39 |
| 2.5 Generic Process Information Model | 40 |
| 2.5.1 Information Classes | 40 |
| 2.5.2 Agreement State | 42 |
| 2.5.3 Quali.cation State | 43 |
| 2.5.4 Satisfaction State | 44 |
| 2.5.5 Information Model Constraints | 45 |
| 2.6 Generic Process Details | 45 |
| 2.6.1 Agreement Process | 45 |
| 2.6.2 Analyze and Model | 47 |
| 2.6.3 Derive Requirements and Qualification Strategy | 49 |
| 2.7 Summary | 51 |
| 3 System Modelling for Requirements Engineering | 53 |
---|
| 3.1 Introduction | 53 |
| 3.2 Representations for Requirements Engineering | 54 |
| 3.2.1 Data Flow Diagrams | 54 |
| 3.2.2 Entity Relationship Diagrams | 59 |
| 3.2.3 Statecharts | 60 |
| 3.2.4 Object-oriented Approaches | 61 |
| 3.3 Methods | 63 |
| 3.3.1 Viewpoint Methods | 64 |
| 3.3.2 Object-oriented Methods | 73 |
| 3.3.3 The UML Notation | 75 |
| 3.3.4 Formal Methods | 79 |
| 3.4 Summary | 81 |
| 4 Writing and Reviewing Requirements | 82 |
---|
| 4.1 Introduction | 82 |
| 4.2 Requirements for Requirements | 83 |
| 4.3 Structuring Requirements Documents | 84 |
| 4.4 Key Requirements | 85 |
| 4.5 Using Attributes | 85 |
| 4.6 Ensuring Consistency Across Requirements | 86 |
| 4.7 Value of a Requirement | 86 |
| 4.8 The Language of Requirements | 89 |
| 4.9 Requirement Boilerplates | 90 |
| 4.10 Granularity of Requirements | 92 |
| 4.11 Criteria for Writing Requirements Statements | 94 |
| 4.12 Summary | 95 |
| 5 Requirements Engineering in the Problem Domain | 96 |
---|
| 5.1 What is the Problem Domain? | 96 |
| 5.2 Instantiating the Generic Process | 97 |
| 5.3 Agree Requirements with Customer | 98 |
| 5.4 Analyze and Model | 99 |
| 5.4.1 Identify Stakeholders | 99 |
| 5.4.2 Create Use Scenarios | 101 |
| 5.4.3 Scoping the System | 104 |
| 5.5 Derive Requirements | 104 |
| 5.5.1 Define Structure | 105 |
| 5.5.2 Capture Requirement
|