softversko inŽenjerstvo vježbe 8: activity...

28
SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagrami Robert Manger Sveučilište u Zagrebu PMF-Matematički odsjek Akademska godina 2019/2020.

Upload: others

Post on 05-Sep-2019

5 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

SOFTVERSKO INŽENJERSTVO

Vježbe 8: Activity dijagrami

Robert Manger

Sveučilište u Zagrebu

PMF-Matematički odsjek

Akademska godina 2019/2020.

Page 2: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Sadržaj Vježbi 8

Općenito o activity dijagramima

Aktivnosti, čvorovi, lukovi

Semantika aktivnosti, žetoni

Podjela activity dijagrama na particije

Detaljnije o akcijskim čvorovima

Detaljnije o kontrolnim čvorovima

Detaljnije o objektnim čvorovima

Interaction overview dijagrami

V-08 Softversko inženjerstvo 2

Page 3: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Općenito o activity dijagramima

V-08 Softversko inženjerstvo 3

Prema standardu

UML 2 imaju

semantiku zasnovanu

na Petrijevim

mrežama.

Jednostavni primjer:

sljedeći dijagram

prikazuje proces

slanja pisma.

Activity dijagrami donekle podsjećaju na klasične

dijagrame toka kontrole ili dijagrame toka podataka.

Služe za modeliranje raznih vrsta procesa.

Mogu se pridružiti bilo kojem elementu modela da bi

opisali njegovo ponašanje.

Page 4: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Aktivnosti, čvorovi, lukovi Aktivnost je mreža čvorova koji su povezani lukovima.

Postoje tri vrste čvorova.

Akcijski čvorovi: cjeline posla koje se promatraju kao nedjeljive.

Kontrolni čvorovi: upravljaju tokom aktivnosti.

Objektni čvorovi: predstavljaju objekte koji se koriste u aktivnosti.

Postoje dvije vrste lukova.

Kontrolni lukovi: prikazuju tok kontrole kroz aktivnost.

Objektni lukovi: prikazuju putovanje objekata kroz aktivnost.

Uz pojedine čvorove ili lukove, odnosno uz cijelu aktivnost

mogu se vezati razni logički uvjeti:

Preduvjeti (preconditions).

Post-uvjeti (postconditions).

Uvjeti-stražari (guard conditions).

V-08 Softversko inženjerstvo 4

Page 5: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjer activity dijagrama koji modelira use case (1) Promatramo

tabličnu

specifikaciju

use case-a

koji određuje

postupak

plaćanja

poreza.

V-08 Softversko inženjerstvo 5

Page 6: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjer activity dijagrama koji modelira use case (2)

V-08 Softversko inženjerstvo 6

Use case-ovi i activity dijagrami mogu služiti kao

komplementarni pogledi na isto ponašanje. Use case-ovi opisuju ponašanje kao interakciju aktera i sustava.

Activity dijagrami prikazuju ponašanje kao nizove akcija.

Isti use case

može se

modelirati

kao sljedeći

activity

dijagram.

Page 7: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Semantika aktivnosti, žetoni Semantika aktivnosti opisana je pomicanjem žetona

(token) kroz mrežu.

Pomicanje žetona može predstavljati: tok kontrole,

putovanje objekta,

razmjenu podataka.

Žeton se miče tako da prijeđe iz nekog polaznog čvora,

preko luka, u neki dolazni čvor.

Da bi se prelazak zaista dogodio, moraju vrijediti: post-uvjet u polaznom čvoru,

uvjet-stražar na luku,

preduvjet na dolaznom čvoru.

U mreži može istovremeno postojati više žetona. To daje

mogućnost modeliranja paralelnih procesa.

Svaka vrsta čvorova ima dodatna pravila o micanju žetona.

V-08 Softversko inženjerstvo 7

Page 8: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Podjela activity dijagrama na particije Da bi dijagram bio zorniji i čitljiviji, aktivnosti se mogu

podijeliti u particije.

Granicu između particija obično crtamo kao vertikalnu

crtu, no po potrebi to može biti i zakrivljena crta.

Particije obično predstavljaju:

use case-ove,

klase,

fizičke lokacije,

organizacijske jedinice.

Skup particija na dijagramu trebao bi imati ucrtanu

zajedničku “dimenziju” koja opisuje semantiku tog skupa,

dakle što particije ustvari predstavljaju i po kojem kriteriju

se izvršila podjela.

V-08 Softversko inženjerstvo 8

Page 9: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjer dijagrama s particijama (1)

V-08 Softversko inženjerstvo 9

Dijagram

prikazuje

aktivnosti koje

se zbivaju na

raznim

lokacijama i

pod-lokacijama.

Modelira se

poslovni proces

izrade tečajeva

gdje sudjeluju

partneri iz

Zuricha i

Londona.

Page 10: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjer dijagrama s particijama (2) Particije odnosno lokacije s dijagrama čine ovakvu

hijerarhiju.

V-08 Softversko inženjerstvo 10

