Specyfikacja wymagań. Autor: Łukasz Olek. Szanowni Państwo! Witam serdecznie na kolejnym wykładzie z serii Inżynieria oprogramowania.



Podobne dokumenty
Inżynieria oprogramowania

Specyfikacja wymagań. Autor: Łukasz Olek. Szanowni Państwo! Witam serdecznie na kolejnym wykładzie z serii Inżynieria oprogramowania.

Inżynieria oprogramowania II

Faza Określania Wymagań

Dobre wdrożenia IT cz. I Business Case.

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

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

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

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

UPEDU: Rozpoznanie wymagań (ang. requirements discipline)

Podstawy programowania III WYKŁAD 4

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Opis metodyki i procesu produkcji oprogramowania

Od pomysłu do podpisania umowy. Izabela Adamska

Procesowa specyfikacja systemów IT

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

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

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

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

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

Cele przedsięwzięcia

Feature Driven Development

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

SPECYFIKACJA WYMAGAŃ

Pozyskiwanie i dokumentowanie wymagań

Diagramy przypadków użycia

Program Coachingu dla młodych osób

Jak założyć konto? Co znajdziesz na FWF? Strona Narzędzia Jak dokonać płatności? Lista autorów... 12

Instrukcja zgłaszania błędu

Łączenie liczb i tekstu.

Egzamin / zaliczenie na ocenę*

Priorytetyzacja przypadków testowych za pomocą macierzy

TimePlanet Sp. z o.o. Nowogrodzka Warszawa Witamy w świecie TimeCloud

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

Projektowanie oprogramowania

Projektowanie interakcji

Język UML w modelowaniu systemów informatycznych

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

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

Maciej Oleksy Zenon Matuszyk

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

Spis treści. Rejestracja/logowanie. Zmiana numeru konta klienta. Tworzenie nowej przesyłki. Zamawianie kuriera

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

Wsparcie dla czasopism naukowych w POL-index podręcznik użytkownika

PLATFORMA ACTIVE FORMS. Kreator Formularzy Internetowych ze wsparciem dla RWD

Architektura oprogramowania w praktyce. Wydanie II.

MiASI. Modele, perspektywy, diagramy UML. Piotr Fulmański. 7 grudnia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

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

Łatwa czy niełatwa droga do celu? - wdrożenie COSMIC w ZUS

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Zarządzanie sprzedażą w programie bs4

Analityk i współczesna analiza

Inżynieria oprogramowania (Software Engineering) Wykład 1

Ćwiczenia 3: Specyfikacja wymagań Pytania:

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Zasady organizacji projektów informatycznych

REFERAT PRACY DYPLOMOWEJ

Analiza antyplagiatowa prac dyplomowych w Uniwersyteciee Zielonogórskim w modułach StudNet, PracNet systemu Dziekanat oraz w systemie OSA.

Prezentacja programu. Parentis Sp. z o.o. Dział Informatyki. Kartoszyno, ul. Przemysłowa 5, Krokowa

Spis treści. Przedmowa Karolina Zmitrowicz, Adam Roman. Część I. Organizacja i procesy 1

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

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

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Etapy życia oprogramowania

Instrukcja logowania i realizacji podstawowych transakcji w systemie bankowości internetowej dla klientów biznesowych BusinessPro.

Kurier DPD by CTI. Instrukcja

INSTRUKCJA. rejestrowania się na szkolenie/cykl szkoleniowy oraz uzupełniania niezbędnej unijnej dokumentacji uczestnictwa w projekcie (PEFS)

WOJSKOWA AKADEMIA TECHNICZNA

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Pierwszy projekt. Na początku warto wspomnieć, że program WebSite X5 dostępy jest w 3 wariantach: Start, Evolution oraz Professional

Deduplikacja danych. Zarządzanie jakością danych podstawowych

LearnIT project PL/08/LLP-LdV/TOI/140001

Przelewy24 Wirtualny Koszyk

Diagram przypadków użycia

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Wzór na rozwój. Karty pracy. Kurs internetowy. Nauki ścisłe odpowiadają na wyzwania współczesności. Moduł 3. Data rozpoczęcia kursu

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Podstawowe zagadnienia z zakresu baz danych

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Załącznik nr 19 do Umowy nr... z dnia... Plan Testów Systemu. Projekt ZEFIR 2

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

INSTRUKCJA TWORZENIA I PRZESYŁANIA RAPORTU UWAGA! RAPORTY MOGĄ TWORZYĆ TYLKO UCZNIOWIE

I. Interfejs użytkownika.

Narzędzia Informatyki w biznesie

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Przewodnik użytkownika systemu e-faktur

Monitoring procesów z wykorzystaniem systemu ADONIS

Jakość w procesie wytwarzania oprogramowania

Co nowego w systemie Kancelaris 3.31 STD/3.41 PLUS

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

Rozwiązania CAD/CAM/CAE/PDM. esupport. System wsparcia technicznego firmy Premium Solutions Polska. Autoryzowany Dystrybutor:

Forex PitCalculator INSTRUKCJA UŻYTKOWNIKA

Modelowanie obiektowe - Ćw. 3.

Możliwość dodawania modułów pozwala na dopasowanie oprogramowania do procesów biznesowych w firmie.

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

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Transkrypt:

Specyfikacja wymagań Autor: Łukasz Olek Szanowni Państwo! Witam serdecznie na kolejnym wykładzie z serii Inżynieria oprogramowania. 1

