Rational Unified Process

Rational Unified Process (ďalej RUP) je metodika vývoja softvéru vytvorená spoločnosťou Rational Software Corporation. Metodika RUP vychádza z kolekcie osvedčených praktík a postupov pri vývoji softvéru. Je použiteľná pre akýkoľvek rozsah projektu, no vďaka vysokej rozsiahlosti RUPu je vhodné prispôsobiť metodiku špecifickým potrebám. RUP je vhodnejší skôr pre rozsiahlejšie projekty a väčšie vývojárske tímy, keďže kladie dôraz na analýzu a návrh, plánovanie, riadenie zdrojov a dokumentáciu. Pre menšie projekty je vhodnejšie použiť niektorú z menej formalizovaných metodík ako napríklad Extreme Programming.

Architektúra 
RUP definuje štyri základné fázy vývoja, ktoré sú z časového hľadiska organizované do iterácii. Po skončení každej fázy sa vykonáva hodnotenie dosiahnutých cieľov danej fázy (milestone).
 Disciplína – je kolekcia príbuzných aktivít, ktoré sa vzťahujú k rovnakej oblasti záujmu v rámci celého projektu. RUP definuje disciplíny: 
	tvorba podnikového modelu (business modeling)
	správa požiadaviek (requirements)
	analýza a návrh
	implementácia
	testovanie, kontrola kvality
	nasadenie (deployment)
	riadenie zmien a konfigurácie (configuration & change management)
	riadenie projektu (project management)
	správa prostredia (environment)
 Iterácia – realizácia projektu môže byť rozdelená do viacerých častí, v rámci ktorých sa opakujú rovnaké procesy naprieč všetkými disciplínami. Každá iterácia je rozdelená do štyroch fáz – začatie (inception), rozpracovanie (elaboration), budovanie (construction) a zavedenie (transition). V rámci každej z fáz sa realizujú činnosti každej disciplíny, no s rozdielnym dôrazom. Napríklad na začiatku iterácie strávime viac času pri požiadavkách, zatiaľ čo v neskoršej fáze sa kladie dôraz na implementáciu.

Základné prvky metodiky 
 Artefakt – vstupný alebo výstupný produkt procesu. Môže nadobúdať rôzne formy (databáza, UML model, špecifikácia, textový dokument, stránka a iné) 
 Role – vyjadruje vzťah individualít (osoba či systém) a ich zodpovednosť v rámci procesu. Rola môže byť obsadená vo viacerých roliach súčasne a zároveň v jednej roli môže byť obsadených viacero rolí.
 Aktivita – predstavuje činnosť vykonávanú rolami.

Najlepšie praktiky (Best Practices) 
Metodika obsahuje takzvané „best practices“, čo sú praktiky užitočné pri realizácii vývoja softvéru, založené na dlhodobých skúsenostiach v tejto oblasti. Tieto praktiky sú v rámci metodiky podporované rôznymi nástrojmi pre automatizáciu špecifických procesov vývoja softvéru. Patria sem:
 Iteratívny vývoj
Iteratívny prístup zavádza rozdelenie projektu do časových úsekov (iterácií), pričom po skončení iterácie by mala byť dostupná spustiteľná verzia. (Aldorf, 2008) popisuje nasledujúce výhody: 
 Možnosť objektívneho posúdenia stavu projektu
 Rovnomernejšie pracovné vyťaženie vývojárskeho tímu. Projekt je koncipovaný tak, aby čo najskôr prinášal konkrétne výsledky. Pri rozdelení na iterácie je možné jednoduchšie sledovať priebeh projektu a dodržovanie stanovených termínov. 
 Možnosť testovania medziverzií
 Spolupráca s užívateľmi v priebehu celého projektu
 Včasné rozpoznanie nezrovnalostí medzi požiadavkami, návrhom a implementáciou. Vďaka tomu, že užívatelia majú možnosť kontrolovať a hodnotiť čiastkové časti systému, výrazne sa obmedzuje riziko vysokých nákladov spôsobených úpravami produktu v neskorších fázach vývoja. 
 Jednoduchšie zapracovanie požadovaných zmien
 Správa požiadaviek
Cieľom správy požiadaviek v metodike RUP je aktívny zber a dokumentácia požiadaviek, ktorý prebieha medzi zadávateľom a dodávateľom. Umožňuje tak spresňovanie zadania v priebehu celého projektu, čo opäť znižuje riziko neúspechu projektu.

 Používanie komponentovej architektúry
Komponentová architektúra je založená na použití komponent – zložiek architektúry, ktoré sú nezávislé, vymeniteľné a teda pomáhajú zvládať zložitosť systému a umožňujú znovupoužiteľnosť komplexnejších častí systému.

 Vizuálne modelovanie
Využitie vizuálneho modelovania vychádza z predpokladu, že človek lepšie chápe systém, ktorý si zjednoduší do menších modelov, pričom abstrahuje od nedôležitých vlastností daného modelu. RUP využíva k modelovaniu štandardný modelovací jazyk UML, čo prináša jednoduchšiu štandardizovanú komunikáciu v rámci tímu, ale i pri komunikácii so zákazníkom a zvyšuje konzistenciu projektu.

 Priebežná kontrola kvality
V minulosti sa už na mnohých projektoch ukázalo a stále sa potvrdzuje, že nájdenie a odstránenie problémov v neskorších fázach projektu je niekoľkonásobne drahšie než v úvodných fázach vývoja (Patton, 2002), preto RUP presadzuje kontrolu kvality a testovanie od počiatku projektu.

 Správa zmien
Hlavnou úlohou správy zmien je riadenie verzovania produktu, bez ktorého by vývoj v rámci viacerých tímov mohol prepadnúť do chaosu. V RUPe sa touto výzvou zaoberá disciplína – riadenie zmien a konfigurácie.

Referencie 
 IBM Rational Unified Process Web Site

Bibliografia 
 Aldorf, Filip. 2008. Metodika RUP. Objektová analýza, návrh a programování. [Online] Vysoká škola ekonomická v Praze, 3. Február 2008. [Dátum: 3. Máj 2009.] .
 Patton, Ron. 2002. Testování softwaru. s.l. : Computer Press, 2002. 80-7226-636-5.

Vývoj softvéru