background image

1

Inżynieria oprogramowania

wykład 9

Zasady analizowania wymagań

background image

2/23

Analiza wymagań - wstęp

stanowi pomost między inżynierią systemów 
(analiza, modelowanie, zarządzanie wymaganiami 
stawianymi systemowi) a projektowaniem 
oprogramowania

podmioty biorące udział w analizie wymagań:

klienci → powinni precyzyjnie określać swoje 
oczekiwania wobec programu

twórcy (analitycy)→ przyjmują uwagi klienta, analizują
je, rozwiązują problemy, negocjują

background image

3/23

Wyniki analizy wymagań

określenie roli oprogramowania (bycie produktem -
przetwarzanie danych lub dostarczanie produktu 
kontrola, sterowanie, tworzenie)

określenie funkcjonalności programu

określenie danych przetwarzanych przez program

określenie wyników działania programu

wspomaganie jakości produktu

budowa modeli: danych, architektury, interfejsów

background image

4/23

Czynności analizy wymagań

rozpoznanie problemu → poznanie aspektu problemu z 

punktu widzenia klienta – użytkownika, poprzedza je 

zapoznanie się ze specyfikacją systemu i planem 

przedsięwzięcia, 

ocenianie problemu, szukanie rozwiązania 

określenie kontekstu problemu, ustalenie rodzaju 

przepływu danych, funkcji systemu, zachowania w 

konkretnym przypadku, sposobu komunikowania się, co 

może wspomóc uzyskanie rozwiązania

modelowanie → podstawa projektowania 

oprogramowania i specyfikowania, tworzenie modelu 

systemu ułatwiającego analizę sterowania, przepływu i 

przetwarzania danych, zachowania programu

specyfikowanie, zastępowane czasem prototypowaniem

przegląd

background image

5/23

Ustalanie wymagań dla 
oprogramowania – wiedza ogólna

dla kogo przeznaczone ma być nowe 
rozwiązanie

kto będzie go używał

korzyści wynikające z wprowadzenia nowego 
rozwiązania

czy problem zgłaszany przez klienta można 
rozwiązać inaczej

background image

6/23

Ustalanie wymagań dla oprogramowania 
– lepsze poznanie istoty problemu

określenie pojęcia: dobry wynik działania programu

w jakich sytuacjach / problemach może mieć
zastosowanie nowego rozwiązania

środowisko działania nowego produktu

czy znane są wymagania związane z efektywnością
produktu (efektywność – skuteczność, sprawność, 
wydajność: efektywność czasowa, zużycie zasobów, itp..)

czy znane są ograniczenia w sposobie funkcjonowania 
produktu (dane wejściowe i wyjściowe, środowisko pracy 
oraz sprzęt, specyficzne wymagania użytkowników)

background image

7/23

Ustalanie wymagań dla oprogramowania 
– efekty spotkania z klientem

czy klient jest osobą kompetentną do udzielania 
informacji na poruszane tematy, a odpowiedzi 
są wiążące

czy są inne osoby potrafiące udzielić
dodatkowych informacji

czy są inne pytania które powinny zostać
dodatkowo postawione

background image

8/23

Techniki ułatwiające 
specyfikowanie aplikacji - FAST

FAST – facilitated application specification 
techniques

techniki FAST nastawione są na ścisłą
współpracę twórców i klientów (a często bywa 
odwrotnie, obie strony traktują się jak 
przeciwnicy)

zespoły złożone z twórców i klientów zajmują
się identyfikacją problemów i wspólnie szukają
rozwiązań, tworzą specyfikację wymagań

background image

9/23

Główne cechy spotkań wg FAST

spotkania na neutralnym gruncie

ustalone wcześniej reguły spotkań

swobodny styl wymiany poglądów

dyskusja na wszystkie istotne tematy

cel spotkania: identyfikowanie problemów, 
szukanie rozwiązań, negocjacja dalszych 
możliwości, specyfikacja wymagań

background image

10/23

Jakość rozwijania funkcji QFD

QFD – quality function deployment

