500 likes | 696 Views
Inżynieria oprogramowania II Wykład 6. Inżynieria wymagań. Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/io. Plan wykładu. Wymagania Model Sommerville’a-Sawyera Praktyki dotyczące dokumentu Przypadki użycia Rational Requisite Pro. Kontrola jakości Szacowanie rozmiaru i
E N D
Inżynieria oprogramowania II Wykład 6 Inżynieria wymagań Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/io
Plan wykładu • Wymagania • Model Sommerville’a-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 Sommerville’a-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 & Sawyer’97 J.Nawrocki, Inżynieria wymagań
SRS IEEE Std 830-1998 • 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. J.Nawrocki, Inżynieria wymagań
Główne problemy IEEE Std 830-1998 Funkcjonalność(co oprogramowanie ma robić?) Zewnętrzne interfejsy(ludzie, sprzęt, inne oprogramowanie) Wydajność(prędkość, dostępność, czas odpowiedzi itp.) Atrybuty(przenośność, pielęgnowalność, bezpiecz. itp. ) Ograniczenia projektowe(standardy, język implementacji, ograniczenia zasobowe, środowisko funkcjonowania itp.) J.Nawrocki, Inżynieria wymagań
Specyfikacja wymagań • Wymagania funkcjonalne • Wymagania pozafunkcjonalne • Interfejs użytkownika • Scenariusze testów akceptacyjnych IEEE Std. 830 J.Nawrocki, Inżynieria wymagań
Środowisko operacyjne ENV1 ENV2 Urządzenie Użytkownik System zewnętrzny Użytkownik System J.Nawrocki, Inżynieria wymagań
Środowisko operacyjne Użytkownik System J.Nawrocki, Inżynieria wymagań
Funkcje systemu Wej. Wyj. STOP Dokładność? Nie do nas! Funkcja (Operacja) 0.1234 Efekty uboczne J.Nawrocki, Inżynieria wymagań
Funkcje systemu • FUN1: Pobranie faktury • WEJŚCIE: - • WARUNEK: Segregator faktur jest niepusty. • WYJŚCIE: Faktura (wzorzec WF-1/2001.09) • 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 Sommerville’a-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 Podst. Pośred. Zaaw. 36 21 9 8 - - 6 6 1 5 2 1 4 1 - 3 3 - 4 3 1 4 3 2 2 3 4 Dokument SRS Zbieranie wymagań Analiza i negocjacja wymag. Opisywanie wymagań Modelowanie systemu Walidacja wymagań Zarządzanie wymaganiami IW dla systemów krytycznych J.Nawrocki, Inżynieria wymagań
Punktacja 3 0 • 3 – standaryzacja: udokumentowany standard stosowany i sprawdzany jakoczęść 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; J.Nawrocki, Inżynieria wymagań
Poziomy dojrzałości Zdefiniowany > 85 Podst & > 40 Pośr. & Zaaw. Powtarzalny > 55 Podst. & < 40 Pośr. & Zaaw. Początkowy < 55 Podst. J.Nawrocki, Inżynieria wymagań
Plan wykładu • Wymagania • Model Sommerville’a-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 Podst. Pośred. Zaaw. 36 21 9 8 - - 6 6 1 5 2 1 4 1 - 3 3 - 4 3 1 4 3 2 2 3 4 Dokument SRS Zbieranie wymagań Analiza i negocjacja wymag. Opisywanie wymagań Modelowanie systemu Walidacja wymagań Zarządzanie wymaganiami IW dla systemów krytycznych 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 IEEE Std 830-1998 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). J.Nawrocki, Inżynieria wymagań
Struktura SRS IEEE Std 830-1998 • 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 J.Nawrocki, Inżynieria wymagań
Struktura SRS IEEE Std 830-1998 • 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 J.Nawrocki, Inżynieria wymagań
Struktura SRS IEEE Std 830-1998 1. Wprowadzenie 2. Ogólny opis produktu 3. Wymagania funkcjonalne 3.1 Opis otoczenia 3.2.1 Członek PTL 3.2.1.1 Czytanie danych 3.2.1.2 Aktualizacja danych 3.2.2 Zarząd PTL 3.2.2.1 Wysyłanie korespondencji 4. Wymagania pozafunkcjonalne Dodatki Indeks J.Nawrocki, Inżynieria wymagań
Plan wykładu • Wymagania • Model Sommerville’a-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 http://www.analisi-disegno.com/uml/JacobsonInterview.html http://www.jaczone.com/ J.Nawrocki, Inżynieria wymagań
Ivar Jacobson Addison-Wesley, 1992 J.Nawrocki, Inżynieria wymagań
Przykładowy przypadek użycia • Zarejestruj IO • Aktor: Rejestrator IO • Cel: Zarejestrować w systemie nową IO. • Zdarzenie: Rejestrator otrzymał wniosek papierowy. • Główny scenariusz • Rejestrator IO: Wprowadza NIP lub REGON IO. • System: Sprawdza poprawność wprowadzonego NIP/REGON. • Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. • System: Weryfikuje poprawność składniową wprowadzonych danych. • Rejestrator: Wprowadza dane dotyczące jednostek IO. • Rozszerzenia • 2a.NIP/REGON jest niepoprawny • 2a1. System wyświetla komunikat i wracamy do kroku 1 J.Nawrocki, Inżynieria wymagań
Przykładowy przypadek użycia • Zarejestruj IO • Aktor: Rejestrator IO • Cel: Zarejestrować w systemie nową IO. • Zdarzenie: Rejestrator otrzymał wniosek papierowy. • Główny scenariusz • Rejestrator IO: Wprowadza NIP lub REGON IO. • System: Sprawdza poprawność wprowadzonego NIP/REGON. • Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. • System: Weryfikuje poprawność składniową wprowadzonych danych. • Rejestrator: Wprowadza dane dotyczące jednostek IO. • Rozszerzenia • 2a.NIP/REGON jest niepoprawny • 2a1. System wyświetla komunikat i wracamy do kroku 1 J.Nawrocki, Inżynieria wymagań
Przykładowy przypadek użycia • Zarejestruj IO • Aktor: Rejestrator IO • Cel: Zarejestrować w systemie nową IO. • Zdarzenie: Rejestrator otrzymał wniosek papierowy. • Główny scenariusz • Rejestrator IO: Wprowadza NIP lub REGON IO. • System: Sprawdza poprawność wprowadzonego NIP/REGON. • Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. • System: Weryfikuje poprawność składniową wprowadzonych danych. • Rejestrator: Wprowadza dane dotyczące jednostek IO. • Rozszerzenia • 2a.NIP/REGON jest niepoprawny • 2a1. System wyświetla komunikat i wracamy do kroku 1 J.Nawrocki, Inżynieria wymagań
Przykładowy przypadek użycia • Zarejestruj IO • Aktor: Rejestrator IO • Cel: Zarejestrować w systemie nową IO. • Zdarzenie: Rejestrator otrzymał wniosek papierowy. • Główny scenariusz • Rejestrator IO: Wprowadza NIP lub REGON IO. • System: Sprawdza poprawność wprowadzonego NIP/REGON. • Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. • System: Weryfikuje poprawność składniową wprowadzonych danych. • Rejestrator: Wprowadza dane dotyczące jednostek IO. • Rozszerzenia • 2a.NIP/REGON jest niepoprawny • 2a1. System wyświetla komunikat i wracamy do kroku 1 J.Nawrocki, Inżynieria wymagań
Przykładowy przypadek użycia • Zarejestruj IO • Aktor: Rejestrator IO • Cel: Zarejestrować w systemie nową IO. • Zdarzenie: Rejestrator otrzymał wniosek papierowy. • Główny scenariusz • Rejestrator IO: Wprowadza NIP lub REGON IO. • System: Sprawdza poprawność wprowadzonego NIP/REGON. • Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. • System: Weryfikuje poprawność składniową wprowadzonych danych. • Rejestrator: Wprowadza dane dotyczące jednostek IO. • Rozszerzenia • 2a.NIP/REGON jest niepoprawny • 2a1. System wyświetla komunikat i wracamy do kroku 1 J.Nawrocki, Inżynieria wymagań
Przykładowy przypadek użycia • Zarejestruj IO • Aktor: Rejestrator IO • Cel: Zarejestrować w systemie nową IO. • Zdarzenie: Rejestrator otrzymał wniosek papierowy. • Główny scenariusz • Rejestrator IO: Wprowadza NIP lub REGON IO. • System: Sprawdza poprawność wprowadzonego NIP/REGON. • Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. • System: Weryfikuje poprawność składniową wprowadzonych danych. • Rejestrator: Wprowadza dane dotyczące jednostek IO. • Rozszerzenia • 2a.NIP/REGON jest niepoprawny • 2a1. System wyświetla komunikat i wracamy do kroku 1 J.Nawrocki, Inżynieria wymagań
Przykładowy przypadek użycia • Zarejestruj IO • Aktor: Rejestrator IO • Cel: Zarejestrować w systemie nową IO. • Zdarzenie: Rejestrator otrzymał wniosek papierowy. • Główny scenariusz • Rejestrator IO: Wprowadza NIP lub REGON IO. • System: Sprawdza poprawność wprowadzonego NIP/REGON. • Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. • System: Weryfikuje poprawność składniową wprowadzonych danych. • Rejestrator: Wprowadza dane dotyczące jednostek IO. • Rozszerzenia • 2a.NIP/REGON jest niepoprawny • 2a1. System wyświetla komunikat i wracamy do kroku 1 J.Nawrocki, Inżynieria wymagań
Przypadki użycia a scenariusze Ten sam cel Scenario #1 Przypadek użycia Scenario #2 Scenario #3 J.Nawrocki, Inżynieria wymagań
Przykładowy przypadek użycia • Zarejestruj IO • Aktor: Rejestrator IO • Cel: Zarejestrować w systemie nową IO. • Zdarzenie: Rejestrator otrzymał wniosek papierowy. • Główny scenariusz • Rejestrator IO: Wprowadza NIP lub REGON IO. • System: Sprawdza poprawność wprowadzonego NIP/REGON. • Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. • System: Weryfikuje poprawność składniową wprowadzonych danych. • Rejestrator: Wprowadza dane dotyczące jednostek IO. • Rozszerzenia • 2a.NIP/REGON jest niepoprawny • 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.) • Wyświetl pusty plan zajęć. • 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ęć. • Wykonaj. • Student klika na przedmiot. • Aktualizuj dolne okno aby pokazać godziny, w których przedmiot jest dostępny. • Student klika na godziny a potem na przycisk „Dodaj przedmiot” . J.Nawrocki, Inżynieria wymagań
Źle napisany przypadek użycia Za dużo szczegółów dot. GUI • Wyświetl pusty plan zajęć. • 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ęć. • Wykonaj. • Student klika na przedmiot. • Aktualizuj dolne okno aby pokazać godziny, w których przedmiot jest dostępny. • Student klika na godziny a potem na przycisk „Dodaj przedmiot” . 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ń
Plan wykładu • Wymagania • Model Sommerville’a-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 Admin Obserwator J.Nawrocki, Inżynieria wymagań
Wymaganie • W RequisitePro: • Nazwa, tekst, atrybuty Rational RequisitePro J.Nawrocki, Inżynieria wymagań
Składniki RequisitePro Paleta Widoki MS Word RequisiteWeb Baza danych J.Nawrocki, Inżynieria wymagań
Macierz atrybutów Znacznik Krótki tekst Atrybut Atrybut Pełny tekst J.Nawrocki, Inżynieria wymagań
Rational Suite AnalystStudio • Rational RequisitePro • Zarządzanie wymaganiami • Rational ClearCase LT • Zarządzanie wersjami • Rational ClearQuest • Zarządzanie zmianami • Rational Rose • SoDA • Generowanie raportów J.Nawrocki, Inżynieria wymagań
Literatura • IEEE Recommended Practice for Software Requirements Specifications, IEEE Std 830-1998, June 1998. • I.Sommerville, P. Sawyer, Requirements Engineering. A Good Practice Guide. John Wiley & Sons, Chichester, 1997. J.Nawrocki, Inżynieria wymagań
Podsumowanie Wreszcie! • Wymagania • Model Sommerville’a-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ń