Rozdz5

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 1

Wymagania stawiane
oprogramowaniu

Przedstawienie
zagadnienia wymagań
stawianych systemowi
oprogramowania i opisanie
różnych sposobów
wyrażania tych wymagań

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 2

Cele

Rozumieć pojęcie wymagań użytkownika i wymagań
systemowych oraz wiedzieć, dlaczego te dwa rodzaje
wymagań mogą być zapisywane za pomocą różnych
notacji;

Rozumieć różnice między wymaganiami
funkcjonalnymi i niefunkcjonalnymi;

Znać dwie metody zapisywania wymagań, tzn.
strukturalny język naturalny i opisy oparte na
językach programowania;

Wiedzieć, jak wymagania mogą być zorganizowane w
dokumentacji wymagań stawianych oprogramowaniu.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 3

Zawartość

Wymagania funkcjonalne i niefunkcjonalne

Wymagania użytkownika

Wymagania systemowe

Dokumentacja wymagań stawianych
oprogramowaniu

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 4

Inżynieria wymagań

Opisy usług i ograniczeń są wymaganiami
stawianymi systemowi.

Proces wynajdowania, analizowania,
dokumentowania oraz sprawdzania usług i
ograniczeń nosi nazwę inżynierii
wymagań.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 5

Co to jest wymóg?

W przemyśle informatycznym pojęcie
wymagania nie jest stosowane konsekwentnie.

Niekiedy wymaganie jest postrzegane jako
zapisane na wysokim poziomie, abstrakcyjne
określenie usług, które system powinien
oferować, albo ograniczenie działania systemu.

Niektórzy określają wymaganie jako
szczegółową, matematycznie formalną definicję
funkcji systemu.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 6

Dlaczego występują
rozbieżności (Davis,1993)

Jeśli firma chce podpisać kontrakt na wielkie przedsięwzięcie

budowy oprogramowania, to musi najpierw określić swoje

wymagania w odpowiednio abstrakcyjny sposób, aby z góry nie

definiować rozwiązań. Wymagania muszą być spisane, aby różni

wykonawcy mogli ubiegać się o ten kontrakt, być może oferując

różne sposoby spełniania oczekiwać firmy – klienta. Gdy kontrakt

jest już podpisany, wykonawca musi zapisać klientowi definicję

systemu, podając więcej szczegółów, aby klient mógł zrozumieć i

zweryfikować to, co system będzie robił. Oba te dokumenty mogą

nosić nazwę dokumentacji wymagań stawianych systemowi.”

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 7

Typy wymagań

Wymagania użytkownika

To wyrażenia w języku naturalnym oraz diagramy o

usługach oczekiwanych od systemu oraz o

ograniczeniach, w których system ma działać.

Wymagania systemowe

Szczegółowo ustalają usługi systemu i ograniczenia.

Dokumentacja wymagań systemowych, zwana czasem

specyfikacją funkcjonalną, powinna być precyzyjna.

Specyfikacja projektu oprogramowania

Jest abstrakcyjnym opisem projektu oprogramowania,

który jest podstawa bardziej szczegółowego projektu i

implementacji.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 8

Wymagania użytkownika
systemu

Definicja wymagań użytkownika

Oprogramowanie musi zapewniać mechanizmy reprezentowania i
dostępu do plików zewnętrznych tworzonych przez inne narzędzia.

Specyfikacja wymagań
systemowych

1.1 Użytkownik powinien mieć możliwość definiowania typów plików zewnętrznych.
1.2 Każdy typ pliku zewnętrznego może mieć przypisane narzędzie do obróbki takich plików.
1.3 Każdy typ pliku zewnętrznego może być przedstawiony w postaci charakterystycznej ikony na ekranie
użytkownika.
1.4 Należy zapewnić udogodnienia do definiowania przez użytkownika ikon odpowiadających typom
plików zewnętrznych.
1.5 Gdy użytkownik wybierze ikonę powiązaną z plikiem zewnętrznym, następuje zastosowanie do tego
pliku narzędzia skojarzonego z typem tego pliku.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 9

Czytelnicy różnych rodzajów
specyfikacji

Wymagania

użytkownika

Wymagania