Plan wykładów Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML, cz. I Język UML, cz. II Metody formalne Wzorce projektowe Zarządzanie konfiguracją Wprowadzenie do testowania Automatyzacja wykonywania testów Programowanie Ekstremalne Ewolucja oprogramowania i refaktoryzacja Specyfikacja wymagań (2) Jest to już drugi wykład z tej serii. Dotyczy on bardzo ważnego aspektu w tej dziedzinie - mianowicie komunikacji pomiędzy klientem, a informatykami dotyczącej wymagań systemów informatycznych. 2

Wprowadzenie Specyfikacja wymagań (3) W celu lepszego zrozumienia, czym są wymagania w projektach informatycznych przedstawię pewną historyjkę. Na slajdzie tytułowym widzieliśmy restaurację. Załóżmy, że właściciel takiej restauracji dostrzega potrzebę wdrożenia systemu informatycznego, w celu usprawnienia obsługi kelnerskiej klientów. Właściciel ten zgłasza się do firmy informatycznej i pragnie zamówić taki system. 3

Wprowadzenie Specyfikacja wymagań (4) Dochodzi do transakcji pomiędzy klientem, posiadającym pieniądze, oraz firmą informatyczną, będącą w stanie spełnić oczekiwania klienta. 4

Wprowadzenie Specyfikacja wymagań (5) 5

Wprowadzenie Specyfikacja wymagań (6) 6

Wprowadzenie Specyfikacja wymagań (7) 7

Wprowadzenie Specyfikacja wymagań (8) 8

Wprowadzenie =? Specyfikacja wymagań (9) Z punktu widzenia takiej transakcji ważne jest, aby była równoważność pomiędzy tym ile klient zapłaci, tym co otrzyma w zamian. 9

Wprowadzenie Kontrakt = Specyfikacja wymagań (10) Dlatego, na początku przed przystąpieniem do realizacji projektu informatycznego musi zostać zawarty kontrakt pomiędzy klientem, a dostawcą. Kontrakt taki jest zabezpieczeniem dla obu stron. Z jednej strony zabezpiecza klienta, który ma obiecane, że w zamian za pieniądze dostanie pewien określony system informatyczny. Z drugiej strony zabezpiecza on dostawcę oprogramowania - daje mu pewność, że otrzyma zapłatę za swoją pracę. 10

Wprowadzenie Kontrakt Specyfikacja wymagań = Specyfikacja wymagań (11) Główną częścią kontraktu jest dokument zwany specyfikacją wymagań. Co oznacza ten termin? 11

Wprowadzenie Wymaganie = opis co system powinien robić źródło: www.wikipedia.org Specyfikacja = zbiór wymagań W momencie kiedy spiszemy wymagania, klient dostanie dokładnie to, czego potrzebuje Specyfikacja wymagań (12) Rozbijmy go na poszczególne wyrazy Jedno wymaganie, to opis pojedynczej funkcji, którą system powinien udostępniać swoim użytkownikom. Specyfikacja natomiast jest zbiorem wymagań, czyli zakresem funkcjonalności zamawianego systemu. Mogłoby się więc wydawać, że jeżeli spiszemy wymagania na początku projektu informatycznego (co nie jest powszechną praktyką), mamy zapewnienie, że klient dostanie dokładnie to, czego potrzebuje (i że nie będzie chciał od nas więcej!). 12

Wprowadzenie W momencie kiedy spiszemy wymagania, klient dostanie dokładnie to, czego potrzebuje 1. Słowa nie mają znaczenia! Specyfikacja wymagań (13) Niestety nie jest to takie proste, przynajmniej z kilku powodów. Po pierwsze, słowa nie mają znaczenia! Lingwistyka filozoficzna mówi, że to ludzie umówili się, iż krowa to krowa, dziecko to dziecko, a wiatrak to wiatrak. Równie dobrze można by się umówić, że krowę będziemy nazywać wiatrakiem, a wiatrak krową. 13

Wprowadzenie W momencie kiedy spiszemy wymagania, klient dostanie dokładnie to, czego potrzebuje 1. Słowa nie mają znaczenia! Załadunek kompletny? Raport miesięczny? SAD? Specyfikacja wymagań (14) Może to rodzić problemy związane z nazewnictwem, terminologią. W momencie kiedy przystępujemy do informatyzacji pewnego przedsiębiorstwa, z pewnością spotkamy się z szeregiem terminów, których nie zrozumiemy. Np. w firmach spedycyjnych powszechne są określenia: załadunek kompletny, raport miesięczny, SAD. Co one znaczą? Czy załadunek kompletny, to samochód, który zapakowano do określonej wagi? Czy też może samochód, którego ładunek zajmuje pewną określoną objętość minimalną? A może też samochód załadowany wszystkimi towarami uwzględnionymi w zleceniu? Co oznacza termin raport miesięczny? Czy to podsumowanie faktur z całego miesiąca? A może liczba transportów wraz z informacją o sumarycznym załadunku? A może jeszcze coś innego? SAD to kawałek ziemi obsadzony drzewami owocowymi, czy też może dokument celny? 14

