0% found this document useful (0 votes)
31 views

Class Diagrams Programming

This document discusses class diagrams in object-oriented modeling. It covers key concepts like classes, attributes, operations, associations, generalizations, and perspectives. Class diagrams can be used to represent a conceptual, specification, or implementation perspective. They are useful for modeling the structure and relationships of object-oriented systems, but should be used judiciously by focusing on important classes and relationships.

Uploaded by

Sara Kukic
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Class Diagrams Programming

This document discusses class diagrams in object-oriented modeling. It covers key concepts like classes, attributes, operations, associations, generalizations, and perspectives. Class diagrams can be used to represent a conceptual, specification, or implementation perspective. They are useful for modeling the structure and relationships of object-oriented systems, but should be used judiciously by focusing on important classes and relationships.

Uploaded by

Sara Kukic
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 35

Objektno orijentirano modeliranje

Dijagrami klasa

Class diagrams

Uvod
Dijagrami klasa i objekata su najpopularnija tehnika koritena u OOD Dijagrami klasa prikazuju tipove objekata u sustavu te statike odnose meu njima:
asocijacije podtipove (hijerarhijski odnos)

Dijagrami klasa takoer prikazuju atribute i operacije


OOM - Dijagrami klasa 2

Perspektive
Tri perspektive koje se koriste pri crtanju dijagrama klasa:
1. koncepcijska 2. specifikacijska 3. implementacijska

OOM - Dijagrami klasa

Koncepcijska perspektiva
Dijagram klasa predstavlja koncept promatrane domene (domain model-a) Pojavljuju se klase koje implementiraju sustav, no s vrlo malo ili nimalo veze sa softverom koji e implementirati taj sustav

OOM - Dijagrami klasa

Specifikacijska perspektiva
Promatraju se suelja, ali ne i implementacija U praksi se esto zanemaruje ta razlika U jezicima poput Java i C#, ta razlika je ugraena u jezik kroz mehanizam nasljeivanja suelja (interface). U C++ bi tome trebale biti analogne apstraktne klase esto se u ovom kontekstu koristi rije tip

(type)

OOM - Dijagrami klasa

Implementacijska perspektiva
Promatraju se stvarne klase koje se implementiraju u kdu, zajedno s njihovom internom implementacijom

OOM - Dijagrami klasa

Perspektive i UML
Iako UML ne podrava perspektive, mogue ih je naznaiti koritenjem

stereotipa

Stereotipovi se navode unutar znakova << i >>:


<<type>> <<implementation>>
OOM - Dijagrami klasa 7

Klasa
Grafiki se predstavlja pravokutnikom, s nazivom pri vrhu Velika poetna slova u nazivu
OsobniAutomobil

OOM - Dijagrami klasa

Atributi klase
Atributi su svojstva klase, tj. vrijednosti sadrane u klasi Navode se pravokutniku ispod naziva klase:
OsobniAutomobil

marka tip bojaKaroserije brojVrata tipMotora zapreminaMotora


OOM - Dijagrami klasa 9

Tip atributa
Moemo navesti i tip atributa klase:

OsobniAutomobil marka: String tip: String bojaKaroserije brojVrata: Integer tipMotora zapreminaMotora: Integer

OOM - Dijagrami klasa

10

Instanca klase
Instanca klase (objekt) ima ime, a atributi imaju konkretne vrijednosti Objekt se prikazuje s podcrtanim nazivom:
mojAuto : OsobniAutomobil

marka = "Zastava" tip = "Tempo 101" bojaKaroserije = plava brojVrata = 5 tipMotora = benzinski zapreminaMotora = 750
OOM - Dijagrami klasa 11

Operacije
Operacije se navode u donjem pravokutniku:
OsobniAutomobil
marka tip bojaKaroserije brojVrata tipMotora zapreminaMotora Vozi() NatociGorivo() UkrcajPutnike()
OOM - Dijagrami klasa 12

Potpis operacija
U zagradama se mogu navesti tipovi i nazivi argumenata, a iza dvotoke se moe navesti povratni tip:
OsobniAutomobil
marka tip bojaKaroserije brojVrata tipMotora zapreminaMotora Vozi(Float brzina) NatociGorivo(Integer litara) : Integer UkrcajPutnike(Integer grla)
OOM - Dijagrami klasa 13

Pojednostavljeni prikaz
esto je praktino pojednostavniti prikaz klase ili objekta:
OsobniAutomobil OsobniAutomobil marka ...

Vozi() ...
OOM - Dijagrami klasa 14

Koritenje stereotipa
Dugi popisi atributa i operacija se mogu sistematizirati koritenjem stereotipa:
OsobniAutomobil <<ProizvodjackiPodaci>> marka tip bojaKaroserije brojVrata <<podaciMotora>> tipMotora zapreminaMotora UkrcajPutnike() Vozi() NatociGorivo()
OOM - Dijagrami klasa 15

Definiranje vidljivosti
Vidljivost atributa ili operacije definira se predmetkom:
+ (public) # (protected) - (private) ~ (package)
OsobniAutomobil #marka: String #tip: String #bojaKaroserije #brojVrata: Integer #tipMotora #zapreminaMotora +DajOpisVozila() +UkrcajPutnike() +Vozi() +NatociGorivo()

OOM - Dijagrami klasa

16

Podrazumijevana vrijednost
Za atribute se moe definirati podrazumijevana (default) vrijednost:
OsobniAutomobil

... #brojVrata: Integer = 4 ...

OOM - Dijagrami klasa

