28
SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case-ova na razini oblikovanja Robert Manger Sveučilište u Zagrebu PMF-Matematički odsjek Akademska godina 2018/2019.

SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

SOFTVERSKO INŽENJERSTVO

Vježbe 12: Realizacija use case-ovana razini oblikovanja

Robert Manger

Sveučilište u Zagrebu

PMF-Matematički odsjek

Akademska godina 2018/2019.

Page 2: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 2

Sadržaj Vježbi 12

Općenito o use case-ovima i oblikovanju

Sequence dijagrami u oblikovanju

Modeliranje istovremenosti

Aktivni objekti i klase

Modeliranje interakcije između podsustava

Timing dijagrami

Page 3: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 3

Općenito o use case-ovima i oblik (1) Tijekom analize bavili smo se realizacijom use case-

ova. Stvorili smo odgovarajuće interaction dijagrame

(obično sequence ili communication dijagrame).

Tijekom oblikovanja ponovo se vraćamo na realizaciju

use case-ova. Naime, potrebno je profiniti interaction

dijagrame iz analize ili čak dodati nove dijagrame.

Razlozi zašto je potrebno profinjavanje dijagrama su

sljedeći. Stare interaction dijagrame treba uskladiti s novim, znatno

detaljnijim, modelom klasa i njihovih operacija.

U stare interaction dijagrame treba unijeti elemente koji se tiču

implementacije: na primjer interakcija s korisničkim sučeljem,

korištenje mreže, rad s bazom podataka, istovremeni tokovi

kontrole.

Page 4: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 4

Općenito o use case-ovima i oblik (2) Razlozi zašto su potrebni novi dijagrami su sljedeći.

Treba opisati interakciju između komponenti i podsustava putem

sučelja. Te elemente modela nismo još imali tijekom analize pa ih

nismo mogli stavljati na dijagrame.

Koji put treba precizno odrediti tajming pojedinih interakcija. To

nije bilo moguće učiniti s vrstama dijagrama koje se koriste u

analizi.

U oblikovanju se gotovo uvijek koriste sequence

dijagrami, dok se communication dijagrami izbjegavaju.

Osim toga, kao nova vrsta koriste se i timing dijagrami.

Razrada klasa i veza na razini oblikovanja, definiranje

sučelja, komponenti i podsustava, te realizacija use

case-ova na razini oblikovanja zapravo su iterativne

aktivnosti. Dakle svaka od tih aktivnosti ispravlja druge.

Page 5: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 5

Sequence dijagrami u oblikovanju (1) Da bi vidjeli razliku

između sequence

dijagrama u

analizi odnosno

oblikovanju,

promatramo use

case AddCourse

kojim se u sustav

o studentima i

kolegijima dodaje

novi kolegij.

Specifikacija za

AddCourse izgleda

ovako.

Page 6: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 6

Profinjenjem ovog

dijagrama iz analize,

u oblikovanju

dobivamo sljedeći

dijagram.

Sequence

dijagram za

use-case

AddCourse

kojeg smo

dobili u

analizi

izgleda

ovako.

Sequence dijagrami u oblikovanju (2)

Page 7: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 7

Sequence dijagrami u oblikovanju (3)

Page 8: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 8

Sequence dijagrami u oblikovanju (4) Glavne razlike prikazanog dijagrama na razini oblikovanja

u odnosu na odgovarajući dijagram iz analize su sljedeće. Dodan je sloj za grafičko korisničko sučelje predstavljen objektom

:RegistrationUI.

Preciznije su definirani pozivi operacija u skladu s profinjenim

modelom klasa. Na primjer, stvaranje objekta sada je ostvareno

eksplicitnim pozivom konstruktora Course().

Uveden je mehanizam kojim se postiže perzistencija objekata.

Koriste se usluge objekta :DBManager kojima se objekt iz klase

Course trajno sprema u bazu podataka.

Kad na jednom dijagramu uvedemo jedan univerzalni

mehanizam, tada taj isti mehanizam treba konzistentno