systemowe

Specyfikacja

projektu

oprogramowania

Menedżerowie klienta

Użytkownicy systemu

Inżynierowie klienta

Menedżerowie zleceniobiorcy

Architekci systemu

Użytkownicy systemu

Inżynierowie klienta

Architekci systemu

Twórcy oprogramowania

Inżynierowie klienta

Architekci systemu

Twórcy oprogramowania

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 10

Wymagania funkcjonalne i
niefunkcjonalne

Wymagania funkcjonalne

Są stwierdzeniami, jakie usługi ma oferować system, jak ma

reagować na określone dane wejściowe oraz jak ma się

zachowywać w określonych sytuacjach. W niektórych

wypadkach wymagania funkcjonalne określają, czego system

nie powinien robić.

Wymagania niefunkcjonalne

To ograniczenia usług i funkcji systemu. Obejmują ograniczenia

czasowe, ograniczenia dotyczące procesu tworzenia, standardy

itd.

Wymagania dziedzinowe

Pochodzą z dziedziny zastosowania systemu odzwierciedlają jej

charakterystykę. Mogą być funkcjonalne lub niefunkcjonalne.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 11

Wymagania funkcjonalne

Wymagania funkcjonalne stawiane systemowi

opisują funkcjonalność lub usługi, które system

powinien oferować.

Zależą od rodzaju tworzonego oprogramowania,

spodziewanych użytkowników oprogramowania

i rodzaju wytwarzanego systemu.

Gdy mają postać wymagań użytkownika, ich

opis jest zwykle bardziej ogólny, natomiast

wymagania funkcjonalne systemowe

szczegółowo definiują funkcje systemu, jego

wejścia, wyjścia, wyjątki itd.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 12

Przykłady wymagań
systemowych

Użytkownik będzie mógł przeszukać zbiór
wszystkich baz danych lub wybrać tylko ich
podzbiór.

System udostępni odpowiednie narzędzia do
oglądania,

aby

użytkownik

mógł

czytać

dokumenty z magazynu.

Każde zamówienie będzie oznaczone unikatowym
identyfikatorem (ORDE_ID), który będzie można
skopiować

do

pamięci

trwałej

konta

użytkownika.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 13

Brak ścisłego określania
specyfikacji wymagań

Natura programisty każe mu interpretować jednoznaczne

wymagania tak, aby uprościć implementację. Zwykle nie

jest to jednak to, czego chciał klient.

Należy opracować nowe wymagania i dokonać zmian w

systemie. Opóźnia to dostarczenie systemu i podnosi

koszty.

Rozważmy wymaganie stawiane systemowi biblioteki,

które mówi o „odpowiednich narzędziach do oglądania”.

• Celem tego wymagania jest zapewnienie narzędzia do

oglądania wszystkich tych formatów.

• Programista działający pod presją czasu może udostępnić

po prostu narzędzie do oglądania tekstu i ogłosić

spełnienie wymagania.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 14

Kompletność i spójność

W zasadzie specyfikacja wymagań funkcjonalnych
stawianych systemowi powinna być kompletna i spójna.

Kompletność oznacza, że wszystkie potrzebne
użytkownikowi usługi powinny być zdefiniowane.

Spójność oznacza, że wymagania nie powinny mieć
sprzecznych definicji.

W praktyce w wypadku wielkich złożonych systemów
nie da się kompletności i spójności. Przyczynami tego są
swoista złożoność tych systemów oraz fakt, że różne
punkty widzenia są związane ze sprzecznymi
potrzebami.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 15

Wymagania niefunkcjonalne

Mogą definiować ograniczenia systemu, takie jak

możliwości urządzeń wejścia-wyjścia i reprezentacje

danych używane przez interfejsy systemu.

Przykładami wymagań stawianych procesowi są

specyfikacja standardów jakości, których należy użyć

w procesie, stwierdzenie, że projekt należy opracować

za pomocą konkretnego zbioru narzędzi CASE, i opis

procesu, którego należy przestrzegać.

Wymagania niefunkcjonalne wynikają z potrzeb

użytkownika, ograniczeń budżetowych, strategii firmy,

konieczności współpracy z innymi systemami sprzętu

