T-3.4 Modelovanje Ponasanja Koriscenjem Dijagrama Interakcija

September 22, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download T-3.4 Modelovanje Ponasanja Koriscenjem Dijagrama Interakcija...

Description

 

Modelovanje ponašanja korišćenjem UML

dija dij aigr gra in  A  An n al ali zaai ma s p ec eciintera i f i terakci k ac acii j akcije i n fje in o r m ac acii o n i h s i s t em ema a  dr Zoran Jeremić  Jeremić  [email protected]

1

 

Sadržaj 

Uvod



Sekvencijalni dijagrami



Kolaborativni dijagrami  Konstrukcije toka 

Modularnost

2

 

roces ces razvoj razvoja a sistema sist ema Pro Faza Fa za

Aktitivn Ak vnos ostt

Izla zlazz

Utvrđivanje poslovnih potreba 

Biznis dokumenta

Intervjuisanje stejkholdera, istraživanje sistemskog okruženja

Organizovana dokumentacija

Dizajn i specifikacija

 Analiza inženjerskih inženjerskih aspekata sistema, definisanje koncepata sistema

Logički model sistema

Implementacija

Programiranje, testiranje jedinica, integrisanje, dokumentovanje

Testiran estiranje je & Integracija

Resultati Integrisanje svih komponenti, verifikacija, testiranja, validacija, instalacija, obuka funkcionalan sistem

Započinjanje  Započinjanje   Analiza

Održavanje

Popravljanje bagova, modifikacije, adaptacija

Proverljiv sistem

Verzije sistema 3

 

por uka Slanje poruka 

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

4

 

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

 

m odelovati ati ponašanje? Zašto modelov





Kako koristimo interfejs SMS Servera? Koji je redosled izvršenja operacija? 

sendMessage, getStatus, Resend?



getStatus, sendMessage, checkForMessages?

Kada koristimo operaciju resend?

6

 

ode elov lova anj nje e pona pon ašanja Mod Redosled akcija

Preduslovi

Efekti

• Ka Kako ko se se krei kreira ra redosled operacija

• Kad Kada a se izvrša izvršavaj vaju u operacije

• Koji je je re rezultat operacija

• Put Putanj anje e izvrš izvršenj enja: a:

• Ka Kako ko rez rezul ulta tatt operacija utiče na izvršenje

• Kako operacije menjaju stanje sistema

 – Sekvencijalne Sekvencijalne  – Paralelne Paralelne  – Petlje

Send message

