Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML:...

104
Unified Modeling Language Unified Modeling Language Davide Davide Frey Frey , Gian Pietro Picco , Gian Pietro Picco Lucidi tratti dal materiale di Luciano Baresi Lucidi tratti dal materiale di Luciano Baresi Politecnico Politecnico di Milano di Milano

Transcript of Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML:...

Page 1: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

Unified Modeling LanguageUnified Modeling Language

Davide Davide FreyFrey, Gian Pietro Picco, Gian Pietro Picco

Lucidi tratti dal materiale di Luciano BaresiLucidi tratti dal materiale di Luciano Baresi

PolitecnicoPolitecnicodi Milanodi Milano

Page 2: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

IntroduzioneIntroduzione

Page 3: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Modellazione visualeModellazione visuale

Computer SystemComputer System

““Un Un modello cattura modello cattura le le parti parti essenziali essenziali di un di un sistemasistema””

Dr. James James RumbaughRumbaugh

Business ProcessBusiness Process

richiestarichiesta

ordineordine

consegnaconsegna

Page 4: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Perché UMLPerché UML

UML è il linguaggio visuale standard (OMG)UML è il linguaggio visuale standard (OMG)per definire, progettare, realizzare eper definire, progettare, realizzare edocumentare i sistemi software ad oggettidocumentare i sistemi software ad oggetti

UML riunisce molte proposte esistentiUML riunisce molte proposte esistenti((BoochBooch, , Rumbaugh Rumbaugh e e JacobsonJacobson))

UML copre lUML copre l’’intero processo di produzioneintero processo di produzione UML è sponsorizzato dalle maggiori industrieUML è sponsorizzato dalle maggiori industrie

produttrici di softwareproduttrici di software

Page 5: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Perché UML (Perché UML (contcont.).)

UML riunisce aspetti dellUML riunisce aspetti dell’’ingegneria delingegneria delsoftware, delle basi di dati e dellasoftware, delle basi di dati e dellaprogettazione di sistemiprogettazione di sistemi

UML è indipendente da qualsiasi linguaggioUML è indipendente da qualsiasi linguaggiodi programmazionedi programmazione

UML è utilizzabile in domini applicativiUML è utilizzabile in domini applicatividiversi e per progetti di diverse dimensionidiversi e per progetti di diverse dimensioni

UML è estendibile per modellare meglio leUML è estendibile per modellare meglio lediverse realtàdiverse realtà

Page 6: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Contributi principaliContributi principaliHarelHarel

StatechartsStatechartsMeyerMeyer

Before and after Before and after conditions conditions

Gamma, et alGamma, et al

Frameworks and patterns,Frameworks and patterns,

HP FusionHP Fusion

Operation descriptions and Operation descriptions and message numberingmessage numbering

EmbleyEmbley

Singleton classes andSingleton classes andhigh-level viewhigh-level view

Wirfs-BrockWirfs-Brock

ResponsibilitiesResponsibilities

OdellOdell

ClassificationClassification

Shaler Shaler - Mellor- Mellor

Object lifecyclesObject lifecycles

RumbaughRumbaugh

OMTOMT

BoochBooch

Booch methodBooch method

JacobsonJacobson

OOSEOOSE

Page 7: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

PartnerPartner

AonixAonix Colorado State UniversityColorado State University Computer AssociatesComputer Associates Concept FiveConcept Five Data AccessData Access EDSEDS Enea Enea DataData Hewlett-PackardHewlett-Packard IBMIBM I-LogixI-Logix InLine InLine SoftwareSoftware IntellicorpIntellicorp Kabira Kabira TechnologiesTechnologies Klasse ObjectenKlasse Objecten Lockheed MartinLockheed Martin

MicrosoftMicrosoft ObjecTimeObjecTime OracleOracle PtechPtech OAO Technology SolutionsOAO Technology Solutions Rational SoftwareRational Software ReichReich SAPSAP SofteamSofteam Sterling SoftwareSterling Software SunSun TaskonTaskon TelelogicTelelogic UnisysUnisys ……

Page 8: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

MModel-basedodel-based

I I modelli rappresentano il linguaggio dei progettistimodelli rappresentano il linguaggio dei progettisti I I modelli rappresentano il sistema da costruire modelli rappresentano il sistema da costruire o o costruitocostruito I I modelli sono modelli sono un un veicolo veicolo di di comunicazionecomunicazione I I modelli descrivono modelli descrivono in in modo modo ““visualevisuale”” il sistema dail sistema da

costruirecostruire

I I modelli sono uno strumento modelli sono uno strumento per per gestire gestire lalacomplessitàcomplessità

I I modelli consentono modelli consentono di di analizzare caratteristicheanalizzare caratteristicheparticolari particolari del del sistemasistema

Page 9: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Design Design ViewView

4+1 Views4+1 Views

ImplementationImplementation ViewView

ProcessProcess ViewView DeploymentDeployment ViewView

Use CaseUse CaseViewView

P. Kruchten, “The 4+1 View Model of Software Architecture”.IEEE Software 12 (6), pages 42-50, november 1995

LogicalLogical PhysicalPhysical

Page 10: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Diagrammi Diagrammi UMLUML

Viste staticheViste statiche Use Case DiagramsUse Case Diagrams Class DiagramsClass Diagrams Object DiagramsObject Diagrams Component DiagramsComponent Diagrams Deployment DiagramsDeployment Diagrams

Viste dinamicheViste dinamiche Sequence DiagramsSequence Diagrams Collaboration DiagramsCollaboration Diagrams Statechart DiagramsStatechart Diagrams Activity DiagramsActivity Diagrams

Page 11: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

Use Use case case diagramdiagram

Page 12: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

RequisitiRequisiti

Il primo passo di Il primo passo di ““qualsiasiqualsiasi”” processo di processo disviluppo è la definizione dei requisitisviluppo è la definizione dei requisiti Definizione del Business ModelDefinizione del Business Model Solitamente informale e in linguaggio naturaleSolitamente informale e in linguaggio naturale

Jacobson Jacobson (OOSE) propone una notazione(OOSE) propone una notazioneparticolare che è confluita in UMLparticolare che è confluita in UML

UseUse Case Case DiagramDiagram

