Budowanie listy cech. W oparciu o model opracowany w fazie 1 tworzona jest
lista cech produktu (feature list), które zapewnią dostarczenie wymaganej przez
6
POLITECHNIKA WARSZAWSKA 2008
Praca zrealizowana na zajęcia SDM 2
PDF stworzony przez wersję demonstracyjną pdfFactory Pro www.pdffactory.pl/
Inne spojrzenie na wytwarzanie SI – ZWINNE METODOLOGIE.
klienta funkcjonalności. W pierwszym kroku wyodrębnia się obszary przedmiotowe
odpowiadające głównym fragmentom funkcjonalnym. Następnie każdy obszar
przedmiotowy dzielony jest na poszczególne aktywności, czyli zbiory cech. Każdy
krok w aktywności identyfikowany jest jako cecha. W tym kroku powstaje
hierarchicznie uporządkowana lista cech produktu.
Planowanie implementacji cech. Ta faza ma na celu przygotowanie planu
określającego w jakiej kolejności cechy będą implementowane (plan by feature). W
tym procesie brane są pod uwagę takie czynniki jak priorytet danej cechy, zależności
między cechami, złożoność implementacyjna oraz stopień obciążenia zespołu
programistów. Ważnym kryterium jest również podział całego projektu na
zewnętrznie możliwe do zaobserwowania etapy, czyli tzw. kroki milowe (milestones)
w projekcie. W fazie tej powstaje plan implementacji, określający termin realizacji
każdego zbioru cech. Za każdy zbiór cech odpowiedzialny jest wyznaczony główny
programista, określany jest również przydział klas programistom, którzy będą je
realizowali.
Realizacja tej fazy składa się z:
-
sformowania zespołu planującego
-
określenia kolejności implementacji
-
przypisania zbioru cech głównym programistom
-
przypisania klas do programistów
Projektowanie i implementacja. Główne założenie metody FDD to
dostarczenie kolejnej „działającej” wersji produktu w krótkich iteracjach. Iteracje te
składają się z projektowania szczegółowego (design by ffeature) wybranego zbioru
cech produktu. Cechy zakwalifikowane do realizacji w danej iteracji są przydzielane
do realizacji dynamicznie tworzonym zespołom programistów. Zadaniem każdego
zespołu jest implementacja określonego niewielkiego zbioru cech. Kod danej cechy
pisany jest przez członka zespołu, któremu została przypisana klasa biznesowa
związana z funkcjonalnością danej cechy. Napisany sprawdzany jest przez
pozostałych członków zespołu, jeśli testy wypadną pomyślnie nowy kod zostaje
integrowany z resztą produktu, a tym samym system staje się bogatszy o kolejną
cechę.
Proces projektowania szczegółowego składa się z następujących zadań:
-
sformowania
zespołu
programistów
pod
kierunkiem
Głównego
Programisty.
-
opcjonalnego przeglądu dziedziny problemu i studiowania dokumentów
referencyjnych
-
stworzenia diagramów sekwencji
-
uszczegółowienia modelu obiektowego
-
zapisania nagłówków klas i metod
-
inspekcji projektu
Natomiast w fazie implementacji programiści wykonują takie zadania jak:
-
implementacja kodu klas
-
przeprowadzenia inspekcji kodu
-
testowania jednostkowego
- integracji nowego kodu z produktem
7
POLITECHNIKA WARSZAWSKA 2008
Praca zrealizowana na zajęcia SDM 2
PDF stworzony przez wersję demonstracyjną pdfFactory Pro www.pdffactory.pl/
Inne spojrzenie na wytwarzanie SI – ZWINNE METODOLOGIE.
4. Dobre praktyki zwinnych metodyk.
Lekkie metody bazują na zbiorze najlepszych praktyk (Best practises),
których stosowanie w połączeniu ze zdefiniowanym procesem tworzenia
oprogramowania zapewnia efektywne wykonanie projektu. Kluczowe są następujące
praktyki:
Oparcie
procesu
o
wymagania
klienta.
Cały
proces
tworzenia
oprogramowania koncentruje się wokół wymagań klienta. Architektura obiektowa
systemu jest projektowana w oparciu o analizę wymagań użytkownika, które
specyfikowane są jako cechy. Planowanie całego projektu bazuje na liście
wymaganych cech produktu. Istotą inkrementalnej implementacji produktu jest
dostarczanie wersji produktów zawierających wybrane cechy produktu.
Architektura systemu. Podobnie jak w Rational Unified Process,
akcentowane jest znaczenie opracowania ogólnego modelu projektowania systemu.
Zarysowana w ten sposób architektura stanowi podstawę podejmowania dalszych
decyzji technicznych w projekcie. Wczesne opracowanie ogólnego modelu ma szereg
zalet:
-
Umożliwia lepsze zrozumienie całego systemu, gdyż pozawala na szybszą
weryfikację problemów i założeń programistów w kontaktach z ekspertami z
dziedziny problemu,
-
Jest
istotnym
czynnikiem
w
opracowaniu inkrementalnego planu
implementacji
ponieważ
uwidacznia
zależności
między
głównymi
składnikami systemu,
-
Definiując szerszy kontekst dla projektowania szczegółowego klas
implementowanych w danej iteracji powoduje, że są one lepiej
przygotowane do użycia w kolejnych iteracjach,
-
Ułatwia wprowadzanie modyfikacji do systemu wymagających ze zmian
wymagań użytkownika.
Krótkie iteracje. Implementacja systemu powinna się odbywać w sposób
iteracyjny. W kolejnych iteracjach jest realizowana kolejna porcja wymaganej
funkcjonalności o najwyższym priorytecie. Zapewnia to zdecydowanie lepszą
sterowalność projektem. Dostarczając klientowi działającą wersje produktu z jednej
strony informujemy klienta o postępie w projekcie, z drugiej strony ewaluacja ze