Narzędzia
Portfolio Roadmapa Słownik Blog Portal dla BA
← Wszystkie artykuły
techniki 2026-07-28

Przypadek użycia (use case): jak napisać krok po kroku

12 min czytania

Jak napisać przypadek użycia: anatomia, scenariusz główny linia po linii na przykładzie rezerwacji wizyty, rozszerzenia i wyjątki, poziomy Cockburna oraz gotowy szablon z checklistą jakości.

Przypadek użycia (use case): jak napisać krok po kroku

Deweloper pyta na daily: "a co ma się stać, jak pacjent kliknie potwierdź, ale termin już ktoś zajął?". Cisza. W backlogu jest user story "jako pacjent chcę zarezerwować wizytę", pięć kryteriów akceptacji i ani słowa o kolizji terminów. Sprint się sypie, bo nikt nie spisał scenariuszy alternatywnych.

Dokładnie od tego jest przypadek użycia. To technika, która zmusza Cię do przejścia interakcji użytkownika z systemem krok po kroku - razem ze wszystkim, co może pójść nie tak.

Czym jest przypadek użycia i kiedy działa lepiej niż user story

Przypadek użycia (use case) to opis interakcji między aktorem (użytkownikiem lub innym systemem) a systemem, prowadzącej do celu, który ma wartość dla tego aktora. Nie jest to opis ekranu ani specyfikacja techniczna. To historia dialogu: aktor robi coś, system odpowiada, aktor robi kolejny krok, aż cel zostaje osiągnięty albo coś staje na drodze.

User story mówi kto chce czego i po co. Use case mówi jak dokładnie przebiega droga do tego celu i co się dzieje na zakrętach. Te techniki się nie wykluczają - w wielu zespołach story trafia do backlogu, a use case powstaje dla tych historyjek, w których przebieg jest złożony i pełen wyjątków. Jeśli chcesz porównać oba podejścia od strony user stories, mam o tym osobny tekst: jak pisać user stories.

Kiedy use case wygrywa:

  • Proces ma wiele rozgałęzień. Płatności, rezerwacje, obieg wniosków - wszędzie tam, gdzie "happy path" to ułamek rzeczywistości.
  • Integrujesz systemy. Aktor nie musi być człowiekiem. System płatności, rejestr PESEL, zewnętrzne API - use case porządkuje, kto inicjuje co i kiedy.
  • Pracujesz w projekcie regulowanym lub fixed-price. Bank, ubezpieczyciel, sektor publiczny - tam potrzebujesz kompletnego opisu zachowania, nie obietnicy rozmowy przy tablicy.
  • Zespół rozproszony lub dostawca zewnętrzny. Im mniej wspólnych rozmów na żywo, tym więcej musi udźwignąć dokument.

Kiedy odpuścić: prosta zmiana w UI, dodanie pola do formularza, drobna reguła walidacji. Pisanie use case'a na "zmień etykietę przycisku" to marnowanie czasu wszystkich.

Anatomia use case: aktor, cel, warunki wstępne, scenariusz główny, rozszerzenia

Dobry przypadek użycia ma stały szkielet. Kolejność sekcji bywa różna w różnych organizacjach, ale zestaw jest ten sam:

Nazwa - czasownik + dopełnienie, z perspektywy celu aktora: "Zarezerwuj wizytę", "Anuluj zamówienie", "Zgłoś szkodę". Nie "Obsługa wizyt" (to moduł, nie cel) i nie "Ekran rezerwacji" (to UI).

Aktor główny - ten, kto inicjuje interakcję i chce osiągnąć cel. Piszemy rolę, nie stanowisko z HR: Pacjent, Rejestratorka, System płatności.

Interesariusze i ich interesy - często pomijana sekcja, a to ona pilnuje kompletności. Przychodnia chce, żeby terminy się nie dublowały. Lekarz chce widzieć powód wizyty. NFZ chce poprawnych danych rozliczeniowych. Każdy interes musi być gdzieś w scenariuszu obsłużony - jeśli nie jest, masz dziurę.