Wprowadzenie W momencie kiedy spiszemy wymagania, klient dostanie dokładnie to, czego potrzebuje 2. Wiedza: świadoma nieświadoma Specyfikacja wymagań (15) Stwierdzenie nasze nie jest poprawne również z drugiego powodu: wiedza każdej osoby (a więc również klienta) składa się z części świadomej oraz nieświadomej. Może się więc zdarzyć (i jest tak dosyć często), że klient nie jest w pełni świadomy każdego wymagania, więc nie jest w stanie wszystkiego przekazać analitykowi. System zbudowany na podstawie takich niekompletnych wymagań na pewno nie spełni do końca jego potrzeb. 15

Wprowadzenie Wymagania telefonu Nokia N80: duży wyświetlacz duże, wygodne klawisze aparat o wysokiej rozdzielczości Specyfikacja wymagań (16) Problemy te najlepiej pokazać na przykładzie. Spójrzmy jak mogłyby wyglądać wymagania telefonu komórkowego. 16

Co oznacza określenie duże? Wprowadzenie Wymagania telefonu Nokia N80: duży wyświetlacz duże, wygodne klawisze aparat o wysokiej rozdzielczości WiFi Co oznacza określenie wysoka? Czy klawiatura nie może się znaleźć po drugiej stronie? Specyfikacja wymagań (17) Co oznacza określenie: duży wyświetlacz? Czy wyświetlacz wystarczający do odczytywania wiadomości tekstowych, a może przeglądania zdjęć w dużej rozdzielczości? Podobnie z pozostałymi określeniami: duże klawisze, wysoka rozdzielczość aparatu. Ciekawe spostrzeżenie możemy wysnuć w związku z wiedzą nieświadomą. Możemy być pewni, że nigdzie w wymaganiach żadnego telefonu komórkowego nie znajdziemy określenia, że klawiatura powinna być po tej samej stronie telefonu co wyświetlacz. Dlaczego więc nikt nie zrobi na odwrót: przecież gdybyśmy ułożyli klawiaturę po jednej stronie, a wyświetlacz po drugiej - bylibyśmy w stanie jeszcze bardziej zmniejszyć rozmiary telefonu. Jest to wiedza nieświadoma - każdy z nas korzystał z telefonu i wie że podczas naciskania klawiszy musi widzieć, co się dzieje na ekranie. Gdyby jednak te produkty były projektowane przez osoby, które nigdy nie miały do czynienia z czymkolwiek podobnym (tak jest w dużej części projektów informatycznych), wtedy z pewnością znalazłoby się wiele rzeczy zrobionych wbrew intuicji przyszłych użytkowników. 17

Jak sobie z tym poradzić? Spisywanie wymagań to sztuka - nie ma uniwersalnego sposobu Korzystaj z porad innych: dobre praktyki metody, które się sprawdziły Specyfikacja wymagań (18) No dobrze. Widzimy, że na inżynierów wymagań czyha wiele niebezpieczeństw. Czy jest jakiś uniwersalny sposób poradzenia sobie z nimi? Niestety nie. Pozyskiwanie wymagań jest pewnego rodzaju sztuką. Można jednak patrzeć, jak to robią inni oraz spróbować pewnych dobrych praktyk zaproponowanych przez ekspertów w tej dziedzinie. 18

Plan wykładu Wprowadzenie Wymagania pozafunkcjonalne Wymagania funkcjonalne: Przypadki użycia Jak pisać przypadki użycia? Dobre praktyki Sommerville i Sawyer a Specyfikacja wymagań (19) Po tym dłuższym wprowadzeniu, które właśnie miało miejsce, omówimy następujące zagadnienia: podział wymagań na pozafunkcjonalne i funkcjonalne. sposoby opisywania wymagań funkcjonalnych ze szczególnym naciskiem na przypadki użycia dobre praktyki Sommerville i Sawyer a 19

Podział wymagań Funkcjonalne: Wprowadzanie nowej faktury Generowanie raportu miesięcznego Pozafunkcjonalne minimum 20 faktur na godzinę 200000h MTBF maksimum 2 godziny potrzebne na przeszkolenie 1 pracownika Specyfikacja wymagań (20) W celu lepszego ogarnięcia wymagań systemów informatycznych, specjaliści podzielili je na 2 kategorie: na wymagania funkcjonalne i pozafunkcjonalne. Wymagania funkcjonalne to funkcje systemu widziane od strony użytkownika, np wprowadzenie nowej faktury, lub wygenerowanie raportu miesięcznego. Natomiast wymagania pozafunkcjonalne to wszystkie inne wymagania, zwłaszcza takie związane z bezpieczeństwem, wydajnością, awaryjnością, np: system ma umożliwiać wprowadzenie co najmniej 20 faktur w ciągu godziny, lub średni czas pomiędzy awariami (ang. MTBF) powinien wynosić 200000h. 20

Wymagania pozafunkcjonalne Functionality - funkcjonalność Usability - użyteczność Reliability - niezawodność Performance - wydajność Security - bezpieczeństwo Specyfikacja wymagań (21) Bardzo powszechny jest również podział FURPS. Pierwsza litera oznacza wymagania funkcjonalne, natomiast pozostałe - wymagania pozafunkcjonalne. U - użyteczność, oznacza łatwość użytkowania systemu. Takie wymagania można precyzować np. poprzez maksymalny czas szkolenia pracownika, liczba kontaktów ze wsparciem klienta, liczbą sytuacji, w których konieczne jest skorzystanie z systemu pomocy. R - niezawodność, może być mierzona poprzez: średnią liczbę godzin pracy bez awarii (ang. MTBF - Mean Time Between Failure), maksymalną liczbą godzin w miesiącu w ciągu których system może być wyłączony w celach pielęgnacyjnych (ang. maintainance) - ma to znaczenie szczególnie w przypadku systemów, które muszą pracować na okrągło - np. systemy bankowości elektronicznej P - wydajność - mierzona np. liczbą transakcji, którą system jest w stanie obsłużyć w ciągu godziny, liczbą użytkowników, którzy mogą być zalogowani jednocześnie do portalu S - bezpieczeństwo, to wymagania związane z szyfrowaniem, polityką praw, itp. 21

