inżynieria wymagań. proces inżynierii wymagań · analiza istniejącego procesu w firmie...

42
INŻYNIERIA OPROGRAMOWANIA INŻYNIERIA OPROGRAMOWANIA INŻYNIERIA OPROGRAMOWANIA Inżynieria wymagań. Proces inżynierii wymagań 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 Dilbert by Scott Adams, tłum. własne

Upload: votuong

Post on 02-Mar-2019

218 views

Category:

Documents


0 download

TRANSCRIPT

INŻYNIERIA OPROGRAMOWANIAINŻYNIERIA OPROGRAMOWANIA INŻYNIERIAOPROGRAMOWANIA

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

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

Dilbert by Scott Adams, tłum. własne

Ogólne zadania inżynierii wymagań INŻYNIERIAOPROGRAMOWANIA

� 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ń INŻYNIERIAOPROGRAMOWANIA

� 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?

� 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

Konsekwencje źle wyspecyfikowanych wymagańKonsekwencje źle wyspecyfikowanych wymagań INŻYNIERIAOPROGRAMOWANIA

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ńKonsekwencje źle wyspecyfikowanych wymagań INŻYNIERIAOPROGRAMOWANIA

�� System może być dostarczony później i kosztować więcej niż System może być dostarczony później i kosztować więcej niż

planowanoplanowano

�� Klient i użytkownicy końcowi mogą nie być zadowoleni z systemu. 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 wMogą w ogóle nie używać wybranych jego funkcji lub odrzucić go w

całościcałości

�� System może działać niepewnie w normalnym użytkowaniu, System może działać niepewnie w normalnym użytkowaniu,

generować błędy, zawieszać się itp.generować błędy, zawieszać się itp.

�� Koszt konserwacji i ewolucji systemu może znacząco wzrosnąćKoszt konserwacji i ewolucji systemu może znacząco wzrosnąć

Wniosek:Wniosek: należy przyjrzeć się bliżej należy przyjrzeć się bliżej procesowi inżynierii procesowi inżynierii

oprogramowaniaoprogramowania, który służy do określania, analizowania i , który służy do określania, analizowania i

zatwierdzania wymagań stawianych systemowi i obejmuje wszystkie zatwierdzania wymagań stawianych systemowi i obejmuje wszystkie

czynności niezbędne do opracowania i aktualizacji dokumentacji czynności niezbędne do opracowania i aktualizacji dokumentacji

wymagań systemowychwymagań systemowych

Czynności procesu inżynierii wymagańCzynności procesu inżynierii wymagań INŻYNIERIAOPROGRAMOWANIA

Ogólne czynności w procesie inżynierii wymagań:Ogólne czynności w procesie inżynierii wymagań:

�� studium wykonalnościstudium wykonalności

�� określanie i analizowanie wymagańokreślanie i analizowanie wymagań

�� specyfikowanie i dokumentowanie wymagańspecyfikowanie i dokumentowanie wymagań

�� zatwierdzanie wymagańzatwierdzanie wymagań

Studiumwykonalności

Określanie i analizowanie

wymagańSpecyfikowanie

wymagań Zatwierdzanie wymagań

Raportwykonalności

Dokumentacjawymagań

Określanie i analizowanie wymagań INŻYNIERIAOPROGRAMOWANIA

�� Polega na pracy z klientem i użytkownikami Polega na pracy z klientem i użytkownikami

systemu nad badaniem dziedziny zastosowania i systemu nad badaniem dziedziny zastosowania i

usług, które system ma oferować, pożądanej usług, które system ma oferować, pożądanej

efektywności, ograniczeń sprzętowych, efektywności, ograniczeń sprzętowych,

organizacyjnych itd.organizacyjnych itd.

�� W określaniu i analizowaniu wymagań mogą wziąć W określaniu i analizowaniu wymagań mogą wziąć

udział osoby z różnych stanowisk w firmie. udział osoby z różnych stanowisk w firmie.

Pojawia się pojęcie udziałowca.Pojawia się pojęcie udziałowca.

UdziałowiecUdziałowiec ((ang. ang. StakeholderStakeholder) ) –– każdy, kto ma każdy, kto ma

pośredni lub bezpośredni wpływ na wymaganiapośredni lub bezpośredni wpływ na wymagania

Udziałowcy – różne perspektywy INŻYNIERIAOPROGRAMOWANIA

Proces określania i analizowania wymagań INŻYNIERIAOPROGRAMOWANIA

Start

Rozpoznaniedziedziny

Zbieraniewymagań

Klasyfikacja

Usuwaniesprzeczności

Nadawaniepriorytetów

Sprawdzeniewymagań

Specyfikacjawymagań

Dokumentacjawymagań

Techniki pozyskiwania wymagańTechniki pozyskiwania wymagań INŻYNIERIAOPROGRAMOWANIA

�� Studia dziedzinowe Studia dziedzinowe –– standardy, regulacje, przepisy prawne, standardy, regulacje, przepisy prawne,

schematy, opisy procedur i stanowisk itp.schematy, opisy procedur i stanowisk itp.

�� Analiza istniejącego procesu w firmie Analiza istniejącego procesu w firmie –– gdzie jest problem?gdzie jest problem?

�� Wywiady Wywiady –– pozyskiwanie informacji podczas bezpośredniej pozyskiwanie informacji podczas bezpośredniej

rozmowy z klientemrozmowy z klientem

�� Obserwacje Obserwacje –– obserwowanie istniejącego stanu rzeczyobserwowanie istniejącego stanu rzeczy

