Cykle życia oprogramowania
Źródło: wikipedia.org
Sekwencyjne
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
Ewolucyjne
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
Metody ewolucyjne i odmiany
-
-
-
-
programowanie odkrywcze
-
-
inne…
Model prototypowy (prototypowanie)
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)
Model spiralny
„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)
Model przyrostowy (iteracyjny)
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ć
Metodyki zwinne - Agile
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ń
Żródła
Wikipedia
-
Ilona Bluemke, Inżynieria oprogramowania
-