RUP

Allmänt om RUP

RUP (Rational Unified Process) är en projektstryrnings-/utvecklingsmodell  för design och implementering av IT-system som är utvecklat av IBM Rational Software och ägs idag av IBM.

Sex skäl att använda RUP som utvecklingsmodell

1. Iterativ utveckling:

Det är en av de viktiga tillämpningarna i RUP som handlar om att kunna gå tillbaka och ändra på till exempel systemets krav och planera om följande iterationer. Läs mer på Iterativ utvecklingsmetod.

2. Hantering av systemkrav:

Funktionella och icke funktionella systemkrav dokumenteras för att lättare kunna ändra ett befintligt eller nytt system.

Man inhämtar och strukturerar kraven med så kallad användningsfall (use case). Varje användningsfall är en beskrivning av ett eller flera arbetsflöden på hur ett system ska interagera med slutanvändaren (eller annat system) för att uppfylla ett specifikt affärsmål. Användningsfall innehåller inte tekniska beskrivningar utan mer beskrivningar från slutanvändaren.

3. Användning av komponentbaserad arkitektur:

Komponentbaserad arkitektur beskriver hur man arkitektuellt strukturerar mjukvaran. Komponenter är delsystem (en del av en mjukvara) som fungerar självständigt och bidrar med någon form av funktionalitet. Fördelen med detta är att det ger en bättre flexibilitet och effektivare programåtervinning då man kan återanvända dessa komponenter på andra ställe i arkitekturen och därigenom både vinna tid och pengar.


4. Modellera visuellt:

Att  modellera visuellt är en viktig del i utvecklingsarbetet. Det hjälper utvecklarna att konstruerar och se strukturen och beteendet i systemets arkitektur.

Unified Modelling Language (UML) är det dominerade modelleringsspråket på marknaden. UML visar en avbild av verkligheten och detta skapar en övergripande förståelse vid komplexa systemarkitekturer. Det bidrar även till att undvika tolkningsmissförstånd samt fånga upp funktionskrav.

5. Kontinuerlig kvalitetskontroll:

Kontinuerlig kvalitetskontroll är inbyggd i alla aktiviteter i RUP, vilket gör att man vid varje iteration verifierar att den kod som produceras är funktionell och pålitlig. Detta är en väldigt viktig del i systemutveckling då det bli 100 – 1000 gånger mer kostsamt att hitta och åtgärda programvaruproblem efter driftsättning.
Man får tre kostnader:
- Kostnad för åtgärden
- Kostnad för uteblivna möjligheter
- Kostnad för förlorade kunder

6. Hantera förändringar:

Förändringar är oundvikliga i systemutveckling och att kunna hantera dem är mycket avgörande för slutresultatet. RUP hjälper till att kontrollera och dokumentera alla förändringar med hjälp av Change Request Management (CRM). CRM handlar om att hantera ändringshantering samt konfigurationshantering.

Utvecklingsmodellen

RUPs fyra modelleringsfaser:

1. Föreberedelsefasen (Inception phase)

Under denna fas görs avgränsningar för projektet. Man identifierar alla ”use cases” och beskriver dessa. I slutet av denna fas kommer den första stora milstolpen.

2. Beredningsfasen (Elaboration phase)

Under denna fas analyserar man källan till problemen, man upprättar den arkitektoniska grunden, utvecklar projektplanen och eliminerar de största riskerna. I slutet av denna fas  kommer nästa stora milstolpe där man beslutar om konstruktionsfasen skall påbörjas eller inte.

3. Konstruktionsfasen (Conception phase)

Under denna fas utvecklas alla komponenter och applikationer som ska integreras i produkten. Det sista man gör är att testa produkten ordentligt.

4. Överlämningsfasen (Transition phase)

Under denna fas installeras produkten hos användaren. Man arbetar mycket med eventuella problem med det levererade systemet, användarvänliga dokument, utbildning av personal och support. Milstenen för denna fas är release av produkten.

RUPs nio primära arbetsflöden

Utveckling

1. Affärsmodellering (Business Modeling workflow)

I detta arbetsflöde är ett av de stora problemen kommunikation mellan verksamhetsutveckling och mjukvaruutveckling. Det som verksamhetsutvecklarna kommer fram till används ibland inte på rätt sätt som input för mjukvaruutvecklarna och tvärt om.

För att underlätta denna process används samma språk och processer för båda parter, man använder så kallade ”Business use case”. Dokumentationen av Business use case görs genom tekniken Unified Modeling Language (UML).

2. Kravanalys (Requirements workflow)

I detta arbetsflöde arbetar utvecklarna tillsammans med kunden och kommer överens om vad systemet skall utföra och varför. Man dokumenterar nödvändiga funktioner och restriktioner.

3. Analys och design (Analysis and Design workflow)

I detta arbetsflöde konverterar man den tidigare gjorda kravanalysen till en beskrivning hur systemet kommer att konstrueras med alla funktioner, arkitektur och  hur det ska implementeras.

4. Impelmentation (Impelmentation workflow)

I detta arbetsflöde implementeras nu systemet utifrån den tidigare gjorda analysen och designen.

En viktig del i implementeringsprocessen är återanvändning av kod och komponenter, detta leder till ökad kontroll i projektet och systemutvecklingsarbetet.

5. Test (Test workflow)

I detta arbetsflöde säkerställer man interaktionen mellan olika delobjekt och man kontrollerar att systemets funktionalitet överensstämmer med kraven.

Testerna genomförs kontinuerligt genom projektets gång då man tidigt i processen vill upptäcka fel. Detta gör att man kan åtgärda felen vilket förhindrar dyra kostnader i form av senare underhåll och åtgärder.

Systemets komponenter testas enligt tre kvalitetsprinciper:
1. Pålitlighet
2. Funktionalitet
3. Effektivitet

6. Driftsättning (Deployment workflow)

I detta arbetsflöde har man produktreleasen och levererar mjukvaran till slutanvändaren.

I detta arbetsflöde ingår ett flertal aktiviteter:
- Extern release av mjukvaran
- Paketera mjukvaran
- Distribuera mjukvaran
- Installera mjukvaran
- Förse användarna med utbildning
- Förse användarna med support

Stödjande

1. Projektledning (Project Management)

I detta arbetsflöde tittar man på projektets begränsningar och sätter upp ramverket för planering, deltagande och utförande av projektet så att man kommer fram till en produkt som tillfredsställer både kunden och användarna. Man tittar även på de potentiella risker som finns i projektet och försöker åtgärda dem.

2. Konfigurations- och ärendehantering (Configuration and Change Management workflow)

I detta arbetsflöde skapar man ramverk för hur man kontrollerar de stora mängderna av artefakter (modeller, dokument, källkod, exekverbar kod) som produceras av flera personer inom det gemensamma projektet. Man tar hänsyn till att flera personer kan arbete med en och samma artefakt och att det kan finnas flera versioner i systemet.

En viktig del i detta arbetsflöde är inrapporteringen av fel som hittas och hur man hanterar och utvärderar detta genom hela projektets livscykel.

3. Utvecklingsmiljö (Environment workflow)

I detta arbetsflöde förser man organisationen en miljö för mjukvaruutveckling. Det till exempel vara processer och verktyg som underlättar för utvecklingsteamet.