�� Praca grupowa Praca grupowa –– npnp. „burza mózgów”. „burza mózgów”

�� Ankiety, kwestionariuszeAnkiety, kwestionariusze

�� Prezentacje wstępnej reprezentacji zebranych wymagań (Prezentacje wstępnej reprezentacji zebranych wymagań (npnp. w . w

postaci diagramu przypadków użycia) pozostałym udziałowcom postaci diagramu przypadków użycia) pozostałym udziałowcom

�� Symulacje Symulacje –– symulowanie różnych punktów widzeniasymulowanie różnych punktów widzenia

�� EksperymentyEksperymenty

�� PrototypowaniePrototypowanie

Dlaczego określanie wymagań jest takie nudne Dlaczego określanie wymagań jest takie nudne trudne?trudne?

INŻYNIERIAOPROGRAMOWANIA

�� Biznes jest zwykle prowadzony w szybko zmieniającym się Biznes jest zwykle prowadzony w szybko zmieniającym się

środowiskuśrodowisku (ekonomicznym, rynkowym, prawnym, politycznym, (ekonomicznym, rynkowym, prawnym, politycznym,

technologicznym), zatem wymagania na system ciągle się zmieniajątechnologicznym), zatem wymagania na system ciągle się zmieniają

�� Zwykle w procesie zbierania wymagań Zwykle w procesie zbierania wymagań występuje wielu występuje wielu

udziałowcówudziałowców ze znacząco różnymi celami, oczekiwaniami ze znacząco różnymi celami, oczekiwaniami

względem systemu oraz priorytetami (często sprzecznymi ze sobą)względem systemu oraz priorytetami (często sprzecznymi ze sobą)

�� Udziałowcy często nie wiedzą, czego tak naprawdę oczekująUdziałowcy często nie wiedzą, czego tak naprawdę oczekują od od

nowo tworzonego systemu komputerowegonowo tworzonego systemu komputerowego

�� Udziałowcy mogą stawiać nierealne żądaniaUdziałowcy mogą stawiać nierealne żądania ((npnp. nie uwzględniając . nie uwzględniając

kosztu ich wprowadzenia)kosztu ich wprowadzenia)

�� Udziałowcy systemu wyrażają wymagania za pomocą własnych Udziałowcy systemu wyrażają wymagania za pomocą własnych

pojęć. pojęć. Inżynier oprogramowania musi zrozumieć tak wyrażone Inżynier oprogramowania musi zrozumieć tak wyrażone

wymagania i przełożyć je na wymagania systemowewymagania i przełożyć je na wymagania systemowe

Dlaczego określanie wymagań jest takie trudne? Dlaczego określanie wymagań jest takie trudne? Czynniki polityczne i ludzkieCzynniki polityczne i ludzkie

INŻYNIERIAOPROGRAMOWANIA

�� Kluczowi udziałowcy zawsze mają inne rzeczy na głowie!Kluczowi udziałowcy zawsze mają inne rzeczy na głowie!

Opracowanie (podanie) szczegółowych wymagań dla przyszłego Opracowanie (podanie) szczegółowych wymagań dla przyszłego

systemu często nie ma zbyt wysokiego priorytetu u osób, które bęsystemu często nie ma zbyt wysokiego priorytetu u osób, które będą dą

dotknięte tymi wymaganiami. W związku z tym nie są w stanie dotknięte tymi wymaganiami. W związku z tym nie są w stanie

wyrazić wymagań szczegółowo, robią to mało konkretniewyrazić wymagań szczegółowo, robią to mało konkretnie

�� Udziałowcy nie muszą być przekonani do końca, że tworzenie Udziałowcy nie muszą być przekonani do końca, że tworzenie

systemu jest koniecznesystemu jest konieczne lub uważać, że nie jest to sprawa lub uważać, że nie jest to sprawa

priorytetowapriorytetowa.. Mogą więc aktywnie bądź pasywnie odmawiać Mogą więc aktywnie bądź pasywnie odmawiać

współpracywspółpracy

�� Czynniki polityczne i organizacyjneCzynniki polityczne i organizacyjne u zleceniodawcy również mają u zleceniodawcy również mają

zwykle spory wpływ na system, a udziałowcy nie chcą lub nie 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 potrafią ich określić czy uzasadnić. Z kolei twórcy systemu nie są w są w

stanie ich zrozumieć. Decyzje dotyczące wymagań mogą być więc stanie ich zrozumieć. Decyzje dotyczące wymagań mogą być więc

podejmowane na irracjonalnym gruncie, opartym o czyjeś osobiste podejmowane na irracjonalnym gruncie, opartym o czyjeś osobiste

korzyścikorzyści

Dlaczego określanie wymagań jest takie trudne? Dlaczego określanie wymagań jest takie trudne? Zmienność procesuZmienność procesu

INŻYNIERIAOPROGRAMOWANIA

�� Nie ma żadnych obiektywnych sposobów porównywania Nie ma żadnych obiektywnych sposobów porównywania

alternatywnych zestawów wymagań.alternatywnych zestawów wymagań. Wpływ systemu na biznes jest Wpływ systemu na biznes jest

bardzo trudny do zrozumienia, zatem nie możemy w ogólności bardzo trudny do zrozumienia, zatem nie możemy w ogólności

powiedzieć, który system będzie najlepszy dla konkretnego powiedzieć, który system będzie najlepszy dla konkretnego

przedsiębiorstwa przedsiębiorstwa

