podsetnik za dijagram klasa.pdf
TRANSCRIPT
1
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
1. Kreiranje novog dijagrama klasa
Desni klik na postojeći model u Browser-u → New → Class diagram:
2. Korišćenje palete
Klasa
Interfejs (ne postoji kao
koncept u jeziku C++)
Generalizacija
(nasleđivanje)
Asocijacija
Zavisnost
Realizacija
(interfejsa)
Kompozicija
Agregacija
Veza sa unutraš-
njom klasom
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
2
3. Dijalozi za podešavanje osobina klase
3.1 Osnovni panel
Najvažniji parametri:
Name Deskriptivan naziv klase
Code Naziv klase koji se prenosi u programski kod
Comment Opis klase
Cardinality Predviđeni broj instanci klase: 0..1, 1..1, 1..*, *
Abstract Oznaka da je klasa apstraktna
Final Oznaka da je klasa poslednja u lancu nasleđivanja, odnosno da ne može
imati naslednike
Generate Oznaka da je klasa predviđena za generisanje koda na izabranom
programskom jeziku (uključuje se među objekte koji se generišu iz
modela kada se pokrene proces generisanja)
Visibility Vidljivost klase, označava kako je vide drugi objekti
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
3
3.2 Panel za dodatna podešavanja
Persistent Oznaka da je klasa perzistentna. Perzistentne klase su klase koje poseduju
metode za smeštanje svojih atributa na disk i učitavanje sa diska, pri
čemu “skladište” za smeštanje/učitavanje može biti datoteka ili baza
podataka. U okviru PowerDesigner-a, ukoliko je klasa označena kao
perzistentna, u okviru fizičkog modela baze podataka generiše se tabela
čija struktura odgovara datoj klasi.
Code Naziv tabele koja odgovara datoj klasi u fizičkom modelu. Ukoliko se ne
unese, za ime tabele se uzima Code klase iz osnovnog panela
Inner to Ime klase kojoj data klasa pripada, ukoliko se radi o unutrašnjoj klasi
neke druge klase
Association
class
Oznaka da klasa učestvuje u okviru veze asocijacije između druge dve
klase (pogledati odeljak 4.1.1)
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
4
3.3 Panel za uvid u predloženi programski kod klase
Ikonica za
osvežavanje
prikaza
Za C++ kod je razdvojen
na header i source kartice.
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
5
3.4 Panel za unos podataka o atributima klase
Najvažniji parametri:
Name Deskriptivan naziv atributa
Code Naziv obeležja koji se prenosi u programski kod
Data Type/
Domain
Visibility Vidljivost atributa (public, protected, private, package). Podrazumevana
vidljivost može se definisati u dijalogu Model Options.
Initial value Inicijalna vrednost atributa. Ukoliko je uneta, kod za dodelu inicijalne
vrednosti formira se u okviru konstruktora klase (C++), odnosno u odeljku
za definisanje atributa (Java).
S - Static Oznaka da je atribut static (vezan za klasu, a ne za instancu klase)
D - Display Oznaka da li se atribut prikazuje na dijagramu u okviru odeljka za atribute.
Tip atributa. Lista raspoloživih tipova zavisi od izabranog
programskog jezika. Podrazumevani tip može se definisati
u dijalogu Model Options.
Može se zameniti domenom (polje Domain). Domen
predstavlja tip podataka sa pridruženim informacijama o
proverama i perzistentnosti. Videti odeljak 3.4.2.
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
6
Pridruživanje Get (očitavanje
vrednosti) i Set metode
(postavljanje nove vrednosti)
izabranom atributu.
Uvid u nasleđene atribute (atribute
klase-pretka), ako postoje
Otvaranje dijaloga za podešavanje osobina
izabranog atributa (odeljak 3.4.1)
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
7
3.4.1 Panel za podešavanje osobina atributa
Višestrukost atributa: 1. Multiplicity: Opseg broja
vrednosti koje objekat
posmatrane klase može da ima za dati atribut (npr.
0..*)
2. Array size: Tačan broj
vrednosti atributa (npr.
niz od 5 elemenata,
matrica: 2, 3, 4)
Vrednost atributa
može da se izvede iz vrednosti ostalih
atributa
Obavezan atribut (donja
granica za Multiplicity
veća od nule)
Izmenljivost atributa nakon kreiranja instance klase: - Changeable : može da se menja (podrazumevano)
- Read-only: može se samo očitavati (zabranjena set metoda)
- Frozen: jednom dodeljena vrednost atributu ne može se menjati (konstanta) - Add-only (samo ako je višestrukost veća od 1): nove vrednosti se mogu
dodavati, ali se ne mogu menjati
Oznaka da se atribut
pretvara u deo
primarnog ključa u
relacionom modelu
Oznaka da je atribut
perzistentan, tj. da
predstavlja obeležje u tabeli koja odgovara
posmatranoj klasi, sa
sledećim osobinama:
- Code: naziv obeležja
- Data type: tip podatka
obeležja
Pristup listi domena
(v. sledeći odeljak)
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
8
Opseg dozvoljenih
vrednosti (minimum i maksimum) i
podrazumevana
vrednost atributa
Ostale osobine:
- Format (npr. dd.mm.yy)
- Unit: jedinica mere
- Uppercase/Lowercase:
dozvoljena samo
velika/mala slova
- Cannot modify: vrednost
atributa se ne može
menjati
Lista dozvoljenih
vrednosti atributa
Ako ograničenja navedena u Standard Checks nisu
dovoljna, ovde se mogu definisati dodatna
ograničenja. Izrazi koji se ovde definišu mogu da sadrže i vrednosti definisane na kartici Standard
Checks, i to:
%MINMAX% minimalna i maksimalna vrednost
atributa
%LISTVAL% lista dozvoljenih vrednosti atributa
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
9
3.4.2 Domeni
Domeni se u PowerDesigner-u koriste za definisanje templejta za tipove podataka.
Dodavanje domena:
1. iz Browser-a: desni klik na model→New→Domain
2. iz liste svih domena, koja može da se otvori iz glavnog menija (Model→Domains) ili sa
Details kartice bilo kojeg atributa (v. prethodni odeljak). Novi element se u listu dodaje
pomoću druge ikonice s desna (Add a row).
Osobine domena (koje se prenose na atribut kome se pridruži dati domen):
• tip podatka
• kardinalitet (multiplicity)
• sve osobine koje se definišu na karticama Standard Checks i Additional Checks
• podaci o perzistentnosti atributa
• pridružena pravila (kartica Rules)
Kada se napravi izmena na domenu, ona propagira na sve atribute tog domena.
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
10
3.5 Panel za unos podataka o metodama klase
Otvaranje dijaloga za detaljno definisanje metode (odeljak 3.5.1)
Najvažniji parametri
Name, Code Naziv metode u okviru izabranog programskog jezika.
Return Type Tip rezultata metode. Podrazumevani tip može se definisati u dijalogu
Model Options.
Visibility Nivo pristupa metode: public, protected, private i package
A - Abstract Oznaka da je metoda apstraktna (apstraktne metode ne mogu da se
implementiraju). Za definisanje virtuelne metode videti karticu Extended
Attributes, odeljak 3.5.1.
F - Final Oznaka da nije dozvoljeno redefinisanje metode u okviru klasa –
naslednika (ako postoje)
S – Static Oznaka da je metoda statička
Event Naziv događaja koji aktivira tu metodu (ukoliko se metoda definiše kao
reakcija na neki događaj)
D – Display Oznaka da li je metoda vidljiva u okviru dijagrama. Radi povećanja
preglednosti dijagrama, moguće je ostaviti da budu vidljive samo
najvažnije metode, sakriti sve metode i sl. Vidljivost metoda se tiče samo
izgleda dijagrama, ne i generisanja koda ili prava pristupa metode!
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
11
Dugme To be Implemented... omogućava uvid u metode "nasleđene" od interfejsa (ako klasa
realizuje neki interfejs), sa mogućnošću da se te metode implementiraju. Dijalog je identičan
dijalogu za uvid u metode nasleđene od klase-pretka, samo se umesto dugmeta Override pojavljuje
dugme Implement.
Kreiranje podrazumevanog
konstruktora/destruktora za
klasu, Copy konstruktora i
operacije za dupliciranje
(“kloniranje”) instance klase
Dijalog za uvid u metode nasleđene od klase-pretka
(ako postoji). Dugme <Override> omogućava
preuzimanje izabranih metoda klase-pretka radi
redefinisanja u okviru tekuće klase
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
12
3.5.1 Dijalog za detaljno definisanje metode
Metoda vraća
niz objekata čiji
je tip definisan u
Return type.
Metoda ne menja
vrednosti atributa klase
(const metoda, ali se to
ne prikazuje u kodu!)
Panel za implementaciju metode
Za klase koje predstavljaju korisnički interfejs, ovde se
može navesti događaj koji
trigeruje datu metodu
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
13
Panel za definisanje parametara metode:
Naziv
Tip parametra
Oznaka da je parametar
niz objekata čiji je tip
definisan u Data type
Broj elemenata niza
Način prenosa parametra:
In (ulazni), Out (izlazni) i
In/Out (ulazno-izlazni)
parametar
Podrazumevana
vrednost (ne prenosi
se u kod!)
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
14
3.5.2 Podešavanja specifična za C++
Panel Extended Attributes za parametar:
Panel Extended Attributes za metodu:
Parametar se prenosi
kao konstanta (dodaje
ključnu reč const u kod)
Podrazumevana
vrednost parametra
(prenosi se u kod!)
Oznaka da se
parametar prenosi
po referenci
Metoda ne menja vrednosti atributa klase
(const metoda, i to se
prikazuje u kodu!)
Virtuelna
metoda
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
15
4. Dijalozi za podešavanje osobina veza
4.1 Asocijacija
Asocijacija je strukturna veza koja definiše odnos udruživanja i/ili posedovanja između klasa.
• “Jednostavna asocijacija” se koristi za modelovanje udruživanja dve ravnopravne klase (klase na
istom nivou).
• Agregacija je vrsta asocijacije koja modeluje odnos “celina-delovi”, pri čemu su delovi
samostalne klase čije instance mogu da “žive” i nezavisno od klase koja ih agregira.
• Kompozicija je vrsta asocijacije koja takođe modeluje odnos “celina-delovi”, pri čemu su delovi
slabi objekti koji ne mogu da samostalno postoje bez osnovne klase, odnosno, prilikom
oslobađanja osnovne klase, potrebno je osloboditi i delove.
Name Deskriptivan naziv veze
Code Naziv veze. Ako nisu specificirane uloge, prenosi se u programski kod.
Comment Opis veze
Type Tip asocijacije ("jednostavna", agregacija ili kompozicija). Tip je
unapred definisan odabirom jedne od tri alatki sa palete, a ovde se može
naknadno promeniti.
Association class Klasa vezana za datu asocijaciju (videti odeljak 4.1.1)
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
16
Za svaku stranu asocijacije definišu se sledeći parametri:
Role name Opis uloge klase u okviru veze (ime atributa u suprotnoj klasi). Ako se ne
definiše, u obe klase se za ime atributa koristi ime asocijacije.
Visibility Pošto se veza asocijacije prilikom generisanja koda prevodi u atribut jedne,
druge ili obe klase (u zavisnosti od kardinalnosti i usmerenosti veze),
Visibility definiše nivo pristupa tom atributu: private, protected, public ili
package
Multiplicity Kardinalitet veze (donja i gornja granica)
Changeability Izmenljivost odgovarajućeg atributa u okviru suprotne klase. Ima iste moguće
vrednosti i značenja kao izmenljivost atributa (odeljak 3.1.4.1).
Ordering Samo ako je gornji kardinalitet veći od 1: Definiše da li su instance sa
posmatrane strane veze uređene (sorted – sortirane prema nekoj vrednosti ili
ordered – uređene po nekom drugom, spolja definisanom kriterijumu) ili
neuređene (unordered).
Initial value Početna vrednost atributa. Može da bude i izraz za inicijalizaciju, npr. new
Izdavac() (ne prenosi se u kod).
Navigable Oznaka da li instanca jedne klase može da pristupi instanci druge klase
Persistent Oznaka da li je asocijacija (tj. odgovarajući atribut) perzistentan
Container type Koji kontejner se koristi za smeštanje vrednosti višestrukog atributa.
Ponuđene vrednosti zavise od ciljnog jezika, a moguće je ukucati naziv.
Detaljnije podešavanje (npr. dodavanje * za kontejner koji sadrži pokazivače)
obavlja se na kartici Extended Attributes. Podrazumevani kontejner može se
definisati u dijalogu Model Options, polje Default association container.
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
17
4.1.1 Klasa asocijacije
Klasa asocijacije predstavlja asocijaciju koja poseduje karakteristike klase, odnosne ima atribute i
metode, a moguće su i veze sa drugim klasama. Klasa asocijacije označava se kao "obična" klasa, ali
je povezana sa odgovarajućom asocijacijom isprekidanom linijom.
U PowerDesigner-u, klasa asocijacije se kreira u dva koraka:
1. Kreira se klasa, sa svojim atributima i metodama
2. U Properties dijalogu za asocijaciju, na kartici General, u polju Association class odabere se
klasa koja treba da je vezana za asocijaciju:
4.2 Generalizacija
Služi za modelovanje hijerarhijske veze (nasleđivanja) između klasa.
Vidljivost
nasleđivanja
Podsetnik za kreiranje UML dijagrama klasa korišćenjem PowerDesigner-a
18
4.3 Veza zavisnosti
Veza zavisnosti (dependency) predstavlja vezu između dva elementa modela kojom se definiše da
funkcionalnost ili implementacija jednog elementa modela zahteva prisustvo drugog elementa
modela. Kao element modela može se posmatrati klasa, interfejs ili paket.
Element modela od koga polazi usmerena linija predstavlja zavisan element, dok element na drugom
kraju veze predstavlja nezavisan element. Ovom vezom se definiše da izmena u nezavisnom
elementu modela utiče na zavisan element modela.
Specijalan slučaj veze zavisnosti može biti predstavljen navođenjem odgovarajućeg sterotipa.
Postoji niz stereotipa koji su definisani za vezu zavisnosti, a korisnik može i da definiše svoje.
Neki predefinisani stereotipovi su:
use – funkcionalnost ili implementacija jednog elementa modela zahteva prisustvo drugog elementa
modela (npr. jedna klasa koristi objekat druge klase kao parametar svoje metode). Služi za
naglašavanje osnovnog tipa veze zavisnosti u odnosu na sve ostale stereotipove.
bind – veza parametrizovane (template) klase i klase koja daje konkretne vrednosti parametrima
friend – modelovanje "prijateljskih" klasa
instantiate – operacije nezavisne klase kreiraju instance zavisne klase
4.4 Realizacija
Najčešće se koristi za označavanje veze između interfejsa i klase koja ga implementira.