View page as slide show

Cykle życia oprogramowania

Źródło: wikipedia.org

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 (zazwyczaj) czynności jak w modelu kaskadowym, ale pozwala się na powroty z pewnych faz do innych faz poprzedzających.

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.

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

Model prototypowy (Software prototyping)

  • „Ogólny” model iteracyjny.
  • Fazy: 1) ustalanie celów, 2) rozpoznawanie zagrożeń, 3) tworzenie, 4) ocena i planowanie
  • Faza oceny w każdym cyklu pozwala uniknąć błędów lub wcześniej je wykryć
  • szczegółowe potraktowanie zagrożeń realizacji projektu (duże projekty)

Określenie wymagań → podział na kolejne „przyrosty” (iteracje), 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ć

  • podejście przyrostowe
  • zakłada, że wymagania odbiorcy (klienta) często ewoluują podczas trwania projektu → regularna adaptacja do zmieniających się wymagań
  • późne zmiany w specyfikacji nie mają destrukcyjnego wpływu na proces wytwarzania oprogramowania,
  • szybkie wytwarzanie oprogramowania wysokiej jakości, działające oprogramowanie jest dostarczane okresowo (tygodniowo), każda iteracja dostarcza działające, przetestowane funkcje
  • bezpośredni kontakt, jako najlepsza forma komunikacji w zespole i poza nim (zazwyczaj małe zespoły)
  • samozarządzalność zespołów
  • końcowy produkt może znaczeie odbiegać od pierwotnych zalożeń
  1. Wikipedia
  2. Ilona Bluemke, Inżynieria oprogramowania