24
1 Analiza/Inżynieria wymagań Analiza/Inżynieria wymagań Znaczenie inżynierii wymagań Znaczenie inżynierii wymagań „In nearly every software project which fails to „In nearly every software project which fails to meet performance and cost goals, requirements meet performance and cost goals, requirements inadequacies play a major and expensive role in inadequacies play a major and expensive role in project failure”, Alford and Lawson project failure”, Alford and Lawson Development of requirements specification „in Development of requirements specification „in many cases seems trivial, but it is probably the many cases seems trivial, but it is probably the part of the process which leads to more failures part of the process which leads to more failures than any other”, Schwartz than any other”, Schwartz Definicja Definicja Requirements Engineering (RE) is a set of activities concerned with identifying and communicating the purpose of a software-intensive system, and the contexts in which it will be used. Hence, RE acts as the bridge between the real world needs of users, customers, and other constituencies affected by a software system, and the capabilities and opportunities afforded by software intensive technologies. Definicja inżynierii Definicja inżynierii Engineering is the development of cost- effective solutions to practical problems, through the application of scientific knowledge Co to są wymagania Co to są wymagania Podstawowe zasady Podstawowe zasady Warto rozróżniać sformulowanie problemu od jego Warto rozróżniać sformulowanie problemu od jego rozwiązania rozwiązania Pelna separacja nie jest możliwa Pelna separacja nie jest możliwa – rozwiązanie rozwiązanie zmienia oryginalny problem zmienia oryginalny problem Źródla trudności Źródla trudności Klient z reguly nie wie dokladanie w jaki sposób Klient z reguly nie wie dokladanie w jaki sposób osiągnąć zalożone cele. Cele te można osiągnąć na osiągnąć zalożone cele. Cele te można osiągnąć na wiele sposobów. wiele sposobów. Duże systemy są wykorzystywane przez wielu Duże systemy są wykorzystywane przez wielu użytkowników. Ich cele są często sprzeczne. Różni użytkowników. Ich cele są często sprzeczne. Różni użytkownicy mogą poslugiwać się inną terminologia użytkownicy mogą poslugiwać się inną terminologia mówiąc o tych samych problemach. mówiąc o tych samych problemach. Zleceniodawcy i użytkownicy to często inne osoby. Zleceniodawcy i użytkownicy to często inne osoby.

Analiza/In ynieria wymaga ń - fc.put.poznan.plfc.put.poznan.pl/materials/104-wymagania.pdf · Wykorzystanie hierarchii wymagań ... Z reguły obejmuje wiele funkcji Analiza scenariuszy

  • Upload
    vandiep

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

1

Analiza/Inżynieria wymagańAnaliza/Inżynieria wymagań

Znaczenie inżynierii wymagańZnaczenie inżynierii wymagań

�� „In nearly every software project which fails to „In nearly every software project which fails to meet performance and cost goals, requirements meet performance and cost goals, requirements inadequacies play a major and expensive role in inadequacies play a major and expensive role in project failure”, Alford and Lawsonproject failure”, Alford and Lawson

�� Development of requirements specification „in Development of requirements specification „in many cases seems trivial, but it is probably the many cases seems trivial, but it is probably the part of the process which leads to more failures part of the process which leads to more failures than any other”, Schwartz than any other”, Schwartz

DefinicjaDefinicja

� Requirements Engineering (RE) is a set of activities concerned with identifying and communicating thepurpose of a software-intensive system, and the contexts in which it will be used. Hence, RE acts as thebridge between the real world needs of users, customers, and other constituencies affected by a software system, and the capabilities and opportunities afforded by software intensive technologies.

Definicja inżynieriiDefinicja inżynierii

� Engineering is the development of cost-effective solutions to practical problems, through the application of scientific knowledge

Co to są wymaganiaCo to są wymagania

�� Podstawowe zasadyPodstawowe zasady�� Warto rozróżniać sformułowanie problemu od jego Warto rozróżniać sformułowanie problemu od jego rozwiązaniarozwiązania

�� Pełna separacja nie jest możliwa Pełna separacja nie jest możliwa –– rozwiązanie rozwiązanie zmienia oryginalny problemzmienia oryginalny problem

Źródła trudnościŹródła trudności

�� Klient z reguły nie wie dokładanie w jaki sposób Klient z reguły nie wie dokładanie w jaki sposób osiągnąć założone cele. Cele te można osiągnąć na osiągnąć założone cele. Cele te można osiągnąć na wiele sposobów.wiele sposobów.

�� Duże systemy są wykorzystywane przez wielu Duże systemy są wykorzystywane przez wielu użytkowników. Ich cele są często sprzeczne. Różni użytkowników. Ich cele są często sprzeczne. Różni użytkownicy mogą posługiwać się inną terminologia użytkownicy mogą posługiwać się inną terminologia mówiąc o tych samych problemach.mówiąc o tych samych problemach.

�� Zleceniodawcy i użytkownicy to często inne osoby. Zleceniodawcy i użytkownicy to często inne osoby.

2

Problemy w zbieraniu wymagańProblemy w zbieraniu wymagań

�� Rozproszenie wiedzy dziedzinowejRozproszenie wiedzy dziedzinowej�� Nikt nie wie wszystkiego (co jest nam potrzebne)Nikt nie wie wszystkiego (co jest nam potrzebne)

�� Niejawna wiedzaNiejawna wiedza�� Wiem, ale nie umiem wytłumaczyćWiem, ale nie umiem wytłumaczyć

�� Trudne obserwacjeTrudne obserwacje�� CzasCzas�� Obserwator zmienia zachowanieObserwator zmienia zachowanie

�� Ukierunkowanie (bias)Ukierunkowanie (bias)�� Nie mogę powiedziećNie mogę powiedzieć�� Nie chcę powiedziećNie chcę powiedzieć

Cele przedsięwzięciaCele przedsięwzięcia

�� Klienta, np.Klienta, np.�� Wzrost efektywności, spadek kosztów, rozszerzenie rynku, Wzrost efektywności, spadek kosztów, rozszerzenie rynku, unikanie błędówunikanie błędów

�� Użytkownicy, nabywcy, różni partnerzy biznesowi mogą mieć Użytkownicy, nabywcy, różni partnerzy biznesowi mogą mieć różne celeróżne cele

�� WykonawcyWykonawcy�� BiznesoweBiznesowe

�� TechniczneTechniczne

Priorytety !Priorytety !

Rozwiązywany problemRozwiązywany problem

�� Cele warto też formułować w kategoriach Cele warto też formułować w kategoriach rozwiązywania pewnych problemówrozwiązywania pewnych problemów�� Koszty są zbyt wysokieKoszty są zbyt wysokie

�� Jest zbyt wiele błędówJest zbyt wiele błędów

�� Nie można tego zrobić w sposób tradycyjnyNie można tego zrobić w sposób tradycyjny

Kontekst systemuKontekst systemu

�� Użytkownicy Użytkownicy –– rolerole

�� Istniejące oprogramowanieIstniejące oprogramowanie

�� Specyficzny sprzętSpecyficzny sprzęt

PlannerPlanner tras komunikacją miejskątras komunikacją miejską

�� UżytkownicyUżytkownicy�� Cele: szybko i wygodnie sprawdzić jak gdzieś Cele: szybko i wygodnie sprawdzić jak gdzieś dojechać, czy można/warto dojechać, o której wyjśćdojechać, czy można/warto dojechać, o której wyjść

�� Problemy: brak znajomości rozkładów, trudne Problemy: brak znajomości rozkładów, trudne planowanie trasy na podstawie rozkładówplanowanie trasy na podstawie rozkładów

�� PrzewoźnicyPrzewoźnicy�� Cel: pozyskać użytkownikówCel: pozyskać użytkowników

�� Problem: użytkownicy nie wiedzą czy i jak skorzystać Problem: użytkownicy nie wiedzą czy i jak skorzystać z komunikacji miejskiejz komunikacji miejskiej

PlannerPlanner tras komunikacją miejskątras komunikacją miejską

�� KontekstKontekst�� Systemy przewoźnikówSystemy przewoźników

�� Urządzeni z usługą lokalizacjiUrządzeni z usługą lokalizacji

3

Internetowy system planowania Internetowy system planowania wyjazdów (wycieczek) wyjazdów (wycieczek)

turystycznychturystycznych�� UżytkownicyUżytkownicy

�� Indywidualni turyściIndywidualni turyści

�� Biura podróżyBiura podróży

�� Konsultanci Konsultanci –– np. pracownicy biura informacji turystycznejnp. pracownicy biura informacji turystycznej�� Problem: planowanie wycieczki jest żmudne, a efekty często Problem: planowanie wycieczki jest żmudne, a efekty często niezadowalająceniezadowalające

�� Cele: wygodne, szybkie planowanie udanych wyjazdów turystycznychCele: wygodne, szybkie planowanie udanych wyjazdów turystycznych

�� EdytorzyEdytorzy

�� AdministratorzyAdministratorzy

Internetowy system planowania Internetowy system planowania wyjazdów turystycznychwyjazdów turystycznych

�� KlienciKlienci�� Nabywcy Nabywcy –– operatorzy instancji systemuoperatorzy instancji systemu

�� Cele: osiągnięcie zysku, zdobycie dużej liczby Cele: osiągnięcie zysku, zdobycie dużej liczby użytkowników i partnerów biznesowychużytkowników i partnerów biznesowych

�� Partnerzy biznesowi nabywców Partnerzy biznesowi nabywców –– pośredni pośredni użytkownicy użytkownicy –– właściciele atrakcji turystycznych, właściciele atrakcji turystycznych, hotele, przewoźnicy, operatorzy systemów hotele, przewoźnicy, operatorzy systemów rezerwacji, biura podróży, biura promocji turystykirezerwacji, biura podróży, biura promocji turystyki�� Cel: uzyskanie klientów dla swoich usługCel: uzyskanie klientów dla swoich usług

Internetowy system planowania Internetowy system planowania wyjazdów turystycznychwyjazdów turystycznych

�� Kontekst (poza użytkownikami)Kontekst (poza użytkownikami)�� Istniejący system optymalizacji wycieczekIstniejący system optymalizacji wycieczek

�� Istniejące systemy rezerwacji hoteli i biletówIstniejące systemy rezerwacji hoteli i biletów

�� Istniejące systemy promocji turystykiIstniejące systemy promocji turystyki

Elektroniczny rynek usług Elektroniczny rynek usług transportowychtransportowych

�� UżytkownicyUżytkownicy�� Zleceniodawcy przewozów (to mogą być te same firmy)Zleceniodawcy przewozów (to mogą być te same firmy)

�� Problemy: wysokie koszty realizacji jednorazowych, zwłaszcza Problemy: wysokie koszty realizacji jednorazowych, zwłaszcza niewielkich zleceń, trudność znalezienia przewoźnikaniewielkich zleceń, trudność znalezienia przewoźnika

�� Cele: obniżenie kosztów, zapewnienie wysokiej jakości realizacji Cele: obniżenie kosztów, zapewnienie wysokiej jakości realizacji zleceńzleceń

�� Firmy przewozoweFirmy przewozowe�� Problemy: nieprzewidywalność zleceń Problemy: nieprzewidywalność zleceń -- nadmiar lub brak zleceńnadmiar lub brak zleceń

