Preface |
|
xiii | |
Acknowledgements |
|
xvii | |
About the Author |
|
xix | |
Chapter 1 Introduction to UML |
|
1 | (32) |
|
1.1 UML Basic Modeling Concepts |
|
|
1 | (3) |
|
1.2 Structural Elements and Diagrams |
|
|
4 | (14) |
|
1.2.1 Small Things: Objects, Classes, and Interfaces |
|
|
4 | (5) |
|
|
9 | (6) |
|
1.2.3 Big Things: Subsystems, Components, and Packages |
|
|
15 | (3) |
|
1.3 Behavioral Elements and Diagrams |
|
|
18 | (10) |
|
1.3.1 Actions and Activities |
|
|
18 | (1) |
|
1.3.2 Operations and Methods |
|
|
19 | (1) |
|
|
20 | (1) |
|
|
21 | (5) |
|
|
26 | (2) |
|
1.4 Use Case and Requirements Models |
|
|
28 | (4) |
|
|
32 | (1) |
Chapter 2 The Harmony Process |
|
33 | (34) |
|
|
33 | (1) |
|
2.2 The Harmony Development Process |
|
|
34 | (10) |
|
|
34 | (5) |
|
2.2.2 Harmony Process Overview |
|
|
39 | (5) |
|
2.3 The Systems Engineering Harmony Workflows in Detail |
|
|
44 | (2) |
|
2.3.1 System Functional Analysis |
|
|
44 | (2) |
|
2.3.2 Build Use Case Model Workflow |
|
|
46 | (1) |
|
2.3.3 Design Syntheses: System Architectural Design |
|
|
46 | (1) |
|
2.4 The Hand-off from Systems Engineering |
|
|
46 | (4) |
|
2.5 The Software Workflows in Detail |
|
|
50 | (15) |
|
2.5.1 Analysis with the Harmony Process |
|
|
50 | (7) |
|
2.5.2 Design with the Harmony Process |
|
|
57 | (5) |
|
2.5.3 Verification and Validation (V&V) |
|
|
62 | (1) |
|
2.5.4 Increment Review (Party!) Workflow |
|
|
63 | (2) |
|
|
65 | (2) |
Chapter 3 Meeting Industry Standards |
|
67 | (22) |
|
|
67 | (1) |
|
3.2 On the Importance of Being Standard |
|
|
67 | (1) |
|
3.3 Architectural Framework Standards (I'm looking at you UPDM) |
|
|
68 | (4) |
|
|
72 | (1) |
|
|
72 | (4) |
|
3.4.1 Process Requirements |
|
|
74 | (2) |
|
|
76 | (8) |
|
|
76 | (3) |
|
|
79 | (3) |
|
|
82 | (1) |
|
3.5.4 Complying with DO-178B/C Using the Harmony Process |
|
|
83 | (1) |
|
|
84 | (1) |
|
|
84 | (3) |
|
|
87 | (1) |
|
|
88 | (1) |
Chapter 4 Specifying Requirements |
|
89 | (22) |
|
|
89 | (1) |
|
4.2 Representing Requirements in UML and SysML |
|
|
90 | (11) |
|
4.3 Specification View: State Machines for Requirements Capture |
|
|
101 | (8) |
|
4.3.1 Developing the State Machine in the Harmony Nanocycle |
|
|
102 | (7) |
|
|
109 | (2) |
Chapter 5 Systems Architecture: Deployment and Subsystems Architecture |
|
111 | (38) |
|
|
111 | (25) |
|
5.2 The Hand-off from Systems to Downstream Engineering |
|
|
136 | (10) |
|
|
146 | (3) |
Chapter 6 Dependability Architecture |
|
149 | (30) |
|
|
149 | (3) |
|
6.2 A (Not-So) Quick Note about Design Patterns |
|
|
152 | (3) |
|
6.2.1 Construct the Initial Model |
|
|
153 | (1) |
|
6.2.2 Identify Important Design Criteria |
|
|
153 | (1) |
|
6.2.3 Rank Design Criteria |
|
|
154 | (1) |
|
6.2.3 Select Design Patterns and Technologies |
|
|
154 | (1) |
|
6.2.4 Apply Design Patterns and Technologies |
|
|
155 | (1) |
|
6.2.5 Validate Design Solution |
|
|
155 | (1) |
|
6.3 What is a Design Pattern? |
|
|
155 | (20) |
|
6.3.1 Basic Structure of Design Patterns |
|
|
156 | (1) |
|
6.3.2 Using Design Patterns in Development |
|
|
157 | (18) |
|
|
175 | (4) |
Chapter 7 High-Fidelity Modeling |
|
179 | (40) |
|
|
179 | (1) |
|
7.2 A Quick Note about Structured Design with UML |
|
|
180 | (1) |
|
7.3 High-Fidelity Modeling Workflow |
|
|
181 | (1) |
|
7.4 Key Strategies for Object Identification |
|
|
182 | (34) |
|
7.4.1 Underline the Nouns |
|
|
182 | (2) |
|
7.4.2 Identify the Causal Agents |
|
|
184 | (1) |
|
7.4.3 Identify Services (Passive Contributors or Server Objects) |
|
|
184 | (1) |
|
7.4.4 Identify Messages and Information Flows |
|
|
184 | (1) |
|
7.4.5 Identify Real-World Items |
|
|
184 | (1) |
|
7.4.6 Identify Physical Devices |
|
|
185 | (1) |
|
7.4.7 Identify Key Concepts |
|
|
185 | (1) |
|
7.4.8 Identify Transactions |
|
|
185 | (1) |
|
7.4.9 Identify Persistent Information |
|
|
185 | (1) |
|
7.4.10 Identify Visual Elements |
|
|
186 | (1) |
|
7.4.11 Identify Control Elements |
|
|
186 | (1) |
|
|
186 | (30) |
|
|
216 | (3) |
Chapter 8 Distribution Architecture |
|
219 | (6) |
|
|
219 | (4) |
|
|
223 | (2) |
Chapter 9 Concurrency and Resource Architecture |
|
225 | (18) |
|
9.1 What is the Concurrency and Resource Architecture? |
|
|
225 | (9) |
|
9.2 Harmony Concurrency and Resource Architecture Workflow |
|
|
234 | (7) |
|
|
241 | (2) |
Chapter 10 Collaboration and Detailed Design |
|
243 | (34) |
|
|
243 | (1) |
|
10.2 Collaboration Design |
|
|
244 | (7) |
|
10.2.1 Delegation Pattern Strategy |
|
|
247 | (1) |
|
10.2.2 Interface Abstraction Pattern Strategy |
|
|
247 | (4) |
|
|
251 | (23) |
|
|
274 | (3) |
Chapter 11 Specifying Requirements: Answers |
|
277 | (36) |
|
11.1 Answer 4.1: Identifying Kinds of Requirements |
|
|
277 | (1) |
|
11.2 Answer 4.2: Identifying Use Cases for the Roadrunner Traffic Light Control System |
|
|
277 | (3) |
|
11.2.1 Additional Questions |
|
|
280 | (1) |
|
11.3 Answer 4.3: Mapping Requirements to Use Cases |
|
|
280 | (1) |
|
11.4 Answer 4.4: Identifying Use Cases for the Coyote UAV System |
|
|
281 | (2) |
|
11.4.1 Additional Questions |
|
|
282 | (1) |
|
11.5 Answer 4.5: Create a Requirements Table |
|
|
283 | (1) |
|
11.6 Answer 4.6: Capturing Quality of Service Requirements |
|
|
283 | (1) |
|
11.7 Answer 4.7: Operational View: Identifying Traffic Light Scenarios |
|
|
284 | (7) |
|
11.8 Answer 4.8: Operational View: Coyote UAV Optical Surveillance Scenarios |
|
|
291 | (3) |
|
11.9 Answer 4.9: Specification View: Use Case Descriptions |
|
|
294 | (1) |
|
11.10 Answer 4.10: Simple State Machine Specification |
|
|
295 | (1) |
|
11.11 Answer 4.11: Specification View: Capturing Complex Requirements |
|
|
296 | (9) |
|
11.11.1 Step 1: No Cars or Pedestrians Are Considered (Just Get Through Traffic Working) |
|
|
299 | (3) |
|
11.11.2 Step 2: Add Turn Lanes |
|
|
302 | (3) |
|
11.11.3 Step 3: Add Pedestrians |
|
|
305 | (1) |
|
11.11.4 Additional Questions |
|
|
305 | (1) |
|
11.12 Answer 4.12: Operational to Specification View: Capturing Operational Contracts |
|
|
305 | (7) |
|
11.12.1 Step 1: Draw the Block Diagram - |
|
|
306 | (2) |
|
11.12.2 Step 2: Define the Interfaces |
|
|
308 | (1) |
|
11.12.3 Step 3: Defining Pre- and Postconditions for the Interfaces |
|
|
308 | (1) |
|
11.12.4 Step 4: Construct a Use-Case Activity Diagram Representing All of The Scenarios Previously Specified for the Use Case |
|
|
309 | (1) |
|
11.12.5 Step 5: Define a State Machine for the Use Case Block that is Consistent with the Set of Scenarios |
|
|
309 | (3) |
|
|
312 | (1) |
Chapter 12 Deployment and Subsystems Architecture: Answers |
|
313 | (36) |
|
12.1 Answer 5.1: Organizing the Systems Model |
|
|
313 | (3) |
|
12.1.1 The Roadrunner Model |
|
|
313 | (1) |
|
12.1.2 The CUAV Suite of Models |
|
|
313 | (3) |
|
12.2 Answer 5.2: Subsystem Identification |
|
|
316 | (7) |
|
12.3 Answer 5.3: Mapping Operational Contracts into the Subsystem Architecture |
|
|
323 | (8) |
|
12.4 Answer 5.4: Identifying Subsystem Use Cases |
|
|
331 | (6) |
|
12.5 Answer 5.5: Creating the Shared Model |
|
|
337 | (3) |
|
12.6 Answer 5.6: Initiating the Subsystem Model |
|
|
340 | (9) |
Chapter 13 Dependability Architecture: Answers |
|
349 | (20) |
|
13.1 Answer 6.1: Safety Architecture |
|
|
349 | (11) |
|
13.2 Answer 6.2: Reliability Architecture |
|
|
360 | (1) |
|
13.3 Answer 6.3: Security Architecture |
|
|
361 | (8) |
Chapter 14 High-Fidelity Modeling: Answers |
|
369 | (42) |
|
14.1 Answer 7.1: Apply Nouns and Causal Agents Strategies |
|
|
369 | (13) |
|
14.2 Answer 7.2: Apply Services and Messages Strategies |
|
|
382 | (3) |
|
14.3 Answer 7.3: Apply the Strategies with a Test-Driven Development Approach |
|
|
385 | (7) |
|
14.3.1 Step 1: Get the Light Working |
|
|
387 | (1) |
|
14.3.2 Step 2: Add a Controller and Step a Single Light through its States |
|
|
387 | (1) |
|
14.3.3 Step 3: Add Through Lights for Both Primary and Secondary Roads and Their Control |
|
|
388 | (2) |
|
14.3.4 Step 3.1: Convert TrafficController State Machine to And-States |
|
|
390 | (2) |
|
14.3.5 Step 4: Add Car Sensor for Turn Lanes |
|
|
392 | (1) |
|
14.3.6 Step 5: Add the Second Turn Lane |
|
|
393 | (1) |
|
14.3.7 Step 6: Add Pedestrian Buttons and Identify Where Processing of Pedestrian Requests Will Be Handled |
|
|
394 | (2) |
|
14.3.8 Step 7: Handle Pedestrian Requests |
|
|
396 | (3) |
|
14.3.9 Test-Driven Development for Coyote UAV |
|
|
399 | (12) |
Chapter 15 Distribution Architecture: Answers |
|
411 | (8) |
|
15.1 Answer 8.1: Roadrunner Distribution Architecture |
|
|
411 | (1) |
|
15.2 Answer 8.2: Coyote UAV Distribution Architecture |
|
|
411 | (8) |
Chapter 16 Concurrency and Resource Architecture: Answers |
|
419 | (4) |
|
16.1 Answer 9.1: Roadrunner Concurrency and Resource Architecture |
|
|
419 | (1) |
|
16.2 Answer 9.2: Reconnaissance Concurrency and Resource Architecture |
|
|
419 | (4) |
Chapter 17 Collaboration and Detailed Design: Answers |
|
423 | (20) |
|
17.1 Answer 10.1: Applying Collaboration Design Patterns: Part 1 |
|
|
423 | (1) |
|
17.2 Answer 10.2: Applying Collaboration Design Patterns: Part 2 |
|
|
424 | (5) |
|
17.3 Answer 10.3: Applying Detailed Design State Behavioral Patterns |
|
|
429 | (5) |
|
|
432 | (2) |
|
17.4 Answer 10.4: Applying Detailed Design Idioms |
|
|
434 | (9) |
Appendix A: The Roadrunner™ Intersection Controller System Specification |
|
443 | (12) |
Appendix B: The Coyote Unmanned Aerial Vehicle System (CUAVS) |
|
455 | (12) |
Appendix C: UML Notational Summary |
|
467 | (24) |
Index |
|
491 | |