Als principal technology officer en agile-expert bij Capgemini is Sander Hoogendoorn voortdurend betrokken bij de innovatie van softwaredevelopmentprocessen en –technieken.
Meer over Sander HoogendoornPragmatisch modelleren met UML
Paperback Nederlands 2020 14e druk 9789463561761Samenvatting
Pragmatisch modelleren met UML is het ideale boek voor wie meer UML wil dan alleen de theorie. Dit boek gaat verder waar veel boeken stoppen. Het geeft niet alleen aan wat UML is, maar beschrijft vooral hoe UML in de praktijk is toe te passen. Wanneer is welke modelleertechniek op zijn plaats? Hoe hangen de modelleertechnieken samen? Tot welk detailniveau? Wat modelleer je wel en wat vooral ook niet? Wat ontbreekt er aan UML? Pragmatisch modelleren met UML vormt zo een perfecte leidraad voor uw systeemontwikkelprojecten.
Alle voorbeelden in Pragmatisch modelleren met UML komen uit dezelfde case – de online dating service Dare2Date. Deze case is van idee tot applicatie uitgewerkt. Het boek is geïllustreerd met ruim 150 afbeeldingen en 350 hints en tips, codevoorbeelden en leerzame anekdotes.
Het boek behandelt:
- het modelleren van bedrijfsprocessen;
- de relatie tussen bedrijfsprocessen en use cases;
- het modelleren en beschrijven van pragmatische use cases;
- het uitwerken van use cases in activity diagrammen;
- het formuleren van testscenario’s en testgevallen bij use cases;
- het user interface diagram;
- een referentiearchitectuur met ondersteunende patronen;
- het opstellen van sequence diagrammen en interactiepatronen;
- het identificeren en modelleren van business classes en bedrijfsregels;
- het structureren van packages;
- de relatie tussen business classes en gegevens;
- het modelleren van gegevens in een klassediagram;
- een pragmatische werkwijze voor projecten.
Specificaties
Lezersrecensies
Inhoudsopgave
Gezichtspunten XVII
Dialecten XVIII
Uit de praktijk XIX
Website XX
Dankwoord XX
De opbouw van het boek XXI
Deel I Introductie 1
Dare2Date 2
Gat in de markt 2
Geen one-night stand 3
De eerste date 3
Vanuit je luie stoel 4
UML 5
De prehistorie 5
De geboorte van UML 6
UML 2.0 7
De modelleertechnieken van UML 7
Keywords en stereotypen 9
Packages 10
Frames 10
Klassendiagram 12
Composite structure diagram 13
Component diagram 14
Deployment diagram 15
Object diagram 15
Package diagram 15
Activity diagram 16
Use case diagram 18
State machine diagram 19
Sequence diagram 19
Communication diagram 20
Interaction overview diagram 21
Timing diagram 21
Mythen en misverstanden 22
UML is makkelijk 22
UML is compleet 23
UML biedt een raamwerk 24
UML genereert code 24
UML is een systeemontwikkelmethode 24
Pragmatisch modelleren 25
Agile software development 27
Mijlpalen 27
Gebruikers 28
Testen als sluitpost 28
Manoeuvreren 29
Het agile manifesto 29
Agile software development 30
Smart 31
De fasen van Smart 32
Propose 32
Scope 33
Plan 33
Realise 33
Finalise 34
Pragmatisch modelleren 35
Deel II Requirements 37
Starten met bedrijfsprocessen 38
De plot en het model 38
Hiërarchie 39
Scope van het project 40
Processen identificeren 41
Onafhankelijke deelprocessen 42
Splitsen 43
Opeenvolging van handelingen 44
Abstract en concreet 45
Een chronologisch bedrijfsproces 45
Pragmatisch modelleren 46
Pragmatische use cases 47
Scope 48
Van elementair proces naar use case diagram 49
Niveaus use cases 50
De primaire use case 51
Primaire actoren 51
Actoren en use cases 52
Use cases identificeren 53
Van goede naam 55
Hergebruik van use cases 57
Relaties tussen use cases 58
Include 58
Include modelleren 59
Extend 60
Extend modelleren 60
Extension points 61
Extend of toch include? 62
Generalisatie van use cases 62
Secundaire actoren 63
Generalisatie van actoren 65
De hand van God 66
System boundary 67
Pragmatisch modelleren 68
Use cases beschrijven 69
Eigenschappen van use cases 69
Actor en doel 70
Actoren en doel 71
Secundaire use cases 72
Onduidelijke doelen 72
Een korte beschrijving 73
Precondities 74
Postcondities 75
Stappenplan 76
Vocabulaire voor stappenplannen 77
Actoren en applicatie in het stappenplan 79
Use cases in het stappenplan 80
Condities in het stappenplan 81
Valideren postcondities 82
Nummeren of niet nummeren? 82
Beslismomenten en herhalingen nummeren 83
Het juiste detailniveau van een stappenplan 84
Diepgang 85
Functionele en technische beslismomenten 85
Interactie met de database 86
Uitzonderingen en fouten 86
Geneste stappen 87
Goed is goed genoeg 87
Scenario’s 88
Stappenplan of scenario ’s? 88
Scenario ’s en postcondities 89
Requirements en requirements 90
Use cases hergebruiken 90
Pragmatisch modelleren 91
Deel III Modelleren en testen 93
Activity diagrammen 94
In de kreukelzone 94
Requirements testen 95
Het activity diagram 95
Van use case naar activity diagram 96
Initial nodes 97
Stappen en activities 98
Beslismomenten en decision nodes 99
Enkelvoudige beslismomenten 101
Samengestelde beslismomenten 103
Activities valideren 104
Uitzonderingen 105
Herhaling 107
Herhaling met merge node 108
Herhaling onderbreken 109
Interactie onderbreken 110
Use cases en stereotypen 110
Postcondities valideren 112
Final nodes 114
Postcondities en activity final nodes 115
Minder is meer 117
Fork nodes en join nodes 117
Partitioneren 118 Object flow 119
Pragmatisch modelleren 119
Testscenario’s en testgevallen 120
Mississippi 120
Deelpaden 120
Deelpaden identificeren 121
Deelpaden combineren 123
Scenario ’s vinden 124
Alle scenario ’s vinden 125
Testscenario ’s 127
Testacties 127
Testattributen 128
Testgevallen 129
Grenzen opzoeken 130
Wanneer zijn er afdoende testgevallen? 131
Pragmatisch modelleren 131
Deel IV Architectuur 133
De kloof tussen ontwerp en code 134
Ontwerpen voor internet 134
Hergebruik 135
No man is an island 135
Frameworks 136
Realiseerbaar ontwerpen 136
Lasagne 137
Een referentiearchitectuur 139
Lagen 139
Presentation 140
Process 141
Business 141
Data 142
Utilities 142
Business Component 142
Drietrapsraket 143
Klassen in de referentiearchitectuur 143
Forms 144
Use cases hergebruiken 146
Tasks 148
Het task pattern 148
Tasks hergebruiken 151
Task en stappenplan 151
Factories en business classes 153
Gegevens beschikbaar stellen 154
Factories, business classes en data classes 156
Bedrijfsregels uitvoeren 157
Wijzigingen persisteren 158
Adapters 160
De relatie tussen factory en business class 162
Het smart factory pattern 163
Een business class als factory 167
Factories en business classes combineren 169
Data classes 170
Status vasthouden 172
Record sets 172
Utilities 173
Utilities identificeren 174
Pragmatisch modelleren 176
Het domein van de applicatie 178
Tien voor taal 178
Concepten identificeren 179
Van concept naar business class 180
Spraakverwarring 181
My first business class diagram 181
Associaties 183
Domeinarchitectuur 185
Pragmatisch modelleren 186
Deel V User interface 187
De user interface modelleren 188
Een ruwe schets 189
Tot op het bot 190
Voelbare spanning 190
Het user interface diagram 191
Van use case diagram naar user interface diagram 192
Het user interface diagram 193
Forms 193
Statische en dynamische gegevens 195
Singles en lists 195
Business classes en singles 196
Factories en lists 197
Multipliciteit 198
Zoeken in een list 198
Transities 200
Starten met navigeren 200
Navigeren tussen forms 202
Retourtransities 203
Onderbroken transities 203
Meerdere transities vanaf een form 204
Stoppen 205
Transities benoemen 206
Frames 206
Pragmatisch modelleren 208
Forms, factories en business classes 209
User interface diagram en business class diagram 209
Eigenschappen van forms, singles en lists 209
Transities realiseren 211
Transities en condities 212
Singles en lists 213
Attributen identificeren 214
Nieuwe attributen voor business classes 215
Attributen en hun typen 215
Gegevens ophalen 217
Gegevens opslaan 219
Additionele attributen 221
Nieuwe associaties tussen business classes 221
Opmaak van attributen 222
Validaties en bedrijfsregels 223
Waar horen bedrijfsregels thuis? 224
Typevalidaties 224
Waardevalidaties 226
Objectvalidaties 227
Klassenvalidaties 228
Complexe validaties 229
Herbouw 229
Pragmatisch modelleren 230
Deel VI Interactie 231
Interactie modelleren 232
Interactie 232
Communication diagram of sequence diagram? 233
Stappenplan of scenario? 235
Participanten, klassen en objecten 236
De participanten en de referentiearchitectuur 237
Het stappenplan als note 238
Primaire actoren en primaire use cases 239
Primaire actoren en secundaire use cases 239
Tasks 241
De interactie starten 241
Andere use cases uitvoeren 244
Het smart factory pattern 246
Fragmenten 248
Condities als fragmenten 249
Condities als pseudo messages 252
Herhalingen 254
Herhalingen en iteration markers 255
Aanmaken en opruimen 256
Data classes 258
Form en task 259
Messages 261
Retourpijlen 263
Utilities 264
Secundaire actoren en interfaces 264
Asynchroon? 266
Pragmatisch modelleren 267
Interactiepatronen 268
Vergelijkbare interactie 268
Interactiepatronen herkennen 269
Interactiepatronen opstellen 269
Het task pattern als interactiepatroon 272
Interactiepatronen gebruiken 273
Interactiepatronen in frameworks 274
Pragmatisch modelleren 275
Deel VII Het modelleren van structuur 277
Klassen 278
Gezichtspunt 278
Voortschrijdend inzicht 279
Klassen modelleren 280
Taal 281
Pascal case en camel case 282
Naam 282
Stereotypen 283
Stereotypen in code 283
Attributen 284
Namen van attributen 284
Typen van attributen 286
Zichtbaarheid 286
Afgeleide attributen 287
Methoden 288
Namen van methoden 288
Parameters 290
Overloading 291
Zichtbaarheid van methoden 292
Statische attributen en methoden 292
Properties, getters en setters 293
Attributen of properties? 295
Constructoren en destructoren 296
Volledigheid 296
Pragmatisch modelleren 297
Relaties tussen klassen 298
Associaties 298 Namen van associaties 299
Rollen in associaties 301 Multipliciteit 302
Reflexieve associaties 303
Navigeerbaarheid 304
Associatieklassen 305
Enumeraties 307
Ternaire en hogere associaties 308
Associaties vinden 308
Associaties in code 309
Dependencies 310
Dependencies identificeren 311
Dependencies en bedrijfscomponenten 312
Aggregaties 313
Composities 314
Generalisaties 315
Generalisaties modelleren 316
Generalisaties groeperen 318
Generalisaties herkennen 320
Het modelleren van rollen 321
Meervoudige overerving 324
Interfaces 325
Interfaces modelleren 325
Interfaces in code 327
Abstracte klassen 328
Interface of abstracte klasse? 329
Pragmatisch modelleren 330
Organiseren in packages 332
Packages, namespaces en klassen 332
Packages representeren 333
Dependencies tussen packages 335
Zichtbaarheid 337
Packages en architectuur 337
Packages en utilities 339
Klassen organiseren in packages 339
Circulaire dependencies voorkomen 340
Stabiele en flexibele packages 343
Packages in code 345
Pragmatisch modelleren 346
Deel VIII Gegevens 347
Gegevens modelleren in UML 348
Klassendiagram en gegevensdiagram 349
Tabellen 349
Attributen 350
Primary keys 351
Primary keys uitgeven 353
Primary keys modelleren 355
Foreign keys 356
Relaties tussen tabellen 357
Views 357
Stored procedures 358
Triggers 358
Het gegevensdiagram in een package 359
Pragmatisch modelleren 359
Van business classes naar tabellen 360
Business classes en tabellen 360
Factories en tabellen 361
Data classes 362
Business classes, tabellen en primary keys 362
Attributen 364
Afgeleide attributen 365
Associaties 366
Eén-op-één 366
Eén-op-veel 368
Veel-op-veel 369
Associatieklassen 370
Enumeraties en referentietabellen 371
Aggregatie en compositie 373
Dependencies 374
Generalisaties 375
Alle klassen in één tabel 376
Iedere klasse een eigen tabel 377
Iedere concrete klasse een eigen tabel 378
Wie van de drie? 378
Pragmatisch modelleren 379
Tot slot 380
Literatuuropgave 382
Index 385
Rubrieken
- advisering
- algemeen management
- coaching en trainen
- communicatie en media
- economie
- financieel management
- inkoop en logistiek
- internet en social media
- it-management / ict
- juridisch
- leiderschap
- marketing
- mens en maatschappij
- non-profit
- ondernemen
- organisatiekunde
- personal finance
- personeelsmanagement
- persoonlijke effectiviteit
- projectmanagement
- psychologie
- reclame en verkoop
- strategisch management
- verandermanagement
- werk en loopbaan