Definisanje strukture sistema korišćenjem UMLdijagrama klasaAnaliza i specifikacija informacionih sistema                 ...
Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa              ...
Proces razvoja sistema      Faza                     Aktivnost                          Izlaz                             ...
Logički model sistema Logički model sistema opisuje šta je sistem ili šta sistem  mora da radi – ne kako će sistem biti i...
Pristupi modelovanju Pristupi modelovanju se razlikuju jedan od drugog na  osnovu viđenja sveta (sistema)Strukturni model...
Primer iz arhitekture: Model strukturne arhitekture             Planovi za gradski centar Filadelfije(1953)               ...
Primer iz arhitekture: Modelovanje ponašanja           Modeli ponašanja Filadelfijskog saobraćaja (1953)                  ...
Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa              ...
Objektno-orjentisani pristup Objekti su abstrakcija entiteta iz realnog sveta ili sistema          Realni domen          ...
Klase Klasa je šablon za stvarne instance u memoriji                    Produt               serialNumber               n...
Atributi - Signatura [vidljivost] ime [višestrukost] [: tip] [=početna-vrednost]  [{osobina-string}] vidljivost: prava p...
Atributi - Primeri + isLightOn : boolean = false - numOfPeople : int mySport + passengers : Customer[0..10] - id : lo...
Operacije - Signatura [vidljivost] ime [(lista-parametara)] [: tip-povratne-  vrednosti] [{osobina-string}] Operacija mo...
Operacije - Primeri + isLightOn() : boolean + addColor(newColor : Color) # convertToPoint(x : int, y : int) : Point - ...
Vidljivost public (+) – spoljašnji objekti mogu pristupiti članu private (-) – samo unutrašnje metode mogu pristupiti  č...
Potpuni prikaz klase                            <<abstract>>                               Window    Stereotip            ...
Objektni dijagram U dijagramu objekata, modeluju se instance klasa        Produt                          Apple Ipod : Pr...
Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa              ...
19
Relacije Relacija je šablon za konekciju između dve instance. Relacije su organizovane u hijerarhiju:    Zavisnost: uka...
Asocijacije Objekti na obe strane asocijacije mogu pronaći jedan  drugog Relacija je konzistentna vremenu (osim ako je  ...
Navigacija Ukoliko je asocijacija usmerena, poruke se mogu  prosleđivati samo u tom smeru. Ukoliko asocijacija nema smer...
Imena uloga Imena mogu biti dodata na svaki kraj asocijacije Obezbeđuje bolje razumevanje značenja asocijacije Posebno ...
Ograničenja Ograničenja su jednostavna svojstva asocijacija, klasa i  mnogih drugih elemenata u UML-u Definiše ograničen...
Ograničenja    Project                                         Outsource         *                                        ...
Ograničenja Ograničenja se mogu primeniti na skoro svaki element u  UML dijagramima, korišćenjem:    Prirodnog jezika   ...
Zavisnost Obeležena isprekidanom linijom Najopštija relacija između klasa Ukazuje da objekat utiče na drugi objekat    ...
Zavisnost Zavisnost je najapstraktniji tip relacija. Svojstva:    Zavisnost je uvek usmerena (ako određena klasa zavisi...
Agregacija “Celina-deo” relacija između klasa. Sastavljanje klase iz drugih klasa.    Kombinovana sa “many” – spajanje ...
Kompozicija Kompozicija je jača forma agregacije Sadržani objekti žive i umiru unutar kontejnera Kontejner kreira i uni...
Kompozicija vs. AgregacijaAgregacija                         KompozicijaObjekat-deo može biti deljen       Objekat-deo je ...
Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa              ...
Generalizacija – definicije                                                           Super Class Super klasa (Osnovna kl...
Generalizacija – prednosti                                                      GraphicComponent Modularnost:            ...
Uputstva za generalizaciju Pažljivo posmatrajte slična svojstva između objekata, jer  ponekad ona nisu tako očigledna    ...
Uputstva za generalizaciju                                            Resource      ID i name su                          ...
Abstraktne klase Klasa koja nema direktne instance   Obeležava se                    Content   italic imenimaIli stereoti...
Interfejsi Interfejs sakriva unutrašnje ponašanje klase i njena  obeležja. To je zapravo skup pravila koja svaka klasa k...
Terminologija Relacija “realizuje”:              Class1         «interface»                            ISomething        ...
Notacija interfejsa                            «interface»                         ICommonObject                         C...
Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa              ...
Kako modelovati?   Odozdo-gore proces                        Odozgo-dole procesZapočinje stavljanjem svih klasa na       Z...
Odozgo-dole metodologija                                                               Credit card     Analiza opsega     ...
CRC kartice CRC kartice:    Class, Responsibility, Collaboration                                            44
Normalizacija                45
Normalne forme u UML klasama Ne-normalizovan model može imati sledeće probleme:    Podaci su međusobno povezani    Tešk...
Prva normalna forma Klasa je u 1NF kada je određeno ponašanje (kolekcija  sličnih atributa) zahtevano od određenog atribu...
Druga normalna forma Klasa je u 2NF kada je u 1NF i kada je zajedničko  ponašanje koje koristi više od jedne instance kla...
Treća normalna forma Sva svojstva moraju zavisiti samo od srži klase                                                    49
Uputstvo za kreiranje klasa Identifikovanje klasa    Vrlo slično identifikovanju repozitorijuma u dijagramima toka     p...
Osnovne pretpostavke Pristup klasama    Korisnici mogu izvršiti bilo koju javnu (public) operaciju klase.    Public met...
Pronalaženje objekata Objekti se mogu naći, pretraživati ili locirati bez ikakve  agregatne klase.                       ...
Uputstva – Modelovanje učesnika Najčešća greška je modelovanje učesnika kao klasa Treba zapamtiti -    Učesnici interag...
Zadatak: Napraviti dijagram klasa za dati Use casedijagram                                                     54
Upcoming SlideShare
Loading in …5
×

T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa

1,126 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,126
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa

  1. 1. Definisanje strukture sistema korišćenjem UMLdijagrama klasaAnaliza i specifikacija informacionih sistema dr Zoran Jeremić zoran.jeremic@gmail.com 1
  2. 2. Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 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. Logički model sistema Logički model sistema opisuje šta je sistem ili šta sistem mora da radi – ne kako će sistem biti implementiran. Model može sadržati:  Modele podataka (npr. dijagram klasa)  Modele procesa (npr. sekvencijalni dijagram)  Modele interakcije korisnika (npr. dijagrami slučajeva upotrebe) Opisi su realizovani korišćenjem jezika za modelovanje  Formalnog (ili delimično formalnog)  Razumljivog (vizuelnog ili tekstualnog) 4
  5. 5. Pristupi modelovanju Pristupi modelovanju se razlikuju jedan od drugog na osnovu viđenja sveta (sistema)Strukturni modeli Modeli ponašanjaFokusirani na opisivanju Fokusirani na dinamicistrukture sistema – elementi sistema: kako se sistemkoji su fiksni i ostaju menja tokom vremenanepromenjeni tokom vremena 5
  6. 6. Primer iz arhitekture: Model strukturne arhitekture Planovi za gradski centar Filadelfije(1953) 6
  7. 7. Primer iz arhitekture: Modelovanje ponašanja Modeli ponašanja Filadelfijskog saobraćaja (1953) 7
  8. 8. Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 8
  9. 9. Objektno-orjentisani pristup Objekti su abstrakcija entiteta iz realnog sveta ili sistema Realni domen Domen modela autobus modeluje vozilo automobil modeluje solja modeluje 9
  10. 10. Klase Klasa je šablon za stvarne instance u memoriji Produt serialNumber name price Ime klase buy() display() Atributi Operacije 10
  11. 11. Atributi - Signatura [vidljivost] ime [višestrukost] [: tip] [=početna-vrednost] [{osobina-string}] vidljivost: prava pristupa atributu +, -, # višestrukost: koliko instanci atributa postoji:  middleName [0..1] : String, phoneNumber [1..*] Tip: tip atributa (integer, String, Person, Course) početna vrednost: podrazumevana vrednost atributa  salary : Real = 10000, position : Point = (0,0) svojstvo: predefinisana svojstva atributa  Changeable, readOnly, addOnly, frozen (C++: const, Java: final) 11
  12. 12. Atributi - Primeri + isLightOn : boolean = false - numOfPeople : int mySport + passengers : Customer[0..10] - id : long {readOnly} 12
  13. 13. Operacije - Signatura [vidljivost] ime [(lista-parametara)] [: tip-povratne- vrednosti] [{osobina-string}] Operacija može imati nula ili više parametara od kojih svaka ima sintaksu:  [direction] name : type [=default-value]  Direction može biti: in (input paremtar – pozivalac ga ne može modifikovati), out (output parametar - nema ulazne vrednosti. finalna vrednost je dostupna pozivaocu), inout (ulazni parametar koji se može modifikovati) Svojstvo:  {leaf} – konkretna operacija  {abstract} – ne može se pozivati direktno  … 13
  14. 14. Operacije - Primeri + isLightOn() : boolean + addColor(newColor : Color) # convertToPoint(x : int, y : int) : Point - changeItem([in] key : string, [out] newItem : Item) : int 14
  15. 15. Vidljivost public (+) – spoljašnji objekti mogu pristupiti članu private (-) – samo unutrašnje metode mogu pristupiti članu protected (#) – samo interne metode, ili metode specijalizovanih objekata mogu pristupiti članu Produt Treba težiti da se očuva najmanja moguća vidljivost - serialNumber - name # price + buy() + display() - swap(x:int,y: int) 15
  16. 16. Potpuni prikaz klase <<abstract>> Window Stereotip {transient Ograničenja status=tested} +size:Area = (100,100) #visibility:Boolean = invisible +default-size:Rectangle #maximum-size:Rectangle -xptr: XWindow +display () +hide () +create () -attachXWindow(xwin:Xwindow*) 16
  17. 17. Objektni dijagram U dijagramu objekata, modeluju se instance klasa Produt Apple Ipod : Product serialNumber name Apple IMac : Product price In runtime name = “IMac 1C” buy() price = 1456 $ display() serialNumber = 184934 Sony Vaio : Product name = “Vaio Portable” price = 2999 $ serialNumber = 113234 Dijagram klasa Objektni dijagram 17
  18. 18. Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 18
  19. 19. 19
  20. 20. Relacije Relacija je šablon za konekciju između dve instance. Relacije su organizovane u hijerarhiju:  Zavisnost: ukazuje na relacije između Dependency klasa u vreme izvršenje  Asocijacije: postojane relacije  Kompozicija: celina-deo veze Association Composition Aggregation 20
  21. 21. Asocijacije Objekti na obe strane asocijacije mogu pronaći jedan drugog Relacija je konzistentna vremenu (osim ako je uklonjenja) Produt Order serialNumber orderID name * * date price includes checkout() buy() VišestrukostaddProduct(Product p) display() Ukazuje na kardinalnost clearAll() •1:1 – podrazumevano Ime + smer čitanja •3 – tačno 3 objekta •* (or n) - neograničeno •1..* - 1 do beskonačno •3..9 – 3 do 9 21
  22. 22. Navigacija Ukoliko je asocijacija usmerena, poruke se mogu prosleđivati samo u tom smeru. Ukoliko asocijacija nema smerove, onda je definisana kao dvosmerna asocijacija, a poruke se mogu prosleđivati u oba smera. Podrazumevano je da su sve relacije usmerene, osim ako zahtevi ne diktiraju dvosmerne relacije. Folder File Zbog čega je usmerena? Na primer, ako želimo da znamo fajlove svakog foldera. Ipak, nemamo zahtev da znamo folder svakog fajla. 22
  23. 23. Imena uloga Imena mogu biti dodata na svaki kraj asocijacije Obezbeđuje bolje razumevanje značenja asocijacije Posebno je značajna u samo-asociranim klasama. Worker * 1..* 0..1 Person Company employee employer 0..1 Manages Manager 23
  24. 24. Ograničenja Ograničenja su jednostavna svojstva asocijacija, klasa i mnogih drugih elemenata u UML-u Definiše ograničenja koja implementatori moraju da zadovolje Window Ograničenja length atributa width {0.8 ≤length/width≤1.5} 24
  25. 25. Ograničenja Project Outsource * * Task {xor} Committee memberOf {subset} * chairOf * bossSamo jedna od asocijacija može Employee 0..1postojati za datu instancu salary(značenje “or”) * {salary < boss.salary} 25
  26. 26. Ograničenja Ograničenja se mogu primeniti na skoro svaki element u UML dijagramima, korišćenjem:  Prirodnog jezika  Matematičke notacije  OCL (Object Constraint Language) Iskazi:  nepromenljive: interest > 3%  Preduslovi: pre izršenja pozajmica(), prodaja > 5,000$  Posledice: nakon izvršenja pozajmica(), periodOtplate= 1 or 10 26
  27. 27. Zavisnost Obeležena isprekidanom linijom Najopštija relacija između klasa Ukazuje da objekat utiče na drugi objekat Accounting SecurityControl System <<creates>> <<modifies>> AccountingSystem kreira Receipt objekat Reciept Order 27
  28. 28. Zavisnost Zavisnost je najapstraktniji tip relacija. Svojstva:  Zavisnost je uvek usmerena (ako određena klasa zavisi od druge, to ne znači da važi i obrnuto).  Zavisnost nema kardinalnost. Ako instance dve klase šalju poruke jedna drugoj, ali nisu međusobno povezane, onda je zavisnost odgovarajuća relacija. Tipovi:  «call»  «create» 28
  29. 29. Agregacija “Celina-deo” relacija između klasa. Sastavljanje klase iz drugih klasa.  Kombinovana sa “many” – spajanje klase od nekoliko instanci te klase Word Processing Document Author fileName Permission * * * Picture Folder name 29
  30. 30. Kompozicija Kompozicija je jača forma agregacije Sadržani objekti žive i umiru unutar kontejnera Kontejner kreira i uništava sadržane objekte Window Operating close() System move() 0..2 1 Slider Header Panel 30
  31. 31. Kompozicija vs. AgregacijaAgregacija KompozicijaObjekat-deo može biti deljen Objekat-deo je uvek deoizmeđu više objekata-celina jednog objekta-celine 0..4 * * category document Window FrameObjekti-delovi mogu postojati Objekti-delovi postoje samonezavisno (i.e., kardinalnost kao deo objekta-celine. Kada jemože biti 0..*) objekat-celina uništen, i objekti- delovi su uništeni.Objekat-celina nije potpuno Objekat-celina je odgovoran iodgovoran za objekat-deo kreira ili uništava objekte- delove
  32. 32. Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 32
  33. 33. Generalizacija – definicije Super Class Super klasa (Osnovna klasa)  Obezbeđuje zajedničke funkcionalnosti i članove Podklasa (Izvedena klasa) …  Nasleđuje sve atribute i operacije super klase  Može dodati nove operacije i atribute. Subclass  Može proširiti ili promeniti ponašanje super klase navođenjem svoje definicije iste metode (polimorfizam). 33Uvod | Klase | Relacije | Generalizacija | Uputstva
  34. 34. Generalizacija – prednosti GraphicComponent Modularnost: x : int y : int  Eliminiše detalje paint() repaint()  Nalazi zajedničke karakteristike između klasa  Definiše hijerarhije Višestruka upotreba: Button Image caption : String picture : File  Omogućava specijalizovanje stanja i ponašanja press() paint() ImageButton Polimorfizam clickImage() Višestruko nasleđivanje 34
  35. 35. Uputstva za generalizaciju Pažljivo posmatrajte slična svojstva između objekata, jer ponekad ona nisu tako očigledna User Interface updateName(...) Šta je updateDesc(...) problem ovde? Document Product Order Worker id long : id long : * id long : id long : *|includes name String : name String : name String : name String : desc String : desc : String desc String : desc String : subject Subject : availability int : date Date : Salary Float : workYears int : getCategory() : getCategory() : * Category Category Done by } * * * * * Category name String : importance int : 35
  36. 36. Uputstva za generalizaciju Resource ID i name su User Interface zajednički za id long : name String : updateName(...) updateDesc(...) sve klase desc String : Asocijacija je Order Worker Product Document isto kao i Salary Float : availability int : subject String : svaki drugidate Date : Done by } * * workYears int : date Date : atribut includes } * * CategorizedResource Category * * getCategory() : name String : Category importance int : 36
  37. 37. Abstraktne klase Klasa koja nema direktne instance Obeležava se Content italic imenimaIli stereotipom <<abstract>>“abstract” Article Picture 1*.. has picture News Magazine Article Article 1*.. 37
  38. 38. Interfejsi Interfejs sakriva unutrašnje ponašanje klase i njena obeležja. To je zapravo skup pravila koja svaka klasa koja ga implementira, mora poštovati.Implementation Interface External Object Operation 1 Impl’ Operation 1 Operation 1 Declaration Operation 1 Operation 1 Operation 2 impl’ Operation 2 Operation 2 Declaration Data 38
  39. 39. Terminologija Relacija “realizuje”: Class1 «interface» ISomething method1() method2() Class2 39
  40. 40. Notacija interfejsa «interface» ICommonObject Client Application uniqueID : ID width : int height : int create()Realizacija: move() delete()Objekat display()garantuje da ćeizvršiti praviladefinisana uinterfejsu PowerPoint Equation Excel Document Document 40
  41. 41. Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 41
  42. 42. Kako modelovati? Odozdo-gore proces Odozgo-dole procesZapočinje stavljanjem svih klasa na Započinje od sistema kao celine,papir, a zatim se vrši njihovo a zatim se vrši njegovo deljenje nakombinovanje klase Product Configuration Purchase Catalogue Customer Shipping Process details Category Charging Order process Product spec Search engine results Credit data 42
  43. 43. Odozgo-dole metodologija Credit card Analiza opsega Catalogue validator Identifikovanje glavnih klasa Catalogue Order Customer Identifikovanje svojstava Order id, state... changeState() Identifikovanje metoda ship() Prerada i normalizacija Order State klasa id started, ended Order Business Generalizovanje klasa id Order Analiza : Order : Customer id = 18734 name = “cohen” 43
  44. 44. CRC kartice CRC kartice:  Class, Responsibility, Collaboration 44
  45. 45. Normalizacija 45
  46. 46. Normalne forme u UML klasama Ne-normalizovan model može imati sledeće probleme:  Podaci su međusobno povezani  Teško je pojedinačno upravljati elementima podataka Normalizacija:  Skup dizajnerskih strategija  Obezbeđuje slabo povezan dizajn Poreklo: relacione baze podataka  Ali u dijagramu klase nemamo primarne ključeve Ne-normalizovan model 46
  47. 47. Prva normalna forma Klasa je u 1NF kada je određeno ponašanje (kolekcija sličnih atributa) zahtevano od određenog atributa, smešteno u sopstvenu klasu 47
  48. 48. Druga normalna forma Klasa je u 2NF kada je u 1NF i kada je zajedničko ponašanje koje koristi više od jedne instance klase predstavljeno u sopstvenoj klasi 48
  49. 49. Treća normalna forma Sva svojstva moraju zavisiti samo od srži klase 49
  50. 50. Uputstvo za kreiranje klasa Identifikovanje klasa  Vrlo slično identifikovanju repozitorijuma u dijagramima toka podataka. Identifikujte elemente podataka i modelujte ih.  Razmišljajte o klasama koje upravljaju procesima. Ako su operacije previše komplikovane, možemo ih modelovati odvojeno.  Razmišljajte o učesnicima. Da li su sve njihove potrebe pokrivene postojećim operacijama. 50
  51. 51. Osnovne pretpostavke Pristup klasama  Korisnici mogu izvršiti bilo koju javnu (public) operaciju klase.  Public metode treba koristiti samo kada je to potrebno. 51
  52. 52. Pronalaženje objekata Objekti se mogu naći, pretraživati ili locirati bez ikakve agregatne klase. Ovo je dovoljno da bi Loan Service pristupio svim instancama klase Book 52
  53. 53. Uputstva – Modelovanje učesnika Najčešća greška je modelovanje učesnika kao klasa Treba zapamtiti -  Učesnici interaguju sa sistemom direktno i nije ih potrebno apriori predstavljati.  Ponekad, sistem čuva podatke o korisnicima, ali to ne znači da izvršavaju sve svoje akcije kroz ovu klasu. 53
  54. 54. Zadatak: Napraviti dijagram klasa za dati Use casedijagram 54

×