Modelowanie zwinne - Agile modeling
Modelowanie zwinne (AM) to metodologia modelowania i dokumentowania systemów oprogramowania w oparciu o najlepsze praktyki. Jest to zbiór wartości i zasad, które można zastosować w (zwinnym) projekcie tworzenia oprogramowania. Ta metodologia jest bardziej elastyczna niż tradycyjne metody modelowania, dzięki czemu lepiej pasuje do szybko zmieniającego się środowiska. Jest częścią zestawu narzędzi do tworzenia oprogramowania Agile .
Modelowanie zwinne jest uzupełnieniem innych metodologii programowania zwinnego, takich jak Scrum , programowanie ekstremalne (XP) i Rational Unified Process (RUP). Jest wyraźnie uwzględniony w ramach zdyscyplinowanego zwinnego dostarczania (DAD). Według statystyk z 2011 r. Zwinne modelowanie stanowiło 1% całego zwinnego tworzenia oprogramowania.
Podstawowe praktyki
Istnieje kilka podstawowych praktyk:
Dokumentacja
- Dokumentuj w sposób ciągły. Dokumentacja jest tworzona przez cały cykl życia, równolegle do tworzenia reszty rozwiązania.
- Dokument późno. Dokumentację sporządza się jak najpóźniej, unikając spekulacyjnych pomysłów, które mogą się zmienić na korzyść stabilnych informacji.
- Wykonywalne specyfikacje. Wymagania są określane w postaci wykonywalnych „testów klienta” zamiast niewykonalnej „statycznej” dokumentacji.
- Informacje z jednego źródła. Informacje (modele, dokumentacja, oprogramowanie) są przechowywane w jednym miejscu i tylko w jednym miejscu, aby uniknąć pytań o „poprawną” wersję / informacje.
Modelowanie
- Aktywny udział interesariuszy. Zainteresowane strony modelowanego rozwiązania / oprogramowania powinny być w to aktywnie zaangażowane. Jest to rozszerzenie praktyki klienta na miejscu z Extreme Programming .
- Wizja architektury. Zespół przeprowadza lekkie, wysokopoziomowe modelowanie, które jest ledwo wystarczająco dobre (JBGE) na początku projektu oprogramowania, aby zbadać strategię architektury, która według zespołu będzie działać.
- Narzędzia integracyjne. Preferuj narzędzia do modelowania, takie jak tablice i papier, które są łatwe w użyciu (są dołączone).
- Modelowanie iteracyjne. Gdy wymaganie / element pracy nie zostało wystarczająco szczegółowo zbadane poprzez modelowanie z wyprzedzeniem, zespół może zdecydować się na tę eksplorację podczas sesji planowania iteracji / sprintu. Potrzeba zrobienia tego jest ogólnie postrzegana jako objaw, że zespół nie wykonuje wystarczającego modelowania z wyprzedzeniem.
- Po prostu ledwo wystarczająco dobry (JBGE). Wszystkie artefakty, w tym modele i dokumenty, powinny wystarczyć do wykonania zadania. JBGE ma charakter kontekstualny, w przypadku modelu jest określany przez połączenie złożoności tego, co opisuje model, i umiejętności odbiorców tego modelu.
- Modelowanie z wyprzedzeniem. Zespół zwinny będzie analizować swoje zaległości w zakresie jednej lub więcej iteracji / sprintów w przód, aby upewnić się, że wymaganie / element pracy jest gotowy do pracy. W Scrumie nazywane również „oczyszczaniem zaległości” lub „udoskonalaniem zaległości” .
- Model szturmowy. Krótka, często improwizowana, zwinna sesja modelowania. Organizowane są sesje modelowania w celu zbadania szczegółów wymagań lub aspektu projektu.
- Wiele modeli. Zwinni projektanci powinni wiedzieć, jak tworzyć szereg typów modeli (takich jak historyjki użytkownika, mapy fabularne, modele danych, diagramy UML ( Unified Modeling Language ) i nie tylko), aby zastosować najlepszy model dla danej sytuacji.
- Wymagania z priorytetami. Wymagania należy opracować w kolejności priorytetów.
- Przewidywanie wymagań. Zespół wykonuje lekkie, wysokopoziomowe modelowanie, czyli JBGE na początku projektu oprogramowania w celu zbadania wymagań interesariuszy.
Ograniczenia
Istnieje znaczna zależność od komunikacji osobistej i współpracy z klientami. Dyscypliny modelowania zwinnego mogą być trudne do zastosowania:
- W dużych zespołach (powiedzmy 30 lub więcej) bez odpowiedniego wsparcia narzędziowego
- Gdy członkowie zespołu nie mogą udostępniać modeli i współpracować nad nimi (co ogólnie utrudniłoby tworzenie zwinnego oprogramowania )
- Gdy umiejętności modelowania są słabe lub ich brakuje.