lub oprogramowania, czynników zewnętrznych.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 16

Klasyfikacja wymagań
niefunkcjonalnych

Wymagania produktowe

Określają zachowanie produktu. Przykładami są wymagania

efektywnościowe dotyczące szybkości działania systemu i

jego zapotrzebowania na pamięć, wymagania niezawodności.

Wymagania organizacyjne

Wynikają ze strategii i procedur w firmie- kliencie i w firmie-

wytwórcy.

Wymagania zewnętrzne

Ta szeroka kategoria mieści wszystkie wymagania

wynikające z czynników zewnętrznych dla systemu i procesu

jego tworzenia. Obejmuje wymagania współpracy, które

definiują interakcje systemu z systemami innych firm,

wymagania prawne.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 17

Typy wymagań
niefunkcjonalnych

Wymagania

niefunkcjonalne

Wymagania

przenośności

Wymagania

niezawodności

Wymagania

sprawnościowe

Wymagania

etyczne

Wymagania

zewnętrzne

Wymagania

współpracy

Wymagania

produktowe

Wymagania

organizacyjne

Wymagania

efektywnościowe

Wymagania

użyteczności

Wymagania

dostawy

Wymagania

implementacyjne

Wymagania

standardów

Wymagania

prawne

Wymagania

pamięciowe

Wymagania

ochrony

prywatności

Wymagania

zabezpieczeń

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 18

Przykłady wymagań
niefunkcjonalnych

Wymaganie produktowe

Wszelka niezbędna komunikacja między APSE i użytkownikiem
powinna dać się wyrazić za pomocą standardowego zestawu
symboli Ady.

Wymaganie organizacyjne

Proces tworzenia systemu i końcowe dokumenty powinny być
zgodne z procesem i produktami zdefiniowanymi w XYZCo-SP-
STAN-95.

Wymaganie zewnętrzne

System nie powinien ujawniać operatorom żadnych danych
osobowych klientów oprócz nazwisk i numerów
identyfikacyjnych.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 19

Cele i wymagania

Powszechnie występującym
problemem z wymaganiami
niefunkcjonalnymi jest fakt, że
czasem trudno je zweryfikować.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 20

Przykłady

Cel systemu

System powinien być łatwy w użyciu dla
doświadczonych kontrolerów, a sposób jego organizacji
powinien zmniejszać liczbę błędów użytkownika.

Weryfikowalne wymaganie
niefunkcjonalne

Doświadczeni kontrolerzy powinni móc używać
wszystkich funkcji systemu po szkoleniu trwającym
dwie godziny. Po tym szkoleniu średnia liczba błędów
robionych przez doświadczonych użytkowników nie
powinna przekroczyć dwóch dziennie.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 21

Miary do specyfikowania
wymagań niefunkcjonalnych

Właściwość

Miara

Szybkość

Rozmi
ar

Łatwość użycia

Niezawodność

Solidność

Przenośn
ość

Liczba przetworzonych transakcji na sekundę
Czas reakcji na zdarzenie wywołane przez użytkownika
Czas odświeżenia ekranu

Kilobajty
Liczba układów
pamięci

Czas szkolenia
Liczba okien pomocy

Średni czas bez awarii
Prawdopodobieństwo
niedostępności
Częstość błędów
Dostępność

Czas uruchamiania po awarii
Ułamek zdarzeń powodujących awarie
Prawdopodobieństwo zniszczenia danych
po awarii

Procent poleceń zależnych od
platformy
Liczba docelowych systemów

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 22

Problemy z określeniem
wymagań

Klienci mogą nie być w stanie przetłumaczyć
swoich celów na wymagania ilościowe.

Wymagania niefunkcjonalne są często
sprzeczne lub powiązane z innymi
wymaganiami funkcjonalnymi.

W zasadzie należy odróżnić wymagania
funkcjonalne i niefunkcjonalne w
dokumentacji wymagań. W praktyce jest to
jednak trudne.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 23

Wymagania dziedzinowe

Wymagania dziedzinowe wynikają bardziej z

dziedziny zastosowania systemu niż z

konkretnych potrzeb użytkowników.

Mogą być nowymi wymaganiami

