Definiowanie wymagań
Definiowanie wymagań
funkcjonalnych oraz
funkcjonalnych oraz
niefunkcjonalnych; metody
niefunkcjonalnych; metody
ich pozyskiwania"
ich pozyskiwania"
Autorzy: Maciej
Autorzy: Maciej
Michalczyk(s3768)
Michalczyk(s3768)
Łukasz Hryniewiecki(s3829)
Łukasz Hryniewiecki(s3829)
Spis Wykładu
Spis Wykładu
1) Co to jest wymaganie
1) Co to jest wymaganie
2) Cele
2) Cele
3) Inżynieria wymagań
3) Inżynieria wymagań
4) Typy wymagań
4) Typy wymagań
5) Wymagania funkcjonalne i
5) Wymagania funkcjonalne i
niefunkcjonalne
niefunkcjonalne
6) Rady dla piszących wymagania
6) Rady dla piszących wymagania
Co to jest wymaganie
Co to jest wymaganie
Może być zarówno abstrakcyjnym wysokiego
Może być zarówno abstrakcyjnym wysokiego
poziomu opisem usługi jak również precyzyjnym
poziomu opisem usługi jak również precyzyjnym
matematycznym opisem działania konkretnej
matematycznym opisem działania konkretnej
funkcji
funkcji
Jest to nieuniknione gdyż wymagania mogą służyć
Jest to nieuniknione gdyż wymagania mogą służyć
w różnych celach
w różnych celach
Podstawa do podpisania kontraktu, czyli wymaganie
Podstawa do podpisania kontraktu, czyli wymaganie
otwarte
otwarte
Podstawa do stworzenia oprogramowania, czyli
Podstawa do stworzenia oprogramowania, czyli
precyzyjne wymaganie zamknięte
precyzyjne wymaganie zamknięte
Oba te zdania opisują coś co nazywa się wymaganiami
Oba te zdania opisują coś co nazywa się wymaganiami
Co to jest wymóg?
Co to jest wymóg?
Pojęcie stosowane niekonsekwentnie
Pojęcie stosowane niekonsekwentnie
Zapisane na wysokim poziomie,
Zapisane na wysokim poziomie,
abstrakcyjne określenie usług, które
abstrakcyjne określenie usług, które
system powinien oferować, albo
system powinien oferować, albo
ograniczenie działania systemu.
ograniczenie działania systemu.
Niektórzy określają wymaganie jako
Niektórzy określają wymaganie jako
szczegółową, matematycznie formalną
szczegółową, matematycznie formalną
definicję funkcji systemu.
definicję funkcji systemu.
Istotność etapu analizy
Istotność etapu analizy
wymagań
wymagań
Najistotniejsze problemy procesu rozwoju oprogramowania
Najistotniejsze problemy procesu rozwoju oprogramowania
Źródło:
Źródło:
D. Leffingwell,
D. Leffingwell,
D. Widrig:
D. Widrig:
Managing
Managing
Software
Software
Requirements
Requirements
Addison-
Addison-
Wesley 1999
Wesley 1999
Koszty błędnych wymagań
Koszty błędnych wymagań
Źródło:
Źródło:
D. Leffingwell,
D. Leffingwell,
D. Widrig:
D. Widrig:
Managing
Managing
Software
Software
Requirement
Requirement
s
s
Addison-
Addison-
Wesley 1999
Wesley 1999
„
„
Mały błąd na początku wielkim jest na końcu”
Mały błąd na początku wielkim jest na końcu”
(Arystoteles)
(Arystoteles)
Cele
Cele
Rozumienie pojęć wymagań użytkownika i
Rozumienie pojęć wymagań użytkownika i
wymagań systemowych
wymagań systemowych
Rozumienie różnic pomiędzy wymaganiami
Rozumienie różnic pomiędzy wymaganiami
funkcjonalnymi i niefunkcjonalnymi
funkcjonalnymi i niefunkcjonalnymi
Poznanie dwóch metod zapisywania
Poznanie dwóch metod zapisywania
wymagań
wymagań
Wiedza, jak wymagania mogą być
Wiedza, jak wymagania mogą być
organizowane w dokumentacji
organizowane w dokumentacji
Inżynieria wymagań
Inżynieria wymagań
Proces ustalenia jakich usług użytkownik
Proces ustalenia jakich usług użytkownik
oczekuje od systemu i ograniczeń, które
oczekuje od systemu i ograniczeń, które
system musi spełniać zarówno podczas
system musi spełniać zarówno podczas
tworzenia jak i podczas działania
tworzenia jak i podczas działania
Wymagania to opisy usług, które system
Wymagania to opisy usług, które system
ma udostępniać i ograniczeń, które musi
ma udostępniać i ograniczeń, które musi
spełniać
spełniać
Typy wymagań
Typy wymagań
Wymagania użytkownika
Wymagania użytkownika
Wyrażenia w języku naturalnym oraz diagramy o usługach
Wyrażenia w języku naturalnym oraz diagramy o usługach
oczekiwanych od systemu oraz o ograniczeniach. Pisane
oczekiwanych od systemu oraz o ograniczeniach. Pisane
dla klienta
dla klienta
Wymagania systemowe
Wymagania systemowe
Precyzyjna dokumentacja opisująca szczegółowo wszystkie
Precyzyjna dokumentacja opisująca szczegółowo wszystkie
usługi systemu i ograniczenia. Część kontraktu pomiędzy
usługi systemu i ograniczenia. Część kontraktu pomiędzy
klientem a dostawcą
klientem a dostawcą
Specyfikacja projektu oprogramowania
Specyfikacja projektu oprogramowania
Abstrakcyjny opis projektu oprogramowania, który jest
Abstrakcyjny opis projektu oprogramowania, który jest
podstawą bardziej szczegółowego projektu i implementacji.
podstawą bardziej szczegółowego projektu i implementacji.
Pisana dla programistów
Pisana dla programistów
Zawartość
Zawartość
Wymagania funkcjonalne i
Wymagania funkcjonalne i
niefunkcjonalne
niefunkcjonalne
Wymagania użytkownika
Wymagania użytkownika
Wymagania systemowe
Wymagania systemowe
Dokumentacja wymagań stawianych
Dokumentacja wymagań stawianych
oprogramowaniu
oprogramowaniu
Definicje i specyfikacje
Definicje i specyfikacje
Definicja wymagań użytkownika
Specyfikacja wymagań systemowych
1. Oprogramowanie musi zapewnić mechanizmy reprezentowania i
dostępu do plików zewnętrznych tworzonych przez inne
narzędzia
a. Użytkownik powinien mieć możliwość definiowania typów plików
zewnętrznych
b. Każdy typ pliku zewnętrznego może mieć przypisane narzędzie
do obróbki tego typu plików
c. Każdy typ pliku zewnętrznego może być przedstawiony w
postaci charakterystycznej ikony na ekranie użytkownika
d. Należy zapewnić udogodnienia do definiowana przez
użytkownika ikon odpowiadających typom plików zewnętrznych
e. Gdy użytkownik wybierze ikonę powiązaną z plikiem
zewnętrznym, następuje zastosowanie do tego pliku narzędzia
skojarzonego z typem tego pliku
Czytelnicy różnych wymagań
Czytelnicy różnych wymagań
Wymagania
użytkownika
Wymagania
systemowe
Specyfikacja
projektu
oprogramowania
Menedżerowie klienta
Użytkownicy systemu
Inżynierowie klienta
Menedżerowi zleceniodawcy
Architekci systemu
Użytkownicy systemu
Inżynierowie klienta
Architekci systemu
Twórcy oprogramowania
Inżynierowie klienta (być może)
Architekci systemu
Twórcy oprogramowania
Wymagania funkcjonalne i
Wymagania funkcjonalne i
niefunkcjonalne
niefunkcjonalne
Wymagania funkcjonalne
Wymagania funkcjonalne
Stwierdzenia opisujące, jakie usługi ma oferować
Stwierdzenia opisujące, jakie usługi ma oferować
system, jak ma reagować na określone dane wejściowe
system, jak ma reagować na określone dane wejściowe
oraz jak ma reagować w określonych sytuacjach
oraz jak ma reagować w określonych sytuacjach
.
.
Wymagania niefunkcjonalne
Wymagania niefunkcjonalne
Ograniczenia usług i funkcji systemu obejmujące:
Ograniczenia usług i funkcji systemu obejmujące:
ograniczenia czasowe, ograniczenia dotyczące procesu
ograniczenia czasowe, ograniczenia dotyczące procesu
tworzenia, standardy itd.
tworzenia, standardy itd.
Wymagania dziedzinowe
Wymagania dziedzinowe
Wymagania pochodzące z dziedziny zastosowania
Wymagania pochodzące z dziedziny zastosowania
systemu i odzwierciedlające jego charakterystykę
systemu i odzwierciedlające jego charakterystykę
Wymagania funkcjonalne
Wymagania funkcjonalne
Opisują funkcjonalność lub usługi, które system
Opisują funkcjonalność lub usługi, które system
powinien oferować
powinien oferować
Zależą od rodzaju tworzonego
Zależą od rodzaju tworzonego
oprogramowania, spodziewanych
oprogramowania, spodziewanych
użytkowników oprogramowania i rodzaju
użytkowników oprogramowania i rodzaju
wytwarzanego systemu
wytwarzanego systemu
Wymagania użytkownika mają zazwyczaj
Wymagania użytkownika mają zazwyczaj
postać ogólną, ,natomiast systemowe
postać ogólną, ,natomiast systemowe
szczegółowo definiują funkcje systemu, wejścia
szczegółowo definiują funkcje systemu, wejścia
wyjścia wyjątki itd..
wyjścia wyjątki itd..
Przykłady wymagań
Przykłady wymagań
funkcjonalnych
funkcjonalnych
Użytkownik będzie mógł przeszukać zbiór
Użytkownik będzie mógł przeszukać zbiór
wszystkich danych lub wybrany podzbiór.
wszystkich danych lub wybrany podzbiór.
System dostarczy narzędzi do przeglądania
System dostarczy narzędzi do przeglądania
dokumentów ze magazynu dokumentów.
dokumentów ze magazynu dokumentów.
Każde zamówienie będzie oznaczone
Każde zamówienie będzie oznaczone
unikatowym identyfikatorem (ORDER_ID),
unikatowym identyfikatorem (ORDER_ID),
który będzie można skopiować do pamięci
który będzie można skopiować do pamięci
trwałej konta użytkownika.
trwałej konta użytkownika.
Nieprecyzyjność wymagań
Nieprecyzyjność wymagań
Kiedy wymagania nie są precyzyjnie
Kiedy wymagania nie są precyzyjnie
wyrażone powstają problemy
wyrażone powstają problemy
Nieprecyzyjne wymagania są różnie
Nieprecyzyjne wymagania są różnie
interpretowane przez użytkowników i
interpretowane przez użytkowników i
programistów
programistów
Rozważ użycie ‘odpowiedniego rzecznika’
Rozważ użycie ‘odpowiedniego rzecznika’
Intencje użytkownika
Intencje użytkownika
Interpretacja programisty
Interpretacja programisty
Spójność i pełność wymagań
Spójność i pełność wymagań
W założeniach wymagania powinny być spójne
W założeniach wymagania powinny być spójne
i pełne
i pełne
Pełność
Pełność
Powinny opisywać wszystkie wymagane
Powinny opisywać wszystkie wymagane
oczekiwania
oczekiwania
Pełne
Pełne
Nie powinno być sprzeczności pomiędzy
Nie powinno być sprzeczności pomiędzy
opisywanymi oczekiwaniami
opisywanymi oczekiwaniami
W praktyce nie można stworzyć spójnego i
W praktyce nie można stworzyć spójnego i
pełnego opisu wymagań
pełnego opisu wymagań
Wymagania niefunkcjonalne
Wymagania niefunkcjonalne
Opisują właściwości i ograniczenia systemu np.
Opisują właściwości i ograniczenia systemu np.
niezawodność, czas odpowiedzi, ilość miejsca
niezawodność, czas odpowiedzi, ilość miejsca
na dysku.
na dysku.
Wymagania stawiane procesowi mogą
Wymagania stawiane procesowi mogą
specyfikować użycie określonego narzędzia,
specyfikować użycie określonego narzędzia,
języka programowania lub metodologii
języka programowania lub metodologii
projektowej.
projektowej.
Wymagania niefunkcjonalne mogą być
Wymagania niefunkcjonalne mogą być
istotniejsze od funkcjonalnych. Jeśli nie będą
istotniejsze od funkcjonalnych. Jeśli nie będą
spełnione system będzie bezużyteczny.
spełnione system będzie bezużyteczny.
Klasyfikacja wymagań
Klasyfikacja wymagań
niefunkcjonalnych
niefunkcjonalnych
Dotyczące produktu
Dotyczące produktu
Wymagania określające jak ma się zachowywać
Wymagania określające jak ma się zachowywać
produkt. Np. wydajność, niezawodność
produkt. Np. wydajność, niezawodność
Dotyczące organizacji
Dotyczące organizacji
Wynikające ze strategii i procedur w firmach np.
Wynikające ze strategii i procedur w firmach np.
standardy procesu, wymagana dokumentacja, metoda
standardy procesu, wymagana dokumentacja, metoda
projektowania.
projektowania.
Wymagania zewnętrzne
Wymagania zewnętrzne
Wynikające z czynników zewnętrznych dla systemu np.
Wynikające z czynników zewnętrznych dla systemu np.
interakcja z systemami innych firm, wymagania
interakcja z systemami innych firm, wymagania
prawne.
prawne.
Typy wymagań
Typy wymagań
niefunkcjonalnych
niefunkcjonalnych
Wymagania
niefunkcjonalne
Wymagania
produktowe
Wymagania
organizacyjne
Wymagania
zewnętrzne
Wymagania
sprawnościowe
Wymagania
niezawodności
Wymagania
przenośności
Wymagania
współpracy
Wymagania
etyczne
Wymagania
zabezpieczeń
Wymagania
prawne
Wymagania
ochrony
prywatności
Wymagania
implementacyjne
Wymagania
standardów
Wymagania
dostawy
Wymagania
użyteczności
Wymagania
efektywnościowe
Wymagania
pamięciowe
Miary do specyfikowania
Miary do specyfikowania
wymagań niefunkcjonalnych
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
Cele i wymagania
Cele i wymagania
Wymagania niefunkcjonalne mogą być trudne
Wymagania niefunkcjonalne mogą być trudne
do precyzyjnego zapisania a nieprecyzyjne
do precyzyjnego zapisania a nieprecyzyjne
wymagania mogą być trudne do zweryfikowania
wymagania mogą być trudne do zweryfikowania
Cel
Cel
Generalna intencja aby system coś spełniał
Generalna intencja aby system coś spełniał
Weryfikowalne wymaganie niefunkcjonalne
Weryfikowalne wymaganie niefunkcjonalne
Stwierdzenie używające jakiejś miary, która może
Stwierdzenie używające jakiejś miary, która może
być obiektywne zmierzona
być obiektywne zmierzona
Cele mogą być przydatne dla programistów,
Cele mogą być przydatne dla programistów,
gdyż przekazują wskazówki o priorytetach
gdyż przekazują wskazówki o priorytetach
klienta
klienta
Przykłady
Przykłady
Cel
Cel
System powinien być łatwy w użyciu dla
System powinien być łatwy w użyciu dla
doświadczonych kontrolerów, a sposób organizacji
doświadczonych kontrolerów, a sposób organizacji
powinien zmniejszać liczbę błędów użytkownika
powinien zmniejszać liczbę błędów użytkownika
Weryfikowalne
wymaganie
Weryfikowalne
wymaganie
niefunkcjonalne
niefunkcjonalne
Doświadczeni kontrolerzy powinni móc używać
Doświadczeni kontrolerzy powinni móc używać
wszystkich funkcji systemu po szkoleniu trwającym
wszystkich funkcji systemu po szkoleniu trwającym
dwie godziny. Po tym szkoleniu średnia liczba błędów
dwie godziny. Po tym szkoleniu średnia liczba błędów
robionych przez doświadczonych użytkowników nie
robionych przez doświadczonych użytkowników nie
powinna przekroczyć dwóch dziennie.
powinna przekroczyć dwóch dziennie.
Zależności między
Zależności między
wymaganiami
wymaganiami
W dużych systemach często występują konflikty
W dużych systemach często występują konflikty
pomiędzy wymaganiami funkcjonalnymi i
pomiędzy wymaganiami funkcjonalnymi i
niefunkcjonalnymi
niefunkcjonalnymi
System stacji kosmicznej
System stacji kosmicznej
Dla zminimalizowania wagi liczba chipów powinna być
Dla zminimalizowania wagi liczba chipów powinna być
jak najmniejsza
jak najmniejsza
Dla oszczędności energii chipy powinny być
Dla oszczędności energii chipy powinny być
energooszczędne
energooszczędne
Ale energooszczędne chipy będą zajmowały więcej
Ale energooszczędne chipy będą zajmowały więcej
miejsca, gdyż będzie ich potrzeba więcej. Które
miejsca, gdyż będzie ich potrzeba więcej. Które
wymaganie jest ważniejsze?
wymaganie jest ważniejsze?
Wymagania dziedzinowe
Wymagania dziedzinowe
Wynikają bardziej z dziedziny
Wynikają bardziej z dziedziny
zastosowania systemu niż z konkretnych
zastosowania systemu niż z konkretnych
potrzeb użytkowników
potrzeb użytkowników
Mogą być nowymi wymaganiami
Mogą być nowymi wymaganiami
funkcjonalnymi, ograniczać istniejące albo
funkcjonalnymi, ograniczać istniejące albo
ustalać sposób wykonania konkretnych
ustalać sposób wykonania konkretnych
obliczeń
obliczeń
Jeśli będą niespełnione system może być
Jeśli będą niespełnione system może być
bezużyteczny
bezużyteczny
Problemy z wymaganiami
Problemy z wymaganiami
dziedzinowymi
dziedzinowymi
Zrozumienie
Zrozumienie
Wymagania są wyrażone w języku typowym
Wymagania są wyrażone w języku typowym
dla dziedziny
dla dziedziny
To często nie jest zrozumiałe dla
To często nie jest zrozumiałe dla
programistów tworzących system
programistów tworzących system
Milczące założenia
Milczące założenia
Specjaliści w dziedzinie są tak
Specjaliści w dziedzinie są tak
przyzwyczajeni do danego wymagania, że
przyzwyczajeni do danego wymagania, że
często nie wyrażają go w postaci dokumentu
często nie wyrażają go w postaci dokumentu
Wymagania użytkownika
Wymagania użytkownika
Powinny opisywać funkcjonalne i
Powinny opisywać funkcjonalne i
niefunkcjonalne wymagania tak, aby
niefunkcjonalne wymagania tak, aby
były zrozumiałe dla użytkowników
były zrozumiałe dla użytkowników
systemu nie posiadających wiedzy
systemu nie posiadających wiedzy
technicznej
technicznej
Należy je zapisywać w języku
Należy je zapisywać w języku
naturalnym używając formularzy i
naturalnym używając formularzy i
intuicyjnych diagramów
intuicyjnych diagramów
Problemy z językiem
Problemy z językiem
naturalnym
naturalnym
Brak jasności
Brak jasności
Trudno uzyskać precyzję bez czynienia
Trudno uzyskać precyzję bez czynienia
dokumentów nieczytelnymi i gadatliwymi
dokumentów nieczytelnymi i gadatliwymi
Sprzeczność wymagań
Sprzeczność wymagań
Wymagania funkcjonalne i niefunkcjonalne
Wymagania funkcjonalne i niefunkcjonalne
łatwo się mieszają
łatwo się mieszają
Łączenie wymagań
Łączenie wymagań
Kilka wymagań może być wyrażonych
Kilka wymagań może być wyrażonych
wspólnie
wspólnie
Problemy z wymaganiami
Problemy z wymaganiami
Wymagania dla bazy danych zawierają
Wymagania dla bazy danych zawierają
zarówno opisy ogólne jak i szczegółowe
zarówno opisy ogólne jak i szczegółowe
Opisują koncepcję sterowania
Opisują koncepcję sterowania
Zawierają szczegóły o tym, że grupy powinny być
Zawierają szczegóły o tym, że grupy powinny być
dostępne za pomocą niepełnych nazw
dostępne za pomocą niepełnych nazw
Wymagania dla edytora siatki łączą trzy grupy
Wymagania dla edytora siatki łączą trzy grupy
wymagań
wymagań
Pojęciowe wymagania funkcjonalne
Pojęciowe wymagania funkcjonalne
Wymaganie niefunkcjonalne
Wymaganie niefunkcjonalne
Niefunkcjonalne wymaganie stawiane interfejsowi
Niefunkcjonalne wymaganie stawiane interfejsowi
użytkownika
użytkownika
Rady dla piszących
Rady dla piszących
wymagania
wymagania
Opracuj standard i używaj go dla
Opracuj standard i używaj go dla
wszystkich wymagań
wszystkich wymagań
Konsekwentnie używaj języka. Używaj
Konsekwentnie używaj języka. Używaj
„będzie” dla wymagań obowiązkowych a
„będzie” dla wymagań obowiązkowych a
„powinien” dla oczekiwanych.
„powinien” dla oczekiwanych.
Stosuj wyróżnienia do zaznaczania
Stosuj wyróżnienia do zaznaczania
głównych części wymagania
głównych części wymagania
Unikaj żargonu komputerowego
Unikaj żargonu komputerowego
Wymagania systemowe
Wymagania systemowe
Dokładniejsze wyrażenie wymagań
Dokładniejsze wyrażenie wymagań
użytkownika
użytkownika
Służą jako podstawa do zaprojektowania
Służą jako podstawa do zaprojektowania
systemu
systemu
Mogą być użyte jako część kontraktu
Mogą być użyte jako część kontraktu
Można je przedstawiać za pomocą
Można je przedstawiać za pomocą
modeli
modeli
Strukturalny język naturalny
Strukturalny język naturalny
Ograniczona postać języka naturalnego,
Ograniczona postać języka naturalnego,
przeznaczona do zapisywania wymagań
przeznaczona do zapisywania wymagań
systemowych
systemowych
Usuwa niektóre z niejednoznaczności i
Usuwa niektóre z niejednoznaczności i
elastyczności języka naturalnego
elastyczności języka naturalnego
zapewniając w pewnym stopniu
zapewniając w pewnym stopniu
jednolitość specyfikacji
jednolitość specyfikacji
Często wspierany przez szablony
Często wspierany przez szablony
Specyfikacje w PDL
Specyfikacje w PDL
Wymagania są określane przy użyciu języka opisu
Wymagania są określane przy użyciu języka opisu
programów, który zawiera instrukcje zwiększające
programów, który zawiera instrukcje zwiększające
wyrazistość.
wyrazistość.
Do stosowania gdy:
Do stosowania gdy:
Funkcja jest ciągiem akcji, a kolejność wykonania tych
Funkcja jest ciągiem akcji, a kolejność wykonania tych
akcji jest istotna
akcji jest istotna
Trzeba wyspecyfikować interfejsy programowe lub
Trzeba wyspecyfikować interfejsy programowe lub
sprzętowe
sprzętowe
Wady
Wady
W PDL nie da się wyrazić wymagań dziedzinowych
W PDL nie da się wyrazić wymagań dziedzinowych
Specyfikacja jest traktowana jako projekt a nie jako
Specyfikacja jest traktowana jako projekt a nie jako
specyfikacja
specyfikacja
Wady PDL
Wady PDL
PDL
PDL
nie jest wystarczający do wyrażania
nie jest wystarczający do wyrażania
wymagań w sposób zrozumiały
wymagań w sposób zrozumiały
Notacja jest zrozumiała dla ludzi
Notacja jest zrozumiała dla ludzi
znających języki programowania
znających języki programowania
Wymagania są traktowane jako projekt,
Wymagania są traktowane jako projekt,
a nie jako model mający na celu
a nie jako model mający na celu
zrozumienie systemu
zrozumienie systemu
Specyfikacja interfejsów
Specyfikacja interfejsów
Większość systemów musi współpracować z
Większość systemów musi współpracować z
innymi systemami a interfejsy między nimi
innymi systemami a interfejsy między nimi
są częścią specyfikacji
są częścią specyfikacji
Można wyróżnić trzy typy interfejsów
Można wyróżnić trzy typy interfejsów
Proceduralne
Proceduralne
Wymieniane struktury danych
Wymieniane struktury danych
Reprezentacje danych
Reprezentacje danych
Formalne notacje umożliwiają definiowanie
Formalne notacje umożliwiają definiowanie
interfejsów w sposób jednoznaczny
interfejsów w sposób jednoznaczny
Dokumentacja wymagań
Dokumentacja wymagań
Dokumentacja wymagań stawianych
Dokumentacja wymagań stawianych
oprogramowaniu jest oficjalną deklaracją
oprogramowaniu jest oficjalną deklaracją
tego, co jest wymagane od wytwórców
tego, co jest wymagane od wytwórców
systemu
systemu
Powinien zawierać zarówno wymagania
Powinien zawierać zarówno wymagania
użytkownika jak i wymagania systemowe
użytkownika jak i wymagania systemowe
Nie jest częścią projektu. Powinien mówić
Nie jest częścią projektu. Powinien mówić
CO zrobić a nie JAK to zrobić.
CO zrobić a nie JAK to zrobić.
Użytkownicy
Użytkownicy
dokumentacji
dokumentacji
wymagań
wymagań
Klienci
Menedżerowie
Inżynierowie
systemu
Inżynierowie
testów
Inżynierowie
pielęgnacji
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
Dokumentacja wymagań
Dokumentacja wymagań
Określa zachowanie systemu jedynie z
Określa zachowanie systemu jedynie z
zewnątrz
zewnątrz
Określa ograniczenia implementacji
Określa ograniczenia implementacji
Łatwo ją modyfikować
Łatwo ją modyfikować
Jest informatorem dla konserwatorów systemu
Jest informatorem dla konserwatorów systemu
Obejmuje przewidywania przyszłego cyklu
Obejmuje przewidywania przyszłego cyklu
życia systemu
życia systemu
Charakteryzuje reakcje na niepożądane
Charakteryzuje reakcje na niepożądane
zdarzenia
zdarzenia
Struktura dokumentacji
Struktura dokumentacji
wymagań
wymagań
Przedmowa
Przedmowa
Wstęp
Wstęp
Słownik
Słownik
D
D
efinicja wymagań użytkownika
efinicja wymagań użytkownika
Architektura systemu
Architektura systemu
Specyfikacja wymagań systemowych
Specyfikacja wymagań systemowych
Modele systemu
Modele systemu
Ewolucja systemu
Ewolucja systemu
Dodatki
Dodatki
Skorowidz
Skorowidz
Standard wymagań
Standard wymagań
IEE
IEE
E
E
Wstęp
Wstęp
Ogólny opis
Ogólny opis
Szczegółowe wymagania
Szczegółowe wymagania
Dodatki
Dodatki
Skorowidz
Skorowidz
To jest ogólna struktura, która musi być
To jest ogólna struktura, która musi być
dopasowana do konkretnych systemów
dopasowana do konkretnych systemów
Podsumowanie
Podsumowanie
W wymaganiach stawianych systemowi
W wymaganiach stawianych systemowi
określa się, co powinien system robić oraz
określa się, co powinien system robić oraz
definiuje ograniczenia
definiuje ograniczenia
Wymagania funkcjonalne opisują usługi,
Wymagania funkcjonalne opisują usługi,
których system ma dostarczać
których system ma dostarczać
Wymagania niefunkcjonalne opisują
Wymagania niefunkcjonalne opisują
ograniczenia w jakich system ma działać
ograniczenia w jakich system ma działać
Wymagania użytkownika są stwierdzeniami
Wymagania użytkownika są stwierdzeniami
wysokiego poziomu i opisują oczekiwania
wysokiego poziomu i opisują oczekiwania
użytkowników
użytkowników
Podsumowanie cd.
Podsumowanie cd.
Wymagania użytkownika zapisuje się w języku
Wymagania użytkownika zapisuje się w języku
naturalnym z pomocą tabel i diagramów
naturalnym z pomocą tabel i diagramów
Wymagania systemowe opisują wszystkie
Wymagania systemowe opisują wszystkie
funkcje jakich system musi dostarczać
funkcje jakich system musi dostarczać
Wymagania systemowe można zapisywać za
Wymagania systemowe można zapisywać za
pomocą strukturalnego języka naturalnego, PDL
pomocą strukturalnego języka naturalnego, PDL
lub innych języków stworzonych w tym celu
lub innych języków stworzonych w tym celu
Dokumentacja wymagań stawianych
Dokumentacja wymagań stawianych
oprogramowaniu jest uzgodnionym zapisem
oprogramowaniu jest uzgodnionym zapisem
wymagań systemowych
wymagań systemowych
Bibliografia:
Bibliografia:
1 Internet (Google)
1 Internet (Google)
2 D. Leffingwell,D. Widrig:
2 D. Leffingwell,D. Widrig:
Managing Software
Managing Software
3 Inżynieria oprogramowania. Autor: Andrzej
3 Inżynieria oprogramowania. Autor: Andrzej
Jaszkiewicz
Jaszkiewicz
4 Wikipedia
4 Wikipedia
Dziękujemy za uwagę !!!
Dziękujemy za uwagę !!!
Maciej Michalczyk s3768
Maciej Michalczyk s3768
Łukasz Hryniewiecki s3829
Łukasz Hryniewiecki s3829