Inżynieria wymagań. Proces inżynierii wymagań

Podobne dokumenty
Inżynieria oprogramowania. Wykład 7 Inżynieria wymagań: punkty widzenia, scenariusze, przypadki użycia

Proces Inżynierii Wymagań

Inżynieria Programowania Inżynieria wymagań. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki. Arkadiusz Chrobot

Inżynieria Programowania Inżynieria wymagań

Inżynieria wymagań. Inżynieria wymagań 1/1

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Diagram przypadków użycia

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Inżynieria oprogramowania II

Modelowanie i analiza systemów informatycznych Spis treści

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Język UML w modelowaniu systemów informatycznych

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Diagramy przypadków użycia

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 6 Wskazówki i sugestie

Wstęp. Inżynieria wymagań. Plan wykładu. Wstęp. Wstęp. Wstęp. Schemat procesu pozyskiwania wymagań

Inżynieria oprogramowania (Software Engineering)

Wykład 1 Inżynieria Oprogramowania

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Procesowa specyfikacja systemów IT

Modelowanie obiektowe - Ćw. 3.

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu

UPEDU: Rozpoznanie wymagań (ang. requirements discipline)

Faza Określania Wymagań

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Modelowanie i analiza systemów informatycznych

Zasady organizacji projektów informatycznych

slajd 1 Model przypadków użycia Anna Bobkowska

020 ANALIZA WYMAGAŃ. Prof. dr hab. Marek Wisła

Inżynieria Programowania Zarządzanie projektem

Inżynieria wymagań. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

IO - inżynieria oprogramowania. dr inż. M. Żabińska, zabinska@agh.edu.pl

Język UML. dr inż. Piotr Szwed C3, pok

Dobre wdrożenia IT cz. I Business Case.

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Podstawy programowania III WYKŁAD 4

Agenda. Cele projektu Wizja projektu Modelowanie biznesowe Wymagania użytkownika Przypadki użycia

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Inżynieria Programowania Zarządzanie projektem. Plan wykładu. Motto. Motto 2. Notatki. Notatki. Notatki. Notatki.

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Portal zarządzania Version 7.5

Wszystkie problemy leżą w testach. ForProgress spółka z ograniczoną odpowiedzialnością sp.k.

Wprowadzenie do Behaviordriven

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Gry społecznościowe. wykład 0. Joanna Kołodziejczyk. 24 lutego Joanna Kołodziejczyk Gry społecznościowe 24 lutego / 11

KARTA MODUŁU KSZTAŁCENIA

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Inżyniera wymagań

Określanie wymagań. Cele przedsięwzięcia. Kontekst przedsięwzięcia. Rodzaje wymagań. Diagramy przypadków użycia use case diagrams

Diagramy przypadków uŝycia. związków między nimi

Strategia testów mająca doprowadzić do osiągnięcia pożądanych celów

Inżynierski Projekt Zespołowy

Tom 6 Opis oprogramowania

Inżynieria oprogramowania

UML cz. I. UML cz. I 1/1

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Diagramy przypadków użycia - MS Visio

Inżynieria oprogramowania (Software Engineering)

PROJEKT INŻYNIERIA OPROGRAMOWANIA. Temat: System obsługi kasy - projekt wzorcowy

Przypadki użycia (use cases) Po co są przypadki użycia? Próby definicji Podstawowe pojęcia Notacje Relacje Dokumentacja Kroki metody Przykłady

Inżynieria oprogramowania wykład IV Faza określenia wymagań

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Język UML w modelowaniu systemów informatycznych

Zagadnienia (1/3) Inżynieria Oprogramowania

Faza analizy (modelowania) Faza projektowania

Monitoring procesów z wykorzystaniem systemu ADONIS

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Analiza biznesowa a metody agile owe

Forte Rozliczenia Pracownicze

Specyfikowanie wymagań przypadki użycia

Modelowanie Procesów Biznesowych Wykład 3 Notacja UML cz. 1

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Tworzenie warstwy zasobów projektowanie metodą strukturalną

Projektowanie BAZY DANYCH

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

Diagramy przepływu danych I

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Spis treúci. 1. Wprowadzenie... 13