Page 13: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Use Use casecase Descrive una particolare funzionalità fornita dal sistema (Descrive una particolare funzionalità fornita dal sistema (=un=un

particolare uso) o da una sua parte particolare uso) o da una sua parte dal punto di vistadal punto di vistadelldell’’utilizzatore del sistemautilizzatore del sistema

Mostra Mostra le le entitentitàà coinvolte nella fornitura della funzionalit coinvolte nella fornitura della funzionalitàà((attori attori e e sistemasistema)) senza entrare nel dettaglio della loro struttura internasenza entrare nel dettaglio della loro struttura interna

DescriveDescrive Il sistemaIl sistema LL’’ambienteambiente Le relazioni fra sistema e ambienteLe relazioni fra sistema e ambiente

Diversi livelli di dettaglioDiversi livelli di dettaglio Nei casi piNei casi piùù semplici semplici, , gli gli use case use case sono identificati parlandosono identificati parlando

con con ll’’uutente tente e e discutendo delldiscutendo dell’’uutilizzo che si intende tilizzo che si intende fare delfare delsistemasistema

Page 14: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Elementi graficiElementi grafici

Actor:Actor: è qualcuno (utente) o qualcosa è qualcuno (utente) o qualcosa(sistemi esterni, hardware) che:(sistemi esterni, hardware) che: Controlla le funzionalitàControlla le funzionalità Fornisce input o riceve output dal sistemaFornisce input o riceve output dal sistema Attori diversi possono in pratica essereAttori diversi possono in pratica essere

rappresentati dalla medesima entità realerappresentati dalla medesima entità reale

Use Case:Use Case: è un è un’’unità funzionale parteunità funzionale partedel sistemadel sistema

Page 15: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Relazioni principaliRelazioni principali

AssociationsAssociations identificano relazioni sempliciidentificano relazioni semplicitra attori e casitra attori e casi

Include Include fattorizza proprietà comuni. Èfattorizza proprietà comuni. Èsimile allsimile all’’innesto di procedure alla Pascalinnesto di procedure alla Pascal..A includes BA includes B

CommunicateCommunicate indica scambio dati tra due indica scambio dati tra dueuse caseuse case

ExtendExtend identifica comportamenti similiidentifica comportamenti simili(varianti)(varianti). A . A può essere visto come unapuò essere visto come unavariante divariante di B B

GeneralizationGeneralization si applica sia ad attori chesi applica sia ad attori chea use casea use case. A . A eredita il comportamento dieredita il comportamento diB. A B. A può essere sostituito ad ognipuò essere sostituito ad ognioccorrenza di Boccorrenza di B

<<include>>A B

<<extend>>A B

A B

<<communicate>>A B

Page 16: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Registrazione corsiRegistrazione corsi

AllAll’’inizio dellinizio dell’’anno accademico, lanno accademico, l’’ufficioufficioamministrativo dellamministrativo dell’’università fornisce agli studentiuniversità fornisce agli studentila lista di corsi disponibili, attraverso un sistema dila lista di corsi disponibili, attraverso un sistema diregistrazione.registrazione.

Il sistema deve consentire agli studenti diIl sistema deve consentire agli studenti diselezionare quattro corsi fra quelli disponibili. Inselezionare quattro corsi fra quelli disponibili. Inaggiunta ogni studente deve indicare dueaggiunta ogni studente deve indicare duealternative.alternative.

Nessun corso può avere più di 10 studenti. Corsi conNessun corso può avere più di 10 studenti. Corsi conmeno di 3 studenti vengono cancellatimeno di 3 studenti vengono cancellatiautomaticamente.automaticamente.

Page 17: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Registrazione corsi (Registrazione corsi (contcont.).)

I professori devono poter accedere al sistema perI professori devono poter accedere al sistema perindicare i corsi in cui vorrebbero insegnare e perindicare i corsi in cui vorrebbero insegnare e pervedere gli studenti iscritti ai loro corsi.vedere gli studenti iscritti ai loro corsi.

Il processo di registrazione dura 3 giorni.Il processo di registrazione dura 3 giorni. Il primo giorno è riservato agli studenti del primo anno.Il primo giorno è riservato agli studenti del primo anno. Il secondo giorno è riservato agli altri studenti.Il secondo giorno è riservato agli altri studenti. Durante il terzo giorno si risolvono eventuali conflitti.Durante il terzo giorno si risolvono eventuali conflitti.

Finito il processo di registrazione, le informazioniFinito il processo di registrazione, le informazionirelative ad un studente sono inviate allrelative ad un studente sono inviate all’’ufficioufficiocontabile per determinare le tasse da pagare.contabile per determinare le tasse da pagare.

Page 18: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio(Registrazione corsi)(Registrazione corsi)

Cambio organizzazione corso

Richiesta studenti registrati

Professore

Selezione corso

Gestione professori

Gestione studenti

Archivio globale

Gestione corsi

Richiesta corsi

Cambio corsi

Studente

Scelta corsiAmministrazione

Page 19: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

ContestoContesto(Ufficio postale)(Ufficio postale)

Il primo Use CaseIl primo Use Casediagram definisce ildiagram definisce ilcontesto del modellocontesto del modello

Scelte diverse possonoScelte diverse possonoimporreimporre Attori diversiAttori diversi Use case diversiUse case diversi

Cliente

Distr. posta

Sportello

Postino

Impiegato

Page 20: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Extend/generalizationExtend/generalization

GeneralizationGeneralization indica che uno indica che uno use use case è simile acase è simile aun altro ma è più specifico.un altro ma è più specifico.

Si descrive lo Si descrive lo use use case più specifico per differenzecase più specifico per differenzerispetto a quello più generalerispetto a quello più generale

Extend Extend e e generalizationgeneralization sono leggermentesono leggermentedifferentidifferenti

EsempiEsempi Pagamento prodotto e pagamento con carta di creditoPagamento prodotto e pagamento con carta di credito Stampa catalogo prodotti e pubblicazione catalogo suStampa catalogo prodotti e pubblicazione catalogo su

InternetInternet Calcola prezzo prodotto e calcola prezzo scontatoCalcola prezzo prodotto e calcola prezzo scontato

Page 21: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

IncludeInclude

IncludeInclude fattorizza fattorizza attività ricorrenti e condiviseattività ricorrenti e condivise Analogie conAnalogie con

Chiamata a sottoprocedura in un linguaggio diChiamata a sottoprocedura in un linguaggio diprogrammazioneprogrammazione