�� Cele: zdobycie opłacalnych zleceń zapewniających dobre Cele: zdobycie opłacalnych zleceń zapewniających dobre wykorzystanie zasobówwykorzystanie zasobów

�� AdministratorzyAdministratorzy

Elektroniczny rynek usług Elektroniczny rynek usług transportowychtransportowych

�� Klienci Klienci –– operatorzy systemu (wirtualna firma operatorzy systemu (wirtualna firma transportowa)transportowa)�� Cele: osiągnięcie zysku Cele: osiągnięcie zysku –– zdobycie wielu klientówzdobycie wielu klientów

�� Kontekst istniejące systemy informatyczne Kontekst istniejące systemy informatyczne przewoźników i zleceniodawcówprzewoźników i zleceniodawców

Analiza SWOTAnaliza SWOT

�� Siły i słabości wewnątrz organizacji:Siły i słabości wewnątrz organizacji:�� StrengthsStrengths –– silne stronysilne strony

�� WeaknessesWeaknesses –– słabe stronysłabe strony

�� Czynniki zewnętrzneCzynniki zewnętrzne�� OpportunitiesOpportunities –– szanseszanse

�� ThreatsThreats –– zagrożenia zagrożenia –– zewnętrzne ryzykazewnętrzne ryzyka

4

SWOT SWOT -- Elektroniczny rynek Elektroniczny rynek usług transportowychusług transportowych

Strengths•Dobra znajomość i kontakty na rynku przewoźników•Sprawność w zakresie wytwarzania oprogramowania

Weaknesses•Słaba znajomość rynku zleceniodawców•Brak doświadczenia na rynku pośrednictwa w zakresie przewozów

Opportunities•Rosnąca konkurencja na rynku przewozów•Duże rozdrobnienie rynku przewoźników•Postępująca informatyzacja zleceniodawców i przewoźników

Threats•Konkurencyjne systemy ogłoszeniowe•Niezbędny efekt skali•Potrzebna integracja z dużą liczbą różnych systemów informatycznych

Określanie wymagańOkreślanie wymagań

��Współpraca klienta i wykonawcy !Współpraca klienta i wykonawcy !

�� Źródła:Źródła:��Wywiady z przedstawicielami klientaWywiady z przedstawicielami klienta

��Analiza materiałów dostarczonych przez Analiza materiałów dostarczonych przez klienta, przepisów prawnychklienta, przepisów prawnych

�� Porównanie z innymi systemamiPorównanie z innymi systemami

Techniki zbierania wymagańTechniki zbierania wymagań

�� TradycyjneTradycyjne�� IntrospekcjaIntrospekcja�� Analiza istniejących dokumentówAnaliza istniejących dokumentów�� Analiza danychAnaliza danych�� WywiadyWywiady

�� OtwarteOtwarte�� UstruktaralizowaneUstruktaralizowane

�� AnkietyAnkiety�� SpotkaniaSpotkania

�� ZespołoweZespołowe�� Techniki grupowe (np. burze Techniki grupowe (np. burze mózgów)mózgów)

�� JAD/RADJAD/RAD�� PrototypowaniePrototypowanie�� Participatory designParticipatory design

�� KognitywneKognitywne�� Analiza zadańAnaliza zadań�� Techniki zbierania wiedzyTechniki zbierania wiedzy

�� KontekstoweKontekstowe�� Techniki etnograficzneTechniki etnograficzne�� Analiza dyskusjiAnaliza dyskusji�� SocjotechniczneSocjotechniczne

�� Soft systems analysisSoft systems analysis

WywiadyWywiady

�� ZaletyZalety�� Duża ilość informacjiDuża ilość informacji�� Możliwość głębokiej analizy Możliwość głębokiej analizy –– kontynuacja ciekawych wątkówkontynuacja ciekawych wątków

�� WadyWady�� Dużo nieuporządkowanych informacji jakościowychDużo nieuporządkowanych informacji jakościowych�� Trudne porównywanie odpowiedzi różnych osóbTrudne porównywanie odpowiedzi różnych osób�� Wymaga umiejętności i doświadczeniaWymaga umiejętności i doświadczenia

�� Uważaj na:Uważaj na:�� Wiedzę niejawnąWiedzę niejawną�� Brak kontekstuBrak kontekstu�� Nastawienie rozmówcyNastawienie rozmówcy

Wskazówki dotyczące wywiadówWskazówki dotyczące wywiadów

�� PoczątekPoczątek�� Zacznij od ogólnych uwag rozluźniających atmosferęZacznij od ogólnych uwag rozluźniających atmosferę

�� Pogoda, fotografia na biurkuPogoda, fotografia na biurku

�� Zapytaj czy możesz nagrywać rozmowęZapytaj czy możesz nagrywać rozmowę�� Umieść urządzenie w widocznym miejscuUmieść urządzenie w widocznym miejscu�� Powiedz, że rozmówca może zawsze wyłączyć nagrywaniePowiedz, że rozmówca może zawsze wyłączyć nagrywanie

�� Zacznij od łatwych pytańZacznij od łatwych pytań�� Kontynuuj interesujące wątkiKontynuuj interesujące wątki�� Zostaw otwarte pytania na koniecZostaw otwarte pytania na koniec

�� „Czy chciałby Pan coś jeszcze dodać?”„Czy chciałby Pan coś jeszcze dodać?”

AnkietyAnkiety

�� ZaletyZalety�� Szybkie źródło dużych ilości informacjiSzybkie źródło dużych ilości informacji�� Mogą być zbierane zdalnieMogą być zbierane zdalnie�� Dostarczają informacji o nastawieniu, przekonaniach, charakterystykachDostarczają informacji o nastawieniu, przekonaniach, charakterystykach

�� WadyWady�� Ograniczone, uproszczoneOgraniczone, uproszczone

�� Uważaj naUważaj na�� Dobór próby ankietowanychDobór próby ankietowanych�� Małe próbyMałe próby�� Otwarte pytania Otwarte pytania –– trudne do analizytrudne do analizy�� Pytania sugerujące odpowiedźPytania sugerujące odpowiedź

Ankietę należy prototypować i testowaćAnkietę należy prototypować i testować

5

Techniki grupoweTechniki grupowe

�� ZaletyZalety�� Bardziej naturalne niż formalne wywiadyBardziej naturalne niż formalne wywiady�� Wykorzystanie dodatkowych pomocy (tablica…)Wykorzystanie dodatkowych pomocy (tablica…)

�� WadyWady�� Sztuczne grupySztuczne grupy�� Myślenie grupoweMyślenie grupowe�� Wymaga dobrego moderatoraWymaga dobrego moderatora

�� Uważaj naUważaj na�� Zły dobór grupyZły dobór grupy�� Zależności (służbowe) pomiędzy uczestnikamiZależności (służbowe) pomiędzy uczestnikami

Rodzaje wymagańRodzaje wymagań

��Wymagania funkcjonalne Wymagania funkcjonalne –– funkcje funkcje wspomagane przez oprogramowania wspomagane przez oprogramowania --przypadki użycia (przypadki użycia (use casesuse cases))

��Wymagania niefunkcjonalne Wymagania niefunkcjonalne ––ograniczeniaograniczenia

Diagramy przypadków użycia Diagramy przypadków użycia –– use use case diagramscase diagrams

�� Użytkownik, klasa użytkowników, system Użytkownik, klasa użytkowników, system zewnętrzny (zewnętrzny (ang. actorang. actor))�� Grupa użytkowników wykorzystujących Grupa użytkowników wykorzystujących system w podobny sposóbsystem w podobny sposób

�� Przypadek użycia, wymaganie Przypadek użycia, wymaganie funkcjonalne, funckja (funkcjonalne, funckja (ang. use caseang. use case))

Diagramy przypadków użycia Diagramy przypadków użycia –– use use case diagramscase diagrams

�� Korzystanie z funkcji (Korzystanie z funkcji (ang. actor flowang. actor flow))

Związki używania (Związki używania (useuse) i ) i rozszerzania (rozszerzania (extendextend))

Przewoznik

Edycja pojazdówDodawanie pojazdu

Usuwanie pojazdow

Edycja pojazdu

Dodawanie

kategorii pojazdow

«use»

«use»

«use»

«extend»

Uzywane sporadycznie, podczasdodawania pojazdu, jezeli

nie ma jeszcze danej kategorii

Przykład i związek generalizacji (Przykład i związek generalizacji (generalizationgeneralization))

Uzytkownik

PrzewoznikZleceniodawca

Zarzadzanie

ladunkami

Zarzadzanie

pojazdami

Wydawanie opinii

Administrator

OptymalizacjaZarzadzanie

uzytkownikami

6

Hierarchia wymagań Hierarchia wymagań funkcjonalnychfunkcjonalnych

�� Przykład:Przykład:�� Ewidencja klientówEwidencja klientów

��Dodawanie klientaDodawanie klienta

�� Edycja danych klientaEdycja danych klienta

�� Usuwanie klientaUsuwanie klienta

��Wyszukiwanie klientówWyszukiwanie klientów�� Wyszukiwanie prosteWyszukiwanie proste

�� Wyszukiwanie złożoneWyszukiwanie złożone

Sposoby poszukiwania wymagań Sposoby poszukiwania wymagań funkcjonalnychfunkcjonalnych

�� Wykorzystanie hierarchii wymagańWykorzystanie hierarchii wymagań�� Z góry na dółZ góry na dół�� Z dołu do góryZ dołu do góry�� Podejście mieszanePodejście mieszane

�� Wykorzystanie informacji o rolach Wykorzystanie informacji o rolach użytkownikówużytkowników

�� Śledzenie procesów biznesowychŚledzenie procesów biznesowych�� Analiza scenariuszyAnaliza scenariuszy

Z góry na dółZ góry na dół Z dołu do góryZ dołu do góry

Metoda mieszanaMetoda mieszanaWykorzystanie informacji o Wykorzystanie informacji o

rolach użytkownikówrolach użytkowników

Kierownik

Kasjer

Ksiegowy

Magazynier

f1

f2

f3

f4

f5f6

f7 f8

f9

7

CechyCechy

�� ZaletyZalety�� System może być stosunkowo prosty z punktu System może być stosunkowo prosty z punktu widzenia większości użytkownikówwidzenia większości użytkowników

�� WadyWady�� Punkty widzenia użytkowników mogą być niespójnePunkty widzenia użytkowników mogą być niespójne

�� Potrzeba integracjiPotrzeba integracji

Śledzenie procesów biznesowychŚledzenie procesów biznesowych

�� Proces zbiór czynności wykonywanych przez różne Proces zbiór czynności wykonywanych przez różne osoby i działy organizacji scharakteryzowany przez:osoby i działy organizacji scharakteryzowany przez:�� WejścieWejście

�� Wyjście (wynik)Wyjście (wynik)

�� CeleCele

�� ZadaniaZadania

�� Proces biznesowy Proces biznesowy –– proces, którego wynik ma wartość proces, którego wynik ma wartość biznesowąbiznesową

Śledzenie procesów biznesowychŚledzenie procesów biznesowych

U1

f1

f2

f3

U2

f4

f5

U3

f6

f7

f8

Proces obsługi klienta półProces obsługi klienta pół--hurtowegohurtowego