Analiza i projektowanie obiektowe 2015/2016. Wykład 2: Przypadki użycia

UML w Visual Studio. Michał Ciećwierz

I. Raport wykonywalności projektu

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 3 Identyfikacja przypadków użycia

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Cele przedsięwzięcia

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Od pomysłu do podpisania umowy. Izabela Adamska

Warsztaty FRAME. Sygnatura warsztatu: W1 (W3) Czas trwania: 3 dni

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 9 Strukturyzacja modelu przypadków użycia

Transkrypt:

Inżynieria wymagań. Proces inżynierii wymagań Dilbert by Scott Adams, tłum. własne Wykorzystane materiały: prezentacje J.E. Sienkiewicza i M.A. Płotki I. Sommerville, Inżynieria oprogramowania, WNT 2003 oraz odczyty J. Gorman Driving Development with Use Cases, http://www.parlezuml.com

Ogólne zadania inżynierii wymagań Wydobycie wymagań/określenie potrzeb klienta Wyspecyfikowanie dobrych (mierzalnych, realnych, jednoznacznych itp.) wymagań Stworzenie kompletnej i spójnej listy wymagań Weryfikacja, integracja i pielęgnacja wymagań Zamodelowanie potrzeb klienta Oszacowanie złożoności, czasu powstania i kosztu stworzenia systemu Zebranie wymagań na złożony system zawsze będzie problemem trudnym technicznie i organizacyjnie

Źródła problemów w inżynierii wymagań Zła organizacja złe oszacowanie, rozplanowanie zadań Podatność do zmian ciągła zmiana wymagań znacznie utrudnia pracę nad projektem ( oni wciąż chcą czegoś innego, co my tak właściwie robimy pogoń za ruchomym celem), uszkodzenie struktury systemu w czasie licznych zmian Trudności w pisaniu należy dobrać język, który pozwoli opisać wymaganie tak by zostało ono zrozumiałe przez wszystkich udziałowców Brak możliwości śledzenia zmian kto, kiedy i komu podał/zmienił dane wymaganie?

Konsekwencje źle wyspecyfikowanych wymagań To, co klient zamówił To co, analityk zrozumiał To, co opisywał projekt To, co wykonali programiści Projekt po poprawkach i wdrożeniu To, czego klient potrzebował To, za co klient zapłacił Praktyczne zastosowanie projektu

Konsekwencje źle wyspecyfikowanych wymagań System może być dostarczony później i kosztować więcej niż planowano Klient i użytkownicy końcowi mogą nie być zadowoleni z systemu. Mogą w ogóle nie używać wybranych jego funkcji lub odrzucić go w całości System może działać niepewnie w normalnym użytkowaniu, generować błędy, zawieszać się itp. Koszt konserwacji i ewolucji systemu może znacząco wzrosnąć Wniosek: należy przyjrzeć się bliżej procesowi inżynierii oprogramowania,, który służy do określania, analizowania i zatwierdzania wymagań stawianych systemowi i obejmuje wszystkie czynności niezbędne do opracowania i aktualizacji dokumentacji wymagań systemowych

Czynności procesu inżynierii wymagań Studium wykonalności Określanie i analizowanie wymagań Specyfikowanie wymagań Zatwierdzanie wymagań Raport wykonalności Dokumentacja wymagań Ogólne czynności w procesie inżynierii wymagań: studium wykonalności określanie i analizowanie wymagań specyfikowanie i dokumentowanie wymagań zatwierdzanie wymagań

Określanie i analizowanie wymagań Polega na pracy z klientem i użytkownikami systemu nad badaniem dziedziny zastosowania i usług, które system ma oferować, pożądanej efektywności, ograniczeń sprzętowych, organizacyjnych itd. W określaniu i analizowaniu wymagań mogą wziąć udział osoby z różnych stanowisk w firmie. Pojawia się pojęcie udziałowca. Udziałowiec (ang. Stakeholder) każdy, kto ma pośredni lub bezpośredni wpływ na wymagania

Udziałowcy różne perspektywy