Scomposizione gerarchica in DFD (Si perde la condivisione)Scomposizione gerarchica in DFD (Si perde la condivisione)

EsempiEsempi La richiesta del numero di CC per ogni operazione bancariaLa richiesta del numero di CC per ogni operazione bancaria La consultazione del catalogo di una bibliotecaLa consultazione del catalogo di una biblioteca Le funzioni matematiche più complesse (sin, cos, log, ecc.)Le funzioni matematiche più complesse (sin, cos, log, ecc.)

Page 22: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio

Utente

Impiegato

Gestione prestito

Ordine Ordine Internet

Gestione dati

<<include>>

Gestione disponibilitàGestione pagamento

<<include>>

<<include>>

<<include>>

<<extend>>

Page 23: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Use Use casecase(Processo)(Processo)

Il processo di definizione degli Il processo di definizione degli use use case è iterativocase è iterativo Si inizia identificando il comportamento più sempliciSi inizia identificando il comportamento più semplici Si descrivono i comportamenti alternativi e più complessiSi descrivono i comportamenti alternativi e più complessi

Quando smettere?Quando smettere? Un buon livello di dettaglio facilità tutte le attivitàUn buon livello di dettaglio facilità tutte le attività

successivesuccessive Troppi dettagliTroppi dettagli

Complicherebbero inutilmente la descrizioneComplicherebbero inutilmente la descrizione Introdurrebbero prematuramente scelte progettualiIntrodurrebbero prematuramente scelte progettuali Precluderebbero la visione dPrecluderebbero la visione d’’insiemeinsieme

Page 24: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

DocumentazioneDocumentazione

Per ogni Per ogni use use case:case: TitoloTitolo: Computo tasse: Computo tasse AutoriAutori: : Pluto Pluto e Topolinoe Topolino DescrizioneDescrizione: Quando le iscrizioni di uno studente: Quando le iscrizioni di uno studente

sono state accettate si inviano le informazionisono state accettate si inviano le informazioniallall’’ufficio contabileufficio contabile

AttoriAttori: Ufficio contabile: Ufficio contabile Pre-condizioniPre-condizioni: Studente registrato: Studente registrato Post-condizioniPost-condizioni: Non identificate: Non identificate ScenariScenari:.....:.....

Page 25: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Oltre lOltre l’’analisi dei requisitianalisi dei requisiti

Convalida del sistemaConvalida del sistema Gli Gli use use case possono essere utilizzati per ricavarecase possono essere utilizzati per ricavare

i dati di test con cui convalidare il sistemai dati di test con cui convalidare il sistema Ogni Ogni use use case rappresenta una funzionalità checase rappresenta una funzionalità che

andrebbeandrebbe verificata verificata

Gestione del progettoGestione del progetto Gli Gli use use case propongono una case propongono una ““nuovanuova”” unità di unità di

misuramisura Gli Gli use use case potrebbero essere utili percase potrebbero essere utili per

Organizzare il progettoOrganizzare il progetto Stimare la complessità (sorta di Stimare la complessità (sorta di function pointfunction point))

Page 26: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsercizioEsercizio

Si definisca un semplice Si definisca un semplice Use Use Case Case DiagramDiagramper modellare il sistema informativo di unaper modellare il sistema informativo di unaimpresa edile. Il sistema deve gestire gliimpresa edile. Il sistema deve gestire glioperai, i cantieri, il parco mezzi e i clientioperai, i cantieri, il parco mezzi e i clienti

Page 27: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

ScenariScenari

Uno scenario è unUno scenario è un’’istanza di uno istanza di uno use use casecase È una È una ””esecuzioneesecuzione”” particolare dello particolare dello use use casecase Rappresenta il comportamento (le azioni e gli eventi) delRappresenta il comportamento (le azioni e gli eventi) del

sistema nel caso particolare consideratosistema nel caso particolare considerato

Gli scenari definiscono requisiti di più basso livelloGli scenari definiscono requisiti di più basso livellorispetto agli rispetto agli use use casecase

Gli scenari sono solitamente definiti in linguaggioGli scenari sono solitamente definiti in linguaggionaturalenaturale

UML propone una notazione particolareUML propone una notazione particolare

Interaction Interaction DiagramDiagram

Page 28: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Scenari (Scenari (contcont.).)

Ogni Ogni use use case dovrebbe essere corredato da uncase dovrebbe essere corredato da uninsieme di scenariinsieme di scenari Scenari principali (più possibile)Scenari principali (più possibile)

Tutto funziona correttamenteTutto funziona correttamente

Scenari secondari (pochi e significativi)Scenari secondari (pochi e significativi) Eccezioni (eventuali problemi o malfunzionamenti)Eccezioni (eventuali problemi o malfunzionamenti)

Quanti scenari si devono definire?Quanti scenari si devono definire? Servono tanti scenari quanti sono quelli necessari perServono tanti scenari quanti sono quelli necessari per

capire il corretto funzionamento del sistema e le eccezionicapire il corretto funzionamento del sistema e le eccezioniche si ritengono significative durante lche si ritengono significative durante l’’analisianalisi

Page 29: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio(Selezione corsi)(Selezione corsi)

Pippo sceglie Pippo sceglie i i corsicorsi: : informaticainformatica, , fisicafisica, , analisi analisi e e disegnodisegno Come Come corsi alternativi scegliecorsi alternativi sceglie: : fotografia fotografia e e giornalismogiornalismo I I corsi scelti sono immessi nel sistema corsi scelti sono immessi nel sistema di di registrazioneregistrazione Lo Lo studente viene aggiunto ai primi studente viene aggiunto ai primi 3 3 corsi principalicorsi principali Il quarto Il quarto corso corso non è non è disponibiledisponibile IF la prima IF la prima alternativa alternativa è è disponibile disponibile THENTHEN Lo Lo studente viene aggiunto studente viene aggiunto al al corsocorso ELSIF la ELSIF la seconda alternativa seconda alternativa è è disponible disponible THENTHEN Lo Lo studente viene aggiunto studente viene aggiunto al al corsocorso ELSE ELSE notifica allo studentenotifica allo studente IF not IF not notifica notifica THENTHEN Si crea Si crea la la cartella corsi dello studentecartella corsi dello studente Si mandano Si mandano le le informazioni allinformazioni all’’ufficio contabileufficio contabile

Page 30: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

