| |
| |
Preface | |
| |
| |
| |
Introduction | |
| |
| |
| |
A Discipline of Software Engineering Design | |
| |
| |
| |
What Is Software Design? | |
| |
| |
| |
Varieties of Design | |
| |
| |
| |
Software Design in the Life Cycle | |
| |
| |
| |
Software Engineering Design Methods* | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Software Design Processes and Management | |
| |
| |
| |
Specifying Processes with UML Activity Diagrams | |
| |
| |
| |
Software Design Processes | |
| |
| |
| |
Software Design Management* | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Software Product Design | |
| |
| |
| |
Context of Software Product Design | |
| |
| |
| |
Products and Markets | |
| |
| |
| |
Product Planning | |
| |
| |
| |
Project Mission Statement | |
| |
| |
| |
Software Requirements Specification | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Product Design Analysis | |
| |
| |
| |
Product Design Process Overview | |
| |
| |
| |
Needs Elicitation | |
| |
| |
| |
Needs Documentation and Analysis | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Product Design Resolution | |
| |
| |
| |
Generating Alternative Requirements | |
| |
| |
| |
Stating Requirements | |
| |
| |
| |
Evaluating and Selecting Alternatives | |
| |
| |
| |
Finalizing a Product Design | |
| |
| |
| |
Prototyping | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Designing with Use Cases | |
| |
| |
| |
UML Use Case Diagrams | |
| |
| |
| |
Use Case Descriptions | |
| |
| |
| |
Use Case Models | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Software Engineering Design | |
| |
| |
| |
Engineering Design Analysis | |
| |
| |
| |
Introduction to Engineering Design Analysis | |
| |
| |
| |
UML Class and Object Diagrams | |
| |
| |
| |
Making Conceptual Models | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Engineering Design Resolution | |
| |
| |
| |
Engineering Design Resolution Activities | |
| |
| |
| |
Engineering Design Principles | |
| |
| |
| |
Modularity Principles | |
| |
| |
| |
Implementability and Aesthetic Principles | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Architectural Design | |
| |
| |
| |
Introduction to Architectural Design | |
| |
| |
| |
Specifying Software Architectures | |
| |
| |
| |
UML Package and Component Diagrams | |
| |
| |
| |
UML Deployment Diagrams* | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Architectural Design Resolution | |
| |
| |
| |
Generating and Improving Software Architectures | |
| |
| |
| |
Evaluating and Selecting Software Architectures | |
| |
| |
| |
Finalizing Software Architectures | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Static Mid-Level Object-Oriented Design: Class Models | |
| |
| |
| |
Introduction to Detailed Design | |
| |
| |
| |
Advanced UML Class Diagrams | |
| |
| |
| |
Drafting a Class Model | |
| |
| |
| |
Static Modeling Heuristics | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Dynamic Mid-Level Object-Oriented Design: Interaction Models | |
| |
| |
| |
UML Sequence Diagrams | |
| |
| |
| |
Interaction Design Process | |
| |
| |
| |
Interaction Modeling Heuristics | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Dynamic Mid-Level State-Based Design: State Models | |
| |
| |
| |
UML State Diagrams | |
| |
| |
| |
Advanced UML State Diagrams* | |
| |
| |
| |
Designing with State Diagrams | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Low-Level Design | |
| |
| |
| |
Visibility, Accessibility, and Information Hiding | |
| |
| |
| |
Operation Specification | |
| |
| |
| |
Algorithm and Data Structure Specification* | |
| |
| |
| |
Design Finalization | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Patterns in Software Design | |
| |
| |
| |
Architectural Styles | |
| |
| |
| |
Patterns in Software Design | |
| |
| |
| |
Layered Architectures | |
| |
| |
| |
Other Architectural Styles | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Mid-Level Object-Oriented Design Patterns | |
| |
| |
| |
Collection Iteration | |
| |
| |
| |
The Iterator Pattern | |
| |
| |
| |
Mid-Level Design Pattern Categories | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Broker Design Patterns | |
| |
| |
| |
The Broker Category | |
| |
| |
| |
The Facade and Mediator Patterns | |
| |
| |
| |
The Adapter Patterns | |
| |
| |
| |
The Proxy Pattern* | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Generator Design Patterns | |
| |
| |
| |
The Generator Category | |
| |
| |
| |
The Factory Patterns | |
| |
| |
| |
The Singleton Pattern | |
| |
| |
| |
The Prototype Pattern* | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
| |
Reactor Design Patterns | |
| |
| |
| |
The Reactor Category | |
| |
| |
| |
The Command Pattern | |
| |
| |
| |
The Observer Pattern | |
| |
| |
Further Reading, Exercises, Review Quiz Answers | |
| |
| |
Appendices | |
| |
| |
| |
Glossary | |
| |
| |
| |
AquaLush Case Study | |
| |
| |
| |
References | |
| |
| |
Index | |