Przypadek użycia lub przypadki użycia ( „ use-case ” w języku angielskim), definiuje inżynierii oprogramowania i systemów inżynieryjnych sposób korzystania z systemu, który ma wartość lub użyteczność dla zaangażowanych podmiotów. Przypadek użycia odpowiada zestawowi działań wykonywanych przez system w interakcji z aktorami w celu osiągnięcia celu. Zestaw przypadków użycia umożliwia zatem opisanie wymagań funkcjonalnych systemu poprzez przyjęcie punktu widzenia i języka użytkownika końcowego.
W 1987 roku Ivar Jacobson przedstawił pierwszy artykuł dotyczący przypadku użycia na konferencji OOPSLA '87. Opisuje, w jaki sposób ta technika opracowana w firmie Ericson może zostać wykorzystana do ujęcia wymagań systemu w formie graficznej w ramach metody projektowania i analizy zorientowanej obiektowo. W 1992 roku opublikował OOSE , metodę inżynierii systemów, która jest zorientowana obiektowo i oparta na przypadkach użycia. W 1994 roku opublikował następnie książkę o wykorzystaniu przypadków użycia w kontekście reengineeringu procesów i modeli biznesowych.
W tym samym czasie Grady Booch i James Rumbaugh pracują nad ujednoliceniem swoich metod analizy i projektowania zorientowanego obiektowo, metody Boocha i techniki modelowania obiektów (OMT) . Do nich dołączył w 1995 roku Ivar Jacobson i dały początek językowi modelowania UML , którego standaryzację powierzono konsorcjum Object Management Group (OMG) , która zakończyła się w 1997 roku. Poza językiem modelowania graficznego, Jacobson, Booch i Rumbaugh są również praca nad ujednoliconą metodą rozwoju, która będzie oparta najpierw na Objectory, a następnie wzbogacona. Metoda ta stała się w 1999 r. Ujednoliconym procesem i utrwala zasadę pilotowania przez przypadki użycia oraz określa, w jaki sposób są one wykorzystywane do wychwytywania wymagań i służą jako wspólny wątek w całym procesie rozwoju.
Idąc za Jacobsonem, kilku autorów wniosło swój wkład w technikę przypadków użycia, w tym w szczególności Alistair Cockburn, który w 2000 roku opracował podejście do przypadków użycia skoncentrowane na ich celach, a także spopularyzował opis narracyjny i tabelaryczny - realną alternatywę dla diagramów przypadków użycia - , Geri Schneider i Jason Winters, którzy opublikowali dobre praktyki w 2001 r., Kurt Bittner i Ian Spence, którzy udoskonalili praktyki analizy wymagań funkcjonalnych w 2002 r., Oraz Gunnar Overgaard, który w 2004 r. Zaproponował zastosowanie koncepcji wzorców projektowych do przypadków użycia.
W latach 90. przypadki użycia stały się jedną z najczęściej stosowanych praktyk w pracy nad relacjami funkcjonalnymi . Były szczególnie popularne w społeczności obiektowej, z której wywodzi się koncepcja przypadków użycia. Jednak ich użycie nie ogranicza się do systemów zorientowanych obiektowo, przypadki użycia nie są z natury zorientowane obiektowo.
W 2011 roku Ivar Jacobson, Ian Spence i Kurt Bittner opublikowali elektroniczną książkę „ Use Case 2.0 ”, aby zaktualizować podejście i ułatwić korzystanie z przypadków użycia w kontekście metod zwinnych, wzbogacając je o pojęcie plastra („ fragment przypadku użycia ”).
Przypadek użycia to technika służąca do wychwytywania wymagań systemu i służąca jako wspólny wątek we wszystkich czynnościach niezbędnych do jego wdrożenia. Według SWEBOK są one częścią rodziny technik zbierania wymagań opartych na scenariuszach .
Według Bittner i Spence, „Przypadek użycia (...) opisuje sekwencję zdarzeń, które, wzięte razem, określają system robi coś pożytecznego . ” Zatem przypadek użycia odpowiada zestawowi działań wykonywanych przez system w interakcji z aktorami w celu osiągnięcia celu.
Kilka bardziej precyzyjnych definicji świadczy o ewolucji tego pojęcia, zaczynając od zrozumienia behawioralnego, aby dojść do wizji kierowanej przez cele:
Przypadki użycia starają się unikać żargonu technicznego i zamiast tego próbować przyjąć język użytkownika końcowego lub eksperta w dziedzinie domeny.
Przypadek użycia jest identyfikowany przez cel aktora w systemie zwany aktorem głównym. Aktor oznacza użytkownika lub inny system. Przypadek użycia może również obejmować innych aktorów, zwanych aktorami drugorzędnymi.
Każdy przypadek użycia odpowiada jednemu lub kilku scenariuszom definiującym interakcję między systemem a użytkownikami. Zwykle jest główna fabuła i możliwe odmiany. Odpowiadają one szczególnym przypadkom i wyjątkom. Scenariusze mogą obejmować inne przypadki użycia.
Każdy przypadek jest przedmiotem opisu lub specyfikacji, która przedstawia różne scenariusze.
W podejściu „przypadków użycia 2.0” początkowy opis jest zredukowany do jego najprostszej formy, bez scenariusza. Ten przypadek jest następnie wzbogacony opisem „ wycinka przypadków użycia ”. Każdy wycinek reprezentuje scenariusz lub wariant, ale zgodnie z podziałem, który umożliwia implementację każdego wycinka podczas iteracji. Zasadniczo wszystkie transze muszą ostatecznie obejmować wszystkie scenariusze i warianty przypadku użycia.
Istnieje kilka rodzajów przypadków użycia, które odpowiadają różnym zastosowaniom:
Podstawowy przypadek użycia to najmniejsza jednostka czynności, która daje znaczący wynik dla użytkownika. Zwykle są to przypisane mu zadania. To także całość postrzegana przez użytkownika jako spójna, niezależna sama w sobie i użyteczna.
Alistair Cockburn opowiada się za podejściem zorientowanym na cel . Zwracając uwagę, że istnieje różnica między celami opisanymi na poziomie organizacji a celami zdefiniowanymi dla zadań użytkownika, wprowadził pojęcie poziomu obiektywnego:
Poziom celu | Analogia z wysokością | Symbol | Opis poziomu |
---|---|---|---|
Strategiczny | Chmura |
![]() |
Cel i uzasadnienie systemu. Identyfikuje główne funkcje systemu dla firmy. |
Latawiec |
![]() |
Cel biznesowy firmy. Identyfikuje główne funkcje systemu dla działalności biznesowej firmy. Odpowiada działalności biznesowej obejmującej kilku użytkowników. | |
Użytkownik | Poziom morza |
![]() |
Cel realizowany przez użytkownika podczas korzystania z systemu. Odpowiada elementarnemu zadaniu użytkownika (czas trwania od 2 do 20 minut) |
Funkcja wewnętrzna | Ryby w morzu |
![]() |
Uczestnicz w osiąganiu celu użytkownika, z którym jest powiązany relacją typu włączenia |
Zbyt szczegółowe | Muszla na dnie morza |
![]() |
Unikać |
Jeśli poziom celu dostarcza informacji o poziomie szczegółowości przypadku użycia, zakres wskazuje zakres działania. Wyróżnia się trzy poziomy zakresu:
Przegląd przypadków użycia może być:
Każdy przypadek użycia można udokumentować jako:
Przypadki użycia są często pisane zarówno przez analityków, użytkowników końcowych, jak i eksperta . W UML , każdym przypadku zastosowanie przedstawiono w przypadku stosowania schematu , każda z nich jest scenariuszy opisanych w analizie przez jeden lub większą liczbę dynamicznych wykresy diagramów aktywności , sekwencji , komunikacji lub stanem przejściowym schematach .
Diagramy przypadków użycia umożliwiają przedstawienie widoku rozważanego systemu, z uwzględnieniem przypadków użycia i zaangażowanych aktorów. Zwykle główni aktorzy są przedstawiani po lewej stronie, ale to nie jest norma.
Dokumentacja tekstowa przypadku użycia zazwyczaj składa się z następujących części:
Możemy też dodać:
Alistair Cockburn sugeruje dwanaście zaleceń redakcyjnych:
Przypadki użycia są skuteczne w zbieraniu wymagań na podstawie przypadków użycia systemu, ponieważ koncentrują się na interakcjach aktor / system zgodnie z wyborami ich użytkowników. Umożliwiają również przygotowanie testów akceptacyjnych w oparciu o wykorzystanie systemu.
Przypadki użycia można łatwo powiązać z zadaniami i działaniami biznesowymi, jeśli są uporządkowane według poziomu celu. Ułatwia to z jednej strony komunikację z zarządzaniem użytkownikami, az drugiej zarządzanie zmianami organizacyjnymi, w tym w kontekście reengineeringu procesów. Przypadki użycia mogą zatem służyć jako podstawa podręczników i dokumentacji zorientowanych na użytkownika.
Struktura przypadków użycia zapewnia spójny obraz zbioru ściśle powiązanych wymagań. Dlatego są one łatwiejsze do odczytania niż liniowa prezentacja luźno ustrukturyzowanych wymagań. Pozwala to również na wykorzystanie kontekstu funkcji, które mają zostać opracowane, na wszystkich etapach projektu.
Według niektórych autorów, same przypadki użycia nie mogą napędzać procesów rozwojowych, ponieważ nie uwzględniają transwersalnych reguł biznesowych. Gdy można je uwzględnić i zintegrować z przypadkami użycia, istnieje ryzyko, że zostaną one zamaskowane przez interakcje między aktorami a systemem. Oba przypadki mogą później powodować problemy, gdy trzeba dostosować reguły biznesowe. Należy jednak spojrzeć na te ryzyka z odpowiedniej perspektywy, ponieważ wiele modeli opisu proponuje oddzielną identyfikację reguł biznesowych i wyraźne odwoływanie się do tych reguł w przypadkach użycia, gdy jest to stosowne.
Połączenie interakcji aktor / system i reguł biznesowych w przypadkach użycia powoduje również utrudnienia w kontekście ewolucji architektury zorientowanej na usługi (SOA), której usługi są oparte na przypadkach użycia. W podejściu „SOA zorientowana na cel” zaproponowano alternatywę opartą na oddzieleniu reguł biznesowych i przypadków użycia, pozwalającą odpowiednio usługom SOA na hermetyzację reguł biznesowych i skupienie się na przypadkach użycia wyłącznie na wyborach nawigacji użytkowników.
Przypadki użycia ryzykują zbyt szczegółowym opisem, aby wpłynąć na ergonomię systemu na podstawie przyjętych z góry pomysłów na kolejność działań i sposób interakcji między użytkownikiem a systemem. Ryzyko to można wyeliminować, odwołując się do niezbędnych przypadków użycia.
Według niektórych autorów przypadki użycia nie byłyby odpowiednie dla podejść zwinnych ze względu na konieczność pełnego udokumentowania wszystkich ich scenariuszy, zanim będą mogły zostać włączone do planowania iteracji. Ta recenzja jest jednak wysoce wątpliwa, ponieważ Cockburn, jeden ze współautorów manifestu zwinnego , twierdzi, że preferuje przypadki użycia. Ponadto technika „przypadków użycia 2.0”, opublikowana w 2011 r., Została opracowana specjalnie w celu ułatwienia integracji z praktykami zwinnymi. To podejście jest porównywalne z późniejszą techniką mapowania historyjek użytkownika , często używaną w kontekście zwinnym.
„Przypadki nadużycia” i „przypadki nadużycia” (odpowiednio przypadek nadużycia i przypadek niewłaściwego użycia w języku angielskim, gra na bliskości słów z przypadkiem użycia ) to adaptacje przypadków użycia do analizy zagrożeń, które mogą wpływać na bezpieczeństwo systemy. Użytkownicy tych przypadków są wtedy złośliwymi aktorami.
Przypadku użycia schemat jest graficznym przedstawieniem układu, a jednym lub większą liczbą przypadków użycia z podmiotów. Jest to konkretna reprezentacja przypadku użycia zdefiniowana przez UML , a nie sam przypadek użycia.
„Realizacja przypadku użycia” to sposób implementacji przypadku użycia.
„ Instancja przypadku użycia” to wykonanie przez system przypadku użycia dla danego użytkownika podczas interakcji w określonym czasie (na przykład w celu zarejestrowania transakcji biznesowej).
Konto użytkownika ( „ historia użytkownik ” w języku angielskim) jest opis pożądanej funkcjonalności opisane z perspektywy użytkownika. Podobnie jak w przypadku użycia, historia koncentruje się na użytkowniku (roli, aktorze), musi przynosić wartość i umożliwiać rozwój i testowanie. Pierwsza różnica dotyczy omawianego tematu: przypadki użycia odpowiadają zestawowi działań, podczas gdy historie mają być bardziej elastyczne i mogą w ten sposób opisywać złożony przypadek użycia, a także elementarną funkcjonalność. Druga różnica dotyczy aktorów: historia dotyczy tylko punktu widzenia pojedynczego użytkownika, podczas gdy przypadek użycia uwydatnia wielość zaangażowanych aktorów i punkty widzenia.
Przypadek użycia odpowiada wymaganiu funkcjonalnemu, ale nie definiuje interfejsu użytkownika, który je implementuje. Dlatego ujednolicony proces zaleca używanie szkiców i prototypów zamiast przypadków użycia do reprezentowania logiki interfejsu użytkownika i przepływu ekranu.