Plan wykładu Wprowadzenie Wymagania pozafunkcjonalne Wymagania funkcjonalne: Przypadki użycia Jak pisać przypadki użycia? Dobre praktyki Sommerville i Sawyer a Specyfikacja wymagań (22) Z punktu widzenia klienta dużo ciekawsze wydają się wymagania funkcjonalne. Ta część wykładu będzie poświęcona właśnie takim wymaganiom. 22

Wymagania funkcjonalne System powinien Funkcje systemu Przypadki użycia Specyfikacja wymagań (23) Wymagania funkcjonalne opisują funkcje poszczególnych użytkowników. Przedstawimy trzy podejścia. Pierwsze dwa są podejściami historycznymi, natomiast ostatni - przypadki użycia staje się obecnie coraz bardziej popularny. 23

System powinien Zalety: łatwość spisywania Wady: słaba czytelność trudne sprawdzanie kompletności, spójności System powinien umożliwić wystawianie faktur System powinien generować zestawienie miesięczne faktur Faktura powinna zawierać co najmniej jedną pozycję (tak przez kolejnych 200 stron) Specyfikacja wymagań (24) Wymagania w stylu System powinien były intensywnie wykorzystywane w latach 80-tych, 90- tych. W roku 1998 nawet zostały zaproponowane jako standard (IEEE 830-1998). Ich dużą zaletą jest łatwość spisywania. Niestety obecne systemy stają się coraz bardziej złożone, a wymagania średniej wielkości systemu w tej postaci zajęłyby kilkaset stron. Tak wielka liczba luźnych zdań, niepowiązanych ze sobą sprawia trudności podczas sprawdzania jakości takiej specyfikacji. 24

Funkcje systemu Wejście Funkcja (operacja) Wyjście Wady: słaba czytelność trudne do zrozumienia Efekty uboczne Specyfikacja wymagań (25) Innym podejściem jest opisywanie poszczególnych funkcji systemu. Analogicznie do funkcji matematycznych, każda funkcja systemu informatycznego ma swoje wejście, wyjście, efekty uboczne. Przykładowo, rozpatrując funkcję wystawiania faktury, wejściem mogą być pozycje faktury, wyjściem wydruk faktury (lub wysłanie jej faksem), natomiast efektem ubocznym zapisanie tej faktury w rejestrze faktur. Podobnie jak w przypadku wymagań typu System powinien, taka specyfikacja wymagań zawiera bardzo dużą liczbę małych funkcji, więc nadal są problemy ze zrozumieniem idei systemu i czytelnością. 25

Przypadki użycia UC1: Wystawianie faktury Główny scenariusz: 1. Sprzedawca pragnie wystawić fakturę. 2. Sprzedawca wpisuje pozycje faktury. 3. System podlicza fakturę, nadaje jej nowy numer i zapisuje w rejestrze 4. Sprzedawca drukuje fakturę. Zalety: łatwość spisywania czytelność łatwość zrozumienia i wyobrażenia sobie przyszłego systemu Specyfikacja wymagań (26) Trzecie podejście to przypadki użycia. Poprzednie podejścia opisywały wymagania z perspektywy systemu - jak system powinien się zachować w określonej sytuacji. Przypadki użycia natomiast skupiają się na interakcji pomiędzy użytkownikiem, a systemem. Dzięki takiemu podejściu zyskujemy na czytelności - przypadki użycia nie pokazują zbędnych szczegółów. Dużo łatwiej też jest klientowi wyobrazić sobie jak system będzie funkcjonował. Nie czyta opisu matematycznego, lecz pewną opowieść, która mówi o tym, w jaki sposób np. wystawić fakturę. 26

Plan wykładu Wprowadzenie Wymagania pozafunkcjonalne Wymagania funkcjonalne: Przypadki użycia Jak pisać przypadki użycia? Dobre praktyki Sommerville i Sawyer a Specyfikacja wymagań (27) W dalszej części wykładu skupimy się na tym trzecim podejściu - przypadkach użycia. Najpierw dowiemy się czym jest przypadek użycia i jak jest zbudowany. 27

Przypadek użycia Forma ustrukturalizowana Nazwa Wystawianie faktury Specyfikacja wymagań (28) Jak już było powiedziane wcześniej - przypadek użycia jest opisem interakcji pomiędzy użytkownikiem, a systemem informatycznym. Mogą one występować w różnych formach. Najprostsza to akapit tekstu pisany językiem naturalnym. Bardziej powszechna jest jednak postać strukturalna. Każdy przypadek użycia w tej formie składa się z następujących elementów: Nazwa - wyraża cel przypadku użycia (np. wystawianie faktury, zamówienie książki, dodanie wpisu na forum) 28