Interaction Interaction diagramdiagram

Page 31: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Interaction Interaction diagramdiagram

Descrivono il comportamento dinamico di un gruppoDescrivono il comportamento dinamico di un gruppodi oggetti che di oggetti che ““interagisconointeragiscono”” per risolvere un per risolvere unproblemaproblema

Sono utilizzati per Sono utilizzati per ““formalizzareformalizzare”” gli scenari in gli scenari interminitermini Entità (oggetti)Entità (oggetti) Messaggi scambiati (metodi)Messaggi scambiati (metodi)

UML propone due diversi tipi di Interaction UML propone due diversi tipi di Interaction DiagramDiagram Sequence DiagramSequence Diagram Collaboration DiagramCollaboration Diagram

Page 32: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Sequence diagramSequence diagram

Evidenziano la sequenza temporale delleEvidenziano la sequenza temporale delleazioniazioni

Non si vedono le associazioni tra oggettiNon si vedono le associazioni tra oggetti Usabili in due forme diverseUsabili in due forme diverse

La forma generica: tutte le sequenze (esecuzioni)La forma generica: tutte le sequenze (esecuzioni)possibilipossibili

La forma dLa forma d’’istanza: una sequenza particolareistanza: una sequenza particolare(consistente con quella generica)(consistente con quella generica)

Page 33: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio((Caso specificoCaso specifico))

Pippo Selettore Informatica

Scegli informatica

Disponibile?

Aggiungi PippoConferma registrazione

Candidato perdiventare attore

Candidati perdiventare classi

Candidati per diventaremetodi

Le risposte restano impliciteLe risposte restano implicite

Page 34: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

OggettiOggetti

luciano : Persona

luciano: Persona

nome = “Luciano”cognome = “Baresi”dataNascita = “18/03/67”luogoNascita = Italia

luciano :Persona

luciano

luciano :Persona

[allegro]

Page 35: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio((Raffinamento diagramma precedenteRaffinamento diagramma precedente))

Pippo

:Selettore Informatica: Corso

seleziona(informatica)

disponibile()

aggiungi(pippo)conferma(informatica)

{transient}

Page 36: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio((Chiamata telefonicaChiamata telefonica))

Chiamante Mezzo Chiamato

inizio

disponibile

digita n.

...

instrada

aspetta suona

risposta

fine attesa fine attesa

ab

c

d

d’

{b-a < 1 sec.}{c-b < 10 sec.}

{d’-d < 5 sec.}

Il ritardo è dato dal mezzodi comunicazione

La conversazione inizia

Page 37: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Sequence diagramSequence diagram((Alternative e creazione oggettiAlternative e creazione oggetti))

Obj1:C1op()

doit(z)

Obj3:C3

Obj2:C2

Obj4:C4

[x>=0] foo(x)

[x<0] bar(x)

doit(w)

more()

Page 38: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

MessagMessaggigi

SSincroniincroni Il sorgente deve aspettareIl sorgente deve aspettare

il destinatarioil destinatario Chiamate di procedure oChiamate di procedure o

chiamate innestatechiamate innestate Flusso di controllo piattoFlusso di controllo piatto

AsAsincroniincroni Il sorgente continua senzaIl sorgente continua senza

aspettare il destinatarioaspettare il destinatario Utile per sistemiUtile per sistemi

concorrenticoncorrenti(con oggetti attivi(con oggetti attivi))

CCondizioniondizioni

IteraIterazionizioni

RRisposteisposte(return)(return)

SendSend CreateCreate DestroyDestroy

[x>0] foo()

* foo()

Page 39: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsercizioEsercizio

Si definisca un semplice Si definisca un semplice Sequence DiagramSequence Diagramper modellare il prelievo di denaro,per modellare il prelievo di denaro,supponiamo 200 Euro, da uno sportellosupponiamo 200 Euro, da uno sportelloBancomatBancomat

Page 40: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Collaboration diagramCollaboration diagram

Simili a Simili a sequence diagramsequence diagram, ma, ma Evidenziano le interazioni tra le partiEvidenziano le interazioni tra le parti Maggior attenzione allo scambio messaggiMaggior attenzione allo scambio messaggi Adatti perAdatti per

Concorrenza e Concorrenza e threadthread Invocazioni innestateInvocazioni innestate Interazioni Interazioni ““sofisticatesofisticate””

Il tempo non è associato ad una dimensione precisaIl tempo non è associato ad una dimensione precisa Le sequenze si scoprono usando strane numerazioniLe sequenze si scoprono usando strane numerazioni Sequenze alternative possono essere modellate sullo stessoSequenze alternative possono essere modellate sullo stesso

diagrammadiagramma

Page 41: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio((Precedenza tra corsiPrecedenza tra corsi))

:Selettore :Corso

1: precedenza(softEng)

true

2: precedenza(softEng)

Multioggetto

Page 42: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio:Corso

:Selettore

info:InfoAmministrative

f1:CartellaStudente

Pippo

1: seleziona 4 corsi

2: seleziona Informatica3: seleziona Matematica4: seleziona Chimica

5: seleziona Storia

6: seleziona altri 2 corsi

7: seleziona Ing. Software8: seleziona Italiano

9: sottometti corsi

10: * corso Disponibile?11: * aggiungi Pippo

12: crea CartellaStudente

13: crea InfoAmministrative

Page 43: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Qualcosa in più sui Qualcosa in più sui linklink

I I link link possono esserepossono essere InvocazioniInvocazioni <<create>><<create>> <<<<destroydestroy>>>> <<<<becomebecome>>>> <<copy>><<copy>>

Le estremità possonoLe estremità possonoessere dichiarateessere dichiarate <<<<associationassociation>>>> <<self>><<self>> <<<<globalglobal>>>> <<<<locallocal>>>> <<<<parameterparameter>>>>

P:Person[Candidate]

P:Person[Employee]

:Department

5:hire()

6: <<become>>

Page 44: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio

Gunnar Overgaard, “A Formal Approach to Collaborations in the UnifiedModeling Language”. In Proceedings of UML 99

:Company :Store

:Store

:Order:Delivery

:Delivery

processOrder(o)

delivery

6: add(d)

<<local>>

d 4: delivery(o, s)

3: s := search(pNr, a)

store

<<local>>

s

<<parameter>>

o

5: deliver(d)

1: pNr := getpNr()2: a:= getAmount()

