25.10.2014 Views

Vad är RUP? RUP är en förkortning på "Rational Unified Process ...

Vad är RUP? RUP är en förkortning på "Rational Unified Process ...

Vad är RUP? RUP är en förkortning på "Rational Unified Process ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Gabriel Safir, Olle Johansson, Maja Carlsson, Martin Endstrasser, Christian Viterius<br />

SKDA32 - HT10<br />

<strong>Vad</strong> är <strong>RUP</strong>?<br />

<strong>RUP</strong> är <strong>en</strong> förkortning på "<strong>Rational</strong> <strong>Unified</strong> <strong>Process</strong>" och är <strong>en</strong> utvecklingsprocess som används vid<br />

systemutveckling. <strong>RUP</strong> utvecklades av IBM på 90-talet för att effektivisera och standardisera<br />

systemutvecklingsprocesser.<br />

En systemutvecklingsprocess är <strong>en</strong> konfigurerbar process vars stomme grundar sig i att skräddarsy<br />

alla åtgärder för varje <strong>en</strong>skild organisation. Det finns ing<strong>en</strong> process som passar alla<br />

mjukvaruutvecklingar och därför erbjuder <strong>RUP</strong> de bästa utvecklade och testade tillämpningarna<br />

som sker i <strong>en</strong> upprepande utvecklingscykel. Trots att <strong>RUP</strong> är grundad på <strong>en</strong> <strong>en</strong>kel och tydlig<br />

processarkitektur som skapar <strong>en</strong>hetlighet över <strong>en</strong> familj av processer kan <strong>RUP</strong> varieras för att passa<br />

olika situationer. Detta gör att <strong>RUP</strong> passar så väl stor som små utvecklingsorganisationer.<br />

<strong>RUP</strong> är äv<strong>en</strong> <strong>en</strong> guide för hur man ska använda UML (<strong>Unified</strong> Modeling Language). UML<br />

skapades från början av <strong>Rational</strong> Software och är ett standardspråk för bransch<strong>en</strong>. Detta gör att<br />

kommunikation<strong>en</strong> kring krav, arkitektur och design blir tydligare.<br />

Tank<strong>en</strong> med <strong>RUP</strong> är att skapa <strong>en</strong> disciplinerad inställning g<strong>en</strong>temot tilldelade arbetsuppgifter och<br />

ett ansvarstagande inom utvecklingsorganisation<strong>en</strong>.<br />

G<strong>en</strong>om att skapa goda förutsättningar för varje gruppmedlem g<strong>en</strong>om <strong>en</strong> lättillgänglig kunskapsbas<br />

med riktlinjer, mallar och verktyg för all kritisk utveckling ska <strong>RUP</strong> förbättra produktivitet<strong>en</strong> i<br />

teamet. En annan viktig del i <strong>RUP</strong>-modell<strong>en</strong> är att alla i utvecklingsteamet ska ha tillgång till<br />

samma kunskapsbas äv<strong>en</strong> om de olika team-medlemmarnas arbete skiljer sig åt mellan krav, design,<br />

test, projektledning eller konfiguratinshantering. Med samma kunskapsbas får hela teamet ett<br />

gem<strong>en</strong>samt språk, <strong>en</strong> gem<strong>en</strong>sam process och <strong>en</strong> gem<strong>en</strong>sam syn på hur man utvecklar programvaran.<br />

I <strong>RUP</strong> används ett objektori<strong>en</strong>terat synsätt när systemet designas vilket leder till att ev<strong>en</strong>tuella<br />

arkitekturella eller tekniska risker upptäcks tidigt i process<strong>en</strong>. På det här sättet skapas <strong>en</strong><br />

arkitekturc<strong>en</strong>trerad process. <strong>RUP</strong> bygger till skillnad från vatt<strong>en</strong>fallsmodeller på många små<br />

kompon<strong>en</strong>ter. För varje iteration finns <strong>en</strong> plan som beskriver vilka artefakter, dvs. information som<br />

används eller skapas som <strong>en</strong> del av mjukvaran i form av ett dokum<strong>en</strong>t, <strong>en</strong> modell eller <strong>en</strong><br />