Przypadek użycia Forma ustrukturalizowana Nazwa Identyfikator UC1: Wystawianie faktury Specyfikacja wymagań (29) Identyfikator - unikalny w obrębie danej specyfikacji wymagań, przydaje się podczas dyskusji na temat wymagań - do odwoływania się do poszczególnych elementów. Dzięki nim można prosto powiedzieć, że np. w przypadku użycia UC1, w kroku 2 jest błąd. 29

Przypadek użycia Forma ustrukturalizowana Nazwa Identyfikator Główny scenariusz UC1: Wystawianie faktury Główny scenariusz: 1. Sprzedawca pragnie wystawić fakturę. 2. Sprzedawca wpisuje pozycje faktury. 3. System podlicza fakturę, nadaje jej nowy numer i zapisuje w rejestrze 4. Sprzedawca drukuje fakturę. Specyfikacja wymagań (30) Główny scenariusz - sekwencja kroków, która musi zostać wykonana do osiągnię 30

Przypadek użycia Forma ustrukturalizowana Nazwa Identyfikator Główny scenariusz Rozszerzenia UC1: Wystawianie faktury Główny scenariusz: 1. Sprzedawca pragnie wystawić fakturę. 2. Sprzedawca wpisuje pozycje faktury. 3. System podlicza fakturę, nadaje jej nowy numer i zapisuje w rejestrze. 4. Sprzedawca drukuje fakturę. Rozszerzenia: 3.A. Sprzedawca nie dodał żadnej pozycji 3.A.1. System prosi o ponowne wprowadzenie pozycji (powrót do 2.) Specyfikacja wymagań (31) Nie zawsze jest możliwość wykonania głównego scenariusza. Czasem użytkownik popełni jakiś błąd, innym razem nie są spełnione pewne warunki, co uniemożliwia przejście dalej. Reakcje na takie wydarzenia możemy umieścić w rozszerzeniach. Przykładowo w kroku 3. może się okazać, że sprzedawca nie dodał żadnej pozycji. Dzięki rozszerzeniom możemy podać sekwencję kroków, która będzie wykonana w takiej sytuacji. 31

Przypadek użycia Forma ustrukturalizowana Nazwa Identyfikator Główny scenariusz Rozszerzenia Atrybuty UC1: Wystawianie faktury Atrybuty: Główny aktor: Użytkownik Priorytet: Wysoki Źródło: Łukasz Olek Główny scenariusz: 1. Sprzedawca pragnie wystawić fakturę. 2. Sprzedawca wpisuje pozycje faktury. 3. System podlicza fakturę, nadaje jej nowy numer i zapisuje w rejestrze. 4. Sprzedawca drukuje fakturę. Rozszerzenia: Specyfikacja wymagań (32) Dodatkowo, do każdego wymagania możemy dołączyć listę atrybutów, np. -nazwę głównego aktora - użytkownika, który gra główną rolę w danym przypadku użycia -priorytet tego wymagania z punktu widzenia klienta -źródło wymagania - osoba, od której pochodzi konkretne wymaganie - taka informacja przydaje się później, kiedy programiści będą mieli jakieś wątpliwości i dodatkowe pytania - będą w stanie trafić bezpośrednio do osoby najlepiej poinformowanej. 32

Przypadki użycia, a UML Diagram przypadków użycia: Nazwy przypadków użycia Powiązania z aktorami Dobre jako mapa Specyfikacja wymagań (33) Przypadki użycia są często mylone z diagramami przypadków użycia z UML a. Postaram już na początku zaznaczyć te różnice, żebyście Państwo nie mieli takich problemów w przyszłości. Diagram przypadków użycia prezentuje tylko połączenie aktorów z przypadkami użycia. Każdy przypadek użycia jest tutaj reprezentowany jako nazwa. Jest to dobre w początkowej fazie analizy wymagań, kiedy odkrywamy funkcje systemu, lecz wymaga późniejszego doprecyzowania, czyli napisania specyfikacji wymagań, która będzie zawierać kompletne przypadki użycia. W takiej specyfikacji wymagań dobrze jest umieścić na początku diagram przypadków użycia, który będzie służył jako spis treści dokumentu. 33

Plan wykładu Wprowadzenie Wymagania pozafunkcjonalne Wymagania funkcjonalne: Przypadki użycia Jak pisać przypadki użycia? Dobre praktyki Sommerville i Sawyer a Specyfikacja wymagań (34) Na kolejnych slajdach przedstawię podstawowe zasady pisania przypadków użycia. 34

Jak pisać przypadki użycia? Steve Adolph, Paul Bramble: Patterns for Effective Use Cases Specyfikacja wymagań (35) Jedną z lepszych książek mówiących o tym są: Wzorce Efektywnych Przypadków Użycia, napisana przez ludzi stosujących to podejście od lat w projektach informatycznych i mających duże doświadczenie w tym zakresie. 35

Jak pisać przypadki użycia? Przypadek użycia Zbiór przypadków użycia Proces Zespół Specyfikacja wymagań (36) Stworzyli oni listę wzorców, czyli dobrych praktyk dotyczących pisania i podzielili ją na 4 grupy: -pierwsza dotyczy pojedynczego przypadku użycia, -druga - całego ich zbioru, czyli sposobu komponowania specyfikacji z pojedynczych wymagań -trzecia - dotyczy procesu ich tworzenia, oraz -czwarta - zespołu osób, które przygotowują specyfikację wymagań 36