Page 45: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Oggetti attiviOggetti attivi

B1: start(job)

job

: FactoryManager

: Robot

: FactoryJobManager

CurrentJob: TransferJob

: FactoryScheduler

1: start(job)

: Forno

A2,B2: completed(job)

A1: start(job)A2: completed(job)B2: completed(job)

{local} jobLink

Scope

Flussi di controllo

Page 46: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Chiamate innestateChiamate innestate : OrderManager

: Order

Computer: Item SComputer: Stock

: Delivery : ManOrder

1.1.2.1: newManOrder()

1: prepare()

1.1*: prepare()

1.1.3: [check() == true] new

1.1.1: check()

1.1.2: [check() == true] remove()

1.1.2.2: new

Utile per evidenziareUtile per evidenziarechiamate innestatechiamate innestate

Page 47: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsercizioEsercizio

Si definisca un semplice Si definisca un semplice CollaborationCollaborationDiagram Diagram per modellare lper modellare l’’acquisto di unacquisto di unbiglietto per assistere ad una proiezione inbiglietto per assistere ad una proiezione incinema cinema multisalamultisala

Page 48: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

RiassumendoRiassumendo

Definizione delle funzionalità principaliDefinizione delle funzionalità principali Use Use case case diagramdiagram

Uso di scenari per andare in profonditàUso di scenari per andare in profondità Liste puntateListe puntate Interaction Interaction diagramdiagram

Definizione manuale o assistita da strumentiDefinizione manuale o assistita da strumenti

CLASSICLASSI

Page 49: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

Unified Modeling LanguageUnified Modeling LanguageClass and Class and Object diagramsObject diagrams

Davide Davide FreyFrey

Lucidi tratti dal materiale di Luciano BaresiLucidi tratti dal materiale di Luciano Baresi

PolitecnicoPolitecnicodi Milanodi Milano

Page 50: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

Class Class DiagramDiagram

Page 51: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Class Class DiagramDiagram

Definiscono la visione statica del sistemaDefiniscono la visione statica del sistema classiclassi relazioni tra classirelazioni tra classi

associazione (uso)associazione (uso) generalizzazione (ereditarietà)generalizzazione (ereditarietà) aggregazione (contenimento)aggregazione (contenimento)

È forse il modello più importante perchéÈ forse il modello più importante perchédefinisce gli elementi base del sistemadefinisce gli elementi base del sistema

Page 52: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

ClassiClassi

In UML una classe è composta da tre partiIn UML una classe è composta da tre parti nomenome attributi (lo stato)attributi (lo stato) metodi (il comportamento)metodi (il comportamento)

Professore

nomecognome

create()delete()

Professore

create()delete()

Professore

nomecognome

Professore

Page 53: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

AttributiAttributi

Un attributo è una caratteristica della classeUn attributo è una caratteristica della classe Gli attributi non hanno identitàGli attributi non hanno identità Ogni attributo deve essere definito in modoOgni attributo deve essere definito in modo

precisopreciso Attributi buoniAttributi buoni per Studente per Studente

Nome, Cognome, Nome, Cognome, ……

Attributi cattiviAttributi cattivi CorsiSceltiCorsiScelti

Page 54: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

AttributiAttributi(Identità)(Identità)

Gli oggetti avranno una loro identità, non bisognaGli oggetti avranno una loro identità, non bisognaaggiungerlaaggiungerla

Codice fiscale?Codice fiscale?

nomecognome

Professore

età

id nomecognome

Professore

età

Page 55: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Attributi (Attributi (contcont.).)

Nomi che non sono diventati classi duranteNomi che non sono diventati classi durantela definizione delle classi stessela definizione delle classi stesse

Conoscenza del dominio applicativoConoscenza del dominio applicativo Persona (ambito bancario)Persona (ambito bancario)

nome, cognome, nome, cognome, codiceFiscalecodiceFiscale, , numeroContonumeroConto

Persona (ambito medico)Persona (ambito medico) nome, cognome, allergie, peso, altezzanome, cognome, allergie, peso, altezza

Page 56: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Attributi DerivatiAttributi Derivati

Calcolati, non memorizzatiCalcolati, non memorizzati Si usano quando i loro valori varianoSi usano quando i loro valori variano

frequentemente e la correttezza (precisione)frequentemente e la correttezza (precisione)del valore è importantedel valore è importante

Il valore viene calcolato in base ai valori diIl valore viene calcolato in base ai valori dialtri attributialtri attributi età = f(età = f(dataDiNascitadataDiNascita, oggi), oggi) area, perimetro = f(vertici)area, perimetro = f(vertici)

Persona

dataNascita : Date/ età : int

{età = oggi - dataNascita}

Page 57: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

ClassClassii(Visibilit(Visibilitàà ee m molteplicitàolteplicità))

Professore

nome: String

cognome: String

età: integer

visualizza()

selezionaCorso()

ProfessoreProfessore

+ nome: String

# cognome: String

- età: integer = 0

+visualizza()

- selezionaCorso()

45

classe astrattamolteplicità

public

protected

private

scope

valore iniziale

MethodMethod ::= [ ::= [visibilityvisibility] ] namename [( [(parameterparameter list)] [: return list)] [: return typetype]]

ParameterParameter ::= [direction] ::= [direction] namename: : typetype [= [= default-valuedefault-value]]

Page 58: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Diverse definizioniDiverse definizioni

Alla CRCAlla CRC(primi passi dello sviluppo)(primi passi dello sviluppo)

Molto dettagliataMolto dettagliata(progettazione avanzata)(progettazione avanzata)

<<constructor>>

new()

New(p: Policy)

<<process>>

Process(o: Order)

....

<<query>>

isSuspect(o: Order)

isFraudulent(o: Order)

<<helper>>

validateOrder(o: Order)

FraudAgent

Responsibilities

--determine the risk ofa customer order

-- handle customer-specific criteria forfraud

FraudAgent

Page 59: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

TemplateClass

Instantiated Class<base>

Base

Classi ParametricheClassi Parametriche((TemplateTemplate))

Modo sintetico per definire un insieme diModo sintetico per definire un insieme diclassi classi ““similisimili”” Le singole classi si ottengono Le singole classi si ottengono istanziando istanziando ii

parametri contenuti nella definizioneparametri contenuti nella definizione

<<bind>>

Page 60: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Vettore

