Introduction to
Software Engineering Design
Processes, Principles, and Patterns with UML2
Christopher Fox
PEARSON
Addison
Weslev
Boston San Francisco N e w York
London Toronto Sydney Tokyo Singapore Madrid
Mexico City Munich Paris Cape Town Hong Kong Montreal
Contents
Preface
Part I
Chapter 1
Chapter 2
Part I I
Chapter 3
Chapter 4
Chapter 5
ix
Introduction
A Discipiine of Software Engineering Design
1.1 What Is Software Design?
3
1.2 Varieties of Design
12
1.3 Software Design in the Life Cycle
16
1.4 Software Engineering Design Methods*
24
Further Reading, Exercises, Review Quiz Answers
Software Design Processes and Management
2.1 Specifying Processes with UML Activity Diagrams
2.2 Software Design Processes
47
2.3 Software Design Management*
56
Further Reading, Exercises, Review Quiz Answers
Software Product Design
TJ
33
33
63
69
Context of Software Product Design
71
3.1 Products and Markets
71
3.2 Product Planning
74
3.3 Project Mission Statement
79
3.4 Software Requirements Specification
85
Further Reading, Exercises, Review Quiz Answers
9il
Product Design Analysis
98
4.1 Product Design Process Overview
98
4.2 Needs Elicitation
104
4.3 Needs Documentation and Analysis
109
Further Reading, Exercises, Review Quiz Answers
115
Product Design Resolution
120
5.1 Generating Alternative Requirements
5.2 Stating Requirements
126
5.3 Evaluating and Selecting Alternatives
121
131
v
VI
Contents
Chapter 6
Part I I I
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 1 1
5.4 Finalizing a Product Design
136
5.5 Prototyping
142
Further Reading, Exercises, Review Quiz Answers
149
Designing with Use Cases
157
6.1 UML Use Case Diagrams
158
6.2 Use Case Descriptions
168
6.3 Use Case Models
178
Further Reading, Exercises, Review Quiz Answers
185
S o f t w a r e Engineering Design
191
Engineering Design Analysis
193
7.1 Introduction to Engineering Design Analysis
7.2 UML Class and Object Diagrams
200
7.3 Making Conceptual Models
212
Further Reading, Exercises, Review Quiz Answers
194
220
Engineering Design Resolution
226
8.1 Engineering Design Resolution Activities
226
8.2 Engineering Design Principles
231
8.3 Modularity Principles
233
8.4 Implementability and Aesthetic Principles
244
Further Reading, Exercises, Review Quiz Answers
248
Architectural Design
253
9.1 Introduction to Architectural Design
254
9.2 Specifying Software Architectures
259
9.3 UML Package and Component Diagrams
269
9.4 UML Deployment Diagrams*
277
Further Reading, Exercises, Review Quiz Answers
281
Architectural Design Resolution
287
10.1 Generating and Improving Software Architectures
10.2 Evaluating and Selecting Software Architectures
10.3 Finalizing Software Architectures
307
Further Reading, Exercises, Review Quiz Answers
288
300
312
Static Mid-Level Object-Oriented Design: Class Models
11.1 Introduction to Detailed Design
319
11.2 Advanced UML Class Diagrams
324
318
Contents
Chapter 12
11.3 Drafting a Class Model
336
11.4 Static Modeling Heuristics
345
Further Reading, Exercises, Review Quiz Answers
352
Dynamic Mid-Level Object-Oriented Design:
Interaction Models
359
12.1 UML Sequence Diagrams
359
12.2 Interaction Design Process
374
12.3 Interaction Modeling Heuristics
381
Further Reading, Exercises, Review Quiz Answers
389
Chapter 13
Dynamic Mid-Level State-Based Design: State Models
13.1 UML State Diagrams
395
13.2 Advanced UML State Diagrams*
407
13.3 Designing with State Diagrams
415
Further Reading, Exercises, Review Quiz Answers
423
Chapter 14
Low-Level Design
429
14.1 Visibility, Accessibiiity, and Information Hiding
14.2 Operation Specification
439
14.3 Algorithm and Data Structure Specification*
14.4 Design Finalization
452
Further Reading, Exercises, Review Quiz Answers
Part IV
Chapter 15
Chapter 16
Chapter 17
Patterns in Software Design
448
456
461
Architectural Styles
463
15.1 Patterns in Software Design
463
15.2 Layered Architectures
467
15.3 Other Architectural Styles
473
Further Reading, Exercises, Review Quiz Answers
Mid-Level Object-Oriented Design Patterns
16.1 Collection Iteration
490
16.2 The Iterator Pattern
498
16.3 Mid-Level Design Pattern Categories
504
Further Reading, Exercises, Review Quiz Answers
Broker Design Patterns
510
17.1 The Broker Category
510
17.2 The Facade and Mediator Patterns
430
513
486
490
506
395
vii
viii
Contents
Chapter 18
Chapter 19
17.3 The Adapter Patterns
522
17.4 The Proxy Pattern*
529
Further Reading, Exerdses, Review Quiz Answers
534
Generator Design Patterns
540
18.1 The Generator Category
540
18.2 The Factory Patterns
544
18.3 The Singleton Pattern
553
18.4 The Prototype Pattern*
557
Further Reading, Exerdses, Review Quiz Answers
564
Reactor Design Patterns
568
19.1 The Reactor Category
568
19.2 The Command Pattern
572
19.3 The Observer Pattern
578
Further Reading, Exerdses, Review Quiz Answers
586
Appendices
Appendix A
Glossary
Appendix B
AquaLush Case Study
Appendix C
References
Index
591
689
693
609