Tomasz Giętki

advertisement
Tomasz Giętka
Sieci Komputerowe, II rok
PWSZ Płock
Incremental development (model
przyrostowy, realizacja przyrostowa)
Na wstępie wyjaśnię na czym polega metodyka prowadzenia projektu
informatycznego . Jest to zestaw pojęć, notacji, modeli, języków, technik i
sposobów postępowania służący do analizy dziedziny stanowiącej
przedmiot projektowanego systemu oraz do projektowania pojęciowego,
logicznego i/lub fizycznego.
Metodyka jest powiązana z notacją służącą do dokumentowania wyników
faz projektu (pośrednich, końcowych), jako środek wspomagający ludzką
pamięć i wyobraźnię i jako środek komunikacji w zespołach oraz pomiędzy
projektantami i klientem.
Metodyka ustala:
 fazy projektu, role uczestników projektu
 modele tworzone w każdej z faz
 scenariusze postępowania w każdej z faz
 reguły przechodzenia od fazy do następnej fazy
 notacje, których należy używać
 dokumentację powstającą w każdej z faz
Typowy podział na fazy projektu:
1. specyfikacja – na tym etapie następuje określenie i ustalenie
wymagań, które musi spełniać oprogramowanie
2. projektowanie – ustalenie ogólnej architektury systemu, wymagań
dla poszczególnych jego składowych
3. implementacja – realizacja ustalonej architektury poprzez
implementację składowych (modułów) i połączeń między nimi.
4. integracja – zintegrowanie poszczególnych składowych w jeden
system, testowanie całego systemu
5. ewolucja – uruchomienie systemu, usuwanie wykrytych podczas jego
używania błędów, rozszerzanie systemu
Możemy wyróżnić szereg modeli życiowych oprogramowania :





model kaskadowy
model przyrostowy (iteracyjny)
programowanie zwinne (ang. agile programming)
programowanie ekstremalne (ang. extreme programming)
model spiralny
Zajmę się modelem przyrostowym (incremental development), który
stosowany jest do tworzenia początkowo małych, ale z czasem
„rozrastających” się części oprogramowania. Pozwala na osiąganie celów
projektowych klientów, którzy nie potrafią dokładnie określić własnych
potrzeb.
Fazy tworzenia w modelu przyrostowym:
1. określenie całości wymagań (w ramach naszych możliwości, na
tyle na ile uda nam się ją sprecyzować), wykonanie wstępnego,
ogólnego projektu całości systemu
2. wybór pewnego podzbioru funkcji systemu
3. szczegółowy projekt (wg modelu kaskadowego) oraz
implementacja części systemu realizującej wybrane funkcje
4. testowanie zrealizowanego fragmentu i dostarczenie go
klientowi
5. powtarzanie kolejnych etapów, aż do zakończenia
implementacji całego systemu
Problemem podstawowym wytwarzania przyrostowego jest określenie
„przyrostów”, tak aby były one istotnymi fragmentami oprogramowania, a
mimo to każdą z wersji dawało się niezależnie testować i oceniać.
Zalety modelu przyrostowego:




częste kontakty z klientem (skrócenie przerw w porównaniu z
modelem kaskadowym)
brak konieczności zdefiniowania z góry całości wymagań (na wstępie
definiujemy co nam się uda mając nadzieję, że uda nam się
wyspecyfikować całość wymagań na etapie testowania
zrealizowanych fragmentów)
wczesne wykorzystanie przez klienta fragmentów systemu
(funkcjonalności)
możliwość elastycznego reagowania na opóźnienia realizacji
fragmentu – przyspieszenie prac nad inną/innymi częściami
(sumarycznie – bez opóźnienia całości przedsięwzięcia
projektowego)
Wady modelu przyrostowego:



dodatkowy koszt związany z niezależną realizacją fragmentów
systemu
potencjalne trudności z wycinaniem podzbioru funkcji w pełni
niezależnych
dlatego: konieczność implementacji szkieletów (interfejs zgodny z
docelowym systemem) – dodatkowy nakład pracy (koszt), ryzyko
niewykrycia błędów w fazie testowania
Podobnie jak przy wytwarzaniu innych produktów, przy tworzeniu
oprogramowania istotne jest szacowanie i analiza ryzyka i kosztów oraz
tworzenie wyczerpującej dokumentacji.
Każdy z konkretnych modeli wskazuje na pewne możliwości, które mogą
okazać się przydatne w specyficznych warunkach realizacji określonego
projektu (stworzenie prototypu, podział na „przyrosty”, wykorzystanie
gotowych komponentów). Najlepiej oczywiście rozważyć wszystkie modele
i wybrać lub skonstruować proces wytwarzania oprogramowania
optymalny dla konkretnego projektu .
Czynnikami, które należy uwzględnić przy wyborze lub konstrukcji modelu
przyrostowego są m.in.: specyfika tworzonego systemu (m.in. rozmiar
systemu), stosowane technologie, wielkość i charakter zespołu
realizującego proces, ryzyka związane z realizacją procesu, itp.
Download