Jak pisać przypadki użycia? Przypadek użycia Zbiór przypadków użycia Proces Zespół Specyfikacja wymagań (37) Zacznijmy od wzorców związanych z pojedynczym przypadkiem użycia 37

Przypadek użycia Fraza czasownikowa w nazwie : Wystawianie faktury Generowanie raportu miesięcznego Główny przypadek użycia Przypadek użycia 2 Zarządzanie Specyfikacja wymagań (38) Nazwa przypadku użycia jest bardzo ważna - występuje w wielu miejscach dokumentu (spisie treści, diagramach przypadków użycia, itp), tak więc w sformułowanie prawidłowej nazwy powinna być włożona odrobina wysiłku, tak aby dobrze odzwierciedlała ona zawartość przypadku użycia. Mówi o tym pierwszy wzorzec, jaki wybrałem z książki: Fraza czasownikowa w nazwie. Frazy czasownikowe dobrze opisują cele przypadków użycia, np jak spotkamy nazwę: wystawianie faktury, albo generowanie raportu miesięcznego, to od razu wiemy o jakie wymaganie chodzi. Kilka przykładów złych nazw: -Nazwy nic nie znaczące: Główny przypadek użycia, Przypadek użycia 2 -Zbyt ogólna, przez co nie stanowi żadnej wartości dla czytelnika: Zarządzanie 38

Przypadek użycia Scenariusz i rozszerzenia : Nadrzędny cel: czytelność! Scenariusz główny - najbardziej prawdopodobna ścieżka 3-9 kroków Rozszerzenia - alternatywne scenariusze kiedy coś pójdzie nie tak numer rozszerzenia: numer kroku + kolejna litera UC1: Dodawanie nowej faktury Główny scenariusz: 1. Użytkownik pragnie dodać nową fakturę. 2. Użytkownik wpisuje pozycje faktury. 3. System podlicza fakturę, nadaje jej nowy numer i zapisuje w rejestrze. 4. Użytkownik drukuje fakturę. Rozszerzenia: 3.A. Użytkownik nie dodał żadnej pozycji 3.A.1. System prosi o ponowne wprowadzenie pozycji (powrót do 2.) Specyfikacja wymagań (39) Drugi omawiany wzorzec to Scenariusz i rozszerzenia Przypadek użycia powinien być podzielony na takie 2 części - dzięki temu czytelnik może się zapoznać najpierw z głównym scenariuszem i zrozumieć na czym polega wymaganie, a następnie przejść do niuansów zawartych w rozszerzeniach. Generalną zasadą jest zwięzłość i przejrzystość, aby czytelnik nie pogubił się. Dlatego, każdy scenariusz powinien zawierać od 3-9 kroków (gdy jest ich mniej, specyfikacja wymagań jest zbyt fragmentaryczna, natomiast gdy jest ich więcej - czytelnik nie jest w stanie ogarnąć pamięcią całości). Ze względu na czytelność, również poszczególne kroki scenariusza nie powinny być zbyt skomplikowane. Najlepiej gdy są wyrażone prostym zdaniem zawierającym podmiot (czyli aktora). Rozszerzenia natomiast, to sekwencje kroków wykonywane podczas sytuacji wyjątkowych. Numer rozszerzenia składa się zawsze z numeru kroku, którego rozszerzenie dotyczy, oraz litery - stanowiącej numer rozszerzenia (w ramach tego kroku). Czyli przykładowo możemy się spotkać z takimi rozszerzeniami: 1.A. 2.A. 3.A. 1.B. Rozszerzenia mogą być wielokrotnie zagnieżdżane, czyli przykładowo, jeżeli mamy krok 1.A.2 i chcemy do niego dodać rozszerzenie, to będzie ono miało numer 1.A.2.A. 39

Przypadek użycia Obojętność technologiczna : technologia jest zmienna niepotrzebne ograniczenia szczegóły GUI zaciemniają obraz klient nie rozumie terminy technicznych Przykłady: Pracownik klika na link kalendarium System zapisuje dane użytkownika w bazie danych System za pomocą protokołu SOAP pobiera aktualną temperaturę Specyfikacja wymagań (40) Wzorzec kolejny: Obojętność technologiczna Błędem jest, gdy przypadki użycia zawierają szczegóły technologiczne: -technologia jest zmienna - może sie okazać, że następny podobny projekt będzie realizowany w nowej technologii, mimo że część wymagań będzie identyczna. Jeżeli przypadki użycia będą zawierać szczegóły technologiczne, to ponowne zastosowanie raz napisanych wymagań będzie dużo trudniejsze -szczegóły Graficznego Interfejsu Użytkownika (ang. GUI - Graphical User Interface) zaciemniają jedynie obraz czytelnika - gubi się on w gąszczu szczegółów. Czasem jednak jest potrzeba zobrazowania klientowi takich szczegółów - wtedy warto naszkicować poszczególne ekrany aplikacji i dodać je jako załącznik do specyfikacji wymagań -klient nie rozumie terminów technicznych w stylu SOAP, baza danych, HTTP, itp. 40

Jak pisać przypadki użycia? Przypadek użycia Zbiór przypadków użycia Proces Zespół Specyfikacja wymagań (41) Kiedy potrafimy napisać pojedynczy przypadek użycia, czas dowiedzieć się, w jaki sposób składać te elementy w całą specyfikację wymagań. 41

