Introduction To Software Engineering Design: Processes, Principles, and Patterns With UML2
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
TJ
33
33
63
69
9il
115
121
131
v
VI
Contents
Chapter 6
Part I I I
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 1 1
149
185
S o f t w a r e Engineering Design
191
194
220
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
288
300
312
318
Contents
Chapter 12
352
389
Chapter 13
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
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
534
564
586
Appendices
Appendix A
Glossary
Appendix B
Appendix C
References
Index
591
689
693
609