51
Modelovanje ponašanja korišćenjem UML dijagrama interakcije Analiza i specifikacija informacionih sistema dr Zoran Jeremić [email protected] 1

T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Embed Size (px)

Citation preview

Page 1: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Modelovanje ponašanja korišćenjem UML dijagrama interakcije Analiza i specifikacija informacionih sistema

dr Zoran Jeremić [email protected]

1

Page 2: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sadržaj

Uvod

Sekvencijalni dijagrami

Kolaborativni dijagrami

Konstrukcije toka

Modularnost

2

Page 3: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Proces razvoja sistema

Faza Aktivnost Izlaz

Započinjanje Utvrđivanje poslovnih potreba Biznis dokumenta

Analiza Intervjuisanje stejkholdera, istraživanje sistemskog okruženja

Organizovana dokumentacija

Dizajn i 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

3

Page 4: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Slanje poruka

Kada jedan objekat šalje poruku drugom objektu, on poziva operaciju u pozvanom objektu.

4

Page 5: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Zadatak modela interakcije

Osnovni zadatak modela interakcije je definisanje najpogodnijeg načina komunikacije između objekata da bi se podržao svaki zahtev posebno.

Interakcija sadrži skup parcijalno uređenih poruka gde svaka poruka specificira jednu komunikaciju (signal koji treba poslati ili operacija koju treba pozvati).

5

Page 6: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Zašto modelovati ponašanje?

Kako koristimo interfejs SMS Servera? Koji je redosled izvršenja operacija? sendMessage, getStatus, Resend? getStatus, sendMessage, checkForMessages?

Kada koristimo operaciju resend?

6

Page 7: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Modelovanje ponašanja

7

Redosled akcija • Kako se kreira

redosled operacija • Putanje izvršenja:

– Sekvencijalne – Paralelne – Petlje

Preduslovi • Kada se izvršavaju

operacije • Kako rezultat

operacija utiče na izvršenje

Efekti • Koji je rezultat

operacija • Kako operacije

menjaju stanje sistema

Send message

Get Status Resend

[if getStatus == err]

Resend

Message queue

Adds a new msg

Page 8: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Vrste dijagrama interakcije

Postoje dva tipa dijagrama interakcije: Dijagram sekvence:

• Naglašava redosled (sekvencu) ili konkurentnost interakcije Dijagram kolaboracije:

• Naglašava interakciju objekata

8

Page 9: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sadržaj

Uvod

Sekvencijalni dijagrami

Kolaborativni dijagrami

Konstrukcije toka

Modularnost

9

Page 10: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sekvencijalni dijagrami u analizi i dizajnu

Sekvencijalni dijagrami u toku analize se razlikuju od sekvencijalnih dijagrama modelovanih u fazi dizajna u sledećem: Analitički dijagrami sekvence normalno ne sadrže projektne

objekte niti specificiraju detalje signature poruke.

10

Page 11: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sekvencijalni dijagrami

Sekvencijalni dijagrami prikazuju interakciju između objekata uređenih u vremensku sekvencu.

Najopštija primena sekvencijalnih dijagrama je predstavljanje detaljne interakcije objekata koje se pojavljuju u jednom slučaju upotrebe ili jednoj operaciji.

11

Page 12: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Smešan primer iz stvarnog života

12

Page 13: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Smešan primer: sekvencijalni dijagrami

13

Page 14: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Smešan primer: sekvencijalni dijagrami

14

Page 15: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Smešan primer: dijagram kolaboracije

15

Page 16: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Kreiranje sekvencijalnog dijagrama

Sekvencijalni dijagrami predstavljaju ponašanje slučaja upotrebe koristeći kao osnovu klase.

16

Class A Class C

Class B Class D

Use Case 1

Use Case 2 Use Case 3

Sekvenca = Objekti + poruke

Page 17: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

17

Osnovni elementi sekvencijalnog dijagrama

učesnik: objekat ili entitet koji učestvuje u sekvencijalnom dijagramu Sekvencijalni dijagram započinje neprikačenom strelicom “found

message"

poruka: komunikacija između objekata učesnika

Ose u sekvencijalnom dijagramu:

horizontalna: koji objekat/učesnik vrši aktivnost vertikalna: vreme (odozgo na dole)

Page 18: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

18

Predstavljanje objekata

Kvadrat sa tipom objekta, kome opciono može prethoditi ime objekta i dvotačka Pišite ime objekta ako doprinosi pojašnjenju dijagrama Linija života objekta predstavlja se isprekidanom vertikalnom

