Professional Documents
Culture Documents
IDENTIFIKACIJA SPECIFIKACIJA
OSNOVNIH FORMATA
MODULA
DEFINISANJE DEFINICIJA
KOMUNIKACIONIH STRUKTURE
PUTEVA ZA PRENOS PODATAKA
PODATAKA IZMEĐU
MODULA
DEFINISANJE
UNUTRAŠNJE
STRUKTURE
POJEDINAČNIH
MODULA
Specifikacija dizajna - 2
SPECIFIKACIJA
ZAHTEVA
(SPECIFIKACIONI
DOKUMENT)
SPECIFIKACIJA
DIZAJNA
DEKOMPOZICIJA (DESIGN SPECIFICATION)
ILI
KOMPOZICIJA MODELING-IN_THE_LARGE
IMPLEMENTACIJA
(MODELING-IN-THE-
SMALL)
Specifikacija dizajna - 3
• KLASE
• OBJEKTI
• VEZE
UML Specifikacija dizajna – (2)
• DIJAGRAMI STANJA
• DIJAGRAMI SEKVENCE
• DIJAGRAMI SARADNJE
• DIJAGRAMI AKTIVNOSTI
UML Specifikacija dizajna – (3)
• Objekat
• Klasa
• Atribut
• Operacija
• Interfejs (Polimorfizam)
• Relacije
Šta je Objekat?
• Neformalno, objekat
pretstavlja neki entitet
bilo fizički,Formalna definicija objekta
konceptualni ili
Objekat pretstavlja koncept, apstrakciju ili
logički(software)
stvar sa jasnim granicama i značenjem sa
Kamion
– Fizički entitet
aspekta neke primene.
Objekat je nešto što poseduje:
– Konceptualni entitet
– Stanje Hemijski proces
– Ponašanje
– Identitet
– Softverski entitet Jednostruko spregnuta lista
Osnovni koncepti objektne paradigme
• Objekat
• Klasa
• Atribut
• Operacija
• Interfejs (Polimorfizam)
• Relacije
Šta je klasa?
• Klasa je opis grupe objekata koji poseduju skup
zajedničkih: svojstava (atributa), ponašanja
(operacije/metode), veza i značenja.
– Objekat je INSTANCA neke klase
Ponašanje
writeCode
getProject
deliverProject
Osnovni koncepti objektne paradigme
• Objekat
• Klasa
• Atribut
• Operacija
• Interfejs (Polimorfizam)
• Relacije
Šta je Atribut?
Klasa Objekat
Atribut je imenovano svojstvo klase koje
Atribut opisuje skup
Vrednost vrednosti koje instance
atributa
posmatrane klase :PonudaKurseva
mogu poprimiti.
(Booch,1999) number = 101
startTime = 900
Atribut poseduje tip
PonudaKurseva koji =definiše
endTime 1100 tip
number njegovih instanci.
startTime
endTime Jedino objekat može promeniti vrednosti
:PonudaKurseva
svojih atributa. number = 104
startTime = 1300
Vrednosti atributa endTime
definišu stanje objekta.
= 1500
Atributi (nastavak.)
• Različiti objekti iste klase
UML predstava atributa
• Odeljak atributa (Attribute Compartment)
[vidljivost] ime [višestrukost] [:tip] [= početna vrednost]
[{lista vrednosti}]
[{promenljivost}]
changable – default
Kardinalitet 1. primitivni frozen – konstatna
(Boolean, String, Integer)
2. složeni addOnly – samo pri dodavanju
-semafor:Colour=‘crven’{‘žut’,’crven’,’zelen’}
Osnovni koncepti objektne paradigme
• Objekat
• Klasa
• Atribut
• Operacija
• Interfejs (Polimorfizam)
• Relacije
Šta je operacija (Metoda)?
• Operacija je IMPLEMENTACIJA SERVISA koji
se može zahtevati od strane bilo koje instance a
koji utiče na ponašanje objekta. (Booch, 1999)
• Operacija može biti:
– Upit (ne menja stanje objekta)
– Komanda (može da promeni stanje objekta)
Šta je Operacija?
PonudaKursa
Klasa
addStudent
deleteStudent
getStartTime
Operacija getEndTime
UML pretstava operacija
• Odeljak operacija (Operation Compartment)
[vidljivost] ime ([lista parametara]) [:tip rezultata] [{osobina}]
isQuiery Čista funkcija bez sporednih efekata.
parametar [,lista parametara]
sequential U datom objektu u jednom trenutku
postoji samo jedan upravljački tok.
parametar = [smer] ime: tip [=podrazumevana vrednost]
Oni koji pozivaju metodu moreju se
eksterno sinhronizovati.
{in, out, inout}
guarded Jedna operacija u jednom trenutku na
1. public (+) Svaki spoljnji klasifikator svakoj
može instanci
koristiti(objektu).
operaciju.
Sekvencijalnost je zagarantovana
2. protected (#) Svaki naslednik može koristiti
unutaroperaciju.
objekta!
3. private concurent
(-) Samo klasifikator Operacije
može koristiti su atomičke prirode.
operaciju.
Dozvoljeni su konkurentni pozivi iz
default = public paralelnih upravljačkih tokova ka
jednoj instanci klase.
UML predstava operacija-(2)
Toolbar
#currentSelection: Tool
#toolCount: Integer
+pozicija: Possition=“Up”
Primer
+draw(p:Possition)
specifikacije +pickItem(i:Integer)
operacija
+addTool(t: Tool)
+removeTool(t: Tool)
+getTool(): Tool
#chackOrphans)=:Boolean
-compact()
+restart() {guarded}
Osnovni koncepti objektne paradigme
• Objekat
• Klasa
• Atribut
• Operacija
• Interfejs (Polimorfizam)
• Relacije
Šta je Polimorfizam?
• Mogućnost skrivanja više različitih
implementacija iza jedinstvenog interfejsa.
interfejsa
Proizvođač B
Proizvođač A Proizvođač C
OO Princip:
Encapsulacija
Šta je interfejs?
• Interfejs pretstavlja skup metoda koje se
koriste za specificiranje servisa klase ili
komponente. (Booch, 1999)
• Interfejs je “ugovor”
ugovor između povezanih
servisa i skupa uslova koji moraju biti
zadovoljeni u cilju pružanja servisa.
Veza realizacije
Predstavljanje interfejsa
Kupa
Piramida
Ikonički
Telo Kocka
Kupa
<<interface>>
Telo
Kanonski Piramida
(Klasa/Stereotip) Draw
Move
Scale
Rotate Kocka
Osnovni koncepti objektne paradigme
• Objekat
• Klasa
• Atribut
• Operacija
• Interfejs (Polimorfizam)
• Relacije
Veze između Klasa i Objekata
• Asocijacija
– Agregacija
– Kompozicija
• Zavisnost
• Generalizacija
• Realizacija
Veze između Klasa i Objekata –(2)
• Koliko pojava date klase
Asocijacija opisuje grupu veza sa zajedničkom strukturom i
može biti vezano za jednu
semantikom (Osoba radi za Preduzeće) kod koje su svi učesnici
pojavu druge.
“SVESNI POSTOJANJA ONIH DRUGIH” DRUGIH tj. međusobno se
referenciraju. Asocijacija je obično dvosmerna
Imenovanje veza između klasa
asocijacije
1, 0..1, * , 1..*, n..m,k,r
koja opisuje skup mogućih veza na isti način nailikoji
(glagol klasa opisuje
imenica)
skup potencijalnih instanci (objekata).
Uloga klase u
UML simbolika: asocijaciji (opciono)
<<naziv asocijacije K1-K2>>
Klasa K1 Klasa K2
<<Uloga K1>> <<UlogaPredstavlja
K2>> jedan atribut ili
skup atributa referencirane
<<kvalifikator>> klase pomoću kojih se iz
<<kardinalitet K1>> skupa
<<kardinalitet K2>> instanci klase izdvaja
podskup koji ima vrednost
<<naziv asocijacije K2-K1>> kvalifikatora!
Primer 1.
• Modeluje semantičku vezu između klasa.
Naziv asocijacije
Asocijacija
Klasa
Naziv uloge
Professor Univerzitet
Zaposleni Poslodavac
Primer 2: Kvalifikovana asocijacija
Kvalifikator /Ključ
Asocijacije –(1)
• Obične (normalne)
• Rekurzivne - (povezuju različite instance iste klase)
• Refleksivne – (povezuju iste instance)
• Kvalifikovane – (ako je definisan kvalifikator)
• Uređene – (ako postoji eksplicitno uređenje - sortiranje)
• Agregacija modeluje vezu čije je značenje “deo-celina”
celina ili
“deo-od”
od preko koje su objekti koji predstavljaju delove
celine povezane sa objektom koji predstavlja celinu. Delovi
ne dele sudbinu celine!
• Kompozicija modeluje vezu čije je značenje “deo-celina”
celina
ili “deo-od”
od preko koje su objekti koji predstavljaju delove
celine povezane sa objektom koji predstavlja celinu. Delovi
moraju da dele sudbinu celine!
Agregacija i Kompozicija
Agregacija:
Klasa K1 Klasa K2
Kompozicija:
Klasa K1 Klasa K2
Primer:
Kardinalitet
Navigacija
Kompozicija
Agregacija
Asocijativna klasa
Veze između Klasa i Objekata-(3)
UML simbolika:(zavisnost)
Klasa K1 Klasa K2
labela <<stereotip>>
Primeri veza zavisnosti
Klijent Server
Komponenta
Klasa
Klijent
Paket Server
Veza
zavisnosti
Veza
zavisnosti
KlijentPaket ServerPakete
Primer veza zavisnosti –(2)
Veze između Klasa i Objekata-(4)
UML simbolika:(rafinacija)
Klasa K1 Klasa K2
(specifikacija zahteva) labela <<stereotip>> (specifikacija dizajna)
Relacije: Realizacija
• Jedan klasifikator služi kao “ugovor”
ugovor koji drugi
klasifikator prihvata da poštuje.
poštuje
• Postoji između:
– Interfejsa i klasifikatora koji ih realizuju
– Slučajeva korišćenja i saradnje klasa koja ih realizuje.
Klasa Komponenta
Podsistem
Interfejs Interfejs
Interfejs
Vodeća forma
Kanonski oblik
Account
balance
name
Superklasa number
(roditelj) Withdraw()
CreateStatement()
Veza
generelizacije
Checking Savings
Potomci
Primer: Višestruko nasleđivanje
• Klasa može da nasleđuje više drugih
Letelica Životinja
ZemaljskoVozilo
vlasnik Osoba
Suoperklasa weight
(Roditelj) licenseNumber 0..* 1
register( )
generalizacija
sadrži *
draw(): {abstract}
Linija
{abstract}
draw(): {abstract}
draw(): draw():
Luk Duz
draw(): draw():
Primer-1: JAVA implementacija-(2)
1 +Selektovanje() : void
Grafički objekat Poseduje ulaze/izlaze 1..*
#Tačka1 :TPoint
Linijski objekat Ulaz/izlaz
#Tačka2 :TPoint
#Selektovan? : bool
+Iscrtavanje() : void +Iscrtavanje() : void
#Pomera se? : bool
+Pomeranje() : void +Pomeranje() : void
+Iscrtavanje() : void
+Selektovanje() : void +Selektovanje() : void
+Pomeranje() : void 1
+Selektovanje() : void Veza
Početni objekat
1 0..*
Krajnji objekat
+Iscrtavanje() : void
0..1
+Pomeranje() : void
+Selektovanje() : void
Vežbanja
Dekompozicija i modularnost
Karakteristika složenih sistema je postojanje
unutrašnje strukture do koje se dolazi
dekompozicijom.
• Karakteristika rešenja je postojanje jasno definisanih
celina (modula) koji kooperiraju u cilju implementacije
funkcija sistema.
Arhitektonski dizajn - 3
1. Dekompozicija bazirana na modulima:
•U sklopu ovog pristupa konstrukcija se bazira na
alokaciju funkcija komponentama počevši od
najvišeg nivoa apstrakcije pa do elemantarne
(atomičke) funkcionalnosti.
SMANJENJE SLOŽENOSTI –
pojednostavljivanje strukture softverskog
sistema i strukture podataka do nivoa
potpune funkcionalnosti uz minimalnu
složenost.
Predstavlja izuzetan izazov za fazu
konstrukcije softvera u kojoj često dolazi do
‘’infiltriranja’’
infiltriranja i kumuliranja
neracionalnosti i neefikasnosti kao posljedica
ad-hok intervencija.
intervencija
Objektni model softverskog sistema
LokalizacijaProizvoda PersonalizacijaProizvoda
SoftverskiProizvod
{abstract}
KonfiguracijaProizvoda
*
{abstract}
*
<<call>>
- GetConfig () : int
* ElementSoftverskogProizvoda
{abstract}
* RukovalacIzuzetcima
{abstract}
KompozicijaEementa <<call>>
RukovalacGreskama
<<call>> {abstract}
GUIelement
{abstract}
RepozitorijumElement
Polje Repozitorijum
{abstract}
PrimarniProzor <<Implementira>> + GetResultSet () : void
{abstract} + SaveResultSet () : void
Forma
{abstract}
Meni Tabela
{abstract} {abstract}
KomandnoDugme
{abstract}
Toolbar
{abstract}
PodlogaZaCrtanje
{abstract}
Opšti ciljevi dizajna softverskih sistema - 1
3. STANDARDIZACIJA, INTEGRACIJA,
KONZISTENTNOST i PRENOSIVOST
Ako sistem ne poseduje gornje osobine ostali
elementi nisu bitni!
1.KONZISTENTNOST(consistency). Pod
2. konzistentnošću u ovom slučaju podrazumevamo
poštovanje standarda i uobičajenog načina na koji
korisnik obavlja ''posao''. Važno je da GUI dizajner nije
previše inventivan kada je korisnički interfejs u pitanju i
da striktno poštuje dva osnovna aspekta konzistentnosti
GUI aplikacija:
usklađenost sa GUI standardima isporučioca
(npr. Microsoft Windows 'look-and-feel' , Apple Macintosh
menu-standard i sl.)
• usklađenost sa konvencijama imenovanja,
označavanja i drugim GUI-elementima i standardima
interno razvijenim u sklopu organizacionog sistema
korisnika.
Osnovni postulati kvalitetnog GUI-dizajna - 3
3. PERSONALIZACIJA i PODEŠAVANJE
(personalization and customization). Pod
personalizacijom se podrazumeva podešavanje
(customization) u skladu sa ličnim afinitetima
korisnika, dok se pod podešavanjem u opštem
smislu podrazumeva administrativna procedura ua
prilagođavanje softvera različitim grupama korisnika.
Personalizacija – reorganizacija kolona u sklopu
browser-a i sačuvavanje podešavanja u
personalnom profilu. Podešavanje – ''lagani (light)''
režim rada za početnike i ''full (potpuni)'' režim rada
za iskusne korisnike.
Osnovni postulati kvalitetnog GUI-dizajna - 4