funkcjonalnymi, ograniczać istniejące

wymagania funkcjonalne albo ustalać sposób

wykonywania konkretnych obliczeń.

Wymagania dziedzinowe są istotne, ponieważ

odzwierciedlają podstawy dziedziny

zastosowania. Jeśli nie są spełnione, to system

nie może działać w sposób zadowalający.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 24

Wymagania stawiane systemowi
biblioteki

1.

Wszystkie bazy danych powinny być dostępne

przez jednolity interfejs użytkownika, którego

podstawą jest przyjety standard.

2.

Ze względu na ochronę praw autorskich

niektóre

dokumenty

należy

składać

natychmiast po ich otrzymaniu. Zależnie od

wymagań użytkownika, dokumenty te będą

drukowane lokalnie na serwerze systemowym

i przekazywane do rąk czytelnika albo

wysyłane na drukarkę sieciową.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 25

Wymagania dziedzinowe z
systemu bezpieczeństwa
ruchu pociągów

Tempo zmniejszania prędkości pociągu
jest wyznaczane następująco:

• D

pociągu

= D

sterowania

+ D

nachylenia

przy czym D

nachylenia

wynosi

9,81m/s

2

*

wyrównane nachylenie/alfa, a 9,81m/s

2

/alfa są znane dla różnych typów pociągów
.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 26

Zasadnicze problemy z
wymaganiami
dziedzinowymi

Są one wyrażone za pomocą języka
specyficznego dla dziedziny zastosowania, co
sprawia, że inżynierowie oprogramowania
często ich nie rozumieją.

Eksperci z danych dziedzin często mogli
pominąć te informację, ponieważ po prostu jest
dla nich oczywista.

Może nie być jednak ona oczywista dla twórców
systemu, którzy mogą to wymaganie
zaimplementować w sposób niezadowalający.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 27

Wymagania użytkownika

Wymagania użytkownika stawiane
systemowi powinny określać wymagania
funkcjonalne i niefunkcjonalne tak, aby
były zrozumiałe dla użytkowników
systemu, którzy nie mają szczegółowej
wiedzy technicznej.

Należy je zapisywać w języku naturalnym,
używając formularzy i prostych
intuicyjnych diagramów.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 28

Problemy z językiem
naturalnym

Brak jasności

Czasem trudno jest wyrażać się w języku naturalnym
precyzyjnie i jednoznacznie bez czynienia dokumentów
gadatliwymi i nieczytelnymi.

Sprzeczność wymagań

Trudno jest jasno rozgraniczać wymagania
funkcjonalne, wymagania niefunkcjonalne, cele systemu
i elementy projektu.

Łączenie wymagań

Kilka różnych wymagań może być zapisanych razem
jako jedno wymaganie.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 29

Wymaganie stawiane bazie
danych

Baza danych powinna wspomagać generowanie obiektów sterujących
i konfiguracyjnych, tzn. obiektów, które same są grupami innych obiektów
bazy danych. Udogodnienia do sterowania konfiguracją powinny
umożliwiać dostęp do obiektów w pewnej wersji grupy za pomocą niepełnej
nazwy.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 30

Wymaganie użytkownika
stawiane siatce edytora

Udogodnienia siatki. Przez opcje panelu sterowania użytkownik może
uaktywnić siatkę w centymetrach lub w calach, która będzie pomagała w
umieszczaniu bytów na diagramie. Siatka może być włączona i wyłączona
w dowolnej chwili sesji edycji; to samo dotyczy przełączania między calami
i centymetrami. Opcja siatki będzie dostępna w widoku „zmniejsz, aby
dopasować”, ale liczba linii siatki będzie wówczas zmniejszona, aby uniknąć
zapełnienia małego diagramu liniami siatki.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 31

Problemy przy stawianiu
wymagań

• Jeśli wymagania użytkownika zawierają zbyt wiele

informacji, to ograniczają wolność twórców systemu
w wyborze innowacyjnych rozwiązań oraz utrudniają
zrozumienie wymagań.

• Uzasadnienia związane z wymaganiami są istotne.

Pomagają wytwórcom i konserwatorom systemu w
zrozumieniu, dlaczego takie wymaganie się pojawiło,
i w ocenie wpływu zmiany tego wymagania.