T,k:integer

Vettore<char,3>

Pentagono

<<bind>> <Vertice,5>

IstanziazioneIstanziazione

Rappresentazioni alternative

Page 61: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

InterfacInterfacciacia(Defini(Definizionezione))

SpecificanoSpecificano il comportamento di una classe senzail comportamento di una classe senzadarne ldarne l’’implementazioneimplementazione

String

isEqual(String): BooleanisGreater(String): Booleanlength(): Integer

<<interface>>Sortable

isEqual(Object): BooleanisGreater(Object): Boolean

String

isEqual(String): BooleanisGreater(String): Booleanlength(): Integer Sortable

Page 62: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

SortedString_List

String

isEqual(String): BooleanisGreater(String): Booleanlength(): Integer

InterfacInterfacciacia(Us(Usoo))

<<interface>>Sortable

isEqual(Object): BooleanisGreater(Object): Boolean

String

isEqual(String): BooleanisGreater(String): Booleanlength(): Integer Sortable

SortedString_List

Page 63: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

AssociazioniAssociazioni

UnUn’’associazione definisce un canale diassociazione definisce un canale dicomunicazione comunicazione bidirezionale bidirezionale fra le due classifra le due classi

La molteplicità definisce il numero di istanzeLa molteplicità definisce il numero di istanzeche prendono parte alla relazioneche prendono parte alla relazione

I I link link sono istanze delle associazionisono istanze delle associazioni Un Un link link connette due oggetticonnette due oggetti Un'associazione connette due classiUn'associazione connette due classi

Page 64: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Corso CartellaStudenteappare

AssociazioniAssociazioni

UnUn’’associazione indica una relazione tra classiassociazione indica una relazione tra classi ad esempio persona che lavora per aziendaad esempio persona che lavora per azienda

UnUn’’associazione deve avere un nomeassociazione deve avere un nome Il nome è solitamente un verbo (un etichetta alIl nome è solitamente un verbo (un etichetta al

centro della linea che definisce lcentro della linea che definisce l’’associazione)associazione)

Page 65: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Corso Studente

3 .. 100..*

MolteplicitàMolteplicità

La molteplicità dice:La molteplicità dice: Se lSe l’’associazione è obbligatoria oppure noassociazione è obbligatoria oppure no Il numero minimo e massimo di oggetti cheIl numero minimo e massimo di oggetti che

possono essere relazionati ad un altro oggettopossono essere relazionati ad un altro oggetto

segue

Page 66: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Molteplicità (Molteplicità (contcont.).)

EEsattamentesattamente unouno: 1: 1 Zero o Zero o unouno: 0..1: 0..1 MMoltiolti: 0..*: 0..* UnoUno o o piùpiù: 1..*: 1..* Un numero specificoUn numero specifico: 7: 7 Un intervalloUn intervallo: 4..15: 4..15 ListListaa: 0..1, 3..4, 6..*: 0..1, 3..4, 6..*

Tutti i numeri eccettoTutti i numeri eccetto 2 2 ee 5 5

?

Page 67: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

RuoloRuolo

Definisce il ruolo svolto nellDefinisce il ruolo svolto nell’’associazioneassociazione Utile perUtile per

Auto-associazioniAuto-associazioni Associazioni multiple tra due classiAssociazioni multiple tra due classi

work forPerson Company

employee employer

1..* 0..1

Person

0..1

0..1

husband

wife

is married toUser Directory

owner

Allowed user

container

contained

0..*

0..*

0..*

0..*1

1

Page 68: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Studente Corso

Frequenzapercentualeprofitto

1..* 1..*

Classi associazioneClassi associazione

Alcune proprietà potrebbero appartenereAlcune proprietà potrebbero appartenereallall’’associazione e non alle parti coinvolteassociazione e non alle parti coinvolte

Page 69: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Associazioni con qualificatoreAssociazioni con qualificatore UML propoUML proponene attribut attributi i ““qualificantiqualificanti”” per dividereper dividere

ll’’insieme di oggetti in partizioniinsieme di oggetti in partizioni Attributo il Attributo il cui cui valore consente di selezionare valore consente di selezionare unun

singolo oggetto tra tutte singolo oggetto tra tutte le le istanze di oggettiistanze di oggettiinteressati dalla stessa associazioneinteressati dalla stessa associazione

Può abbassare Può abbassare la la molteplicità dellmolteplicità dell’’associazioneassociazione

Biglietto

RappresentazioneDataPosto

Spettacolo

Nome

1 0..*

BigliettoSpettacolo

NomeDataPosto

1 0..1

Page 70: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Associazioni derivateAssociazioni derivate

Alcune associazioni posso essere derivate daAlcune associazioni posso essere derivate daaltrealtre Simili agli attributi derivatiSimili agli attributi derivati

Dipartimento

1..*

Persona

1..*

lavora per

Azienda

1..*

/ impiegato

1appartiene

1

Page 71: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Altre associazioniAltre associazioni

CClasslassi friendi friend

DDiippendenzaendenza

A dA dipendeipende dada B B

A B

A B<<friend>>

Page 72: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

VincoliVincoli(Associazioni multiple)(Associazioni multiple)

I vincoli possono anche essere relativi adI vincoli possono anche essere relativi adaltre associazionialtre associazioni

Persona Auto

0..1guida

{sottoinsieme}

0..10..5

0..1

StudenteDormitorio

{or}

Appartamento

usa

Page 73: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Persona Aziendaimpiegato

0..1

sottoposto 0..11..* datoreDiLavoro

0..10..*

capo

Persona.datoreDiLavoro = Persona.capo.datoreDiLavoro

Vincoli RelativiVincoli Relativi

Vincoli Vincoli ““implementativiimplementativi”” possono essere possono essereespressi come commenti particolariespressi come commenti particolari

OCL

Page 74: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Corso Curriculum1..*

AggregazioniAggregazioni

Le aggregazioni sono una forma particolareLe aggregazioni sono una forma particolaredi associazione. Una parte è in relazione condi associazione. Una parte è in relazione conun oggetto (un oggetto (part-ofpart-of))

1

Page 75: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

SliderPanel Button

Window

1

1

1

scrollbar body close2

1

1

ComposizioniComposizioni

Una relazione di composizione è unUna relazione di composizione è un’’aggregazioneaggregazioneforteforte Le parti componenti non esistono senza il contenitoreLe parti componenti non esistono senza il contenitore

