RUP

Rational Unified Process - iteracyjna i przyrostowa metodyka zaproponowana przez firmę Rational.

Zakłada, że oprogramowanie będzie tworzone w cyklach -- każdy z tych cykli dostarcza kolejną wersję oprogramowania. Pierwszy cykl to cykl początkowy, kolejne zaś noszą nazwę ewolucyjnych. Cykl życia oprogramowania można podzielić na następujące etapy:

nazwa etapu cele produkty
Rozpoczęcie
(ang. Inception)
ustalenie zakresu projektu i warunków granicznych dokument wizji systemu
lista przypadków użycia
słownik systemu
ocena ryzyka
Opracowanie
(ang. Elaboration)
definicja, walidacja architektury model najważniejszych przypadków użycia
model architektury (widok logiczny)
uściślony plan i ocena ryzyka
Konstruowaie
(ang. Construction)
otrzymanie użytecznych wersji systemu
minimalizacja kosztów wytwarzania
osiągnięcie adekwatnej jakości
produkt zintegrowany z docelową platformą
podręcznik użytkownika
opis bieżącego wydania
Przekazanie
(ang. Transition)
wdrożenie systemu u końcowego użytkownika działający system

Etapy dzielimy na iteracje. Iteracja to pełny ciąg produkcyjny który prowadzi do utworzenia działającej wersji produktu. W jednj iteracji zachodzi:

  1. zdefiniowanie celów iteracji i jej zaplanowanie
  2. wymagania są zdefiniowane i przeanalizowane
  3. projekt zostaje poszerzony
  4. kod jest napisany i przetestowany
  5. system jest integrowany i testowany
  6. iteracja jest zamykana i wnioski z niej przydają się w kolejnym etapie

W iteracji występują procesy:

  • Modelowanie przedsiębiorstwa (ang. Business Modelling)
  • Rozpoznanie wymagań (ang. Requirements)
  • Analiza i projektowanie (ang. Analysis and Design)
  • Wdrożenie (ang. Deplyment)
  • Zarządzanie konfiguracją (ang. Configuration Management)
  • Zarządzanie przedsięwzięciem (ang. Project Management)
  • Zarządzanie środowiskiem (ang. Environment)

Uwaga: nie należy mylić faz z terminologii Waterfall z fazami RUP. W RUP projektowanie, testowanie i implementacja są procesami występującymi w ietracjach !

Dobre praktyki RUP:

  1. Iteracyjne tworzenie oprogramowania
  2. Zarządzanie wymaganiami
  3. Używanie architektury komponentowej (CORBA, COM)
  4. Modelowanie wizualne oprogramowania (UML)
  5. Ciągła weryfikacja jakości oprogramowania
  6. System kontroli wersji produktów (kod, dokumentacja)

http://www.rational.com

(...) Nie ma bowiem łatwych odpowiedzi. Nie istnieje nic takiego jak najlepsze rozwiązanie - zarówno jeśli chodzi o narzędzia, jak i języki czy systemy operacyjne. Są jedynie systemy, które mogą być bardziej odpowiednie w konkretnych okolicznościach.

I tu właśnie do gry wchodzi pragmatyzm. Nie należy przywiązywać się do żadnej określonej metody, ale mieć na tyle rozległą wiedzę i doświadczenie, by w danej sytuacji wybrać dobre rozwiązanie. (...)

Andrew Hunt, David Thomas "Pragmatyczny Programista"