�� 1. Dział sprzedaży 1. Dział sprzedaży –– wybór produktów, wybór produktów, sformułowanie zamówienia połączone z sformułowanie zamówienia połączone z weryfikacją dostępności produktówweryfikacją dostępności produktów

�� 2. Magazyn 2. Magazyn –– ponowna weryfikacja, ponowna weryfikacja, skompletowanie zamówieniaskompletowanie zamówienia

�� 3. Księgowość 3. Księgowość –– wystawienie faktury, rozliczenie wystawienie faktury, rozliczenie finansowefinansowe

�� 4. Magazyn 4. Magazyn –– wydanie towarówwydanie towarów

Business Business processprocess modelingmodelingnotationnotation -- BPMNBPMN

�� Standard OMGStandard OMG

�� De facto standard przemysłowyDe facto standard przemysłowy

© 1997-2007 Andrzej Jaszkiewicz. Wyłącznie dla

użytku studentów

Politechniki Poznańskiej, kierunek Informatyka

BPMN przykładBPMN przykład

© 1997-2007 Andrzej Jaszkiewicz. Wyłącznie dla

użytku studentów

Politechniki Poznańskiej, kierunek Informatyka

8

Analiza scenariuszyAnaliza scenariuszy

�� Scenariusz Scenariusz –– słowny opis przykładowego słowny opis przykładowego sposobu (scenariusza) korzystania z systemusposobu (scenariusza) korzystania z systemu�� Z reguły obejmuje wiele funkcjiZ reguły obejmuje wiele funkcji

Analiza scenariuszy Analiza scenariuszy -- przykładprzykład

�� Użytkownik podaje podstawowe informacje o Użytkownik podaje podstawowe informacje o planowanym wyjeździe. Chce odwiedzić planowanym wyjeździe. Chce odwiedzić Polskę, spędzić tam tydzień, wjedzie i Polskę, spędzić tam tydzień, wjedzie i wyjedzie od strony Czech. Interesują go wyjedzie od strony Czech. Interesują go ciekawe miasta, wykopaliska archeologiczne i ciekawe miasta, wykopaliska archeologiczne i wydarzenia muzyczne (muzyka klasyczna). wydarzenia muzyczne (muzyka klasyczna). Określa ograniczenia finansowe.Określa ograniczenia finansowe.

�� System generuje proponowany plan podróży System generuje proponowany plan podróży biorąc pod uwagę podane preferencje i biorąc pod uwagę podane preferencje i ograniczenia.ograniczenia.

Analiza scenariuszy Analiza scenariuszy –– przykład c. d.przykład c. d.

�� Użytkownik może szczegółowo przeglądać Użytkownik może szczegółowo przeglądać proponowaną trasę korzystając m. in. z proponowaną trasę korzystając m. in. z prezentacji multimedialnychprezentacji multimedialnych

�� System proponuje użytkownikowi potencjalne System proponuje użytkownikowi potencjalne modyfikacje trasy, biorąc pod uwagę położenie modyfikacje trasy, biorąc pod uwagę położenie geograficzne poszczególnych atrakcji oraz geograficzne poszczególnych atrakcji oraz wybory innych użytkowników o podobnych wybory innych użytkowników o podobnych preferencjachpreferencjach

Analiza scenariuszy Analiza scenariuszy –– przykład c. d.przykład c. d.

�� Użytkownik modyfikuje trasę dodając do niej Użytkownik modyfikuje trasę dodając do niej wizytę w Biskupinie i rezygnując z wizyty w wizytę w Biskupinie i rezygnując z wizyty w GnieźnieGnieźnie

�� Użytkownik akceptuje trasę i otrzymuje jej Użytkownik akceptuje trasę i otrzymuje jej szczegółowy opis (wydruk, plik)szczegółowy opis (wydruk, plik)

�� Użytkownik wybiera funkcję rezerwacji Użytkownik wybiera funkcję rezerwacji hoteli. Po dokonaniu niewielkiej opłaty hoteli. Po dokonaniu niewielkiej opłaty system współpracując z zewnętrznym system współpracując z zewnętrznym systemem rezerwacji hotelowej dokonuje systemem rezerwacji hotelowej dokonuje odpowiednich rezerwacjiodpowiednich rezerwacji

Funkcje wynikające ze Funkcje wynikające ze scenariuszascenariusza

�� Definiowanie ograniczeń i preferencjiDefiniowanie ograniczeń i preferencji�� Generowanie planu podróżyGenerowanie planu podróży�� Przeglądanie trasyPrzeglądanie trasy

�� Wizualizacja geograficznaWizualizacja geograficzna�� Prezentacja harmonogramu trasyPrezentacja harmonogramu trasy�� Multimedialne prezentacje atrakcjiMultimedialne prezentacje atrakcji

�� Generowanie i prezentacja proponowanych Generowanie i prezentacja proponowanych zmianzmian

Funkcje wynikające ze Funkcje wynikające ze scenariuszascenariusza

�� Modyfikowanie trasyModyfikowanie trasy

�� Akceptowanie trasyAkceptowanie trasy

�� Przygotowanie szczegółowego opisu trasyPrzygotowanie szczegółowego opisu trasy

�� Rezerwacja hoteliRezerwacja hoteli�� Pobieranie opłatyPobieranie opłaty

�� Rezerwacja hoteluRezerwacja hotelu

9

Analiza scenariuszyAnaliza scenariuszy

UżytkownikUżytkownik wchodziwchodzi nana nasząnaszą stronęstronę ii ponieważponieważ korzystałkorzystał zz niejniejjużjuż wcześniejwcześniej wybierawybiera odod razurazu opcjęopcję wyszukiwaniawyszukiwania.. NajpierwNajpierwokreślaokreśla kraj,kraj, któryktóry gogo interesujeinteresuje –– Szwajcaria,Szwajcaria, aa następnienastępnie miastomiasto–– ZurichZurich.. UżytkownikUżytkownik wybierawybiera rodzajrodzaj ofertyoferty turystycznejturystycznej –– nartynarty..PonieważPonieważ uprawianieuprawianie narciarstwanarciarstwa ww samymsamym ZurichuZurichu nienie jestjestmożliwemożliwe otrzymujeotrzymuje listęlistę kilkukilku pobliskichpobliskich stacjistacji narciarskichnarciarskich..UżytkownikUżytkownik zapoznajezapoznaje sięsię zz informacjamiinformacjami oo kilkukilku stacjachstacjachnarciarskichnarciarskich –– trasy,trasy, wyciągi,wyciągi, ceny,ceny, możliwośćmożliwość wypożyczeniawypożyczeniasprzętusprzętu orazoraz aktualneaktualne warunkiwarunki śniegoweśniegowe.. UżytkownikUżytkownik sprawdzasprawdzamożliwośćmożliwość dojazdudojazdu zz ZurichuZurichu dodo stacjistacji narciarskiejnarciarskiej FlumsbergFlumsberg..SprawdzaSprawdza teżteż możliwościmożliwości zakwaterowaniazakwaterowania ww (pobliżu)(pobliżu)FlumsberguFlumsbergu.. OstatecznieOstatecznie dokonujedokonuje rezerwacjirezerwacji biletubiletu rail&skirail&ski iipokojupokoju ww pensjonaciepensjonacie wewe FlumsberguFlumsbergu..

Funkcje wynikające ze Funkcje wynikające ze scenariuszascenariusza

�� Wybór obszaru zainteresowaniaWybór obszaru zainteresowania�� Wybór krajuWybór kraju�� Wybór miastaWybór miasta

�� Wybór rodzaju oferty turystycznejWybór rodzaju oferty turystycznej�� Przeglądanie ofert stacji narciarskichPrzeglądanie ofert stacji narciarskich�� Wyszukiwanie możliwości dojazduWyszukiwanie możliwości dojazdu�� Wyszukiwanie możliwości zakwaterowaniaWyszukiwanie możliwości zakwaterowania�� RezerwacjaRezerwacja

�� Rezerwacja biletówRezerwacja biletów�� Rezerwacja miejsc noclegowychRezerwacja miejsc noclegowych

Analiza scenariuszyAnaliza scenariuszy

�� Do magazynu zgłasza się klient, który złożył Do magazynu zgłasza się klient, który złożył zamówienie w dziale sprzedaży. Klient podaje numer zamówienie w dziale sprzedaży. Klient podaje numer zamówienia, lub inną informację identyfikującą klienta. zamówienia, lub inną informację identyfikującą klienta. Magazynier odszukuje zamówienie w systemie i Magazynier odszukuje zamówienie w systemie i weryfikuje czy zamówiony towar został już weryfikuje czy zamówiony towar został już zablokowany dla potrzeb klienta. Jeżeli tak, to zablokowany dla potrzeb klienta. Jeżeli tak, to potwierdza przyjęcie zamówienia do realizacji i prosi potwierdza przyjęcie zamówienia do realizacji i prosi klienta o przejście do księgowości. Magazynier klienta o przejście do księgowości. Magazynier otrzymuje listę towarów do wydania wraz z ich otrzymuje listę towarów do wydania wraz z ich lokalizacjami. Po skompletowaniu zamówienia lokalizacjami. Po skompletowaniu zamówienia potwierdza ten fakt w systemie. Po wydaniu towaru potwierdza ten fakt w systemie. Po wydaniu towaru klientowi potwierdza ten fakt w systemie.klientowi potwierdza ten fakt w systemie.

Funkcje wynikające ze Funkcje wynikające ze scenariuszascenariusza

�� Realizacja zamówieniaRealizacja zamówienia�� Identyfikacja zamówieniaIdentyfikacja zamówienia

�� Weryfikacja zablokowania towaru Weryfikacja zablokowania towaru

�� Potwierdzenie przyjęcia zamówienia do realizacjiPotwierdzenie przyjęcia zamówienia do realizacji

�� Potwierdzenie skompletowania zamówieniaPotwierdzenie skompletowania zamówienia

�� Potwierdzenie wydania towaruPotwierdzenie wydania towaru

CechyCechy

�� ZaletyZalety�� Naturalne dla użytkownikówNaturalne dla użytkowników

�� Przydatne w wyjaśnianiu znaczenia systemu/funkcjiPrzydatne w wyjaśnianiu znaczenia systemu/funkcji

�� Podstawa testów akceptacyjnych i dokumentacji Podstawa testów akceptacyjnych i dokumentacji użytkowejużytkowej

�� WadyWady�� NiepełneNiepełne

�� NiespójneNiespójne

Specyfikacja wymagańSpecyfikacja wymagań

�� Język naturalny Język naturalny –– 79% 79%

�� Metody formalne Metody formalne –– 5%5%

�� Formularze Formularze –– 16%16%

10

Elementy specyfikacji wymagańElementy specyfikacji wymagań�� NazwaNazwa�� OpisOpis�� Dane wejściowe i ich źródłaDane wejściowe i ich źródła�� WynikWynik�� Warunki początkowe i końcoweWarunki początkowe i końcowe�� Efekty uboczneEfekty uboczne�� WyjątkiWyjątki�� PriorytetPriorytet�� Źródło wymaganiaŹródło wymagania�� Wymagania powiązaneWymagania powiązane�� UzasadnienieUzasadnienie

