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

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

Zagadnienia (1/3) Inżynieria Oprogramowania

Od pomysłu do podpisania umowy. Izabela Adamska

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

Faza Określania Wymagań

Programowanie zespołowe

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Etapy życia oprogramowania

Wstęp do zarządzania projektami

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

Inżynieria oprogramowania II

Cykle życia systemu informatycznego

Wstęp do zarządzania projektami

Wstęp do zarządzania projektami

Opis metodyki i procesu produkcji oprogramowania

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Pryncypia architektury korporacyjnej

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

Zasady organizacji projektów informatycznych

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

UPEDU: Rozpoznanie wymagań (ang. requirements discipline)

Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią

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

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

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

Modelowanie i analiza systemów informatycznych

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

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

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

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

Inżynieria oprogramowania (Software Engineering)

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

Wprowadzenie do systemów informacyjnych

Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka

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

Testujemy dedykowanymi zasobami (ang. agile testers)

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Wykład 1 Inżynieria Oprogramowania

Inżynieria Programowania Inżynieria wymagań

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

KARTA MODUŁU KSZTAŁCENIA

FAZA STRATEGICZNA. Podstawowe hasło: Nie skupiać się na szczegółach! (na razie) Czynności w fazie strategicznej: Decyzje strategiczne:

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Przedsięwzięcia Informatyczne w Zarządzaniu

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

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Maciej Oleksy Zenon Matuszyk

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie interakcji

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

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

Inżynieria oprogramowania (Software Engineering)

Zarządzanie projektami. Wykład 2 Zarządzanie projektem

Analityk i współczesna analiza

Testowanie wymagań KAROLINA ZMITROWICZ, RADOSŁAW SMILGIN

WOJSKOWA AKADEMIA TECHNICZNA

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Komputerowe wspomaganie zarządzania projektami innowacyjnymi realizowanymi w oparciu o podejście. Rozdział pochodzi z książki:

KIERUNKOWE EFEKTY KSZTAŁCENIA

GoBiz System platforma współpracy marektingowej

ZARZĄDZANIE I INŻYNIERIA PRODUKCJI

Metodyka projektowania komputerowych systemów sterowania

Wprowadzenie w tematykę zarządzania przedsięwzięciami/projektami. dr inż. Agata Klaus-Rosińska

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

Tom 6 Opis oprogramowania

System epon Dokumentacja użytkownika

Automatyczne decyzje kredytowe, siła szybkiego reagowania i optymalizacji kosztów. Roman Tyszkowski ING Bank Śląski S.A. roman.tyszkowski@ingbank.

Inżynieria Oprogramowania w Praktyce

Efekty kształcenia. Tabela efektów kształcenia

Miary funkcjonalne i co można z nimi zrobić fakty i mity. Warszawa, 7-8 czerwca 2017

Jak kupować usługi full service? Dialog Branżowy Reklamodawca-Agencja

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

Zarządzanie projektami IT

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

RUP. Rational Unified Process

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

Jakość w procesie wytwarzania oprogramowania

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

Projekty BPM z perspektywy analityka biznesowego. Wrocław, 20 stycznia 2011

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

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Tabela odniesień efektów kierunkowych do efektów obszarowych (tabele odniesień efektów kształcenia)

Nie o narzędziach a o rezultatach. czyli skuteczny sposób dokonywania uzgodnień pomiędzy biznesem i IT. Władysławowo, 6 października 2011 r.

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Faza analizy (modelowania) Faza projektowania

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

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

"Projektowanie - wdrożenie - integracja - uruchomienie, czyli jak skutecznie zrealizować projekt inwestycyjny".

Zarządzanie usługami IT

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

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

INŻYNIERIA OPROGRAMOWANIA Wykład 6 Organizacja pracy w dziale wytwarzania oprogramowania - przykład studialny

Efekt kształcenia. Wiedza

Zarządzanie projektami. Wykład 2 dr inż. Agata Klaus-Rosińska

Prowadzący: Bartosz Górczyński, CTPartners S.A, itsmf Polska. Miedzeszyn, wrzesień 2010

Zagadnienia. Inżynieria Oprogramowania

ZASADY TWORZENIA OPROGRAMOWANIA

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

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

Feature Driven Development

Transkrypt:

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