Mada to na prethodnom dijagramu nije slučaj, particije

često služe da zorno prikažu paralelne aktivnosti.

Page 11: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Način rada akcijskih čvorova (1)

Akcijski čvor se izvršava onda kad:

Istovremeno postoje žetoni na svakom od njegovih ulaznih

lukova, i

Njegov lokalni preduvjet je ispunjen.

Nakon izvršavanja akcijskog čvora provjerava se

njegov lokalni post-uvjet. Ako je on ispunjen tada:

Čvor simultano nudi žetone na svim svojim izlaznim

lukovima.

Ponuđeni žetoni prolaze lukovima pod uvjetom da su uvjeti-

stražari lukova ispunjeni.

Postupak je ilustriran sljedećom slikom.

V-08 Softversko inženjerstvo 11

Page 12: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Način rada akcijskih čvorova (2)

Ovakav način

rada krije

implicitnu

mogućnost

grananja

jednog

procesa u

više

paralelnih

procesa

(implicit fork).

V-08 Softversko inženjerstvo 12

Page 13: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Vrste akcijskih čvorova

V-08 Softversko inženjerstvo 13

Čvor za pozivanje akcije.

Najčešća vrsta. Pokreće operaciju, ponašanje ili drugu

aktivnost. Način rada je bio prethodno opisan.

Čvor za slanje signala.

Nakon što je primio žeton, asinkrono šalje signal i dalje

nudi žeton.

Čvor za primanje događaja.

Nakon što je primio žeton, čeka događaj (ako nema

ulaznog luka, tada odmah čeka). Kad se događaj desi,

tada nudi žeton na izlaznom luku.

Čvor za primanje vremenskog događaja.

Nakon što je primio žeton, čeka događaj zadan

vremenskim izrazom (ako nema ulaznog luka, tada

odmah čeka). Kad se događaj desi, nudi žeton na

izlaznom luku.

Page 14: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjeri čvorova za pozivanje akcije

V-08 Softversko inženjerstvo 14

Imamo primjer

poziva

određene

aktivnosti,

određenog

ponašanja, te

operacije

opisane

imenom,

signaturom ili

kodom u

programskom

jeziku.

Page 15: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjeri čvorova za primanje vremenskih događaja

V-08 Softversko inženjerstvo 15

U prvom primjeru čvor

za primanje vremenskog

događaja prosljeđuje

žeton čim dođe kraj

poslovne godine.

Drugi primjer je

fragment modela za lift.

Čvor za primanje

vremenskog događaja

najprije čeka da primi

žeton, zatim čeka 10

sekundi, te nakon toga

prosljeđuje žeton.

Page 16: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Vrste i način rada kontrolnih čvorova

V-08 Softversko inženjerstvo 16

Početni čvor.

Pokazuje početak toka kontrole kad se aktivnost pokrene.

Završni čvor za aktivnost.

Označava završetak cijele aktivnosti.

Završni čvor za tok.

Označava kraj jednog toka. Ostali tokovi idu dalje.

Čvor za donošenje odluke.

Kontrola se nastavlja po izlaznom luku čiji uvjet-stražar je

ispunjen (uvjeti su međusobno isključivi).

Čvor za sažimanje (merge).

Kopira ulazne žetone na jedinstveni izlazni luk.

Čvor za grananje (fork).

Razdvaja tok kontrole u nekoliko paralelnih tokova.

Čvor za spajanje (join).

Sinkronizira paralelne tokove i nastavlja ih kao jedan tok.

Page 17: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjeri donošenja odluke (1) Sljedeći dijagram

prikazuje

postupak obrade

pristigle pošte.

Vidimo čvor za

donošenje odluke

i čvor za

sažimanje.

Ključna riječ else

označava luk

kojim se ide ako

nijedan od uvjeta-

stražara nije

istina.

V-08 Softversko inženjerstvo 17

Page 18: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjeri donošenja odluke (2)

V-08 Softversko inženjerstvo 18

Sljedeći dijagram prikazuje skidanje novaca s

bankovnog računa. Uvjet u čvoru za donošenje odluke

zadan je u obliku objašnjenja (script) koje je označeno

stereotipom <<decisioninput>>.

Page 19: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Sljedeći dijagram

prikazuje proces

nastanka,

proizvodnje i prodaje

nekog proizvoda. Taj

proizvod se najprije

mora oblikovati,

zatim proizvodnja i

marketing mogu ići

kao paralelni tokovi,

zatim nakon

sinkronizacije tih

tokova slijedi

prodaja.

V-08 Softversko inženjerstvo 19

Primjer grananja i spajanja

Page 20: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Način rada objektnih čvorova (1) Objektni čvorovi označavaju da se primjerci

određenog klasifikatora (obično objekti iz određene

klase) pojavljuju na određenom mjestu u aktivnosti.

Ulazni i izlazni lukovi objektnog čvora moraju biti

objektni lukovi.

Kad objektni čvor primi žeton-objekt po nekom od

