Inżynieria wymagań i IEEE 830 Inżynieria oprogramowania II Inżynieria wymagań i IEEE 830 Jerzy.Nawrocki@put.poznan.pl Adam.Wojciechowski@put.poznan.pl
Model Sommerville’a-Sawyera Praktyki dotyczące dokumentu 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ń i IEEE 830
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ń i IEEE 830
Wymaganie .. .. jest to zdolność (capability) lub warunek, który system musi spełnić. J.Nawrocki, Inżynieria wymagań i IEEE 830
Wymagania .. .. są definiowane na wczesnych etapach rozwoju systemu jako specyfikacja tego, co ma być implementowane. Sommerville & Sawyer’97 J.Nawrocki, Inżynieria wymagań i IEEE 830
SRS = Software Requirements Specification 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ń i IEEE 830
Funkcjonalność (co oprogramowanie ma robić?) 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ń i IEEE 830
Funkcjonalność + Zewnętrzne interfejsy Główne problemy IEEE Std 830-1998 Funkcjonalność + Zewnętrzne interfejsy Ograniczenia projektowe + Wydajność Atrybuty J.Nawrocki, Inżynieria wymagań i IEEE 830
IEEE Std. 830 Wymagania funkcjonalne Wymagania pozafunkcjonalne Specyfikacja wymagań Wymagania funkcjonalne Wymagania pozafunkcjonalne Interfejs użytkownika Scenariusze testów akceptacyjnych IEEE Std. 830 J.Nawrocki, Inżynieria wymagań i IEEE 830
Środowisko operacyjne Użytkownik ENV1 Urządzenie System zewnętrzny ENV2 System J.Nawrocki, Inżynieria wymagań i IEEE 830
Środowisko operacyjne Użytkownik System J.Nawrocki, Inżynieria wymagań i IEEE 830
Nie do nas! Dokładność? Funkcja (Operacja) Wej. Wyj. Efekty uboczne Funkcje systemu Nie do nas! Dokładność? Funkcja (Operacja) STOP Wej. Wyj. 0.1234 Efekty uboczne J.Nawrocki, Inżynieria wymagań i IEEE 830
WARUNEK: Segregator faktur jest niepusty. 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ń i IEEE 830
Klasyfikacja dobrych praktyk Podst. Pośred. Zaaw. 8 6 5 4 3 2 36 - 6 2 1 3 21 - 1 2 4 9 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ń i IEEE 830
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 J.Nawrocki, Inżynieria wymagań i IEEE 830
> 85 Podst & > 40 Pośr. & Zaaw. 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ń i IEEE 830
Klasyfikacja dobrych praktyk Podst. Pośred. Zaaw. 8 6 5 4 3 2 36 - 6 2 1 3 21 - 1 2 4 9 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ń i IEEE 830
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ń i IEEE 830
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ń i IEEE 830
Struktura SRS 1. Introduction 1.1 Purpose 1.2 Scope IEEE Std 830-1998 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, acronyms, and abbreviations 1.4 References 1.5 Overview 2. Overall description 2.1 Product perspective 2.2 Product functions 2.3 User characteristics 2.4 Constraints 2.5 Assumptions and dependencies 3. Specific requirements Appendixes Index J.Nawrocki, Inżynieria wymagań i IEEE 830
3. Specific requirements 3.1 External interface requirements 3.1.1 User interfaces 3.1.2 Hardware interfaces 3.1.3 Software interfaces 3.1.4 Communications interfaces 3.2 Functional requirements 3.2.1 User class 1 3.2.1.1 Functional requirement 1.1 . . . 3.2.1.n Functional requirement 1.n 3.2.m User class m 3.2.m.1 Functional requirement m.1 3.2.m.n Functional requirement m.n IEEE Std 830-1998 J.Nawrocki, Inżynieria wymagań i IEEE 830
3. Specific requirements IEEE Std 830-1998 3.3 Performance requirements 3.4 Design constraints 3.5 Software system attributes 3.6 Other requirements J.Nawrocki, Inżynieria wymagań i IEEE 830
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. . . . J.Nawrocki, Inżynieria wymagań i IEEE 830
Zalety przypadków użycia Są półformalne. Wprowadzają strukturę do opowieści. Opisują także sytuacje błędne. Są częścią metodyk obiektowych. Są podstawą do szacowania pracochłonności, specyfikacji szczegółowych wymagań, projektowania interfejsów i scenariuszy testowych. J.Nawrocki, Inżynieria wymagań i IEEE 830
Źle napisany przypadek użycia Zapisz się na przedmiot (Główny scen.) Display a blank schedule. Display a list of all classes in the following way: The left window lists all the courses in the system in alphabetical order. The lower window displays the times the highlighted course is available. The third window shows all the courses currently in the schedule. Do. Student clicks on a course. Update the lower window to show the times the course is available. Student clicks on a course time and then clicks on the „Add Course” button. J.Nawrocki, Inżynieria wymagań i IEEE 830
Źle napisany przypadek użycia Zapisz się na przedmiot (Główny scen. – kont.) 7. Check if the Student has the necessary prerequisites and that the course offering is open. 8. If the course is open and the Student has the necessary prerequisites, add the Student to the course. Display the updated schedule showing the new course. If no, put up a message „You are missing the prerequisites. Choose another course.” 9. Mark the course offering as „enrolled” in the schedule. 10. End do when the Student clicks on „Save Schedule.” 11. Save the schedule and return to the main selection screen. J.Nawrocki, Inżynieria wymagań i IEEE 830
Źle napisany przypadek użycia Za dużo szczegółów dot. GUI Display a blank schedule. Display a list of all classes in the following way: The left window lists all the courses in the system in alphabetical order. The lower window displays the times the highlighted course is available. The third window shows all the courses currently in the schedule. Do. Student clicks on a course. Update the lower window to show the times the course is available. Student clicks on a course time and then clicks on the „Add Course” button. J.Nawrocki, Inżynieria wymagań i IEEE 830
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ń i IEEE 830
Poziomy przypadków użycia Book trip Poziom celu Why? Book trip Poziom użytkown. Book flight Book hotel Book trip Book hotel Book flight Find flight Reserve seat Find hotel Reserve room Poziom podfunkcji How? J.Nawrocki, Inżynieria wymagań i IEEE 830
Krótki format Actor Administrator Use Case Set Monitor Parameters Select Monitor Description Person monitoring and controlling job control system 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ń i IEEE 830
Pełen format Buy Something Primary Actor: Requestor Goal in Context: Requestor buys something through the system, gets it. Does not include paying for it. Scope: Business – The overall purchasing mechanism, electronic adn non-electronic, as seen by the people in the company. Level: Summary Stakeholders and Interests Requestor: Wants what he/she ordered. Company: Wants to control spending but allow needed purchases. Vendor: Wants to get paid for any goods delivered. Precondition: None J.Nawrocki, Inżynieria wymagań i IEEE 830
Pełen format Success Guarantees: Requestor has goods, correct budget ready do be debited. Trigger: Requestor decides to buy something. Main Success Scenario Requestor: Initiate a request. Approver: Check money in the budget, check price of goods, complete request for submission. Buyer: Check contents of storage, find best vendor for goods. Authorizer: Validate Approver’s signature. . . . Extensions 1a. Requestor does not know vendor or price: leave those parts blank and continue. J.Nawrocki, Inżynieria wymagań i IEEE 830
Pełen format Priority: Various Response Time: Various Frequency: Three times a day Channel to Primary Actor: Internet browser, mail system, or equivalent Channels to Secondary Actors: Fax, phone, car Open Issues: When is a canceled request deleted from the system? What authorization is needed to cancel a request? J.Nawrocki, Inżynieria wymagań i IEEE 830
Użytkownicy RequisitePro Autor Admin Obserwator J.Nawrocki, Inżynieria wymagań i IEEE 830
Rational RequisitePro Wymaganie Rational RequisitePro W RequisitePro: Nazwa, tekst, atrybuty J.Nawrocki, Inżynieria wymagań i IEEE 830
Składniki RequisitePro Paleta Widoki MS Word RequisiteWeb Baza danych J.Nawrocki, Inżynieria wymagań i IEEE 830
Znacznik Krótki tekst Atrybut Atrybut Pełny tekst Macierz atrybutów Znacznik Krótki tekst Atrybut Atrybut Pełny tekst J.Nawrocki, Inżynieria wymagań i IEEE 830
Rational RequisitePro Zarządzanie wymaganiami Rational ClearCase LT 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ń i IEEE 830