Wymagania Wymaganie (ang. requirement) - pojęcie wymagania jest różnie interpretowane przez różne organizacje zajmujące się produkcją oprogramowania. Może oznaczać zarówno bardzo zgrubny, abstrakcyjny opis funkcji jakie powinien realizować system informatyczny lub ograniczeń jakim może podlegać, jak również może być matematyczną formułą, bardzo precyzyjnie określającą jego funkcjonalność Wymagania w wielu przypadkach mogą spełniać różne, wydawałoby się przeciwstawne, funkcje: mogą stanowić podstawę dla ofert na realizację systemu - powinny być otwarte, tak aby nie narzucać formy realizacji systemu mogą (a właściwie powinny) stanowić podstawę kontraktu na realizację systemu - powinny zatem być: dokładne, kompletne, spójne, realizowalne i weryfikowalne

Inżynieria wymagań Inżynieria wymagań - proces identyfikacji wymagań jakich spełnienia oczekują użytkownicy systemu oraz ograniczeń nakładanych na jego realizację i użytkowanie.

Proces (uproszczony) inżynierii wymagań

Analiza realizowalności Analiza realizowalności zebranie zasadniczych (podstawowych) wymagań klienta i określenie czy te wymagania mogą zostać spełnione w założonym budżecie i przy wykorzystaniu wymaganych lub dostępnych rozwiązań technologicznych. Zwykle za ten etap klient nie jest obciążany kosztami. Jednak w przypadku dużych, złożonych projektów analiza realizowalności może być płatna.

Analiza wymagań Analiza wymagań analiza aktualnego środowiska pracy użytkowników systemu, określenie celów systemu i jego ograniczeń. Analiza wymagań jest zwykle wykonywana w środowisku klienta na podstawie bezpośrednich rozmów z decydentami i użytkownikami systemu. Analiza wymagań powinna być przeprowadzana kilkukrotnie w celu usunięcia zauważonych nieścisłości i ostatecznego uzgodnienia listy wymagań. Na podstawie przeprowadzonej analizy powstaje dokument definicja wymagań, który w formie przejrzystej i zrozumiałej przez przyszłych użytkowników systemu przedstawia zebrane wymagania i ograniczenia. Ten dokument powinien zostać zaakceptowany przez klienta.

Specyfikacja wymagań systemowych Specyfikacja Wymagań Systemowych (SWS, ang, System Requirements Specification - SRS) to dokument, w którym są uszczegółowiane wymagania dotyczące przyszłego systemu. Specyfikacja wymagań powinna stanowić podstawę kontraktu (wycena, termin realizacji) pomiędzy klientem i wykonawcą, jak również stanowi punkt startowy dla dokumentów określających architekturę systemu oraz jego implementację. Więcej o dokumentach SWS w dalszej części wykładu.

Przykład definicji i specyfikacji Definicja wymagania Oprogramowanie powinno w łatwy, intuicyjny sposób umożliwiać dostęp do zewnętrznych plików tworzonych przez inne programy. Specyfikacja wymagań 1.1 Użytkownik ma mieć możliwość definiowania typów plików zewnętrznych 1.2 Każdy zdefiniowany przez użytkownika typ pliku zewnętrznego musi mieć związane z nim oprogramowanie, które może zostać użyte do edycji plików tego typu. 1.3 Każdy plik zewnętrzny będzie reprezentowany w systemie przez ikonę. 1.4 Użytkownik ma mieć możliwość tworzenia i przypisywania ikon do typów plików zewnętrznych. 1.5 W wyniku kliknięcia myszą na ikonie reprezentującej plik zewnętrzny oprogramowanie związane z typem tego pliku ma zostać użyte do prezentacji zawartości tego pliku.

POZYSKIWANIE WYMAGAŃ

Pozyskiwanie wymagań Celem fazy pozyskiwania wymagań jest zebranie wymagań klienta wobec tworzonego systemu. Zbieranie wymagań to proces w którym klient łącznie z przedstawicielami producenta systemu konstruuje zbiór wymagań wobec systemu zgodnie z postawionymi celami i przyjętym zakresem. Zebrane wymagania dokumentowane są w Specyfikacji Wymagań Systemowych SWS (ang. SRS System Requirements Specification).

Inżynieria wymagań Inżynieria wymagań (ang. Requirements engineering) to całość działań związanych z pozyskiwaniem, reprezentowaniem, analizą i zarządzaniem wymaganiami. Etap zbierania wymagań jest traktowany jako jeden z najtrudniejszych w całym procesie produkcji oprogramowania. Osiągnięcie całkowicie poprawnej i pełnej specyfikacji wymagań jest niezwykle trudne ze względu na ciągłą ewolucję każdego systemu informatycznego.

Trzy metody pozyskiwania wymagań 1. Wywiady 2. Studia istniejących systemów 3. Prototypowanie

