| Preface |
|
ix | |
| Part I Introduction |
|
1 | (68) |
|
Chapter 1 A Discipline of Software Engineering Design |
|
|
3 | (30) |
|
1.1 What Is Software Design? |
|
|
3 | (9) |
|
|
|
12 | (4) |
|
1.3 Software Design in the Life Cycle |
|
|
16 | (8) |
|
1.4 Software Engineering Design Methods* |
|
|
24 | (3) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
27 | (6) |
|
Chapter 2 Software Design Processes and Management |
|
|
33 | (36) |
|
2.1 Specifying Processes with UML Activity Diagrams |
|
|
33 | (14) |
|
2.2 Software Design Processes |
|
|
47 | (9) |
|
2.3 Software Design Management* |
|
|
56 | (7) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
63 | (6) |
| Part II Software Product Design |
|
69 | (122) |
|
Chapter 3 Context of Software Product Design |
|
|
71 | (27) |
|
|
|
71 | (3) |
|
|
|
74 | (5) |
|
3.3 Project Mission Statement |
|
|
79 | (6) |
|
3.4 Software Requirements Specification |
|
|
85 | (7) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
92 | (6) |
|
Chapter 4 Product Design Analysis |
|
|
98 | (22) |
|
4.1 Product Design Process Overview |
|
|
98 | (6) |
|
|
|
104 | (5) |
|
4.3 Needs Documentation and Analysis |
|
|
109 | (6) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
115 | (5) |
|
Chapter 5 Product Design Resolution |
|
|
120 | (37) |
|
5.1 Generating Alternative Requirements |
|
|
121 | (5) |
|
|
|
126 | (5) |
|
5.3 Evaluating and Selecting Alternatives |
|
|
131 | (5) |
|
5.4 Finalizing a Product Design |
|
|
136 | (6) |
|
|
|
142 | (7) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
149 | (8) |
|
Chapter 6 Designing with Use Cases |
|
|
157 | (34) |
|
6.1 UML Use Case Diagrams |
|
|
158 | (10) |
|
6.2 Use Case Descriptions |
|
|
168 | (10) |
|
|
|
178 | (7) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
185 | (6) |
| Part III Software Engineering Design |
|
191 | (270) |
|
Chapter 7 Engineering Design Analysis |
|
|
193 | (33) |
|
7.1 Introduction to Engineering Design Analysis |
|
|
194 | (6) |
|
7.2 UML Class and Object Diagrams |
|
|
200 | (12) |
|
7.3 Making Conceptual Models |
|
|
212 | (8) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
220 | (6) |
|
Chapter 8 Engineering Design Resolution |
|
|
226 | (27) |
|
8.1 Engineering Design Resolution Activities |
|
|
226 | (5) |
|
8.2 Engineering Design Principles |
|
|
231 | (2) |
|
8.3 Modularity Principles |
|
|
233 | (11) |
|
8.4 Implementability and Aesthetic Principles |
|
|
244 | (4) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
248 | (5) |
|
Chapter 9 Architectural Design |
|
|
253 | (34) |
|
9.1 Introduction to Architectural Design |
|
|
254 | (5) |
|
9.2 Specifying Software Architectures |
|
|
259 | (10) |
|
9.3 UML Package and Component Diagrams |
|
|
269 | (8) |
|
9.4 UML Deployment Diagrams* |
|
|
277 | (4) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
281 | (6) |
|
Chapter 10 Architectural Design Resolution |
|
|
287 | (31) |
|
10.1 Generating and Improving Software Architectures |
|
|
288 | (12) |
|
10.2 Evaluating and Selecting Software Architectures |
|
|
300 | (7) |
|
10.3 Finalizing Software Architectures |
|
|
307 | (5) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
312 | (6) |
|
Chapter 11 Static Mid-Level Object-Oriented Design: Class Models |
|
|
318 | (41) |
|
11.1 Introduction to Detailed Design |
|
|
319 | (5) |
|
11.2 Advanced UML Class Diagrams |
|
|
324 | (12) |
|
11.3 Drafting a Class Model |
|
|
336 | (9) |
|
11.4 Static Modeling Heuristics |
|
|
345 | (7) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
352 | (7) |
|
Chapter 12 Dynamic Mid-Level Object-Oriented Design: Interaction Models |
|
|
359 | (36) |
|
12.1 UML Sequence Diagrams |
|
|
359 | (15) |
|
12.2 Interaction Design Process |
|
|
374 | (7) |
|
12.3 Interaction Modeling Heuristics |
|
|
381 | (8) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
389 | (6) |
|
Chapter 13 Dynamic Mid-Level State-Based Design: State Models |
|
|
395 | (34) |
|
|
|
395 | (12) |
|
13.2 Advanced UML State Diagrams* |
|
|
407 | (8) |
|
13.3 Designing with State Diagrams |
|
|
415 | (8) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
423 | (6) |
|
Chapter 14 Low-Level Design |
|
|
429 | (32) |
|
14.1 Visibility, Accessibility, and Information Hiding |
|
|
430 | (9) |
|
14.2 Operation Specification |
|
|
439 | (9) |
|
14.3 Algorithm and Data Structure Specification* |
|
|
448 | (4) |
|
|
|
452 | (4) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
456 | (5) |
| Part IV Patterns in Software Design |
|
461 | (130) |
|
Chapter 15 Architectural Styles |
|
|
463 | (27) |
|
15.1 Patterns in Software Design |
|
|
463 | (4) |
|
15.2 Layered Architectures |
|
|
467 | (6) |
|
15.3 Other Architectural Styles |
|
|
473 | (13) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
486 | (4) |
|
Chapter 16 Mid-Level Object-Oriented Design Patterns |
|
|
490 | (20) |
|
16.1 Collection Iteration |
|
|
490 | (8) |
|
16.2 The Iterator Pattern |
|
|
498 | (6) |
|
16.3 Mid-Level Design Pattern Categories |
|
|
504 | (2) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
506 | (4) |
|
Chapter 17 Broker Design Patterns |
|
|
510 | (30) |
|
|
|
510 | (3) |
|
17.2 The Façade and Mediator Patterns |
|
|
513 | (9) |
|
17.3 The Adapter Patterns |
|
|
522 | (7) |
|
|
|
529 | (5) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
534 | (6) |
|
Chapter 18 Generator Design Patterns |
|
|
540 | (28) |
|
18.1 The Generator Category |
|
|
540 | (4) |
|
18.2 The Factory Patterns |
|
|
544 | (9) |
|
18.3 The Singleton Pattern |
|
|
553 | (4) |
|
18.4 The Prototype Pattern* |
|
|
557 | (7) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
564 | (4) |
|
Chapter 19 Reactor Design Patterns |
|
|
568 | (23) |
|
19.1 The Reactor Category |
|
|
568 | (4) |
|
|
|
572 | (6) |
|
19.3 The Observer Pattern |
|
|
578 | (8) |
|
Further Reading, Exercises, Review Quiz Answers |
|
|
586 | |
| Appendices |
|
|
|
|
591 | (18) |
|
Appendix B AquaLush Case Study |
|
|
609 | (80) |
|
|
|
689 | (4) |
| Index |
|
693 | |