37
Roberta Gori, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa UML: Diagramma delle attivita’

UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

RobertaGori,LauraSeminiIngegneriadelSoftwareDipartimentodiInformaticaUniversitàdiPisa

UML:Diagrammadelleattivita’

Page 2: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Lezioniprecedente:▪ Descrizionedeldominio:modellostatico

Questalezione▪ Descrizionedeldominio:modellodinamico▪ diagrammidiattività(businessmodel)▪ diagrammidimacchinaastati

Page 3: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Modellanoilflussodilavoro(workflow,businessmodel)▪ diuncompitooalgoritmoo▪ diunprocesso/attività

Un’attivitàdescrivelacoordinazionediuninsiemediazioni.Centratasu:▪ sequenzaeconcorrenzadelleazioni▪ esullecondizionicheleabilitano▪ piuttostochesuiclassificatoricheeseguonoquesteazioniAntenati:flowchartseRetidiPetri

Page 4: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Modellano un’attività relativa a una qualsiasi entità o collezione di entità, ad esempio: ▪ una o più classi che collaborano in una attività comune▪ uno o più attori con il sistema ▪ un'operazione di classe

Alcuni usi dei diagrammi di attività:• modellare un processo aziendale (analisi)• modellare il flusso di un caso d’uso (analisi)• modellare il funzionamento di un’operazione di classe

(progettazione)• modellare un algoritmo (progettazione o testing)

Diagrammidiattività

Page 5: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Ilconcettoprincipe:l’attivita’

Ilcontenutodiun’attivita’e’ungrafodirettoicuinodirappresentanolecomponentidell’attivita’comeleazioniegliarchirappresentanoilcontrolflow:ipossibilipatheseguibiliperl’attivita’.

Nome attivita’

Page 6: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Nome attivitàinizio

fine

Page 7: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Leazioni

Leazionisonorappresentateancheessedarettangoli

Possonoesserespecificateinlinguaggionaturale

Devonoessereconsiderateatomicheallivellodidettagliodeldiagrammaincuisono

Vedremounmododispecificarneildettaglioconundiagrammadisottoattivita’

Azione

Page 8: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

azione2

azione1nodo azione flusso di

controllo

Nome attività

Solounafrecciaentranteeunauscenteperogniazione(vedremoperché)lafrecciadiuscitaèpresaappenaèterminatal’azione

Page 9: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Transizioni

▪ Quandoun’azionehaterminatoilpropriolavoroscattaunatransizioneautomaticainuscitadall’azionecheportaall’azionesuccessiva

▪ Lasemanticaèdescrittaconiltokengame:l’azionepuo’essereeseguitaquandoriceveiltoken

Inviare una lettera

Page 10: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Elementiprincipali

Page 11: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Diagrammadelleattivita’:scelta

Abbiamodettocheogniazionesiattivaappenariceveuntoken,siesegueepoipassailtokensull’arcouscente.Questomeccanismodipassaggiodeltokenvienealteratodaunachoice

Page 12: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

azione1

[caso 1]

[caso 2]

azione2

azione3

decisione (decision node)

guardiafusione (merge node)

• caso1ecaso2devonocopriretuttiicasi:caso1ORcaso2=True• possousare“altrimenti”

Page 13: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Diagrammadelleattivita’:scelta

Attenzione:sullibroquestapartesullasceltaeleguardieviolalapartesottolineatadellostandard

Page 14: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

IltokenprendeunodeicamminiDeveprenderesempreunodeicammini

Page 15: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Leguardiedevonocopriretuttelepossibilità▪ Incasosiusa[else]

E’bene(manonnecessario)chesianomutualmenteesclusivealtrimenticomportamentonondefinito(nondeterministico).Lecondizionidiguardiasempretra[]▪ (ingeneraleinUML)

Datounnododecisionenonèobbligatoriounnodofusionecorrispondente.▪ Potrebbeperesempioesserciunnododifineflusso

Page 16: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Loops

Page 17: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

azione1 azione2

forkbiforcazione

Page 18: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

azione1 azione2

join / barra di sincronizzazione

Page 19: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Tokengame:▪ Laforkmoltiplicaitoken:▪ Datountokeniningresso,ne"produce"unoperognifrecciauscente

