inżynieria wymagań

48
Copyright © Jerzy R. Nawrocki Inżynieria wymagań [email protected] www.cs.put.poznan.pl/jnawrocki/io Inżynieria oprogramowania II Wykład 6

Upload: tamekah-hardin

Post on 03-Jan-2016

43 views

Category:

Documents


1 download

DESCRIPTION

Inżynieria oprogramowania II Wykład 6. Inżynieria wymagań. [email protected] 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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Inżynieria wymagań

Copyright © Jerzy R. Nawrocki

Inżynieria wymagańInżynieria wymagań

[email protected]/jnawrocki/io

Inżynieria oprogramowania IIWykład 6

Page 2: Inżynieria wymagań

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

Page 3: Inżynieria wymagań

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

Page 4: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Wymaganie ..

.. jest to zdolność (capability) lub warunek, który system musi spełnić.

Page 5: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Wymagania ..

.. są definiowane na wczesnych etapach rozwoju systemu jako specyfikacja tego, co ma być implementowane.

Sommerville & Sawyer’97

Page 6: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

SRS

SRSSRS = SSoftware RRequirements SSpecification

SRS jest specyfikacją szczególnego (particular)• produktu programistycznego,• programu,• lub zbioru programówrealizującego pewne funkcje w konkretnym (specific)

środowisku.

IEEE Std 830-1998

Page 7: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Główne problemy

FunkcjonalnośćFunkcjonalność (co oprogramowanie ma robić?)

Zewnętrzne interfejsyZewnętrzne interfejsy (ludzie, sprzęt, inne oprogramowanie)

WydajnośćWydajność (prędkość, dostępność, czas odpowiedzi itp.)

AtrybutyAtrybuty (przenośność, pielęgnowalność, bezpiecz. itp. )

Ograniczenia projektoweOgraniczenia projektowe (standardy, język implementacji, ograniczenia zasobowe, środowisko funkcjonowania itp.)

IEEE Std 830-1998

Page 8: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Specyfikacja wymagań

Wymagania funkcjonalneWymagania pozafunkcjonalneInterfejs użytkownikaScenariusze testów

akceptacyjnych

Page 9: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Środowisko operacyjne

SystemSystemUżytkownik

Użytkownik

ENV1

Urządzenie

Systemzewnętrzny

ENV2

Page 10: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Środowisko operacyjne

Użytkownik

SystemSystem

Page 11: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Funkcje systemu

STOP

0.1234

Funkcja (Operacja)

Nie do nas! Dokładność?

Efekty uboczne

Wej. Wyj.

Page 12: Inżynieria wymagań

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.

Page 13: Inżynieria wymagań

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

Page 14: Inżynieria wymagań

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.

8

6

54

3

4

4

2

36

-

6

21

3

3

3

3

21

-

1

1-

-

1

2

4

9

Page 15: Inżynieria wymagań

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

Page 16: Inżynieria wymagań

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.

Page 17: Inżynieria wymagań

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

Page 18: Inżynieria wymagań

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.

8

6

54

3

4

4

2

36

-

6

21

3

3

3

3

21

-

1

1-

-

1

2

4

9

Page 19: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Dokument wymagań

Zdefiniuj standardową strukturę dokumentuWyjaśnij, jak korzystać z dokumentuDołącz streszczenie wymagańOpracuj uzasadnienie biznesowe dla systemuZdefiniuj terminy specjalistyczneWybierz czytelny szablon dokumentuPomóż czytelnikom znaleźć informacjęUczyń dokument łatwym do zmiany

Page 20: Inżynieria wymagań

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 830-1998

Page 21: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Struktura SRS

1. Wprowadzenie1.1 Cel dokumentu1.2 Zakres produktu1.3 Definicje, akronimy i skróty1.4 Odwołania do literatury1.5 Omówienie dokumentu

2. Ogólny opis produktu3. Wymagania funkcjonalne4. Wymagania pozafunkcjonalneDodatkiIndeks

IEEE Std 830-1998

Page 22: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Struktura SRS

1. Wprowadzenie2. Ogólny opis produktu

2.1 Kontekst funkcjonowania2.2 Charakterystyka użytkowników2.3 Główne funkcje produktu2.4 Ograniczenia2.5 Założenia i zależności