Proces określania i analizowania wymagań Sprawdzenie wymagań Specyfikacja wymagań Start Rozpoznanie dziedziny Nadawanie priorytetów Dokumentacja wymagań Zbieranie wymagań Usuwanie sprzeczności Klasyfikacja

Techniki pozyskiwania wymagań Studia dziedzinowe standardy, regulacje, przepisy prawne, schematy, opisy procedur i stanowisk itp. Analiza istniejącego procesu w firmie gdzie jest problem? Wywiady pozyskiwanie informacji podczas bezpośredniej rozmowy z klientem Obserwacje obserwowanie istniejącego stanu rzeczy Praca grupowa np.. burza mózgów Ankiety, kwestionariusze Prezentacje wstępnej reprezentacji zebranych wymagań (np( np.. w postaci diagramu przypadków użycia) pozostałym udziałowcom Symulacje symulowanie różnych punktów widzenia Eksperymenty Prototypowanie

Dlaczego określanie wymagań jest takie nudne trudne? Biznes jest zwykle prowadzony w szybko zmieniającym się środowisku (ekonomicznym, rynkowym, prawnym, politycznym, technologicznym), zatem wymagania na system ciągle się zmieniają Zwykle w procesie zbierania wymagań występuje wielu udziałowców ze znacząco różnymi celami, oczekiwaniami względem systemu oraz priorytetami (często sprzecznymi ze sobą) Udziałowcy często nie wiedzą, czego tak naprawdę oczekują od nowo tworzonego systemu komputerowego Udziałowcy mogą stawiać nierealne żądania (np.. nie uwzględniając kosztu ich wprowadzenia) Udziałowcy systemu wyrażają wymagania za pomocą własnych pojęć. Inżynier oprogramowania musi zrozumieć tak wyrażone wymagania i przełożyć je na wymagania systemowe

Dlaczego określanie wymagań jest takie trudne? Czynniki polityczne i ludzkie Kluczowi udziałowcy zawsze mają inne rzeczy na głowie! Opracowanie (podanie) szczegółowych wymagań dla przyszłego systemu często nie ma zbyt wysokiego priorytetu u osób, które będą dotknięte tymi wymaganiami. W związku z tym nie są w stanie wyrazić wymagań szczegółowo, robią to mało konkretnie Udziałowcy nie muszą być przekonani do końca, że tworzenie systemu jest konieczne lub uważać, że nie jest to sprawa priorytetowa. Mogą więc aktywnie bądź pasywnie odmawiać współpracy Czynniki polityczne i organizacyjne u zleceniodawcy również mają zwykle spory wpływ na system, a udziałowcy nie chcą lub nie potrafią ich określić czy uzasadnić. Z kolei twórcy systemu nie są w stanie ich zrozumieć. Decyzje dotyczące wymagań mogą być więc podejmowane na irracjonalnym gruncie, opartym o czyjeś osobiste korzyści

Dlaczego określanie wymagań jest takie trudne? Zmienność procesu Nie ma żadnych obiektywnych sposobów porównywania alternatywnych zestawów wymagań. Wpływ systemu na biznes jest bardzo trudny do zrozumienia, zatem nie możemy w ogólności powiedzieć, który system będzie najlepszy dla konkretnego przedsiębiorstwa Wymagany poziom szczegółowości specyfikacji różni się znacznie w zależności od rodzaju opracowywanego produktu. W celu uzyskania specyfikacji mogą być więc wykorzystywane zupełnie różne procesy obejmujące różne typy ludzi pojawiają się ograniczenia standaryzacji procesu dla systemu sygnalizacji kolejowej wymagana jest bardzo szczegółowa specyfikacja, która będzie zatwierdzana przez odpowiednie urzędy (niezależnie od zleceniodawcy) specyfikacja gry komputerowej może być z kolei scenariuszem ze zdjęciami i przykładami

Dlaczego określanie wymagań jest takie trudne? Na wesoło o użytkownikach końcowych ;) W pewnym momencie podczas realizacji projektu ktoś zaczyna biadolić, że trzeba określić wymagania. Wiążą się z tym rozmowy z ludźmi, którzy to ciekawe nie wiedzą, czego chcą, ale dokładnie wiedza, kiedy tego potrzebują. Tych ludzi nazywa się użytkownikami finalnymi lub po prostu kołkami. Badania wykazały, że na świecie nie ma nić głupszego niż użytkownik finalny. Diagram poniżej pokazuje inteligencję względną kilku zwykłych składników gospodarstwa domowego: Scott Adams - Zasada Dilberta Wyd. Amber, W-wa, 2001