linijom.

Page 19: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

19

poruka (poziv metode) predstavlja se horizontalnom linijom prema drugom objektu Pišite ime poruke i argument iznad strelice

Isprekidana strelica nazad označava povratnu poruku Različiti vrhovi strelica se koriste za normalne i konkurentne (asinhrone)

metode

Poruke između objekata

Page 20: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Različite vrste poruka

Sinhrona poruka

Asinhrona poruka

Povratna poruka

Sinhrona poruka izaziva da pozvana operacija suspenduje izvršavanje dok joj se fokus kontrole ne vrati.

Asinhrona poruka ne izaziva prekid izvršenja dok se čeka na povratak. Kada se pošalje asinhrona poruka, operacije u oba objekta mogu da vrše obradu istovremeno.

20

Page 21: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sinhrone i asinhrone poruke

sensor alarm

Asynchronous Flow

unknown

ring

unknown

log

Primer

manager sensor eye

Nested Flow

check

check

operate

manager

Primer

21

Page 22: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Život objekata

• Kreiranje: strelica sa 'new' iznad nje – Objekat kreiran nakon

početka scenarija se nalazi niže

• Brisanje: X na dnu linije života objekta – Java ne briše

eksplicitno objekte već koristi garbage collector

22

Page 23: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

23

Prikazivanje poziva metoda

aktivacija: pravougaonik iznad linije života objekta; crta se kada se metoda objekta izvršava ili je u steku Objekat izvršava svoj kod, ili je u steku i čeka drugu metodu da

se završi Ugnježdavanjem se prikazuje rekurzija

Activation

Nesting

Page 24: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sekvencijalni dijagrami

p : Product : ShooppingCart

addProduct (p)

customer display()

getPrice()

checkout ()

sd Product Buying objekti

poruka

Linija života

aktivacija (fokus

kontrole)

Ime dijagrama

24

Page 25: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Kontrola objekata

obj1 : Class1 obj2 : Class2

do (…)

: Class3 create (…)

obj1 : Class1

user operate() Kreiranje

objekata

Destrukcije objekata

Povratna poruka

foo() Poruke

samom sebi

25

Page 26: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Primer

Odgovarajući dijagram klasa

Gde god se razmenjuju poruke između instanci klasa, postoji i zavisnost između tih klasa

Zavisnost se može zameniti asocijacijama, agregacijama i slično.

26

Page 27: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sekvence i slučajevi upotrebe

p : Product : ShooppingCart

addProduct (p)

: Order create (…)

customer display()

getPrice()

checkout ()

Skriveni deo Vidljivi deo

27

Page 28: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Atributi poruke

C3.1: res := getLocation (fig)

Broj sekvence

Povratna vrednost Ime poruke Lista argumenata

[sequence-expression] [return-value :=] [message-name] [(argument-list)]

28

Page 29: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sadržaj

Uvod

Sekvencijalni dijagrami

Kolaborativni dijagrami

Konstrukcije toka

Modularnost

29

Page 30: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Kolaborativni dijagrami

Služe za prikaz složenijih interakcija između objekata i njihove međusobne povezanosti.

Fokusira se na kolaboracionoj strukturi i organizaciji između objekata.

Modeluje link između objekata

Sastoji se od objekata, linkova, poruka

30

Page 31: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Kolaborativni dijagram

: kupac

prodavnica model

broj

1: odlazak

6: kupovina

2: biras model

4: vraca model

3: biras broj5: vrati cipele

31

Page 32: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Kolaborativni dijagram

32

Page 33: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sadržaj

Uvod

Sekvencijalni dijagrami

Kolaborativni dijagrami

Konstrukcije toka

Modularnost

33

Page 34: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Konstrukcije toka

Kada kreiramo scenario, koje alternative su nam potrebne?

If Else Loop

Repeat Jump 34

Page 35: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Opcije

archive(msg)

msg : Message : Database

opt

Do something...

[msg.status=confirmed]

Fragment

Uslov

Koristi se za modelovanje jednostavnih opcionih blokova. Ima jedan operand i nema “else” opciju.

35

Page 36: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Alternative

archive(msg)

msg : Message : Database

Uslov

: Admin

alt

notify(msg.getID())

wait()

[msg.status=confirmed]

[msg.status=error]

[else]

Else uslov (opcioni)

Alternativa Grupa fragmenta

Regioni izvršenja. Najviše jedan će se izvršiti.

36

Page 37: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Petlja

Display()

: OS : Folder : File

loop

loop

Display()

[for each Folder]

[for each File]

