UML

1.Što je to UML

Uml je grafički jezik za opis software.Sam je jezik je nastao polovicom devedesetih a sve je počelo tamo negdje na početku osamdesetih.Već pred kraj sedamdesetih godina postalo je jasno da su potrebne neke promjene u proizvodnji software, naime sami projekti su postajali sve veći i kompliciraniji i bilo je sve teže održavati sam software i sve teže se snaći u projektu.Prvi odgovor na te zahtjeve je bilo uvođenje objektno orijetiranih jezika naime u software smo mi opisivali nasu stvarnost a to je bilo teško napraviti sa proceduralnim jezicima tipa C,Pascal ili Basic zbog toga su nastali C++,Smaltalk a nakon njih i mnogi drugi među kojima su i Java,Visual Basic te u zadnje vrijeme C# i .NET platforma sve to je doprinjelo tome da su sada projekti bili lakši za odražavati a i bilo je manje grešaka u samim programima no i dalje je kompleksnost rasla i trebalo je uvesti jos nešto.S vremeneom su sve više razvijane metode dizajniranja SW upravo zato da se neke stvari poopće i da se dobri dizajni što više ponavljaju , negdje tamo 1995 vodila se žestoka bitka izmedu nekoliko struja oko toga koji od jezika će postati standard vec godinu dana kasnije tri čovjeka(Booch,Rumbaugh i Jacobson) koji su bili najaktivniji u tom području su se udružila i polako nametnuli UML kao defakto standard a samo godinu dana kasnije OMG je prihavatio UML kao standard za dizajniranje SW.Tako je nastala verzija 1.0 UML-a a danas 2003 već imamo verziju 1.4 UML-a.

2.Čemu služi UML

Pa najveća zabluda ljudi u vezi sa UML-om je ta da je to nekakav čudotvorni jezik koji će vam omogućiti da uz hrpu dijagrama napravite novi OS, ili novi Office te iako je jedna od namjena jezika i automatsko generiranje koda to nije njegova jedina namjena a nije ni najvažnija zapravo najvažnija namjena UML-a je komunikacija.O čemu se radi pa očito je da software postaje sve kompleksniji i jednostavno teško je nekome objasniti što ste vi točno napravili gledajući samo u kod, iako je kod još uvijek najvjerodostojniji i najtočniji izvor informacija kod je jednostavno prekompliciran puno je jednostavnije pokazati čovjeku dijagrame jer još uvijek vrijedi ona da slika vrijedi tisuću riječi.Zamislite sljdeću situaciju dolazite u novi tim i dobili ste kao zadatak da napravite jedan od dijelova samog projekta da bi uopće vidjeli gdje se nalazi vaš dio u cijeloj toj priči najlakše je pogledati UML dijagrame i iz samih dijagama zaključiti što je vaš posao točno.Naravno to nije jedini vid komunikacije naime postoji mogućnost da ste u svom projektu došli do nekakvog velikog problema i potrebna vam je pomoć, tvrtka je pozvala vanjskog konzultanta koji će vam pomoći kad on dođe najjednostavnije mu je pokazati UML dijagrame velika je vjerovatnost da će iskusan konzultant ubrzo iz njih doći do zaključka gdje je problem.Sljedeći oblik komunikacije je u tome da vi kao programer komunicirate sa krajnjim korisnicima samog programa opet najlakši način da se to napravi je da koristite UML-dijagrame jer u krajnjem slučaju niti oni znaju što je to programski jezik niti ih to zanima a niti to trebaju znati.I nakraju priče o komunikaciji dolazi komunikacija između učitelja i učenika naime svaki kolegij o objektno orijentiranim jezicima najčešće počinje s nekom vrstom UML dijagrama.Uz sve to UML se koristi i za dokumentiranje, održavanje i generiranje koda.O samom generiranju koda ćemo govoriti malo kasnije.

3.Od čega se sastoji UML

Kao i svaki drugi jezik UML se sastoji od dvije stvari gramatike i pravopisa naime postoje pravila na koji način možete slagati dijagrame i pravila o tome koje elemente kako koristiti.Sami dijagrami se zovu meta modeli a sama pravila notacija.U biti UML se sastoji od nekoliko dijelova use case dijagrama,class dijagrama,interakcijskih dijagrama,dijagrama paketa,dijagrama stanja,dijagrama aktivnosti i fizičkih dijagrama.

