|
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 Requirements |
108 |
|
|
5.5.3 Define Acceptance Criteria |
114 |
|
|
5.5.4 Define Qualification Strategy |
115 |
|
|
5.6 Summary |
115 |
|
|
6 Requirements Engineering in the Solution Domain |
117 |
|
|
6.1 What is the Solution Domain? |
117 |
|
|
6.2 Engineering Requirements from Stakeholder Requirements to System Requirements |
118 |
|
|
6.2.1 Producing the System Model |
119 |
|
|
6.2.2 Creating System Models to Derive System Requirements |
120 |
|
|
6.2.3 Banking Example |
125 |
|
|
6.2.4 Car Example |
128 |
|
|
6.2.5 Deriving Requirements from a System Model |
132 |
|
|
6.2.6 Agreeing the System Requirements with the Design Team |
133 |
|
|
6.3 Engineering Requirements from System Requirements to Subsystems |
133 |
|
|
6.3.1 Creating a System Architecture Model |
134 |
|
|
6.3.2 Deriving Requirements from an Architectural Design Model |
135 |
|
|
6.4 Other Transformations Using a Design Architecture |
135 |
|
|
6.5 Summary |
136 |
|
|
7 Advanced Traceability |
138 |
|
|
7.1 Introduction |
138 |
|
|
7.2 Elementary Traceability |
138 |
|
|
7.3 Satisfaction Arguments |
140 |
|
|
7.4 Requirements Allocation |
144 |
|
|
7.5 Reviewing Traceability |
144 |
|
|
7.6 The Language of Satisfaction Arguments |
146 |
|
|
7.7 Rich Traceability Analysis |
146 |
|
|
7.8 Rich Traceability for Quali.cation |
146 |
|
|
7.9 Implementing Rich Traceability |
147 |
|
|
7.9.1 Single-layer Rich Traceability |
147 |
|
|
7.9.2 Multi-layer Rich Traceability |
147 |
|
|
7.10 Design Documents |
148 |
|
|
7.11 Metrics for Traceability |
151 |
|
|
7.11.1 Breadth |
153 |
|
|
7.11.2 Depth |
153 |
|
|
7.11.3 Growth |
154 |
|
|
7.11.4 Balance |
155 |
|
|
7.11.5 Latent Change |
156 |
|
|
7.12 Summary |
158 |
|
|
8 Management Aspects of Requirements Engineering |
159 |
|
|
8.1 Introduction to Management |
159 |
|
|
8.2 Requirements Management Problems |
160 |
|
|
8.2.1 Summary of Requirement Management Problems |
162 |
|
|
8.3 Managing Requirements in an Acquisition Organization |
162 |
|
|
8.3.1 Planning |
162 |
|
|
8.3.2 Monitoring |
164 |
|
|
8.3.3 Changes |
165 |
|
|
8.4 Supplier Organizations |
167 |
|
|
8.4.1 Bid Management |
167 |
|
|
8.4.2 Development |
170 |
|
|
8.5 Product Organizations |
172 |
|
|
8.5.1 Planning |
173 |
|
|
8.5.2 Monitoring |
176 |
|
|
8.5.3 Changes |
176 |
|
|
8.6 Summary |
177 |
|
|
8.6.1 Planning |
177 |
|
|
8.6.2 Monitoring |
178 |
|
|
8.6.3 Changes |
178 |
|
|
9 DOORS: A Tool to Manage Requirements |
179 |
|
|
9.1 Introduction |
179 |
|
|
9.2 The Case for Requirements Management |
179 |
|
|
9.3 DOORS Architecture |
180 |
|
|
9.4 Projects, Modules and Objects |
181 |
|
|
9.4.1 DOORS Database Window |
181 |
|
|
9.4.2 Formal Modules |
181 |
|
|
9.4.3 Objects |
184 |
|
|
9.4.4 Graphical Objects |
186 |
|
|
9.4.5 Tables |
186 |
|
|
9.5 History and Version Control |
187 |
|
|
9.5.1 History |
187 |
|
|
9.5.2 Baselining |
187 |
|
|
9.6 Attributes and Views |
188 |
|
|
9.6.1 Attributes |
188 |
|
|
9.6.2 Views |
189 |
|
|
9.7 Traceability |
189 |
|
|
9.7.1 Links |
189 |
|
|
9.7.2 Traceability Reports |
190 |
|
|
9.8 Import and Export |
192 |
|
|
9.9 UML Modelling with DOORS/Analyst |
194 |
|
|
9.10 Summary |
195 |
|
|
Bibliography |
196 |
|
|
Index |
199 |
|