jest to technika z kategorii zarządzania jakością, 
wspomagająca tłumaczenie potrzeb klienta na 
techniczne wymagania dla oprogramowania

celem jest jak najlepsze zrozumienie wymagań
klienta

technika ta została opracowana w Japonii, 
pierwsze zastosowanie: Mitsubishi Heavy 
Industries (lata 70. XX. wieku)

background image

11/23

Wymagania w technice QFD*

wymagania normalne → wyrażone przez klienta 
podczas spotkań z analitykami, spełnienie ich oznacza 
satysfakcję klienta (funkcje produktu, interfejsy, 
efektywność)

wymagania oczekiwane → takie o których klient nie 
wspomniał, gdyż uważał je za oczywiste (łatwość obsługi i 
instalacji, poprawność działania), niespełnienie ich oznacza 
niezadowolenie klienta

wymagania ekscytujące → ponad oczekiwania klienta, 
spełnienie ich oznacza duże zadowolenie klienta, np. 
dodatkowe możliwości konfiguracyjne (dostosowywanie 
interfejsu, itp.)

* R. Zultner: „Quality Function Deployment for Software: Satysfying customers”,  
American Programmer, 1992

background image

12/23

Przypadki użycia

zbiór scenariuszy, zbiór ciągów zdarzeń wykonywanych 

przez system, opisy  sposobów użycia systemu

sporządzane w celu ułatwienia zdefiniowania wymagań

stawianych oprogramowaniu 

pierwszymi krokami są identyfikacja osób i sprzętu 

korzystającego z systemu

stanowią opis działania osoby w interakcji z systemem

może zawierać ograniczenia czasowe lub inne ograniczenia

przypadki użycia mogą być różnie oceniane przez 

użytkowników, można obliczyć średni priorytet każdego 

przypadku użycia stosując go w modelu przyrostowym 

proc. wytw. do określania funkcji systemu 

przygotowywanych w 1. kolejności

realizacja: np. diagram przypadków użycia (UML) 

background image

13/23

Zasady analizowania 
oprogramowania

identyfikacja dziedziny problemu

określenie funkcjonalności oprogramowania

określenie zachowania programu w zależności 
od czynników zewnętrznych

określenie struktury warstwowej/hierarchicznej 
systemu zawierające modele informacji, funkcji 
i zachowań systemu

kierunek analizy: od cech najistotniejszych do 
szczegółów

background image

14/23

Reguły analizowania wymagań *

zrozumienie problemu (zapobieganie sytuacji: świetny 
program ale rozwiązuje nie to co potrzeba”)

zastosowanie prototypów - ułatwia ocenę przez 
użytkownika

zapamiętanie źródła i uzasadnienia każdego wymagania

ocena wymagań z różnych punktów widzenia, 
zapobiega powstaniu sprzeczności i przeoczeń

uporządkowanie wymagań wg ważności

eliminacja niejasności, realizowana poprzez 
wykonywanie formalnych przeglądów technicznych

* A. Davis: „201 principles of software development”, McGraw-Hill 1995

background image

15/23

Dziedzina informacyjna

jest podstawową czynnością analizy wymagań

obejmuje:

model danych - obiekty danych oraz zdarzenia związane z ich 
przetwarzaniem, należy zidentyfikować istniejące między nimi 
zależności

przepływ informacji – określenie zmian dotyczących danych i 
zdarzeń przemieszczającymi się między różnymi częściami 
systemu

strukturę informacji – organizacja elementów danych i 
zdarzeń (np. struktura drzewiasta, tablica itp.), związki między 
elementami struktury, zapis informacji w strukturach

background image

16/23

Modelowanie

tworzenie modeli ułatwia zrozumienie funkcjonowanie 
projektowanego obiektu

model oprogramowania musi przedstawiać przetwarzane 
informacje, funkcjonalności związane z przetwarzaniem 
danych i zachowanie systemu podczas przetwarzania 
danych

modelowanie obejmuje