�� Wymagany poziom szczegółowości specyfikacjiWymagany poziom szczegółowości specyfikacji różni się znacznie różni się znacznie

w zależności od rodzaju opracowywanego produktu. W celu w zależności od rodzaju opracowywanego produktu. W celu

uzyskania specyfikacji mogą być więc wykorzystywane zupełnie uzyskania specyfikacji mogą być więc wykorzystywane zupełnie

różne procesy obejmujące różne typy różne procesy obejmujące różne typy ludzi ludzi –– pojawiają się pojawiają się

ograniczenia standaryzacji procesuograniczenia standaryzacji procesu

�� dla systemu sygnalizacji kolejowej wymagana jest bardzo dla systemu sygnalizacji kolejowej wymagana jest bardzo

szczegółowa specyfikacja, która będzie zatwierdzana przez szczegółowa specyfikacja, która będzie zatwierdzana przez

odpowiednie urzędy (niezależnie od zleceniodawcy)odpowiednie urzędy (niezależnie od zleceniodawcy)

�� specyfikacja gry komputerowej może być z kolei scenariuszem specyfikacja gry komputerowej może być z kolei scenariuszem

ze zdjęciami i przykładamize zdjęciami i przykładami

Dlaczego określanie wymagań jest takie trudne? Dlaczego określanie wymagań jest takie trudne? Na wesoło o użytkownikach końcowych ;)Na wesoło o użytkownikach końcowych ;)

INŻYNIERIAOPROGRAMOWANIA

W pewnym momencie podczas realizacji projektu ktoś zaczyna biadoW pewnym momencie podczas realizacji projektu ktoś zaczyna biadolić, że trzeba lić, że trzeba

określić „wymagania”. Wiążą się z tym rozmowy z ludźmi, którzy określić „wymagania”. Wiążą się z tym rozmowy z ludźmi, którzy –– to ciekawe to ciekawe ––

nie wiedzą, czego chcą, ale dokładnie wiedza, kiedy tego potrzebnie wiedzą, czego chcą, ale dokładnie wiedza, kiedy tego potrzebują. Tych ludzi ują. Tych ludzi

nazywa się „użytkownikami finalnymi” lub po prostu „kołkami”.nazywa się „użytkownikami finalnymi” lub po prostu „kołkami”.

Badania wykazały, że na świecie nie ma nić głupszego niż „użytkoBadania wykazały, że na świecie nie ma nić głupszego niż „użytkownik finalny”. wnik finalny”.

Diagram poniżej pokazuje inteligencję względną kilku zwykłych skDiagram poniżej pokazuje inteligencję względną kilku zwykłych składników ładników

gospodarstwa domowego:gospodarstwa domowego:Scott Adams - Zasada DilbertaWyd. Amber, W-wa, 2001

Techniki i narzędzia używane w procesie Techniki i narzędzia używane w procesie inżynierii wymagańinżynierii wymagań

INŻYNIERIAOPROGRAMOWANIA

�� Punkty widzeniaPunkty widzenia

�� przyglądamy się systemowi z punktu widzenia przetwarzanych przyglądamy się systemowi z punktu widzenia przetwarzanych

danych lub oferowanych usługdanych lub oferowanych usług

�� ScenariuszeScenariusze

�� opisujemy przebieg interakcji opisujemy przebieg interakcji npnp. między użytkownikiem a . między użytkownikiem a

systememsystemem

Scenariusze i punkty widzenia składają się (w pewnym Scenariusze i punkty widzenia składają się (w pewnym

sensie) w tzw. sensie) w tzw. model przypadków użycia (model przypadków użycia (UseUse CasesCases))

�� Analiza strukturalnaAnaliza strukturalna

�� oparta głównie na formalnych metodach zapisu wymagańoparta głównie na formalnych metodach zapisu wymagań

Określanie wymagań Określanie wymagań oparte na punktach widzenia (VORD)oparte na punktach widzenia (VORD)

INŻYNIERIAOPROGRAMOWANIA

VORD: ang. VORD: ang. ViewpointViewpoint--OrientedOriented RequirementsRequirements DefinitionDefinition

Zwykle systemy maja kilka różnych grup użytkowników. Zwykle systemy maja kilka różnych grup użytkowników.

Należy przyjrzeć się systemowi z ich punktu widzenia.Należy przyjrzeć się systemowi z ich punktu widzenia.

Klasyfikacja punktów widzenia:Klasyfikacja punktów widzenia:

�� Ze względu na źródło lub przeznaczenie danychZe względu na źródło lub przeznaczenie danych

Punkt widzenia powiązany jest z użytkowaniem lub produkcją Punkt widzenia powiązany jest z użytkowaniem lub produkcją

danych. Analiza polega na rozpoznawaniu wszystkich danych, danych. Analiza polega na rozpoznawaniu wszystkich danych,

miejsc ich produkcji, użytkowania i przetwarzania.miejsc ich produkcji, użytkowania i przetwarzania.

�� Ze względu na usługi zewnętrzneZe względu na usługi zewnętrzne

W tym wypadku punkty widzenia są zewnętrzne wobec systemu. W tym wypadku punkty widzenia są zewnętrzne wobec systemu.

Osoby mające ten sam punkt widzenia korzystają z jednakowych Osoby mające ten sam punkt widzenia korzystają z jednakowych

usług systemu.usług systemu.

Model zewnętrznych punktów widzeniaModel zewnętrznych punktów widzenia INŻYNIERIAOPROGRAMOWANIA

