T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa
Upcoming SlideShare
Loading in...5
×
 

T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa

on

  • 938 views

 

Statistics

Views

Total Views
938
Views on SlideShare
938
Embed Views
0

Actions

Likes
0
Downloads
11
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

 T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa Presentation Transcript

  • Definisanje strukture sistema korišćenjem UMLdijagrama klasaAnaliza i specifikacija informacionih sistema dr Zoran Jeremić zoran.jeremic@gmail.com 1
  • Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 2
  • 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
  • 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
  • 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
  • Primer iz arhitekture: Model strukturne arhitekture Planovi za gradski centar Filadelfije(1953) 6
  • Primer iz arhitekture: Modelovanje ponašanja Modeli ponašanja Filadelfijskog saobraćaja (1953) 7
  • Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 8
  • Objektno-orjentisani pristup Objekti su abstrakcija entiteta iz realnog sveta ili sistema Realni domen Domen modela autobus modeluje vozilo automobil modeluje solja modeluje 9
  • Klase Klasa je šablon za stvarne instance u memoriji Produt serialNumber name price Ime klase buy() display() Atributi Operacije 10
  • 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
  • Atributi - Primeri + isLightOn : boolean = false - numOfPeople : int mySport + passengers : Customer[0..10] - id : long {readOnly} 12
  • 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
  • Operacije - Primeri + isLightOn() : boolean + addColor(newColor : Color) # convertToPoint(x : int, y : int) : Point - changeItem([in] key : string, [out] newItem : Item) : int 14
  • 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
  • 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
  • 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
  • Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 18
  • 19
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 32
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Terminologija Relacija “realizuje”: Class1 «interface» ISomething method1() method2() Class2 39
  • 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
  • Sadržaj Uvod Klase, atributi i operacije Relacije Generalizacija Uputstvo za efikasno modelovanje klasa 41
  • 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
  • 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
  • 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š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
  • 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
  • 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
  • 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 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
  • Osnovne pretpostavke Pristup klasama  Korisnici mogu izvršiti bilo koju javnu (public) operaciju klase.  Public metode treba koristiti samo kada je to potrebno. 51
  • 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
  • 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
  • Zadatak: Napraviti dijagram klasa za dati Use casedijagram 54