Follow Us on Twitter

Unified Process, what the RUP is that?

Juni 2007 - Steeds meer ondernemingen stappen over op object georiënteerde software ontwikkelmethoden. Dit is vaak het geval in J2EE projecten, waar zo’n methode goed aansluit bij Java en het componenten ontwerp. De bekendste object georiënteerde software ontwikkelmethode is Rational’s Unified Process oftewel RUP.

Maar wat is RUP eigenlijk precies? Is het een methode, een tool of allebei? Kun je ermee ontwerpen of kun je er het ontwerpproces mee ondersteunen? En wat heeft RUP met object oriëntatie en UML te maken?

In dit Whitebook geven we een antwoord op deze vragen. Hopelijk is na lezing de interesse gewekt voor een nadere kennismaking met RUP. Dat laatste kunnen we van harte aanbevelen!

RUP en het Unified Process

RUP in het kort

RUP staat voor Rational Unified Process. Het is een toolset van het voormalige bedrijf Rational die het werken volgens de object georiënteerde software ontwikkelmethode Unified Process ondersteunt. Rational is na verloop van tijd overgenomen door IBM onder de naam IBM Rational Software en langzamerhand met de producten van IBM geïntegreerd.

Waarom Unified Process?

In de afgelopen decennia is de manier van software ontwikkelen sterk veranderd. De systemen moeten tegenwoordig snel en flexibel gebouwd kunnen worden. In plaats van één systeem dat alles regelt, zijn er nu vaak zelfstandige objecten en componenten met eigen verantwoordelijkheden, die in verschillende systemen hergebruikt kunnen worden.

Om de ontwikkeling van zulk soort systemen te ondersteunen zijn object georiënteerde ontwikkelmethoden ontworpen, waarvan het Unified Process er één is. Het Unified Process is door Booch, Jacobson en Rumbaugh ontwikkeld en beschreven in hun boek ‘The Unified Software Development Process’.

Wat is Unified Process?

Fases en disciplines
Het Unified Process is een iteratieve en incrementele object georiënteerde software ontwikkelmethode. Het onderkent vier fases in het ontwikkelproces te weten de aanvang (inception), de uitwerking (elaboration), de constructie (construction) en de overgang (transition). Binnen elke fase bestaan een aantal disciplines waarvoor activiteiten uitgevoerd moeten worden. De fases en de disciplines zijn weergegeven in Figuur 1.


Figuur 1: Fases en disciplines in het Unified Process in de tijd. Per discipline is aangegeven hoeveel inzet nodig is in de loop van het proces. Per fase kunnen 1 of meerdere iteraties uitgevoerd worden.

In de aanvangsfase start het project en stelt het team de systeemeisen op. In de uitwerkingsfase worden deze eisen nader geanalyseerd. Het team werkt daarnaast een risicovol deel van het systeem technisch uit. De resultaten worden vervolgens geanalyseerd en de manier van werken of de technische keuzes worden indien nodig aangepast. In de constructie fase wordt het project opgeschaald en het systeem gebouwd volgens de inzichten uit de uitwerkingsfase. Na de constructie volgt de overgang naar de daadwerkelijke productieomgeving en het in gebruik nemen van het systeem. De activiteiten van het team in de verschillende disciplines lopen tegen die tijd langzaam op hun eind.

Elke fase kan meerdere iteraties van dezelfde set activiteiten bevatten. Hierdoor groeit de functionaliteit van het systeem incrementeel, zijn aanpassingen op de functionaliteit mogelijk en verbetert de kwaliteit door nieuwe inzichten uit de vorige iteraties.

Activiteiten en Artifacts
Teamleden van de verschillende disciplines voeren de activiteiten uit. De resultaten van hun werk leggen ze vast in zogenaamde ‘artifacts’. Een artifact is een tastbaar resultaat zoals een document met systeemeisen, een diagram van op te stellen servers of een stuk softwarecode. Elke discipline kent zijn eigen artifacts waarmee andere disciplines verder werken.

Modellen en UML
De belangrijkste artifacts in het Unified Process zijn de modellen die uiteindelijk tot een gerealiseerd software systeem leiden. Er zijn een aantal modellen die in elkaar overgaan. Dit is weergegeven in figuur 2.


Figuur 2, Modellen in het Unified Process waarin van links naar rechts de overgang naar meer detail is weergegeven.

Het mentale model van de gebruikers wordt vertaald in een systeemeisen model. Het hieruit voortvloeiende architectuur model is een model van de technische invulling. Het design model is volledig gericht op de functionaliteit. Pas in het oplossingsmodel komen deze twee bij elkaar. De code vertegenwoordigt het meest gedetailleerde model van de werkelijkheid.

