18
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 dijagram klasa.pdf

Embed Size (px)

Citation preview

Page 1: Podsetnik za dijagram klasa.pdf

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

Page 2: Podsetnik za dijagram klasa.pdf

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

Page 3: Podsetnik za dijagram klasa.pdf

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)

Page 4: Podsetnik za dijagram klasa.pdf

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.

Page 5: Podsetnik za dijagram klasa.pdf

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.

Page 6: Podsetnik za dijagram klasa.pdf

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)

Page 7: Podsetnik za dijagram klasa.pdf

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)

Page 8: Podsetnik za dijagram klasa.pdf

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

Page 9: Podsetnik za dijagram klasa.pdf

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.

Page 10: Podsetnik za dijagram klasa.pdf

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!

Page 11: Podsetnik za dijagram klasa.pdf

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

Page 12: Podsetnik za dijagram klasa.pdf

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

Page 13: Podsetnik za dijagram klasa.pdf

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!)

Page 14: Podsetnik za dijagram klasa.pdf

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

Page 15: Podsetnik za dijagram klasa.pdf

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)

Page 16: Podsetnik za dijagram klasa.pdf

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.

Page 17: Podsetnik za dijagram klasa.pdf

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

Page 18: Podsetnik za dijagram klasa.pdf

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.