You are on page 1of 4

INFOTEH-JAHORINA Vol. 7, Ref. F-10, p. 720-723, March 2008.

OBJEDINJENI JEZIK MODELIRANJA - UML


UNIFIED MODELING LANGUAGE UML

Nataa Subi, student TFMihajlo Pupin, Zrenjanin

Sadraj: Objektno-orjentisani razvoj je proces pretvaranja ideje ili problemske specifikacije u


objektno-orjentisani program. Objedinjeni jezik za modeliranje UML je notacija za objektnoorjentisanu analizu i dizajn. Kao takav, UML ukljuuje elemente za sve faze od analize na visokom
nivou pa sve do veoma deteljnih elemenata dizajna. Cilj rada je da prikae osnove dizajniranja
objektno-orjentisanih sistema pomou UML-a.
Abstract: Object-oriented development is the process of turning an idea or a problem
specification into an object-oriented pogram. Unified modeling language UML is an objectoriented analysis and design notation. As such, it includes features for eveything from highlevel
analysis concepts down to very detailed design basic of designing object-oriented systems with
UML.
1

UVOD

Objektno-orjentisani (skraeno OO) razvoj je proces


pretvaranja ideje ili problemske specifikacije u objektnoorjentisani program. Takav program se sastoji od niza
objekata koji komuniciraju jedni sa drugim. Objekti se
kreiraju tokom klasa koje su definisane u izvornom kodu
programa.
Rani korak u razvojnom procesu je objektno-orjentisana
analiza. Analizom se transformiu ideje proizvoda u
objektno-orjentisani model problema. Zatim se vri objektnoorjentisani dizajn koji predstavlja transformaciju modela u
vidljivi dizajn.
estu dizajnersku aktivnost predstavlja razvoj sistemske
arhitekture. Ovo predstavlja organizovanje sistema kao skupa
vanijih gradivnih blokova, kao to su podsistemi i
komponente. Implementacija dizajna se vri kroz objektnoorjentisano programiranje.
Prednosti objektno-orjentisanog pristupa su istaknute u
nastavku:

OO sistemi su fleksibilniji. Zbog manjka programera


javlja se potreba za produktivnijim radom. Vaan nain je
apstrakcija (npr. Klase), zatim enkapsulacija (skrivanje
podataka), nasleivanje, substitucija, polimorfizam ...

OO razvoj je relativno kompaktan proces. Tokom


celog proces se vre iste radnje, tj. crtaju se isti tipovi
dijagrama.

Modeli bazirani na klasama verno prikazuju realan


svet. Klasom se moe modelirati i stanje i ponaanje svojih
instanci.

OO tehnologija nudi rezliite naine za savladavanje


kompleksnosti. Mogue je podeliti sistem na vie naina i
tako sakriti kompleksnost sistema iza dobro definisanog
interfejsa.

Olakava se ponovna upotreba softvera. [4]

OO metod dizajniranja mora ukljuivati sledee tri


komponente: skup koncepata i njihova notacija, skup pristupa
za trensformisanje problema u model i dizajn, kao i uputstva
za proizvodnju to fleksibilnijeg dizajna.
Unified Modeling Languange UML je pogodna notacija
za OO analizu i dizajn. UMLje jezik koji omoguuje
konstrukciju sistema sa pogledom iz vie uglova. Osnovni
pogledi su: funkcionalni, statiki strukturalnli, dinamiki
strukturalni (pogled ponaanja) i pogled arhitekture.
2

STANDARDNI JEZIK ZA MODELIRANJE UML

UML (Unified Modeling Language) je grafiki jezik za:


vizuelizaciju, specifikaciju, konstruisanje i dokumentovanje
softverskih-intezivnih
sistema.
UML
omoguava
konstruisanje ema koje modeliraju sistem opisujui:
konceptualne stvari npr. proces poslovanja i funkcije
sistema,konkretne stvari npr. klasne tipove, eme baza
podataka, softverske komponente
3

KORISNICI UML-A

Sledee kategorije korisnika UML-a se uoavaju: sistemanalitiarii krajnji korisnici (specificiraju zahtevanu strukturu
i ponaanje sistema), arhitekti (projektuju sistem koji
zadovoljava zahteve), razvojni inenjeri (transformiu
arhitekturu u izvrni kod), kontrolori kvaliteta (proveravaju
strukturu i ponaanje sistema), bibliotekari (kreiraju i

208

INFOTEH-JAHORINA Vol. 7, Ref. F-10, p. 720-723, March 2008.


katalogiziraju komponente), rukovodioci projekata (voenje i
usmeravanje kadrova i orkestracija resursima)
4