�� Reprezentanci zewnętrznych punktów widzenia współpracują z Reprezentanci zewnętrznych punktów widzenia współpracują z

systemem przez systemem przez otrzymywanie usług od systemuotrzymywanie usług od systemu oraz oraz

przekazywanie do systemu danych i sygnałów sterującychprzekazywanie do systemu danych i sygnałów sterujących..

�� Punkty widzenia są Punkty widzenia są zewnętrznezewnętrzne wobec systemu, stanowią zatem wobec systemu, stanowią zatem

naturalny sposób strukturalizacji procesu określania wymagań.naturalny sposób strukturalizacji procesu określania wymagań.

�� Punkty widzenia i usługi stanowią dobry sposób strukturalizacjiPunkty widzenia i usługi stanowią dobry sposób strukturalizacji nie nie

tylko wymagań funkcjonalnych, ale również niefunkcjonalnych i tylko wymagań funkcjonalnych, ale również niefunkcjonalnych i

dziedzinowych. Każda usługa może być powiązana z wymaganiami dziedzinowych. Każda usługa może być powiązana z wymaganiami

niefunkcjonalnymi lub dziedzinowymi.niefunkcjonalnymi lub dziedzinowymi.

�� Dość łatwo jest stwierdzić, Dość łatwo jest stwierdzić, czy coś jest punktem widzenia, czy też czy coś jest punktem widzenia, czy też

nienie. Reprezentanci punktów widzenia muszą bowiem w pewien . Reprezentanci punktów widzenia muszą bowiem w pewien

sposób oddziaływać na system.sposób oddziaływać na system.

Punkty widzenia a atrybuty/cele systemuPunkty widzenia a atrybuty/cele systemu INŻYNIERIAOPROGRAMOWANIA

�� Atrybuty i ogólne cele systemu odnoszą się do wszystkich punktówAtrybuty i ogólne cele systemu odnoszą się do wszystkich punktów

widzenia…widzenia…

�� … i są do nich prostopadłe… i są do nich prostopadłe

Przykład Przykład –– system bankomatowysystem bankomatowy INŻYNIERIAOPROGRAMOWANIA

�� System służy do wykonywania operacji System służy do wykonywania operacji bankomatowychbankomatowych

przy użyciu karty przy użyciu karty bankomatowejbankomatowej z przypisanym kodem z przypisanym kodem

PINPIN

�� W uproszczonej wersji służy klientom macierzystego W uproszczonej wersji służy klientom macierzystego

banku („ własny klient”), oferując im bardziej banku („ własny klient”), oferując im bardziej

skomplikowane usługi, oraz klientom innym banków skomplikowane usługi, oraz klientom innym banków

(„obcy klient”) w ograniczonym zakresie(„obcy klient”) w ograniczonym zakresie

�� Usługi zaawansowane obejmują Usługi zaawansowane obejmują npnp. wypłatę i wpłatę . wypłatę i wpłatę

środków, przekazywanie komunikatów do banku, środków, przekazywanie komunikatów do banku,

wyświetlanie informacji (wyświetlanie informacji (npnp. o saldzie konta lub . o saldzie konta lub

wykonanych transakcjach).wykonanych transakcjach).

System bankomatowy System bankomatowy –– burza mózgówburza mózgów INŻYNIERIAOPROGRAMOWANIA

Pytanieo saldo

Menedżer

Odczyttransakcji

Zasobymaszyny

Interfejsużytkownika

Własny klient

Zdalnadiagnostyka

Kartaskradziona

Niezawodność

Informacjeo koncie

Koszt systemu

Baza danychklientów

Wypłatagotówki

Aktualizacjakonta

Zamówieniewyciągu

Obcy klient

Dziennikkomunikatów

Przelew środków

Zdalnaaktualizacja

oprogramowania

Zamówienieczeków

Zwrot karty

Dzienniktransakcji

Drukarka

Rozmiaroprogramowania

Zatrzymaniekarty

Nieuprawnionyużytkownik

Kasabanku

Weryfikacjakarty

Przekazywaniekomunikatów

ZabezpieczeniaPielęgnacja

oprogramowania

System bankomatowy System bankomatowy –– udziałowcyudziałowcy INŻYNIERIAOPROGRAMOWANIA

�� Klienci bankuKlienci banku

�� Klienci innych bankówKlienci innych banków

�� Dyrektorzy oddziałów bankówDyrektorzy oddziałów banków

�� Pracownicy obsługi klienta w oddziałachPracownicy obsługi klienta w oddziałach

�� Kasa bankuKasa banku

�� Administratorzy baz danychAdministratorzy baz danych

�� Osoby odpowiedzialne za bezpieczeństwo w bankuOsoby odpowiedzialne za bezpieczeństwo w banku

�� Dział marketingu bankuDział marketingu banku

�� Inżynierowie pielęgnacji sprzętu i oprogramowaniaInżynierowie pielęgnacji sprzętu i oprogramowania

System bankomatowy System bankomatowy –– punkty widzeniapunkty widzenia INŻYNIERIAOPROGRAMOWANIA

InżynierMenedżerKasa banku

Obcy klientWłasny klient

Klient Personel banku

Wszystkie PW

System bankomatowy System bankomatowy –– punkty widzenia a usługipunkty widzenia a usługi INŻYNIERIAOPROGRAMOWANIA

WŁASNYKLIENT

OBCYKLIENT

KASABANKU

Lista usług Lista usług Lista usług

