Feature Driven Development

Skocz do: nawigacji, szukaj

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.

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.

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.

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.

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

[edytuj] Linki zewnętrzne