La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Real World UML Omid Ehsani Senior Consultant and Trainer Omid Ehsani Senior Consultant and Trainer

Presentazioni simili


Presentazione sul tema: "Real World UML Omid Ehsani Senior Consultant and Trainer Omid Ehsani Senior Consultant and Trainer"— Transcript della presentazione:

1 Real World UML Omid Ehsani Senior Consultant and Trainer Omid Ehsani Senior Consultant and Trainer

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..* 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 Omid Ehsani Senior Consultant and Trainer Sito ufficiale: 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: 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


Scaricare ppt "Real World UML Omid Ehsani Senior Consultant and Trainer Omid Ehsani Senior Consultant and Trainer"

Presentazioni simili


Annunci Google