1. Wywiady Mają być przygotowane w postaci listy pytań i podzielone na odrębne zagadnienia. Mają umożliwić użytkownikowi zrozumienie konsekwencji wyborów i ich wpływ na ostateczną postać systemu Mają doprowadzić do szerokiej zgody i akceptacji projektu.

2. Studia istniejących systemów Są rozpatrywane w sytuacji gdy nowe oprogramowanie zastępuje stare. Mają ustalić wszystkie dobre i złe strony starego oprogramowania. Mają ustalić wymagania wobec nowego systemu, które zwykle związane są z usunięciem złych stron starego systemu, zachowaniem dobrych strony starego systemu, dodaniem nowych możliwości nieobecnych w starym systemie.

3. Prototypowanie Zbudowanie prototypu systemu działającego w mniejszej skali z uproszczonymi interfejsami. Na podstawie prototypu zebranie listy wymagań zwykle dotyczących: rozwinięcia funkcjonalności, poprawienia efektywności (np. szybszej pracy systemu), zmian w interfejsie (np. poprawy ergonomii). Budowa prototypu jest najbardziej kosztownym sposobem zbierania/uściślania wymagań.

Rodzaje wymagań Trzy podstawowe rodzaje wymagań: Wymagania funkcjonalne opisują one funkcje (czynności, operacje), które mają być wykonywane przez system, dotyczą rezultatów oczekiwanych przez użytkownika podczas kontaktu z systemem. Wymagania niefunkcjonalne opisują ograniczenia (sprzętowe, prawne), przy zachowaniu których system ma realizować swoje funkcje. Wymagania przejściowe opisują ograniczenia o określonym czasie występowania, np. związane z migracją ze starego systemu do nowego.

Ważność fazy pozyskiwania wymagań Zbieranie wymagań jest fazą w której niezbędna jest najbardziej staranna weryfikacja i walidacja. Rozwijanie aplikacji w oparciu o niepoprawne wymagania może w skrajnym przypadku doprowadzić do wytworzenia nieodpowiedniego lub niepotrzebnego oprogramowania! Koszt naprawy błędów w specyfikacji wymagań rośnie zgodnie z zasadą 1:10, tzn. naprawa błędu specyfikacji wymagań kosztuje: 10 razy więcej na etapie projektowania, 100 razy więcej na etapie kodowania, 1000 razy więcej na etapie użytkowania i konserwacji niż na etapie specyfikacji.

Kto? Ustalenie interesariuszy projektu Zarządzający (cele biznesowe) Kontroler finansowy (koszty) Kierownik IT (szczególne wymagania funkcjonalne, niezawodność, dostępność, testowalność) Użytkownicy końcowi (wymagania funkcjonalne) Kierownik marketingu (cechy marketingowe) Kierownik ochrony (bezpieczeństwo) Dobrą praktyką jest ograniczanie liczby interesariuszy biorących udział w bezpośrednim opracowywaniu listy (definicji) wymagań (np. do kierowników działów, brygadzistów itp.). Jednak nie zwalnia to z obowiązku przeprowadzenia wywiadu na bezpośrednich stanowiskach pracy użytkowników.

Kto? Ustalenie interesariuszy Każda osoba zainteresowana może występować w kilku rolach (np. administrator może też być użytkownikiem końcowym). Z każdą rolą jest związany określony punkt widzenia. Każde urządzenie lub system współpracujący z projektowanym systemem również może mieć swoje wymagania i w tym sensie również jest udziałowcem projektu. Punkty widzenia różnych interesariuszy są różne. Wszystkie punkty widzenia interesariuszy są ważne, chociaż nie wszystkie w tym samym stopniu. Wszystkie punkty widzenia powinny zostać wzięte pod uwagę. Wszystkie punkty widzenia powinny zostać przeanalizowane. Pojawiające się konflikty powinny zostać rozstrzygnięte.

Kto? Ustalenie klienta Klientem jest osoba lub organizacja, która ma ostateczny wpływ na kształt projektu. Z klientem uzgadniamy specyfikację wymagań i podpisujemy kontrakt. Klient powinien należeć do interesariuszy projektu. W przeciwnym przypadku nie jest on zainteresowany wprowadzeniem systemu, a wtedy szanse zrealizowania projektu są minimalne. W organizacji klienta musi być wyznaczona osoba (kierownik projektu) odpowiedzialna za realizację projektu i reprezentująca klienta. Osoba ta musi mieć odpowiednią władzę nad innymi interesariuszami, aby zapewnić ich współpracę w fazie formułowania wymagań. W przypadku klienta szerokiego (produktu przeznaczonego dla masowego odbiorcy) trzeba znaleźć osobę lub grupę osób reprezentujących interesariuszy (najczęściej użytkowników końcowych) i od nich pozyskiwać wymagania.