• Szczegóły implementacyjne nie powinny pojawić się

bez informacji dotyczących działania części systemu.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 32

Definicja siatki w edytorze

2.6 Siatka
2.6.1 Edytor będzie udostępniał siatkę, tzn. matrycę linii
pionowych jako tło okna edytora.
Ta sama siatka powinna być
pasywna, tzn. za układanie bytów odpowiada użytkownik.
Uzasadnienie: Siatka pomaga użytkownikowi w tworzeniu
schludnego diagramu ze starannie poukładanymi bytami. Chociaż
siatka aktywna, przy której byty przeskakują do linii siatki, może
być użyteczna, jednak wówczas układ diagramu jest nieprecyzyjny.
Użytkownik jest najwłaściwszą osobą do decydowania o położeniu
bytów.

Specyfikacja: ECLIPSE/WS/Tools/DE/FS Punkt 5.6

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 33

Wymagania użytkownika
wobec dodawania węzłów

3.5.1 Dodawanie węzłów do projektu
3.5.1.1 Edytor będzie udostępniał użytkownikom udogodnienia
do dodawania do swoich projektów węzłów określonego typu
3.5.1.2 Sekwencja czynności, które prowadzą do dodania węzła,
powinna być następująca:

1. Użytkownik powinien wybrać typ węzła, jaki należy dodać
2. Użytkownik powinien przesunąć wskaźnik do przybliżonego

miejsca nowego węzła na diagramie i zalecić dodanie symbolu
węzła w tym punkcie

3. Użytkownik powinien następnie przeciągnąć węzeł do jego

ostatecznego położenia

Uzasadnienie: Użytkownik jest najwłaściwszą osobą do
decydowania o położeniu węzłów na diagramie. Takie podejście
daje użytkownikowi całkowite panowanie nad wyborem typu węzła
i jego umiejscowieniem

Specyfikacja: ECLIPSE/WS/Tools/DE/FS Punkt 3.5.1

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 34

Rady do zapisywania
wymagań użytkownika

Opracuj standardowy format i spraw, aby
wszystkie definicje wymagań były z nim zgodne.

Konsekwentnie używaj języka. W szczególności
rozróżnij wymagania obowiązkowe od
wskazanych.

Stosuj wyróżnienia (wytłuszczenia, kursywy) do
zaznaczania głównych części wymagania.

Unikaj, jak tylko się da, żargonu
komputerowego.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 35

Wymagania systemowe

Wymagania systemowe są bardziej

szczegółowymi opisami wymagań użytkownika.

Mogą być podstawą kontraktu na implementacje

systemu, powinny być zatem pełną i

niesprzeczną specyfikacją całego systemu.

Są traktowane przez inżynierów

oprogramowania jako punkt wyjścia do

projektowania systemu.

Specyfikacja wymagań systemowych może

zawierać różne modele systemu.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 36

Wymagania, a projekt

W dokumentacji wymagań można zdefiniować
wstępną architekturę systemu, aby nadać
specyfikacji odpowiednią strukturę. Wymagania
systemowe są zorganizowane zgodnie z podziałem
na podsystemy wchodzące w skład systemu.

W większości wypadków systemy muszą
współpracować z innymi istniejącymi systemami.
Ograniczają one projekt, co implikuje dodatkowe
wymagania stawiane nowemu systemowi.

Użycie specyficznego projektu może być
zewnętrznym wymaganiem systemowym.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 37

Dalsze kłopoty z językiem
naturalnym

Niejednoznaczność języka naturalnego prowadzi

do nieporozumień. Jackson (1995) daje wyśmienity

przykład takiej sytuacji, opisując symbole

wyświetlane przez ruchome schody. Mówią one

„buty trzeba założyć” i „psy trzeba nieść”

Do czytelnika należy stwierdzenie, czy dwa

wymagania są takie same, czy też się od siebie

różnią.

Nie ma łatwego podziału wymagań w języku

naturalnym na moduły. Znalezienie wszystkich

powiązanych wymagań może być trudne.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 38

Notacje specyfikacji
wymagań

Notacja

Opis