Warunki wstępne (preconditions) - co musi być prawdą, zanim use case wystartuje. Nie opisujesz tego w krokach, bo system tego nie sprawdza w trakcie - to założenie. Przykład: "Pacjent jest zalogowany i ma uzupełnione dane kontaktowe".

Gwarancje / warunki końcowe (postconditions) - co jest prawdą po sukcesie (wizyta zarezerwowana, termin zablokowany, potwierdzenie wysłane) i co system gwarantuje nawet przy porażce (żaden termin nie wisi zablokowany na zawsze).

Scenariusz główny (main success scenario) - ponumerowana sekwencja kroków od wyzwolenia do osiągnięcia celu. Zawsze najprostsza ścieżka, na której wszystko się udaje.

Rozszerzenia (extensions) - scenariusze alternatywne i wyjątki, podpięte numeracją pod kroki scenariusza głównego. O nich za chwilę, bo to najważniejsza część.

Jak napisać scenariusz główny - przykład: rezerwacja wizyty w przychodni, linia po linii

Zasada numer jeden: każdy krok to jedno zdanie w stronie czynnej, z jawnym podmiotem. Widać, kto działa - aktor czy system. Zasada numer dwa: krok opisuje intencję, nie klikanie. "Pacjent wybiera termin", nie "Pacjent klika w kafelek z godziną 14:30 w widoku kalendarza".

Scenariusz główny dla "Zarezerwuj wizytę":

  1. Pacjent wybiera specjalizację lekarza.
  2. System wyświetla lekarzy danej specjalizacji wraz z wolnymi terminami.
  3. Pacjent wybiera lekarza i termin wizyty.
  4. System tymczasowo blokuje wybrany termin i prezentuje podsumowanie rezerwacji do potwierdzenia.
  5. Pacjent potwierdza rezerwację.
  6. System zapisuje wizytę, zwalnia blokadę na rzecz stałej rezerwacji i wysyła pacjentowi potwierdzenie.
  7. System wyświetla szczegóły zarezerwowanej wizyty.

Przejdźmy po tym linia po linii, bo w każdym kroku kryje się decyzja projektowa:

  • Krok 1-2 to para "żądanie - odpowiedź". Naprzemienny rytm aktor/system to naturalny puls use case'a. Jak masz pięć kroków systemu pod rząd, to prawdopodobnie opisujesz algorytm, nie interakcję.
  • Krok 2 nie mówi, czy to lista, kafelki czy kalendarz. UI zostawiasz projektantowi. Dzięki temu use case przeżyje redesign.
  • Krok 4 wprowadza blokadę terminu. To decyzja biznesowa przemycona w kroku: dwóch pacjentów nie może potwierdzać tego samego slotu naraz. Gdybyś pisał tylko user story, ta reguła najpewniej wypłynęłaby dopiero na produkcji.
  • Krok 6 robi trzy rzeczy naraz i to jest w porządku, bo z perspektywy aktora to jedna odpowiedź systemu. Rozbijanie na trzy kroki dodałoby szumu bez wartości.
  • Scenariusz ma 7 kroków. Praktyczny przedział to 3-9. Ponad dziewięć? Sprawdź, czy nie skleiłeś dwóch celów w jeden use case albo nie zszedłeś na poziom klikania.

Scenariusze alternatywne i wyjątki - tu kryje się większość błędów w projektach

Scenariusz główny umie napisać każdy. Wartość analityka biznesowego mierzy się w rozszerzeniach, bo to one wyciągają na stół pytania, na które biznes musi odpowiedzieć przed developmentem, a nie po awarii.

Rozszerzenia numerujesz według kroku, w którym się rozgałęziają: 2a, 4a, 5a. Każde ma warunek (kiedy wchodzi) i własne kroki, które kończą się powrotem do scenariusza głównego albo zakończeniem use case'a.

Dla naszej rezerwacji:

2a. Brak wolnych terminów dla wybranej specjalizacji. 2a1. System informuje o braku terminów i proponuje zapis na powiadomienie o zwolnionym terminie. 2a2. Pacjent zapisuje się na powiadomienie albo kończy. Use case kończy się niepowodzeniem (cel nieosiągnięty, ale interakcja obsłużona).

