Feature Driven Development
Z Wikipedii
Feature Driven Development (FDD) to metodyka programowania należąca do grupy metodyk lekkich inżynierii oprogramowania (z których najbardziej znaną jest Programowanie ekstremalne). Jej głównymi celami jest umożliwienie wytwarzania użytecznego oprogramowania w powtarzalny i efektywny sposób, zapewniając wiarygodne informacje o stanie projektu informatycznego do wszystkich jego uczestników, z minimalnym narzutem na pracę programistyczną.
Podstawowe założenia FDD zostały sformułowane Steve Palmer i Peter Coad.
Spis treści |
[edytuj] Założenia
- FDD jest lekką metodyką oprogramowania
- Zapewnia dostateczną strukturę dla prac większych zespołów
- Kładzie nacisk na jakość wytwarzanego oprogramowania
- Kolejne wersje oprogramowania powstają często i zawierają użyteczne funkcje
- Zapewnia mechanizmy do wiarygodnego śledzenia postępu prac
- W FDD są używane testy jednostkowe
- FDD zakłada przypisanie kodu (klas) do właścicieli (programistów)
- Podczas implementacji wykonywane są inspekcje kodu
[edytuj] Role osób w projekcie
Główne role wyrożnione w FDD to:
- Kierownik projektu
- Główny architekt
- Eksperci dziedzinowi
- Kierownik dewelopmentu
- Główni programiści
- Właściciele klas
[edytuj] Fazy projektu
W FDD wyróżniono pięć faz projektu, z których dwie ostatnie są powtarzane wielokrotnie podczas projektu.
[edytuj] Budowa ogólnego modelu
Na początku projektu zespół projektowy opracowuje model systemu, zapewniający wspólne rozumienie jego architektury i stanowiący przewodnik do jego budowy podczas następnych faz.
[edytuj] Budowa listy cech
Wymagania użytkowe do systemu są gromadzone w postaci listy cech. Cechy są funkcjami systemu, które:
- są niewielkie,
- pełnią użyteczną funkcję,
- dają się zdefiniować przy pomocy pojedynczego zdania (np. w systemie dla hotelu może to być Rezerwacja pokoju dla klienta)
Cechy są grupowane w grupy i obszary funkcjonalne.
[edytuj] Planowanie według cech
W uzgodnieniu z klientem układany jest plan tworzenia oprogramowania według udokumentowanych cech. Cechom przypisywany jest priorytet, określana jest ich pracochłonność i związane z nimi ryzyko, a następnie cechy są układane w kolejności w jakiej będą implementowane.
[edytuj] Projekt według cech i Implementacja według cech
Dwie ostatnie fazy powtarzają się iteracyjnie do końca projektu. Na czas każdej iteracji tworzony jest zespół składający się z właścicieli klas zmienianych w ramach implementacji danej grupy cech. Zespół wykonuje szczegółowy projekt (być może modyfikując główny projekt stworzony w pierwszej fazie), a następnie implementuje zaplanowane cechy. Po każdej iteracji klientowi dostarczana jest kolejna wersja oprogramowania.
[edytuj] Śledzenie postępu projektu
Śledzenie postępu projektu w FDD dotyczy dwóch ostatnich faz (Projektowania i implementacji według cech). Procent wykonania projektu wynika z liczby zrealizowanych cech w stosunku do ogólnej ich liczby. FDD dostarcza wzorce schematów pozwalających graficznie przedstawiać postęp prac dla różnych uczestników projektu