Page 76: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

ComposizioneComposizione(Notazioni Alternative)(Notazioni Alternative)

body:Panel

scrollbar: Slider

close: Button

Window

1

1

2

body

scrollbar

close

Window

1

1

2Slider

Panel

Button

Page 77: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Aggregazione

Corso

Precedenze

Parte

Associazioni riflessiveAssociazioni riflessive

UnUn’’associazione è riflessiva se coinvolgeassociazione è riflessiva se coinvolgeoggetti della stessa classeoggetti della stessa classe

Indicano oggetti multipli della stessa classeIndicano oggetti multipli della stessa classeche sono in relazione fra loroche sono in relazione fra loro

Page 78: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Persona

Studente Professore

Ereditarietà (Generalizzazione)Ereditarietà (Generalizzazione)

Esplicita eventualiEsplicita eventualicomportamenti comunicomportamenti comuni

È possibile dover:È possibile dover: Aggiungere nuoveAggiungere nuove

proprietà alle classiproprietà alle classi Ridefinire/modificareRidefinire/modificare

operazioni esistentioperazioni esistenti

Page 79: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

VeicoliTerrestri

Veicoli

VeicoliPropUmana

Macchina Bicicletta BarcaARemi

{propulsione}{superficie}

EreditarietàEreditarietà(Sottoclassi non disgiunte)(Sottoclassi non disgiunte)

Page 80: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Classi AstratteClassi Astratte

Poligono{abstract}

Cerchio

Figura{abstract}

Triangolo Quadrato

{leaf}

Page 81: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsercizioEsercizioUn sistema deve gestire lUn sistema deve gestire l’’anagrafica degli obiettori (nome, cognome, data di nascita eanagrafica degli obiettori (nome, cognome, data di nascita eindirizzo), il loro titolo di studio, le esperienze lavorative pregresse e la loro posizione:indirizzo), il loro titolo di studio, le esperienze lavorative pregresse e la loro posizione:domanda presentata, domanda accettata, in attesa di servizio, in servizio e serviziodomanda presentata, domanda accettata, in attesa di servizio, in servizio e serviziocompletato.completato.Il sistema gestisce anche le diverse attività svolte dallIl sistema gestisce anche le diverse attività svolte dall’’ente. Combinando le attivitàente. Combinando le attività““scopertescoperte”” con le capacità degli obiettori in servizio, ci si propone di ottimizzare con le capacità degli obiettori in servizio, ci si propone di ottimizzarell’’assegnazione degli obiettori alle diverse mansioni e, quindi, di migliorare la qualità deiassegnazione degli obiettori alle diverse mansioni e, quindi, di migliorare la qualità deiservizi offerti.servizi offerti.LL’’ente in questione mette a disposizione degli appartamenti per fornire vitto e alloggioente in questione mette a disposizione degli appartamenti per fornire vitto e alloggiodurante ldurante l’’obiezione. Il sistema, quindi, deve tenere traccia degli appartamenti disponibili,obiezione. Il sistema, quindi, deve tenere traccia degli appartamenti disponibili,della disposizione degli obiettori nei diversi appartamenti e di eventuali posti liberi.della disposizione degli obiettori nei diversi appartamenti e di eventuali posti liberi.Per gli obiettori in servizio, il sistema deve gestire anche le licenze (supponiamo per un totalePer gli obiettori in servizio, il sistema deve gestire anche le licenze (supponiamo per un totaledi 20 giorni) e i permessi (al massimo 10).di 20 giorni) e i permessi (al massimo 10).Ogni mese, il sistema deve calcolare automaticamente gli stipendi, in base ai giorni di servizioOgni mese, il sistema deve calcolare automaticamente gli stipendi, in base ai giorni di servizioeffettivo (giorni del mese meno licenze e permessi), definire i rimborsi per il vitto e alloggio,effettivo (giorni del mese meno licenze e permessi), definire i rimborsi per il vitto e alloggio,in base alle informazioni relative ai diversi appartamenti e produrre la documentazionein base alle informazioni relative ai diversi appartamenti e produrre la documentazioneriassuntiva da inviare al distretto.riassuntiva da inviare al distretto.

Page 82: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

PackagePackage

I package I package sono sono ““contenitoricontenitori””di di classiclassi

Sistemi complessi Sistemi complessi ((realireali))devono essere modellatidevono essere modellatigerarchicamentegerarchicamente Sottosistemi Sottosistemi (package) in(package) in

relazione fra lororelazione fra loro Classi allClassi all’’interno deiinterno dei

packagepackage

PackagePackage Alta Alta coesione allcoesione all’’internointerno Interfacce precise eInterfacce precise e

limitatelimitate

GUI

Server

+Database+LoggingService

Client

+OrderForm

+TrackingForm

+Order

Page 83: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempiEsempi

GeneralizGeneralizzazionizazioni AggregaAggregazionizioni

Package possono contenere altri packagePackage possono contenere altri package ImportImport AccessAccess

<<import>>

User services

Business services

Data services

GUI

MacGUIDOSGUI

<<import>>

Page 84: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

PackagePackage

Top-downTop-down Come primo strumento per abbozzare il sistema eCome primo strumento per abbozzare il sistema e

identificare i identificare i ““componenticomponenti”” principali principali Si parte con semplici Si parte con semplici ““cartellettecartellette”” vuote per poi vuote per poi

riempirle con classiriempirle con classi

Bottom-upBottom-up Come strumento per Come strumento per ““gerarchizzaregerarchizzare”” e rendere e rendere

leggibile un modello troppo complessoleggibile un modello troppo complesso Si parte dalle classi e si raggruppano in packageSi parte dalle classi e si raggruppano in package

Page 85: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

Object DiagramObject Diagram

Page 86: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Object DiagramObject Diagram

Rappresentano Rappresentano le le istanze istanze e i e i legami fralegami fraquestequeste

Si usano durante lSi usano durante l’’analisi analisi e e il progettoil progetto Per Per capire capire la la struttura struttura di di oggetti complessioggetti complessi Per Per esplicitare esplicitare la la struttura struttura di di oggetti complessioggetti complessi Per Per presentare presentare ““immaginiimmagini”” del del sistemasistema

Page 87: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio

nome = “DM”

d2: Dipartimento

nome = “Giovanni”cognome = “Rossi”