Wymagania niefunkcjonalneWymagania niefunkcjonalne

�� Ograniczenia dotycząceOgraniczenia dotyczące�� ProduktuProduktu

�� ProcesuProcesu

�� Współpracy z systemami zewnętrznymiWspółpracy z systemami zewnętrznymi

�� Problem specyfikacji wymagań Problem specyfikacji wymagań niefunkcjonalnych w sposób weryfikowalnyniefunkcjonalnych w sposób weryfikowalny

Specyfikacja wymagań niefunkcjonalnych w Specyfikacja wymagań niefunkcjonalnych w sposób weryfikowalnysposób weryfikowalny

�� WydajnośćWydajność�� Liczba transakcji obsłużonych w ciągu sekundyLiczba transakcji obsłużonych w ciągu sekundy�� Czas odpowiedziCzas odpowiedzi�� Szybkość odświeżania ekranuSzybkość odświeżania ekranu

�� RozmiarRozmiar�� Wymagana pamięć RAMWymagana pamięć RAM�� Wymagana pamięć dyskowaWymagana pamięć dyskowa

�� Łatwość użytkowaniaŁatwość użytkowania�� Czas niezbędny dla przeszkolenia użytkownikówCzas niezbędny dla przeszkolenia użytkowników�� Liczba stron dokumentacjiLiczba stron dokumentacji�� Zgodność ze standardamiZgodność ze standardami

Ostrzezenie

Nie Tak

Wykonanie tej operacji spowoduje utratewszystkich wyników obliczen. Czy chcesz

kontynuowac?

�� NiezawodnośćNiezawodność�� Prawdopodobieństwo błędnego wykonania podczas realizacji transakcjiPrawdopodobieństwo błędnego wykonania podczas realizacji transakcji�� Częstotliwość występowania błędnych wykonańCzęstotliwość występowania błędnych wykonań�� Średni czas pomiędzy błędnymi wykonaniamiŚredni czas pomiędzy błędnymi wykonaniami�� Dostępność (procent czasu, w którym system jest dostępny)Dostępność (procent czasu, w którym system jest dostępny)

�� Odporność (ang. robustness)Odporność (ang. robustness)�� Czas restartu po awarii systemuCzas restartu po awarii systemu�� Prawdopodobieństwo zniszczenia danych w przypadku awariiPrawdopodobieństwo zniszczenia danych w przypadku awarii

�� PrzenośnośćPrzenośność�� Procent kodu zależnego od platformy docelowejProcent kodu zależnego od platformy docelowej�� Liczba platform docelowychLiczba platform docelowych�� Koszt przeniesienia na nową platformęKoszt przeniesienia na nową platformę

Specyfikacja wymagań niefunkcjonalnych w Specyfikacja wymagań niefunkcjonalnych w sposób weryfikowalnysposób weryfikowalny

Zestaw praktyk Sommerville’a, Zestaw praktyk Sommerville’a, SawyeraSawyera

�� Dokument opisujący wymaganiaDokument opisujący wymagania

�� Zbieranie wymagań (Zbieranie wymagań (requirements elicitationrequirements elicitation))

�� Analiza i negocjowanie wymagańAnaliza i negocjowanie wymagań

�� Opis wymagańOpis wymagań

�� Modelowanie systemuModelowanie systemu

�� Atestowanie wymagań (Atestowanie wymagań (requirements validationrequirements validation))

�� Zarządzanie wymaganiamiZarządzanie wymaganiami

11

Dokument opisujący wymagania Dokument opisujący wymagania -- praktykipraktyki

�� Ustandaryzuj strukturę dokumentuUstandaryzuj strukturę dokumentu

�� Wyjaśnij jak korzystać z dokumentuWyjaśnij jak korzystać z dokumentu

�� Dodaj podsumowanie wymagańDodaj podsumowanie wymagań

�� Uzasadnij wartość biznesową systemuUzasadnij wartość biznesową systemu

�� Zdefiniuj specjalistyczne terminyZdefiniuj specjalistyczne terminy

�� Zorganizuj dokument w czytelny sposóbZorganizuj dokument w czytelny sposób

�� Pomóż czytelnikom znaleźć informacjePomóż czytelnikom znaleźć informacje

�� Uczyń dokument łatwym z zmianachUczyń dokument łatwym z zmianach

Ustandaryzuj strukturę Ustandaryzuj strukturę dokumentudokumentu

�� Zalety:Zalety:�� Lepsza czytelnośćLepsza czytelność

�� Pomoc w opracowywaniu dokumentuPomoc w opracowywaniu dokumentu

�� Możliwość automatyzacjiMożliwość automatyzacji

�� Standard powinien dopuszczać różne wariantyStandard powinien dopuszczać różne warianty

Struktura wg. IEEE/ANSI 830Struktura wg. IEEE/ANSI 830--19931993

�� 1. Introduction1. Introduction�� 1.1 Purpose of the requirements document1.1 Purpose of the requirements document�� 1.2 Scope of the product1.2 Scope of the product�� 1.3 Definitions, acronyms, abbreviations1.3 Definitions, acronyms, abbreviations�� 1.4 References1.4 References�� 1.5 Overview of the reminder of the document1.5 Overview of the reminder of the document

�� 2. General description2. General description�� 2.1 Product perspective2.1 Product perspective�� 2.2 Product functions2.2 Product functions�� 2.3 User charactristics2.3 User charactristics�� 2.4 General characteristics2.4 General characteristics�� 2.5 Assumptions and dependencies2.5 Assumptions and dependencies

�� 3. Specific requirement3. Specific requirement�� AppendicesAppendices�� IndexIndex

Wyjaśnij jak korzystać z Wyjaśnij jak korzystać z dokumentudokumentu

�� Dołącz sekcję „jak korzystać z dokumentu”Dołącz sekcję „jak korzystać z dokumentu”

�� Przede wszystkim w jaki sposób powinni z niego Przede wszystkim w jaki sposób powinni z niego korzystać różni czytelnicy korzystać różni czytelnicy –– użytkownicy, użytkownicy, analitycy, wykonawcy, kierownicyanalitycy, wykonawcy, kierownicy

Dodaj podsumowanie wymagańDodaj podsumowanie wymagań

�� Sekcja „Overview” Sekcja „Overview” –– cel, założenia główne cel, założenia główne wymaganiawymagania

Uzasadnij wartość biznesową Uzasadnij wartość biznesową systemusystemu

�� Odpowiednia sekcja w dokumencieOdpowiednia sekcja w dokumencie

12

Zdefiniuj specjalistyczne terminyZdefiniuj specjalistyczne terminy

�� Np. sekcja „glossary”Np. sekcja „glossary”

�� Także terminy używane w ramach dokumentu w Także terminy używane w ramach dokumentu w zawężonym, specyficznym znaczeniuzawężonym, specyficznym znaczeniu�� Np. printerNp. printer

Zorganizuj dokument w czytelny Zorganizuj dokument w czytelny sposóbsposób

�� Dokument opisujący wymagania jest często czytanyDokument opisujący wymagania jest często czytany

�� Ogólne zasady czytelności tekstuOgólne zasady czytelności tekstu�� Krótkie akapityKrótkie akapity

�� Krótkie zdaniaKrótkie zdania

�� Podział na sekcjePodział na sekcje

�� Wyróżniki, wyliczeniaWyróżniki, wyliczenia

�� Wykorzystanie prostych diagramów Wykorzystanie prostych diagramów –– wraz z dobrymi wraz z dobrymi wyjaśnieniamiwyjaśnieniami

Pomóż czytelnikom znaleźć Pomóż czytelnikom znaleźć informacjeinformacje

�� IndeksIndeks

�� Czytelna organizacjaCzytelna organizacja

�� Najlepsza forma elektroniczna Najlepsza forma elektroniczna -- wyszukiwaniewyszukiwanie

Uczyń dokument łatwym z Uczyń dokument łatwym z zmianachzmianach

�� Wymagania będą się zmieniaćWymagania będą się zmieniać

�� Łatwiejsze w formie elektronicznejŁatwiejsze w formie elektronicznej

Zbieranie wymagań (Zbieranie wymagań (requirements requirements elicitationelicitation) ) -- praktykipraktyki

�� Oceń wykonalność systemuOceń wykonalność systemu

�� Weź pod uwagę względy organizacyjne i polityczneWeź pod uwagę względy organizacyjne i polityczne

�� Zidentyfikuj i skonsultuj zainteresowane stronyZidentyfikuj i skonsultuj zainteresowane strony

�� Zapisuj źródła wymagańZapisuj źródła wymagań

�� Zdefiniuj środowisko pracyZdefiniuj środowisko pracy

�� Kieruj procesem poszukiwania wymagań biorąc pod Kieruj procesem poszukiwania wymagań biorąc pod uwagę względy biznesoweuwagę względy biznesowe

�� Szukaj ograniczeń dziedzinowychSzukaj ograniczeń dziedzinowych

Zbieranie wymagań (Zbieranie wymagań (requirements requirements elicitationelicitation) ) -- praktykipraktyki

�� Zapisuj uzasadnienia wymagańZapisuj uzasadnienia wymagań

�� Zbieraj wymagania z różnych punktów widzeniaZbieraj wymagania z różnych punktów widzenia

�� Prototypuj źle rozumiane wymaganiaPrototypuj źle rozumiane wymagania

�� Używaj scenariuszy do zbierania wymagańUżywaj scenariuszy do zbierania wymagań

�� Zdefiniuj procesy, w których będzie Zdefiniuj procesy, w których będzie wykorzystywany systemwykorzystywany system

�� Ponownie wykorzystuj wymaganiaPonownie wykorzystuj wymagania

13

Oceń wykonalność systemuOceń wykonalność systemu

�� Studium wykonalności powinno zawsze Studium wykonalności powinno zawsze poprzedzać intensywniejsze inwestycje w pracę poprzedzać intensywniejsze inwestycje w pracę nad systemem, w tym zbieranie szczegółowych nad systemem, w tym zbieranie szczegółowych wymagańwymagań

�� Zarówno kwestie techniczne, jak i biznesoweZarówno kwestie techniczne, jak i biznesowe

Weź pod uwagę względy Weź pod uwagę względy organizacyjne i polityczneorganizacyjne i polityczne

�� Czynniki organizacyjne i polityczne (często Czynniki organizacyjne i polityczne (często niejawne) mogą wpływać (np. utrudniać) proces niejawne) mogą wpływać (np. utrudniać) proces zbierania wymagańzbierania wymagań�� Lęk przed utratą wpływów/pracyLęk przed utratą wpływów/pracy

�� Konfliktowe celeKonfliktowe cele

�� Kultura współzawodnictwaKultura współzawodnictwa

�� Różne sposoby pracyRóżne sposoby pracy

Zidentyfikuj i skonsultuj Zidentyfikuj i skonsultuj zainteresowane stronyzainteresowane strony

�� Zainteresowane strony (stakeholders):Zainteresowane strony (stakeholders):�� Użytkownicy końcowi (różne klasy)Użytkownicy końcowi (różne klasy)�� ZarządZarząd�� KlienciKlienci�� WykonawcyWykonawcy�� AdministratorzyAdministratorzy�� Ciała zewnętrzne Ciała zewnętrzne –– urzędy, organizacje certyfikująceurzędy, organizacje certyfikujące

