Feature Driven Development

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Feature Driven Development (FDD) to metodyka programowania należąca do grupy metodyk zwinnych 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 przez Steve'a Palmera i Petera Coada.

Założenia[edytuj | edytuj kod]

  • FDD jest zwinną 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ą nowe 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

Role osób w projekcie[edytuj | edytuj kod]

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

Fazy projektu[edytuj | edytuj kod]

W FDD wyróżniono pięć faz projektu, z których dwie ostatnie są powtarzane wielokrotnie podczas projektu.

Budowa ogólnego modelu[edytuj | edytuj kod]

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.

Budowa listy cech[edytuj | edytuj kod]

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.

Planowanie według cech[edytuj | edytuj kod]

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.

Projekt według cech i Implementacja według cech[edytuj | edytuj kod]

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.

Śledzenie postępu projektu[edytuj | edytuj kod]

Ś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

Linki zewnętrzne[edytuj | edytuj kod]