▪ Lajoinliconsuma:▪ Siattendeuntokenperognifrecciaentrante▪ Siconsumanotuttieneescesolouno

Nonènecessariaunajoinperognifork

Page 20: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Nododifineattivita’

Seuntokenraggiungeunnododifineattivita’,l’interaattivita’e’terminata

Permettiamopiu’archientrantisolosuunnododifineattivita’odifineflusso

Lasemanticae’:ilprimotokenchearrivaterminaogniattivita’

Azione1

Azione2

Page 21: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

terminal’attività

Nododifineattivita’▪ ilprimochecompraibigliettiterminal’attività

Page 22: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Nododifineflusso

Serveperterminareunexecutionpathnontuttal’attivita’.

Page 23: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

nonterminal’attività,solamentesiconsumailtoken

Nododifineflusso

▪ ilprimochecompraibigliettinonterminal’attività▪ Vengonopresiibigliettiinentrambelecode

Page 24: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

duevolte

Forkemerge:possibilemaazionieseguiteduevolte

Page 25: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Esempiopresodaweb,interessanteperchésbagliato

AncheseUMLpermettefrecce

multipleentranti/uscentiin/daunnodo,senesconsiglia(vietain

questocorso)assolutamentel’uso:lasemanticaUMLinquestocasoèquelladellafork/join,ma

poièfacilesbagliarsiedisegnarediagrammicomequestoche

vannoindeadlock.Infattieatattendeduetokenchenonpossonomaiarrivare.

Page 26: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Diagrammacorretto

Primadieatserveunmodofusioneedopochoosedinnerunnododecisione.Sonotollerateduefrecceentrantinellostatofinale.

Page 27: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Accettazionedieventoesterno

Inviodiunsegnale

Accettazionedieventotemporale

Manda un segnale

h 20.30 10 min

SegnaliedEventi

Accettaevento

Nodi specializzati che gestiscono l’invio e la ricezione di segnali.

L’invio di segnali è asincrono e non blocca l’attività.

assoluta relativa

Page 28: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Peraccettazioneeventoesterno(analogoperaccettazioneeventitemporali):arcoentrantenonnecessarioSeassente,quandoarrival’evento,sigenerauntokenSepresente,l’azioneèabilitataquandoarrivailtokenesiattendel’eventoesternoperfarlotransitare

Page 29: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Esempio

Page 30: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Esempioditime-out

Page 31: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Accettazionedieventiesternieinviosegnalivsazioni

▪ Quandousareun’azioneequandousareaccettazionedieventiesternioinviosegnali:

▪ Siusaun’azionequandoèeffettuatadalclassificatore/insiemediclassificatoridicuisistadescrivendoilcomportamento

▪ Isecondisiusanoquandosicomunicaconunaentitàesterna

Page 32: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Un’azionepuòincludere(chiamare)un’altraattività(secondaria):▪ siusail“rastrello”(rake)perdirechel’azione includeunasotto-attività

▪ Sidescrivelasotto-attivitàinundiagrammaaparte

▪ Migliorailriusoelaleggibilità

attiv

attiv

Page 33: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

!33

▪ Mandare Lettera a Babbo Natale è lasciata astratta in un diagramma (Ricevere i Regali di Natale), rappresentata come un solo nodo, il rastrello dice che è descritta in un altro diagramma

▪ Visione bottom-up: si definisce una attività (Mandare Lettera a Babbo Natale) e poi la si riferisce in un altro diagramma (Ricevere i Regali di Natale) usando il rastrello

Page 34: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Esempio

Page 35: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Unapartizione▪ perdividereleazioniingruppi▪ Spessocorrispondealladivisioneinunitàoperativeinunmodellodibusiness.

Permettonodi▪ assegnarelaresponsabilitàdelleazioni

Cliente Vendite

richiesta

ricevi ordinepaga

Cliente

Page 36: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

Esempio

Page 37: UML: Diagramma delle attivita’didawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/is-a/is_08_20.pdf · UML@Classrom: 䡧7.1 (senza parametri, precondizioni e post condizioni

UML@Classrom:

7.1(senzaparametri,precondizioniepostcondizioni)

-7.2(senzaobjectflowwedge)

-7.3(senzaguardie,weightedge,connettori,decisionbehaviourecondiversasemanticadellescelte)

7.5

7.7