Upload
others
View
8
Download
0
Embed Size (px)
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