Cykle życia oprogramowania

Software development methodology

Kolejne etapy następują po sobie bezpośrednio, przykłady:

Cechy

  • nie można przejść do następnej fazy przed zakończeniem poprzedniej
  • błąd popełniony w początkowej fazie ma wpływ na całość
  • model ten posiada bardzo nieelastyczny podział na kolejne fazy
  • łatwy nadzór, dużo dokumentacji

Aktywności się przeplatają. Te same czynności jak w modelu kaskadowym, ale pozwala się na powroty z pewnych faz do innych faz poprzedzających.

Przykłady:

Cechy

  • adaptowanie systemu do zmian w wymaganiach i korygowanie popełnionych błędów
  • trudne w nadzorowaniu, wymaga dodatkowych strategii dla uporządkowania procesu wytwarzania oprogramowania

Prototyp - niepełny system, spełniający cześć wymagań, przeznaczonym do przetestowania rozwiązań wykorzystanych do jego wytworzenia.
Produkt finalny może być (z zasady jest) różny od prototypu. Z założenia prototyp nie wchodzi w skład ostatecznego systemu.
Ostateczny system budowany jest od podstaw po zaakceptowaniu rozwiązań zastosowanych w prototypie.

Model prototypowy (Software prototyping)

Cechy:

  • Prototyp jest łatwy do zmiany
  • Zwiększa zrozumienie programistów co do potrzeb klienta
  • Pozwala klientowi zobaczyć jak mniej więcej system będzie wyglądał
  • Wysoki koszt budowy systemu

„Ogólny” model iteracyjny.

Cechy:

  • Można wykorzystać gotowe komponenty
  • Faza oceny w każdym cyklu pozwala uniknąć błędów lub wcześniej je wykryć
  • Cały czas istnieje możliwość rozwijania projektu.

Składanie systemu z gotowych komponentów.

określania wymagań → analizy możliwości wykorzystania istniejących, gotowych komponentów → ewentualna faza modyfikacji wymagań, w konsekwencji zastosowania komponentów → …

  • wymagania narzucane przez gotowe komponenty mogą być niezgodne z wymaganiami klientów
  • modyfikacje kodu mogą być utrudnione przez brak kontroli nad pochodzącymi z zewnątrz komponentami
  • mały koszt, głównie łączenie gotowych klocków

Określenie wymagań → podział na kolejne „przyrosty” (increments), funkcje systemu dające się zaimplementować i testować
Pierwsze wersje zazwyczaj ujmują podstawowe funkcjonalności systemu.

Problemem podstawowym wytwarzania przyrostowego jest określenie „przyrostów”, tak aby były one istotnymi fragmentami oprogramowania, a mimo to każdą z wersji dawało się niezależnie testować i oceniać

  1. Wikipedia
  2. Ilona Bluemke, Inżynieria oprogramowania