�� ZaletyZalety�� Pełniejszy zestaw wymagańPełniejszy zestaw wymagań�� Przekonanie do systemu wszystkich zainteresowanych stronPrzekonanie do systemu wszystkich zainteresowanych stron

Zapisuj źródła wymagańZapisuj źródła wymagań

�� Osoba, grupa organizacja, od której pochodzi Osoba, grupa organizacja, od której pochodzi wymaganiewymaganie

�� Inne źródła Inne źródła –– standardy, dokumenty, raportystandardy, dokumenty, raporty

�� W wielu wypadkach niezbędne okazuje się W wielu wypadkach niezbędne okazuje się wyjaśnienie wątpliwości dotyczących wymagańwyjaśnienie wątpliwości dotyczących wymagań

�� Czasem sama informacja o źródle wyjaśnia te Czasem sama informacja o źródle wyjaśnia te wątpliwościwątpliwości

Zdefiniuj środowisko pracyZdefiniuj środowisko pracy

�� Platforma sprzętowa i programowaPlatforma sprzętowa i programowa�� Interfejsy z innymi systemamiInterfejsy z innymi systemami�� Zależność od innych programów (np. założenie, Zależność od innych programów (np. założenie, że użytkownik ma dostęp do maila nawet jeżeli że użytkownik ma dostęp do maila nawet jeżeli nasz system nie łączy się z nim bezpośrednio)nasz system nie łączy się z nim bezpośrednio)

�� ... , np. rozmieszczenie fizyczne... , np. rozmieszczenie fizyczne

�� Należy brać pod uwagę zmiany środowiskaNależy brać pod uwagę zmiany środowiska

Kieruj procesem poszukiwania Kieruj procesem poszukiwania wymagań biorąc pod uwagę wymagań biorąc pod uwagę

względy biznesowewzględy biznesowe�� Względy biznesowe (business Względy biznesowe (business concernsconcerns) ogólne ) ogólne biznesowe cele klientabiznesowe cele klienta

�� Użyteczny system musi wspomagać realizację Użyteczny system musi wspomagać realizację biznesowych celów klientabiznesowych celów klienta

�� Wpływają na priorytet celów szczegółowych i Wpływają na priorytet celów szczegółowych i wymagańwymagań

14

Szukaj ograniczeń dziedzinowychSzukaj ograniczeń dziedzinowych

�� Ograniczenia, które występują obiektywnie Ograniczenia, które występują obiektywnie (niezależnie od naszego systemu) w dziedzinie (niezależnie od naszego systemu) w dziedzinie problemuproblemu�� Np. ograniczenia związane z bankowością, Np. ograniczenia związane z bankowością, podatkami, itd.podatkami, itd.

�� Generują wymagania niefunkcjonalneGenerują wymagania niefunkcjonalne

�� Wykazanie zgodności z tymi wymaganiami może Wykazanie zgodności z tymi wymaganiami może być niezbędne do wdrożenia systemubyć niezbędne do wdrożenia systemu

Zapisuj uzasadnienia wymagańZapisuj uzasadnienia wymagań

�� Powinno być specyfikowane przez osobę Powinno być specyfikowane przez osobę (grupę) będąca źródłem wymagań(grupę) będąca źródłem wymagań

�� Ułatwia zrozumienie wymagańUłatwia zrozumienie wymagań

�� Ułatwia nadawanie priorytetówUłatwia nadawanie priorytetów

Zbieraj wymagania z różnych Zbieraj wymagania z różnych punktów widzeniapunktów widzenia

�� Punkty widzenia (i zbiory wymagań) Punkty widzenia (i zbiory wymagań) zainteresowanych strony, w tym różnych klas zainteresowanych strony, w tym różnych klas użytkownikówużytkowników

�� ZaletyZalety�� Ułatwia proces zbierania wymagańUłatwia proces zbierania wymagań

�� Zapewnia pełniejszy obraz systemuZapewnia pełniejszy obraz systemu

�� Ułatwia nadawanie priorytetów Ułatwia nadawanie priorytetów –– wymagania istotne wymagania istotne dla wielu stron są z reguły ważniejszedla wielu stron są z reguły ważniejsze

Rodzaje punktów widzeniaRodzaje punktów widzenia

�� Interaktorów (Interaktorów (interactorsinteractors) ) –– użytkownicy, inne systemyużytkownicy, inne systemy�� Zainteresowanych stron nie będących bezpośrednimi Zainteresowanych stron nie będących bezpośrednimi użytkownikamiużytkownikami

�� Dziedziny problemu Dziedziny problemu –– wymagania wynikające z samej wymagania wynikające z samej dziedziny problemu, a nie pochodzące od konkretnych dziedziny problemu, a nie pochodzące od konkretnych osób lub organizacjiosób lub organizacji

�� Bardzo ważna jest krosowe sprawdzenie (Bardzo ważna jest krosowe sprawdzenie (cross checkingcross checking) ) wymagań i ich integracjawymagań i ich integracja

Prototypuj źle rozumiane Prototypuj źle rozumiane wymaganiawymagania

�� Ułatwia zrozumienie (efektu) wymagańUłatwia zrozumienie (efektu) wymagań�� Bardzo efektywne w przypadku wymagań związanych z Bardzo efektywne w przypadku wymagań związanych z interfejsem użytkownikainterfejsem użytkownika

�� Czasami pozwala zaniechać realizacji Czasami pozwala zaniechać realizacji niepotrzebnego/niewykonalnego systemuniepotrzebnego/niewykonalnego systemu

�� Czasami prototyp może mieć dodatkowe zastosowania:Czasami prototyp może mieć dodatkowe zastosowania:�� Może być w jakimś stopniu wykorzystywany przez Może być w jakimś stopniu wykorzystywany przez użytkownikaużytkownika

�� Może zostać częściowo wykorzystany w pełnym systemie Może zostać częściowo wykorzystany w pełnym systemie (choć z założenia jest porzucany)(choć z założenia jest porzucany)

�� Może służyć do szkoleń, dalszych demonstracjiMoże służyć do szkoleń, dalszych demonstracji

Techniki prototypowaniaTechniki prototypowania

�� Cel Cel –– szybko, tanio osiągnąć cel prototypowaniaszybko, tanio osiągnąć cel prototypowania

�� PapierPapier�� Czarodziej z OzCzarodziej z Oz�� ProgramowanieProgramowanie

�� Nie wszystkie wymagania można prototypować Nie wszystkie wymagania można prototypować –– np. efektywność, niezawodnośćnp. efektywność, niezawodność

15

Używaj scenariuszy do zbierania Używaj scenariuszy do zbierania wymagańwymagań

�� Stosunkowo łatwe dla użytkownikaStosunkowo łatwe dla użytkownika

�� Pozwala odkryć nowe wymaganiaPozwala odkryć nowe wymagania

�� Ma wiele zalet podobnych do prototypowaniaMa wiele zalet podobnych do prototypowania

�� Z reguły nie opisują systemu w pełniZ reguły nie opisują systemu w pełni

�� Większe systemy mogą wymagać dużej liczby Większe systemy mogą wymagać dużej liczby scenariuszy scenariuszy –– kilkadziesiąt, kilkasetkilkadziesiąt, kilkaset

Opis scenariuszaOpis scenariusza

�� Stan systemu przed rozpoczęciem scenariuszaStan systemu przed rozpoczęciem scenariusza�� Normalny przebieg wydarzeńNormalny przebieg wydarzeń�� Możliwe wyjątkiMożliwe wyjątki�� Informacje o innych czynnościach, które mogą Informacje o innych czynnościach, które mogą zachodzić w tym samym czasiezachodzić w tym samym czasie

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

�� Zwykle 3Zwykle 3--4 strony + tabele, rysunki4 strony + tabele, rysunki�� Często pewne części scenariuszy mogą być ponownie Często pewne części scenariuszy mogą być ponownie wykorzystanewykorzystane

Zdefiniuj procesy, w których Zdefiniuj procesy, w których będzie wykorzystywany systembędzie wykorzystywany system

�� Przeznaczenie systemu można często opisać jako Przeznaczenie systemu można często opisać jako wspomaganie jednego lub wielu procesów biznesowychwspomaganie jednego lub wielu procesów biznesowych

�� Pozwala zidentyfikować:Pozwala zidentyfikować:�� Role użytkowników i zainteresowanych stronRole użytkowników i zainteresowanych stron

�� Procesy często będą już opisane:Procesy często będą już opisane:�� Modele biznesoweModele biznesowe�� Modele dla systemów workflowModele dla systemów workflow

�� Procesy są często bardzo skomplikowane, ich tworzenie Procesy są często bardzo skomplikowane, ich tworzenie od podstaw może być bardzo kosztowneod podstaw może być bardzo kosztowne

Ponownie wykorzystuj Ponownie wykorzystuj wymaganiawymagania

�� W podobnych systemach nawet 80% wymagań W podobnych systemach nawet 80% wymagań może być ponownie wykorzystanemoże być ponownie wykorzystane

�� ZaletyZalety�� Redukcja kosztówRedukcja kosztów

�� Redukcja ryzykaRedukcja ryzyka

�� Może prowadzić do ponownego wykorzystania Może prowadzić do ponownego wykorzystania modelu, projektu, kodu i testówmodelu, projektu, kodu i testów

Sposoby wykorzystania wymagańSposoby wykorzystania wymagań

�� Bezpośredni Bezpośredni –– przeniesienie wymagańprzeniesienie wymagań�� Często niemożliweCzęsto niemożliwe

�� Kwestia praw do wymagańKwestia praw do wymagań

�� Pośredni Pośredni –– wykorzystanie w procesie zbierania wykorzystanie w procesie zbierania wymagańwymagań�� Np. poddanie krytyce istniejących wymagań dla Np. poddanie krytyce istniejących wymagań dla podobnego systemupodobnego systemu

Analiza i negocjowanie wymagańAnaliza i negocjowanie wymagań

�� Cel Cel –– ustalenie kompletnego, niesprzecznego zbioru ustalenie kompletnego, niesprzecznego zbioru wymagań akceptowanego przez wszystkie wymagań akceptowanego przez wszystkie zainteresowane stronyzainteresowane strony�� Wykrycie brakujących wymagańWykrycie brakujących wymagań�� Wykrycie konfliktowych wymagańWykrycie konfliktowych wymagań�� Wykrycie niejasnych wymagańWykrycie niejasnych wymagań�� Wykrycie wymagań zachodzących na siebieWykrycie wymagań zachodzących na siebie�� Wykrycie nierealistycznych wymagańWykrycie nierealistycznych wymagań

�� Analiza i negocjowanie przeplata się ze zbieraniem Analiza i negocjowanie przeplata się ze zbieraniem wymagańwymagań

16

Analiza i negocjowanie wymagańAnaliza i negocjowanie wymagań