4a. Wybrany termin został w międzyczasie zajęty. 4a1. System informuje o kolizji i odświeża listę wolnych terminów. 4a2. Powrót do kroku 3.

5a. Pacjent nie potwierdza rezerwacji w czasie trwania blokady. 5a1. System zwalnia blokadę terminu i informuje pacjenta o wygaśnięciu. 5a2. Powrót do kroku 2.

6a. Wysyłka potwierdzenia się nie powiodła. 6a1. System zapisuje wizytę mimo błędu wysyłki i ponawia wysyłkę potwierdzenia. 6a2. Kontynuacja od kroku 7.

Zwróć uwagę na 6a - to jest dokładnie ten typ decyzji, którego nikt nie podejmie świadomie, jeśli nie zada pytania na etapie analizy. Czy błąd SMS-a ma wywalić całą rezerwację? Oczywiście, że nie. Ale w kodzie pisanym bez tej decyzji równie dobrze może wywalać.

Skąd brać rozszerzenia? Przejdź scenariusz główny krok po kroku i przy każdym zadaj trzy pytania: co, jeśli aktor zrobi coś innego? Co, jeśli dane są niepoprawne lub ich brak? Co, jeśli system lub integracja zawiedzie? Do tego dołóż interesy interesariuszy z nagłówka - każdy nieobsłużony interes to kandydat na rozszerzenie.

Jedno ostrzeżenie: nie każdy warunek zasługuje na rozszerzenie. Walidacje pól (e-mail bez małpy, telefon za krótki) lepiej zebrać w jedną regułę biznesową podpiętą pod use case, zamiast produkować 3a-3f o formacie danych.

Poziomy szczegółowości wg Cockburna (cel użytkownika vs podfunkcja) - jak nie przedobrzyć

Alistair Cockburn w "Writing Effective Use Cases" opisał poziomy celów, do których pisze się przypadki użycia. Trzy najbardziej praktyczne:

  • Poziom celu użytkownika (sea level) - jeden aktor, jedno posiedzenie, jeden cel z wartością: "Zarezerwuj wizytę", "Anuluj wizytę". Test Cockburna: czy po wykonaniu aktor może wstać od komputera zadowolony? To domyślny poziom - tu powinna lądować zdecydowana większość Twoich use case'ów.
  • Poziom podfunkcji (fish level, pod wodą) - fragment potrzebny większym celom: "Wyszukaj lekarza", "Uwierzytelnij użytkownika". Piszesz osobno tylko wtedy, gdy ten sam fragment powtarza się w kilku use case'ach. Inaczej zostaje krokiem.
  • Poziom podsumowujący (kite level, nad wodą) - cele długoterminowe spinające wiele posiedzeń: "Prowadź leczenie pacjenta". Przydatny jako mapa kontekstu, nie jako specyfikacja do implementacji.

Najczęstszy błąd? Pisanie wszystkiego na poziomie podfunkcji. Powstaje wtedy dokumentacja typu "Wprowadź dane pacjenta", "Zatwierdź formularz", "Wyświetl komunikat" - dziesiątki mikro-use-case'ów, z których żaden nie niesie celu biznesowego, a całość czyta się jak instrukcję obsługi mikrofalówki. Jeśli nazwa Twojego use case'a nie odpowiada na pytanie "po co aktor w ogóle usiadł do systemu", zszedłeś za nisko.

Drugi błąd to przedobrzenie w głąb: pełny formalny szablon dla każdego przypadku. Cockburn sam rozróżnia format swobodny (casual - parę akapitów prozą) i pełny (fully dressed). Rezerwacja z płatnością i integracjami? Pełny format. Prosty podgląd historii wizyt? Dwa akapity wystarczą. Dobierz ciężar narzędzia do ryzyka.

Use case tekstowy a diagram przypadków użycia UML

Częste nieporozumienie: diagram przypadków użycia w UML to NIE jest przypadek użycia. Diagram pokazuje tylko mapę - aktorzy (ludziki), owale z nazwami use case'ów, granica systemu i relacje między nimi. Cała treść, czyli scenariusze i rozszerzenia, żyje w tekście.