svojih ulaznih lukova, dešava se sljedeće.

Čvor nudi taj objekt po svim svojim izlaznim lukovima.

Izlazni lukovi se natječu za prihvat objekta, dakle dobije ga

onaj prvi koji ga prihvati.

Znači, jedan objekt na ulazu daje jedan objekt na izlazu;

nema replikacije kao kod akcijskih čvorova.

Sam objektni čvor može služiti kao spremnik (buffer)

za žetone-objekte.

V-08 Softversko inženjerstvo 20

Page 21: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Način rada objektnih čvorova (2) Svojstva spremnika mogu se specificirati logičkim uvjetima

u vitičastim zagradama ili primjedbama sa stereotipima. {upperbound = n}

{ordering = FIFO} (to je default) ili {ordering =LIFO}

<<selection>> uvjet

Objektni čvor može predstavljati objekte u nekom stanju. Tada stanja koja objekt poprima na activity dijagramu trebaju biti

konzistentna sa stanjima na odgovarajućem state machine

dijagramu.

Objektni čvorovi mogu služiti kao ulazni ili izlazni

parametri za aktivnosti. Tada se crtaju tako da prelaze preko okvira aktivnosti.

Ulazni parametri imaju jedan ili više izlaznih lukova koji ulaze u

aktivnost.

Izlazni parametri imaju jedan ili više ulaznih lukova koji izlaze iz

aktivnosti.

V-08 Softversko inženjerstvo 21

Page 22: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjeri objektnih čvorova (1)

V-08 Softversko inženjerstvo 22

Primjer s procesom

nastanka,

proizvodnje i

prodaje proizvoda

sad je bolje

razrađen. Dodan je

tok objekta koji

povezuje

oblikovanje i

proizvodnju. Osim

toga, uvedene su

particije koje

odgovaraju

lokacijama.

Page 23: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjeri objektnih čvorova (2) Objektni čvor koji služi kao spremnik.

V-08 Softversko inženjerstvo 23

Objektni čvor

koji obavlja

selekciju.

Čvor koji

predstavlja

objekte u

nekom

stanju.

Page 24: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjeri objektnih čvorova (3)

V-08 Softversko inženjerstvo 24

Objektni čvorovi kao ulazni i izlazni

parametri za aktivnost.

Page 25: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Interaction overview dijagrami (1) Interaction overview dijagram je “križanac” između

interaction dijagrama i activity dijagrama.

Smatra se da spada među interaction dijagrame, no

uglavnom izgleda kao activity dijagram.

Riječ je o activity dijagramu gdje umjesto akcijskih

čvorova imamo čvorove koji predstavljaju cijele

interakcije.

Osim interakcija imamo i kontrolne lukove, te kontrolne

čvorove koji reguliraju grananja, iteraciju, ili paralelne

tokove kontrole.

Cilj je da se pokaže tok kontrole na višoj razini između

pojedinih interakcija.

V-08 Softversko inženjerstvo 25

Page 26: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Interaction overview dijagrami (2) Jedna interakcija na interaction overview dijagramu obično

se zadaje zasebnim sequence dijagramom koji je:

Ucrtan unutar interaction overview dijagrama (inline interaction),

Ili je nacrtan posebno, te se navodi na interaction overview

dijagramu kao pojava interakcije (interaction occurrence).

Primijetimo da interaction overview dijagrami čine donekle

redundantni dio UML-a.

Naime, sami sequence dijagrami već mogu izraziti sve što i

interaction overview dijagrami. Grananje, iteracija i paralelnost

mogu se prikazati kombiniranim fragmentima i operatorima.

Ipak, kad bi tipični interaction overview dijagram pretvorili u

sequence dijagram, dobili bi zamršeni i nečitljivi prikaz interakcije.

Sequence dijagram je pogodan za prikaz manjih interakcija na

razini jednog use case-a. Interaction overview dijagram je pogodan

za opsežnije interakcije koje uključuju i povezuju više use case-ova.

V-08 Softversko inženjerstvo 26

Page 27: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

Primjer interaction overview dijagrama (1)

V-08 Softversko inženjerstvo 27

Sljedeći dijagram ManageCourses odnosi se na sustav za

praćenje studenata i kolegija. Prikazan je tok kontrole

na višoj razini između nekoliko interakcija na nižoj razini:

LogOn, GetCourse Option, AddCourse, FindCourse,

RemoveCourse.

Svaka od interakcija na nižoj razini predstavlja

realizaciju jednog use case-a. To znači da dijagram

ManageCourses opisuje složenu interakciju koja uključuje

više use case-ova.

Vidimo da su na dijagramu neke interakcije na nižoj

razini prikazane kao inline interactions, a neke kao

interaction occurrences.

Page 28: SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagramiweb.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-08.pdf · dijagrame toka kontrole ili dijagrame toka podataka. Služe za

V-08 Softversko inženjerstvo 28

Primjer interaction overview dijag (2)