Strukturalny język To podejście polega na definiowaniu standardowych
formularzy
naturalny i szablonów do wyrażania specyfikacji wymagań
Języki opisu W tym podejściu używa się języka podobnego do
języka programowania,
projektu ale z bardziej abstrakcyjnymi elementami do
specyfikowania wymagań
poprzez model operacyjny systemu
Notacje graficzne Do definiowania wymagań funkcjonalnych stawianych
systemowi używa

się języka graficznego z tekstowymi dopiskami.

Przykładem jednego z

pierwszych takich języków graficznych

jest SADT (Ross, 1977;

Schoman i Ross, 1977).

Ostatnio używa się przypadków użycia

(Jacobsen i

inni;1993)
Specyfikacje Są to notacje oparte na pojęciach matematycznych,
takich jak skończone matematyczne maszyny stanowe lub zbiory.
Takie jednoznaczne specyfikacje

zmniejszają spory na

temat funkcjonalności między klientem a

zleceniobiorcą. Większość klientów nie rozumie jednak formalnych

specyfikacji i jest niechętna przyjęciu ich jako kontraktu na

budowę

systemu.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 39

Strukturalny język naturalny

Strukturalny język naturalny jest ograniczoną

postacią języka naturalnego, przeznaczoną do

zapisywania wymagań systemowych.

Zaletą tego podejścia jest to, że zachowując

wyrazistość i zrozumiałość języka naturalnego,

zapewnia w pewnym stopniu jednolitość specyfikacji.

Notacje oparte na języku strukturalnym mogą

ograniczać używaną terminologię i obejmować

szablony do specyfikowania wymagań systemowych.

Zawierają zwykle konstrukcje sterujące podobne do

spotykanych w językach oprogramowania i graficzne

wyróżnienia do podziału specyfikacji.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 40

Formularz do definiowania
wymagań

Opis specyfikowanej funkcji lub bytu

Opis jej danych wejściowych i źródło ich pochodzenia

Opis jej danych wyjściowych i miejsce ich przeznaczenia

Określenie, z których innych bytów się korzysta (część
wymaga)

Jeśli użyto podejścia funkcjonalnego, to jest wywołany
warunek początkowy, który musi być prawdziwy przed
wywołaniem tej funkcji, oraz warunek końcowy, który
musi być prawdziwy po wywołaniu funkcji.

Opis efektów ubocznych operacji (jeśli występują)

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 41

Specyfikacja wymagań
systemu z użyciem
standardowego formularza

ECLIPSE/Workstation/Tools/DE/FS/3.5.1

Funkcja. Dodaj węzeł
Opis. Dodaje węzeł do istniejącego projektu. Użytkownik wybiera typ i położenie węzła
po dodaniu do projektu węzeł jest zaznaczony. Użytkownik wybiera miejsce węzła
przesuwając wskaźnik na obszar, w którym dodano węzeł
Dane wejściowe. Typ węzła, Położenie węzła, Identyfikator projektu
Źródło. Typ węzła i Położenie węzła pochodzą od użytkownika, a Identyfikator projektu
z bazy danych
Dane wejściowe. Identyfikator projektu
Przeznaczenie. Baza danych projektów. Projekt jest utrwalany w bazie danych po
zakończeniu operacji
Wymagania. Korzeniem grafu projektu musi być dany identyfikator projektu
Warunek początkowy. Projekt jest otwarty i wyświetlony na ekranie użytkownika
Warunek końcowy. Projekt nie uległ zmianie z wyjątkiem dodania węzła zadanego
typu o zadanym położeniu
Efekty uboczne. Nie ma

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 42

Specyfikacje wymagań w PDL

Niejednoznaczności charakterystycznych dla języka

naturalnego można uniknąć przez opisywanie

wymagań operacyjnie za pomocą języka opisu

programów (Program Description Language, PDL).

Proponuje się używać PDL w dwóch następujących

sytuacjach:

Gdy operacja jest specyfikowana jako ciąg prostszych akcji,

których kolejność wykonania jest istotna. Opisy takich sekwencji

w języku naturalnym są czasami mylące, zwłaszcza gdy te ciągi

obejmują zagnieżdżone warunki i pętle.

