Analiza/Inżynieria wymagań Analiza/Inżynieria wymagań
Transkrypt
Analiza/Inżynieria wymagań Analiza/Inżynieria wymagań
Znaczenie inżynierii wymagań Analiza/Inżynieria wymagań 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 Co to są wymagania Podstawowe zasady Warto rozróżniać sformułowanie problemu od jego rozwiązania Pełna separacja nie jest możliwa – rozwiązanie zmienia oryginalny problem „In nearly every software project which fails to meet performance and cost goals, requirements inadequacies play a major and expensive role in project failure”, Alford and Lawson Development of requirements specification „in many cases seems trivial, but it is probably the part of the process which leads to more failures than any other”, Schwartz Engineering is the development of costeffective solutions to practical problems, through the application of scientific knowledge Źródła trudności 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 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ą terminologia mówiąc o tych samych problemach. Zleceniodawcy i użytkownicy to często inne osoby. 1 Problemy w zbieraniu wymagań Rozproszenie wiedzy dziedzinowej Niejawna wiedza Trudne obserwacje Nikt nie wie wszystkiego (co jest nam potrzebne) Cele przedsięwzięcia Wiem, ale nie umiem wytłumaczyć Czas Obserwator zmienia zachowanie Nie mogę powiedzieć Nie chcę powiedzieć Wzrost efektywności, spadek kosztów, rozszerzenie rynku, unikanie błędów Użytkownicy, nabywcy, różni partnerzy biznesowi mogą mieć różne cele Wykonawcy Ukierunkowanie (bias) Klienta, np. Biznesowe Techniczne Priorytety ! Rozwiązywany problem Cele warto też formułować w kategoriach rozwiązywania pewnych problemów Koszty są zbyt wysokie Jest zbyt wiele błędów Nie można tego zrobić w sposób tradycyjny Kontekst systemu Użytkownicy – role Istniejące oprogramowanie Specyficzny sprzęt Planner tras komunikacją miejską Użytkownicy Cele: szybko i wygodnie sprawdzić jak gdzieś dojechać, czy można/warto dojechać, o której wyjść Problemy: brak znajomości rozkładów, trudne planowanie trasy na podstawie rozkładów Planner tras komunikacją miejską Kontekst Systemy przewoźników Urządzeni z usługą lokalizacji Przewoźnicy Cel: pozyskać użytkowników Problem: użytkownicy nie wiedzą czy i jak skorzystać z komunikacji miejskiej 2 Internetowy system planowania wyjazdów (wycieczek) turystycznych Użytkownicy Indywidualni turyści Biura podróży Konsultanci – np. pracownicy biura informacji turystycznej Internetowy system planowania wyjazdów turystycznych Klienci Nabywcy – operatorzy instancji systemu Problem: planowanie wycieczki jest żmudne, a efekty często niezadowalające Cele: wygodne, szybkie planowanie udanych wyjazdów turystycznych Edytorzy Administratorzy Partnerzy biznesowi nabywców – pośredni użytkownicy – właściciele atrakcji turystycznych, hotele, przewoźnicy, operatorzy systemów rezerwacji, biura podróży, biura promocji turystyki Internetowy system planowania wyjazdów turystycznych Kontekst (poza użytkownikami) Użytkownicy Istniejący system optymalizacji wycieczek Istniejące systemy rezerwacji hoteli i biletów Istniejące systemy promocji turystyki Zleceniodawcy przewozów (to mogą być te same firmy) Elektroniczny rynek usług transportowych Administratorzy Siły i słabości wewnątrz organizacji: Cele: osiągnięcie zysku – zdobycie wielu klientów Kontekst istniejące systemy informatyczne przewoźników i zleceniodawców Problemy: nieprzewidywalność zleceń - nadmiar lub brak zleceń Cele: zdobycie opłacalnych zleceń zapewniających dobre wykorzystanie zasobów Analiza SWOT Problemy: wysokie koszty realizacji jednorazowych, zwłaszcza niewielkich zleceń, trudność znalezienia przewoźnika Cele: obniżenie kosztów, zapewnienie wysokiej jakości realizacji zleceń Firmy przewozowe Klienci – operatorzy systemu (wirtualna firma transportowa) Cel: uzyskanie klientów dla swoich usług Elektroniczny rynek usług transportowych Cele: osiągnięcie zysku, zdobycie dużej liczby użytkowników i partnerów biznesowych Strengths – silne strony Weaknesses – słabe strony Czynniki zewnętrzne Opportunities – szanse Threats – zagrożenia – zewnętrzne ryzyka 3 SWOT - Elektroniczny rynek usług transportowych Strengths Weaknesses •Dobra znajomość i kontakty na rynku przewoźników •Sprawność w zakresie wytwarzania oprogramowania •Słaba znajomość rynku zleceniodawców •Brak doświadczenia na rynku pośrednictwa w zakresie przewozów Opportunities Threats •Rosnąca konkurencja na rynku przewozów •Duże rozdrobnienie rynku przewoźników •Postępująca informatyzacja zleceniodawców i przewoźników •Konkurencyjne systemy ogłoszeniowe •Niezbędny efekt skali •Potrzebna integracja z dużą liczbą różnych systemów informatycznych Określanie wymagań Współpraca klienta i wykonawcy ! Źródła: Wywiady z przedstawicielami klienta materiałów dostarczonych przez klienta, przepisów prawnych Porównanie z innymi systemami Analiza Techniki zbierania wymagań Tradycyjne Introspekcja Analiza istniejących dokumentów Analiza danych Wywiady Otwarte Ustruktaralizowane Ankiety Spotkania Kognitywne Analiza zadań Techniki zbierania wiedzy Kontekstowe Techniki etnograficzne Analiza dyskusji Socjotechniczne Techniki grupowe (np. burze mózgów) JAD/RAD Prototypowanie Participatory design Zalety Duża ilość informacji Możliwość głębokiej analizy – kontynuacja ciekawych wątków Wady Soft systems analysis Zespołowe Wywiady Dużo nieuporządkowanych informacji jakościowych Trudne porównywanie odpowiedzi różnych osób Wymaga umiejętności i doświadczenia Uważaj na: Wiedzę niejawną Brak kontekstu Nastawienie rozmówcy Wskazówki dotyczące wywiadów Początek Umieść urządzenie w widocznym miejscu Powiedz, że rozmówca może zawsze wyłączyć nagrywanie Zacznij od łatwych pytań Kontynuuj interesujące wątki Zostaw otwarte pytania na koniec Zalety Pogoda, fotografia na biurku Zapytaj czy możesz nagrywać rozmowę Zacznij od ogólnych uwag rozluźniających atmosferę Ankiety Szybkie źródło dużych ilości informacji Mogą być zbierane zdalnie Dostarczają informacji o nastawieniu, przekonaniach, charakterystykach Wady Uważaj na Ograniczone, uproszczone Dobór próby ankietowanych Małe próby Otwarte pytania – trudne do analizy Pytania sugerujące odpowiedź „Czy chciałby Pan coś jeszcze dodać?” Ankietę należy prototypować i testować 4 Techniki grupowe Zalety Wady Bardziej naturalne niż formalne wywiady Wykorzystanie dodatkowych pomocy (tablica…) Sztuczne grupy Myślenie grupowe Wymaga dobrego moderatora Uważaj na Zły dobór grupy Zależności (służbowe) pomiędzy uczestnikami Diagramy przypadków użycia – use case diagrams Rodzaje wymagań Wymagania funkcjonalne – funkcje wspomagane przez oprogramowania przypadki użycia (use (use cases) cases) Wymagania niefunkcjonalne – ograniczenia Diagramy przypadków użycia – use case diagrams Użytkownik, klasa użytkowników, system zewnętrzny (ang. (ang. actor) actor) Grupa użytkowników wykorzystujących system w podobny sposób Korzystanie z funkcji (ang. (ang. actor flow) flow) Przypadek użycia, wymaganie funkcjonalne, funckja (ang. (ang. use case) case) Związki używania (use) i rozszerzania (extend) Przykład i związek generalizacji (generalization) Uzywane sporadycznie, podczas dodawania pojazdu, jezeli nie ma jeszcze danej kategorii Dodawanie kategorii pojazdow «extend» Uzytkownik Przewoznik Wydawanie opinii Zleceniodawca «use» Edycja pojazdów Dodawanie pojazdu Zarzadzanie pojazdami Optymalizacja Zarzadzanie uzytkownikami Zarzadzanie ladunkami «use» Przewoznik «use» Usuwanie pojazdow Edycja pojazdu Administrator 5 Hierarchia wymagań funkcjonalnych Przykład: Sposoby poszukiwania wymagań funkcjonalnych Z góry na dół Z dołu do góry Podejście mieszane Ewidencja klientów Dodawanie klienta Edycja danych klienta Usuwanie klienta Wyszukiwanie klientów Wyszukiwanie proste Wyszukiwanie złożone Wykorzystanie hierarchii wymagań Wykorzystanie informacji o rolach użytkowników Śledzenie procesów biznesowych Analiza scenariuszy Z góry na dół Z dołu do góry Metoda mieszana Wykorzystanie informacji o rolach użytkowników f4 f2 Kierownik Ksiegowy f1 f3 f6 f5 f7 f8 f9 Kasjer Magazynier 6 Cechy Zalety Śledzenie procesów biznesowych System może być stosunkowo prosty z punktu widzenia większości użytkowników Wady Punkty widzenia użytkowników mogą być niespójne Potrzeba integracji f1 f4 f6 U1 f2 U2 f7 U3 f3 f5 f8 Business process modeling notation - BPMN Wejście Wyjście (wynik) Cele Zadania Proces biznesowy – proces, którego wynik ma wartość biznesową Proces obsługi klienta półpółhurtowego Śledzenie procesów biznesowych Proces zbiór czynności wykonywanych przez różne osoby i działy organizacji scharakteryzowany przez: 1. Dział sprzedaży – wybór produktów, sformułowanie zamówienia połączone z weryfikacją dostępności produktów 2. Magazyn – ponowna weryfikacja, skompletowanie zamówienia 3. Księgowość – wystawienie faktury, rozliczenie finansowe 4. Magazyn – wydanie towarów BPMN przykład Standard OMG De facto standard przemysłowy © 1997-2007 Andrzej Jaszkiewicz. Wyłącznie dla użytku studentów Politechniki Poznańskiej, kierunek Informatyka © 1997-2007 Andrzej Jaszkiewicz. Wyłącznie dla użytku studentów Politechniki Poznańskiej, kierunek Informatyka 7 Analiza scenariuszy Analiza scenariuszy - przykład Scenariusz – słowny opis przykładowego sposobu (scenariusza) korzystania z systemu Z reguły obejmuje wiele funkcji Analiza scenariuszy – przykład c. d. Użytkownik podaje podstawowe informacje o planowanym wyjeździe. Chce odwiedzić Polskę, spędzić tam tydzień, wjedzie i wyjedzie od strony Czech. Interesują go ciekawe miasta, wykopaliska archeologiczne i wydarzenia muzyczne (muzyka klasyczna). Określa ograniczenia finansowe. System generuje proponowany plan podróży biorąc pod uwagę podane preferencje i ograniczenia. Analiza scenariuszy – przykład c. d. Użytkownik może szczegółowo przeglądać proponowaną trasę korzystając m. in. z prezentacji multimedialnych System proponuje użytkownikowi potencjalne modyfikacje trasy, biorąc pod uwagę położenie geograficzne poszczególnych atrakcji oraz wybory innych użytkowników o podobnych preferencjach Użytkownik modyfikuje trasę dodając do niej wizytę w Biskupinie i rezygnując z wizyty w Gnieźnie Użytkownik akceptuje trasę i otrzymuje jej szczegółowy opis (wydruk, plik) Użytkownik wybiera funkcję rezerwacji hoteli. Po dokonaniu niewielkiej opłaty system współpracując z zewnętrznym systemem rezerwacji hotelowej dokonuje odpowiednich rezerwacji Funkcje wynikające ze scenariusza Definiowanie ograniczeń i preferencji Generowanie planu podróży Przeglądanie trasy Wizualizacja geograficzna Prezentacja harmonogramu trasy Multimedialne prezentacje atrakcji Generowanie i prezentacja proponowanych zmian Funkcje wynikające ze scenariusza Modyfikowanie trasy Akceptowanie trasy Przygotowanie szczegółowego opisu trasy Rezerwacja hoteli Pobieranie opłaty Rezerwacja hotelu 8 Funkcje wynikające ze scenariusza Analiza scenariuszy Użytkownik wchodzi na naszą stronę i ponieważ korzystał z niej już wcześniej wybiera od razu opcję wyszukiwania. wyszukiwania. Najpierw określa kraj, który go interesuje – Szwajcaria, a następnie miasto – Zurich Zurich.. Użytkownik wybiera rodzaj oferty turystycznej – narty. narty. Ponieważ uprawianie narciarstwa w samym Zurichu nie jest możliwe otrzymuje listę kilku pobliskich stacji narciarskich. narciarskich. Użytkownik zapoznaje się z informacjami o kilku stacjach narciarskich – trasy, wyciągi, ceny, możliwość wypożyczenia sprzętu oraz aktualne warunki śniegowe. śniegowe. Użytkownik sprawdza możliwość dojazdu z Zurichu do stacji narciarskiej Flumsberg Flumsberg.. Sprawdza też możliwości zakwaterowania w (pobliżu) Flumsbergu.. Ostatecznie dokonuje rezerwacji biletu rail&ski i Flumsbergu pokoju w pensjonacie we Flumsbergu. Flumsbergu. Wybór obszaru zainteresowania Wybór rodzaju oferty turystycznej Przeglądanie ofert stacji narciarskich Wyszukiwanie możliwości dojazdu Wyszukiwanie możliwości zakwaterowania Rezerwacja Do magazynu zgłasza się klient, który złożył zamówienie w dziale sprzedaży. Klient podaje numer zamówienia, lub inną informację identyfikującą klienta. Magazynier odszukuje zamówienie w systemie i weryfikuje czy zamówiony towar został już zablokowany dla potrzeb klienta. Jeżeli tak, to potwierdza przyjęcie zamówienia do realizacji i prosi klienta o przejście do księgowości. Magazynier otrzymuje listę towarów do wydania wraz z ich lokalizacjami. Po skompletowaniu zamówienia potwierdza ten fakt w systemie. Po wydaniu towaru klientowi potwierdza ten fakt w systemie. Zalety Naturalne dla użytkowników Przydatne w wyjaśnianiu znaczenia systemu/funkcji Podstawa testów akceptacyjnych i dokumentacji użytkowej Realizacja zamówienia Identyfikacja zamówienia Weryfikacja zablokowania towaru Potwierdzenie przyjęcia zamówienia do realizacji Potwierdzenie skompletowania zamówienia Potwierdzenie wydania towaru Cechy Rezerwacja biletów Rezerwacja miejsc noclegowych Funkcje wynikające ze scenariusza Analiza scenariuszy Wybór kraju Wybór miasta Specyfikacja wymagań Język naturalny – 79% Metody formalne – 5% Formularze – 16% Wady Niepełne Niespójne 9 Elementy specyfikacji wymagań Nazwa Opis Dane wejściowe i ich źródła Wynik Warunki początkowe i końcowe Efekty uboczne Wyjątki Priorytet Źródło wymagania Wymagania powiązane Uzasadnienie Wymagania niefunkcjonalne Ograniczenia dotyczące Produktu Procesu Współpracy z systemami zewnętrznymi Problem specyfikacji wymagań niefunkcjonalnych w sposób weryfikowalny Specyfikacja wymagań niefunkcjonalnych w sposób weryfikowalny Wydajność Ostrzezenie Wykonanie tej operacji spowoduje utrate wszystkich wyników obliczen. Czy chcesz kontynuowac? Rozmiar Liczba transakcji obsłużonych w ciągu sekundy Czas odpowiedzi Szybkość odświeżania ekranu Wymagana pamięć RAM Wymagana pamięć dyskowa Łatwość użytkowania Nie Specyfikacja wymagań niefunkcjonalnych w sposób weryfikowalny Niezawodność Prawdopodobieństwo błędnego wykonania podczas realizacji transakcji Częstotliwość występowania błędnych wykonań Średni czas pomiędzy błędnymi wykonaniami Dostępność (procent czasu, w którym system jest dostępny) Odporność (ang. robustness) Czas restartu po awarii systemu Prawdopodobieństwo zniszczenia danych w przypadku awarii Przenośność Tak Czas niezbędny dla przeszkolenia użytkowników Liczba stron dokumentacji Zgodność ze standardami Procent kodu zależnego od platformy docelowej Liczba platform docelowych Koszt przeniesienia na nową platformę Zestaw praktyk Sommerville’a, Sawyera Dokument opisujący wymagania Zbieranie wymagań (requirements (requirements elicitation) elicitation) Analiza i negocjowanie wymagań Opis wymagań Modelowanie systemu Atestowanie wymagań (requirements (requirements validation) validation) Zarządzanie wymaganiami 10 Dokument opisujący wymagania - praktyki Ustandaryzuj strukturę dokumentu Wyjaśnij jak korzystać z dokumentu Dodaj podsumowanie wymagań Uzasadnij wartość biznesową systemu Zdefiniuj specjalistyczne terminy Zorganizuj dokument w czytelny sposób Pomóż czytelnikom znaleźć informacje Uczyń dokument łatwym z zmianach Ustandaryzuj strukturę dokumentu Lepsza czytelność Pomoc w opracowywaniu dokumentu Możliwość automatyzacji Struktura wg. IEEE/ANSI 8308301993 1. Introduction Dołącz sekcję „jak korzystać z dokumentu” Przede wszystkim w jaki sposób powinni z niego korzystać różni czytelnicy – użytkownicy, analitycy, wykonawcy, kierownicy 2.1 Product perspective 2.2 Product functions 2.3 User charactristics 2.4 General characteristics 2.5 Assumptions and dependencies 3. Specific requirement Appendices Index Uzasadnij wartość biznesową systemu Dodaj podsumowanie wymagań Standard powinien dopuszczać różne warianty Wyjaśnij jak korzystać z dokumentu 2. General description 1.1 Purpose of the requirements document 1.2 Scope of the product 1.3 Definitions, acronyms, abbreviations 1.4 References 1.5 Overview of the reminder of the document Zalety: Sekcja „Overview” – cel, założenia główne wymagania Odpowiednia sekcja w dokumencie 11 Zdefiniuj specjalistyczne terminy Np. sekcja „glossary” Zorganizuj dokument w czytelny sposób Także terminy używane w ramach dokumentu w zawężonym, specyficznym znaczeniu Dokument opisujący wymagania jest często czytany Ogólne zasady czytelności tekstu Np. printer Pomóż czytelnikom znaleźć informacje Indeks Czytelna organizacja Najlepsza forma elektroniczna - wyszukiwanie Zbieranie wymagań (requirements elicitation) - praktyki Oceń wykonalność systemu Weź pod uwagę względy organizacyjne i polityczne Zidentyfikuj i skonsultuj zainteresowane strony Zapisuj źródła wymagań Zdefiniuj środowisko pracy Kieruj procesem poszukiwania wymagań biorąc pod uwagę względy biznesowe Szukaj ograniczeń dziedzinowych Krótkie akapity Krótkie zdania Podział na sekcje Wyróżniki, wyliczenia Wykorzystanie prostych diagramów – wraz z dobrymi wyjaśnieniami Uczyń dokument łatwym z zmianach Wymagania będą się zmieniać Łatwiejsze w formie elektronicznej Zbieranie wymagań (requirements elicitation) - praktyki Zapisuj uzasadnienia wymagań Zbieraj wymagania z różnych punktów widzenia Prototypuj źle rozumiane wymagania Używaj scenariuszy do zbierania wymagań Zdefiniuj procesy, w których będzie wykorzystywany system Ponownie wykorzystuj wymagania 12 Weź pod uwagę względy organizacyjne i polityczne Oceń wykonalność systemu Studium wykonalności powinno zawsze poprzedzać intensywniejsze inwestycje w pracę nad systemem, w tym zbieranie szczegółowych wymagań Zarówno kwestie techniczne, jak i biznesowe Lęk przed utratą wpływów/pracy Konfliktowe cele Kultura współzawodnictwa Różne sposoby pracy Zidentyfikuj i skonsultuj zainteresowane strony Zainteresowane strony (stakeholders): Użytkownicy końcowi (różne klasy) Zarząd Klienci Wykonawcy Administratorzy Ciała zewnętrzne – urzędy, organizacje certyfikujące Zalety Pełniejszy zestaw wymagań Przekonanie do systemu wszystkich zainteresowanych stron Zapisuj źródła wymagań Platforma sprzętowa i programowa Interfejsy z innymi systemami Zależność od innych programów (np. założenie, że użytkownik ma dostęp do maila nawet jeżeli nasz system nie łączy się z nim bezpośrednio) ... , np. rozmieszczenie fizyczne Należy brać pod uwagę zmiany środowiska Osoba, grupa organizacja, od której pochodzi wymaganie Inne źródła – standardy, dokumenty, raporty W wielu wypadkach niezbędne okazuje się wyjaśnienie wątpliwości dotyczących wymagań Czasem sama informacja o źródle wyjaśnia te wątpliwości Kieruj procesem poszukiwania wymagań biorąc pod uwagę względy biznesowe Zdefiniuj środowisko pracy Czynniki organizacyjne i polityczne (często niejawne) mogą wpływać (np. utrudniać) proces zbierania wymagań Względy biznesowe (business concerns) concerns) ogólne biznesowe cele klienta Użyteczny system musi wspomagać realizację biznesowych celów klienta Wpływają na priorytet celów szczegółowych i wymagań 13 Szukaj ograniczeń dziedzinowych Ograniczenia, które występują obiektywnie (niezależnie od naszego systemu) w dziedzinie problemu Np. ograniczenia związane z bankowością, podatkami, itd. Zapisuj uzasadnienia wymagań Generują wymagania niefunkcjonalne Wykazanie zgodności z tymi wymaganiami może być niezbędne do wdrożenia systemu Zbieraj wymagania z różnych punktów widzenia Powinno być specyfikowane przez osobę (grupę) będąca źródłem wymagań Ułatwia zrozumienie wymagań Ułatwia nadawanie priorytetów Punkty widzenia (i zbiory wymagań) zainteresowanych strony, w tym różnych klas użytkowników Zalety Ułatwia proces zbierania wymagań Zapewnia pełniejszy obraz systemu Ułatwia nadawanie priorytetów – wymagania istotne dla wielu stron są z reguły ważniejsze Rodzaje punktów widzenia Interaktorów (interactors (interactors)) – użytkownicy, inne systemy Zainteresowanych stron nie będących bezpośrednimi użytkownikami Dziedziny problemu – wymagania wynikające z samej dziedziny problemu, a nie pochodzące od konkretnych osób lub organizacji Prototypuj źle rozumiane wymagania Ułatwia zrozumienie (efektu) wymagań Bardzo efektywne w przypadku wymagań związanych z interfejsem użytkownika Czasami pozwala zaniechać realizacji niepotrzebnego/niewykonalnego systemu Czasami prototyp może mieć dodatkowe zastosowania: Może być w jakimś stopniu wykorzystywany przez użytkownika Może zostać częściowo wykorzystany w pełnym systemie (choć z założenia jest porzucany) Może służyć do szkoleń, dalszych demonstracji Bardzo ważna jest krosowe sprawdzenie (cross (cross checking) checking) wymagań i ich integracja Techniki prototypowania Cel – szybko, tanio osiągnąć cel prototypowania Papier Czarodziej z Oz Programowanie Nie wszystkie wymagania można prototypować – np. efektywność, niezawodność 14 Używaj scenariuszy do zbierania wymagań Opis scenariusza Stosunkowo łatwe dla użytkownika Pozwala odkryć nowe wymagania Ma wiele zalet podobnych do prototypowania Z reguły nie opisują systemu w pełni Większe systemy mogą wymagać dużej liczby scenariuszy – kilkadziesiąt, kilkaset Stan systemu przed rozpoczęciem scenariusza Normalny przebieg wydarzeń Możliwe wyjątki Informacje o innych czynnościach, które mogą zachodzić w tym samym czasie Opis systemu po zakończeniu scenariusza Zwykle 33-4 strony + tabele, rysunki Często pewne części scenariuszy mogą być ponownie wykorzystane Zdefiniuj procesy, w których będzie wykorzystywany system Przeznaczenie systemu można często opisać jako wspomaganie jednego lub wielu procesów biznesowych Pozwala zidentyfikować: Role użytkowników i zainteresowanych stron Ponownie wykorzystuj wymagania W podobnych systemach nawet 80% wymagań może być ponownie wykorzystane Zalety Redukcja kosztów Redukcja ryzyka Może prowadzić do ponownego wykorzystania modelu, projektu, kodu i testów Procesy często będą już opisane: Modele biznesowe Modele dla systemów workflow Procesy są często bardzo skomplikowane, ich tworzenie od podstaw może być bardzo kosztowne Sposoby wykorzystania wymagań Bezpośredni – przeniesienie wymagań Analiza i negocjowanie wymagań Często niemożliwe Kwestia praw do wymagań Pośredni – wykorzystanie w procesie zbierania wymagań Np. poddanie krytyce istniejących wymagań dla podobnego systemu Cel – ustalenie kompletnego, niesprzecznego zbioru wymagań akceptowanego przez wszystkie zainteresowane strony Wykrycie brakujących wymagań Wykrycie konfliktowych wymagań Wykrycie niejasnych wymagań Wykrycie wymagań zachodzących na siebie Wykrycie nierealistycznych wymagań Analiza i negocjowanie przeplata się ze zbieraniem wymagań 15 Analiza i negocjowanie wymagań Zdefiniuj granice systemu Wykorzystaj listę kontrolną do analizy wymagań Wykorzystaj narzędzia wspomagające negocjacje Planując weź pod uwagę konflikty i ich rozwiązywanie Określ priorytety wymagań Stwórz wielowymiarową klasyfikację wymagań Wykorzystaj tablice interakcji (interaction (interaction matrices) matrices) do znalezienia konfliktów i nakładających się wymagań Oceń ryzyko wymagań Zdefiniuj granice systemu Przykłady wymagań spoza granic systemu Wymagania związane z podejmowaniem decyzji trudnych do zamodelowania Wymagania wymagające informacje niedostępnych systemowi Wymagania nieistotne z punktu widzenia głównych celów systemu Wymagania dotyczą funkcjonalności lub ograniczeń wobec zewnętrznych programów lub sprzętu Część wstępnie określonych wymagań może nie dotyczyć systemu lecz jego otoczenia Granice systemu powinny być określone już na podstawie ogólnych wymagań Wykorzystaj listę kontrolną do analizy wymagań Zestaw punktów/pytań, pod kątem których analizowane jest każde wymaganie Około 10 punktów Nie jest (pełną) weryfikacją jakości Ryzyko zbytniego skupienia się na liście i niedostrzegania innych problemów Wykorzystaj narzędzia wspomagające negocjacje Przykładowa lista Czy wymaganie wprowadza zbyt szybkich założeń co do projektu? Czy wymaganie nie powinno być rozbite na kilka oddzielnych? Czy wymaganie jest potrzebne? Czy wymaganie wymaga niestandardowego sprzętu? Czy wymaganie jest zrozumiałe/jednoznaczne? Czy wymaganie jest realistyczne? Czy wymaganie jest weryfikowalne/testowalne? Podstawowe narzędzia – e-mail, komunikatory, listy dyskusyjne, programy konferencyjne Zaawansowane – wspierające negocjacje – raczej etap badawczy Zalety Redukcja kosztu Redukcja barier osobowych Szybkie wyjaśnienie prostych wątpliwości 16 Planując weź pod uwagę konflikty i ich rozwiązywanie Określ priorytety wymagań Poważne wątpliwości i konflikty powinny być rozwiązywane podczas poświęconych temu spotkań Pojawienie się konfliktów nie jest błędem lecz sytuacja typową Wspomaga wybór wymagań do realizacji Ułatwia rozwiązywanie konfliktów Ułatwia projektowanie Priorytety powinny być nadawane wtedy, kiedy znany jest w miarę kompletny zestaw wymagań Różne zainteresowane strony mogą inaczej widzieć priorytety wymagań Stwórz wielowymiarową klasyfikację wymagań Określ priorytety wymagań Niewielka liczba klas, np.: Niezbędne Użyteczne Przydatne Wykrycie związków pomiędzy wymaganiami, w tym sprzeczności i nakładania się Ułatwia śledzenie (traceability (traceability)) wymagań i wprowadzanie zmian Ułatwia wykrycie brakujących wymagań Przydatne pytania: Co jeżeli implementacja tego wymagania podwoi koszty systemu? Co jeżeli implementacja tego wymagania uniemożliwi realizacja wymagania XYZ? Przykładowe klasy Systemowe – wydajność, niezawodność Interfejs użytkownika Baza danych Komunikacja (z zewnętrznymi systemami) Bezpieczeństwo Zalety: Wykorzystaj tablice interakcji (interaction matrices) do znalezienia konfliktów i nakładających się wymagań Może być trudne dla dużej liczby wymagań 17 Oceń ryzyko wymagań Dla każdego wymagania lub grupy wymagań: Potencjalne problemy Prawdopodobieństwo ich wystąpienia Możliwe efekty Pozwala przewidzieć problemy jakie mogą się pojawić w trakcie realizacji systemu Często prowadzi do wykrycia źle, np. niekompletnie opisanych wymagań Przykłady ryzyk Wydajność Bezpieczeństwo Ochrona Proces – konieczność zmian w procesie wytwarzania oprogramowania Technologia realizacji Baza danych – np. duże, niestrukturalne zbiory danych Harmonogram Ryzyka zewnętrzne – np. konieczność współpracy z zewnętrznymi kooperantami Stabilność/zmienność Zdefiniuj szablony dla opisu wymagań Opis wymagań - praktyki Zdefiniuj szablony dla opisu wymagań Pisz prosto, spójnie i krótko Używaj diagramów w miarę potrzeb Uzupełniaj opis słowny dodatkowymi formami opisu Specyfikuj wymagania w sposób ilościowy Zalety Ułatwiają zbieranie informacji – służą jako lista kontrolna Zwiększają przejrzystość opisu Usprawniają proces opisywania wymagań – skracają czas, zmniejszają liczbę błędów Wymagania są czytane częściej niż pisane Pisz prosto, spójnie i krótko Zalecenia Skraca czas czytania Zwiększa zbiór odbiorców wymagania Krótkie zdania Nigdy nie zamieszczać więcej niż jednego wymagania w jednym zdaniu Unikać: Unikać specjalistycznego żargonu Krótkie akapity Listy, tabele Spójne użycie terminologii Wyraźne rozróżnianie tego co konieczne od tego co pożądane Długich, złożonych zdań Długich akapitów Skomplikowanej terminologii System ma ... i ... Np. CASE w zarządzaniu to studium przypadku 18 Używaj diagramów w miarę potrzeb Zalecenia Unikaj zagnieżdżonych wyrażeń warunkowych Unikaj opisu skomplikowanych zaleźności w języku naturalnym – stosuj np. diagramy Forma aktywna Unikaj anonimowych odwołań do innych sekcji dokumentu, innych wymagań, rysunków, tabel I oczywiście dbaj o poprawność Przykłady Tablice decyzyjne Kod, pseudokod Zapis algebraiczny Diagramy przepływu danych Wykresy Gantt’a UML Notacje stosowane w ramach dziedziny problemu Z reguły należy unikać stosowania specjalistycznych notacji Ostrożne używanie kolorów i ikon Diagramy są bardzo przydatne w prezentacjach dla klienta Dotyczy zwłaszcza wymagań niefunkcjonalnych Ważną sprawą jest dobór odpowiednich metryk Większa precyzja Mniej błędów w zapisie i interpretacji Modelowanie systemu Specyfikuj wymagania w sposób ilościowy Zalety: Strukturę Zależności Sekwencje, np. zdarzeń, zadań Wykresy pokazujące zależności liczbowe Uzupełniaj! opis słowny dodatkowymi formami opisu Diagramy ilustrujące Np. jeżeli X, to jeżeli Y to R1a, w przeciwnym wypadku jeżeli Z, to R1b, a w przeciwnym wypadku R1c (kiedy R1c?) Jeżeli jest to niezbędne lepiej zastosować inny zapis niż język naturalny – formalizm matematyczny, diagram Zbuduj model systemu Zamodeluj otoczenie systemu Zamodeluj architekturę systemu Wykorzystuj metodykę modelowania Wykorzystuj słownik danych Dokumentuj powiązania pomiedzy wymaganiami a elementami modelu Atestowanie wymagań (requirements validation) - praktyki Zweryfikuj czy dokument wymagań jest zgodny ze standardami Zorganizuj formalne przeglądy wymagań Używaj specjalistów z różnych dziedzin do przeglądów wymagań Zdefiniuj listy kontrolne atestowania Używaj prototypów do animacji wymagań Napisz draft podręcznika użytkownika Zaproponuj przypadki testowe Opisz słownie model systemu 19 Cele Analiza dotyczy roboczych wersji wymagań Atestowanie dotyczy prawie gotowego dokumentu (final (final draft) draft) Zweryfikuj czy dokument wymagań jest zgodny ze standardami Szybkie sprawdzenie poprzedzające ogólny przegląd – jedna osoba Ułatwia i skraca czas ogólnego przeglądu Nie istnieje obiektywna informacja, względem której można weryfikować wymagania Zorganizuj formalne przeglądy wymagań Formalne przeglądy techniczne dotyczące wymagań W odróżnieniu od innych przeglądów technicznych często obejmują dyskusję nad rozwiązaniem problemów Typowe problemy: Niejasności Brakujące informacje Konflikty Nierealistyczne wymagania Używaj specjalistów z różnych dziedzin do przeglądów wymagań 40 wymagań / h ? Zdefiniuj listy kontrolne atestowania Użytkownicy Przedstawiciele klienta Eksperci dziedzinowi Inżynierowie Pozwalają skupić uwagę recenzentów na najważniejszych sprawach Wprowadzają strukturę do procesu oceny Wspomagają naukę osób początkujących Elementy listy kontrolnej Czy wymagania są kompletne (jako całość, cała grupa)? Czy wymagania są spójne, zgodne? Czy wymagania są zrozumiałe? Czy wymagania są niejednoznaczne? Czy opis wymagań ma odpowiednią strukturę (np. powiązania, grupowanie)? Czy można śledzić powiązania? Czy opis poszczególnych wymagań i cały dokument jest zgodny ze standardami? 20 Używaj prototypów do animacji wymagań Eksperymentalne sprawdzenie wymagań Atestowanie wymaga pełniejszego prototypu niż analiza. Powinien obejmować wszystkie wymagania Użytkownicy powinni pracować samodzielnie Odpowiedni dobór użytkowników Wskazówki dotyczące oceny, np. raport błędów Napisz draft podręcznika użytkownika Wymusza dokładną analizę wymagań Przydatne dla osób oceniających prototyp Podstawa ostatecznej dokumentacji użytkowej Zaproponuj przypadki testowe Dla każdego wymagania zaproponuj jeden lub kilka testów Zalety Ułatwia wykrycie problemów. Trudność w zaproponowaniu przypadków testowych często wynika z problemów z samymi wymaganiami. Podstawa przyszłych testów systemu. Jakie scenariusze mogą być przydatne przy opracowywaniu testów? Czy opis danego wymagania zawiera wystarczające informacje do opracowania testów? Może wskazywać na istotne powiązania pomiędzy wymaganiami. Czy potrzebnych jest jeden czy wiele testów? Czy możne zreformułować wymaganie, aby ułatwić jego testowanie. Zarządzanie wymaganiami (requirements management) - praktyki Opisz słownie model systemu Notacje graficzne, np. UML nie są zrozumiałe dla większości zaangażowanych stron – użytkowników, ekspertów dziedzinowych Nie zastępuje dokumentu wymagań Pytania Zalety Jednoznacznie zidentyfikuj każde wymaganie Zdefiniuj zasady (policy (policy)) zarządzania wymaganiami Zdefiniuj zasady śledzenia powiązań (traceability (traceability)) Utrzymuj podręcznik śledzenia powiązań (traceability (traceability manual)) manual Korzystaj z bazy danych wymagań Zdefiniuj zasady modyfikowania wymagań Zidentyfikuj globalne wymagania systemu Zidentyfikuj wymagania zmienne (volatile (volatile)) Zachowuj odrzucone wymagania 21 Zarządzanie wymaganiami Główne zagadnienia Jednoznacznie zidentyfikuj każde wymaganie Zarządzanie zmianami Błędy, nieporozumienia, zmiany w otoczeniu Zarządzanie powiązań pomiędzy wymaganiami Zarządzanie powiązań pomiędzy wymaganiami a innymi artefaktami przedsięwzięcia Zapewnienie realizacji wymagań Ocena kosztów proponowanych zmian Zdefiniuj zasady (policy) zarządzania wymaganiami Cele zarządzania wymaganiami Standardy i procedury postępowania Część systemu zapewniania jakości firmy Zasady (policy (policy)) mówią co należy zrobić, standardy i procedury mówią jak to zrobić w konkretnych sytuacjach Zdefiniuj zasady śledzenia powiązań (traceability) Przykłady powiązań: Wymagania- źródła WymaganiaWymagania – uzasadnienia Wymagania – wymagania Wymagania – składowe architektury Wymagania – składowe projektu Wymagania – interfejsy (do zewnętrznych systemów) Naturalne w systemach elektronicznych Elementy zasad zarządzania wymaganiami Niezbędne przy wprowadzaniu powiązań pomiędzy wymaganiami Pozwala śledzić wymagania, których opis się zmienił Cele i ich uzasadnienie Niezbędne raporty Niezbędne standardy Zasady zarządzania zmianami i kontroli realizacji wymagań Zasady przeglądów i atestowania wymagań Powiązania pomiędzy zasadami zarządzania wymaganiami a innymi obszarami zarządzania Zasady śledzenia powiązań Warunki, w których te zasady mogą zostać zaniechane Przykładowe typy powiązań Wymaga Jest wymagany przez Specyfikuje 22 Utrzymuj podręcznik śledzenia powiązań (traceability manual) Zasady śledzenia powiązań Jakie powiązania powinny być zapamietywane? Jak je reprezentować? Kiedy wprowadzać powiązania? Sytuacje wyjątkowe – możliwość zaniechania zasad Specyficzne czynniki dotyczące projektu brane pod uwagę Liczba wymagań Szacowany czas budowy i ewolucji systemu Poziom dojrzałości organizacji Rozmiar i skład zespołu Typ systemu Zasady proponowania, oceny, przeglądów i wprowadzania zmian Główne zalety: całościowa ocena wpływu zmian – lepsza kontrola kosztów możliwość śledzenia ewolucji wymagań możliwość proponowania zmian przez wszystkie zainteresowane strony Najlepiej, jeżeli jest dostępny ogólnie w formie elektronicznej Korzystaj z bazy danych wymagań Ogólnie korzystanie z narzędzi wspomagających zarządzanie wymaganiami Zalety: łatwiejsze przechowywanie powiązań pomiędzy wymaganiami oraz pomiędzy wymaganiami i innymi artefaktami praca równoległa przetwarzanie, np. raporty Zdefiniuj zasady modyfikowania wymagań Dodatek do dokumentu wymagań Specyficzne zasady śledzenia powiązań obowiązujące w danym projekcie Zidentyfikuj globalne wymagania systemu Wymagania globalne: definiują pożądane lub niezbędne wymagania wobec całego systemu nie dotyczą poszczególnych fragmentów systemu Zmiany w wymaganiach globalnych mogą być bardzo trudne/kosztowne do wprowadzenia. Wymagają w związku z tym szczególnej uwagi. 23 Identyfikacja wymagań globalnych Czy jest wyrażone w bardzo ogólny sposób? np. dane w bazie danych muszą zawsze pozostawać poprawne Identyfikacja wymagań globalnych Czy wyraża ogólną, niefunkcjonalną własność systemu? Czy jest to ogólne wymaganie dotyczące interfejsu użytkownika? Odpowiedzi „tak” wskazują na wymagania globalne system musi obsługiwać N transakcji na sekundę Zidentyfikuj wymagania zmienne (volatile) Należy identyfikować i w miarę możliwości przewidywać zmienne wymagania Zalety: zmienność wymagań można uwzględnić projektując system zmienność tych wymagań można uwzględnić w planie przedsięwzięcia Odpowiedzi „nie” wskazują na wymagania globalne Rodzaje zmiennych wymagań Czy wymaganie dotyczy konkretne funkcji/usługi systemu? Czy wymaganie można powiązać z konkretnym fragmentem systemu? Czy wymaganie można powiązać z konkretnymi danymi w systemie? Mutujące (mutable (mutable)) – zmienne w wyniku częstych zian w otoczeniu systemu Pojawiające/rozwijające się (emergent (emergent)) – nie mogą być w pełni zdefiniowane na początku przedsięwzięcia Wynikowe (consequential (consequential)) – wynikają z pewnych założeń co do sposobu korzystania z systemu, które mogą okazać się niewłaściwe Związane ze zgodnością (compatibility (compatibility)) – zależą od zewnętrznych systemów (oprogramowanie, sprzęt) Zachowuj odrzucone wymagania Odrzucone wymagania często pojawiają się ponownie może to oznaczać, że istnieją poważne powody, aby takie wymaganie jednak wprowadzić może to oznaczać, że ponownie proponowane wymagania można odrzucić ze znanych już powodów Odrzucone wymagania mogą być przydatne w innych systemach 24