koristiti i na drugim dijagramima. Na primjer, svugdje gdje je potrebno osigurati trajno postojanje

nekog objekta morali bi koristiti istu klasu DBManager.

Page 9: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 9

Modeliranje istovremenosti Tijekom analize nismo se puno opterećivali s tokovima

kontrole, no u oblikovanju se moramo s time pozabaviti.

Jedna od najvažnijih odluka koju moramo donijeti tijekom

oblikovanja je odluka da li će se pojedine interakcije

izvršavati istovremeno, ili sekvencijalno jedna iza druge.

U UML-u postoji dobra podrška za modeliranje

istovremenosti. Naime moguće je koristiti: aktivne klase,

čvorove za grananje i spajanje (fork and join) u activity dijagr,

operator par u sequence dijagramu,

prefikse uz redne brojeve poruka na communication dijagramu,

više životnih tokova na timing dijagramu,

“ortogonalna” složena stanja u state machine dijagramu.

Neke od ovih elemenata UML-a već smo upoznali, a neke

ćemo proučiti u nastavku ovih vježbi.

Page 10: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 10

Aktivni objekti i klase Aktivni objekt je objekt koji u sebi enkapsulira svoj

vlastiti tok kontrole. Aktivna klasa je klasa čije instance

su aktivni objekti.

Aktivni objekti i klase crtaju se kao obični objekti i klase,

no s dvostrukim lijevim i desnim rubom pravokutnika.

Aktivni objekti i klase predstavljaju temelj za

modeliranje istovremenosti u sustavu. Naime, da bi

stvorili mogućnost za istovremenost, postupamo ovako.

U model klasa uvrstimo aktivne klase.

Svaki tok kontrole predstavimo jednim aktivnim objektom.

Ako se aktivni objekti pojavljuju na sequence ili timing

dijagramu, tada njihovi životni tokovi predstavljaju

paralelne procese.

Page 11: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 11

Korištenje aktivnih klasa (1) Sustav zaštite od požara i provale nadgleda skup senzora

koji mogu otkriti požar ili provalu. Kad se senzor aktivira,

sustav uključuje zvučni alarm pomoću sirene.

Use case

dijagram za

sustav zaštite

izgleda

ovako.

Slijede

detaljne

specifikacije

za neke od

use case-ova.

Page 12: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 12

Korištenje aktivnih klasa (2)

Page 13: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 13

Korištenje aktivnih klasa (3) Na osnovi use case-ova dolazimo do sljedećeg class

dijagrama u kojem su neke od klasa aktivne. Nužno je

osigurati više tokova kontrole, jer sustav mora stalno i

istovremeno nadgledati više senzora.

Page 14: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 14

Istovremenost na sequence dijag (1) Ponovo gledamo sustav zaštite. Na osnovi

prethodnih specifikacija use case-ova i class

dijagrama s aktivnim klasama, dolazimo do

sljedećeg sequence dijagrama na razini

oblikovanja koji odgovara use case-u ActivateAll.

Istovremenost na tom sequence dijagramu

ostvaruje se time što se pojavljuju aktivni objekti i

time što se služimo operatorom par. Taj operator

smo spomenuli još u analizi, no on se obično

koristi tek u oblikovanju.

Page 15: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 15

Istovremenost na sequence dijag (2)

Page 16: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 16

Istovremenost na sequence dijag (3) Interakcija na prethodnom dijagramu teče ovako.

Akter :SecurityGuard šalje poruku activate() objektu :ControlBox. :ControlBox

šalje poruku soundActivatedAlarm() prema objektu :Siren.

:ControlBox slanjem poruka monitor() objektima :FireSensorMonitor i

:SecuritySensorMonitor pokreće dva istovremena toka kontrole koji su

predočeni kao dva operanda operatora par.

U prvom toku kontrole :FireSensorMonitor ulazi u petlju i stalno ispituje

:FireSensor. Petlja u svom prvom koraku postavlja polaznu vrijednost za

varijablu fire, a zatim se ponavlja dok god je fire false.

Kad fire postane true, tada :FireSensorMonitor ulazi u kritičnu sekciju.

