Metodiki Flashcards
SDLC
(System Development Life Cycle)
Ogólne pojęcie metodyki, bardziej definicja niż szczegółowy model.
- Cykl życia oprogramowania (systemu) to ciąg wyodrębnionych, wzajemnie spójnych faz i etapów, pozwalających na pełne, skuteczne zaprojektowanie, a następnie użytkowanie systemu informatycznego.
- Każda z faz korzysta z własnej grupy metod, technik i narzędzi wspomagania tworzenia oprogramowania.
Proces (model) Kaskadowy
- W procesie kaskadowym (waterfall) wynik jednego etapu staje się wejściem drugiego, przy czym z reguły nie powraca się do poprzednich etapów.
- Wymusza to bardzo szczegółowy opis wymagań, ponieważ błąd we wczesnej fazie procesu może zostać spropagowany do pozostałych faz. Wymagany jest wtedy powrót do fazy, która ten błąd spowodowała i jego korekta, co oczywiście jest czasochłonne.
Zalety i wady kaskadowego:
Zalety modelu kaskadowego:
- łatwość zarządzania przedsięwzięciem
- łatwość harmonogramowania poszczególnych etapów
- łatwość określenia sumarycznych kosztów przedsięwzięcia
- łatwość tworzenia dokumentacji
Wady modelu kaskadowego:
- wysoki koszt błędów popełnionych we wstępnych fazach projektu (wysokie prawdopodobieństwo wystąpienia zjawiska propagacji błędów)
- długa przerwa w kontaktach z klientem (od określenia wymagań – do przekazania produktu)
Proces (model) Iteracyjny
Opracowywanie iteracyjne rozpoczyna się od koncepcji (idei) obrazującej system. W miarę poznawania szczegółów ta koncepcja podlega ewolucji – może się rozrastać. Gdy wymagania są już dobrze określone, rozpoczyna się faza projektowania – tworzony jest prototyp, a następnie wstępna implementacja.
Zagadnienia pojawiające się podczas opracowywania programu wpływają na zmiany w projekcie i mogą nawet wpłynąć na zrozumienie wymagań. Co najważniejsze, projektujemy i implementujemy jedynie części pełnego produktu, powtarzając na przemian fazy projektowania i implementacji. Oznacza to wielokrotne przechodzenie przez każdą fazę procesu.
Model V
- Każdy etap projektowania kończy się stworzeniem danych wejściowych dla następnej fazy, oraz odpowiadających mu zestawów testowych. Model V zaleca jak najwcześniejsze rozpoczęcie procesu tworzenia planów testów, specyfikacji testowej i samego testowania.
- Jest mało szczegółowy i mało wydajny, daje jednak obraz idealnego świata kooperacji między architektami, programistami, testerami i klientami.
Realizacja Iteracyjna i Przyrostowa
Analiza wymagań i projekt systemu realizowane są w procesie kaskadowym. Kiedy projekt jest już gotowy następuje praca nad poszczególnymi elementami systemu, tym razem w procesie iteracyjnym.
Programowanie odkrywcze
Polega na iteracyjnym cyklu budowy systemu i jego testowaniu, dopóki nie zacznie on działać poprawnie.
Prototypowania
Polega na budowie prototypu, w celu dokładnego zrozumienia wymagań stawianych przez klienta i wczesnego wykrycia potencjalnych problemów i trudności.
Jeśli występują jakieś niedociągłości, tworzona jest nowa wersja prototypu
Zady i walety prototypowania
Zalety prototypowania:
- lepsze poznanie potrzeb i wymagań użytkownika
- możliwość szybkiej demonstracji pracującej wersji systemu
- możliwość szkoleń zanim zbudowany zostanie pełny system
Wady prototypowania:
- niezadowolenie klienta, który po obejrzeniu działającego prototypu niekiedy dość długo oczekuje na dostawę gotowego systemu
- relatywnie wysoki koszt budowy prototypu
GRAPPLE
Powstała jako uproszczenie SDLC składające się z 5 głównych segmentów:
- Identyfikacja problemu, zbieranie wymagań - identyfikacja i opis problemu zadania
- Analiza - proces zrozumienia i zdefiniowania problemu oraz określenia potrzebnych środków
- Projektowanie - dopracowanie szczegółów, tworzony jest projekt każdej funkcji systemu, a także elementy front-endowe, diagnozowane są też przypadki użycia
- Kodowanie - napisanie programu na podstawie wcześniej utworzonych diagramów
- Wdrożenie - testowanie aplikacji w odpowiednim środowisku sprzętowym i integracja systemowa
XP - Programowanie Extremalne
Członek rodziny metodyk Agile, podobne do prototypowania. Polega na iteracyjnym klepaniu kodu, za każdym razem przybliżając się do celu (tak jak my pisaliśmy algosy)
Test-Driven-Development (TDD)
TDD poniekąd odwraca kolejność działań typowych metodyk: w pierwszej kolejności pisane są testy, następnie pisany jest kod spełniający te testy, po czym następuje refaktoryzacja. Ten proces nosi nazwę cyklu Red-Green-Refactor i jest on powtarzany aż do osiągnięcia celu.
SCRUM
Podejście holistyczne w wytwarzaniu innowacyjnych produktów.
zestaw praktyk stosowanych w zwinnym zarządzaniu projektami, które
kładą nacisk na codzienną komunikację i elastyczną ponowną ocenę
planów, które są realizowane w krótkich, iteracyjnych fazach pracy.
-
Role w SCRUM:
- Właściciel produktu
- Zespół deweloperski
- SCRUM master