Description
Book SynopsisUML is the de facto industry standard modeling language for specifying, visualizing, constructing, and documenting aspects of the design of software systems. UML in Practice offers practical, clear guidance on the real--life usage of UML, mentoring software developers through every aspect of the modeling process.
Table of ContentsForeword ix
Introduction xi
Acknowledgements xv
PART 1 FUNCTIONAL VIEW 1
1 Case study: automatic teller machine 3
1.1 Step 1 – Identifying the actors of the ATM 5
1.2 Step 2 – Identifying use cases 8
1.3 Step 3 – Creating use case diagrams 10
1.4 Step 4 – Textual description of use cases 14
1.5 Step 5 – Graphical description of use cases 20
1.6 Step 6 – Organising the use cases 26
2 Complementary exercises 37
2.1 Step 1 – Business modelling 53
2.2 Step 2 – Defining system requirements 57
Appendix A: Glossary & tips 65
PART 2 STATIC VIEW 71
3 Case study: flight booking system 73
3.1 75
3.2 Step 2 – Modelling sentences 6, 7 and 10 77
3.3 Step 3 – Modelling sentences 8 and 9 82
3.4 Step 4 – Modelling sentences 3, 4 and 5 86
3.5 Step 5 – Adding attributes, constraints and qualifiers 89
3.6 Step 6 – Using analysis patterns 94
3.7 Step 7 – Structuring into packages 98
3.8 Step 8 – Generalisation and re-use 105
4 Complementary exercises 113
Appendix B: Glossary & tips 149
Step 1– Modelling sentences 1 and 2
PART 3 DYNAMIC VIEW 157
5 Case study: coin-operated pay phone 159
5.1 Step 1 – Identifying the actors and use cases 161
5.2 Step 2 – Realising the system sequence diagram 164
5.3 Step 3 – Representing the dynamic context 166
5.4 Step 4 – In-depth description using a state diagram 168
6 Complementary exercises 185
Apendix C: Glossary & tips 207
PART 4 DESIGN 213
7 Case study: training request 215
7.1 Step 1 – Defining iterations 217
7.2 Step 2 – Defining the system architecture 219
7.3 Step 3 – Defining system operations (iteration 1) 224
7.4 Step 4 – Operation contracts (iteration 1) 225
7.5 Step 5 – Interaction diagrams (iteration 1) 228
7.6 Step 6 – Design class diagrams (iteration 1) 237
7.7 Step 7 – Defining the system operations (iteration 2) 245
7.8 Step 8 – Operation contracts (iteration 2) 247
7.9 Step 9 – Interaction diagrams (iteration 2) 250
7.10 Step 10 – Design class diagrams (iteration 2) 252
7.11 Step 11 – Back to architecture 253
7.12 Step 12 – Transition to Java code 254
7.13 Step 13 – Putting the application into action 262
8 Complementary exercises 267
Appendix D: Glossary & tips 283
Index 293