17

Dodavanje napomena
Uz dijagrame je mogue dodati napomene:
OsobniAutomobil <<ProizvodjackiPodaci>> marka tip bojaKaroserije brojVrata <<podaciMotora>> tipMotora zapreminaMotora UkrcajPutnike() Vozi() NatociGorivo()

Zapremina motora u ccm

OOM - Dijagrami klasa

18

Asocijacije
Asocijacije predstavljaju veze meu instancama klase. Npr. voza vozi automobil:
OsobniAutomobil Vozac

OOM - Dijagrami klasa

19

Krajevi asocijacija
Svaka asocijacija ima dva kraja (association end) koji su pridrueni klasama Kraj moe biti eksplicitno imenovan: tzv. naziv uloge (role name):
vozac OsobniAutomobil Osoba putnik
OOM - Dijagrami klasa 20

Osoba

Viekratnost asocijacije
Svaki kraj asocijacije ima viekratnost (multiplicity) koja kae koliko objekata moe sudjelovati u zadanoj asocijaciji:
1 1 OsobniAutomobil 1 vozac Osoba

1..*
putnik

Osoba

OOM - Dijagrami klasa

21

Primjeri
Muz 1 Profesor 1 Osobni bankar 1 Bicikl 1 KutijaZaJaja 1
sadri ima predaje u braku

Zena 1 Student *

opsluuje

Klijent

1..* Kotac 2 Jaje 10,12

OOM - Dijagrami klasa

22

Asocijacije u perspektivama
U konceptualnoj perspektivi, asocijacije naznauju vezu meu klasama U specifikacijskoj perspektivi, asocijacije prikazuju odgovornosti pojedinih klasa U implementacijskoj perspektivi, asocijacije naznauju implementacijske detalje asocijacije
OOM - Dijagrami klasa 23

Usmjerenost asocijacije
U implementacijskoj perspektivi esto se strelicom navodi usmjerenost asocijacije Na primjer, u narudbi je zapisan podatak o kupcu, ali kupca nakon to je naruio, ne zanima sama narudba:

Narudzba Kupac

OOM - Dijagrami klasa

24

Dvosmjerna asocijacija

Ako oba objekta imaju vezu prema drugome, radi se o dvosmjernoj asocijaciji

(bidirectional)

Oznaava se strelicama na oba kraja ili bez strelice:


Igrac uposljava igra Momcad

11

OOM - Dijagrami klasa

25

Uvjetovana asocijacija

Ako asocijacija ovisi o nekom uvjetu, on se moe dodati:


Nastavnik 1

{abecednim slijedom} ispituje *

Student

Automobil {OR}

parkira parkira

Garaza
Parkiraliste
26

OOM - Dijagrami klasa

Kvalificirana asocijacija

Kada postoji viekratnost jedan-na-vie, odabir jednog od objekta zasniva se na nekom uvjetu:

Recepcioner

+BrojRezervacije

RezervacijaSobe 1 *

OOM - Dijagrami klasa

27

Refleksna asocijacija

Ponekad klasa moe biti u vezi sa samom sobom:


vozi vozac 0...4 1

putnici OsobaUautomobilu

OOM - Dijagrami klasa

28

Nasljeivanje (generalizacija)

Generalizacija se simbolizira punom strelicom na punoj liniji, na kraju koji gleda prema baznoj klasi:

Bazna

Izvedena

OOM - Dijagrami klasa

29

Nasljeivanje (generalizacija)
Vozilo

PutnickoVozilo

TeretnoVozilo

PosebnoVozilo

OsobnoVozilo

Autobus

Kamion

OOM - Dijagrami klasa

30

Apstraktne klase

Apstraktne klase se oznaavaju kosim slovima:


PutnickoVozilo

Vozilo

TeretnoVozilo

PosebnoVozilo

OsobnoVozilo

Autobus

Kamion

OOM - Dijagrami klasa

31

Ovisnosti
Kada jedna klasa koristi drugu (npr. kada se u potpisu operacija prve klasa pojavi druga klasa) Simbolizira se otvorenom strelicom na kraju crtkane linije:

Automobil BenzinskaPumpa +NatociGorivo()

OOM - Dijagrami klasa

32

Pravila ogranienja
Dijagrami klasa definiraju ogranienja Asocijacije, atributi, generalizacija ukljuuju dosta ogranienja. Npr.:

viekratnost ograniava broj objekata s jedne

ili druge strane postojanje nekog atributa moe ukazivati na ogranienje iz generalizacije (hijerarhije) se mogu iitati ogranienja koja neka izvedena klasa ima, a druga nema
OOM - Dijagrami klasa

33

Ogranienja
Dodatna ogranienja se u UML dijagramu mogu navesti unutar vitiastih zagrada { i } Ogranienja su povezana s Principom dizajna prema ugovoru (Design by contract) vidi zasebnu PP prezentaciju!

OsobniAutomobil -brojVrata: Integer -bojaKaroserije {brojVrata = 2, 4, 5}

OOM - Dijagrami klasa

34

Kada koristiti dijagrame klasa

Iako su dijagrami klasa vrlo popularni, valja biti umjeren s njihovom primjenom:
Ne treba koristiti svu raspoloivu notaciju

treba poeti s osnovnim konceptima: klase, asocijacije atributi, hijerarhije i ogranienja Dijagrame crtati za odgovarajuu perspektivu Usredotoiti se samo na kljune stvari, a ne crtati dijagrame za sve mogue klase

OOM - Dijagrami klasa

35

You might also like