KONCEPTUALNI MODEL UML-A


Postoje tri osnovna elementa UML modela a to su:
Osnovni gradivni blokovi
Pravila za povezivanje gradivnih blokova
Opti mehanizmi koji se primenjuju u UML-u

Sl 3: Interfejs

Gradivni blokovi UML-a su:Stvari (apstrakcije koje su


"graani prvog reda" u modelu), Relacije(povezuju stvari),
Dijagrami (grupiu interesantne skupove povezanih stvari)
5

Na Sl.4 je prikazan interfejs Alarm i operacije pomou


kojih se mou opisati. [2]

STVARI STRUKTURE KLASE I INTERFEJSI

Klasa je opis skupa objekata koji dele zajednike


karakteristike (atribute i operacije), ogranienja i semantiku.
Aktivna klasa je klasa iji objekti imaju vlastitu nit kontrole i
tako mogu da zaponu neku upravljaku aktivnost. Ponaanje
objekta aktivne klase je konkurentno sa drugim aktivnim
objektima. Klase se prikazuju pravougaonikom podeljenim u
tri dela kao to je prikazano na Sl.1. [1]

Sl 4: Prikaz konkretnog interfejsa - Alarm


6

STVARI STRUKTURE SLUAJ KORIENJA I


SARADNJA

Sluaj korienja (use-case) je opis skupa sekvenci


aktivnosti koje obavlja sistem da bi proizveo vidljiv rezultat
vredan za pojedinog aktera. Jedna sekvenca aktivnosti zove
se instanca sluaja korienja (scenario). Sluaj korienja se
koristi da bi se strukturirale stvari ponaanja u modelu.
Realizuje
se
kroz
saradnju
(kolaboraciju).
Saradnja(collaboration) definie zajednicu i interakciju
aktera i drugih elemenata koji dejstvuju zajedno da ostvare
kooperativno ponaanje koje je kvalitativno novo u odnosu
na prostu sumu ponaanja elemenata Kolaboracija ima
strukturalnu, kao i dimenziju ponaanja Kolaboracije
predstavljaju implementaciju projektnih uzoraka (patterns)

Sl.1: Notacija za klasu


Na Sl.2 je prikazana klasa Student i atributi pomou kojih
se pojave klase mogu opisati. Navedeni atributi redom imaju
sledea znaenja: broj indeksa, godina upisa na fakultet, ime,
prezime, adresa, status studenta i broj poloenih ispita. [1]

Sl 5 : Prikaz sluaja korienja Upis godine


7

RELACIJE

Zavisnost je semantika relacija izmeu dve stvari u


kojoj izmena jedne (nezavisne) stvari moe uticati na
semantiku druge (zavisne) stvari.
Asocijacija je strukturna relacija koja opisuje skup
vezaizmeu objekatasadranje je specijalna vrsta
asocijacije koja reprezentuje strukturnu relaciju izmeu
celine i njenih delovaesto grafiki simbol sadri ukrase
kao to su multiplikativnost i imena uloga.

Sl.2: Atributi klase Student


Interfejs je kolekcija operacija koje specificiraju servis
klase ili komponente. Interfejs opisuje ponaanje elementa
koje je spolja vidljivo. Interfejs definie skup specifikacija
(prototipova) operacija ali ne i njihove implementacije. Klasa
i komponenta mogu da implementiraju vie interfejsa.
Interfejs moe biti predstavljen oznakom za klasu sa
stereotipom <<interface>>, kao to je prikazano na Sl.3. [2]

Na Sl. 6. prikazana je veza asocijacije izmeu klasa


Profesor i Predmet koja opisuje odnos odgovarajuih
klasa. Profesor ne mora da dri nastavu na fakultetu, ali
isto tako moe da dri nastavu iz jednog ili vie
predmeta. Za nastavu iz jednog predmeta zaduen je
samo jedan profesor. Predmet moe da bude priznat
umesto nekog drugog predmeta, nijednog ili vie.
Predmet moe da bude sadran, tj. da bude obuhvaen
planom programa vie drugih predmeta, a ne mora ni
jednim od njih.

209

SpisakKandi data

SpisakUpisa

- <<Property>> JMBG
: String
- <<Property>> Prezim e
: String
- <<Property>> Ime
: String
- <<Property>> BrojDosijea : String

- <<Property>> UpisanaGodina : Int16


- <<Property>> UpisanSemestar : Int16
- <<Property>> Datum
: DateTime
+
+
+
+
+
+
+
+