[i[iff getStatus getStatus == err] Resend

Get Status

Resend  A  Add ddss a new n ew msg m sg

Message queue 7

 

rste e dijagra dij agrama ma intera in terakci kcije je Vrst 

Postoje dva tipa dijagrama interakcije: 

Dijagram sekvence: • Nagla Naglašava šava redos redosled led (sekve (sekvencu) ncu) ili ili konkurentn konkurentnost ost interak interakcije cije



Dijagram kolaboracije: • Nag Naglaš lašava ava int intera erakci kciju ju obj objeka ekata ta

8

 

Sadržaj 

Uvod



Sekvencijalni dijagrami



Kolaborativni dijagrami  Konstrukcije toka 

Modularnost

9

 

ekvenci ncijalni jalni dijagrami d ijagrami u analizi i dizajn dizajnu u Sekve 

Sekvencijalni dijagrami u toku analize se razlikuju od sekvencijalnih dijagrama modelovanih u fazi dizajna u sledećem:   sledećem: 

 Analitički dijagrami dijagrami sekvence normalno normalno ne sadrže projektne projektne objekte niti specificiraju detalje signature poruke.

10

 

Sekvencijalni dijagrami 

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



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

11

 

mešan n pri p rimer mer iz stvarnog živo ivota ta Smeša

12

 

Smeša mešan n prim pr ime er: se s ekv kve enci ncijalni jalni dijagra di jagrami mi

13

 

mešan n prim pr ime er: se s ekv kve enci ncijalni jalni dijagra di jagrami mi Smeša

14

 

Smeša mešan n prim pr ime er: dij dija agr gra am kolaboracij k olaboracije e

15

 

Kreiranje sekvencijalnog dijagrama 

Sekvencijalni dijagrami predstavljaju ponašanje slučaja slučaja upotrebe koristeći kao osnovu klase. klase. Use Case 1 Class C

Class A

Use Case 3

Use Case 2 Class D Class B

Objekti

Sekvenca =

+

poruke 16

 

Osnovni elementi sekvencijalnog dijagrama 

učesnik: objekat ili entitet koji učestvuje u učesnik: sekvencijalnom dijagramu 

Sekvencijalni dijagram započinje neprikačenom strelicom “found message"



poruka: komunikacija između objekata učesnika  učesnika 



Ose u sekvencijalnom dijagramu:  

17

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

 

Predstavlj redstavlja anje ob objeka jekata ta 

Kvadrat sa tipom objekta, kome opciono može prethoditi ime objekta i dvotačka  dvotačka   

18

Pišite ime objekta ako doprinosi pojašnjenju dijagrama Linija života objekta predstavlja se isprekidanom vertikalnom linijom.

 

Poruke između objekata  

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 



19

Različiti vrhovi strelica se koriste k oriste za normalne i konkurentne (asinhrone) metode

 

Različite vrste poruka 

Sinhrona poruka

 Asinhrona 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.

Povratna poruka 20

 

inhrone one i asinh asinhrone rone poruke poru ke Sinhr Nested Nes ted Flow manager

synchronous Flow

sensor

eye

sensor

check

manager

alarm

unknown ring

check

operate

log

Primer

Primer

21

21  

ivott obj o bje ekata Živo Kreiranje: nje: strelica sa • Kreira 'new' iznad nje  –  Objekat kreiran nakon početka scenarija se nalazi niže  niže 

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

eksplicitno objekte već koristi garbage collector

22  

Pri rikaz kazivanje ivanje poziva p oziva metoda metod a 

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  Ac ti vatio vat ion n

Nesting

23  

Sekvencijalni dijagrami objekti

sd Product Buying

Ime dijagrama

 p : Product

: ShooppingCart

customer

display()

poruka

getPrice()

aktivacija (fokus kontrole) Linija života

addProduct (p) checkout ()

24  

Kontrola rola objeka objekata ta Kont

obj1 : Class1

obj2 : Class2

user

Kreiranje objekata

operate() do (…) create (…)

: Class3

Povratna poruka foo()

Poruke samom sebi

Destrukcije objekata

25  

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.

Primer

26  

Sekvence i slučajevi upotrebe   p : Product

: ShooppingCart

customer

display() getPrice() addProduct (p) checkout () create (…) : Order

Vidljivi idlj ivi deo

Skriveni deo

27  

 Att r i b u t i p o r u k e  A [ seq sequencece- expr xpr essi on] [ r et ur n- val ue : =] [ messag ssage- name] [ ( ar gument - l i st ) ]

C3.1: res := getLocation  (fig)

Broj sekvence

Ime poruke

Povratna vrednost

Lista argumenata

28  

Sadržaj 

Uvod



Sekvencijalni dijagrami

 

Kolaborativni dijagrami Konstrukcije toka



Modularnost

29  

Kolaborativni dija dij agrami 

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



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



Modeluje link između objekata  objekata 



Sastoji se od objekata, linkova, poruka

30  

Kolaborativni dijagra m di jagram

1: odlaz odla zak

2: biras model prodavnica

6: kupovina

model 4: vraca vraca mo model del

: kupac 5: vrati vrati cipe cipele le 3: biras broj

broj

31  

Kolaborativni dijagra m di jagram

32  

Sadržaj 

Uvod



Sekvencijalni dijagrami

 

Kolaborativni dijagrami Konstrukcije toka



Modularnost

33  

Konstrukcije e toka Konstrukcij

If Loop ElseRepeat  Jump

Kada kreiramo scenario, koje alternative su nam potrebne?

34  

Opcije

msg : Message

: Database

Fragment

opt

[msg.status=confirmed]

Uslov

archive(msg)

Do something...

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

opciju.

35

 

 All t er ern n at atii v e  A msg : Message

: Database

: Admin

alt

[msg.status=confirmed] archive(msg)

 Alternativa Grupa fragmenta

Uslov [msg.status=error] notify(msg.getID())

[else] wait()

Else uslov (opcioni)

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

36  

Petlja : OS

: Folder  

: File

loop

Fragment petlje

[for each each Folder] Display()

loop [for ea each ch File]

Uslov Ugnježdeni fragment petlje

Display()

37  

Preki kidi di (brea (break) k) Pre : User

: User Manager  

: Policy

isLooged = login(name,pass)

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

break [ isLooged] ¬

addBadLogin(name)

Do something…

Do something …

38  

uslo va Primeri definisanja uslova 

[for each Object]



[5]



[i=1..5]  [status = okay] 

Nepostojanje uslova znači beskonačnu petlju  petlju 

39  

Sadržaj 

Uvod



Sekvencijalni dijagrami



Kolaborativni dijagrami  Konstrukcije toka 

Modularnost

40  

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

41  

Referenciranje dijagrama : User

: User Manager  

login(name,pass)

ref

: Policy

 

Login Handling(user,pass) : bool

Referenca Gate

Do something…

Do something …

42  

Referenciranje dijagrama Ime dijagrama

sd Login Handling : User Manager

: UserAccount

loop

Input poruka

login(name,pass)

[for each UserAccount] UserAccount] cName -= getUseNamer()

opt

Output poruka

[cName = name] isInSystem(true) true

false

43  

Primer: Funkcionisanje bankomata

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

• Sistem vraća poruku o validnosti ATM sistemu  sistemu 

• ATM nudi korisniku opcije • Korisnik bira podizanje novca   novca

• ATM zahteva unos iznosa

44  

Lo gon scena s cenario rio Primer: Logon • Klije Klijent nt zahte zahteva va Logo Logon n (reque (requestL stLogo ogon() n())) sa SecurityLogon interfejsa koji zatim prikazuje Logon ekran (displayLogonScreen()) • Kl Klije ijent nt unosi unosi nam name, e, pass pass u Log LogonS onScre creenen-u 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 n aziv postoji u bazi (isInDatabase(name) u Sistemu (System) Sistem vraća tip korisnika (userType)  (userType)    AccountDB vraća info o validnosti (valid)  (valid)   Interfejs SecurityLogon prikazuje poruku o grešci (displayErrorMessage()) Ponovo otvara tj. prikazuje Logon ekran (displayLogonScreen())

• Se Secu curi rityL tyLog ogon on prov prover erav ava a uslov uslov:: Ukoliko je [userType==admin] onda prikazuje Admin (displayAdmin()) Ukoliko je [userType==user] onda prikazuje user-a (displayUser())

45  

datak: k: sport sp ortska ska kladionica kladion ica Zadata 

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.  kvota. 

46  

Rešenje šenje - sekvenci sekvencijalni jalni dij dija agr gra am Re

47  

Rešenje šenje kol kola abo borativn rativnii dijagram dij agram Re

48  

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 Ukolik o 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  

 

50  

 

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF