Modele procesów wytwarzania oprogramowania
Na temat modelów wytwarzania oprogramowania na blogu nie pisałem zbyt wiele. Poza dość krótkim artykułem na temat organizacji pracy w projekcie IT w sumie tematyka ta nie była w ogóle poruszana. Czas więc to zmienić…
Wybrałem dwa dość popularne modele procesów wytwarzania oprogramowania, na temat których chciałbym napisać parę słów. Skupię się więc na „modelu przyrostowym” oraz „modelu spiralnym”. Na temat SCRUM’a w najbliższym czasie przygotuję osobny artykuł. Do dzieła!
Model przyrostowy
Model przyrostowy jest jedną z technik wytwarzania oprogramowania która jest stosowana między innymi jeśli klient dopuszcza dostarczanie systemu etapami w okrojonej funkcjonalności.
Fazy
- planowanie – określenie wymagań, wykonanie wstępnego projektu całości systemu,
- wybór pewnego podzbioru funkcji systemu,
- szczegółowy projekt (wg. modelu kaskadowego) oraz implementacja konkretnej części systemu, która realizuje wybrane wcześniej funkcje,
- testowanie zrealizowanego fragmentu oraz dostarczenie go klientowi,
Etapy od 1 do 4 powtarzamy do momentu dostarczenia finalnej wersji oprogramowania.
Zalety
Do zalet „modelu przyrostowego” niewątpliwe zaliczyć możemy między innymi częste kontakty z klientem, brak konieczności definicji całości wymagań w początkowej fazie projektu czy też możliwość wczesnego wykorzystania przez klienta fragmentów systemu.
Wady
Do wad możemy przypisać dodatkowy koszt pracy spowodowany niezależną realizacją fragmentów systemu lub też potencjalne trudności związane z podziałem prac.
Model Spiralny
Fazy
- planowanie,
- analiza ryzyka,
- rozwój kolejnej części projektu (konstrukcja),
- testowanie (testowanie produktu przez klienta),
Etapy od 1 do 4 powtarzamy do momentu dostarczenia finalnej wersji oprogramowania.
Zalety
Do zalet modelu spiralnego możemy zaliczyć między innymi częste kontrole jakości w kolejnych cyklach spirali, nastawienie na wykrywanie błędów i działania kontrolne, a nie zapobieganie czy też orientację na zarządzanie, czas i budżet.
Wady
Trzeba również zwrócić uwagę, że model ten nie jest do końca dopracowany, każda aplikacja powstaje w innych warunkach co nie zawsze skutkuje możliwością wdrożenia modelu spiralnego. Dodatkowo zwrócić należy uwagę na wysoki koszt usuwania błędów wykrytych w finalnych etapach procesu wytwarzania oprogramowania.