programkod, som ska ingå. detta skapar <strong>en</strong> mer objektori<strong>en</strong>terad arbetsprocess.<br />

Det finns två strukturer för <strong>RUP</strong>-metod<strong>en</strong>:<br />

• Statiska struktur<br />

• Dynamisk struktur<br />

D<strong>en</strong> statiska struktur<strong>en</strong> av <strong>RUP</strong> består av fyra delar vilka är;<br />

• Roller<br />

• Aktiviteter<br />

• Artefakter<br />

• Discipliner / arbetsflöd<strong>en</strong>.<br />

D<strong>en</strong> dynamiska struktur<strong>en</strong> består istället av faser och iterationer i varje fas vilka är;<br />

• Förberedelse<br />

• Etablering<br />

• Konstruktion<br />

• Överlämning


Gabriel Safir, Olle Johansson, Maja Carlsson, Martin Endstrasser, Christian Viterius<br />

SKDA32 - HT10<br />

D<strong>en</strong> dynamiska struktur<strong>en</strong>:<br />

<strong>Rational</strong> <strong>Unified</strong> <strong>Process</strong> delar upp utveckling<strong>en</strong> i fyra faser; Förbredelse, Etablering, Konstruktion<br />

och Överlämning. I förbredelsefas<strong>en</strong> som är d<strong>en</strong> första av dem är syftet att alla intress<strong>en</strong>ter ska<br />

komma överr<strong>en</strong>s om vad som ska utvecklas och vad för resultat man vill åstadkomma. D<strong>en</strong>na fas tar<br />

huvudsaklig<strong>en</strong> upp tre aspekter, finna huvudkrav<strong>en</strong> på d<strong>en</strong> planerade produkt<strong>en</strong>, att prova ut idéer<br />

för produkt<strong>en</strong>s arkitektur och att planera projektet i sin helhet.<br />

D<strong>en</strong> andra fas<strong>en</strong> heter etableringsfas<strong>en</strong> och som namnet antyder är det <strong>en</strong> ”etablering” av d<strong>en</strong> förra<br />

fas<strong>en</strong>. Under d<strong>en</strong>na fas ska man jobba på flera fronter. Krav<strong>en</strong> ska preciseras och detaljeras,<br />

arkitektur<strong>en</strong> ska prövas, risker ska analyseras och elimineras och projektplan<strong>en</strong> ska byggas ut. Alla<br />

inblandade ska ha klart för sig vad som gäller efter etableringsfas<strong>en</strong>. D<strong>en</strong>na fas är också d<strong>en</strong> mest<br />

kritiska av dem alla, beslut som tas under d<strong>en</strong>na fas kan ha långtgå<strong>en</strong>de konsekv<strong>en</strong>ser för ett<br />

projekt. Det beror på att under d<strong>en</strong>na fas kommer övergång<strong>en</strong> från ett småskaligt projekt till ett<br />

fullskaligt sådant.<br />

Under d<strong>en</strong> tredje fas<strong>en</strong>, konstruktion, ska det stora arbetet utföras. En fast grund ska redan finnas<br />

för både projektet och produkt<strong>en</strong> när man inleder fas<strong>en</strong>. Detta innebär att arbetet som utförs handlar<br />

om att lägga till nya kompon<strong>en</strong>ter eller komplettera existerande i <strong>en</strong> redan existerande och utprovad<br />

struktur. Under d<strong>en</strong>na fas skalas arbetet också upp vilket medför att flera personer blir inblandade<br />

och ofta organiseras arbetet i flera parallella utvecklingsspår.<br />

När man kommer in i överlämningsfas<strong>en</strong> vilk<strong>en</strong> är d<strong>en</strong> sista av dem ska produkt<strong>en</strong> vara ”klar” i d<strong>en</strong><br />

b<strong>en</strong>ämning<strong>en</strong> att alla krav<strong>en</strong> har blivit implem<strong>en</strong>terade och att produkt<strong>en</strong> har g<strong>en</strong>omgått tester.<br />

Syftet med d<strong>en</strong>na fas är att finslipa implem<strong>en</strong>tation<strong>en</strong> och se till att d<strong>en</strong> nya produkt<strong>en</strong> börjar<br />