Het Unified Process beschrijft deze modellen met behulp van de Unified Modeling Language (UML).

RUP

Zoals gezegd is RUP een toolset om het Unified Process te ondersteunen. Het wordt o.a. aangeboden in de vorm van de Rational Suite. Naast een beschrijving van het Unified Process biedt de suite ook een aantal best practices en een aantal tools om het proces te ondersteunen.

RUP website

Allereerst is er de RUP website die het Unified Process beschrijft en uitlegt. De website geeft verder de activiteiten en artifacts van de verschillende disciplines schematisch weer, waarbij het detailniveau te kiezen is. Hiermee is direct duidelijk welke artifacts een teamlid nodig heeft, welke activiteiten hij of zij uitvoert en welke artifacts het resultaat zijn.

Een belangrijk aspect van RUP zijn de best practices die vastgelegd zijn in de website. Hiermee vermijdt een startend team een aantal bekende valkuilen.

Verder kan het proces aangepast worden aan specifieke projecteisen. Uitbreiding van een bestaand systeem zal bijvoorbeeld sommige disciplines minder belasten dan een nieuw systeem. Met behulp van de dynamische RUP website kunnen processtappen toegevoegd of weggelaten worden. De teamleden zien op de website alleen de activiteiten die voor dit specifieke project nodig zijn voor hun discipline.

Rose modeller

Het belangrijkste tool binnen de Rational Suite is Rose Modeller. In deze UML tool maken de analisten, architecten, developers enz. hun modellen en diagrammen.

Overige Tools

Requisite Pro
In Requisite Pro leggen de verschillende disciplines de systeemeisen vast. Het tool legt allerlei kruisverbanden tussen eisen en ontwerp documentatie waarmee snel gezocht en beoordeeld kan worden.

ClearCase
ClearCase beheert de verschillende versies van de artifacts en maakt het mogelijk tegelijkertijd aan onderdelen te werken en het werk samen te voegen.

ClearQuest
Met ClearQuest communiceren het testteam en de rest van de teamleden de gevonden fouten en bevindingen. De projectmanagers kennen aan deze bevindingen prioriteiten toe en verdelen de taken tussen de teamleden, waarna ze de voortgang in ClearQuest kunnen monitoren.

Test en rapportage
Naast deze tools bevat de suite nog een aantal tools voor test- en rapportage doeleinden.

Overwegingen

RUP en de Rational Suite bieden samen een complete ondersteuning van het object georiënteerde software ontwikkelproces. De combinatie van functionaliteit van de verschillende tools is zeer krachtig.

De aansluiting van de tools op elkaar laat echter soms te wensen over. De meeste tools zijn overgenomen van onafhankelijke productontwikkelaars, waardoor ze niet altijd even goed op elkaar zijn afgestemd.

RUP ondersteunt zoals gezegd het software ontwikkelproces. Een software ontwikkelmethode is echter geen projectmanagement methode. RUP biedt weliswaar projectondersteuning maar lang niet volledig. De aansluiting van de software ontwikkelmethode en de projectmanagement methode is in IT projecten altijd een probleem, maar is met RUP helaas nog niet opgelost. Er zijn echter al initiatieven voor de combinatie van RUP met Prince 2 die veelbelovende resultaten opgeleverd hebben. Daarover misschien in een volgend Whitebook meer.

Samenvattend

RUP is een toolset voor ondersteuning van het Unified Process, een object georiënteerde software ontwikkelmethode. Het Unified Process is een iteratief en incrementeel proces waarin verschillende fases en disciplines onderkend zijn. Het Unified Process levert resultaten op in de vorm van artifacts, waarvan de UML modellen van het systeem de belangrijkste zijn.

RUP en de Rational Suite bieden een aantal tools om het Unified Process te ondersteunen. De RUP website beschrijft het Unified Process en de best practices en het proces kan per project aangepast worden. Rose modeller bevat de systeemmodellen. De overige tools ondersteunen de organisatie van de systeemeisen, versiebeheer en het fouten- en bevindingenbeheer.

RUP biedt complete software ontwikkelondersteuning, maar is geen volledige projectmanagement tool. Een combinatie met Prince 2 biedt echter veelbelovende mogelijkheden.

Links

Auteur
Arianne van den Berg is senior Oracle/Java consultant en heeft ruim 10 jaar ervaring in de IT. Ze heeft zich vanuit een Oracle developer achtergrond ontwikkeld richting Java technologie en is de afgelopen jaren werkzaam in J2EE ontwikkel- en ontwerpprojecten.

Waardering:
 
Tags:

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.