Unutar te sekcije :FireSensorMonitor šalje poruku fire() :ControlBox-u, a

:ControlBox šalje poruku soundFireAlarm() :Siren-u.

U drugom toku kontrole :SecuritySensorMonitor ulazi u petlju i stalno

ispituje :SecuritySensor. Petlja najprije postavlja polaznu vrijednost za

varijablu intruder, a zatim se ponavlja dok god su i intruder i fire false.

Ako intruder postane true, tada (ali samo ako je istovremeno fire false)

:SecuritySensorMonitor šalje poruku intruder() :ControlBox-u. Nakon toga

:ControlBox šalje poruku soundIntruderAlarm() :Siren-u.

Page 17: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 17

Istovremenost na sequence dijag (4) Na prethodnom sequence dijagramu treba uočiti još

nekoliko zanimljivih detalja.

Zapravo postoje četiri toka kontrole, svako od njih odgovara

jednom aktivnom objektu. No dva od tih tokova su uglavnom

pasivni, a dva zaista rade istovremeno.

Kritična sekcija predstavlja atomarno ponašanje koje se ne može

prekinuti. Aktiviranje požarnog alarma je od kritične važnosti za

sigurnost i zato je ono stavljeno u kritičnu sekciju.

Požarni alarm ima prednost pred provalnim alarmom. Aktiviranje

provalnog alarma nije u kritičnoj sekciji, tako da ono može biti

prekinuto zbog aktiviranja požarnog alarma. Provalni alarm će se

čuti samo ako se već ne čuje požarni alarm.

Pretpostavljeno je da postoji samo po jedan senzor za požar

odnosno provalu. U slučaju više senzora morali bi proširiti

dijagram tako da u petlju svakog od istovremenih tokova dodamo

još po jednu ugniježđenu petlju.

Page 18: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 18

Interakcije između podsustava (1) Ako smo veliki sustav podijelili u podsustave i odredili

njihova sučelja, tada je korisno modelirati interakcije

između podsustava preko tih sučelja.

Naime, takve interakcije daju sliku na višoj razini o tome kako

zamišljena arhitektura realizira zadane use case-ove.

Pritom ne ulazimo u detalje na nižoj razini o interakciji pojedinih

objekata.

Dijagram koji opisuje interakciju podsustava može

izgledati slično kao na primjer sequence dijagram, no:

umjesto životnih tokova objekata on sadrži životne tokove instanci

podsustava;

svaki podsustav promatra se kao crna kutija koja nudi i traži servise

opisane njegovim sučeljima;

ne brinemo se o unutrašnjoj interakciji objekata unutar podsustava.

Page 19: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 19

Interakcije između podsustava (2) Sljedeća slika prikazuje podsustav Customer koji nudi

sučelje s imenom CustomerManager.

Daljnja slika predstavlja dio sequence dijagrama gdje

akter :SalesAgent stupa u interakciju s instancom

podsustava Customer.

Page 20: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 20

Interakcije između podsustava (3) Sučelje CustomerManager sad je prikazano kao kućica koja visi ispod

ikone podsustava i iz koje izlazi životni tok.

Poruke su prikazane kao strelice koje se spajaju na životni tok iz

sučelja – time se simbolički označava da poruke poštuju protokol

određen sučeljem.

Page 21: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 21

Timing dijagrami (1) Timing dijagrami su još jedna (četvrta) vrsta interaction

dijagrama.

Nikad se ne koriste u analizi, a samo koji put se koriste u

oblikovanju, i to za modeliranje real-time ili embedded sustava.

Omogućuju da se opišu i kvantificiraju precizna vremenska

ograničenja.

Pojavili su se tek u verziju UML 2, po ugledu na dijagrame koji

se u elektrotehnici koriste za modeliranje elektroničkih

sklopova.

Timing dijagram je organiziran na sljedeći način.

Horizontalna os predstavlja vrijeme.

Na vertikalnoj osi prikazani su životni tokovi i njihova stanja.

Promjene stanja životnih tokova prikazane su izlomljenom