Zbiór przypadków użycia Rozwijalna historia : Hierarchiczne scenariusze Można rozwijać lub zwijać w celu pokazania lub ukrycia szczegółów Specyfikacja wymagań (42) Pierwszy wzorzec z tej grupy to Rozwijalna historia Zbiór przypadków użycia powinien stanowić rozwijalną historię, czyli być zorganizowany w hierarchiczne drzewo scenariuszy. Im głębiej, tym przypadki użycia są bardziej szczegółowe. Dzięki temu będzie można przeczytać tylko przypadki użycia najwyższego poziomu, aby mieć ogólną wiedzę o systemie, lub zagłębiać się coraz bardziej jeżeli potrzebujemy większych szczegółów. 42

Rozwijalna historia Poziom celu użytkownika: główny aktor osiąga zamierzony cel w ciągu jednej sesji przy komputerze Specyfikacja wymagań (43) W celu łatwiejszego zorientowania się w tej hierarchii scenariuszy, wprowadzono podział przypadków użycia na trzy poziomy. Środkowy poziom - to poziom celu użytkownika. Przypadki użycia na tym poziomie opisują poszczególne funkcje systemu, z punktu widzenia użytkowników, np. Rejestracja na szkolenie, Wypełnienie ankiety, Redagowanie ankiety 43

Rozwijalna historia Poziom podfunkcji: przecyzuje wykonanie funkcji Specyfikacja wymagań (44) Niekiedy do opisania pewnych funkcji potrzebujemy większych szczegółów. Wtedy korzystamy z przypadków użycia poziomu podfunkcji. Jeżeli np. uważamy, że Dodawanie komponentu do ankiety, lub Wysyłanie wiadomości email wymaga doprecyzowania, możemy stworzyć taki przypadek użycia i wywołać go z przypadku użycia wyższego poziomu. Przykładowo, mamy dane 2 przypadki użycia: UC1. Rozsyłanie ankiety, oraz SUB1. Wysyłanie wiadomości email. Wtedy z UC1, możemy wywołać drugi przypadek użycia, poprzez wymienienie tego przypadku użycia w treści jednego z kroków: UC1. Rozsyłanie ankiety. 3. System wysyła prośbę o wypełnienie ankiety do wszystkich firm zarejestrowanych w systemie (SUB1). To jest znak dla czytelnika, że jeżeli interesują go szczegóły danego kroku, może zajrzeć do przypadku użycia SUB1. 44

Rozwijalna historia Poziom streszczenia (biznesowy): kontekst dla wymagań użytkownika Specyfikacja wymagań (45) Trzeci poziom, to poziom biznesowy. Służy on do naszkicowania kontekstu dla tworzonego systemu. W momencie kiedy analityk pozna specyfikę konkretnej firmy, jej procesy biznesowe, dużo prościej zrozumieć wymagania użytkownika. W celu opisania tych procesów można skorzystać z przypadków użycia poziomu streszczenia (biznesowego). 45

Rozwijalna historia Specyfikacja wymagań (46) Na kolejnych slajdach widać, w jakiej kolejności czytać przypadki użycia, aby maksymalnie szybko zrozumieć wymagania systemu. W dowolnym momencie można przerwać czytanie, jeżeli nie potrzebujemy większej liczby szczegółów. 46

Rozwijalna historia Specyfikacja wymagań (47) 47

Rozwijalna historia Specyfikacja wymagań (48) 48

Rozwijalna historia Specyfikacja wymagań (49) 49

Jak pisać przypadki użycia? Przypadek użycia Zbiór przypadków użycia Proces Zespół Specyfikacja wymagań (50) Trzecia grupa - wzorce dotyczące procesu powstawania przypadków użycia. Mówią one, w jaki sposób spisywać przypadki użycia, aby zrobić to najefektywniej. 50

Proces Szerokość przed głębokością : pozyskiwanie wymagań - odkrywczy proces zmiany na tym etapie - bardzo prawdopodobne pisanie kompletnych przypadków użycia - strata energii rozwijaj w kolejności: 1. lista aktorów 2. nazwy przypadków użycia 3. główny scenariusz 4. rozszerzenia Specyfikacja wymagań (51) Pozyskiwanie wymagań jest procesem odkrywczym. Nie ma osób, które są w stanie od razu zaproponować w pełni poprawne wymagania. Często pytamy klienta, jak wyobraża sobie poszczególne funkcje systemu, następnie zapisujemy to w formie przypadków użycia, po czym okazuje się, że chodziło o coś zupełnie innego. Dlatego warto robić to stopniowo, na początku bardzo zgrubnie, a w momencie kiedy upewnimy się, że nasz tor myślenia jest prawidłowy, można dodawać szczegóły. Takie podejście właśnie oznacza określenie Szerokość przed głębokością Dla przypadków użycia proponowane są następujące etapy: -1. odkrycie wszystkich aktorów -2. zaprezentowanie funkcji - nazwy przypadków użycia -3. dopisanie głównego scenariusza do każdej nazwy przypadku użycia -4. uzupełnienie rozszerzeń 51

Szerokość przed głębokością Lista Aktor-Cel: Firma Rejestracja na szkolenie Pobieranie artykułu Zgłoszenie do udziału w projekcie Konsultant Akceptuje zgłoszenia nowych firm Zarządza artykułami w portalu Przeprowadza ankiety Specyfikacja wymagań (52) Pierwsze dwa kroki (aktorzy i nazwy przypadków użycia) można przedstawić na diagramie przypadków użycia, lub prościej - w formie tabeli Aktor-Cel, której przykład jest zaprezentowany na slajdzie. 52

