Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAdamo Sanna Modificato 11 anni fa
1
Real World UML Omid Ehsani Senior Consultant and Trainer oehsani@lightcode.net Omid Ehsani Senior Consultant and Trainer oehsani@lightcode.net
2
SponsorSponsor
3
Parliamo di… Limportanza della modellazioneLimportanza della modellazione UML in 21 minuti…UML in 21 minuti… Design Pattern e UMLDesign Pattern e UML Unapplicazione realeUnapplicazione reale Agile UML!Agile UML! Limportanza della modellazioneLimportanza della modellazione UML in 21 minuti…UML in 21 minuti… Design Pattern e UMLDesign Pattern e UML Unapplicazione realeUnapplicazione reale Agile UML!Agile UML!
4
Limportanza della modellazione
5
Spesso i team di sviluppo non fanno progettazioneSpesso i team di sviluppo non fanno progettazione Molti sviluppano applicazioni come costruirebbero la cuccia del caneMolti sviluppano applicazioni come costruirebbero la cuccia del cane –Manca la definizione di unarchitettura –Dai requisiti si passa subito alla codifica –Si lavora più tempo e si scrive più codice Spesso i team di sviluppo non fanno progettazioneSpesso i team di sviluppo non fanno progettazione Molti sviluppano applicazioni come costruirebbero la cuccia del caneMolti sviluppano applicazioni come costruirebbero la cuccia del cane –Manca la definizione di unarchitettura –Dai requisiti si passa subito alla codifica –Si lavora più tempo e si scrive più codice Software is often treated as a SOFT science Modeling helps make it a HARD science Software is often treated as a SOFT science Modeling helps make it a HARD science
6
Limportanza della modellazione Costruiamo modelli (o blueprints) per comprendere meglio il sistema che stiamo sviluppandoCostruiamo modelli (o blueprints) per comprendere meglio il sistema che stiamo sviluppando La modellazione:La modellazione: –Ci aiuta a visualizzare il sistema come dovrebbe essere –Ci permette di specificare la struttura e il comportamento del sistema. –Ci fornisce una linea guida nella costruzione del sistema –Documenta le decisioni che prendiamo –Scompone il problema –Controlla la complessità –E un punto di partenza Costruiamo modelli dei sistemi complessi perchè non siamo in grado di comprendere tali sistemi nella loro interezzaCostruiamo modelli dei sistemi complessi perchè non siamo in grado di comprendere tali sistemi nella loro interezza Costruiamo modelli (o blueprints) per comprendere meglio il sistema che stiamo sviluppandoCostruiamo modelli (o blueprints) per comprendere meglio il sistema che stiamo sviluppando La modellazione:La modellazione: –Ci aiuta a visualizzare il sistema come dovrebbe essere –Ci permette di specificare la struttura e il comportamento del sistema. –Ci fornisce una linea guida nella costruzione del sistema –Documenta le decisioni che prendiamo –Scompone il problema –Controlla la complessità –E un punto di partenza Costruiamo modelli dei sistemi complessi perchè non siamo in grado di comprendere tali sistemi nella loro interezzaCostruiamo modelli dei sistemi complessi perchè non siamo in grado di comprendere tali sistemi nella loro interezza
7
Cosa è UML? UML è un linguaggio per...UML è un linguaggio per... –Visualizzare –Specificare –Costruire –Documentare... gli artefatti di un sistema software UML è un linguaggio per...UML è un linguaggio per... –Visualizzare –Specificare –Costruire –Documentare... gli artefatti di un sistema software UML è il blueprint per la costruzione del software
8
Cosa è UML? UML è Il Linguaggio per lanalisi e la progettazione Object OrientedUML è Il Linguaggio per lanalisi e la progettazione Object Oriented
9
Contributi allUML Fusion Operation descriptions, Message numbering Fusion Operation descriptions, Message numbering Meyer Before and after conditions Meyer Before and after conditions Harel State charts Harel State charts Wirfs-Brock Responsibilities Wirfs-Brock Responsibilities Embley Singleton classes, High-level view Embley Singleton classes, High-level view Odell Classification Odell Classification Shlaer-Mellor Object Lifecycles Shlaer-Mellor Object Lifecycles Gamma, et.al Frameworks, patterns, notes Gamma, et.al Frameworks, patterns, notes Booch Rumbaugh Jacobson
10
Breve storia di UML Inizio progetto: ottobre 1994Inizio progetto: ottobre 1994 Proposta a OMG (Object Management Group): gennaio 1997Proposta a OMG (Object Management Group): gennaio 1997 Accettazione, da parte di OMG, della versione 1.1: novembre 1997Accettazione, da parte di OMG, della versione 1.1: novembre 1997 Attualmente: UML versione 1.5Attualmente: UML versione 1.5 Alle porte: UML 2.0Alle porte: UML 2.0 Inizio progetto: ottobre 1994Inizio progetto: ottobre 1994 Proposta a OMG (Object Management Group): gennaio 1997Proposta a OMG (Object Management Group): gennaio 1997 Accettazione, da parte di OMG, della versione 1.1: novembre 1997Accettazione, da parte di OMG, della versione 1.1: novembre 1997 Attualmente: UML versione 1.5Attualmente: UML versione 1.5 Alle porte: UML 2.0Alle porte: UML 2.0
11
Panoramica su UML UML è un linguaggioUML è un linguaggio –Un linguaggio fornisce un vocabolario e le regole per combinare le parole allo scopo di comunicare –Non è una metodologia, ma è utilizzato da molti processi di sviluppo del software UML è un linguaggioUML è un linguaggio –Un linguaggio fornisce un vocabolario e le regole per combinare le parole allo scopo di comunicare –Non è una metodologia, ma è utilizzato da molti processi di sviluppo del software
12
Panoramica su UML UML è un linguaggio per visualizzareUML è un linguaggio per visualizzare –La visualizzazione facilita la comunicazione e favorisce un adeguato livello di astrazione –Unimmagine vale mille parole UML è un linguaggio per visualizzareUML è un linguaggio per visualizzare –La visualizzazione facilita la comunicazione e favorisce un adeguato livello di astrazione –Unimmagine vale mille parole
13
Panoramica su UML UML è un linguaggio per stendere specificheUML è un linguaggio per stendere specifiche –Stendere specifiche significa costruire modelli che siano precisi, non ambigui e completi –I simboli UML hanno una sintassi e una semantica ben definite UML è un linguaggio per stendere specificheUML è un linguaggio per stendere specifiche –Stendere specifiche significa costruire modelli che siano precisi, non ambigui e completi –I simboli UML hanno una sintassi e una semantica ben definite
14
Panoramica su UML UML è un linguaggio per costruireUML è un linguaggio per costruire –UML non è un ambiente di programmazione visuale ma i suoi modelli sono nati per essere tradotti in linguaggi Object Oriented UML è un linguaggio per costruireUML è un linguaggio per costruire –UML non è un ambiente di programmazione visuale ma i suoi modelli sono nati per essere tradotti in linguaggi Object Oriented
15
Panoramica su UML UML è un linguaggio per documentareUML è un linguaggio per documentare –le specifiche funzionali –larchitettura generale –la scomposizione strutturale del sistema –le interazioni tra i componenti –la distribuzione e il deployment UML è un linguaggio per documentareUML è un linguaggio per documentare –le specifiche funzionali –larchitettura generale –la scomposizione strutturale del sistema –le interazioni tra i componenti –la distribuzione e il deployment
16
UML in 21 minuti... I modelli di UML sono espressi attraverso una serie di diagrammiI modelli di UML sono espressi attraverso una serie di diagrammi Esistono diverse tipologie di diagrammiEsistono diverse tipologie di diagrammi Ogni tipologia coglie un aspetto diverso del sistemaOgni tipologia coglie un aspetto diverso del sistema I modelli di UML sono espressi attraverso una serie di diagrammiI modelli di UML sono espressi attraverso una serie di diagrammi Esistono diverse tipologie di diagrammiEsistono diverse tipologie di diagrammi Ogni tipologia coglie un aspetto diverso del sistemaOgni tipologia coglie un aspetto diverso del sistema
17
I Diagrammi di UML Use Case DiagramUse Case Diagram Sequence DiagramSequence Diagram Collaboration DiagramCollaboration Diagram Statechart (STD) DiagramStatechart (STD) Diagram Activity DiagramActivity Diagram Component DiagramComponent Diagram Deployment DiagramDeployment Diagram Class DiagramClass Diagram Use Case DiagramUse Case Diagram Sequence DiagramSequence Diagram Collaboration DiagramCollaboration Diagram Statechart (STD) DiagramStatechart (STD) Diagram Activity DiagramActivity Diagram Component DiagramComponent Diagram Deployment DiagramDeployment Diagram Class DiagramClass Diagram
18
Use Cases Diagram Un sistema risponde ai bisogni dei suoi utentiUn sistema risponde ai bisogni dei suoi utenti Questi bisogni sono catturati come Use CasesQuesti bisogni sono catturati come Use Cases Uno Use Case è un modo di usare il sistemaUno Use Case è un modo di usare il sistema Uno Use Case è uno schema di comportamento esibito dal sistemaUno Use Case è uno schema di comportamento esibito dal sistema La collezione degli Use Cases specifica tutti i modi di usare il sistemaLa collezione degli Use Cases specifica tutti i modi di usare il sistema Un sistema risponde ai bisogni dei suoi utentiUn sistema risponde ai bisogni dei suoi utenti Questi bisogni sono catturati come Use CasesQuesti bisogni sono catturati come Use Cases Uno Use Case è un modo di usare il sistemaUno Use Case è un modo di usare il sistema Uno Use Case è uno schema di comportamento esibito dal sistemaUno Use Case è uno schema di comportamento esibito dal sistema La collezione degli Use Cases specifica tutti i modi di usare il sistemaLa collezione degli Use Cases specifica tutti i modi di usare il sistema
19
ActorsActors Un Actor è qualcuno o qualcosa che deve interagire con il sistemaUn Actor è qualcuno o qualcosa che deve interagire con il sistema Gli Actors rappresentano qualunque cosa che deve scambiare informazioni con il sistemaGli Actors rappresentano qualunque cosa che deve scambiare informazioni con il sistema Un Actor è qualcuno o qualcosa che deve interagire con il sistemaUn Actor è qualcuno o qualcosa che deve interagire con il sistema Gli Actors rappresentano qualunque cosa che deve scambiare informazioni con il sistemaGli Actors rappresentano qualunque cosa che deve scambiare informazioni con il sistema
20
Actors e Use Cases Customer Perform Card Transaction Retail Institution Sponsoring Financial Institution Reconcile Transactions Process Customer Bill Manage Customer Account
21
Actors e Use Cases Customer Perform Card Transaction Retail Institution Sponsoring Financial Institution Reconcile Transactions Process Customer Bill Manage Customer Account
22
Realizziamo gli Use Cases Gli Interaction Diagrams permettono di ottenere il modello di come interagiscono Actors e oggetti per realizzare uno Use CaseGli Interaction Diagrams permettono di ottenere il modello di come interagiscono Actors e oggetti per realizzare uno Use Case Sono realizzati tramite due diverse, e complementari, modalità:Sono realizzati tramite due diverse, e complementari, modalità: –i Collaboration Diagrams –i Sequence Diagrams Gli Interaction Diagrams permettono di ottenere il modello di come interagiscono Actors e oggetti per realizzare uno Use CaseGli Interaction Diagrams permettono di ottenere il modello di come interagiscono Actors e oggetti per realizzare uno Use Case Sono realizzati tramite due diverse, e complementari, modalità:Sono realizzati tramite due diverse, e complementari, modalità: –i Collaboration Diagrams –i Sequence Diagrams
23
Sequence Diagrams Un Sequence Diagram mette in evidenza: –la sequenza temporale dei messaggi –la lifetime degli oggetti –il focus of control Un Sequence Diagram mette in evidenza: –la sequenza temporale dei messaggi –la lifetime degli oggetti –il focus of control
24
Sequence Diagrams s:Caller :Switch c:Conversation r:Caller setDialTone() «create» ring() liftReceiver routeCall(s,n) connect(s)connect(r) liftReceiver *dialDigit(d) dialing {dialing.executionTime<30 sec} connect(r,s)
25
Collaboration Diagrams Un Collaboration Diagram mette in evidenza:Un Collaboration Diagram mette in evidenza: lorganizzazione degli oggetti che partecipano in una interazionelorganizzazione degli oggetti che partecipano in una interazione la lifetime degli oggettila lifetime degli oggetti il focus of controlil focus of control Un Collaboration Diagram mette in evidenza:Un Collaboration Diagram mette in evidenza: lorganizzazione degli oggetti che partecipano in una interazionelorganizzazione degli oggetti che partecipano in una interazione la lifetime degli oggettila lifetime degli oggetti il focus of controlil focus of control
26
Collaboration Diagrams s:Caller :Switch c:Conversation r:Caller 1: liftReceiver 2: setDialTone() 3:*dialDigit(d) routeCall(s,n) 5: «create» 7: liftReceiver 6: ring() 9: connect(s) 10: connect(r) 8: connect(r,s)
27
Statechart (STD) Diagram Una macchina a stati è usata per ottenere il modello di un singolo oggettoUna macchina a stati è usata per ottenere il modello di un singolo oggetto Una macchina a stati descrive la sequenza degli stati attraverso i quali transita un oggetto durante il suo ciclo di vita in risposta a eventi, assieme alle sue risposte a tali eventiUna macchina a stati descrive la sequenza degli stati attraverso i quali transita un oggetto durante il suo ciclo di vita in risposta a eventi, assieme alle sue risposte a tali eventi Il diagramma che descrive la macchina a stati è detto State Transition Diagram (STD)Il diagramma che descrive la macchina a stati è detto State Transition Diagram (STD) Una macchina a stati è usata per ottenere il modello di un singolo oggettoUna macchina a stati è usata per ottenere il modello di un singolo oggetto Una macchina a stati descrive la sequenza degli stati attraverso i quali transita un oggetto durante il suo ciclo di vita in risposta a eventi, assieme alle sue risposte a tali eventiUna macchina a stati descrive la sequenza degli stati attraverso i quali transita un oggetto durante il suo ciclo di vita in risposta a eventi, assieme alle sue risposte a tali eventi Il diagramma che descrive la macchina a stati è detto State Transition Diagram (STD)Il diagramma che descrive la macchina a stati è detto State Transition Diagram (STD)
28
Statechart (STD) Diagram Uno stato è una condizione o situazione durante la vita di un oggetto nella quale loggetto soddisfa qualche condizione, esegue qualche attività, o aspetta per qualche eventoUno stato è una condizione o situazione durante la vita di un oggetto nella quale loggetto soddisfa qualche condizione, esegue qualche attività, o aspetta per qualche evento Un evento è la specifica di un qualcosa la cui durata è trascurabile rispetto alla durata del ciclo di vita delloggettoUn evento è la specifica di un qualcosa la cui durata è trascurabile rispetto alla durata del ciclo di vita delloggetto Una transizione è una relazione fra due stati che indica che un oggetto passerà dalluno allaltro come effetto di un evento o quando una specifica condizione è verificataUna transizione è una relazione fra due stati che indica che un oggetto passerà dalluno allaltro come effetto di un evento o quando una specifica condizione è verificata Una azione è una operazione atomica il cui effetto è o un cambiamento di stato o il ritorno di un valoreUna azione è una operazione atomica il cui effetto è o un cambiamento di stato o il ritorno di un valore Uno stato è una condizione o situazione durante la vita di un oggetto nella quale loggetto soddisfa qualche condizione, esegue qualche attività, o aspetta per qualche eventoUno stato è una condizione o situazione durante la vita di un oggetto nella quale loggetto soddisfa qualche condizione, esegue qualche attività, o aspetta per qualche evento Un evento è la specifica di un qualcosa la cui durata è trascurabile rispetto alla durata del ciclo di vita delloggettoUn evento è la specifica di un qualcosa la cui durata è trascurabile rispetto alla durata del ciclo di vita delloggetto Una transizione è una relazione fra due stati che indica che un oggetto passerà dalluno allaltro come effetto di un evento o quando una specifica condizione è verificataUna transizione è una relazione fra due stati che indica che un oggetto passerà dalluno allaltro come effetto di un evento o quando una specifica condizione è verificata Una azione è una operazione atomica il cui effetto è o un cambiamento di stato o il ritorno di un valoreUna azione è una operazione atomica il cui effetto è o un cambiamento di stato o il ritorno di un valore
29
STD per una Linea Telefonica Idle Dial Tone do: sound dial tone off-hook on-hook Dial Tone do: sound dial tone
30
STD per una Linea Telefonica Idle Dial Tone do: sound dial tone off-hook Connecting do: find connection valid number Ringing do: ring bell routed Connected called phone answers Disconnected called phone hangs up Dialing digit(n) on-hook
31
STD per una Linea Telefonica Idle Dial Tone do: sound dial tone off-hook Timed-out do: sound loud beep time-out on-hook
32
STD per una Linea Telefonica Idle Dial Tone do: sound dial tone off-hook Receiving Recorded Message do: play message invalid number Dialing digit(n) Disconnected message done on-hook
33
STD per una Linea Telefonica Idle Dial Tone do: sound dial tone off-hook Connecting do: find connection valid number Dialing digit(n) Busy do: sound busy tone number busy on-hook
34
STD per una Linea Telefonica Idle on-hook Dial Tone do: sound dial tone off-hook Connecting do: find connection valid number Ringing do: ring bell routed Connected called phone answers Disconnected called phone hangs up Receiving Recorded Message do: play message invalid number Dialing digit(n) on-hook message done Timed-out do: sound loud beep time-out on-hook on hook/disconnect line Busy do: sound busy tone number busy on-hook
35
STD per la partita degli Scacchi black moves Blacks turn do: think white moves Whites turn do: think checkmate Black wins Draw stalemate White wins checkmate
36
Component Diagram Un Component Diagram mostra un insieme di componenti e le loro relazioniUn Component Diagram mostra un insieme di componenti e le loro relazioni Un Component Diagram comunemente contiene:Un Component Diagram comunemente contiene: –Componenti –Interfacce –Relazioni di dipendenza, generalizzazione, associazione e realizzazione Un Component Diagram mostra un insieme di componenti e le loro relazioniUn Component Diagram mostra un insieme di componenti e le loro relazioni Un Component Diagram comunemente contiene:Un Component Diagram comunemente contiene: –Componenti –Interfacce –Relazioni di dipendenza, generalizzazione, associazione e realizzazione
37
Un Component Diagram __________ ____ __________ index.html __________ ____ __________ find.html find.exe «hyperlink» dbacs.dll nateng.dll
38
Deployment Diagram Un deployment diagram è un diagramma che documenta la configurazione al run time dei nodi che partecipano al processo e i componenti che vivono in essiUn deployment diagram è un diagramma che documenta la configurazione al run time dei nodi che partecipano al processo e i componenti che vivono in essi Tipicamente un deployment diagram è usato per avere il modello diTipicamente un deployment diagram è usato per avere il modello di –Sistemi embedded –Client/server –Sistemi distribuiti Un deployment diagram è un diagramma che documenta la configurazione al run time dei nodi che partecipano al processo e i componenti che vivono in essiUn deployment diagram è un diagramma che documenta la configurazione al run time dei nodi che partecipano al processo e i componenti che vivono in essi Tipicamente un deployment diagram è usato per avere il modello diTipicamente un deployment diagram è usato per avere il modello di –Sistemi embedded –Client/server –Sistemi distribuiti
39
Il Modello di un Sistema Client/Server console «processor» caching server Deploys clients http.exe rting.exe 2..* «processor» server Deploys dbadmin.exe tktmstr.exe logexec.exe 4..* servers
40
Il Modello di un Sistema Distribuito :console :Internet :regional server :regional server :regional server :country server :logging server Note: country servers are reachable to one another via the companys private network
41
Class Diagrams Un Class Diagram è un diagramma che mostra un insieme di classi, interfacce, e collaborazioni e le loro dipendenzeUn Class Diagram è un diagramma che mostra un insieme di classi, interfacce, e collaborazioni e le loro dipendenze Un Class Diagram è un modello statico del sistema utilizzato perUn Class Diagram è un modello statico del sistema utilizzato per –ottenere un dizionario del sistema –avere un modello di collaborazione fra gli oggetti (p.e. per specificare quali oggetti partecipano a una transazione) –avere un modello logico dello schema del database Un Class Diagram è un diagramma che mostra un insieme di classi, interfacce, e collaborazioni e le loro dipendenzeUn Class Diagram è un diagramma che mostra un insieme di classi, interfacce, e collaborazioni e le loro dipendenze Un Class Diagram è un modello statico del sistema utilizzato perUn Class Diagram è un modello statico del sistema utilizzato per –ottenere un dizionario del sistema –avere un modello di collaborazione fra gli oggetti (p.e. per specificare quali oggetti partecipano a una transazione) –avere un modello logico dello schema del database
42
Class Diagram Company Person Department Office Headquarters ContactInformation PersonelRecord ISecureInformation dependency interface class (class) name member manager Location role { subset } constraint association 1 * * 1..* 1 0..1 multiplicity aggregation generalization
43
Class Diagram Company Person name: Name employeeID: Integer title: String getPhoto(p: Photo) getSoundByte() getContactInformation() getPersonalRecords() Department name: Name Office address: String voice: Number Headquarters ContactInformation address: String PersonelRecord taxID employmentHistory PersonelRecord { subset } member manager 1..*1 1 * * 0..1 ISecureInformation Location operations attributes
44
PackagesPackages Un Package è un meccanismo di uso generale perUn Package è un meccanismo di uso generale per –organizzare in gruppi gli elementi che sono semanticamente simili o funzionalmente correlati –I package possono essere utilizzati oer creare gerarchie di contenitori (come i folder per il file-system) Un Package è un meccanismo di uso generale perUn Package è un meccanismo di uso generale per –organizzare in gruppi gli elementi che sono semanticamente simili o funzionalmente correlati –I package possono essere utilizzati oer creare gerarchie di contenitori (come i folder per il file-system)
45
User ServicesBusiness ServicesData Services Packages e Servizi
46
Design Pattern e UML Impariamo a leggere i Design PatternImpariamo a leggere i Design Pattern –Per capire meglio i Pattern li visualizziamo con diagrammi UML –Anche quando conosciamo un Pattern non sempre ne ricordiamo la struttura, un colpo docchio al Class Diagram ci rinfresca la memoria I Pattern costituiscono un vocabolario comune per la comunicazione dei concettiI Pattern costituiscono un vocabolario comune per la comunicazione dei concetti –Anche lUML è un vocabolario comune, ma è disegnato invece che scritto o parlato Impariamo a leggere i Design PatternImpariamo a leggere i Design Pattern –Per capire meglio i Pattern li visualizziamo con diagrammi UML –Anche quando conosciamo un Pattern non sempre ne ricordiamo la struttura, un colpo docchio al Class Diagram ci rinfresca la memoria I Pattern costituiscono un vocabolario comune per la comunicazione dei concettiI Pattern costituiscono un vocabolario comune per la comunicazione dei concetti –Anche lUML è un vocabolario comune, ma è disegnato invece che scritto o parlato
47
Esempi di Design Pattern FactoryFactory
48
AdapterAdapter
49
ObserverObserver
50
Unapplicazione reale Utilizziamo lUML per documentare lapplicazione NorthwindUtilizziamo lUML per documentare lapplicazione Northwind Manutenere i diagrammi UML in sincronia con il codice sorgente non è una sfida da pocoManutenere i diagrammi UML in sincronia con il codice sorgente non è una sfida da poco –Molti tool di modellazione UML fanno il Reverse-Engineering, il Forward-Engineering e il Round-Trip modeling Utilizziamo lUML per documentare lapplicazione NorthwindUtilizziamo lUML per documentare lapplicazione Northwind Manutenere i diagrammi UML in sincronia con il codice sorgente non è una sfida da pocoManutenere i diagrammi UML in sincronia con il codice sorgente non è una sfida da poco –Molti tool di modellazione UML fanno il Reverse-Engineering, il Forward-Engineering e il Round-Trip modeling
51
DEMODEMO Reverse Engineering di NorthwindReverse Engineering di Northwind Individuazione dei pattern sui diagrammi UMLIndividuazione dei pattern sui diagrammi UML Progettazione e realizzazione di un DataProvider aggiuntivoProgettazione e realizzazione di un DataProvider aggiuntivo Reverse Engineering di NorthwindReverse Engineering di Northwind Individuazione dei pattern sui diagrammi UMLIndividuazione dei pattern sui diagrammi UML Progettazione e realizzazione di un DataProvider aggiuntivoProgettazione e realizzazione di un DataProvider aggiuntivo
52
Agile UML! Non correte il rischio di over-designingNon correte il rischio di over-designing –Utilizzate UML con dosi sostenibili –Trovate il giusto livello di dettaglio da applicare ai diagrammi Dal punto di vista di artefatti UML=DocumentazioneDal punto di vista di artefatti UML=Documentazione Ricordatevi del manifesto:Ricordatevi del manifesto: Software funzionante invece che documentazione esaustiva Non correte il rischio di over-designingNon correte il rischio di over-designing –Utilizzate UML con dosi sostenibili –Trovate il giusto livello di dettaglio da applicare ai diagrammi Dal punto di vista di artefatti UML=DocumentazioneDal punto di vista di artefatti UML=Documentazione Ricordatevi del manifesto:Ricordatevi del manifesto: Software funzionante invece che documentazione esaustiva
53
Agile UML! Non diventate schiavi dei vostri diagrammiNon diventate schiavi dei vostri diagrammi –Molti diagrammi possono servire per pensare prima di scrivere, poi possono essere gettati via! –Lobiettivo finale non è costruire modelli, ma sistemi software –Se decidete di mantenere i diagrammi dotatevi di un tool che li sincronizzi al meglio con il codice –I diagrammi di più alto livello (architetturali o concettuali) hanno un valore che giustifica la loro manutenzione nel tempo Non diventate schiavi dei vostri diagrammiNon diventate schiavi dei vostri diagrammi –Molti diagrammi possono servire per pensare prima di scrivere, poi possono essere gettati via! –Lobiettivo finale non è costruire modelli, ma sistemi software –Se decidete di mantenere i diagrammi dotatevi di un tool che li sincronizzi al meglio con il codice –I diagrammi di più alto livello (architetturali o concettuali) hanno un valore che giustifica la loro manutenzione nel tempo
54
Agile UML! Non ve la sentite di fare pair-programming?Non ve la sentite di fare pair-programming? Provate il pair-designing! Il rendimento è garantito La condivisione delle conoscenze è più immediata sui diagrammi che sul codiceLa condivisione delle conoscenze è più immediata sui diagrammi che sul codice La memoria visiva è più duratura nel tempo, le righe di codice si dimenticanoLa memoria visiva è più duratura nel tempo, le righe di codice si dimenticano Non ve la sentite di fare pair-programming?Non ve la sentite di fare pair-programming? Provate il pair-designing! Il rendimento è garantito La condivisione delle conoscenze è più immediata sui diagrammi che sul codiceLa condivisione delle conoscenze è più immediata sui diagrammi che sul codice La memoria visiva è più duratura nel tempo, le righe di codice si dimenticanoLa memoria visiva è più duratura nel tempo, le righe di codice si dimenticano
55
Questions & Answers Omid Ehsani Senior Consultant and Trainer oehsani@lightcode.net Omid Ehsani Senior Consultant and Trainer oehsani@lightcode.net Sito ufficiale: http://www.uml.org/Libri: UML Distilled (Martin Fowler, Kendall Scott) – Addison WesleyUML Distilled (Martin Fowler, Kendall Scott) – Addison Wesley The Unified Modeling Language Reference (James Rambaugh, Ivar Jacobson, Grady Booch) - Addison WesleyThe Unified Modeling Language Reference (James Rambaugh, Ivar Jacobson, Grady Booch) - Addison Wesley Writing Effective Use Cases (Alistair Cockburn) - Addison WesleyWriting Effective Use Cases (Alistair Cockburn) - Addison Wesley Sito ufficiale: http://www.uml.org/Libri: UML Distilled (Martin Fowler, Kendall Scott) – Addison WesleyUML Distilled (Martin Fowler, Kendall Scott) – Addison Wesley The Unified Modeling Language Reference (James Rambaugh, Ivar Jacobson, Grady Booch) - Addison WesleyThe Unified Modeling Language Reference (James Rambaugh, Ivar Jacobson, Grady Booch) - Addison Wesley Writing Effective Use Cases (Alistair Cockburn) - Addison WesleyWriting Effective Use Cases (Alistair Cockburn) - Addison Wesley
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.