Zrozumienie

Każdy słyszy to, co chce usłyszeć

Co? Cztery etapy pozyskiwania wymagań 1. Uświadomienie sobie przez interesariuszy ich potrzeb. 2. Sformułowanie potrzeb. 3. Transformowanie potrzeb na wymagania względem systemu. 4. Zdobycie uzupełniających informacji potrzebnych do zrozumienia wymagań.

1. Uświadamianie potrzeb Interesariusz może nie czuć potrzeby wprowadzenia systemu, a jedynie kierować się odgórnymi nakazami czy trendami (fatalna sytuacja!). Interesariusz może być na tyle przyzwyczajony do dotychczasowego sposobu pracy, że nie potrafi zrozumieć zmian, które nastąpią po wprowadzeniu nowego systemu. Interesariusz prawie na pewno nie uświadamia sobie wszystkich swoich potrzeb. W przypadku, gdy Interesariusz jest urządzeniem lub systemem, jego wymagania może reprezentować osoba eksperta lub mogą być one zapisane w dokumentacji, do której trzeba dotrzeć.

2. Formułowanie potrzeb Interesariusz może mieć kłopoty z formułowaniem jasnych wypowiedzi. Interesariusz może być niechętny do formułowania pewnych potrzeb, gdyż może uznać je za słabość swoją lub swojej organizacji i wstydzić się tej słabości. Interesariusz może uznać pewne swoje potrzeby za oczywiste i nie zdawać sobie sprawy z tego, że ktoś inny może ich nie znać (fatalnie!).

3. Zamiana potrzeb na wymagania Nie każdą potrzebę jest w stanie zaspokoić system informatyczny. Niektórych potrzeb nie da się zaspokoić bez zmiany organizacji. Wymagania mogą być funkcjonalne, niefunkcjonalne i przejściowe. Istnieje konieczność klasyfikacji wymagań. Wymagania powinny określać, co system ma robić, a nie w jaki sposób ma to robić. Różne potrzeby mogą prowadzić do sprzecznych wymagań. Istnieje konieczność określenia priorytetów ważności wymagań.

4. Uzyskanie informacji potrzebnych do zrozumienia wymagań Informacje mogą być przechowywane w głowach pewnych osób, które mogą nie być zainteresowane w dzieleniu się nimi (bierny opór). Informacje mogą być zapisane w trudno dostępnej dokumentacji. Informacje mogą być niekompletne. Informacje mogą być sprzeczne. Informacje mogą być mylące.

Trudność fazy pozyskiwania wymagań (1) Klient z reguły nie wie dokładnie w jaki sposób osiągnąć założone cele. Cele klienta mogą być osiągnięte na wiele sposobów. Duże systemy są wykorzystywane przez wielu użytkowników. Ich cele są często sprzeczne. Różni użytkownicy mogą posługiwać się inną terminologią mówiąc o tych samych problemach.

Trudność fazy pozyskiwania wymagań (2) Zleceniodawcy, sponsorzy i użytkownicy to często inne osoby. Głos zleceniodawców może być w tej fazie decydujący, chociaż nie zawsze potrafią oni właściwie przewidzieć potrzeby przyszłych użytkowników. W większości organizacji związanych z produkcją i eksploatacją oprogramowania jakość procesów inżynierii wymagań jest bardzo niska. Znaczenie tej fazy jest umniejszane, bardzo szybko przechodzi się do faz związanych bezpośrednio z produkcją (projektowanie, implementacja)

Zagrożenia w procesie pozyskiwania wymagań Wymagania muszą być zbierane w procesie iteracyjnym aż do uzyskania pewności, że pozyskana lista wymagań jest kompletna i poprawnie sformułowana. W wielu sytuacjach proces ten jest przerywany (np. z powodu kosztów, upływających terminów) w wyniku czego specyfikacja wymagań nie jest wystarczająco precyzyjna.

Zagrożenia w procesie pozyskiwania wymagań Przyczyny uzyskania specyfikacji wymagań nie w pełni kompletnej: Brak przeznaczenia wystarczających zasobów na realizację tego procesu. Pozyskane wymagania wydają się pozornie prawdziwe, lecz nie przeprowadzono dostatecznej ich analizy oraz ich kompletności i poprawności. Wykonano jedynie jedną iterację, a zespół zbierający wymagania nie jest wystarczający świadomy tego, że ponowny kontakt z klientem może wnieść nowe informacje co do ostatecznej postaci systemu.