3. Wymagania funkcjonalne4. Wymagania pozafunkcjonalneDodatkiIndeks

IEEE Std 830-1998

Page 23: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Struktura SRS

1. Wprowadzenie2. Ogólny opis produktu3. 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 korespondencji4. Wymagania pozafunkcjonalneDodatkiIndeks

IEEE Std 830-1998

Page 24: Inżynieria wymagań

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

Page 25: Inżynieria wymagań

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.htmlhttp://www.jaczone.com/

Page 26: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Ivar Jacobson

Addison-Wesley, 1992

Page 27: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Przykładowy przypadek użycia

Zarejestruj IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych

danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.RozszerzeniaRozszerzenia2a.2a. NIP/REGON jest niepoprawny 2a1.2a1. System wyświetla komunikat i wracamy do kroku 1

Page 28: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Przykładowy przypadek użycia

Zarejestruj IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych

danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.RozszerzeniaRozszerzenia2a.2a. NIP/REGON jest niepoprawny 2a1.2a1. System wyświetla komunikat i wracamy do kroku 1

Page 29: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Przykładowy przypadek użycia

Zarejestruj IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych

danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.RozszerzeniaRozszerzenia2a.2a. NIP/REGON jest niepoprawny 2a1.2a1. System wyświetla komunikat i wracamy do kroku 1

Page 30: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Przykładowy przypadek użycia

Zarejestruj IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych

danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.RozszerzeniaRozszerzenia2a.2a. NIP/REGON jest niepoprawny 2a1.2a1. System wyświetla komunikat i wracamy do kroku 1

Page 31: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Przykładowy przypadek użycia

Zarejestruj IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych

danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.RozszerzeniaRozszerzenia2a.2a. NIP/REGON jest niepoprawny 2a1.2a1. System wyświetla komunikat i wracamy do kroku 1

Page 32: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Przykładowy przypadek użycia

Zarejestruj IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych

danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.RozszerzeniaRozszerzenia2a.2a. NIP/REGON jest niepoprawny 2a1.2a1. System wyświetla komunikat i wracamy do kroku 1

Page 33: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Przykładowy przypadek użycia

Zarejestruj IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych

danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.RozszerzeniaRozszerzenia2a.2a. NIP/REGON jest niepoprawny 2a1.2a1. System wyświetla komunikat i wracamy do kroku 1

Page 34: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Ten sam cel

Przypadki użycia a scenariusze

Scenario #1

Scenario #2

Scenario #3

Przypadek użycia

Page 35: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Przykładowy przypadek użycia

Zarejestruj IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych

danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.RozszerzeniaRozszerzenia2a.2a. NIP/REGON jest niepoprawny 2a1.2a1. System wyświetla komunikat i wracamy do kroku 1

Page 36: Inżynieria wymagań

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.

Page 37: Inżynieria wymagań

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” .

Page 38: Inżynieria wymagań

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

Page 39: Inżynieria wymagań

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).

Page 40: Inżynieria wymagań

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

Page 41: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Użytkownicy RequisitePro

RequisitePro

Autor

Obserwator Admin

Page 42: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Wymaganie

W RequisitePro:Nazwa, tekst, atrybuty

Rational RequisitePro

Page 43: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Składniki RequisitePro

Baza danychBaza danych

PaletaPaleta

WidokiWidoki MS MS WordWord

RequisiteWebRequisiteWeb

Page 44: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Macierz atrybutów

Znacznik

Pełny tekst

Krótki tekst Atrybut Atrybut

Page 45: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Rational Suite

Rational RequisitePro Zarządzanie wymaganiamiRational ClearCase LT Zarządzanie wersjamiRational ClearQuest Zarządzanie zmianamiRational RoseSoDA Generowanie raportów

AnalystStudio

Page 46: Inżynieria wymagań

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.

Page 47: Inżynieria wymagań

J.Nawrocki, Inżynieria wymagań

Podsumowanie

•Wymagania•Model Sommerville’a-Sawyera•Praktyki dotyczące dokumentu•Przypadki użycia•Rational Requisite Pro

Page 48: Inżynieria wymagań

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ć?