�� Zdefiniuj granice systemuZdefiniuj granice systemu�� Wykorzystaj listę kontrolną do analizy wymagańWykorzystaj listę kontrolną do analizy wymagań�� Wykorzystaj narzędzia wspomagające negocjacjeWykorzystaj narzędzia wspomagające negocjacje�� Planując weź pod uwagę konflikty i ich rozwiązywaniePlanując weź pod uwagę konflikty i ich rozwiązywanie�� Określ priorytety wymagańOkreśl priorytety wymagań�� Stwórz wielowymiarową klasyfikację wymagańStwórz wielowymiarową klasyfikację wymagań�� Wykorzystaj tablice interakcji (Wykorzystaj tablice interakcji (interaction matricesinteraction matrices) do ) do znalezienia konfliktów i nakładających się wymagańznalezienia konfliktów i nakładających się wymagań

�� Oceń ryzyko wymagańOceń ryzyko wymagań

Zdefiniuj granice systemuZdefiniuj granice systemu

�� Część wstępnie określonych wymagań może nie Część wstępnie określonych wymagań może nie dotyczyć systemu lecz jego otoczeniadotyczyć systemu lecz jego otoczenia

�� Granice systemu powinny być określone już na Granice systemu powinny być określone już na podstawie ogólnych wymagańpodstawie ogólnych wymagań

Przykłady wymagań spoza granic Przykłady wymagań spoza granic systemusystemu

�� Wymagania związane z podejmowaniem decyzji Wymagania związane z podejmowaniem decyzji trudnych do zamodelowaniatrudnych do zamodelowania

�� Wymagania wymagające informacje niedostępnych Wymagania wymagające informacje niedostępnych systemowisystemowi

�� Wymagania nieistotne z punktu widzenia głównych Wymagania nieistotne z punktu widzenia głównych celów systemucelów systemu

�� Wymagania dotyczą funkcjonalności lub ograniczeń Wymagania dotyczą funkcjonalności lub ograniczeń wobec zewnętrznych programów lub sprzętuwobec zewnętrznych programów lub sprzętu

Wykorzystaj listę kontrolną do Wykorzystaj listę kontrolną do analizy wymagańanalizy wymagań

�� Zestaw punktów/pytań, pod kątem których Zestaw punktów/pytań, pod kątem których analizowane jest każde wymaganieanalizowane jest każde wymaganie

�� Około 10 punktówOkoło 10 punktów

�� Nie jest (pełną) weryfikacją jakościNie jest (pełną) weryfikacją jakości

�� Ryzyko zbytniego skupienia się na liście i Ryzyko zbytniego skupienia się na liście i niedostrzegania innych problemówniedostrzegania innych problemów

Przykładowa listaPrzykładowa lista

�� Czy wymaganie wprowadza zbyt szybkich założeń co Czy wymaganie wprowadza zbyt szybkich założeń co do projektu?do projektu?

�� Czy wymaganie nie powinno być rozbite na kilka Czy wymaganie nie powinno być rozbite na kilka oddzielnych?oddzielnych?

�� Czy wymaganie jest potrzebne?Czy wymaganie jest potrzebne?�� Czy wymaganie wymaga niestandardowego sprzętu?Czy wymaganie wymaga niestandardowego sprzętu?�� Czy wymaganie jest zrozumiałe/jednoznaczne?Czy wymaganie jest zrozumiałe/jednoznaczne?�� Czy wymaganie jest realistyczne?Czy wymaganie jest realistyczne?�� Czy wymaganie jest weryfikowalne/testowalne?Czy wymaganie jest weryfikowalne/testowalne?

Wykorzystaj narzędzia Wykorzystaj narzędzia wspomagające negocjacjewspomagające negocjacje

�� Podstawowe narzędzia Podstawowe narzędzia –– ee--mail, komunikatory, mail, komunikatory, listy dyskusyjne, programy konferencyjnelisty dyskusyjne, programy konferencyjne

�� Zaawansowane Zaawansowane –– wspierające negocjacje wspierające negocjacje –– raczej raczej etap badawczyetap badawczy

�� ZaletyZalety�� Redukcja kosztuRedukcja kosztu�� Redukcja barier osobowychRedukcja barier osobowych�� Szybkie wyjaśnienie prostych wątpliwościSzybkie wyjaśnienie prostych wątpliwości

17

Planując weź pod uwagę Planując weź pod uwagę konflikty i ich rozwiązywaniekonflikty i ich rozwiązywanie

�� Poważne wątpliwości i konflikty powinny być Poważne wątpliwości i konflikty powinny być rozwiązywane podczas poświęconych temu rozwiązywane podczas poświęconych temu spotkańspotkań

�� Pojawienie się konfliktów nie jest błędem lecz Pojawienie się konfliktów nie jest błędem lecz sytuacja typowąsytuacja typową

Określ priorytety wymagańOkreśl priorytety wymagań

�� Wspomaga wybór wymagań do realizacjiWspomaga wybór wymagań do realizacji�� Ułatwia rozwiązywanie konfliktówUłatwia rozwiązywanie konfliktów�� Ułatwia projektowanieUłatwia projektowanie

�� Priorytety powinny być nadawane wtedy, kiedy Priorytety powinny być nadawane wtedy, kiedy znany jest w miarę kompletny zestaw wymagańznany jest w miarę kompletny zestaw wymagań

�� Różne zainteresowane strony mogą inaczej Różne zainteresowane strony mogą inaczej widzieć priorytety wymagańwidzieć priorytety wymagań

Określ priorytety wymagańOkreśl priorytety wymagań

�� Niewielka liczba klas, np.:Niewielka liczba klas, np.:�� NiezbędneNiezbędne�� UżyteczneUżyteczne�� PrzydatnePrzydatne

�� Przydatne pytania:Przydatne pytania:�� Co jeżeli implementacja tego wymagania podwoi Co jeżeli implementacja tego wymagania podwoi koszty systemu?koszty systemu?

�� Co jeżeli implementacja tego wymagania Co jeżeli implementacja tego wymagania uniemożliwi realizacja wymagania XYZ?uniemożliwi realizacja wymagania XYZ?

Stwórz wielowymiarową Stwórz wielowymiarową klasyfikację wymagańklasyfikację wymagań

�� Zalety:Zalety:�� Wykrycie związków pomiędzy wymaganiami, w tym Wykrycie związków pomiędzy wymaganiami, w tym sprzeczności i nakładania sięsprzeczności i nakładania się

�� Ułatwia śledzenie (Ułatwia śledzenie (traceabilitytraceability) wymagań i ) wymagań i wprowadzanie zmianwprowadzanie zmian

�� Ułatwia wykrycie brakujących wymagańUłatwia wykrycie brakujących wymagań

Przykładowe klasyPrzykładowe klasy

�� Systemowe Systemowe –– wydajność, niezawodnośćwydajność, niezawodność

�� Interfejs użytkownikaInterfejs użytkownika

�� Baza danychBaza danych

�� Komunikacja (z zewnętrznymi systemami)Komunikacja (z zewnętrznymi systemami)

�� BezpieczeństwoBezpieczeństwo

Wykorzystaj tablice interakcji Wykorzystaj tablice interakcji ((interaction matricesinteraction matrices) do znalezienia ) do znalezienia

konfliktów i nakładających się wymagańkonfliktów i nakładających się wymagań�� Może być trudne dla dużej liczby wymagańMoże być trudne dla dużej liczby wymagań

18

Oceń ryzyko wymagańOceń ryzyko wymagań

�� Dla każdego wymagania lub grupy wymagań:Dla każdego wymagania lub grupy wymagań:�� Potencjalne problemyPotencjalne problemy

�� Prawdopodobieństwo ich wystąpieniaPrawdopodobieństwo ich wystąpienia

�� Możliwe efektyMożliwe efekty

�� Pozwala przewidzieć problemy jakie mogą się pojawić Pozwala przewidzieć problemy jakie mogą się pojawić w trakcie realizacji systemuw trakcie realizacji systemu

�� Często prowadzi do wykrycia źle, np. niekompletnie Często prowadzi do wykrycia źle, np. niekompletnie opisanych wymagańopisanych wymagań

Przykłady ryzykPrzykłady ryzyk

�� WydajnośćWydajność�� BezpieczeństwoBezpieczeństwo�� OchronaOchrona�� Proces Proces –– konieczność zmian w procesie wytwarzania konieczność zmian w procesie wytwarzania oprogramowaniaoprogramowania

�� Technologia realizacjiTechnologia realizacji�� Baza danych Baza danych –– np. duże, niestrukturalne zbiory danychnp. duże, niestrukturalne zbiory danych�� HarmonogramHarmonogram�� Ryzyka zewnętrzne Ryzyka zewnętrzne –– np. konieczność współpracy z np. konieczność współpracy z zewnętrznymi kooperantamizewnętrznymi kooperantami

�� Stabilność/zmiennośćStabilność/zmienność

Opis wymagań Opis wymagań -- praktykipraktyki

�� Zdefiniuj szablony dla opisu wymagańZdefiniuj szablony dla opisu wymagań�� Pisz prosto, spójnie i krótkoPisz prosto, spójnie i krótko�� Używaj diagramów w miarę potrzebUżywaj diagramów w miarę potrzeb�� Uzupełniaj opis słowny dodatkowymi formami Uzupełniaj opis słowny dodatkowymi formami opisuopisu

�� Specyfikuj wymagania w sposób ilościowySpecyfikuj wymagania w sposób ilościowy

�� Wymagania są czytane częściej niż pisaneWymagania są czytane częściej niż pisane

Zdefiniuj szablony dla opisu Zdefiniuj szablony dla opisu wymagańwymagań

�� ZaletyZalety�� Ułatwiają zbieranie informacji Ułatwiają zbieranie informacji –– służą jako lista służą jako lista kontrolnakontrolna

�� Zwiększają przejrzystość opisuZwiększają przejrzystość opisu

�� Usprawniają proces opisywania wymagań Usprawniają proces opisywania wymagań –– skracają skracają czas, zmniejszają liczbę błędówczas, zmniejszają liczbę błędów

Pisz prosto, spójnie i krótkoPisz prosto, spójnie i krótko

�� Skraca czas czytaniaSkraca czas czytania

�� Zwiększa zbiór odbiorców wymaganiaZwiększa zbiór odbiorców wymagania

�� Unikać:Unikać:�� Długich, złożonych zdańDługich, złożonych zdań

�� Długich akapitówDługich akapitów

�� Skomplikowanej terminologiiSkomplikowanej terminologii

ZaleceniaZalecenia

�� Krótkie zdaniaKrótkie zdania�� Nigdy nie zamieszczać więcej niż jednego wymagania w Nigdy nie zamieszczać więcej niż jednego wymagania w jednym zdaniujednym zdaniu�� System ma ... i ...System ma ... i ...

�� Unikać specjalistycznego żargonuUnikać specjalistycznego żargonu�� Np. CASE w zarządzaniu to studium przypadkuNp. CASE w zarządzaniu to studium przypadku

�� Krótkie akapityKrótkie akapity�� Listy, tabeleListy, tabele�� Spójne użycie terminologiiSpójne użycie terminologii�� Wyraźne rozróżnianie tego co konieczne od tego co Wyraźne rozróżnianie tego co konieczne od tego co pożądanepożądane

19

ZaleceniaZalecenia

�� Unikaj zagnieżdżonych wyrażeń warunkowychUnikaj zagnieżdżonych wyrażeń warunkowych�� Np. jeżeli X, to jeżeli Y to R1a, w przeciwnym wypadku jeżeli Np. jeżeli X, to jeżeli Y to R1a, w przeciwnym wypadku jeżeli Z, to R1b, a w przeciwnym wypadku R1c (Z, to R1b, a w przeciwnym wypadku R1c (kiedy R1c?kiedy R1c?))