Wypłata gotówkiPytanie o saldoWysyłanie komunikatuLista transakcjiZamówienie wyciąguPrzelew środków

Wypłata gotówkiPytanie o saldo

DiagnostykaDodanie gotówkiDodanie papieruWysłanie komunikatu

System bankomatowy System bankomatowy ––dane sterujące i wejściowedane sterujące i wejściowe

INŻYNIERIAOPROGRAMOWANIA

WŁASNYKLIENT 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 System bankomatowy –– opis punktów widzenia opis punktów widzenia i usługi usług

INŻYNIERIAOPROGRAMOWANIA

Nazwa PW: Klient

Atrybuty: Numer kontaPIN

Zdarzenia: Rozpocznij transakcjęWybór usługiAnuluj transakcjęZakończ transakcję

Usługi: Wypłata gotówkiPytanie o saldo

Podrzędne PW: Własny klientObcy klient

Usługa: Wypłata gotówki

Uzasadnienie: Celem zmniejszenie obciążenia okienek kasowych itp.

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ępujewypłata gotówki.

PW: Klient

Wymaganianiefunkcjonalne: Wypłacić gotówkę najpóźniej

po 1 minucie od potwierdzeniakwoty

Scenariusze (ang. Scenariusze (ang. scenariosscenarios)) INŻYNIERIAOPROGRAMOWANIA

Ludzie zwykle wolą przykłady wzięte z życia Ludzie zwykle wolą przykłady wzięte z życia od abstrakcyjnych opisówod abstrakcyjnych opisów

�� ScenariuszScenariusz –– opis typowego przebiegu zadania opis typowego przebiegu zadania

wykonywanego przez użytkownika systemu (interakcji wykonywanego przez użytkownika systemu (interakcji

użytkownik użytkownik –– system)system)

�� Każdy scenariusz obejmuje jedną lub najwyżej kilka Każdy scenariusz obejmuje jedną lub najwyżej kilka

możliwych interakcji możliwych interakcji

�� Na podstawie scenariuszy można wywieść wymagania Na podstawie scenariuszy można wywieść wymagania

systemowesystemowe

Cechy/atrybuty scenariuszaCechy/atrybuty scenariusza INŻYNIERIAOPROGRAMOWANIA

�� Opis stanu systemu na początku scenariuszaOpis stanu systemu na początku scenariusza

�� Opis normalnego następstwa zdarzeń scenariuszaOpis normalnego następstwa zdarzeń scenariusza

�� Opis tego, co może pójść źle, i jak to jest obsługiwaneOpis tego, co może pójść źle, i jak to jest obsługiwane

�� Informacje o innych czynnościach, które można Informacje o innych czynnościach, które można

wykonywać w tym samym czasiewykonywać w tym samym czasie

�� Opis stanu systemu po zakończeniu scenariuszaOpis stanu systemu po zakończeniu scenariusza

�� Każde odrębne zdarzenie w interakcji może być Każde odrębne zdarzenie w interakcji może być

udokumentowane za pomocą oddzielnego scenariusza udokumentowane za pomocą oddzielnego scenariusza

zdarzeniazdarzenia

�� Opis przepływu danych, akcji systemu i wyjątków, które Opis przepływu danych, akcji systemu i wyjątków, które

mogą się pojawićmogą się pojawić

Przykład scenariusza Przykład scenariusza –– system bankomatowysystem bankomatowy INŻYNIERIAOPROGRAMOWANIA

�� Zdarzenie inicjujące:Zdarzenie inicjujące: wsunięto kartę do szczelinywsunięto kartę do szczeliny

�� Stan początkowy:Stan początkowy: karta w bankomaciekarta w bankomacie

�� Opis:Opis: Wyświetl listę dostępnych operacji. Po wybraniu operacji Wyświetl listę dostępnych operacji. Po wybraniu operacji

przez klienta monituj o podanie numeru PIN. Gdy wpisany numer przez klienta monituj o podanie numeru PIN. Gdy wpisany numer

jest poprawny, zidentyfikuj klienta. jest poprawny, zidentyfikuj klienta.

�� Sytuacje wyjątkowe:Sytuacje wyjątkowe:

�� przekroczony limit czasu: zwróć kartęprzekroczony limit czasu: zwróć kartę

�� karta nieważna lub skradziona: zatrzymaj kartękarta nieważna lub skradziona: zatrzymaj kartę

�� niepoprawny numer PIN: zapytaj ponownieniepoprawny numer PIN: zapytaj ponownie

�� niepoprawny numer PIN podany po raz trzeci: zatrzymaj kartęniepoprawny numer PIN podany po raz trzeci: zatrzymaj kartę

�� Stan końcowy:Stan końcowy: użytkownik zidentyfikowany, przejdź do realizacji użytkownik zidentyfikowany, przejdź do realizacji

wybranej przez klienta operacji.wybranej przez klienta operacji.

Model przypadków użycia (Model przypadków użycia (UseUse CasesCases)) INŻYNIERIAOPROGRAMOWANIA

�� Metoda oparta na scenariuszach i zewnętrznych punktach widzenia,Metoda oparta na scenariuszach i zewnętrznych punktach widzenia,

służąca do określania wymagań i interakcji użytkownika z systemesłużąca do określania wymagań i interakcji użytkownika z systememm

�� Po raz pierwszy użyta w 1993 (I. Po raz pierwszy użyta w 1993 (I. JacobsonJacobson). Obecnie jest ). Obecnie jest

podstawowym elementem notacji UMLpodstawowym elementem notacji UML