<<Getter>>
<<Setter>>
<<Getter>>
<<Setter>>
<<Getter>>
<<Setter>>

DodajUSpisak (Upis NoviUpis)


VratiKandidata ()
get_UpisanaGodina ()
set_UpisanaGodina (Int16 value)
get_UpisanSemestar ()
set_UpisanSemestar (Int16 value)
get_Datum ()
set_Datum (DateTime value)

:
:
:
:
:
:
:
:

void
void
Int16
void
Int16
void
DateTime
void

+
+
+
+
+
+
+
+
+
+

0..1

IzmenaUpisa
- <<Property>>
DatumIzmene : DateTime
- <<PropertyImplem entation>> _DatumIzmene : DateTime

1..1

+ <<Constructor>> Izm enaUpisa ()


+ <<Destructor>> ~Izm enaUpisa ()
+ <<Setter>>
set_DatumIzmene (DateTime value)
+ <<Getter>>
get_DatumIzm ene ()
+
VratiKandidata ()
+
set_PostojeciUpis (Upis pPostojeciUpis)
+
get_PostojeciUpis ()
+
set_Novi Upis (Upis pNoviUpis)
+
get_NoviUpis ()
+
set_IzmenuIzvrsio (Zaposleni pIzm enuIzvrsio)
+
get_IzmenuIzvrsio ()
0..*

Sl 6 : Veza binarne i rekurzivne asocijacije

1..1
:
:
:
:
:
:
:
:
:

1..1

void
DateTime
void
void
Upis
void
Upis
void
Zaposleni

0..*
Upis

0..1

1..1
SpisakIzmenaUpisa
- <<Property>> DatumIzmene
: DateTime
- <<Property>> KojiPut
: Int16
- <<Property>> UpisanaGodina : Int16
- <<Property>> UpisanSemestar : Int16

Generalizacija
je
relacija
specijalizacije
/
generalizacije u kojoj su objekti specijalizovanog
elementa (deca) zamene za objekte generalizovanog
elementa (roditelja). Dete deli strukturu i ponaanje
roditelja.

+
+
+
+
+
+
+
+
+
+

<<Getter>>
<<Setter>>
<<Getter>>
<<Setter>>
<<Getter>>
<<Setter>>
<<Getter>>
<<Setter>>

DodajUSpisak (IzmenaUpisa NovaIzmena)


Vrati Kandidata ()
get_DatumIzmene ()
set_DatumIzmene (DateTime value)
get_KojiPut ()
set_Koj iPut (Int16 value)
get_UpisanaGodina ()
set_Upi sanaGodina (Int16 value)
get_UpisanSemestar ()
set_Upi sanSemestar (Int16 value)

:
:
:
:
:
:
:
:
:
:

0..*
Dosije Kandidata

1..1

izmeu klasa

<<Getter>>
<<Setter>>
<<Getter>>
<<Setter>>
<<Getter>>
<<Setter>>
<<Getter>>
<<Setter>>

DodajUEvidenciju (DosijeKandidata NoviStudent) : void


Vrati Kandidata ()
: void
get_Jm bg ()
: Stri ng
set_Jmbg (String value)
: void
get_Prezi me ()
: Stri ng
set_Prezime (String value)
: void
get_Ime ()
: Stri ng
set_Ime (String value)
: void
get_BrojDosijea ()
: Stri ng
set_BrojDosi jea (String value)
: void

void
void
DateTime
void
Int16
void
Int16
void
Int16
void

<<Property>>
<<Property>>
<<Property>>
<<Property>>
<<PropertyImplem entation>>
<<PropertyImplem entation>>
<<PropertyImplem entation>>
<<PropertyImplem entation>>

Datum
UpisanSemestar
UpisanaGodina
KojiPut
_Datum
_Upi sanSemestar
_Upi sanaGodina
_Koj iPut

:
:
:
:
:
:
:
:

DateTime
Int16
Int16
Int16
DateTime
Int16
Int16
Int16

+
+
+
+
+
+
+
+
+
+
+
+
+

<<Constructor>> Upis ()
<<Destructor>> ~Upi s ()
Vrati Kandidata ()
<<Setter>>
set_Datum (DateTim e value)
<<Getter>>
get_Datum ()
<<Setter>>
set_Upi sanSemestar (Int16 value)
<<Getter>>
get_UpisanSemestar ()
<<Setter>>
set_Upi sanaGodina (Int16 value)
<<Getter>>
get_UpisanaGodina ()
<<Setter>>
set_Koj iPut (Int16 value)
<<Getter>>
get_KojiPut ()
set_Upi saniKandidat (DosijeKandidata pStudent)
get_UpisaniKandidat ()