�� Jeżeli jest to niezbędne lepiej zastosować inny zapis niż język Jeżeli jest to niezbędne lepiej zastosować inny zapis niż język naturalny naturalny –– formalizm matematyczny, diagramformalizm matematyczny, diagram

�� Unikaj opisu skomplikowanych zaleźności w języku Unikaj opisu skomplikowanych zaleźności w języku naturalnym naturalnym –– stosuj np. diagramystosuj np. diagramy

�� Forma aktywnaForma aktywna�� Unikaj anonimowych odwołań do innych sekcji Unikaj anonimowych odwołań do innych sekcji dokumentu, innych wymagań, rysunków, tabeldokumentu, innych wymagań, rysunków, tabel

�� I oczywiście dbaj o poprawnośćI oczywiście dbaj o poprawność

Używaj diagramów w miarę Używaj diagramów w miarę potrzebpotrzeb

�� Diagramy ilustrująceDiagramy ilustrujące�� StrukturęStrukturę

�� ZależnościZależności

�� Sekwencje, np. zdarzeń, zadańSekwencje, np. zdarzeń, zadań

�� Wykresy pokazujące zależności liczboweWykresy pokazujące zależności liczbowe

�� Z reguły należy unikać stosowania specjalistycznych notacjiZ reguły należy unikać stosowania specjalistycznych notacji

�� Ostrożne używanie kolorów i ikonOstrożne używanie kolorów i ikon

�� Diagramy są bardzo przydatne w prezentacjach dla klientaDiagramy są bardzo przydatne w prezentacjach dla klienta

Uzupełniaj! opis słowny Uzupełniaj! opis słowny dodatkowymi formami opisudodatkowymi formami opisu

�� PrzykładyPrzykłady�� Tablice decyzyjneTablice decyzyjne�� Kod, pseudokodKod, pseudokod�� Zapis algebraicznyZapis algebraiczny�� Diagramy przepływu danychDiagramy przepływu danych�� Wykresy Wykresy Gantt’aGantt’a�� UMLUML�� Notacje stosowane w ramach dziedziny problemuNotacje stosowane w ramach dziedziny problemu

�� Zalety:Zalety:�� Większa precyzjaWiększa precyzja�� Mniej błędów w zapisie i interpretacjiMniej błędów w zapisie i interpretacji

Specyfikuj wymagania w sposób Specyfikuj wymagania w sposób ilościowyilościowy

�� Dotyczy zwłaszcza wymagań niefunkcjonalnychDotyczy zwłaszcza wymagań niefunkcjonalnych

�� Ważną sprawą jest dobór odpowiednich metrykWażną sprawą jest dobór odpowiednich metryk

Modelowanie systemuModelowanie systemu

�� Zbuduj model systemuZbuduj model systemu

�� Zamodeluj otoczenie systemuZamodeluj otoczenie systemu

�� Zamodeluj architekturę systemuZamodeluj architekturę systemu

�� Wykorzystuj metodykę modelowaniaWykorzystuj metodykę modelowania

�� Wykorzystuj słownik danychWykorzystuj słownik danych

�� Dokumentuj powiązania pomiedzy Dokumentuj powiązania pomiedzy wymaganiami a elementami modeluwymaganiami a elementami modelu

Atestowanie wymagań (Atestowanie wymagań (requirements requirements validationvalidation) ) -- praktykipraktyki

�� Zweryfikuj czy dokument wymagań jest zgodny ze Zweryfikuj czy dokument wymagań jest zgodny ze standardamistandardami

�� Zorganizuj formalne przeglądy wymagańZorganizuj formalne przeglądy wymagań�� Używaj specjalistów z różnych dziedzin do przeglądów Używaj specjalistów z różnych dziedzin do przeglądów wymagańwymagań

�� Zdefiniuj listy kontrolne atestowaniaZdefiniuj listy kontrolne atestowania�� Używaj prototypów do animacji wymagańUżywaj prototypów do animacji wymagań�� Napisz draft podręcznika użytkownikaNapisz draft podręcznika użytkownika�� Zaproponuj przypadki testoweZaproponuj przypadki testowe�� Opisz słownie model systemuOpisz słownie model systemu

20

CeleCele

�� Analiza dotyczy roboczych wersji wymagańAnaliza dotyczy roboczych wersji wymagań

�� Atestowanie dotyczy prawie gotowego Atestowanie dotyczy prawie gotowego dokumentu (dokumentu (final draftfinal draft))

�� Nie istnieje obiektywna informacja, względem Nie istnieje obiektywna informacja, względem której można weryfikować wymaganiaktórej można weryfikować wymagania

Zweryfikuj czy dokument wymagań Zweryfikuj czy dokument wymagań jest zgodny ze standardamijest zgodny ze standardami

�� Szybkie sprawdzenie poprzedzające ogólny Szybkie sprawdzenie poprzedzające ogólny przegląd przegląd –– jedna osobajedna osoba

�� Ułatwia i skraca czas ogólnego przegląduUłatwia i skraca czas ogólnego przeglądu

Zorganizuj formalne przeglądy Zorganizuj formalne przeglądy wymagańwymagań

�� Formalne przeglądy techniczne dotyczące wymagańFormalne przeglądy techniczne dotyczące wymagań�� W odróżnieniu od innych przeglądów technicznych W odróżnieniu od innych przeglądów technicznych często obejmują dyskusję nad rozwiązaniem często obejmują dyskusję nad rozwiązaniem problemówproblemów

�� Typowe problemy:Typowe problemy:�� NiejasnościNiejasności�� Brakujące informacjeBrakujące informacje�� KonfliktyKonflikty�� Nierealistyczne wymaganiaNierealistyczne wymagania

�� 40 wymagań / h ?40 wymagań / h ?

Używaj specjalistów z różnych Używaj specjalistów z różnych dziedzin do przeglądów wymagańdziedzin do przeglądów wymagań

�� UżytkownicyUżytkownicy

�� Przedstawiciele klientaPrzedstawiciele klienta

�� Eksperci dziedzinowiEksperci dziedzinowi

�� InżynierowieInżynierowie

Zdefiniuj listy kontrolne Zdefiniuj listy kontrolne atestowaniaatestowania

�� Pozwalają skupić uwagę recenzentów na Pozwalają skupić uwagę recenzentów na najważniejszych sprawachnajważniejszych sprawach

�� Wprowadzają strukturę do procesu ocenyWprowadzają strukturę do procesu oceny

�� Wspomagają naukę osób początkującychWspomagają naukę osób początkujących

Elementy listy kontrolnejElementy listy kontrolnej

�� Czy wymagania są kompletne (jako całość, cała grupa)?Czy wymagania są kompletne (jako całość, cała grupa)?�� Czy wymagania są spójne, zgodne?Czy wymagania są spójne, zgodne?�� Czy wymagania są zrozumiałe?Czy wymagania są zrozumiałe?�� Czy wymagania są niejednoznaczne?Czy wymagania są niejednoznaczne?�� Czy opis wymagań ma odpowiednią strukturę (np. Czy opis wymagań ma odpowiednią strukturę (np. powiązania, grupowanie)?powiązania, grupowanie)?

�� Czy można śledzić powiązania?Czy można śledzić powiązania?�� Czy opis poszczególnych wymagań i cały dokument jest Czy opis poszczególnych wymagań i cały dokument jest zgodny ze standardami?zgodny ze standardami?

21

Używaj prototypów do animacji Używaj prototypów do animacji wymagańwymagań

�� Eksperymentalne sprawdzenie wymagańEksperymentalne sprawdzenie wymagań

�� Atestowanie wymaga pełniejszego prototypu niż Atestowanie wymaga pełniejszego prototypu niż analiza. Powinien obejmować wszystkie analiza. Powinien obejmować wszystkie wymaganiawymagania

�� Użytkownicy powinni pracować samodzielnieUżytkownicy powinni pracować samodzielnie

�� Odpowiedni dobór użytkownikówOdpowiedni dobór użytkowników

�� Wskazówki dotyczące oceny, np. raport błędówWskazówki dotyczące oceny, np. raport błędów

Napisz draft podręcznika Napisz draft podręcznika użytkownikaużytkownika

�� ZaletyZalety�� Wymusza dokładną analizę wymagańWymusza dokładną analizę wymagań

�� Przydatne dla osób oceniających prototypPrzydatne dla osób oceniających prototyp

�� Podstawa ostatecznej dokumentacji użytkowejPodstawa ostatecznej dokumentacji użytkowej

�� Nie zastępuje dokumentu wymagańNie zastępuje dokumentu wymagań

Zaproponuj przypadki testoweZaproponuj przypadki testowe

�� Dla każdego wymagania zaproponuj jeden lub Dla każdego wymagania zaproponuj jeden lub kilka testówkilka testów

�� ZaletyZalety�� Ułatwia wykrycie problemów. Trudność w Ułatwia wykrycie problemów. Trudność w zaproponowaniu przypadków testowych często zaproponowaniu przypadków testowych często wynika z problemów z samymi wymaganiami.wynika z problemów z samymi wymaganiami.

�� Podstawa przyszłych testów systemu.Podstawa przyszłych testów systemu.

PytaniaPytania

�� Jakie scenariusze mogą być przydatne przy Jakie scenariusze mogą być przydatne przy opracowywaniu testów?opracowywaniu testów?

�� Czy opis danego wymagania zawiera wystarczające Czy opis danego wymagania zawiera wystarczające informacje do opracowania testów? Może wskazywać informacje do opracowania testów? Może wskazywać na istotne powiązania pomiędzy wymaganiami.na istotne powiązania pomiędzy wymaganiami.

�� Czy potrzebnych jest jeden czy wiele testów?Czy potrzebnych jest jeden czy wiele testów?

�� Czy możne zreformułować wymaganie, aby ułatwić Czy możne zreformułować wymaganie, aby ułatwić jego testowanie.jego testowanie.

Opisz słownie model systemuOpisz słownie model systemu

�� Notacje graficzne, np. UML nie są zrozumiałe Notacje graficzne, np. UML nie są zrozumiałe dla większości zaangażowanych stron dla większości zaangażowanych stron ––użytkowników, ekspertów dziedzinowychużytkowników, ekspertów dziedzinowych

Zarządzanie wymaganiami Zarządzanie wymaganiami ((requirements managementrequirements management) ) -- praktykipraktyki

�� Jednoznacznie zidentyfikuj każde wymaganieJednoznacznie zidentyfikuj każde wymaganie�� Zdefiniuj zasady (Zdefiniuj zasady (policypolicy) zarządzania wymaganiami) zarządzania wymaganiami�� Zdefiniuj zasady śledzenia powiązań (Zdefiniuj zasady śledzenia powiązań (traceabilitytraceability))�� Utrzymuj podręcznik śledzenia powiązań (Utrzymuj podręcznik śledzenia powiązań (traceability traceability manualmanual))

