UML: Diagramma delle...

Preview:

Citation preview

RobertaGori,LauraSeminiIngegneriadelSoftwareDipartimentodiInformaticaUniversitàdiPisa

UML:Diagrammadelleattivita’

Lezioniprecedente:▪ Descrizionedeldominio:modellostatico

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

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

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

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à

Ilconcettoprincipe:l’attivita’

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

Nome attivita’

Nome attivitàinizio

fine

Leazioni

Leazionisonorappresentateancheessedarettangoli

Possonoesserespecificateinlinguaggionaturale

Devonoessereconsiderateatomicheallivellodidettagliodeldiagrammaincuisono

Vedremounmododispecificarneildettaglioconundiagrammadisottoattivita’

Azione

azione2

azione1nodo azione flusso di

controllo

Nome attività

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

Transizioni

▪ Quandoun’azionehaterminatoilpropriolavoroscattaunatransizioneautomaticainuscitadall’azionecheportaall’azionesuccessiva

▪ Lasemanticaèdescrittaconiltokengame:l’azionepuo’essereeseguitaquandoriceveiltoken

Inviare una lettera

Elementiprincipali

Diagrammadelleattivita’:scelta

Abbiamodettocheogniazionesiattivaappenariceveuntoken,siesegueepoipassailtokensull’arcouscente.Questomeccanismodipassaggiodeltokenvienealteratodaunachoice

azione1

[caso 1]

[caso 2]

azione2

azione3

decisione (decision node)

guardiafusione (merge node)

• caso1ecaso2devonocopriretuttiicasi:caso1ORcaso2=True• possousare“altrimenti”

Diagrammadelleattivita’:scelta

Attenzione:sullibroquestapartesullasceltaeleguardieviolalapartesottolineatadellostandard

IltokenprendeunodeicamminiDeveprenderesempreunodeicammini

Leguardiedevonocopriretuttelepossibilità▪ Incasosiusa[else]

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

Datounnododecisionenonèobbligatoriounnodofusionecorrispondente.▪ Potrebbeperesempioesserciunnododifineflusso

Loops

azione1 azione2

forkbiforcazione

azione1 azione2

join / barra di sincronizzazione

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

▪ Lajoinliconsuma:▪ Siattendeuntokenperognifrecciaentrante▪ Siconsumanotuttieneescesolouno

Nonènecessariaunajoinperognifork

Nododifineattivita’

Seuntokenraggiungeunnododifineattivita’,l’interaattivita’e’terminata

Permettiamopiu’archientrantisolosuunnododifineattivita’odifineflusso

Lasemanticae’:ilprimotokenchearrivaterminaogniattivita’

Azione1

Azione2

terminal’attività

Nododifineattivita’▪ ilprimochecompraibigliettiterminal’attività

Nododifineflusso

Serveperterminareunexecutionpathnontuttal’attivita’.

nonterminal’attività,solamentesiconsumailtoken

Nododifineflusso

▪ ilprimochecompraibigliettinonterminal’attività▪ Vengonopresiibigliettiinentrambelecode

duevolte

Forkemerge:possibilemaazionieseguiteduevolte

Esempiopresodaweb,interessanteperchésbagliato

AncheseUMLpermettefrecce

multipleentranti/uscentiin/daunnodo,senesconsiglia(vietain

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

poièfacilesbagliarsiedisegnarediagrammicomequestoche

vannoindeadlock.Infattieatattendeduetokenchenonpossonomaiarrivare.

Diagrammacorretto

Primadieatserveunmodofusioneedopochoosedinnerunnododecisione.Sonotollerateduefrecceentrantinellostatofinale.

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

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

Esempio

Esempioditime-out

Accettazionedieventiesternieinviosegnalivsazioni

▪ Quandousareun’azioneequandousareaccettazionedieventiesternioinviosegnali:

▪ Siusaun’azionequandoèeffettuatadalclassificatore/insiemediclassificatoridicuisistadescrivendoilcomportamento

▪ Isecondisiusanoquandosicomunicaconunaentitàesterna

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

▪ Sidescrivelasotto-attivitàinundiagrammaaparte

▪ Migliorailriusoelaleggibilità

attiv

attiv

!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

Esempio

Unapartizione▪ perdividereleazioniingruppi▪ Spessocorrispondealladivisioneinunitàoperativeinunmodellodibusiness.

Permettonodi▪ assegnarelaresponsabilitàdelleazioni

Cliente Vendite

richiesta

ricevi ordinepaga

Cliente

Esempio

UML@Classrom:

7.1(senzaparametri,precondizioniepostcondizioni)

-7.2(senzaobjectflowwedge)

-7.3(senzaguardie,weightedge,connettori,decisionbehaviourecondiversasemanticadellescelte)

7.5

7.7

Recommended