crtom.

Page 22: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 22

Timing dijagrami (2)

Sljedeći timing dijagram vezan je uz sustav zaštite od

požara i provale. Prikazane su promjene stanja sirene

:Siren, u vremenu t mjerenom u minutama, ovisno o

događajima.

Moguća stanja za sirenu su:

Resting (odmara se),

Off (isključena),

SoundingFireAlarm (svira alarm za požar),

SoundingIntruderAlarm (svira alarm za provalu).

Mogući događaji su:

intruder (otkriven je provalnik),

fire (otkriven je požar).

Page 23: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 23

Timing dijagrami (3)

Page 24: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 24

Timing dijagrami (4) Iz prethodnog timing dijagrama možemo pročitati sljedeće.

t=0: objekt :Siren je u stanju Off.

t=10: desio se događaj intruder, :Siren prelazi u stanje

SoundingIntruderAlarm.

t=25: alarm za provalu ne smije raditi dulje od 15 minuta zbog

lokalnih propisa. Zato :Siren prelazi u stanje Resting i mora ostati u

tom stanju barem 30 minuta.

t=35: opet se desio događaj intruder. No :Siren mora i dalje biti u

stanju Resting tako da nema zvučnog signala.

t=55: nakon 30 minuta odmaranja :Siren se prebacuje u stanje Off.

t=65: još jednom se desio događaj intruder, pa :Siren iz stanja Off

prelazi u stanje SoundingIntruderAlarm.

t=75: desio se događaj fire, pa :Siren odmah prelazi iz stanja

SoundingIntruderAlarm u stanje SoundingFireAlarm.

t=100: interakcija završava, :Siren je u stanju SoundingFireAlarm.

Page 25: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 25

Kompaktni oblik timing dijagrama Postoji i oblik timing dijagrama gdje su stanja nacrtana

horizontalno. Sljedeća slika prikazuje istu interakciju kao

prethodna, no sada na kompaktniji način. Naglasak je na

stanjima i na relativnim vremenima.

Page 26: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 26

Istovremenost na timing dijagramu (1) Timing dijagrami mogu se koristiti za prikazivanje

vremenskih ograničenja u interakciji između nekoliko

životnih tokova.

Ako ti životni tokovi pripadaju aktivnim objektima, tada

takav dijagram predstavlja još jedan način prikazivanja

istovremenosti.

Dijagram s više životnih tokova podijeljen je u više

vodoravnih odjeljaka, svaki za pojedini životni tok.

Istovremeni događaji u različitim životnim tokovima

nalaze se okomito jedan iznad drugog ili ispod drugog.

Sljedeći primjer opet se odnosi na sustav zaštite od

požara i provale te prikazuje interakciju između aktivnih

objekata :FireSensorMonitor, :IntruderSensorMonitor i :Siren.

Page 27: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 27

Istov-reme-nost na ti-mingdija-gramu (2)

Page 28: SOFTVERSKO INŽENJERSTVO Vježbe 12: Realizacija use case ...web.studenti.math.pmf.unizg.hr/~manger/si/SI-vjezbe-12.pdf · V-12 Softversko inženjerstvo 3 Općenito o use case-ovima

V-12 Softversko inženjerstvo 28

Istovremenost na timing dijagramu (3)

Na prethodnom dijagramu treba uočiti sljedeće.

Nakon što su pobuđen, :FireSensorMonitor odnosno

:IntruderSensorMonitor prelazi u stanje Triggered, šalje poruku, te

se zatim u roku od 1 sekunde (0.016 minuta) vraća u stanje

NotTriggered.

:Siren odgovara na dojavu provale samo ako je u stanju Off.

U stanju Resting ona ignorira provalu. To je opet zbog

lokalnih propisa koji kažu da protuprovalni alarmi smiju

trajati najviše 15 minuta, te da nakon toga moraju mirovati

barem 30 minuta.

:Siren uvijek odgovara na dojavu požara, čak i ako je u stanju

Resting. To je zato jer se na požar mora hitno reagirati bez

obzira na propise.