�� Podstawowe pojęcia: Podstawowe pojęcia: przypadek użyciaprzypadek użycia, , aktoraktor, , relacjerelacje między między

przypadkami użycia bądź aktoramiprzypadkami użycia bądź aktorami

�� System widziany jest jako czarna skrzynka, zapewniająca określonSystem widziany jest jako czarna skrzynka, zapewniająca określoną ą

funkcjonalnośćfunkcjonalność

�� Model wyraźnie rozdziela system i to, co powinien realizować Model wyraźnie rozdziela system i to, co powinien realizować

(przypadki użycia i relacje między nimi), od tego, co jest poza (przypadki użycia i relacje między nimi), od tego, co jest poza nim nim

(aktorzy i relacje między nimi)(aktorzy i relacje między nimi)

�� Metoda polega na ilustracji graficznej (diagram przypadków użyciMetoda polega na ilustracji graficznej (diagram przypadków użycia), a),

wspieranej odpowiednimi scenariuszamiwspieranej odpowiednimi scenariuszami

Elementy notacji graficznej: Elementy notacji graficznej: przypadek użycia, aktorprzypadek użycia, aktor

INŻYNIERIAOPROGRAMOWANIA

�� Aktor:Aktor: abstrakcyjny użytkownik systemu, reprezentujący grupę użytkowniabstrakcyjny użytkownik systemu, reprezentujący grupę użytkowników ków

używających podobnych funkcji systemu i sposobu z nim komunikacjużywających podobnych funkcji systemu i sposobu z nim komunikacjii

symbol graficzny:symbol graficzny:

�� Przypadek użycia:Przypadek użycia: ciąg interakcji pomiędzy aktorem a systemem, dostarczający ciąg interakcji pomiędzy aktorem a systemem, dostarczający

aktorowi pożądanych wynikówaktorowi pożądanych wyników

symbol graficzny:symbol graficzny:

�� Klasyfikacja aktorów:Klasyfikacja aktorów:

�� aktor główny:aktor główny: używa podstawowych funkcji systemuużywa podstawowych funkcji systemu

�� aktor drugorzędny:aktor drugorzędny: używa funkcji administracyjnych i pielęgnacyjnych używa funkcji administracyjnych i pielęgnacyjnych

�� aktor aktywny:aktor aktywny: inicjuje przypadek użyciainicjuje przypadek użycia

�� aktor pasywny:aktor pasywny: uczestniczy w przypadku użycia, ale go nie inicjujeuczestniczy w przypadku użycia, ale go nie inicjuje

Podstawowe relacjePodstawowe relacje INŻYNIERIAOPROGRAMOWANIA

�� Relacja „Relacja „komunikujekomunikuje” („” („communicatescommunicates”, często ”, często

reprezentowana przez zwykłe wiązanie reprezentowana przez zwykłe wiązanie ––

„„associationassociation”)”)

W przypadku W przypadku dwukieunkowymdwukieunkowym (bez strzałki) (bez strzałki)

oznacza inicjowanie przypadku użycia i ew. oznacza inicjowanie przypadku użycia i ew.

odbieranie wyników przez aktora. W przypadku odbieranie wyników przez aktora. W przypadku

relacji jednokierunkowej, aktor jedynie inicjuje relacji jednokierunkowej, aktor jedynie inicjuje

przypadek użycia (aktor aktywny) lub w nim przypadek użycia (aktor aktywny) lub w nim

uczestniczy (aktor pasywny).uczestniczy (aktor pasywny).

�� Relacja „Relacja „zawierazawiera” („” („includeinclude”) ”)

Wskazuje na wspólny fragment kilku Wskazuje na wspólny fragment kilku

przypadków użycia, wykorzystanie wspólnego przypadków użycia, wykorzystanie wspólnego

zachowania. Dawna nazwa: „używa” („zachowania. Dawna nazwa: „używa” („usesuses”).”).

�� Relacja „Relacja „rozszerzarozszerza” („” („extendextend”) ”)

Rozszerza przypadek użycia o sytuację Rozszerza przypadek użycia o sytuację

wyjątkową. Dawna nazwa: „wyjątkową. Dawna nazwa: „extendsextends”.”.

Relacje uogólnienia i inne elementy notacjiRelacje uogólnienia i inne elementy notacji INŻYNIERIAOPROGRAMOWANIA

�� Relacja Relacja uogólnienia aktorauogólnienia aktora („(„actoractor

generalizationgeneralization”)”)

�� Relacja Relacja uogólnienia przypadku użyciauogólnienia przypadku użycia

(„(„useuse casecase generalizationgeneralization”)”)

�� Granice systemu są wyznaczane za pomocą prostokąta. Aktorzy są Granice systemu są wyznaczane za pomocą prostokąta. Aktorzy są

zwykle na zewnątrz systemu, przypadki użycia wewnątrzzwykle na zewnątrz systemu, przypadki użycia wewnątrz

�� Możliwa jest komunikacja aktorów poza systememMożliwa jest komunikacja aktorów poza systemem

�� W szczególności aktorem może być jakiś element systemu (W szczególności aktorem może być jakiś element systemu (npnp. .

wyświetlacz, wyświetlacz, timertimer) lub (rzadziej) jakieś wymaganie ) lub (rzadziej) jakieś wymaganie

niefunkcjonalne/dziedzinowe niefunkcjonalne/dziedzinowe

Przykład kompletnego diagramuPrzykład kompletnego diagramu INŻYNIERIAOPROGRAMOWANIA

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