Diagram jest świetny na start warsztatów z interesariuszami: na jednej stronie widać zakres systemu, kto z niego korzysta i czego brakuje ("a gdzie odwołanie wizyty przez rejestratorkę?"). Ale zespół deweloperski z samego diagramu nie zbuduje nic - owal "Zarezerwuj wizytę" nie mówi o blokadzie terminu ani o kolizji slotów.

W praktyce: zacznij od diagramu, żeby uzgodnić zakres i aktorów, potem pisz teksty dla owali w kolejności priorytetów. Z relacjami include/extend na diagramie ostrożnie - to najczęściej nadużywany element notacji i źródło jałowych sporów. Jeśli chcesz ogarnąć diagramy porządnie, zajrzyj do tekstu o diagramach UML w praktyce analityka.

Przypadki użycia (razem ze scenariuszami) to też technika opisana w BABOK Guide, więc pojawia się na egzaminach certyfikacyjnych - jeśli myślisz o certyfikacie, sprawdź porównanie certyfikacji BA.

Gotowy szablon use case + checklista jakości przed przeglądem z interesariuszami

Szablon do skopiowania:

Nazwa: [czasownik + dopełnienie, cel aktora]
Aktor główny: [rola inicjująca]
Interesariusze i interesy:
  - [kto]: [czego oczekuje od tej interakcji]
Warunki wstępne: [co musi być prawdą przed startem]
Gwarancja sukcesu: [stan po pomyślnym zakończeniu]
Gwarancja minimalna: [co system gwarantuje nawet przy porażce]
Wyzwalacz: [zdarzenie rozpoczynające]

Scenariusz główny:
  1. [Aktor] ...
  2. [System] ...
  ...

