pomen jezika za objektno modeliranje uml tomaž domajnko aleš Živkovič povzetek v članku je predstavljen pomen standardiziranega jezika za modeliranje uml podan je izvor jezika in spremembe posameznih izvornih konceptov prikazana je neodvisnost jezika od razvojnega procesa in uporabljenih programskih jezikov v implementaciji prikazan je vpliv poenotenja jezika za modeliranje na razvoj orodij in možnosti uporabe jezika v vseh področjih razvoja programskih sistemov na kratko povzamemo tudi značilnosti razvojnega procesa imenovanega objectory uvod vsaka inženirska panoga potrebuje standarden jezik kateri inženirjem omogoča nedvoumno komunikacijo pri razvoju programske opreme smo priča pestri množici notacij med katerimi preslikava ni zmeraj možna veliko število razvojnih tehnik in mnoge bolj ali manj podobne notacije so v razvoj programskih sistemov prinesle dvoumnost največja prednost jezika za objektno modeliranje uml unified modeling technique je prav poenotenje komunikacije v svetu programskega inženirstva največja podjetja in njihova orodja že danes podpirajo jezik uml kar pomeni da lahko uporabniki pričakujejo enostavno izmenjavo podatkov npr oracle odd platinum paradigmplus rational rose microsoft visual modeler in popolno podporo vsemu kar jezik za objektno modeliranje ponuja ob standardizaciji kot primarnem cilju so avtorji poskušali doseči jasen pogled v proces razvoja programskih sistemov medtem ko večina objektnih metod sestoji iz modeliranega jezika in procesa razvoja pa jezik uml podaja samo modelirni jezik notacijo ki jo metode uporabljajo za izražanje modelov zato uml imenujemo jezik za objektno modeliranje in ne metoda oziroma metodologija za komunikacijo o rezultatih razvoja med razvijalci potrebujemo enotno notacijo ki prikaže rezultate dela in nas ne obremenjuje s postopki kateri so privedli do teh rezultatov velik spekter različnih procesov razvoja ki so posledica prilagajanja problemskim situacijam bi poenotenje metode otežil in časovno razvlekel jezik uml lahko uporabljamo s poljubnim razvojnim procesom saj zajema vse diagramske tehnike kljub temu avtorji jezika uml razvijajo tudi proces razvoja katerega imenujejo rational objectory ki bo predstavljal predlogo za oblikovanje lastnega procesa razvoja proces rational objectory bo popolnoma poenoten in pripravljen na uporabo jezika uml jezik uml zgodovina jezik uml je naslednik vala objektno orientiranih metod ki so se pojavile koncem tih in v začetku tih let Čeprav ležijo osnovna izhodišča jezika uml v metodah treh avtorjev booch a rumbaugh a in jacobson a je doseg jezika mnogo širši jezik uml je v postopku standardiziranja in bo v prihodnosti postal še ni uradno de facto pa je že industrijski standard stadarden jezik za modeliranje razvoj jezika uml je bil podobno kot razvoj programskih sistemov iterativen in inkremelentalen rezultat je standard razvit na podlagi idej in prispevkov velikega števila sodelujočih iz sfere objektne tehnologije slika prikazuje zgodovinski razvoj jezika uml po neupešnem poskusu skupine omg da bi pritegnila k sodelovanju vodilne metodologiste sta z delom na standarni metodi razvoja pričela jim rumbaugh in grady booch svoje prve rezultate o poenoteni razvojni metodi sta objavila na oopsla unified method hkrati sta objavila tudi novico da je rational software kjer sta bila oba v tistem trenutku zaposlena kupil podjetje objectory in da se bo ivar jacobson pridružil razvojni skupini kot protiutež skupini ki se je formirala v podjetju rational so se preostali vodilni metodologisti združili v konzorciju open ko je januarja potekel rok za oddajo predlogov za standardizirano metodologijo razvoja je bilo predloženih pet predlogov slika razvoj jezika za objektno modeliranje tudi podjetje rational je predlagalo svoj poenoten jezik do tega trenutka so se odločili da bodo jezik in proces razvijali ločeno in ga podal v obravnavo skupini omg na podlagi ugotovitev dela skupine omg so predlagatelji ostalih predlogov umaknili svoje predloge in se pridružili razvoju enotnega razvojnega jezika uml rezultati dela standardizacijske skupine javnih odzivov in drugih strokovnih partnerjev so vodili do izdaje najnovejše verzije uml osnovne cilje razvoja jezika uml lahko strnemo v naslednjih točkah razviti vizualni modelirni jezik ki bo uporabnikom omogočal razvoj in izmenjavo modelov pri tem se jezik uml osredotoča na razmeroma majhno množico osnovnih konceptov ki zadovoljujejo potrebe v razvoju večine programskih sistemov in katere ni nujno vedno uporabiti v polnem številu omogočiti razširjanje ali specializacijo osnovnih konceptov in s tem prilagajanje jezika posebnim potrebam projektov brez da bi predefinirali osnovne koncepte tak pristop pa povečuje sposobnost komunikacije razviti jezik ki bo neodvisen od programskega jezika in razvojnega procesa kar zagotavlja široko paleto projektov kjer lahko jezik uml uporabimo brez modifikacij razviti formalno osnovo za razumevanje modelirnega jezika kar pomaga uporabniku pri spoznavanju in uporabi jezika uml definira formalno definicijo statičnega formata modela s pomočjo metamodela predstavljenega v obliki razrednih diagramov jezik uml zagotavlja pravilnost omejitev s pomočjo jezika ocl object constraint language in njemu pridruženi podmnožici naravnega jezika vzpodbuditi rast trga objektnih orodij saj poenotena razvojna notacija omogoča boljšo podporo s strani dobaviteljev in lažjo izmenjavo podatkov razviti podporo za visokonivojske razvojne koncepte kot so sodelovanja ogrodja vzorci in komponente jasno definirana semantika naprednih konceptov je zelo pomembna za popolno izkoriščanje objektne tehnologije in ponovne uporabe integrirati najboljše izkušnje iz prakse ključno vodilo v ozadju razvoja jezika uml je bilo združevanje najboljših izkušenj iz praktičnih primerov z upoštevanjem različnih pogledov na nivoje abstrakcije arhitekture problemska področja faze razvoja tehnike implementacije itd jezik uml nedvomno predstavlja takšno integracijo slika proces uveljavljanja jezika uml slika prikazuje pomen naštetih točk jezik za objektno modeliranje uml je nastal iz potrebe po poenotenosti in združitvi objektnih razvojnih metod ki obstajajo v svetu razvoja programskih sistemov standardizacija jezika omogoča odločitev za tehnologijo in ne za proizvojalca kar od razvijalcev podpornih orodij zahteva določeno mero sodelovanja če želijo doseči popolno medopravilnost orodij osnova za to je standarden jezik uml nenazadnje mora jezik biti uporabljen v industrijskem okolju da bo doživel svoje razširjanje in možnost izkoriščanja delo na tem področju danes teče zelo aktivno in pričakujemo lahko da bodo vsa podporna orodja v prihodnosti podpirala jezik uml vsa vodilna podjetja že danes s svojimi orodji podpirajo jezik uml in omogočajo uporabnikom da se odločijo za modelirni jezik kot tak in ne za njihovo izpopolnjeno implementacijo priporočil ali standardov predstavitev jezika jezik uml v trenutni verziji definira notacijo in metamodel jezika notacija je grafična predstavitev jezika sintaksa ki sama po sebi ne daje jasnega in nedvoumnega pomena posameznih konstruktov splošna uporaba notacije največkrat definira nekatere neformalne definicije toda bolje bi bilo poiskati bolj formalno definicijo ideja rigoriznih specifikacij in jezikov načrtovanja je prevladujoča na področju formalnih metod če uporabljamo tehnike s tega področja izražamo specifikacije in načrtovanja s pomočjo izpeljank predikatnega računa takšne definicije so matematično natančne in ne dopuščajo dvoumnosti a na žalost niso vsesplošno uporabne tudi če lahko dokažete da program zadovoljuje matematični specifikaciji nikakor ne morete dokazati da te specifikacije v resnici izpolnjujejo uporabnikova pričakovanja večina objektnih metod ima v svoji definiciji le malo rigoroznosti vendar so avtorji jezika za objektno modeliranje uml poskušali jeziku dati formalno podlago brez da bi žrtvovali njegovo uporabnost ena od možnosti je definicija metamodela največkrat razrednega diagrama ki definira notacijo in natančno ter nedvoumno definira pomen posameznih gradnikov avtorji so jezik za objektno modeliranje uml zgradili štiriplastno meta metamodel ki definira jezik za specifikacijo metamodela in predstavlja infrastrukturo za arhitekturo metamodela metamodel ki je primerek meta metamodela in definira jezik za specifikacijo modelov model ki je primerek metamodela in definira jezik za opis informacijske domene uporabniški objekti ki so primerki modela in definirajo informacijsko domeno takšna zasnova jezika omogoča uporabo jezika na vseh področjih saj vsebuje gradnike ki omogočajo modeliranje različnih sistemov poleg formalne zasnove jezika so avtorji v jezik dodali tudi jezik ocl object constraint language jezik za določanje omejitev ki je popolnoma formalen in omogoča oblikovanje omejitev vseh modelov vloge v asociacijah števnost povezav pred in po pogoji metod ipd kot kažejo izkušnje je kombinacija formalne zasnove jezika za modeliranje prinesla prednosti na dveh področjih po eni strani je jezik splošno uporaben a jasno definiran kar omogoča uporabo jezika uml na vseh problemskih področjih po drugi strani pa jasno definirana struktura jezika omogoča lažji razvoj podporne programske opreme gradniki povedali smo že da je jezik uml nastal na podlagi večih metod v nadaljevanju bomo naredili pregled elementov jezika uml in iz katere metode izvirajo tabela prikazuje nekatere najpomembnejše gradnike objektnega modeliranja prikazani so gradniki v jeziku uml in v nekaterih predhodnih objektnih tehnikah vidimo lahko da so nekateri koncepti v različnih tehnikah imeli drugačna imena ali celo drugačen pomen vse to je vodilo v neskladno uporabo in mešanje posameznih gradnikov ter nerazumevanje konceptov pri prehodu med metodami caption tabela terminologija razrednih diagramov uml razred asociacija generalizacija agregacija booch razred uporablja deduje vsebuje coad razred objekt povezava primerka gen spec del celota jacobson objekt asociacija deduje sestavljen iz odell tip objekta relacija podtip kompozicija rumbaugh razred asociacija generalizacija agregacija shaer mellor objekt relacija podtip iz diagramskih tehnik jezika uml lahko razberemo štiri različne poglede na problemsko področje prvi je pogled na uporabniške zahteve kjer uporabljamo diagram primerov uporabe ki izvira neposredno iz jacobsonove metodologije in je bil za potrebe jezika uml poenostavljen v drugo skupino lahko uvrstimo razredni diagram ki prikazuje statično sliko sistema razredni diagram je sestavljen iz razredov in povezav med razredi in je le nekoliko spremenjena diagramska tehnika iz metodologije omt object modeling technique rumbaugh tretji pogled predstavlja skupina diagramskih tehnik ki modelirajo obnašanje programskega sistema tu najdemo diagram prehajanja stanj prevzet iz večh metod s katerim opišemo prehajanja stanj za posamezne razrede in diagram aktivnosti nov koncept ki prikazuje izvajanje aktivnosti in dovoljuje tudi modeliranje paralelnih aktivnosti tretji pogled na programski sistem je pogled na interakcijo objektov ki zagotavljajo neko funkcionalnost celotnega sistema v to skupino spadajo diagram zaporedja prevzet iz večih metod poimenovanje je v vsaki metodi praviloma drugačno ki prikazuje tipično interakcijo objektov v scenarijih uporabe sistema in diagram sodelovanja ki prikazuje način sodelovanja med množico objektov z namenom izvršiti določeno operacijo zadnjo skupino tvorijo diagrami implementacije s katerimi prikažemo implementacijske konstrukte v jeziku uml so to komponentni diagram ki prikazuje organizacijo komponent in diagram razvoja in dobave s katerim prikažemo konfiguracijo programskega sistema in okolja kamor sistem namestimo veliko število diagramskih tehnik bi kaj hitro lahko uporabnika zmedlo in ga usmerilo v uporabo tehnologije zaradi tehnologije namen jezika uml je uporabiti le tiste diagramske tehnike ki so pomembne za določeno problemsko področje nikakor pa ne vseh tehnik na vseh področjih tipično uporabnost posameznik tehnik v procesu razvoja shematsko prikazuje slika kjer pa se moramo zavedati da so diagrami prikazani le v fazah kjer so posebno pomembni jezik uml uvaja celo vrsto novosti katere sicer poznamo a jih prvič srečamo v sklopu modelirnega jezika koncept sterotip s katerim lahko poljubnemu elementu jezika damo nov pomen oziroma pomen prilagodimo zahtevam razvojnega procesa koncept vzorcev ki jih jezik uml kot prvi uvaja v proces razvoja vzorec v jeziku uml je lahko uporabljen praktično kjerkoli in pomeni jedro idejne rešitve ki je v preteklosti vodila do uspešne imeplementacije jezik uml uvaja razvoj na podlagi komponent in v skladu s tem uvaja komponento kot gradnika programskih sistemov komponenta je definirana kot množica razredov ki je ločena od sveta z jasno definiranim vmesnikom prvič se v jeziku za modeliranje pojavi tudi diagram aktivnosti ki ne izhaja iz nobene od objektnih tehnik dodan je bil z namenom omogočiti modeliranje paralelnih sistemov slika shematski prikaz uporabe diagramskih tehnik razvojni proces povedali smo že da je jezik uml modelirni jezik in ne metoda razvoja saj nima definiranega procesa razvoja ki je pomemben del metode kljub temu se avtorji jezika v zadnjem času precej poglobljeno pripravljajo na izdajo procesa razvoja rational objectory process ki bi naj združil najboljše postopke obstoječih procesov avtorji so že na samem začetku ugotovili da splošnega procesa razvoja ne bo moč razviti zato razvijajo ogrodje kjer si vsak uporabnik procesa lahko prilagodi svojim zahtevam in uporabi samo tehnike ki so primerne in smiselne za proces iterativno inkrementalna narava objektnega pristopa ima za posledico prekrivanje med posameznimi fazami razvoja kar narekuje predstavitev procesnega modela v dveh dimenzijah po času življenjski cikel procesa in komponentah procesa tovrstna predstavitev v procesnem modelu poveže dva do sedaj ločena pogleda na razvoj programske opreme gledano iz časovne perspektive govorimo o razvojnih ciklih fazah iteracijah in mejnikih kar je značilno za upravljalski nivo gledanja na projekt tehnično gledano je proces razvoja sestavljen iz komponent aktivnosti delovnih tokov ipd slika prikazuje dvodimenzionalni pogled na razvojni proces na sliki lahko vidimo kako so posamezne faze organizirane po času in si sledijo zaporedno hkrati pa je potrebno gledati tudi organizacijo po komponentah in delež posamezne konponente ki se uporablja v posamezni fazi kjer lahko vidimo da se komponente praviloma uporabljajo v večih fazah slika process rational objectory Življenjski cikel vsake generacije programske opreme lahko razdelimo na štiri faze vsaka faza se zaključi z natančno definiranim časovnim mejnikom in zahteva sprejetje odločitev ki lahko v veliki meri vplivajo na uspešnost projekta faze so začetna faza definicija projekta s poslovnega stališča in določitev obsega faza zbiranja informacij analizira problemskega področja postavitev ogrodja arhitekture izdelava projektnega plana faza konstrukcije izdelava celotnega proizvoda faza prevzema predaja izdelka v uporabnikovo okolje statične komponente procesa vsebujejo komponento zajemanje zahtev pridobitev uporabnikovih zahtev analiza definicija operacij in objektov sistema arhitekturno načrtovanje določevanje logične strukture sistema načrtovanje objektov definicija objektov implementacija načrtovanje realiziramo v programskem jeziku testiranje izvedemo integracijsko testiranje faze življenskega cikla so prikazane na sliki v vodoravni smeri zakljuČek standardiziranje jezika je nedvomno osnova za moderna orodja in procese razvoja na tem področju je velik pomen odigrala skupina omg kot ključni faktor ki je spodbudil razvoj standardnega jezika modeliranja s čimer bi zagotovili medopravilnost orodij ker so orodja močno odvisna od notacije in semantike jezika zagotavlja jezik uml semantični metamodel in vmesnik do orodja v dokumentaciji jezika pa so podani nekateri napotki do uspešne implementacije orodij jezik uml je vizualni modelirni jezik in ne vizualni programski jezik je jezik za predstavitev elementov programskih sistemov Čeprav je jezik uml v svoji zasnovi neodvisen od objektnih programskih jezikov pa lahko z njihovo uporabo dosežemo najboljše iz obeh svetov mnogo organizacij bo uporabljalo uml kot skupni jezik ki bo uporabljen v kontekstu različnih razvojnih procesov prav zato je uml procesno neodvisen in prilagodljiv kar pomeni da lahko uporabnik uporabi notacijo v poljubnem procesu razvoja poenotenje jezika za modeliranje je vsekakor pozitiven korak naprej ki omogoča proizvajalcem podporne programske opreme razvoj podporne programske opreme ki bo že v svojem izhodišču imela sposobnost povezovanja in izmenjave podatkov to pa hkrati za uporabnike pomeni da se ne bodo več odločali za proizvajalca ampak tehnologijo to pa je bistvo standardizacije literatura fowler m kendall s uml distilled applying the standard object modeling language addison wesley booch grady object oriented analysis and design with applications the benjamin cummings publishing company derr kurt w applying omt sigs books new york jacobson ivar object oriented software engineering a use case driven approach addison wesley publishing company jacobson ivar the object advantage bussines process reeingineering with object technology addison wesley publishing company martin james principles of object oriented analysis and design prentice hall wilkie george object oriented software engineering the professional developer's guide addison wesley publishing company platinum paradigm plus users guide ver rational corporation uml september vaše mnenje o prispevku splošno odličen vreden branja ni vreden branja dolžina predolg ravno prav prekratek strokovnost preveč strokoven ravno prav preveč splošen opombe vaše ime priimek e pošta podjetje