Copyright © Jerzy R. Nawrocki Inżynieria wymagań Inżynieria oprogramowania II Wykład 6
J.Nawrocki, Inżynieria wymagań Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania 1.04 Szacowanie rozmiaru i pracochłonności Standardy serii ISO Modele CMMI Inżynieria wymagań 6.05 Zarządzanie projektami i PRINCE Personal Software Process Team Software Process 3.06 Rational Unified Process Zwinne metodyki programowania Projekty dyplomowe i XPrince
J.Nawrocki, Inżynieria wymagań Plan wykładu Wymagania Model Sommervillea-Sawyera Praktyki dotyczące dokumentu Przypadki użycia Rational Requisite Pro Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
J.Nawrocki, Inżynieria wymagań Plan wykładu Wymagania Model Sommervillea-Sawyera Praktyki dotyczące dokumentu Przypadki użycia Rational Requisite Pro Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
J.Nawrocki, Inżynieria wymagań Wymaganie.... jest to zdolność ( capability ) lub warunek, który system musi spełnić.
J.Nawrocki, Inżynieria wymagań Wymagania.... są definiowane na wczesnych etapach rozwoju systemu jako specyfikacja tego, co ma być implementowane. Sommerville & Sawyer97
J.Nawrocki, Inżynieria wymagań SRS SRSSRS SRS = Software Requirements Specification SRS jest specyfikacją szczególnego ( particular ) produktu programistycznego, programu, lub zbioru programów realizującego pewne funkcje w konkretnym ( specific ) środowisku. IEEE Std
J.Nawrocki, Inżynieria wymagań Główne problemy Funkcjonalność Funkcjonalność (co oprogramowanie ma robić?) Zewnętrzne interfejsy Zewnętrzne interfejsy (ludzie, sprzęt, inne oprogramowanie) Wydajność Wydajność (prędkość, dostępność, czas odpowiedzi itp.) Atrybuty Atrybuty (przenośność, pielęgnowalność, bezpiecz. itp. ) Ograniczenia projektowe Ograniczenia projektowe (standardy, język implementacji, ograniczenia zasobowe, środowisko funkcjonowania itp.) IEEE Std
J.Nawrocki, Inżynieria wymagań Specyfikacja wymagań Wymagania funkcjonalne Wymagania pozafunkcjonalne Interfejs użytkownika Scenariusze testów akceptacyjnych
J.Nawrocki, Inżynieria wymagań Środowisko operacyjne System Użytkownik ENV1 Urządzenie System zewnętrzny ENV2
J.Nawrocki, Inżynieria wymagań Środowisko operacyjne Użytkownik System
J.Nawrocki, Inżynieria wymagań Funkcje systemu STOP Funkcja (Operacja) Nie do nas! Dokładność? Efekty uboczne Wej. Wyj.
J.Nawrocki, Inżynieria wymagań Funkcje systemu FUN1: Pobranie faktury WEJŚCIE: - WARUNEK: Segregator faktur jest niepusty. WYJŚCIE: Faktura (wzorzec WF-1/ ) EFEKT UBOCZNY: Pobrana faktura jest usuwana z segregatora. Jeśli jest to jedyna faktura w segregatorze, segregator staje się pusty. PRZETWARZANIE: - DOKŁADNOŚĆ: Cześć ułamkowa każdej kwoty ma dwie cyfry po przecinku.
J.Nawrocki, Inżynieria wymagań Plan wykładu Wymagania Model Sommervillea-Sawyera Praktyki dotyczące dokumentu Przypadki użycia Rational Requisite Pro Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
J.Nawrocki, Inżynieria wymagań Klasyfikacja dobrych praktyk Dokument SRS Zbieranie wymagań Analiza i negocjacja wymag. Opisywanie wymagań Modelowanie systemu Walidacja wymagań Zarządzanie wymaganiami IW dla systemów krytycznych Podst.Pośred.Zaaw
J.Nawrocki, Inżynieria wymagań Punktacja 3 – standaryzacja : udokumentowany standard stosowany i sprawdzany jako część procesu zarządzania jakością; 2 – normalne użycie : szeroko stosowane ale nie obowiązkowe; 1 – od czasu do czasu : stosowane wg upodobań kierownika proj.; 0 – nigdy : nigdy lub prawie nigdy; 3 0
J.Nawrocki, Inżynieria wymagań Poziomy dojrzałości Zdefiniowany > 85 Podst & > 40 Pośr. & Zaaw. Zdefiniowany > 85 Podst & > 40 Pośr. & Zaaw. Powtarzalny > 55 Podst. & < 40 Pośr. & Zaaw. Powtarzalny > 55 Podst. & < 40 Pośr. & Zaaw. Początkowy < 55 Podst. Początkowy < 55 Podst.
J.Nawrocki, Inżynieria wymagań Plan wykładu Wymagania Model Sommervillea-Sawyera Praktyki dotyczące dokumentu Przypadki użycia Rational Requisite Pro Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
J.Nawrocki, Inżynieria wymagań Klasyfikacja dobrych praktyk Dokument SRS Zbieranie wymagań Analiza i negocjacja wymag. Opisywanie wymagań Modelowanie systemu Walidacja wymagań Zarządzanie wymaganiami IW dla systemów krytycznych Podst.Pośred.Zaaw
J.Nawrocki, Inżynieria wymagań Dokument wymagań Zdefiniuj standardową strukturę dokumentu Wyjaśnij, jak korzystać z dokumentu Dołącz streszczenie wymagań Opracuj uzasadnienie biznesowe dla systemu Zdefiniuj terminy specjalistyczne Wybierz czytelny szablon dokumentu Pomóż czytelnikom znaleźć informację Uczyń dokument łatwym do zmiany
J.Nawrocki, Inżynieria wymagań Kryteria jakości dokumentu SRS a) Poprawność; b) Jednoznaczność; c) Kompletność; d) Spójność; e) Informacja o ważności i stabilności; f) Weryfikowalność; g) Modyfikowalność; h) Możliwość śledzenia powiązań ( traceability ). IEEE Std
J.Nawrocki, Inżynieria wymagań Struktura SRS 1. Wprowadzenie 1.1 Cel dokumentu 1.2 Zakres produktu 1.3 Definicje, akronimy i skróty 1.4 Odwołania do literatury 1.5 Omówienie dokumentu 2. Ogólny opis produktu 3. Wymagania funkcjonalne 4. Wymagania pozafunkcjonalne Dodatki Indeks IEEE Std
J.Nawrocki, Inżynieria wymagań Struktura SRS 1. Wprowadzenie 2. Ogólny opis produktu 2.1 Kontekst funkcjonowania 2.2 Charakterystyka użytkowników 2.3 Główne funkcje produktu 2.4 Ograniczenia 2.5 Założenia i zależności 3. Wymagania funkcjonalne 4. Wymagania pozafunkcjonalne Dodatki Indeks IEEE Std
J.Nawrocki, Inżynieria wymagań Struktura SRS 1. Wprowadzenie 2. Ogólny opis produktu 3. Wymagania funkcjonalne 3.1 Opis otoczenia Członek PTL Czytanie danych Aktualizacja danych Zarząd PTL Wysyłanie korespondencji 4. Wymagania pozafunkcjonalne Dodatki Indeks IEEE Std
J.Nawrocki, Inżynieria wymagań Plan wykładu Wymagania Model Sommervillea-Sawyera Praktyki dotyczące dokumentu Przypadki użycia Rational Requisite Pro Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
J.Nawrocki, Inżynieria wymagań Ivar Jacobson 1967: Ericsson, systemy telekomunikacyjne 1985: Ph.D., Dep. of Computer Systems, The Royal Institute of Tech., Stockholm 1987: Założyciel Objectory AB 1995: Objectory AB łączy się z Rationalem 2003: IBM kupuje Rationala
J.Nawrocki, Inżynieria wymagań Ivar Jacobson Addison-Wesley, 1992
J.Nawrocki, Inżynieria wymagań Przykładowy przypadek użycia Zarejestruj IO Aktor Aktor: Rejestrator IO Cel Cel: Zarejestrować w systemie nową IO. Zdarzenie Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1.Rejestrator IO 1.Rejestrator IO: Wprowadza NIP lub REGON IO. 2.System 2.System: Sprawdza poprawność wprowadzonego NIP/REGON. 3.Rejestrator 3.Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. 4.System 4.System: Weryfikuje poprawność składniową wprowadzonych danych. 5.Rejestrator 5.Rejestrator: Wprowadza dane dotyczące jednostek IO.Rozszerzenia 2a. 2a. NIP/REGON jest niepoprawny 2a1. 2a1. System wyświetla komunikat i wracamy do kroku 1
J.Nawrocki, Inżynieria wymagań Przykładowy przypadek użycia Zarejestruj IO Aktor Aktor: Rejestrator IO Cel Cel: Zarejestrować w systemie nową IO. Zdarzenie Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1.Rejestrator IO 1.Rejestrator IO: Wprowadza NIP lub REGON IO. 2.System 2.System: Sprawdza poprawność wprowadzonego NIP/REGON. 3.Rejestrator 3.Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. 4.System 4.System: Weryfikuje poprawność składniową wprowadzonych danych. 5.Rejestrator 5.Rejestrator: Wprowadza dane dotyczące jednostek IO.Rozszerzenia 2a. 2a. NIP/REGON jest niepoprawny 2a1. 2a1. System wyświetla komunikat i wracamy do kroku 1
J.Nawrocki, Inżynieria wymagań Przykładowy przypadek użycia Zarejestruj IO Aktor Aktor: Rejestrator IO Cel Cel: Zarejestrować w systemie nową IO. Zdarzenie Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1.Rejestrator IO 1.Rejestrator IO: Wprowadza NIP lub REGON IO. 2.System 2.System: Sprawdza poprawność wprowadzonego NIP/REGON. 3.Rejestrator 3.Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. 4.System 4.System: Weryfikuje poprawność składniową wprowadzonych danych. 5.Rejestrator 5.Rejestrator: Wprowadza dane dotyczące jednostek IO.Rozszerzenia 2a. 2a. NIP/REGON jest niepoprawny 2a1. 2a1. System wyświetla komunikat i wracamy do kroku 1
J.Nawrocki, Inżynieria wymagań Przykładowy przypadek użycia Zarejestruj IO Aktor Aktor: Rejestrator IO Cel Cel: Zarejestrować w systemie nową IO. Zdarzenie Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1.Rejestrator IO 1.Rejestrator IO: Wprowadza NIP lub REGON IO. 2.System 2.System: Sprawdza poprawność wprowadzonego NIP/REGON. 3.Rejestrator 3.Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. 4.System 4.System: Weryfikuje poprawność składniową wprowadzonych danych. 5.Rejestrator 5.Rejestrator: Wprowadza dane dotyczące jednostek IO.Rozszerzenia 2a. 2a. NIP/REGON jest niepoprawny 2a1. 2a1. System wyświetla komunikat i wracamy do kroku 1
J.Nawrocki, Inżynieria wymagań Przykładowy przypadek użycia Zarejestruj IO Aktor Aktor: Rejestrator IO Cel Cel: Zarejestrować w systemie nową IO. Zdarzenie Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1.Rejestrator IO 1.Rejestrator IO: Wprowadza NIP lub REGON IO. 2.System 2.System: Sprawdza poprawność wprowadzonego NIP/REGON. 3.Rejestrator 3.Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. 4.System 4.System: Weryfikuje poprawność składniową wprowadzonych danych. 5.Rejestrator 5.Rejestrator: Wprowadza dane dotyczące jednostek IO.Rozszerzenia 2a. 2a. NIP/REGON jest niepoprawny 2a1. 2a1. System wyświetla komunikat i wracamy do kroku 1
J.Nawrocki, Inżynieria wymagań Przykładowy przypadek użycia Zarejestruj IO Aktor Aktor: Rejestrator IO Cel Cel: Zarejestrować w systemie nową IO. Zdarzenie Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1.Rejestrator IO 1.Rejestrator IO: Wprowadza NIP lub REGON IO. 2.System 2.System: Sprawdza poprawność wprowadzonego NIP/REGON. 3.Rejestrator 3.Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. 4.System 4.System: Weryfikuje poprawność składniową wprowadzonych danych. 5.Rejestrator 5.Rejestrator: Wprowadza dane dotyczące jednostek IO.Rozszerzenia 2a. 2a. NIP/REGON jest niepoprawny 2a1. 2a1. System wyświetla komunikat i wracamy do kroku 1
J.Nawrocki, Inżynieria wymagań Przykładowy przypadek użycia Zarejestruj IO Aktor Aktor: Rejestrator IO Cel Cel: Zarejestrować w systemie nową IO. Zdarzenie Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1.Rejestrator IO 1.Rejestrator IO: Wprowadza NIP lub REGON IO. 2.System 2.System: Sprawdza poprawność wprowadzonego NIP/REGON. 3.Rejestrator 3.Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. 4.System 4.System: Weryfikuje poprawność składniową wprowadzonych danych. 5.Rejestrator 5.Rejestrator: Wprowadza dane dotyczące jednostek IO.Rozszerzenia 2a. 2a. NIP/REGON jest niepoprawny 2a1. 2a1. System wyświetla komunikat i wracamy do kroku 1
J.Nawrocki, Inżynieria wymagań Ten sam cel Przypadki użycia a scenariusze Scenario #1 Scenario #2 Scenario #3 Przypadek użycia
J.Nawrocki, Inżynieria wymagań Przykładowy przypadek użycia Zarejestruj IO Aktor Aktor: Rejestrator IO Cel Cel: Zarejestrować w systemie nową IO. Zdarzenie Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1.Rejestrator IO 1.Rejestrator IO: Wprowadza NIP lub REGON IO. 2.System 2.System: Sprawdza poprawność wprowadzonego NIP/REGON. 3.Rejestrator 3.Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. 4.System 4.System: Weryfikuje poprawność składniową wprowadzonych danych. 5.Rejestrator 5.Rejestrator: Wprowadza dane dotyczące jednostek IO.Rozszerzenia 2a. 2a. NIP/REGON jest niepoprawny 2a1. 2a1. System wyświetla komunikat i wracamy do kroku 1
J.Nawrocki, Inżynieria wymagań Zalety przypadków użycia Są półformalne. Wprowadzają strukturę do opowieści. Opisują także sytuacje błędne. Są podstawą do szacowania pracochłonności, specyfikacji szczegółowych wymagań, projektowania interfejsów i scenariuszy testowych.
J.Nawrocki, Inżynieria wymagań Źle napisany przypadek użycia Zapisz się na przedmiot (Główny scen.) 1.Wyświetl pusty plan zajęć. 2.Wyświetl listę wszystkich zajęć w następujący sposób: Lewe okno pokazuje wszystkie przedmioty w systemie uporządkowane alfabetycznie. Dolne okno pokazuje godziny, w których podświetlony przedmiot jest dostępny. Trzecie okno pokazuje wszystkie przedmioty znajdujące się obecnie w planie zajęć. 3.Wykonaj. 4.Student klika na przedmiot. 5.Aktualizuj dolne okno aby pokazać godziny, w których przedmiot jest dostępny. 6.Student klika na godziny a potem na przycisk Dodaj przedmiot.
J.Nawrocki, Inżynieria wymagań 1.Wyświetl pusty plan zajęć. 2.Wyświetl listę wszystkich zajęć w następujący sposób: Lewe okno pokazuje wszystkie przedmioty w systemie uporządkowane alfabetycznie. Dolne okno pokazuje godziny, w których podświetlony przedmiot jest dostępny. Trzecie okno pokazuje wszystkie przedmioty znajdujące się obecnie w planie zajęć. 3.Wykonaj. 4.Student klika na przedmiot. 5.Aktualizuj dolne okno aby pokazać godziny, w których przedmiot jest dostępny. 6.Student klika na godziny a potem na przycisk Dodaj przedmiot. Źle napisany przypadek użycia Za dużo szczegółów dot. GUI
J.Nawrocki, Inżynieria wymagań Inne często popełniane błędy Za dużo niskopoziomowych przypadków użycia (Authorize user). Stosowanie przypadków użycia do prezentacji informacji nie-behawioralnej (np. opis formularzy – do dodatków). Za długie (powinny być krótkie, zazwyczaj 3-9 kroków). Fragmenty zdań (np. pomijanie nazwy aktora w opisie kroków).
J.Nawrocki, Inżynieria wymagań Poziomy opisu systemu informatycznego Kodowanie i testowanie Modelowanie biznesowe Specyfikacja wymagań Projektowanie Asembler, C, Java,... Pseudokod, schematy blokowe, UML,... Język polski, przypadki użycia,... UML, BPMN, przypadki użycia,...
J.Nawrocki, Inżynieria wymagań Poziomy przypadków użycia Book tripBook hotelBook flight Poziom użytkown. Book trip Poziom celu Book trip Book hotelBook flight Find flight Reserve seat Find hotel Reserve room Poziom podfunkcji
J.Nawrocki, Inżynieria wymagań Krótki formatActor Administrator Use Case Set Monitor Parameters Select MonitorDescription Person monitoring and controlling job control systemDescription Allow administrator to specify boundaries and precision of items being monitored Choose something to monitor (e.g. a process or wait queue)
J.Nawrocki, Inżynieria wymagań Pełen format Buy Something Primary Actor Primary Actor: Requestor Goal in Context Goal in Context: Requestor buys something through the system, gets it. Does not include paying for it. Scope Scope: Business – The overall purchasing mechanism, electronic adn non-electronic, as seen by the people in the company. Level Level: Summary Stakeholders and Interests Requestor Requestor: Wants what he/she ordered. Company Company: Wants to control spending but allow needed purchases. Vendor Vendor: Wants to get paid for any goods delivered. Precondition Precondition: None
J.Nawrocki, Inżynieria wymagań Pełen format Success Guarantees Success Guarantees: Requestor has goods, correct budet ready do be debited. Trigger Trigger: Requestor decides to buy something. Main Success Scenario 1.Requestor 1.Requestor: Initiate a request. 2.Approver 2.Approver: Check money in the budget, check price of goods, complete request for submission. 3.Buyer 3.Buyer: Check contents of storage, find best vendor for goods. 4.Authorizer 4.Authorizer: Validate Approvers signature....Extensions 1a. Requestor does not know vendor or price: leave those parts blank and continue.
J.Nawrocki, Inżynieria wymagań Pełen format Priority Priority: Various Response Time Response Time: Various Frequency Frequency: Three times a day Channel to Primary Actor Channel to Primary Actor: Internet browser, mail system, or equivalent Channels to Secondary Actors Channels to Secondary Actors: Fax, phone, car Open Issues Open Issues: When is a canceled request deleted from the system? What authorization is needed to cancel a request?
J.Nawrocki, Inżynieria wymagań Plan wykładu Wymagania Model Sommervillea-Sawyera Praktyki dotyczące dokumentu Przypadki użycia Rational Requisite Pro Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
J.Nawrocki, Inżynieria wymagań Użytkownicy RequisitePro RequisitePro Autor Obserwator Admin
J.Nawrocki, Inżynieria wymagań Wymaganie W RequisitePro: Nazwa, tekst, atrybuty Rational RequisitePro
J.Nawrocki, Inżynieria wymagań Składniki RequisitePro Baza danych Paleta Widoki MS Word RequisiteWeb
J.Nawrocki, Inżynieria wymagań Macierz atrybutów Znacznik Pełny tekst Krótki tekstAtrybut
J.Nawrocki, Inżynieria wymagań Rational Suite Rational RequisitePro Zarządzanie wymaganiami Rational ClearCase LT Zarządzanie wersjami Rational ClearQuest Zarządzanie zmianami Rational Rose SoDA Generowanie raportów AnalystStudio
J.Nawrocki, Inżynieria wymagań Literatura IEEE Recommended Practice for Software Requirements Specifications, IEEE Std , June I.Sommerville, P. Sawyer, Requirements Engineering. A Good Practice Guide. John Wiley & Sons, Chichester, 1997.
J.Nawrocki, Inżynieria wymagań Podsumowanie Wymagania Model Sommervillea-Sawyera Praktyki dotyczące dokumentu Przypadki użycia Rational Requisite Pro
J.Nawrocki, Inżynieria wymagań Ocena wykładu 1. Wrażenie ogólne (1 - 6) 2. Za szybko czy za wolno? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co i jak poprawić?
J.Nawrocki, Inżynieria wymagań Plan wykładu Rola analityka Modelowanie biznesowe Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe