Top Banner
Modelovanje stanja korišćenjem Statechart dijagrama (dijagrama stanja) Analiza i specifikacija informacionih sistema dr Zoran Jeremić [email protected] 1
28

T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

May 24, 2015

Download

Documents

Zoran Jeremic
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Modelovanje stanja korišćenjem Statechart dijagrama (dijagrama stanja) Analiza i specifikacija informacionih sistema

dr Zoran Jeremić [email protected]

1

Page 2: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Sadržaj

Uvod u statechart dijagrame

Statechart gradivni blokovi Stanja Promene

Napredne karakteristike Složena stanja Paralelna stanja

Page 3: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Proces razvoja sistema

Faza Aktivnost Izlaz

Započinjanje Utvrđivanje poslovnih potreba Biznis dokumenta

Analiza Intervjuisanje stejkholdera, istraživanje sistemskog okruženja

Organizovana dokumentacija

Specifikacija Analiza inženjerskih aspekata sistema, definisanje koncepata sistema

Logički model sistema

Implementacija Programiranje, testiranje jedinica, integrisanje, dokumentovanje

Proverljiv sistem

Testiranje & Integracija

Integrisanje svih komponenti, verifikacija, validacija, instalacija, obuka

Resultati testiranja, funkcionalan sistem

Održavanje Popravljanje bagova, modifikacije, adaptacija Verzije sistema

Page 4: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Šta nedostaje u modelovanju ponašanja?

p : Product : ShooppingCart

addProduct (p)

customer display()

getPrice()

checkout ()

U dijagramu sekvence ne znamo kako se stanje šoping karte menja.

Page 5: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Modelovanje stanja

Kako možemo modelovati stanje šoping karte?

Zavisi od: Stanja objekta (npr. kreiran, ugašen) Dodeljivanja vrednosti promenljivima Stanja relacije (npr. broj artikala) Operativnih metoda i procesa Istorije

addNewProduct(p : Product, quantity : int)removeProduct(p : Product)

dateCreated : DatedateUpdated : Date

ShoppingCart

productId : Stringname : Stringphoto : Picture

Product

**

quantity

Item

Page 6: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Automata

Mašina čije izlazno ponašanje nije samo direktna posledica trenutnog ulaza, već i nekih ranijih ulaza.

Karakteriše ga interno stanje koje predstavlja njegovo ranije iskustvo.

Ako je telefon uključen, pritisak na dugme će ga isključiti

Ako je telefon uključen, pritisak na dugme će ga uključiti

Page 7: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Sadržaj

Uvod u statechart dijagrame

Statechart gradivni blokovi Stanja Promene

Napredne karakteristike Složena stanja Paralelna stanja

Page 8: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Stanja i klase

Order

status: {created, sent, received} hasProblems : boolean

gatherItems() updateInventory() sendOrder() received(customer) sendReciept()

created

sent

Pogled stanja Pogled klase

in gathering

is received

Stanje

Tranzicija

in problem

Page 9: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Aktivnosti

Dok se nalazi u određenom stanju, komponenta može izvršavati aktivnosti. Može biti neprekidna u

određenom ili neograničenom vremenu

Aktivnosti unutar stanja su sekvencijalne

Aktivnosti mogu biti prekinute

Postoje specijalni tipovi aktivnosti, klasifikovanih kao ulazne, izlazne i događaji

in gathering

do: gatherItems() do: updateInventory()

created

enter: set hasProblems to false do: init gathering list exit: clean log file

Page 10: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Tranzicije

x y događaj [uslov] | akcija

Događaj koji pokreće tranziciju

Uslov koji se mora ispuniti da bi došlo do tranzicije

Akcija koja će se desiti kada dođe do tranzicije

Page 11: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Događaji

Osnovni događaji Pozivi metoda: received(customer)

Signali događaja: inventoryReady

Vremenski događaji: Istek intervala; tm(3 days), tm(1000 ms)

kalendar/sat vreme; when(11:50)

Događaji promene: Promena vrednosti nekog

entiteta; false(hasProblems) true(hasProblems)

created

sent

in gathering

is received

inventoryReady

tm(3 days)

false(hasProblems)

received()

in problem

Page 12: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Uslovi

Boolean iskazi. Proveravaju se kada je tranzicija aktivirana Tipovi uslova:

Jednostavan: [hasProblems], [x > 0] Kombinovani:

[¬hasProblems ∨ (hasProblems ∧ order.sum < 100] Uslovi nad aktivnostima: [active(gatherItems)]

sent in gathering

gatheringFinished [all items were gathered]

in problem gatheringFinished [items are not found]

Page 13: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Uslovi - primer

Selling

Unhappy

bid [(value >= 100) AND (value < 200)]

Happy bid [value >= 200]

bid [value < 100]

Page 14: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Grananje statičkih uslova

Grafička prečica predstavljanje stabla odlučivanja

[(value >= 100) & (value < 200)]

[value >= 200]

[value < 100]

Selling

Unhappy

Happy

bid

Page 15: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Prazne tranzicije

Tranzicija može imati bilo kakvu kombinaciju događaja, uslova i akcija (uključujući i ništa)

Kada tranzicija nema događaj, ona se dešava kada su sve aktivnosti završene

Cleaning do: put water do: put soap

do: wash soap do: drain

doing nothing

Employee

rest[break]

work

Working do: shovel

Prazna tranzicija

work

Page 16: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Uslovi i događaji

Koja je razlika između dve mašine?

S1 S2 E1 S3 true(C)

S1 S2 E1 S3 [C]

Šta se dešava ako C promeni stanje u True ili False pre E1?

Page 17: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Akcije

Tipovi akcija Dodeljivanje promenljive:

Slanje signala:

Aktivnosti započinjanja ili zaustavljanja:

sent is received received() | status := received

sent is received received() | throw(InventoryUpdate)

sent is received | start(sendBill); stop(delivery); x := x+1

Page 18: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Kako mašina za veš funkcioniše?

On / Off dugme. Start dugme (Nema stop dugmeta.)

Povratna poruka se daje o trenutnom stanju (potapanje, ispiranje, ceđenje, sušenje)

Tri plana: Regularni Osetljivi (bez potapanja) Super osetljivi (bez potapanja,

bez sušenja) Off se može pritisnuti samo pre

početka ili nakon završetka

Page 19: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Mašina za pranje

off

idle

Do: light(soak)Do: pump(in)

soak

Do: light(rinse)Do: stir()

rinse

Do: light(drain)Do: pump(out)

drain

Do: light(dry)Do: stir()

dry

click(power) click(power)

click(start) [plan=regular]

click(start) [plan=delicate or super delicate]

tm(30 mins)

tm(30 mins)

Tm(5 mins) [plan=super delicate] | light(off)

tm(5 mins)[plan=not super

delicate]

Tm(10 mins) | light(off)

idle-prazan hod, soak-potapanje, rinse-ispiranje, drain-ceđenje. dry- sušenje, delicate-fino stir-mešanje

Page 20: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Sadržaj

Uvod u statechart dijagrame

Statechart gradivni blokovi Stanja Promene

Napredne karakteristike Složena stanja Paralelna stanja

Page 21: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Eksplozija stanja: Primer

off

idle

Do: light(soak)Do: pump(in)

soak

Do: light(rinse)Do: stir()

rinse

Do: light(drain)Do: pump(out)

drain

Do: light(dry)Do: stir()

dry

click(power) click(power)

click(start) [plan=regular]

click(start) [plan=delicate or super delicate]

tm(30 mins)

tm(30 mins)

Tm(5 mins) [plan=super delicate] | light(off)

tm(5 mins)[plan=not super

delicate]

Tm(10 mins) | light(off)

Šta ukoliko želimo da se vratimo u isto stanje iz koga smo izašli?

Šta ukoliko bi se off dugme moglo pritisnuti bilo kad?

Page 22: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Apstrakcija u statechart dijagramima

Pronalaženje zajedničkog ponašanja

Odvajanje nezavisnih regiona

Kompozitna stanja Paralelna stanja

Page 23: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Kompozitna stanja

On

off

idle

Do: light(soak)Do: pump(in)

soak

Do: light(rinse)Do: stir()

rinse

Do: light(drain)Do: pump(out)

drain

Do: light(dry)Do: stir()

dry

click(start) [plan=regular]

click(start) [plan=delicate or super delicate]

tm(30 mins)

tm(30 mins)

Tm(5 mins) [plan=super delicate] | light(off)

tm(5 mins)[plan=not super

delicate]

Tm(10 mins) | light(off)

click(power)click(power)

Page 24: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Kompozitna stanja + istorija

On

off

idle

Do: light(soak)Do: pump(in)

soak

Do: light(rinse)Do: stir()

rinse

Do: light(drain)Do: pump(out)

drain

Do: light(dry)Do: stir()

dry

click(start) [plan=regular]

click(start) [plan=delicate or super delicate]

tm(30 mins)

tm(30 mins)

Tm(5 mins) [plan=super delicate] | light(off)

tm(5 mins)[plan=not super

delicate]

Tm(10 mins) | light(off)

click(power)

click(power)

H

Page 25: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Duboka(deep) i plitka(shallow) istorija

Diagnosing

Diagnostic1

setup

Check blood pressure

Diagnostic2

Find a vein

Draw Blood

H*

H

Stop pause

return

return-full

Shift ended | clh()

clh() – brisanje istorije

Page 26: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Paralelna stanja

Ponekad su određeni aspekti entiteta nezavisni od drugih aspekata

single

married

divorced

Marital

Staff Member

Manager

employee

Page 27: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Označavanje paralelnih stanja

Kombinovanje višestrukih simultanih opisa

Staff Member

Manager

employee

Staff Member

Manager

employee

single

married

divorced

Martial

single

married

divorced

Martial

Page 28: T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

Račvanje (fork) i spajanje (join) tranzicija

Credit Card verification

charging

Processing Sent Confirmed

shipping

Receipt Sent

In problem

[ok]

[not ok] spajanje račvanje