:
:
:
:
:
:
:
:
:
:
:

void
void
DateTime
void
Int16
void
Int16
void
Int16
void
DosijeKandi data

0..*1..1

<<Property>>
<<Property>>
<<Property>>
<<Property>>
<<Property>>
<<Property>>
<<PropertyIm plementation>>
<<PropertyIm plementation>>
<<PropertyIm plementation>>
<<PropertyIm plementation>>
<<PropertyIm plementation>>

BrojDosijea
Im e
Prezime
DatumRodjenja
JMBG
Smer
_Ime
_Prezime
_DatumRodjenja
_JMBG
_Sm er

:
:
:
:
:
:
:
:
:
:
:

Stri ng
Stri ng
Stri ng
DateTime
Stri ng
Stri ng
Stri ng
Stri ng
DateTime
Stri ng
Stri ng

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

<<Constructor>> DosijeKandidata ()
<<Destructor>> ~DosijeKandidata ()
Vrati Kandidata ()
<<Setter>>
set_BrojDosi jea (String value)
<<Getter>>
get_BrojDosijea ()
<<Setter>>
set_Ime (String value)
<<Getter>>
get_Ime ()
<<Setter>>
set_Prezime (String value)
<<Getter>>
get_Prezi me ()
<<Setter>>
set_DatumRodjenja (DateTime value)
<<Getter>>
get_DatumRodjenja ()
<<Setter>>
set_Jmbg (String value)
<<Getter>>
get_Jm bg ()
<<Setter>>
set_Sm er (String value)
<<Getter>>
get_Smer ()
set_Upi siKandidata (SpisakUpi sa NoviUpisiStudenta)
get_UpisiKandidata ()
Operati on_17 ()

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

void
void
String
void
String
void
String
void
DateTime
void
String
void
String
void
SpisakUpisa
int

Sl 8 : Dijagram klasa - Upis na I godinu studija


Dijagram objekata (object diagram)prikazuje logiku
strukturu instanci (skup objekata (instanci klasa) i njihovih
veza)

Na Sl. 7 je prikazana veza generalizacije. Za studente


fakulteta se mogu definisati neke zajednike osobine, npr
broj indeksa, godina upisa na studije, ime i prezime
studenta, kao i njegov status i slino. S druge strane,neke
osobine studenta osnovnih studija nisu primerene za
studente specijalistikih, magistarskih ili doktorskih
studija.

Dijagram komponenata (component diagram)prikazuje


fiziku organizaciju i zavisnosti izmeu skupa komponenata.
Dijagram rasporeivanja (deployment diagram) prikazuje
konfiguraciju vorova obrade i komponenata koje ive na
njima
Dijagram paketa (package diagram) prikazuje statiku
strukturu grupisanja elemenata modela u pakete
Dijagram sloene strukture (composite structure diagram)
prikazuje hijerarhijsko razlaganje sloene klase (objekta) na
delove.

Sl 7 : Disjunktna i potpuna generalizacija


8

10

DIJAGRAMI

Dijagram je grafika reprezentacija skupa povezanih


elemenata. Najee se pojavljuje u obliku stvari povezanih
granama (relacijama). Dijagrami se crtaju da bi se sistem
vizualizovao iz razliitih perspektiva. Vrste dijagrama u
UML-u:
dijagrami za prikaz statikih aspekata sistema
dijagrami za prikaz dinamikih aspekata sistema
9

STATIKI DIJAGRAMI

DINAMIKI DIJAGRAM

Dijagram sluajeva korienja (use case diagram)


prikazuje skup sluajeva korienja, aktera (specijalne vrste
klasa) i njihovih relacija. Use case dijagram se koristi za
modeliranje funkcionalnosti i specifikaciju sistema.
Na dijagramu vidimo dva uesnika u procesu
prijavljivanja za upis I godine studija. Kandidat koji predaje
dokumente za prijavljivanje i referent. Jedan od uesnika je i
sistem koji nam obezbeuje unos, obradu i tampanje
podataka, Sl. 8.[9]

Dijagram klasa (class diagram) prikazuje logiku


strukturu apstrakcija (skup klasa, interfejsa, kolaboracija i
njihovih relacija),

Kandidat

Predaja dokumentacije

Statickim modelom sistema se opisuju entiteti sistema.


Entiteti i veze izmedu njih predstavljeni su klasama i vezama
izmedu klasa prikazanih na dijagramu klasa.

Provera ispravnosti

Na dijagramu je prikazamo est klasa i veza izmedu njih.


