UML porządkuje wymagania dla rozwiązania systemowego#

Analityk systemowy używa UML do opisu funkcji, struktury, interakcji, danych i granic rozwiązania w zakresie potrzebnym do projektowania oraz weryfikacji. Diagramy pomagają przejść od potrzeb biznesowych do zachowania systemu, ujawniając brakujące warunki, niejasne odpowiedzialności i zależności między elementami.

UML nie jest jedynym sposobem specyfikowania wymagań. Tekst, tabele, kontrakty API, modele danych, prototypy i reguły biznesowe mogą być właściwsze dla części tematów. Łącz je, zachowując spójność identyfikatorów i źródeł prawdy.

Zacznij od zakresu i kontekstu#

Zdefiniuj, który system lub podsystem analizujesz, jakie funkcje są w zakresie, jakie systemy zewnętrzne z nim współpracują i które wymagania są jakościowe lub regulacyjne. Rozróżnij stan obecny (as-is) od docelowego (to-be), aby diagram nie mieszał obserwacji z propozycją.

Diagram przypadków użycia może pokazać aktorów i cele, lecz nie wystarcza do opisania dokładnego zachowania. Diagram kontekstowy, komponentów albo wdrożenia może ujawnić granice i integracje. Opisz założenia, interfejsy i otwarte kwestie przed szczegółowym projektowaniem.

Dobieraj widok do wymagania#

  • Przypadki użycia porządkują cele aktorów i zakres funkcjonalny.
  • Diagramy aktywności opisują przepływ czynności, decyzji i danych.
  • Diagramy sekwencji pokazują kolejność komunikatów w konkretnym scenariuszu.
  • Diagramy klas przedstawiają pojęcia, strukturę, relacje i ograniczenia danych.
  • Maszyny stanów wyjaśniają cykl życia elementów i reakcje na zdarzenia.
  • Diagramy komponentów ujawniają moduły, zależności oraz kontrakty.
  • Diagramy wdrożenia przedstawiają artefakty i środowiska wykonawcze.

Nie wybieraj diagramu tylko dlatego, że jest najczęściej używany przez zespół. Sprawdź, czy odpowiada na pytanie i czy odbiorca potrafi go zweryfikować.

Od wymagania do modelu zachowania#

Weź jedno wymaganie i określ aktora, warunki wstępne, bodziec, wynik, błędy i przypadki brzegowe. Przedstaw główny przepływ w przypadku użycia lub aktywności, a następnie użyj diagramu sekwencji, jeśli kolejność współpracy jest ważna. Jeśli zachowanie zależy od statusu obiektu, model stanów może odsłonić pominięte przejścia.

Każdy diagram powinien mieć identyfikowalne wymagania lub decyzje, które go uzasadniają. W razie potrzeby połącz wymaganie z diagramem, elementem modelu i przypadkiem testowym. Powiązania ułatwiają analizę wpływu, ale wymagają właściciela i procesu aktualizacji.

Dane i reguły#

Diagram klas może modelować pojęcia domenowe, atrybuty, typy, liczności i relacje. Ograniczenia opisują reguły, których nie da się wyrazić samymi liniami. Nie utożsamiaj modelu pojęciowego ze schematem relacyjnej bazy danych: klucze, indeksy, tabele, normalizacja i migracje mogą wymagać oddzielnego modelu.

Typy, formaty, zakresy wartości, nullable, retencja i poufność danych powinny być określone w źródle właściwym dla zespołu. Jeśli diagram klas jest wykorzystywany do generowania schematu, jawnie zdefiniuj mapowanie i ograniczenia technologii.

Interfejsy i integracje#

Diagram komponentów może pokazać, który element dostarcza interfejs i który go wymaga. Diagram sekwencji opisze zachowanie w czasie: żądanie, odpowiedź, timeout, retry lub asynchroniczne powiadomienie. Specyfikacja interfejsu powinna doprecyzować schemat danych, błędy, wersjonowanie, uwierzytelnianie, autoryzację, limity i semantykę idempotencji, jeśli są ważne.

Sam aktor lub komponent zewnętrzny nie jest pełną specyfikacją integracji. Zaznacz odpowiedzialność i granicę, a szczegóły kontraktu umieść w odpowiedniej dokumentacji.

Wymagania jakościowe i ograniczenia#

Wymagania wydajności, dostępności, bezpieczeństwa, prywatności i zgodności mogą wpływać na architekturę i zachowanie, ale nie zawsze dają się przedstawić standardowym diagramem UML. Zapisz mierzalne kryteria, scenariusze operacyjne, przepływy danych i odpowiedzialne komponenty. Profil lub stereotyp nie zastępuje jednoznacznego wymagania.

Ograniczenia modelu powinny być testowalne lub przynajmniej możliwe do zweryfikowania. Zaznacz, czy są normatywne, czy stanowią założenie, rekomendację lub obecną decyzję.

Walidacja i śledzenie zmian#

Przejdź model z ekspertami domenowymi, projektantami i testerami. Sprawdź scenariusz sukcesu, odmowy, błędy integracji, ponowienia, współbieżność, wartości brzegowe i stany nieoczekiwane. Poproś uczestnika o odtworzenie zachowania z diagramu bez podpowiedzi.

Gdy wymaganie się zmienia, określ, które diagramy, kontrakty, testy i instrukcje należy zaktualizować. Nie wszystkie zmiany w kodzie wymagają modyfikacji analizy, ale każda zmiana modelowanego kontraktu powinna uruchomić przegląd właściwych widoków.

Typowe błędy#

  • Diagramy tworzone bez kontekstu systemu. Najpierw ustal zakres i uczestników.
  • Przypadek użycia uznany za pełną specyfikację. Dodaj scenariusze, reguły, wyjątki i kryteria.
  • Diagram klas potraktowany jak schemat bazy. Model domenowy i model przechowywania odpowiadają na inne pytania.
  • Aktor uznany za opis integracji. Doprecyzuj interfejs i przebieg wymiany.
  • Niepowiązane diagramy. Utrzymuj wspólne nazwy, identyfikatory i źródła wymagań.
  • Założenie pomylone z zatwierdzonym wymaganiem. Oznacz właściciela i status decyzji.
  • Brak ścieżek błędów i jakościowych. Uwzględnij ryzyka wpływające na architekturę.

Podsumowanie#

Analityk systemowy używa UML do doprecyzowania zakresu, zachowania, struktury i integracji oraz do uzgadniania ich z wymaganiami i testami. Dobieraj diagram do pytania, łącz modele z kontraktami i sprawdzalnymi kryteriami, a założenia odróżniaj od zatwierdzonych reguł.