Przykład scenariuszaPrzykład scenariusza INŻYNIERIAOPROGRAMOWANIA

�� Przypadek użycia:Przypadek użycia: Wypłata gotówkiWypłata gotówki

�� Aktorzy:Aktorzy: Własny klient, Obcy klientWłasny klient, Obcy klient

�� Zdarzenie inicjujące:Zdarzenie inicjujące: wybranie w menu opcji „wypłata” oraz wybranie w menu opcji „wypłata” oraz

podanie kwoty do wypłatypodanie kwoty do wypłaty

�� Stan początkowy:Stan początkowy: karta w bankomaciekarta w bankomacie

�� Opis:Opis: Monituj o podanie numeru PIN. Gdy wpisany numer jest Monituj o podanie numeru PIN. Gdy wpisany numer jest

poprawny, zidentyfikuj klienta i sprawdź dostępne środki na koncpoprawny, zidentyfikuj klienta i sprawdź dostępne środki na koncie. ie.

Jeżeli środki są wystarczające, wypłać gotówkę.Jeżeli środki są wystarczające, wypłać gotówkę.

�� Sytuacje wyjątkowe:Sytuacje wyjątkowe:

�� karta nieważna lub skradziona: zatrzymaj kartękarta nieważna lub skradziona: zatrzymaj kartę

�� niepoprawny numer PIN: zapytaj ponownieniepoprawny numer PIN: zapytaj ponownie

�� niepoprawny numer PIN podany po raz trzeci z kolei: zatrzymaj kniepoprawny numer PIN podany po raz trzeci z kolei: zatrzymaj kartęartę

�� brak środków na koncie: wyświetl komunikat „Brak środków”brak środków na koncie: wyświetl komunikat „Brak środków”

�� Stan końcowy:Stan końcowy: gotówka wypłacona, saldo konta zmniejszonegotówka wypłacona, saldo konta zmniejszone

Model przypadków użycia Model przypadków użycia –– najczęstsze błędynajczęstsze błędy INŻYNIERIAOPROGRAMOWANIA

� 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 Model przypadków użycia –– podsumowaniepodsumowanie INŻYNIERIAOPROGRAMOWANIA

�� Identyfikacja granic systemu i aktorów Identyfikacja granic systemu i aktorów

�� Specyfikacja wymagań funkcjonalnych, Specyfikacja wymagań funkcjonalnych,

postrzeganych przez zewnętrznych aktorówpostrzeganych przez zewnętrznych aktorów

�� Wspomaganie walidacji wymagańWspomaganie walidacji wymagań

�� Punkt wyjścia dla testów systemuPunkt wyjścia dla testów systemu

�� Przydatność dla celów prezentacji funkcjonalności Przydatność dla celów prezentacji funkcjonalności

systemu systemu –– zrozumiałość i komunikatywnośćzrozumiałość i komunikatywność

�� Podstawa do tworzenia diagramów sekwencjiPodstawa do tworzenia diagramów sekwencji

Diagram sekwencji (ang. Diagram sekwencji (ang. sequencesequence diagram)diagram) INŻYNIERIAOPROGRAMOWANIA

Diagram sekwencjiDiagram sekwencji

zostanie szczegółowo zostanie szczegółowo

omówiony na wykładzie omówiony na wykładzie

poświęconym językowi poświęconym językowi

UMLUML

Sprawdzanie i zatwierdzanie wymagańSprawdzanie i zatwierdzanie wymagań INŻYNIERIAOPROGRAMOWANIA

Przed zatwierdzeniem specyfikacji, wymagania należy Przed zatwierdzeniem specyfikacji, wymagania należy sprawdzić sprawdzić –– wykazać, że definiują system,wykazać, że definiują system,

którego chce użytkownikktórego chce użytkownik

�� Sprawdzenie ważności.Sprawdzenie ważności. Czy użytkownicy są przekonani, że system powinien spełniać Czy użytkownicy są przekonani, że system powinien spełniać

wyspecyfikowane funkcje?wyspecyfikowane funkcje?

�� Sprawdzenie zrozumiałości.Sprawdzenie zrozumiałości. Czy klienci i użytkownicy systemu dobrze zrozumieli Czy klienci i użytkownicy systemu dobrze zrozumieli

wymaganie?wymaganie?

�� Sprawdzenie pochodzenia.Sprawdzenie pochodzenia. Czy zaznaczone jest źródło, z którego pochodzi wymaganie?Czy zaznaczone jest źródło, z którego pochodzi wymaganie?

�� Sprawdzenie niesprzeczności.Sprawdzenie niesprzeczności. Czy wymagania nie przeczą sobie nawzajem?Czy wymagania nie przeczą sobie nawzajem?

�� Sprawdzenie kompletności.Sprawdzenie kompletności. Czy zdefiniowano wszystkie funkcje i ograniczenia systemu?Czy zdefiniowano wszystkie funkcje i ograniczenia systemu?

�� Sprawdzenie realności.Sprawdzenie realności. Czy wymagania można zaimplementować przy użyciu dostępnych Czy wymagania można zaimplementować przy użyciu dostępnych

środków?środków?

�� Możliwość weryfikacji.Możliwość weryfikacji. Czy wymagania systemowe są napisane tak, aby można było je Czy wymagania systemowe są napisane tak, aby można było je

zweryfikować?zweryfikować?

�� Sprawdzenie giętkości.Sprawdzenie giętkości. Czy wymaganie może być zmienione bez znaczącego wpływu na Czy wymaganie może być zmienione bez znaczącego wpływu na