Klase koje su prikazane na Sl.8. su: DosijeKandidata,
SpisakKandidata,
Upis,
SpisakUpisa,
IzmenaUpisa,
SpisakIzmenaUpisa. [9]

Referent
<<Include>>

Obrada dokumenata

Unos generalija

<<Include>>

tampanje

Sl. 8: Use Case Daigram


prijavljivanje za upis I godine studija
Dijagram interakcije(interaction diagram) prikazuje jednu
interakciju koju ine skup objekata i njihovih veza sa
porukama koje razmenjuju.
Dijagram sekvence (sequence diagram)je dijagram
interakcije koji naglaava vremenski redosled poruka.
210

Na Sl. 9 je opisan scenario prijavljivanja za upis I godine


studija, koji se formira na zahtev kanditada i referenta.
Objekti koji uestvuju u ovoj interakciji su pojave klasa Upis,
IzmenaUpisa,
DosijeKandidata,
SpisakKandidata,
SpisakUpisa. Referent
inicira
upis kandidata u
DosijeKandidata, kao i druge eventualne izmene koje je
potrebno izvriti nad podacima kandidata. Zahtev
DodajUEvidenciju ponavlja se onoliko puta koliko ima
upisanih kandidata. to moemo videti na Sl.9. [9]

11

Bez obzira na itav niz teorija i pristupa jo uvek ne


postoji tano uputstvo kakav proces primeniti za razvoj
pojedinih vrsta softvera. Mogu se dati samo uoptena
uputstva i to na etiri nivoa:
Osnovni modeli procesa: razvoj softvera zahteva
postojanje osnovnog modela kojim se definiu koje
se aktivnosti i kad primenjuju

Predaj a dokumenata

Upis

IzmenaUpisa

SpisakIzmenaUpisa

DosijeKandidata

Spi sakKandidata

Elementi razvoja: preko razliitih oblika dijagrama


UML nudi nekoliko prikaza objektno orjentisanog
sistema. Trai se odgovor na pitanje ta bi konaan
dokument o analizi i dizajnu trebao da sadri

Spi sakUpi sa

Referent
Upis()

Dosij eKandi data()

DodajUEvidenciju()

Vrati Kandidata()
IzmenaUpisa

DodajUSpisak

VratiKandidata()

Kombinacija razliitih razvojnih strategija: razliiti


pristupi postoje (dijagram sluajeva korienja,
dijagram klasa ...) pa se razliite strategije mogu
primeniti u razliitom rasporedu

DodajUSpisak()

Vrati Kandidata()

ZAKLJUAK

Vrati Kandidata()

VratiKandidata()
VratiKandidata()

Proces popravke dizajna: vri se popravka putem


provere
Sl. 9: Dijagram sekvence

12

prijavljivanje za upis I godine studija


Dijagram komunikacije (communication diagram) je
dijagram interakcije koji naglaava strukturnu organizaciju
objekata koji alju i primaju poruke.
Dijagram pregleda interakcije (interaction overview
diagram) je dijagram interakcije koji definie interakcije kroz
vrstu dijagrama aktivnosti (kombinacija d. aktivnosti i d.
sekvence)

LITERATURA

[1]Ivana Stanojevi, Duan Surla Uvod u objedinjeni


jezik modeliranja, Novi Sad 1999
[2]Dragan Miliev, Marko Zari, Neboja Piroanac,
Objektno orjentisano modelovanje na jeziku UML,
Beograd,2001.g.
[3]David A.
Amazon.com

Taylor,

Object

Technology,

Internet

Vremenski dijagram (timing diagram) je dijagram


interakcije koji prikazuje promenu stanja objekata u vremenu

[4]Booch, Rumbaugh, Jacobson, UML vodi za korisnike,


CET, Beograd, 2001.g.

Dijagram aktivnosti (activity diagram) prikazuje tok od


jedne do druge aktivnosti u sistemu.

[5] Terry Quatriani, Vizuelno modelovanje RationalRose


2002 i UML, CET, Beograd, 2003.g.

Dijagram stanja (statechart diagram) prikazuje konani


automat koji obuhvata stanja, tranzicije, dogaaje i
aktivnosti.

[6] www.objectsbydesign.com
[7] www.Holub.com/goodies/uml/
[8]http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/
UMLtutorial
i ostale korisne internet stranice za
pretraivanje informacija o UML dijagramima i raznovrsnih
resursa vezanih za objektno orjentisano modelovanje
[9] Nataa Subi, Seminarski radProjektni zahtevi za
upis studenata na I godinu, 2008.g.

211

You might also like