Gdy trzeba wyspecyfikować interfejsy sprzętowe i programowe.

W wielu wypadkach interfejsy między podsystemami są

definiowane w specyfikacji wymagań systemowych. PDL

umożliwia definiowanie typów i obiektów interfejsowych.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 43

Opis części działania
bankomatu za pomocą PDL

Class Bankomat {
// tu deklaracje
public static void main (String args []) throws ZłaKarta {
try {
taKarta.odczytaj(); //może zgłosić wyjątek ZłaKarta
pin = Klawiatura.odczytajPin();próby =1;
while (!ta Karta.pin.equals(pin) & próby < 4)
{ pin = Klawiatura.odczytajPin(); próby = próby + 1;

}

if (!taKarta. pin.equals(pin))

throw new ZłaKarta („Zły PIN”);

toSaldo = taKarta.odczytajSaldo();
do { Ekran.pytanie(„Wybierz usługę”);

usługa = Ekran.dotkniętyKlawisz();

switch (usługa) {
case Usługi.wypłataZPokwitowaniem:
wymaganePokwitowanie = true;

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 44

Wady PDL

1.

Język używany do zapisu specyfikacji może nie
być wystarczająco wyrazisty, aby określić
funkcjonalność systemu.

2.

Notacja jest zrozumiała jedynie dla osób, które
znają podstawy języków programowania.

3.

Wymaganie może być potraktowane jako
specyfikacja projektu, a nie jako model, który
ma pomóc użytkownikom w zrozumieniu
systemu.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 45

Specyfikacja interfejsów

Większość systemów oprogramowania musi
współdziałać z innymi systemami, które już
zaimplementowano i zainstalowano w ich środowisku.

Trzy typy interfejsów

Interfejsy proceduralne

Struktury danych, które są przekazywane między podsystemami

Reprezentacje danych

Formalne notacje umożliwiają definiowanie
interfejsów w sposób jednoznaczny, ale ich
wyspecjalizowana natura oznacza, że są niezrozumiałe
bez odrębnego szkolenia.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 46

Opis interfejsu serwera
drukowania za pomocą PDL
opartego na Javie

interface SerwerDrukowania {

// definiuje abstrakcyjny serwer drukowania

// wymaga: interface Drukarka, interface DokumentDoWydruku

// udostepnia: inicjuj, drukuj, wyświetlKolejkeZadań, anulujZadanieDrukowania,

// zmieńDrukarkę

void inicjuj ( Drukarka d ) ;

void drukuj ( Drukarka d, DokumentDoWydruku w) ;

void wyświetlKolejkęZadań ( Drukarka d ) ;

void anulujZadanieDrukowania (Drukarka d, DokumentDoWydruku w) ;

void zmieńDrukarkę(Drukarka d1, Drukarka d2, DokumentDoWydruku w) ;

} //SerwerDrukowania

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 47

Dokumentacja wymagań
stawianych oprogramowaniu

Dokumentacja wymagań stawianych

oprogramowaniu (nazywana czasem specyfikacją

wymagań stawianych oprogramowaniu lub

Software Requirements Specification, SRS) jest

oficjalną deklaracją tego, co jest wymagane od

wytwórców systemu.

Powinna zawierać zarówno wymagania

użytkownika stawiane systemowi, jak i

szczegółowe specyfikacje wymagań systemowych

Nie jest projektem. Powinna opisywać co system

ma robić, a nie jak to robić

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 48

Klienci systemu

Menedżerowie

Inżynierowie systemów

Inżynierowie testów systemu

Inżynierowie

pielęgnacji systemów

Określają wymagania i czytają je,

aby sprawdzić, czy odpowiadają

ich potrzebom. Określają także

zmiany wymagań.

Używają dokumentacji wymagań

do planowania oferty budowy

systemu i do planowania

procesu jego tworzenia

Używają wymagań,

aby zrozumieć,

jaki system

ma być zbudowany

Używają wymagań, aby

opracować testy

zatwierdzające system

Używają wymagań jako pomocy

w zrozumieniu systemu

i związków między jego

częściami

Użytkownicy
dokumentacji
wymagań

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 49

Wymagania, które powinny być
spełnione przez dokumentację
wymagań

Powinna określać zachowanie systemu jedynie z
zewnątrz.

Powinna określać ograniczenia implementacji.

Powinno być łatwo ja zmieniać.

Powinna być informatorem dla konserwatorów
systemu.

Powinna obejmować przewidywania przyszłego
cyklu życia systemu.

Powinna charakteryzować akceptowalne relacje
na niepożądane zdarzenia.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 50

Standard wymogów IEEE

1

.

Wstęp

1.1. Przeznaczenie tej dokumentacji wymagań

1.2. Zakres produktu
1.3 Definicje, akronimy i skróty
1.4. Odnośniki
1.5. Przegląd pozostałej części dokumentu

2. Ogólny opis

2.1 Wizja produktu
2.2 Funkcje produktu
2.3 Charakterystyka użytkowników
2.4 Ogólne ograniczenia
2.5 Założenia i zależności

3. Szczegółowe wymagania
4. Dodatki
5. Skorowidz – jest zbyt ogólny, aby sam mógł być standardem firmowym. Można go

jednak dostosować adoptować tak, aby uzyskać definicję standardu, który

można wykorzystać dla potrzeb konkretnego przedsiębiorstwa.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 51

Struktura dokumentacji
wymagań

Przedmowa

Wstęp

Słownik

Definicja wymagań użytkownika

Architektura systemu

Specyfikacja wymagań systemowych

Modele systemu

Ewolucja systemu

Dodatki

Skorowidz

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 52

Główne tezy

W wymaganiach stawianych systemowi

oprogramowania ustala się co system powinien robić,

oraz definiuje ograniczenia działania i implementację.

Wymagania funkcjonalne to charakterystyki usług,

które system ma oferować, albo opisy sposobu

przeprowadzania pewnych obliczeń.

Wymagania niefunkcjonalne dzieli się na wymagania

produktowe, które ograniczają budowany system,

wymagania procesu, które dotyczą procesu

tworzenia, oraz wymagania zewnętrzne. Zwykle są

powiązane z pojawiającymi się właściwościami

systemu, a zatem stosują się do systemu jako całości.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 53

Główne tezy

Wymagania użytkownika są przeznaczone dla osób,

które mają używać i zaopatrywać się w system.

Należy spisać je za pomocą języka naturalnego,

tabel i diagramów tak, aby były zrozumiałe.

Wymagania systemowe służą do poinformowania w

precyzyjny sposób o funkcjach, które system ma

spełniać. Aby uniknąć niejednoznaczności, można

je zapisać jakiegoś języka strukturalnego. Może to

być strukturalna postać języka naturalnego, język

oparty na języku oprogramowania wysokiego

poziomu lub specjalny język do specyfikowania

wymagań.

background image

©Ian Sommerville 2000

Inżynieria oprogramowania,, Rozdział 5

Slide 54

Główne tezy

Dokumentacja wymagań stawianych
oprogramowaniu jest uzgodnionym
zapisem wymagań systemowych. Należy
nadać jej odpowiednią strukturę, aby
mogła być używana zarówno przez
klientów systemu, jak i twórców
oprogramowania.


Document Outline


Wyszukiwarka

Podobne podstrony:
Oksford med klinicznej rozdz5
rozdz5
Rozdz5
rozdz5mich
ROZDZ5A, Zbigniew Kosma Podstawy Mechaniki Płynów
ROZDZ5B, Zbigniew Kosma Podstawy Mechaniki Płynów
ROZDZ5C, Zbigniew Kosma Podstawy Mechaniki Płynów
B-rozdz5, PW SiMR, Inżynierskie, Semestr V, syf, laborki, Uklady napedowe, TeoRuch
Rozdz5
Rozdz5
Merton ModlitwaKontemplacyjna Rozdz5 7
ROZDZ5, Polibuda (MiBM), Semestr VI, SKOWRON, Nowy folder, VI semestr, przejściówka, bilu, Praca prz
sztompka rozdz5Od stosunków spo³ecznych do organizacji (5)
ROZDZ5AB, Zbigniew Kosma Podstawy Mechaniki Płynów
Oksford med klinicznej rozdz5

więcej podobnych podstron