Techniki i narzędzia używane w procesie inżynierii wymagań Punkty widzenia przyglądamy się systemowi z punktu widzenia przetwarzanych danych lub oferowanych usług Scenariusze opisujemy przebieg interakcji np.. między użytkownikiem a systemem Scenariusze i punkty widzenia składają się (w pewnym sensie) w tzw. model przypadków użycia (Use( Cases) Analiza strukturalna oparta głównie na formalnych metodach zapisu wymagań

Określanie wymagań oparte na punktach widzenia (VORD) VORD: ang. Viewpoint-Oriented Requirements Definition Zwykle systemy maja kilka różnych grup użytkowników. Należy przyjrzeć się systemowi z ich punktu widzenia. Klasyfikacja punktów widzenia: Ze względu na źródło lub przeznaczenie danych Punkt widzenia powiązany jest z użytkowaniem lub produkcją danych. Analiza polega na rozpoznawaniu wszystkich danych, miejsc ich produkcji, użytkowania i przetwarzania. Ze względu na usługi zewnętrzne W tym wypadku punkty widzenia są zewnętrzne wobec systemu. Osoby mające ten sam punkt widzenia korzystają z jednakowych usług systemu.

Model zewnętrznych punktów widzenia Reprezentanci zewnętrznych punktów widzenia współpracują z systemem przez otrzymywanie usług od systemu oraz przekazywanie do systemu danych i sygnałów sterujących. Punkty widzenia są zewnętrzne wobec systemu, stanowią zatem naturalny sposób strukturalizacji procesu określania wymagań. Punkty widzenia i usługi stanowią dobry sposób strukturalizacji nie tylko wymagań funkcjonalnych, ale również niefunkcjonalnych i dziedzinowych. Każda usługa może być powiązana z wymaganiami niefunkcjonalnymi lub dziedzinowymi. Dość łatwo jest stwierdzić, czy coś jest punktem widzenia, czy też nie.. Reprezentanci punktów widzenia muszą bowiem w pewien sposób oddziaływać na system.

Punkty widzenia a atrybuty/cele systemu Atrybuty i ogólne cele systemu odnoszą się do wszystkich punktów widzenia i są do nich prostopadłe

Przykład system bankomatowy System służy do wykonywania operacji bankomatowych przy użyciu karty bankomatowej z przypisanym kodem PIN W uproszczonej wersji służy klientom macierzystego banku ( własny klient ), oferując im bardziej skomplikowane usługi, oraz klientom innym banków ( obcy klient ) w ograniczonym zakresie Usługi zaawansowane obejmują np.. wypłatę i wpłatę środków, przekazywanie komunikatów do banku, wyświetlanie informacji (np( np.. o saldzie konta lub wykonanych transakcjach).

System bankomatowy burza mózgów Pytanie o saldo Zasoby maszyny Interfejs użytkownika Własny klient Zdalna diagnostyka Odczyt transakcji Informacje o koncie Karta skradziona Niezawodność Menedżer Koszt systemu Aktualizacja konta Baza danych klientów Dziennik komunikatów Obcy klient Zwrot karty Pielęgnacja Zamówienie oprogramowania wyciągu Przelew środków Wypłata gotówki Zdalna aktualizacja oprogramowania Rozmiar oprogramowania Drukarka Dziennik transakcji Zamówienie czeków Kasa banku Nieuprawniony użytkownik Zabezpieczenia Zatrzymanie karty Przekazywanie komunikatów Weryfikacja karty

System bankomatowy udziałowcy Klienci banku Klienci innych banków Dyrektorzy oddziałów banków Pracownicy obsługi klienta w oddziałach Kasa banku Administratorzy baz danych Osoby odpowiedzialne za bezpieczeństwo w banku Dział marketingu banku Inżynierowie pielęgnacji sprzętu i oprogramowania

System bankomatowy punkty widzenia Wszystkie PW Klient Personel banku Kasa banku Menedżer Inżynier Własny klient Obcy klient

System bankomatowy punkty widzenia a usługi WŁASNY KLIENT OBCY KLIENT KASA BANKU Lista usług Lista usług Lista usług Wypłata gotówki Pytanie o saldo Wysyłanie komunikatu Lista transakcji Zamówienie wyciągu Przelew środków Wypłata gotówki Pytanie o saldo Diagnostyka Dodanie gotówki Dodanie papieru Wysłanie komunikatu

System bankomatowy dane sterujące i wejściowe WŁASNY KLIENT Dane sterujące Dane wejściowe Rozpocznij transakcję Informacje z karty Anuluj transakcję PIN Zakończ transakcję Żądana kwota Wybór usługi

System bankomatowy opis punktów widzenia i usług Nazwa PW: Klient Usługa: Wypłata gotówki Atrybuty: Numer konta PIN Uzasadnienie: Celem zmniejszenie obciążenia okienek kasowych itp. Zdarzenia: Usługi: Rozpocznij transakcję Wybór usługi Anuluj transakcję Zakończ transakcję Wypłata gotówki Pytanie o saldo Podrzędne PW: Własny klient Obcy klient Specyfikacja: Użytkownicy wybierają usługę przez naciśnięcie przycisku wypłata gotówki. Następuje weryfikacja numeru PIN. Następnie wprowadzona zostaje żądana kwota. Jeśli na koncie są wystarczające środki, następuje wypłata gotówki. PW: Klient Wymagania niefunkcjonalne: Wypłacić gotówkę najpóźniej po 1 minucie od potwierdzenia kwoty

Scenariusze (ang. scenarios) Ludzie zwykle wolą przykłady wzięte z życia od abstrakcyjnych opisów Scenariusz opis typowego przebiegu zadania wykonywanego przez użytkownika systemu (interakcji użytkownik system) Każdy scenariusz obejmuje jedną lub najwyżej kilka możliwych interakcji Na podstawie scenariuszy można wywieść wymagania systemowe

Cechy/atrybuty scenariusza Opis stanu systemu na początku scenariusza Opis normalnego następstwa zdarzeń scenariusza Opis tego, co może pójść źle, i jak to jest obsługiwane Informacje o innych czynnościach, które można wykonywać w tym samym czasie Opis stanu systemu po zakończeniu scenariusza Każde odrębne zdarzenie w interakcji może być udokumentowane za pomocą oddzielnego scenariusza zdarzenia Opis przepływu danych, akcji systemu i wyjątków, które mogą się pojawić

Przykład scenariusza system bankomatowy Zdarzenie inicjujące: wsunięto kartę do szczeliny Stan początkowy: karta w bankomacie Opis: Wyświetl listę dostępnych operacji. Po wybraniu operacji przez klienta monituj o podanie numeru PIN. Gdy wpisany numer jest poprawny, zidentyfikuj klienta. Sytuacje wyjątkowe: przekroczony limit czasu: zwróć kartę karta nieważna lub skradziona: zatrzymaj kartę niepoprawny numer PIN: zapytaj ponownie niepoprawny numer PIN podany po raz trzeci: zatrzymaj kartę Stan końcowy: użytkownik zidentyfikowany, przejdź do realizacji wybranej przez klienta operacji.

Model przypadków użycia (Use( Cases) Metoda oparta na scenariuszach i zewnętrznych punktach widzenia, służąca do określania wymagań i interakcji użytkownika z systemem Po raz pierwszy użyta w 1993 (I. Jacobson). Obecnie jest podstawowym elementem notacji UML Podstawowe pojęcia: przypadek użycia, aktor, relacje między przypadkami użycia bądź aktorami System widziany jest jako czarna skrzynka, zapewniająca określoną funkcjonalność Model wyraźnie rozdziela system i to, co powinien realizować (przypadki użycia i relacje między nimi), od tego, co jest poza nim (aktorzy i relacje między nimi) Metoda polega na ilustracji graficznej (diagram przypadków użycia), wspieranej odpowiednimi scenariuszami

Elementy notacji graficznej: przypadek użycia, aktor Aktor: abstrakcyjny użytkownik systemu, reprezentujący grupę użytkowników ków używających podobnych funkcji systemu i sposobu z nim komunikacji symbol graficzny: Przypadek użycia: ciąg interakcji pomiędzy aktorem a systemem, dostarczający aktorowi pożądanych wyników symbol graficzny: Klasyfikacja aktorów: aktor główny: używa podstawowych funkcji systemu aktor drugorzędny: używa funkcji administracyjnych i pielęgnacyjnych aktor aktywny: inicjuje przypadek użycia aktor pasywny: uczestniczy w przypadku użycia, ale go nie inicjuje

Podstawowe relacje Relacja komunikuje komunikuje ( communicates communicates, często reprezentowana przez zwykłe wiązanie association ) W przypadku dwukieunkowym (bez strzałki) oznacza inicjowanie przypadku użycia i ew. odbieranie wyników przez aktora. W przypadku relacji jednokierunkowej, aktor jedynie inicjuje przypadek użycia (aktor aktywny) lub w nim uczestniczy (aktor pasywny). Relacja zawiera zawiera ( include include ) Wskazuje na wspólny fragment kilku przypadków użycia, wykorzystanie wspólnego zachowania. Dawna nazwa: używa ( uses uses ). Relacja rozszerza rozszerza ( extend extend ) Rozszerza przypadek użycia o sytuację wyjątkową. Dawna nazwa: extends extends.

Relacje uogólnienia i inne elementy notacji Relacja uogólnienia aktora ( actor generalization ) Relacja uogólnienia przypadku użycia ( use case generalization ) Granice systemu są wyznaczane za pomocą prostokąta. Aktorzy są zwykle na zewnątrz systemu, przypadki użycia wewnątrz Możliwa jest komunikacja aktorów poza systemem W szczególności aktorem może być jakiś element systemu (np( np. wyświetlacz, timer) ) lub (rzadziej) jakieś wymaganie niefunkcjonalne/dziedzinowe

Przykład kompletnego diagramu Inny kompletny diagram przypadków użycia był zaprezentowany na poprzednim wykładzie

Przykład scenariusza Przypadek użycia: Wypłata gotówki Aktorzy: Własny klient, Obcy klient Zdarzenie inicjujące: wybranie w menu opcji wypłata oraz podanie kwoty do wypłaty Stan początkowy: karta w bankomacie Opis: Monituj o podanie numeru PIN. Gdy wpisany numer jest poprawny, zidentyfikuj klienta i sprawdź dostępne środki na koncie. Jeżeli środki są wystarczające, wypłać gotówkę. Sytuacje wyjątkowe: karta nieważna lub skradziona: zatrzymaj kartę niepoprawny numer PIN: zapytaj ponownie niepoprawny numer PIN podany po raz trzeci z kolei: zatrzymaj kartęk brak środków na koncie: wyświetl komunikat Brak środków Stan końcowy: gotówka wypłacona, saldo konta zmniejszone

Model przypadków użycia najczęstsze błędy Granice systemu nie są zdefiniowane bądź nie są stałe Przypadki użycia są napisane z perspektywy systemu a nie aktorów Nazwy aktorów lub przypadków użycia są niespójne Zbyt dużo przypadków użycia Zbyt skompilowana pajęczyna relacji Zbyt długi scenariusz przypadku użycia Mylący scenariusz/specyfikacja przypadków użycia Przypadki użycia nieprawidłowo opisują funkcjonalność systemu Przypadki użycia nie są zrozumiałe dla klienta Przypadki użycia nigdy nie są ukończone

Model przypadków użycia podsumowanie Identyfikacja granic systemu i aktorów Specyfikacja wymagań funkcjonalnych, postrzeganych przez zewnętrznych aktorów Wspomaganie walidacji wymagań Punkt wyjścia dla testów systemu Przydatność dla celów prezentacji funkcjonalności systemu zrozumiałość i komunikatywność Podstawa do tworzenia diagramów sekwencji

Diagram sekwencji (ang. sequence diagram) Diagram sekwencji zostanie szczegółowo omówiony na wykładzie poświęconym językowi UML

Sprawdzanie i zatwierdzanie wymagań Przed zatwierdzeniem specyfikacji, wymagania należy sprawdzić wykazać, że definiują system, którego chce użytkownik Sprawdzenie ważności. Czy użytkownicy są przekonani, że system powinien spełniać wyspecyfikowane funkcje? Sprawdzenie zrozumiałości. Czy klienci i użytkownicy systemu dobrze zrozumieli wymaganie? Sprawdzenie pochodzenia. Czy zaznaczone jest źródło, z którego pochodzi wymaganie? Sprawdzenie niesprzeczności. Czy wymagania nie przeczą sobie nawzajem? Sprawdzenie kompletności. Czy zdefiniowano wszystkie funkcje i ograniczenia systemu? Sprawdzenie realności. Czy wymagania można zaimplementować przy użyciu dostępnych środków? Możliwość weryfikacji. Czy wymagania systemowe są napisane tak, aby można było je zweryfikować? Sprawdzenie giętkości. Czy wymaganie może być zmienione bez znaczącego wpływu na pozostałe wymagania?

Zarządzanie wymaganiami Oznakowanie wymagań Każde wymaganie musi być unikatowo oznakowane tak, aby można było robić do niego odnośniki z innych wymagań i używać tego wymagania przy ocenianiu pochodzenia. Strategia śledzenia pochodzenia Należy odnotowywać zależności między wymaganiami i projektem systemu używając określonej metody. Proces zarządzania zmianami Zbiór czynności szacowania wpływu zmian na system i ich kosztu. Użycie narzędzi CASE Zarządzanie wymaganiami polega na przetwarzaniu ogromnej liczby informacji o wymaganiach. Narzędzia CASE nie są zbyt rozbudowane w inżynierii wymagań, ale pomagają np.. w weryfikacji wymagań formalnych czy tworzeniu diagramów UML.

Stabilność wymagań Wymagania stałe względnie stabilne wymagania, które wynikają z podstawowej działalności firmy i bezpośrednio odnoszą się do dziedziny systemu Wymagania zmienne wymagania, które z dość dużym prawdopodobieństwem mogą ulec zmianie w trakcie tworzenia systemu albo po przekazaniu go do użytkowania wymagania zmieniające się: zmieniają się na skutek zmian środowiska, w którym działa firma. wymagania pojawiające się: pojawiają się w trakcie procesu tworzenia w miarę coraz lepszego rozumienia systemu przez klienta. wymagania wynikowe: wynikają z wdrożenia systemu komputerowego. wymagania zgodności: zależą od umów lub procesów gospodarczych wewnątrz firmy. Wymagania stawiane dużym systemom oprogramowania zawsze się zmieniają trzeba odnotowywać zmiany

Zarządzanie zmianami wymagań Zarządzanie zmianami wymagań należy stosować do wszystkich postulowanych zmian wymagań Trzy podstawowe kroki: Analiza problemu i specyfikacja zmiany. Rozpoznanie problemu z wymaganiem, konkretna propozycja zmiany Analiza zmiany i ocena kosztów. Korzystając z informacji o uzależnieniu wymagania od innych i ogólnej wiedzy o wymaganiach systemowych, ocenia się wpływ proponowanej zmiany na cały system i szacuje koszt zmiany Implementacja zmiany. W przypadku podjęcia decyzji o wprowadzeniu zmiany, modyfikuje się dokumentację wymagań oraz projekt a następnie implementuje się zmianę

Literatura B.W. Boehm, P.N. Papaccio, Understanding and Controling Software Cost. IEEE Press, 1988 A. Cockburn, Writing Effective Use Cases. In preparation for Addison- Wesley Longman, 2000 http://www.itu.dk/~petero/t9%20.net/usecases-cockburn.pdf Materiały na stronie http://www.parlezuml.com Materiały na stronie http://owymaganiach.pl K. E. Wiegers, Software Requirements, 2nd Edition. Microsoft Press, 2003