användas. Utveckling<strong>en</strong> under d<strong>en</strong>na fas delas up i två spår. I d<strong>en</strong> <strong>en</strong>a jobbar man med<br />

kvalitetssäkring, testing och felrättning och i d<strong>en</strong> andra utbildar man avvändarna och jämför det nya<br />

systemet med det gamla och konverterar t.ex. databaser.<br />

När och varför använda <strong>RUP</strong>?<br />

<strong>Rational</strong> <strong>Unified</strong> <strong>Process</strong> är ett stort ramverk. <strong>RUP</strong> skapar <strong>en</strong> gem<strong>en</strong>sam terminologi, som<br />

organisationer kan arbeta efter med stöd av UML, <strong>Unified</strong> Modeling Language.<br />

<strong>RUP</strong> är väldigt lätt avfärdat på grund av dess omfattning, formalitet och tidskrävande i anspråk till<br />

att ta fram och granska alla artefakter. Man borde däremot se användsningsfall som <strong>en</strong> resurs och ett<br />

sätt att spara tid inom projektet. Finns det tillräcklig dokum<strong>en</strong>tation och formuleringar av krav kan<br />

överstå<strong>en</strong>de tid användas till testplanering och dylikt. Dessa användningsfall<strong>en</strong> skall följa med<br />

under projektetsgång samt utvecklas.<br />

En fördel med <strong>RUP</strong> är att stor erfar<strong>en</strong>het inom mjukvaruutveckling finns samlad på <strong>en</strong> plats. <strong>RUP</strong><br />

är som nämt innan ett ramverk, och från detta ramverk måste processansvariga och projektansvariga<br />

sätta ihop <strong>en</strong> process som passar i just sitt sammanhang.<br />

◦ Risker<br />

<strong>RUP</strong> är riskdrivet, vilket innebär att man tidigt och kontinuerligt dokum<strong>en</strong>terar de mest<br />

akuta och troligaste riskerna för projektet och hur de kan åtgärdas.<br />

◦ UML<br />

Gem<strong>en</strong>samt språk som underlättar kommunikation<strong>en</strong>.


Gabriel Safir, Olle Johansson, Maja Carlsson, Martin Endstrasser, Christian Viterius<br />

SKDA32 - HT10<br />

◦ Glossary<br />

En välskött begreppskatalog gör att alla i projektet alltid vet vad saker betyder<br />

◦ Iterativ utveckling<br />

G<strong>en</strong>om att testa lite i taget, granska och kontrollera att det fungerar.<br />

◦ Test<br />

Ta reda på vlika krav som gäller och verifiera att det är det som byggs.<br />

Poäng<strong>en</strong> med <strong>RUP</strong> är att alla i ett projekt <strong>en</strong>as om <strong>en</strong> arbetsgång och <strong>en</strong> terminologi - att man har de<br />

formella strukturerna klart för sig.<br />

Källor<br />

Internetkällor:<br />

<strong>Rational</strong> <strong>Unified</strong> <strong>Process</strong>:<br />

Best Practices for Software Developm<strong>en</strong>t Teams -<br />

http://www.augustana.ab.ca/~mohrj/courses/2000.winter/csc220/papers/rup_best_practices/rup_bes<br />

tpractices.html#2 2010-10-05<br />

Mapping of SOA and <strong>RUP</strong>: DOA as Case Study - http://www.lub.lu.se/cgibin/ipchk/http://elin.lub.lu.se/link2elin?g<strong>en</strong>re=article&issn=&year=2010&volume=&issue=&collectio<br />

n=eprint&pages=&resid=a76bf064f5c905bc5017b16ad77c05ea&lang=<strong>en</strong> 2010-10-05


Gabriel Safir, Olle Johansson, Maja Carlsson, Martin Endstrasser, Christian Viterius<br />

SKDA32 - HT10<br />

Tryckta källor:<br />

Lundell, Hans - Fyra rundor med <strong>RUP</strong>, 2003, Stud<strong>en</strong>tlitteratur<br />

Strand, Lotta - UML & <strong>RUP</strong>: att lyckas med 00-projekt, 1971, Doc<strong>en</strong>do

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!