Rozszerzenia:
  Xa. [warunek]:
    Xa1. [krok]
    Xa2. [powrót do kroku N / koniec use case'a]

Reguły biznesowe: [odwołania do reguł, np. walidacje]
Wymagania niefunkcjonalne: [jeśli specyficzne dla tego UC]
Kwestie otwarte: [pytania do rozstrzygnięcia]

Checklista jakości - przejdź ją, zanim zaprosisz ludzi na przegląd:

  1. Nazwa zawiera czasownik i wyraża cel aktora, nie nazwę modułu ani ekranu.
  2. Aktor główny to rola, a use case kończy się osiągnięciem (lub jawnym nieosiągnięciem) jego celu.
  3. Scenariusz główny ma 3-9 kroków i naprzemienny rytm aktor-system.
  4. Każdy krok jest w stronie czynnej z jawnym podmiotem ("System wyświetla...", nie "Wyświetlana jest...").
  5. Zero szczegółów UI: żadnych przycisków, ekranów, kolorów, pól formularza.
  6. Każdy krok scenariusza głównego przeszedł trzy pytania: inne działanie aktora? złe dane? awaria?
  7. Każde rozszerzenie ma warunek i jasne zakończenie (powrót do kroku albo koniec).
  8. Każdy interes interesariusza z nagłówka jest gdzieś obsłużony.
  9. Warunki wstępne to założenia, a nie ukryte kroki ("pacjent zalogowany" - tak; "pacjent się loguje" - to krok, nie warunek).
  10. Poziom celu jednolity - żadnych podfunkcji udających cele użytkownika.
  11. Walidacje i wyliczenia wyniesione do reguł biznesowych, nie rozpisane jako rozszerzenia.
  12. Sekcja "kwestie otwarte" jest szczera - lepiej przynieść na przegląd trzy pytania niż trzy ukryte założenia.

Na samym przeglądzie czytaj scenariusz na głos, krok po kroku, i pytaj przy każdym: "czy tak to u Was wygląda?". Interesariusze rzadko przeczytają dokument przed spotkaniem, ale w rozmowie wyłapią błędny krok w dziesięć sekund.

Najlepszy sposób na opanowanie tej techniki to napisanie kilku use case'ów na realnych zadaniach i skonfrontowanie ich z czyimś feedbackiem - samo czytanie nie zbuduje odruchu szukania rozszerzeń. Jeśli chcesz ćwiczyć na praktycznych wyzwaniach z recenzją od innych analityków, załóż darmowe konto na platformie Analify i sprawdź moduł wyzwań oraz peer review.

Najczęstsze pytania

Czy na diagramie przypadków użycia stosować relacje include i extend?

Lepiej nie, ale trzeba je umieć przeczytać - wciąż uczy się ich na kursach i na uczelniach, więc trafisz na nie na cudzych diagramach. Na naszym webinarze z cyklu "projekt e2e" (10 listopada 2025) padły trzy powody, żeby ich nie używać: diagram przypadków użycia nie ma pokazywać wnętrza usługi, dekompozycja przez include łamie hermetyzację, a sam nawyk to pozostałość po projektowaniu strukturalnym, gdzie diagram był mapą funkcji w kodzie. Jeśli ciągnie Cię do wyciągnięcia wspólnego fragmentu w osobny owal, zwykle znaczy to, że schodzisz na poziom podfunkcji - a ten jest po prostu krokiem scenariusza, nie osobnym przypadkiem użycia.

Jak zidentyfikować przypadki użycia i nie rozmnożyć ich bez potrzeby?

Zacznij nie od listy funkcji systemu, tylko od tego, co krąży w procesie biznesowym. Heurystykę, która oszczędza godziny sporów, podał nasz webinar z cyklu "projekt e2e" (10 listopada 2025): jeden dokument, formularz albo komunikat wymieniany na poziomie procesu to jeden przypadek użycia. Przed rozmnożeniem chroni druga bramka, równie prosta: jeśli aktor nie korzysta z danej usługi wprost, to nie jest przypadek użycia i nie ma go na diagramie. Nazwy trzymaj w duchu menu aplikacji: nie "Bilety", tylko "Zakup biletów".

Czym przypadek użycia różni się od mapy procesu biznesowego?

Mapa procesu pokazuje przepływ pracy między rolami: kto co robi, w jakiej kolejności i gdzie droga się rozgałęzia. Przypadek użycia bierze z tego przepływu jedną interakcję i rozpisuje dialog aktora z systemem krok po kroku. W lekcji o modelowaniu wymagań z naszego minikursu oba modele stoją obok siebie celowo: mapa procesu pokazała, że rezerwacja terminu w ogóle istnieje i kto ją obsługuje, a dopiero sekcja rozszerzeń w przypadku użycia wymusiła pytanie, co się dzieje, gdy termin zajmie w międzyczasie ktoś inny. Różne modele łapią różne braki, więc rzadko wybiera się tylko jeden.

Czy przypadki użycia mają sens w Scrumie, skoro zespół pracuje na user stories?

Mają, o ile traktujesz je jako warstwę analizy, a nie konkurencję dla backlogu. W wątku o historyjkach użytkownika na forum Analify przywołano Jarosława Żelińskiego, który przekazywanie historyjek wprost deweloperowi nazywa ogromnym ryzykiem: "Historyjka, nawet w sformalizowanej formie, niesie tylko subiektywne 'spojrzenie z zewnątrz', a programista zaczyna domyślać się i gdybać, niejednokrotnie przekraczając dozwolone granice". Druga noga tego argumentu to klasyfikacja wymagań z BABOK Guide: biznesowe, interesariuszy, rozwiązania i przejściowe. User story dobrze siada na poziomie wymagań interesariuszy, a przypadek użycia dokłada to, co dzieje się przy odmowie, kolizji i awarii - czyli warstwę, której sama historyjka z założenia nie opisuje.

Czytaj też

Newsletter Analify

Nowe artykuły, porady i materiały dla analityków - prosto na email.

Dołącz do społeczności analityków biznesowych

Rozwijaj kompetencje, ucz się od praktyków i buduj karierę w analizie biznesowej.

Dołącz do Analify
SK

Sebastian Koczyk

Analityk biznesowy, twórca Analify.pl

Dołącz do społeczności analityków biznesowych - szkolenia wideo, prelekcje na żywo i wsparcie ekspertów

Sprawdź Analify