model funkcji → pobieranie, przetwarzanie i udostępnianie 
danych, tworzone od prostych modeli kontekstowych do bardziej 
szczegółowych

model zachowań → opis reakcji na zdarzenia, opis możliwych 
stanów i zdarzeń mogących prowadzić do zmian stanów

background image

17/23

Dzielenie

zalecane do lepszej obsługi dużych 
skomplikowanych problemów

pierwszym krokiem jest utworzenie 
hierarchicznej prezentacji funkcji lub dziedziny 
informacyjnej

w kolejnych krokach wykonywany jest podział
najwyższego elementu:

przemieszczając się w dół hierarchii (zwiększanie 
szczegółowości), lub

przemieszczając się w bok (pozostając na jednym 
poziomie) i dekomponując problem

background image

18/23

Prototypowanie

wykonanie prototypu może pomóc w określeniu wymagań

prototyp można rozwijać i zmieniać

udoskonalony prototyp może stać się finalną wersją
oprogramowania

prototyp podlega ocenie przez klienta ale także przez 
twórców programu

typy prototypów

zamknięte → jednokrotnego użycia, wykorzystywany do 
ogólnego przedstawienia wymagań, potem niepotrzebny, nowa 
wersja tworzona innymi środkami 

otwarte → wielokrotnego użycia, stosowany również na etapach 
projektowania i implementacji, wstępna wersja produktu finalnego

background image

19/23

Wybór prototypu (1)

prototyp zaleca się do złożonych aplikacji, 
używających niebanalnych algorytmów i 
zaawansowanych metod przetwarzania danych, 
cechujących się intensywną komunikacją z 
użytkownikiem

jeżeli przygotowanie prototypu wymaga 
napisania dużej ilości kodu, to prototypowanie 
nie jest zalecane

czasem wykonywany jest najpierw podział na 
mniejsze moduły i wykonywane są ich 
prototypy

background image

20/23

Wybór prototypu (2) *

* S. Andriole: „Rapid application prototyping”, QED 1992

nie

nie

tak

tak
tak
tak

tak

tak

tak/nie

tak
nie
nie

tak

tak

tak/nie

nie

tak
tak

Czy ustalono rodzaj i zastosowanie 
systemu?
Czy problem można modelować?
Czy klient jest pewny podstawowych 
wymagań stawianych systemowi?
Czy wymagania są znane i stabilne?
Czy wymagania są niejasne?
Czy w wymaganiach występują
sprzeczności?

Konieczna 

dodatkowa 

analiza

Prototyp 

wielokrotnego 

użycia

Prototyp 

jednokrotnego 

użycia

Pytanie

background image

21/23

Specyfikowanie wymagań –
zasady *

oddzielenie spojrzenia abstrakcyjnego na funkcje 

systemu od szczegółów implementacji

określenie modelu oczekiwanego zachowania systemu 

(dane i reakcje na zdarzenia)

kontekst działania programu, sposób komunikacji z 

innymi elementami systemu

środowisko aplikacji

przygotowanie modelu opisującego działanie widziane 

oczami użytkownika

specyfikacja odporna na przeoczenia i łatwa do 

uzupełniania

możliwość łatwej zmiany specyfikacji

* R. Balzer, N. Goodman: „Principles of good specification and their implications for 
specification languages”, Addison-Wesley 1986

background image

22/23

Przegląd specyfikacji

specyfikacja jest podstawą późniejszych prac, dlatego 
musi być wykonana z należytą starannością

klienci i twórcy powinni dokonać przeglądu specyfikacji

należy sprawdzić kompletność i spójność specyfikacji, 
dokładność opisu funkcji i zachowań, dziedziny 
informacyjnej

po wykonaniu przeglądu następuje akceptacja 
specyfikacji

możliwe są dalsze zmiany w specyfikacji, jednak mogą
one prowadzić do zmiany kosztów i harmonogramu 
realizacji przedsięwzięcia

background image

25

Dziękuję za uwagę

źródło: „Praktyczne podejście do inżynierii oprogramowania”, R.S. Pressman