pozostałe wymagania?pozostałe wymagania?

Zarządzanie wymaganiamiZarządzanie wymaganiami INŻYNIERIAOPROGRAMOWANIA

�� Oznakowanie wymagańOznakowanie wymagań

Każde wymaganie musi być unikatowo oznakowane tak, aby można 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 było robić do niego odnośniki z innych wymagań i używać tego

wymagania przy ocenianiu pochodzenia.wymagania przy ocenianiu pochodzenia.

�� Strategia śledzenia pochodzeniaStrategia śledzenia pochodzenia

Należy odnotowywać zależności między wymaganiami i projektem Należy odnotowywać zależności między wymaganiami i projektem

systemu używając określonej metody.systemu używając określonej metody.

�� Proces zarządzania zmianamiProces zarządzania zmianami

Zbiór czynności szacowania wpływu zmian na system i ich kosztu.Zbiór czynności szacowania wpływu zmian na system i ich kosztu.

�� Użycie narzędzi CASEUżycie narzędzi CASE

Zarządzanie wymaganiami polega na przetwarzaniu ogromnej liczby Zarządzanie wymaganiami polega na przetwarzaniu ogromnej liczby

informacji o wymaganiach. Narzędzia CASE nie są zbyt informacji o wymaganiach. Narzędzia CASE nie są zbyt

rozbudowane w inżynierii wymagań, ale pomagają rozbudowane w inżynierii wymagań, ale pomagają npnp. w weryfikacji . w weryfikacji

wymagań formalnych czy tworzeniu diagramów UML.wymagań formalnych czy tworzeniu diagramów UML.

Stabilność wymagańStabilność wymagań INŻYNIERIAOPROGRAMOWANIA

�� Wymagania stałeWymagania stałe –– względnie stabilne wymagania, które wynikają z względnie stabilne wymagania, które wynikają z

podstawowej działalności firmy i bezpośrednio odnoszą się do podstawowej działalności firmy i bezpośrednio odnoszą się do

dziedziny systemudziedziny systemu

�� Wymagania zmienneWymagania zmienne –– wymagania, które z dość dużym wymagania, które z dość dużym

prawdopodobieństwem mogą ulec zmianie w trakcie tworzenia prawdopodobieństwem mogą ulec zmianie w trakcie tworzenia

systemu albo po przekazaniu go do użytkowaniasystemu albo po przekazaniu go do użytkowania

�� wymagania zmieniające się:wymagania zmieniające się: zmieniają się na skutek zmian środowiska, w zmieniają się na skutek zmian środowiska, w

którym działa firma.którym działa firma.

�� wymagania pojawiające się:wymagania pojawiające się: pojawiają się w trakcie procesu tworzenia w miarę pojawiają się w trakcie procesu tworzenia w miarę

coraz lepszego rozumienia systemu przez klienta.coraz lepszego rozumienia systemu przez klienta.

�� wymagania wynikowe:wymagania wynikowe: wynikają z wdrożenia systemu komputerowego.wynikają z wdrożenia systemu komputerowego.

�� wymagania zgodności:wymagania zgodności: zzależą od umów lub procesów gospodarczych ależą od umów lub procesów gospodarczych

wewnątrz firmy.wewnątrz firmy.

Wymagania stawiane dużym systemom oprogramowania Wymagania stawiane dużym systemom oprogramowania zawsze się zmieniają zawsze się zmieniają –– trzeba odnotowywać zmianytrzeba odnotowywać zmiany

Zarządzanie zmianami wymagańZarządzanie zmianami wymagań INŻYNIERIAOPROGRAMOWANIA

Zarządzanie zmianami wymagań należy stosować do wszystkich Zarządzanie zmianami wymagań należy stosować do wszystkich

postulowanych zmian wymagańpostulowanych zmian wymagań

Trzy podstawowe kroki:Trzy podstawowe kroki:

�� Analiza problemu i specyfikacja zmiany.Analiza problemu i specyfikacja zmiany. Rozpoznanie problemu z Rozpoznanie problemu z

wymaganiem, konkretna propozycja zmianywymaganiem, konkretna propozycja zmiany

�� Analiza zmiany i ocena kosztów.Analiza zmiany i ocena kosztów. Korzystając z informacji o Korzystając z informacji o

uzależnieniu wymagania od innych i ogólnej wiedzy o wymaganiach uzależnieniu wymagania od innych i ogólnej wiedzy o wymaganiach

systemowych, ocenia się wpływ proponowanej zmiany na cały systemowych, ocenia się wpływ proponowanej zmiany na cały

system i szacuje koszt zmianysystem i szacuje koszt zmiany

�� Implementacja zmiany.Implementacja zmiany. W przypadku podjęcia decyzji o W przypadku podjęcia decyzji o

wprowadzeniu zmiany, modyfikuje się dokumentację wymagań oraz wprowadzeniu zmiany, modyfikuje się dokumentację wymagań oraz

projekt a następnie implementuje się zmianęprojekt a następnie implementuje się zmianę

LiteraturaLiteratura INŻYNIERIAOPROGRAMOWANIA

�� B.W. B.W. Boehm, Boehm, P.N. P.N. PapaccioPapaccio,, Understanding and Understanding and CControlingontroling Software Software

CostCost. . IEEE Press, 1988IEEE Press, 1988

� A. Cockburn, Writing Effective Use Cases. In preparation for Addison-

Wesley Longman, 2000http://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