Možda najzanimljiviji elementi UML-a su use case dijagrami,class dijagrami te fizički dijagrami.Svaki od ova tri dijagrama pokrivaju posebno područje, use case dijagrami se najčešce koriste u komunikaciji izmedu korisnika samog programa i programera te u definiranju dogadaja unutar programa npr. jedan use case bi mogao biti stiskanje miša na meniju File očito se ovdje radi o jednom događaju ali očito se radi i o nečemu što će korisnik uraditi.S druge strane sami use caseevi mogu imati više scenarija pa recimo u nasem primjeru jedan scenariji je da će pritiskom miša se otvoriti padajući meni File a drugi scenariji je recimo da će se srušiti cijeli program, oćito da ovaj drugi scenariji nije poželjan.Druga vrsta jako popularnih dijagrama su class dijagrami naime bit većine objektno orijetiranih jezika je mogućnost stvaranja novih tipova podataka zamislimo da imamo klasu auto iz nje očito možemo izvesti klasu bmw i mercedes a opet i sama klasa auto je nastala od klase vozilo očito da da tu postoje nekakvi odnosi nasljedivanja slični istim takvim odnosima u stvarnom svijetu (dijete nasljeduje osobine od roditelja,proizvod od proizvoda prije njega).Uzmimo za primjer dijagram na slici

Ovdje se radi o petoj labaratorijskoj vjezbi iz Jave sam dijagram je dobiven iz alata JBuilder koji proizvodi firma Borland ovdje se jasno vide neki elementi UML-a jasno se vidi da postoje tri paketa jedan je labaratorijska_vjezba5 jedan je java.lang a jedan je java.util ti paketi su ekvivalentni paketima u VHDL-u ili library u C++ ili nekom drugom jeziku sljdeci element je sam class dijagram vidi se daje Krug poseban slučaj Elipse i da od nje vuče neke osobine i svojstva isto tako vidi se da je elipsa poseban slučaj geometrijskog lika ako malo pobliže pogledate elipsu vidjet će te da ona ima attribute i metode i jedno i drugo su elementi UML-a attributi opisuju svojstva classe a metode njezinu funkcionalnost to jest što ona može napravit , najčešće su attributi varijable a metode funkcije.Što se fizičkih dijagrama tiče oni se sastoje od dijagrama komponenti i dijagrama distribucije , dijagrami komponenti pokazuju od čega se SW sastoji a dijagrami distribucije pokazuju način na koji će SW biti distribuiran na tržištu.

4.Koji je krajnji cilj

Krajnji cilj bilo kojeg software-skog projekta je program koji radi a ne dijagrami prema tome cilje je iz dijagrama iz generirati što više koda po mogučnosti cijelokupni kod za program.Na današnjem stupnju razvoja još uvijek nemamo alate koji su u stanju izgenerirati cijelokupni kod aplikacije no u stanju smo izgenerirati arhitekturu smog SW a to je sasvim dovoljno da nam olakša posao kad imamo arhitekturu onda ćemo raditi dodatne modifikacije i poboljšavati sam program.Danas se sve vise govori o alatima za modeliranje SW jedan od najpoznatijih je Rational Rose i vjerovatno jedan od najboljih to je program koji vam omogućuje da za većinu standardnih jezika nacrtate dijagrame u UML-u i da iz njih dobijete kod same aplikacije.

5.Kuda to sve ide

Danas postoje jezici tipa Clarion koji su gotovo u potpunosti grafički zapravo vi crtate svoj program i generirate kod želja je samih proizvođača da se što više pojednostavi postupak proizvodnje SW koji bi se podjelio u dva dijela jedan dio bi bio generiranje koda koji bi radili jako dobro optimizirani programi a drugi dio bi bilo samo grafičko dizajniranje što bi u krajnjem slučaju mogao raditi bilo ko, kada ćemo do tog stupnja doći ne znam ali jedno je sigurno posla u softwareskoj industriji će biti sve više.

6.Literatura