UML Dijagram klasa Klasa predstavlja skup objekata koji imaju zajedničku strukturu i ponašanje. Svrha dijagrama klase je da opiše klase unutar modela. U objektno-orijentisanoj aplikaciji klase imaju atribute (member variables), operacije (member functions) i veze sa drugim klasama. Osnovni element klas klasno nog g dija dijagra grama ma je ikon ikonaa koja koja preds predsta tavl vlja ja klas klasu. u. Ikon Ikonaa klas klasee je pravougaonik podeljen horizontalnim linijama i sastoji se iz tri dela. Gornji deo prikazuje ime klase, u srednjem delu je lista atributa, a u donjem delu su operacije. U mnogim dijagramima poslednja dva dela se zanemaruju. Cilj Cilj je da se prika prikažu žu samo samo oni oni atri atribu buti ti i oper operac acij ijee koji koji su kori korisn snii za određeni dijagram.
Slika1: Primer klase klase za avio-kompaniju
Atributi Atribu Atributi ti su strukt strukturn urnee karakt karakteri eristi stike ke klase. klase. Oni opisuj opisuju u podatk podatkee sadržane u objektu klase i prikazaju se u drugom (srednjem) delu ikone klase. Atributi se u klasi nalaze na zasebnim linijama. Svaka linija atributa koristi format: ime : tip atributa Tipovi atributa mogu biti: ceo broj (integer), realni broj (real), karakter (char), itd. U objekt objektno no-o -ori rijen jenti tisa sano nom m diza dizajn jnu u post postoj ojii nota notaci cija ja vidl vidlji jivo vost stii (dostupnosti) za atribute i operacije. UML identifikuje tri tipa vidljivosti: public, protected, i private, a dostupnost atributa se može zadati. Javno: označeno znakom plus (+). Svi objekti mogu pristupiti podatku ili metodi.
•
Zašticeno: označeno znakom tarabe (#). Samo objekti te klase i svih njenih izvedenih klasa mogu pristupiti tom podatku ili metodi. •
Privatno: označeno znakom minus (-). Samo metode te klase mogu pristupiti tom podatku ili metodi. •
Operacije Operacije definišu ponašanje klase. Kao atributi, operacije klase su prikazane u listi gde se svaka operacija nalazi na svojoj liniji. Operacije se dokumentuju koristeći sledeću notaciju: ime (lista parametara) : type of value returned
Relacije u UML-u Relacija je opšti termin koji pokriva specifične tipove logičke konekcije među klasama na klasnom dijagramu. Postoje četiri tipa relacija unutar UML modela: • • • •
Asocijacija (eng. association) Generalizacija (eng. generalization) Zavisnost (eng. dependency) Realizacije (eng. realization)
Asocijacija Asocijacija je strukturna relacija koja određuje da li su instance jedne klase povezane sa instancama druge klase. Graficki se predstavlja kao puna linija, ciji svaki kraj povezuje klasni element. Asocijacija može da bude imenovana, a krajevima asocijacije se može pridodati oznaka koja pokazuje višestrukost, vidljivost i ostale osobine. Višestrukost (multiplikativnost) pokazuje koliko objekata može učestvovati u datoj vezi. Uobičajene višestrukosti koje se primenjuju su: • • •
•
nijedan (0), tačno jedan (1), proizvoljno mnogo, uključujući 0(*), opseg (npr. 2..*).
Znak * (zvezdica) označava beskonačnost.
Slika2: Asocijacija
Generalizacija Generalizacija je veoma važan koncept u objektno-orijentisanom dizajnu. Odnosi se na mogućnost jedne klase (dete klasa) da nasledi identične osobine druge klase (super klasa), a zatim da doda nove, sopstvene funkcionalnosti. Za predstavljanje generalizacije na dijagramu klase, koristi se puna linija na čijem kraju se nalazi prazan trougao. Linija se povlači od dete klase prema super klasi.
Slika3: Generalizacija na primeru bankovnog računa
Zavisnost Između dva elementa postoji zavisnost ako promena definicije jednog uzrokuje promenu drugog. Relacija zavisnosti se predstavlja isprekidanom linijom, koja pokazuje smer od zavisnog ka nezavisnom elementu.
Realizacija U relaciji realizacije jedan entitet definiše set funkcionalnosti kao ugovor, a drugi entitet realizuje ugovor implementiranjem njegovih “uslova”.
Agregacija i kompozicija Agregacija i kompozicija su vrste asocijacije. Agregacija je oblik asocijacije koja uspostavlja vezu između celine i dela. Agregirana klasa je na neki način celina, a druga klasa u vezi je deo te celine. Životni ciklus klase “deo” je nezavisan od klase “celina”. Agregacija se grafički predstavlja znakom “prazan dijamant”.
Slika4: Agregacija između dve klase
Kao i agregacija, kompozicija je vrsta asocijacije kod koje je klasadete zavisna od klase-roditelj. Ako se klasa-roditelj kao celina kopira ili briše, njeni delovi se kopiraju ili brišu sa njima. Grafička predstava relacije kompozicije je ispunjen dijamant.
Slika5: Kompozicija
LITERATURA:
1. The Rational Edge – November 2003 – UML Basics Part III: The Class Diagram by Donald Bell 2. UML tutorial – Robert C. Martin 3.
Alan Shalloway, James R. Trott – Projektni obrasci, 2004.
4. Martin Fowler, Kendall Scott - UML Distilled Second Edition. A Brief Guide to the Standard Object Modeling Language, 1999.
SADRŽAJ:
UML Dijagram klasa......................................................1 Atributi..........................................................................................1 Operacije.......................................................................................2 Relacije u UML-u...........................................................2 Asocijacija.....................................................................................2 Generalizacija................................................................................3 Zavisnost.......................................................................................4 Realizacija.....................................................................................4 Agregacija i kompozicija................................................................4 Literatura.....................................................................5 Sadržaj.........................................................................6