1 Introduction to UML
1. l 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 Objects
2. 3 Object properties
2. 4 Avoiding data replication
2. 5 Links
2. 6 Message passing
2. 7 Polymorphism
2. 8 Dynamic binding
2. 9 Class diagrams
2. 1O The applicability of the object model
2. 11 Summary
2. 12 Exercises
3 Diagram Editor: Use Case View
3.1 Statement of requirements
3.2 The use case view
3.3 Creating new diagrams
3.4 Use case realization
3.5 Creating new elements
3.6 Selecting elements
3.7 Deleting elements
3.8 Moving and resizing elements
3.9 Use case extension
3.1O Use case diagrams
3.1l Summary
3.12 Exercises
4 Diagram Editor: Deign View
4.l The role of the design view
4.2 Classes and associations
4.3 Generalization
4.4 Creation tools
4.5 Selection tools
4.6 Features of classes
4.7 Complete class diagram
4.8 Dynamic modelling of the diagram editor
4.9 A statechart for creation tools
4.1O A statechart for selection tools
4.1l Statecharts for other classes
4.12 Summary
4.13 Exercises
5 Diagram Editor: Implementation View
5.l Application frameworks
5.2 The applet framework
5.3 Implementation of classes
5.4 Implementation of associations
5.5 Implementation of statecharts
5.6 Managing tools
5.7 The document/view architecture
5.8 Summary
5.9 Exercises
6 Class Diagrams
6.1 Primitive notions
6.2 Classes
6.3 Describing objects with classes
6.4 Associations
6.5 The need for generalization
6.6 Generalization and specialization
6.7 Inheritance of attributes and operations
6.8 Association generalization
6.9 Aggregation
6.10 Composite objects
6.11 Association classes
6.12 Qualified associations
6.13 Multiple inheritance
6.14 Summary
6.15 Exercises
7 Interaction Diagrams
7.1 Collaborations
7.2 Classifier roles
7.3 Association roles
7.4 Transient links
7.5 Interaction diagrams
7.6 Object creation
7.7 Object destruction
7.8 Iterated messages
7.9 Multiobjects
7.1O Conditional messages
7.11 Messages to self
7.12 Summary
7.13 Exercises
8 Statecharts
8.1 State-dependent behaviour
8.2 States, events and transitions
8.3 Initial and final states
8.4 Guard conditions
8.5 Actions
8.6 Activities
8.7 Composite states
8.8 History states
8.9 Summary of the CD player
8.1O Dynamic modelling in practice
8.11 Time events
8.12 Activity states
8.13 Summary of the ticket machine
8.14 Summary
8.15 Exercises
9 Constraints
9.1 Standard constraints
9.2 The Object Constraint Language
9.3 The context of a constraint
9.4 Navigation expressions
9.5 Objects and collections
9.6 Constraints
9.7 Stereotyped constraints
9.8 Constraints and generalization
9.9 Summary
9.1O Exercises
1O Implementation Strategies
1O.1 Implementing associations
10.2 Unidirectional implementations
1O.3 Bidirectional implementations
1O.4 Implementing qualifiers
1O.5 Implementing associations as classes
1O.6 Implementing constraints
1O.7 Implementing statecharts
1O.8 Persistency
1O.9 Interfacing to databases
1O.1O Summary
1O.11 Exercises
11 Design Pragmatics
11.1 Physical design
11.2 Interfaces
11.3 Reverse engineering
11.4 Templates
11.5 Optimization of design models
11.6 Summary
11.7 Exercises
12 Principles and Patterns
12.1 The open-closed principle
12.2 No concrete superclasses
12.3 Decouple the interface hierarchy
12.4 The Liskov substitution principle
12.5 Interactions determine structure
12.6 Design patterns
12.7 Recursive structures
12.8 The State and Strategy patterns
12.9 MVC, document/view and Observer
12.1O Applying Visitor to the stock control program
12.1l Summary
12.12 Exercises
13 Cab Dispatching System
13.1 Use cases
13.2 Handling immediate jobs
13.3 Handling prebooked jobs
13.4 Allocating a cab to ajob
13.5 Job confirmation
13.6 Cancelling a job
13.7 Progression of jobs
13.8 Completing the static model
13.9 Implementation overview
13.1O Summary
13.1l Exercises
A Summary of Notation Used
A.1 Common notations
A.2 Use case diagrams
A.3 Object diagrams
A.4 Collaborations
A.5 Sequence diagrams
A.6 Collaboration diagrams
A.7 Class diagrams
A.8 Statechart diagrams
A.9 Component diagrams
A. 10 Templates
References
Index