Preface
1 Introduction to UML
1.1 Models and modelling
1.2 Methodologies
1.3 The Unified Modeling Language
1.4 Design models and code
1.5 The software development process
1.6 Summary
1.7 Exercises
2 Modelling with Objects
2.1 The object model
2.2 Classes and objects
2.3 Object properties
2.4 Avoiding data replication
2.5 Links
2.6 Associations
2.7 Message passing
2.8 Polymorphism
2.9 Dynamic binding
2.10 The applicability of the object model
2.l1 Summary
2.12 Exercises
3 Software Development Processes
3.1 The waterfall model
3.2 Alternatives to the waterfall model
3.3 The Unified Process
3.4 The role of models in development
3.5 The use of UML in the Unified Process
3.6 Summary
3.7 Exercises
4 Restaurant System: Business Modelling
4.1 Informal requirements
4.2 Use case modelling
4.3 Describing use cases
4.4 Structuring the use case model
4.5 Completing the use case model
4.6 Domain modelling
4.7 Glossaries
4.8 Summary
4.9 Exercises
5 Restaurant System: Analysis
5.1 The purpose of analysis
5.2 Object design
5.3 Software architecture
5.4 Use case realization
5.5 Recording new bookings
5.6 Cancelling bookings
5.7 Updating bookings
5.8 Completing the analysis model
5.9 Summary
5.10 Exercises
6 Restaurant System: Design
6.1 Receiving input from the user
6.2 Producing output
6.3 Persistent data storage
6.4 The design model
6.5 Detailed class design
6.6 Dynamic modelling of behaviour
6.7 A statechart for the booking system
6.8 A statechart for reservations
6.9 Summary
6.10 Exercises
7 Restaurant System: Implementation
8 Class and Object Diagrams
9 Interaction Diagrams
10 Statecharts
11 Component Diagrams
12 Consiraints
13 Implementation Strategies
14 Principles and Patterns
Appendix A UML Notation Summary
Appendix B Summary of the Object Constraint Language
Appendix C A Template for use case descriptions
References and Bibliography
Index