Feature-driven development

Feature-driven development (FDD) – 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ą.

Historia

Metodyka FDD została opracowana przez Jeffa De Lucę(inne języki) w roku 1997, na potrzeby projektu realizowanego w dużym, singapurskim banku. Rezultatem był zestaw pięciu procesów, pokrywających ogólny model, wyliczenie, planowanie, modelowanie oraz tworzenie funkcji systemu. Od czasu pierwszego udanego wykorzystania, pojawiło się kilka implementacji FDD.

Pierwszy opis FDD pojawił się w szóstym rozdziale książki Java modeling in color with UML autorstwa Petera Coada(inne języki), Erica Lefebvre i Jeffa De Luci, wydanej w roku 1999. Kolejny, bardziej ogólny opis tej metodyki, został opublikowany w książce A practical guide to feature-driven development autorstwa Stephena Palmera i Maca Flesinga.

Założenia

Role osób w projekcie

FDD definiuje sześć ról kluczowych oraz szereg ról wspierających i dodatkowych.

Role kluczowe

Role wspierające

Role dodatkowe

Fazy projektu

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

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.

Budowa listy cech

Wymagania użytkowe do systemu są gromadzone w postaci listy cech. Cechy są funkcjami systemu, które:

Cechy są grupowane w grupy i obszary funkcjonalne.

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.

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.

Ś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.

Przypisy

  1. 1 2 3 Palmer, S. R., & Felsing, M. (2001). A practical guide to feature-driven development. Pearson Education.
  2. ↑ Coad, P., Luca, J. D., & Lefebvre, E. (1999). Java modeling color with UML: Enterprise components and process with Cdrom. Prentice Hall PTR.

Linki zewnętrzne