T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

1,340 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,340
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija

  1. 1. Modelovanje ponašanja korišćenjem UMLdijagrama interakcijeAnaliza i specifikacija informacionih sistema dr Zoran Jeremić zoran.jeremic@gmail.com 1
  2. 2. Sadržaj Uvod Sekvencijalni dijagrami Kolaborativni dijagrami Konstrukcije toka Modularnost 2
  3. 3. Proces razvoja sistema Faza Aktivnost Izlaz BiznisZapočinjanje Utvrđivanje poslovnih potreba dokumenta Intervjuisanje stejkholdera, istraživanje OrganizovanaAnaliza sistemskog okruženja dokumentacijaDizajn i Analiza inženjerskih aspekata sistema, Logički modelspecifikacija definisanje koncepata sistema sistema Programiranje, testiranje jedinica, ProverljivImplementacija integrisanje, dokumentovanje sistem ResultatiTestiranje & Integrisanje svih komponenti, verifikacija, testiranja,Integracija validacija, instalacija, obuka funkcionalan sistem Popravljanje bagova, modifikacije,Održavanje adaptacija Verzije sistema 3
  4. 4. Slanje poruka Kada jedan objekat šalje poruku drugom objektu, on poziva operaciju u pozvanom objektu. 4
  5. 5. 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
  6. 6. 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
  7. 7. Modelovanje ponašanjaRedosled akcija Preduslovi Efekti• Kako se kreira • Kada se izvršavaju • Koji je rezultat redosled operacija operacije operacija• Putanje izvršenja: • Kako rezultat • Kako operacije – Sekvencijalne operacija utiče na menjaju stanje – Paralelne izvršenje sistema – Petlje Send message [if getStatus == err] Resend Resend Get Status Adds a new msg Message queue 7
  8. 8. Vrste dijagrama interakcije Postoje dva tipa dijagrama interakcije:  Dijagram sekvence: • Naglašava redosled (sekvencu) ili konkurentnost interakcije  Dijagram kolaboracije: • Naglašava interakciju objekata 8
  9. 9. Sadržaj Uvod Sekvencijalni dijagrami Kolaborativni dijagrami Konstrukcije toka Modularnost 9
  10. 10. 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
  11. 11. 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
  12. 12. Smešan primer iz stvarnog života 12
  13. 13. Smešan primer: sekvencijalni dijagrami 13
  14. 14. Smešan primer: sekvencijalni dijagrami 14
  15. 15. Smešan primer: dijagram kolaboracije 15
  16. 16. Kreiranje sekvencijalnog dijagrama Sekvencijalni dijagrami predstavljaju ponašanje slučaja upotrebe koristeći kao osnovu klase. Use Case 1 Class C Class A Use Case 3 Use Case 2 Class D Class B Sekvenca = Objekti + poruke 16
  17. 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)17
  18. 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.18
  19. 19. 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  Različiti vrhovi strelica se koriste za normalne i konkurentne (asinhrone) metode19
  20. 20. Različite vrste poruka Sinhrona poruka izaziva da pozvana operacija suspenduje izvršavanje dok jojSinhrona poruka 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 Asinhrona poruka oba objekta mogu da vrše obradu istovremeno. Povratna poruka 20
  21. 21. Sinhrone i asinhrone poruke Nested Flow Asynchronous Flow manager sensor eye sensor manager alarm check unknown check ring operate log Primer Primer 21
  22. 22. Ž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
  23. 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 Nesting23
  24. 24. Sekvencijalni dijagrami objekti sd Product Buying Imedijagrama p : Product : ShooppingCart customer display() poruka getPrice()aktivacija addProduct (p) (fokus checkout ()kontrole) Linija života 24
  25. 25. Kontrola objekata obj1 : Class1 obj2 : Class2 user operate() Kreiranje objekata do (…) create (…) : Class3 Povratna poruka foo() Poruke samom sebi Destrukcije objekata 25
  26. 26. Odgovarajući dijagram klasa Gde god se razmenjuju poruke između instanci Zavisnost se može klasa, postoji i zavisnost zameniti između tih klasa asocijacijama, agregacijama i slično. Primer 26
  27. 27. Sekvence i slučajevi upotrebe p : Product : ShooppingCart customer display() getPrice() addProduct (p) checkout () create (…) : Order Vidljivi deo Skriveni deo 27
  28. 28. Atributi poruke[sequence-expression][return-value :=] [message-name] [(argument-list)] C3.1: res := getLocation (fig) Broj sekvence Ime poruke Lista argumenata Povratna vrednost 28
  29. 29. Sadržaj Uvod Sekvencijalni dijagrami Kolaborativni dijagrami Konstrukcije toka Modularnost 29
  30. 30. 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
  31. 31. Kolaborativni dijagram 1: odlazak 2: biras model prodavnica model 6: kupovina 4: vraca model : kupac 5: vrati cipele 3: biras broj broj 31
  32. 32. Kolaborativni dijagram 32
  33. 33. Sadržaj Uvod Sekvencijalni dijagrami Kolaborativni dijagrami Konstrukcije toka Modularnost 33
  34. 34. Konstrukcije toka If Loop ElseRepeat Jump Kada kreiramo scenario, koje alternative su nam potrebne? 34
  35. 35. Opcije msg : Message : Database Fragment opt [msg.status=confirmed] Uslov archive(msg) Do something... Koristi se za modelovanje jednostavnih opcionih blokova. Ima jedan operand i nema “else” opciju. 35
  36. 36. Alternative msg : Message : Database : Admin alt [msg.status=confirmed] Alternativa archive(msg) Grupa fragmentaUslov [msg.status=error] notify(msg.getID()) [else] wait() Regioni izvršenja. Najviše Else jedan će se izvršiti. uslov (opcioni) 36
  37. 37. Petlja : OS : Folder : File loop [for each Folder]Fragment Display()petlje loop [for each File] Display()UslovUgnježdenifragmentpetlje 37
  38. 38. Prekidi (break) : User : User Manager : Policy isLooged = login(name,pass) break Ukoliko je uslov ispunjen, fragment [¬isLooged] addBadLogin(name) prekida se izvršava, a ostatak sekvence se ignoriše. Do something… Do something … 38
  39. 39. Primeri definisanja uslova [for each Object] [5] [i=1..5] [status = okay] Nepostojanje uslova znači beskonačnu petlju 39
  40. 40. Sadržaj Uvod Sekvencijalni dijagrami Kolaborativni dijagrami Konstrukcije toka Modularnost 40
  41. 41. MODULARNOST Potrebno je pronaći načine za kreiranje modularnih scenarija 41
  42. 42. Referenciranje dijagrama : User : User Manager : Policy login(name,pass) ref Login Handling(user,pass) : bool Referenca Do something… Gate Do something … 42
  43. 43. Referenciranje dijagrama sd Login HandlingImedijagrama : User Manager : UserAccount loop login(name,pass)Input [for each UserAccount]poruka cName -= getUseNamer() optOutputporuka [cName = name] isInSystem(true) true false 43
  44. 44. 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
  45. 45. Primer: Logon scenario• 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()) 45
  46. 46. 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
  47. 47. Rešenje - sekvencijalni dijagram 47
  48. 48. Rešenje kolaborativni dijagram 48
  49. 49. Primer: Slučaj upotrebe „Upis godine“ u IS studentskesluž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
  50. 50. 50
  51. 51. 51

×