Dynamic Systems Development Method

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Dynamic System Development Method jest metodyką projektowania zaproponowaną przez brytyjskie konsorcjum DSDM.

DSDM należy do zwinnych metodyk programowania. We wczesnych latach dziewięćdziesiątych powstało określenie "Rapid Application Development" (RAD). Oznacza ono "szybkie tworzenie aplikacji". Ta ideologia i technika polega zarazem na zapewnieniu programistom dużych ilości gotowych komponentów i dużych możliwości prototypowania. Dzięki temu otrzymuje się możliwość uzyskania efektów w początkowych fazach etapu programowania. Na bazie RAD powstała metodyka Dynamic System Development Method.

Podstawowe założenia DSDM opierają się na tym, że zadania, które należy wykonać w celu wykonania danego systemu, zawsze podlegają zmianom.

Role w projekcie.[edytuj | edytuj kod]

DSDM wyróżnia 15 ról w procesie tworzenia oprogramowania. Najważniejsze i najistotniejsze z nich to:

  • Executive Sponsor (Project Champion) - rola, mająca możliwość i uprawnienia zatwierdzać zmiany w projekcie oraz zdobywać potrzebne zasoby, materiały; ma decydujący głos w dyskusjach; sponsor projektu.
  • Visionary - osoba odpowiedzialna za to aby w miarę wcześnie sprecyzować wymagania, posiada najlepsze rozeznanie w dziedzinie zastosowań produkowanego systemu, nadaje projektowi kierunek rozwoju, często pomysłodawca systemu.
  • Ambassador User - odpowiedzialny za przekazanie wiedzy od klienta, odpowiedzialny jest za całokształt projektu, zapewnia sprzężenie zwrotne programistom podczas implementacji.
  • Advisor User - rolę tę pełni użytkownik (użytkownicy) wyznaczeni do reprezentowania danego punktu widzenia na projekt, są przedstawicielami użytkowników, ma wgląd w realizowany projekt a w miarę potrzeb potrafi dostarczyć programistom odpowiedniej wiedzy na dany temat - za który jest odpowiedzialny.
  • Technical Co-ordinator - osoba odpowiedzialna za architekturę systemu, kontrolę realizacji oraz techniczną jakość projektu, odpowiedzialny za architekturę i jakość produktu, zarządza zmianami w projekcie.
  • Team Leader - dowodzi zespołem ludzi i zapewnia im stale możliwość efektywnej pracy.
  • Developer - implementuje system, interpretuje wymagania systemowe oraz model systemu, dostarcza kod programu i buduje prototypy.
  • Senior Developers - odpowiedzialni za analizę, starsi programiści wyznaczani są na podstawie doświadczenia w danej dziedzinie lub technologii.
  • Tester - testuje poprawność techniczną produktu, pisze testy, dodaje odpowiednie komentarze i tworzy dokumentację.
  • Scribe - odpowiedzialny za zbieranie i zapisywanie wymagań, porozumień i decyzji podjętych przy wspólnej pracy
  • Facilitator - kieruje postępami prac, stanowi motor do przygotowań do pracy a także jest odpowiedzialny za dobry przebieg komunikacji
  • Business Architect, Quality Manager, System Integrator - osoby pełniące inne funkcje podczas realizacji projektów tradycyjnymi metodami

Wybrane techniki[edytuj | edytuj kod]

  • Timeboxing - umiejętne rozdzielenie realizacji produktu na etapy (zasada 80% w 20%)
  • MoSCoW
    • M - MUST have this - musi mieć tę funkcjonalność
    • S - SHOULD have this if at all possible - jeśli jest to możliwe to powinno mieć tę funkcjonalność,
    • C - COULD have this if it does not affect anything else - ta funkcjonalność jest potrzebna, pod warunkiem że nie wpłynie negatywnie na inne i efektywność systemu
    • W - WON'T have this time but WOULD like in the future - nie tym razem, ale w przyszłości tę funkcjonalność można by dołożyć

Skład procesu DSDM[edytuj | edytuj kod]

  • Inspekcja zastosowalności - jest wykonywana zawsze na początku projektu jednokrotnie w celu potwierdzenia zasadności stosowania metody DSDM, w trakcie wykonywania inspekcji zastosowalności wstępnie określa się ryzykowne punkty w projekcie, jeśli to niezbędne buduje się prototypy, ilość prac jaką przeznacza się na tę fazę daje się zrealizować w kilka tygodni.
  • Badania biznesowe służą rozpoznaniu kluczowych dla projektu lub jego części zagadnień i osób po stronie odbiorcy, w późniejszym okresie osoby te są włączane w proces opracowywania systemu; efektem działań w tej fazie są wysokopoziomowy opis systemu (Businnes Area Definition), specyfikacja zakresu systemu, zarys architektury systemu (System Architecture Definition) oraz Plan prototypowania (Outline Prototyping Plan).
  • Iteracyjne opracowanie modelu funkcjonalnego (Functional model iteration) - jest to etap budowy modelu funkcjonalnego, składa się naprzemiennie z procesów analizy i budowy prototypów, wyniki prototypowania służą do poprawienia i uszczegółowienia modeli analitycznych; w miarę możliwości prototypy są udoskonalane w taki sposób, by można było je włączyć do produktu końcowego, efektem końcowym tej fazy jest model funkcjonalny oraz kod prototypów, prototypowanie jest często traktowane jako forma testowania modelu funkcjonalnego.

W każdej pętli iteracji tworzone są następujące dokumenty:

  • iteracyjne projektowanie i implementacja (Design and build iteration)

Model funkcjonalny opracowany w poprzednim etapie jest przekształcany w kod źródłowy właściwego produktu, prototypy powstałe w trakcie prac nad modelem funkcjonalnym mogą być w tej fazie adaptowane do kodu aplikacji, wynikiem tej fazy jest przetestowany produkt zawierający uzgodniony wcześniej zestaw funkcjonalności,

  • Wdrożenia

Praktyki wprowadzane przez DSDM[edytuj | edytuj kod]

  • Użytkownik jest aktywny w procesie tworzenia oprogramowania,
  • Zespoły biorące udział w DSDM są uprawnione do podejmowania decyzji,
  • Duży nacisk na częste dostarczanie nowych wersji oprogramowania,
  • Każda nowa wersja jest oceniana pod kątem przydatności i odpowiedniości w zastosowaniach biznesowych,
  • Iteracyjne i inkrementalne tworzenie oprogramowania,
  • Prowadzenie kontroli wersji, aby zmiany mogły być wycofywane,
  • Testowanie jest integralną częścią każdego etapu w projekcie,

Podstawową zaletą DSDM jest to że produkt jest oceniany przez twórców i przyszłych użytkowników na każdym etapie projektowania i budowy. Uwagi powstałe w danej iteracji są oceniane i opracowywane w kolejnych iteracjach.

Link zewnętrzny[edytuj | edytuj kod]

Główna strona organizacji DSDM (ang.)