Jak pisać przypadki użycia? Przypadek użycia Zbiór przypadków użycia Proces Zespół Specyfikacja wymagań (53) Ostatnia grupa wzorców, to wzorce dotyczące zespołu autorów przypadków użycia. 53

Zespół Mały zespół autorów wielkość zespołu to najważniejszy czynnik wpływający na jakość 2-3 osoby w zupełności wystarczają zaangażuj więcej osób w proces recenzji duże systemy kilka małych zespołów z jednym architektem odpowiedzialnym za spójną wizję systemu Specyfikacja wymagań (54) Kluczowym czynnikiem stanowiącym o jakości specyfikacji wymagań jest wielkość zespołu analityków. Z praktyki wynika, iż 2-3 osoby są w zupełności wystarczające - o tym mówi ten wzorzec. Jeżeli będzie więcej piszących, to narzut związany z komunikacją między nimi będzie zbyt duży, a kompromisy trudne do osiągnięcia. Więcej osób można zaangażować na etapie recenzji - wtedy inne osoby (testerzy, użytkownicy) będą w stanie wyrazić swoje zdanie. W trakcie pracy nad ogromnymi systemami może się okazać, że 2-3 osoby nie są w stanie ogarnąć całości. Wtedy warto taki system podzielić na moduły i powołać po jednym małym zespole do analizowania wymagań tylko w ramach modułu. 54

Zespół Zrównoważony zespół grupa podobnych specjalistów skupi się jedynie na ograniczonych problemach synergia: kompensuj słabe strony jednych, dobrymi stronami innych połącz ludzi różnej specjalności analitycy i użytkownicy Specyfikacja wymagań (55) Drugim kluczowym czynnikiem, jeżeli chodzi o zespół analityków, jest różnorodność specjalistów. W dzisiejszych czasach żadko kto ma tak obszerne doświadczenie, że zna się jednocześnie na tworzeniu oprogramowania i dziedzinie, którą informatyzujemy. W związku z tym warto na etapie powstawania wymagań połączyć siły specjalistów z różnych dziedzin. Autorzy wzorców nazwali to Zrównoważonym zespołem. Tak skomponowany zespół będzie w stanie dostrzec dużo wcześniej wiele problemów i szybciej stworzyć poprawne wymagania. 55

Często popełniane błędy UC1: Faktura Główny scenariusz: 1. Sprzedawca wpisuje kod dostępu. 2. System weryfikuje użytkownika. 3. Kliknięcie na przycisk wystawiania faktury. 4. System prezentuje formularz. 5. Wpisanie pozycji w dolnym okienku. 6. Wpisanie wartości pozycji, stawki VAT, liczby pozycji i nr. porządkowego. 7. System podlicza fakturę i prezentuje sumę. 8. System nadaje nowy numer i zapisuje w rejestrze faktur. 9. Wydruk faktury. 10. Jeżeli wystawianie faktur zakończyło się, to użytkownik się wylogowuje. Rozszerzenia: 3.A. Sprzedawca nie dodał żadnej pozycji 3.A.1. System prosi o ponowne wprowadzenie pozycji (powrót do 2.) Specyfikacja wymagań (56) To tyle, jeżeli chodzi o podstawowe informacje dotyczące tworzenia przypadków użycia. W celu ich lepszego utrwalenia wykonajmy proste ćwiczenie Spróbujmy znaleźć naruszenia podanych wcześniej zasad na bieżącym slajdzie. 56

Często popełniane błędy UC1: Faktura Główny scenariusz: 1. Sprzedawca wpisuje kod dostępu. 2. System weryfikuje użytkownika. 3. Kliknięcie na przycisk wystawiania faktury. 4. System prezentuje formularz. 5. Wpisanie pozycji w dolnym okienku. 6. Wpisanie wartości pozycji, stawki VAT, liczby pozycji i nr. porządkowego. 7. System podlicza fakturę i prezentuje sumę. 8. System nadaje nowy numer i zapisuje w rejestrze faktur. 9. Wydruk faktury. 10. Jeżeli wystawianie faktur zakończyło się, to użytkownik się wylogowuje. Rozszerzenia: 3.A. Sprzedawca nie dodał żadnej pozycji 3.A.1. System prosi o ponowne wprowadzenie pozycji (powrót do 2.) Specyfikacja wymagań (57) Najważniejsze błędy to: -tytuł przypadku użycia nie mówi, czym przypadek użycia będzie się zajmował (nie wiemy czy to jest wystawienie faktury, wysłanie, przefaksowanie, odbiór, czy cokolwiek innego) -W krokach 3, 5, 6, 7 znajdują się zbędne szczegóły (część to szczegóły techniczne, np. informacje o GUI, wyliczenia pól na ekranie, itp.) -W krokach 3, 5, 6, 9 - nie ma sprecyzowanego podmiotu, czyli aktora, który wykonuje krok. -Krok 10 zawiera konstrukcję warunkową - warunki powinny się znaleźć w sekcji rozszerzeń, a nie w głównym scenariuszu. -Scenariusz posiada 10 kroków, czyli jest za długi dla przeciętnego czytelnika. Liczba kroków powinna oscylować pomiędzy 3-9. 57