Fragment petlje

Uslov

Ugnježdeni fragment petlje

37

Page 38: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Prekidi (break)

isLooged = login(name,pass)

: User : User Manager : Policy

addBadLogin(name)

break

[¬isLooged]

Do something…

Do something …

Ukoliko je uslov ispunjen, fragment prekida se izvršava, a ostatak sekvence se ignoriše.

38

Page 39: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Primeri definisanja uslova

[for each Object]

[5]

[i=1..5]

[status = okay]

Nepostojanje uslova znači beskonačnu petlju

39

Page 40: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Sadržaj

Uvod

Sekvencijalni dijagrami

Kolaborativni dijagrami

Konstrukcije toka

Modularnost

40

Page 41: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

MODULARNOST

41

Potrebno je pronaći načine za kreiranje modularnih scenarija

Page 42: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Referenciranje dijagrama

login(name,pass)

: User : User Manager : Policy

Login Handling(user,pass) :

bool

ref

Do something…

Do something …

Referenca Gate

42

Page 43: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Referenciranje dijagrama

: User Manager : UserAccount

sd Login Handling

loop

cName -= getUseNamer()

[for each UserAccount] login(name,pass)

opt

[cName = name]

cName -= getUseNamer()

isInSystem(true) true

false

Ime dijagrama

Input poruka

Output poruka

43

Page 44: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Primer: Funkcionisanje bankomata

• Korisnik unosi karticu u ATM • ATM zahteva PIN • Korisnik unosi PIN • Uneti PIN proverava sistem

banke • Sistem vraća poruku o

validnosti ATM sistemu • ATM nudi korisniku opcije • Korisnik bira podizanje

novca • ATM zahteva unos iznosa

44

Page 45: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Primer: Logon scenario

45

• Klijent zahteva Logon (requestLogon()) sa SecurityLogon interfejsa koji zatim prikazuje Logon ekran (displayLogonScreen())

• Klijent unosi name, pass u LogonScreen-u • Izvršava se petlja pod sledećim uslovom

[while valid==false]: Interfejs SecurityLogon šalje na proveru user i pass (isValid(name, pass)) ka bazi account-a (AccountDB) AccountDB proverava da li naziv postoji u bazi (isInDatabase(name) u Sistemu (System) Sistem vraća tip korisnika (userType) AccountDB vraća info o validnosti (valid) Interfejs SecurityLogon prikazuje poruku o grešci (displayErrorMessage()) Ponovo otvara tj. prikazuje Logon ekran (displayLogonScreen())

• SecurityLogon proverava uslov: Ukoliko je [userType==admin] onda prikazuje Admin (displayAdmin()) Ukoliko je [userType==user] onda prikazuje user-a (displayUser())

Page 46: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Zadatak: sportska kladionica

Nacrtati UML sekvencijalni i kolaborativni dijagram za slučaj upotrebe popunjavanje tiketa za sportsko klađenje koji popunjava radnik sportske kladionice. Bitni koncepti koje je potrebno uzeti u obzir su tip klađenja i kvota.

46

Page 47: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Rešenje - sekvencijalni dijagram

47

Page 48: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Rešenje kolaborativni dijagram

48

Page 49: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

Primer: Slučaj upotrebe „Upis godine“ u IS studentske službe

Učesnik u ovom slučaju upotrebe je radnik studentske službe koji pokreće formu IS (klasa Forma) kako bi izvršio upis određenog studenta u narednu godinu. Od radnika se traži da unese broj indeksa za studenta koga želi da upiše u narednu godinu. Nakon unosa broja indeksa, Sistem vrši proveru da li postoji student u bazi podataka. Ukoliko student ne postoji u bazi podataka, radniku se prosleđuje poruka o grešci. Ukoliko student postoji u bazi, Sistem traži u bazi podataka podatke o položenim ispitima za datog studenta, nakon čega vrši proveru broja nepoloženih ispita. Ukoliko je broj nepoloženih ispita veći od 2, sistem vraća poruku korisniku o nepostojanju uslova za upis naredne godine. Ukoliko broj nepoloženih ispita nije veći od 2, Sistem upisuje studenta u narednu godinu u bazi podataka, a korisniku se vraća poruka o tome. Osim toga, ukoliko je student položio sve ispite pre 01.09. u bazu podataka student se automatski upisuje na budžet, a radniku se šalje potvrda o tome. Napraviti dijagram sekvence za navedeni primer Napraviti dijagram kolaboracije (dijagram komunikacije)

49

Page 50: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

50

Page 51: T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

51