|
|
CONSIGLIATO DA LIBRINFORMATICA
UML 2 e Unified Process - Analisi e progettazione Object-Oriented - seconda edizione
|
| Editore | Mc Graw Hill |
| Autore | Arlow Jim, Neustadt Ila |
| Titolo originale | UML 2 and the Unified Process: Practical object-oriented analysis and design - second edition |
| Editore originale | Addison Wesley |
| Collana | Workbooks |
| Pagine | 481 |
| Volumi | 1 |
| Livello | Intermedio-Avanzato |
| Lingua | Italiano |
| Data pubblicazione | 01 - 2007 |
| ISBN | 8838663726 |
|
|
| Prezzo di copertina |
| Euro 33,50 |
|
Prefazione alla seconda edizione italiana XV
Introduzione XVII
Parte 1 Introduzione all’UML e all’UP 1
Capitolo 1 UML 3
1.1 Contenuto del capitolo 3
1.2 Cos’è l’UML? 3
1.3 La nascita dell’UML 5
1.4 MDA: il futuro dell’UML 7
1.5 Perché “unificato”? 9
1.6 L’UML e gli Oggetti 9
1.7 Struttura dell’UML 10
1.8 Costituenti fondamentali dell’UML 10
1.8.1 Entità 11
1.8.2 Relazioni 11
1.8.3 Diagrammi 12
1.9 Meccanismi comuni dell’UML 14
1.9.1 Specifiche 14
1.9.2 Ornamenti 16
1.9.3 Distinzioni comuni 17
1.9.4 Meccanismi di estendibilità 18
1.10 Architettura 22
1.11 Riepilogo 23
Capitolo 2 UP 27
2.1 Contenuto del capitolo 27
2.2 L’UP 27
2.3 La nascita dell’UP 29
2.4 L’UP e il RUP 31
2.5 Come istanziare l’UP su un progetto 33
2.6 Assiomi dell’UP 34
2.7 L’UP è un processo iterativo e incrementale 35
2.7.1 Iterazioni e flussi di lavoro 35
2.7.2 Baseline e incrementi 37
2.8 Struttura dell’UP 37
2.9 Le fasi dell’UP 39
2.9.1 Avvio: obiettivi 39
2.9.2 Avvio: flussi di lavoro 39
2.9.3 Milestone Avvio: Obiettivo del Ciclo di Vita 39
2.9.4 Elaborazione: obiettivi 40
2.9.5 Elaborazione: flussi di lavoro 41
2.9.6 Milestone Elaborazione: Architettura del Ciclo di Vita 41
2.9.7 Costruzione: obiettivi 42
2.9.8 Costruzione: flussi di lavoro 42
2.9.9 Milestone Costruzione: Capacità Operativa Iniziale 42
2.9.10 Transizione: obiettivi 43
2.9.11 Transizione: flussi di lavoro 43
2.9.12 Milestone Transizione: Rilascio del Prodotto 43
2.10 Riepilogo 43
Parte 2 Requisiti 45
Capitolo 3 Il flusso di lavoro dei requisiti 47
3.1 Contenuto del capitolo 47
3.2 Il flusso di lavoro dei requisiti 47
3.3 Requisiti del software: meta-modello 49
3.4 Flusso di lavoro dei requisiti in dettaglio 50
3.5 L’importanza dei requisiti 52
3.6 Definire i requisiti 52
3.6.1 Il modello dei requisiti 53
3.6.2 Formulazione dei requisiti 54
3.6.3 Requisiti funzionali e non-funzionali 54
3.6.4 Organizzare i requisiti 55
3.6.5 Attributi dei requisiti 56
3.7 Individuare i requisiti 57
3.7.1 Raccolta dei requisiti 58
3.7.2 Interviste 59
3.7.3 Questionari 60
3.7.4 Workshop sui requisiti 61
3.8 Riepilogo 61
Capitolo 4 Modellazione dei casi d’uso 65
4.1 Contenuto del capitolo 65
4.2 Modellazione dei casi d’uso 67
4.3 Attività UP: individuare attori e casi d’uso 67
4.3.1 Il subject (confine del sistema) 68
4.3.2 Cosa sono gli attori? 69
4.3.3 Cosa sono i casi d’uso? 71
4.3.4 Il Glossario di Progetto 73
4.4 Attività UP: descrivere un caso d’uso 74
4.5 Specifiche del caso d’uso 75
4.5.1 Nomi dei casi d’uso 77
4.5.2 Identificatore del caso d’uso 77
4.5.3 Breve descrizione 78
4.5.4 Attori 78
4.5.5 Precondizioni e postcondizioni 78
4.5.6 Sequenza principale degli eventi 79
4.5.7 Come modellare le sequenze degli eventi alternative 82
4.6 Mappatura dei requisiti 88
4.7 Quando applicare la modellazione dei casi d’uso 90
4.8 Riepilogo 90
Capitolo 5 Modellazione dei casi d’uso: tecniche avanzate 93
5.1 Contenuto del capitolo 93
5.2 Generalizzazione tra attori 93
5.3 Generalizzazione tra casi d’uso 96
5.4 «include» 100
5.5 «estende» 102
5.5.1 Il caso d’uso di estensione 104
5.5.2 Segmenti inseribili multipli 105
5.5.3 Estensioni condizionali 106
5.6 Quando usare le tecniche avanzate 108
5.7 Suggerimenti su come scrivere i casi d’uso 108
5.7.1 Mantenere i casi d’uso brevi e semplici 108
5.7.2 Il cosa e il come 109
5.7.3 Evitare la scomposizione funzionale 109
5.8 Riepilogo 111
Parte 3 Analisi 115
Capitolo 6 Il flusso di lavoro dell’analisi 117
6.1 Contenuto del capitolo 117
6.2 Il flusso di lavoro dell’analisi 117
6.3 Manufatti dell’analisi: meta-modello 118
6.4 Flusso di lavoro dell’analisi in dettaglio 120
6.5 Modello di analisi: regole pratiche 120
6.6 Riepilogo 121
Capitolo 7 Classi e oggetti 123
7.1 Contenuto del capitolo 123
7.2 Cosa sono gli oggetti? 123
7.2.1 Incapsulazione 126
7.2.2 Messaggi 128
7.3 Notazione UML per gli oggetti 128
7.3.1 Valori degli attributi degli oggetti 129
7.4 Cosa sono le classi? 130
7.4.1 Classi e oggetti 132
7.4.2 Istanziazione di una classe 133
7.5 Notazione UML per le classi 133
7.5.1 Sottosezione nome 134
7.5.2 Sottosezione attributi 135
7.5.3 Sottosezione operazioni 139
7.5.4 Sintassi per le classi con stereotipo 143
7.6 Ambito 143
7.6.1 Ambito di istanza e ambito di classe 144
7.6.2 L’ambito determina l’accessibilità 144
7.7 Creazione e distruzione degli oggetti 144
7.7.1 Costruttori: classe SocioClub 146
7.7.2 Distruttori: classe SocioClub 147
7.8 Riepilogo 147
Capitolo 8 Individuare le classi di analisi 151
8.1 Contenuto del capitolo 151
8.2 Attività UP: analizzare un caso d’uso 151
8.3 Cosa sono le classi di analisi? 153
8.3.1 Anatomia di una classe di analisi 154
8.3.2 Cosa contraddistingue una buona classe di analisi? 155
8.3.3 Regole pratiche per le classi di analisi 157
8.4 Individuare le classi 158
8.4.1 Individuare le classi con l’analisi nome/verbo 159
8.4.2 Individuare le classi con l’analisi CRC 160
8.4.3 Individuare le classi con gli stereotipi RUP 162
8.4.4 Cercare altre fonti di classi 165
8.5 Creazione di una prima bozza di modello di analisi 166
8.6 Riepilogo 167
Capitolo 9 Relazioni 171
9.1 Contenuto del capitolo 171
9.2 Cos’è una relazione? 171
9.3 Cos’è un collegamento? 173
9.3.1 Diagrammi degli oggetti 173
9.3.2 Cammini 175
9.4 Cos’è un’associazione? 176
9.4.1 Sintassi per le associazioni 176
9.4.2 Molteplicità 178
9.4.3 Navigabilità 182
9.4.4 Associazioni e attributi 184
9.4.5 Classi associazione 186
9.4.6 Associazioni qualificate 188
9.5 Cos’è una dipendenza? 189
9.5.1 Dipendenze di uso 190
9.5.2 Dipendenze di astrazione 192
9.5.3 Dipendenze di permesso 193
9.6 Riepilogo 195
Capitolo 10 Ereditarietà e polimorfismo 199
10.1 Contenuto del capitolo 199
10.2 Generalizzazione 199
10.2.1 Classi e generalizzazione 199
10.3 Ereditarietà di classe 201
10.3.1 Ridefinizione 201
10.3.2 Classi e operazioni astratte 203
10.3.3 Livelli di astrazione 204
10.3.4 Ereditarietà multipla 205
10.4 Polimorfismo 205
10.4.1 Esempio di polimorfismo 206
10.5 Generalizzazione avanzata 209
10.5.1 Insiemi di generalizzazione 209
10.5.2 I powertype 211
10.6 Riepilogo 214
Capitolo 11 Package di analisi 217
11.1 Contenuto del capitolo 217
11.2 Che cosa è un package? 217
11.3 Package e spazi dei nomi 219
11.4 Package annidati 220
11.5 Dipendenze tra package 221
11.5.1 Transitività 222
11.6 Generalizzazione tra package 224
11.7 Analisi dell’architettura 225
11.7.1 Individuare i package di analisi 226
11.7.2 Dipendenze circolari tra package 227
11.8 Riepilogo 228
Capitolo 12 Realizzazione dei casi d’uso 233
12.1 Contenuto del capitolo 233
12.2 Attività UP: analizzare un caso d’uso 233
12.3 Cosa sono le realizzazioni dei casi d’uso? 235
12.4 Realizzazioni dei casi d’uso: elementi 236
12.5 Interazioni 237
12.6 Linee di vita 238
12.7 Messaggi 239
12.7.1 Messaggi sincroni, asincroni e di ritorno 240
12.7.2 Messaggi di creazione e di distruzione 241
12.7.3 Messaggi trovati e persi 241
12.8 Diagrammi di interazione 242
12.9 Diagrammi di sequenza 242
12.9.1 Linee di vita e messaggi 243
12.9.2 Attivazioni 245
12.9.3 Documentare i diagrammi di sequenza 247
12.9.4 Vincoli e invarianti di stato 247
12.10 Operatori e frammenti combinati 249
12.10.1 Ramificazione con opt e alt 250
12.10.2 Iterazione con loop e break 253
12.11 Diagrammi di comunicazione 256
12.11.1 Iterazione 258
12.11.2 Ramificazione 259
12.12 Riepilogo 261
Capitolo 13 Diagrammi di attività 265
13.1 Contenuto del capitolo 265
13.2 Che cosa sono i diagrammi di attività? 265
13.3 I diagrammi di attività e l’UP 267
13.4 Attività 268
13.5 Semantica delle attività 269
13.6 Partizioni delle attività 272
13.7 Nodi azione 274
13.7.1 Nodo azione di chiamata 276
13.7.2 Nodo azione di accettazione evento temporale 277
13.8 Nodi controllo 278
13.8.1 Nodi iniziali e nodi finali 278
13.8.2 Nodi decisione e fusione 279
13.8.3 Nodi biforcazione e ricongiunzione: concorrenza 281
13.9 Nodi oggetto 282
13.9.1 Semantica del buffer dei nodi oggetto 283
13.9.2 Rappresentazione di oggetti con stato 285
13.9.3 Parametri di attività 285
13.10 Pin 287
13.11 Riepilogo 288
Parte 4 Progettazione 291
Capitolo 14 Il flusso di lavorodella progettazione 293
14.1 Contenuto del capitolo 293
14.2 Il flusso di lavoro della progettazione 293
14.3 Manufatti della progettazione: meta-modello 295
14.3.1 Relazioni di traccia tra manufatti 297
14.3.2 È necessario mantenere due modelli? 298
14.4 Flusso di lavoro della progettazione in dettaglio 300
14.5 Attività dell’UP: progettazione dell’architettura 300
14.6 Riepilogo 301
Capitolo 15 Classi di progettazione 303
15.1 Contenuto del capitolo 303
15.2 Attività UP: progettare una classe 303
15.3 Cosa sono le classi di progettazione? 305
15.4 Anatomia di una classe di progettazione 307
15.5 Classi di progettazione ben formate 308
15.5.1 Completezza e sufficienza 309
15.5.2 Essenzialità 309
15.5.3 Massima coesione 310
15.5.4 Minima interdipendenza 311
15.6 Ereditarietà 312
15.6.1 Aggregazione o ereditarietà? 312
15.6.2 Ereditarietà multipla 314
15.6.3 Ereditarietà o realizzazione di interfaccia? 315
15.7 Template di classe 316
15.8 Classi annidate 318
15.9 Riepilogo 319
Capitolo 16 Raffinare le relazioni di analisi 323
16.1 Contenuto del capitolo 323
16.2 Relazioni di progettazione 323
16.3 Aggregazione e composizione 325
16.4 Semantica dell’aggregazione 326
16.5 Semantica della composizione 328
16.5.1 Composizione e attributi 329
16.6 Come raffinare le relazioni di analisi 330
16.7 Associazioni uno-a-uno 331
16.8 Associazioni molti-a-uno 331
16.9 Associazioni uno-a-molti 332
16.10 Classi collezione 332
16.10.1 La mappa 335
16.11 Relazioni reificate 336
16.11.1 Associazioni molti-a-molti 336
16.11.2 Associazioni bidirezionali 337
16.11.3 Classi associazione 338
16.12 Esaminare la composizione con le classi strutturate 339
16.12.1 Classificatori strutturati 339
16.12.2 Classi strutturate 341
16.13 Riepilogo 343
Capitolo 17 Interfacce e componenti 349
17.1 Contenuto del capitolo 349
17.2 Attività UP: progettare un sottosistema 349
17.3 Cos’è un’interfaccia? 349
17.4 Interfacce richieste e fornite 352
17.5 Realizzazione di interfaccia o ereditarietà 354
17.6 Porte 358
17.7 Interfacce e sviluppo basato su componenti 360
17.8 Cos’è un componente? 360
17.9 Stereotipi dei componenti 362
17.10 Sottosistemi 363
17.11 Individuare le interfacce 364
17.12 Progettare usando le interfacce 365
17.12.1 Il pattern Façade 366
17.12.2 Architettura e pattern di layering 366
17.13 Vantaggi e svantaggi delle interfacce 367
17.14 Riepilogo 369
Capitolo 18 Progettazione della realizzazione dei caso d’uso 373
18.1 Contenuto del capitolo 373
18.2 Attività UP: progettare un caso d’uso 373
18.3 Progettazione della realizzazione dei casi d’uso 376
18.4 Diagrammi di interazione di progettazione 376
18.5 Modellazione della concorrenza 379
18.5.1 Classi attive 379
18.5.2 Concorrenza nei diagrammi di sequenza 380
18.5.3 Concorrenza nei diagrammi di comunicazione 385
18.6 Interazioni a livello di sottosistema 386
18.7 Diagrammi di temporizzazione 387
18.8 Esempio di progettazione della realizzazione di un caso d’uso 390
18.9 Riepilogo 393
Capitolo 19 Macchine a stati 397
19.1 Contenuto del capitolo 397
19.2 Macchine a stati 397
19.2.1 Macchine a stati del comportamento e macchine a stati del protocollo 399
19.2.2 Macchine a stati e classi 400
19.3 Le macchine a stati e l’UP 400
19.4 Diagrammi delle macchine a stati 401
19.5 Stati 403
19.5.1 Sintassi per gli stati 404
19.6 Transizioni 405
19.6.1 Connessione delle transizioni: lo pseudo-stato di giunzione 406
19.6.2 Ramificazione delle transizioni: lo pseudo-stato di selezione 407
19.7 Eventi 408
19.7.1 Eventi di chiamata 409
19.7.2 Eventi di segnale 410
19.7.3 Eventi di variazione 410
19.7.4 Eventi temporali 412
19.8 Riepilogo 412
Capitolo 20 Macchine a stati avanzate 417
20.1 Contenuto del capitolo 417
20.2 Stati compositi 417
20.2.1 Stati compositi semplici 419
20.2.2 Stati compositi ortogonali 421
20.3 Stati della sotto-macchina 424
20.4 Comunicazione tra sotto-macchine 425
20.5 Stati con memoria 427
20.5.1 Stati con memoria semplice 428
20.5.2 Stati con memoria multilivello 429
20.6 Riepilogo 429
Parte 5 Implementazione 433
Capitolo 21 Il flusso di lavoro dell’implementazione 435
21.1 Contenuto del capitolo 435
21.2 Il flusso di lavoro dell’implementazione 436
21.3 Manufatti dell’implementazione: metamodello 437
21.4 Flusso di lavoro dell’implementazione in dettaglio 438
21.5 Manufatti 439
21.6 Riepilogo 439
Capitolo 22 Deployment 441
22.1 Contenuto del capitolo 441
22.2 Attività UP: implementare l’architettura 441
22.3 Il diagramma di deployment 442
22.4 Nodi 444
22.5 Manufatti 446
22.6 Deployment 450
22.7 Riepilogo 451
Appendice 1 Esempio di modello dei casi d’uso 453
A1.1 Introduzione 453
A1.2 Modello dei casi d’uso 453
A1.3 Esempi di casi d’uso 454
Appendice 2 L’XML e i casi d’uso 461
A2.1 Usare l’XML per i template di casi d’uso 461
A2.2 SUMR 462
Bibliografia 469
Indice analitico 471
|
|
|
|