�� Korzystaj z bazy danych wymagańKorzystaj z bazy danych wymagań�� Zdefiniuj zasady modyfikowania wymagań Zdefiniuj zasady modyfikowania wymagań �� Zidentyfikuj globalne wymagania systemuZidentyfikuj globalne wymagania systemu�� Zidentyfikuj wymagania zmienne (Zidentyfikuj wymagania zmienne (volatilevolatile))�� Zachowuj odrzucone wymaganiaZachowuj odrzucone wymagania

22

Zarządzanie wymaganiamiZarządzanie wymaganiami

�� Główne zagadnieniaGłówne zagadnienia�� Zarządzanie zmianamiZarządzanie zmianami

�� Błędy, nieporozumienia, zmiany w otoczeniuBłędy, nieporozumienia, zmiany w otoczeniu

�� Zarządzanie powiązań pomiędzy wymaganiamiZarządzanie powiązań pomiędzy wymaganiami

�� Zarządzanie powiązań pomiędzy wymaganiami a Zarządzanie powiązań pomiędzy wymaganiami a innymi artefaktami przedsięwzięciainnymi artefaktami przedsięwzięcia�� Zapewnienie realizacji wymagańZapewnienie realizacji wymagań

��Ocena kosztów proponowanych zmianOcena kosztów proponowanych zmian

Jednoznacznie zidentyfikuj każde Jednoznacznie zidentyfikuj każde wymaganiewymaganie

�� Niezbędne przy wprowadzaniu powiązań Niezbędne przy wprowadzaniu powiązań pomiędzy wymaganiamipomiędzy wymaganiami

�� Pozwala śledzić wymagania, których opis się Pozwala śledzić wymagania, których opis się zmieniłzmienił

�� Naturalne w systemach elektronicznychNaturalne w systemach elektronicznych

Zdefiniuj zasady (Zdefiniuj zasady (policypolicy) ) zarządzania wymaganiamizarządzania wymaganiami

�� Cele zarządzania wymaganiamiCele zarządzania wymaganiami�� Standardy i procedury postępowaniaStandardy i procedury postępowania

�� Część systemu zapewniania jakości firmyCzęść systemu zapewniania jakości firmy

�� Zasady (Zasady (policypolicy) mówią ) mówią coco należy zrobić, należy zrobić, standardy i procedury mówią standardy i procedury mówią jakjak to zrobić w to zrobić w konkretnych sytuacjachkonkretnych sytuacjach

Elementy zasad zarządzania Elementy zasad zarządzania wymaganiamiwymaganiami

�� Cele i ich uzasadnienieCele i ich uzasadnienie�� Niezbędne raportyNiezbędne raporty�� Niezbędne standardyNiezbędne standardy�� Zasady zarządzania zmianami i kontroli realizacji Zasady zarządzania zmianami i kontroli realizacji wymagańwymagań

�� Zasady przeglądów i atestowania wymagańZasady przeglądów i atestowania wymagań�� Powiązania pomiędzy zasadami zarządzania Powiązania pomiędzy zasadami zarządzania wymaganiami a innymi obszarami zarządzaniawymaganiami a innymi obszarami zarządzania

�� Zasady śledzenia powiązańZasady śledzenia powiązań�� Warunki, w których te zasady mogą zostać zaniechaneWarunki, w których te zasady mogą zostać zaniechane

Zdefiniuj zasady śledzenia Zdefiniuj zasady śledzenia powiązań (powiązań (traceabilitytraceability))

�� Przykłady powiązań:Przykłady powiązań:�� WymaganiaWymagania-- źródłaźródła

�� Wymagania Wymagania –– uzasadnieniauzasadnienia

�� Wymagania Wymagania –– wymaganiawymagania

�� Wymagania Wymagania –– składowe architekturyskładowe architektury

�� Wymagania Wymagania –– składowe projektuskładowe projektu

�� Wymagania Wymagania –– interfejsy (do zewnętrznych systemów)interfejsy (do zewnętrznych systemów)

Przykładowe typy powiązańPrzykładowe typy powiązań

�� WymagaWymaga

�� Jest wymagany przezJest wymagany przez

�� SpecyfikujeSpecyfikuje

23

Zasady śledzenia powiązańZasady śledzenia powiązań

�� Jakie powiązania powinny być zapamietywane?Jakie powiązania powinny być zapamietywane?

�� Jak je reprezentować?Jak je reprezentować?

�� Kiedy wprowadzać powiązania?Kiedy wprowadzać powiązania?

�� Sytuacje wyjątkowe Sytuacje wyjątkowe –– możliwość zaniechania możliwość zaniechania zasadzasad

Utrzymuj podręcznik śledzenia Utrzymuj podręcznik śledzenia powiązań (powiązań (traceability manualtraceability manual))

�� Dodatek do dokumentu wymagańDodatek do dokumentu wymagań

�� Specyficzne zasady śledzenia powiązań Specyficzne zasady śledzenia powiązań obowiązujące w danym projekcieobowiązujące w danym projekcie

�� Najlepiej, jeżeli jest dostępny ogólnie w formie Najlepiej, jeżeli jest dostępny ogólnie w formie elektronicznejelektronicznej

Specyficzne czynniki dotyczące Specyficzne czynniki dotyczące projektu brane pod uwagęprojektu brane pod uwagę

�� Liczba wymagańLiczba wymagań

�� Szacowany czas budowy i ewolucji systemuSzacowany czas budowy i ewolucji systemu

�� Poziom dojrzałości organizacjiPoziom dojrzałości organizacji

�� Rozmiar i skład zespołuRozmiar i skład zespołu

�� Typ systemuTyp systemu

Korzystaj z bazy danych wymagańKorzystaj z bazy danych wymagań

�� Ogólnie korzystanie z narzędzi wspomagających Ogólnie korzystanie z narzędzi wspomagających zarządzanie wymaganiamizarządzanie wymaganiami

�� Zalety:Zalety:�� łatwiejsze przechowywanie powiązań pomiędzy łatwiejsze przechowywanie powiązań pomiędzy wymaganiami oraz pomiędzy wymaganiami i innymi wymaganiami oraz pomiędzy wymaganiami i innymi artefaktamiartefaktami

�� praca równoległapraca równoległa

�� przetwarzanie, np. raportyprzetwarzanie, np. raporty

Zdefiniuj zasady modyfikowania Zdefiniuj zasady modyfikowania wymagańwymagań

�� Zasady proponowania, oceny, przeglądów i Zasady proponowania, oceny, przeglądów i wprowadzania zmianwprowadzania zmian

�� Główne zalety:Główne zalety:�� całościowa ocena wpływu zmian całościowa ocena wpływu zmian –– lepsza kontrola lepsza kontrola kosztówkosztów

�� możliwość śledzenia ewolucji wymagańmożliwość śledzenia ewolucji wymagań

�� możliwość proponowania zmian przez wszystkie możliwość proponowania zmian przez wszystkie zainteresowane stronyzainteresowane strony

Zidentyfikuj globalne wymagania Zidentyfikuj globalne wymagania systemusystemu

�� Wymagania globalne:Wymagania globalne:�� definiują pożądane lub niezbędne wymagania wobec definiują pożądane lub niezbędne wymagania wobec całego systemucałego systemu

�� nie dotyczą poszczególnych fragmentów systemunie dotyczą poszczególnych fragmentów systemu

�� Zmiany w wymaganiach globalnych mogą być Zmiany w wymaganiach globalnych mogą być bardzo trudne/kosztowne do wprowadzenia. bardzo trudne/kosztowne do wprowadzenia. Wymagają w związku z tym szczególnej uwagi.Wymagają w związku z tym szczególnej uwagi.

24

Identyfikacja wymagań globalnychIdentyfikacja wymagań globalnych

�� Czy jest wyrażone w bardzo ogólny sposób?Czy jest wyrażone w bardzo ogólny sposób?�� np. dane w bazie danych muszą zawsze pozostawać np. dane w bazie danych muszą zawsze pozostawać poprawne poprawne

�� Czy wyraża ogólną, niefunkcjonalną własność systemu?Czy wyraża ogólną, niefunkcjonalną własność systemu?�� system musi obsługiwać N transakcji na sekundęsystem musi obsługiwać N transakcji na sekundę

�� Czy jest to ogólne wymaganie dotyczące interfejsu Czy jest to ogólne wymaganie dotyczące interfejsu użytkownika?użytkownika?

�� Odpowiedzi „tak” wskazują na wymagania globalneOdpowiedzi „tak” wskazują na wymagania globalne

Identyfikacja wymagań globalnychIdentyfikacja wymagań globalnych

�� Czy wymaganie dotyczy konkretne funkcji/usługi Czy wymaganie dotyczy konkretne funkcji/usługi systemu?systemu?

�� Czy wymaganie można powiązać z konkretnym Czy wymaganie można powiązać z konkretnym fragmentem systemu?fragmentem systemu?

�� Czy wymaganie można powiązać z konkretnymi danymi Czy wymaganie można powiązać z konkretnymi danymi w systemie?w systemie?

�� Odpowiedzi „nie” wskazują na wymagania globalneOdpowiedzi „nie” wskazują na wymagania globalne

Zidentyfikuj wymagania zmienne Zidentyfikuj wymagania zmienne ((volatilevolatile))

�� Należy identyfikować i w miarę możliwości Należy identyfikować i w miarę możliwości przewidywać zmienne wymaganiaprzewidywać zmienne wymagania

�� Zalety:Zalety:�� zmienność wymagań można uwzględnić projektując zmienność wymagań można uwzględnić projektując systemsystem

�� zmienność tych wymagań można uwzględnić w zmienność tych wymagań można uwzględnić w planie przedsięwzięciaplanie przedsięwzięcia

Rodzaje zmiennych wymagańRodzaje zmiennych wymagań

�� Mutujące (Mutujące (mutablemutable) ) –– zmienne w wyniku częstych zian w zmienne w wyniku częstych zian w otoczeniu systemuotoczeniu systemu

�� Pojawiające/rozwijające się (Pojawiające/rozwijające się (emergentemergent) ) –– nie mogą być w nie mogą być w pełni zdefiniowane na początku przedsięwzięciapełni zdefiniowane na początku przedsięwzięcia

�� Wynikowe (Wynikowe (consequentialconsequential) ) –– wynikają z pewnych założeń wynikają z pewnych założeń co do sposobu korzystania z systemu, które mogą co do sposobu korzystania z systemu, które mogą okazać się niewłaściweokazać się niewłaściwe

�� Związane ze zgodnością (Związane ze zgodnością (compatibilitycompatibility) ) –– zależą od zależą od zewnętrznych systemów (oprogramowanie, sprzęt)zewnętrznych systemów (oprogramowanie, sprzęt)

Zachowuj odrzucone wymaganiaZachowuj odrzucone wymagania

�� Odrzucone wymagania często pojawiają się Odrzucone wymagania często pojawiają się ponownieponownie�� może to oznaczać, że istnieją poważne powody, aby może to oznaczać, że istnieją poważne powody, aby takie wymaganie jednak wprowadzićtakie wymaganie jednak wprowadzić

�� może to oznaczać, że ponownie proponowane może to oznaczać, że ponownie proponowane wymagania można odrzucić ze znanych już wymagania można odrzucić ze znanych już powodówpowodów

�� Odrzucone wymagania mogą być przydatne w Odrzucone wymagania mogą być przydatne w innych systemachinnych systemach