p: Professore

u: Università

nome = “DEI”

d1: Dipartimento

insegna

Page 88: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

Statechart Statechart diagramdiagram

Page 89: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

State State DiagramDiagram

Rappresentano il comportamento dei singoliRappresentano il comportamento dei singolioggetti di una classe in termini dioggetti di una classe in termini di Eventi a cui gli oggetti (la classe) sono sensibiliEventi a cui gli oggetti (la classe) sono sensibili Azioni prodotteAzioni prodotte Transizioni di statoTransizioni di stato

Identificazione degli stati interni degli oggettiIdentificazione degli stati interni degli oggetti

Possibilità di descrivere evoluzioni parallelePossibilità di descrivere evoluzioni parallele Sintassi mutuata da Sintassi mutuata da StateChart StateChart (D. (D. HarelHarel))

Page 90: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Elementi graficiElementi grafici

StStatoato

Decomposizione Decomposizione ANANDD

Decomposizione ORDecomposizione OR

evento

azione

TransizioneTransizione

Stato inizialeStato iniziale

Stato finaleStato finale

Page 91: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio(Telefonata)(Telefonata)

MessaggioVocale

Inattivo

TonoPronto

Compos.Numero

ProntoAConnettere

TonoLiberoConnesso

TonoOccupato

TonoTimeOut

Chiamante.Aggancia

T

TCompone(n)

NumValido

NumNonValido

Occupato

Chiamante.Aggancia

Chiamante.Sgancia

Ricevente.Sgancia

Instradato

Compone(n)

Page 92: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Inizio e FineInizio e Fine

Inizio BiancoMuovere

NeroMuovere

Matto o Abbandono

Stallo o Accordo

MossaBianca

MossaNera

Vince Nero

Vince Bianco

Patta

Matto o Abbandono

Stallo o Accordo

Page 93: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

ProntoVerde [incrocio.stato=libero]

InCorsa

CondizioneEvento

CondizioniCondizioni

Funzioni Funzioni booleane booleane sui valori degli oggettisui valori degli oggetti Utili quando non basta l'evento, ma si vuoleUtili quando non basta l'evento, ma si vuole

aggiungere un predicatoaggiungere un predicato

Page 94: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

OperazioniOperazioni

AzioniAzioni Operazioni che hanno durata istantaneaOperazioni che hanno durata istantanea

Tipicamente produzione di eventiTipicamente produzione di eventi

Sono associate alle transizioni di stato oppureSono associate alle transizioni di stato oppureall'ingresso o all'uscita da uno statoall'ingresso o all'uscita da uno stato

AttivitàAttività Sono operazioni con durata significativaSono operazioni con durata significativa Sono associate ad uno statoSono associate ad uno stato

Continue o sequenzialiContinue o sequenziali

Page 95: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Stato CompletoStato Completo

event3 [condizione1] / azione5

event4 [condizione2] / azione6

do / attività1entry / azione1exit / azione2event1 / azione3event2 / azione4

Nome

attributo1: tipo1 = val.inizialeattributo2: tipo2 = val.iniziale

Page 96: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio(P(Prenotazione renotazione volivoli))

No reservationsentry/ reset()

openFlight()

Fully booked

cancel()[ reservedSeats>1 ]

reserve[ freeSeats>1 ]

cancelFlight()

reserve()

cancel()

close()

cancel()[ reservedSeats=1 ]

reserve()[ freeSeats=1 ]Closed

close()

Partiallybooked

Page 97: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

right-mouse-down(location) [location in window] /o:=pick-object(location) send o.highlight()

0 Oggettiselezionati

1 Oggettoselezionato

EventiEventi(Generati da Azioni)(Generati da Azioni)

Spesso le azioni consistono nell'inviare unSpesso le azioni consistono nell'inviare unevento ad un altro oggettoevento ad un altro oggetto evento(evento(argarg) [) [condcond] / azione ] / azione sendsend t.azione(t.azione(argarg))

Page 98: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsempioEsempio((TVTV, Video Registratore e Telecomando), Video Registratore e Telecomando)

OnOff

VCR toggle power

toggle power

OnOff

TV toggle power

toggle power

ControllingTV

ControllingVCR

TV

VCR

power button/send VCR.togglePower

power button/send TV.togglePower

toggle power

toggle power

Page 99: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Oggetti CompositiOggetti Compositi

AccendinoSerbatoio

Fornello

Vuoto

Serbatoio

Chiuso

AccesoAperto

Fornello

carica

Pieno

[gas = 0]

[gas > 0]

apri

scintilla

chiudi

Page 100: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Interazione fra ComponentiInterazione fra Componenti

Vuoto

Serbatoio

carica

Pieno

[gas = 0]

[gas > 0]

Chiuso

AccesoAperto

Fornello

apri

[Serbatoio.stato == Pieno]

chiudi

scintilla

Page 101: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Folle RetroMarcia

MarciaAvanti

Prima Seconda Terza

levaR

levaN

levaF levaN

accelera accelera

deceleradecelera

Cambio Automatico

Decomposizione ORDecomposizione OR

Un macro stato equivale ad una scomposizione OR degli statiUn macro stato equivale ad una scomposizione OR degli stati I sottostati ereditano le transizioni dei loro superstatiI sottostati ereditano le transizioni dei loro superstati

Page 102: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Decomposizione Decomposizione ANDAND

Lo Lo stato complessivo stato complessivo ((aggregatoaggregato)) è è dato dalldato dall’’uunione degli statinione degli statidei vari diagrammidei vari diagrammi

Page 103: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

Decomposizione ANDDecomposizione AND

NaturalmenteAttento

do: appunti

do: sbadiglia

do: gratta

Distratto

noia ForzatamenteAttento

do: ghirigori

richiamo

Page 104: Unified Modeling Language - disi.unitn.itdisi.unitn.it/~picco/teaching/rovereto/UML1.pdf · UML: Unified Modeling Language Modellazione visuale Computer System “Un modello cattura

UML: Unified Modeling LanguageUML: Unified Modeling Language

EsercizioEsercizio

Si definisca uno Si definisca uno State Diagram State Diagram checherappresenti gli stati rappresenti gli stati in cui in cui si potrebbesi potrebbetrovare untrovare un’’automobile automobile in in fase fase di di parcheggioparcheggioin un in un parcheggio parcheggio a a pagamentopagamento