SW wykład 14 - Slajd2: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Mengel (dyskusja | edycje)
Nie podano opisu zmian
 
Tarlecki (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 2: Linia 2:


[[Grafika:sw1401.png|frame|center|]]
[[Grafika:sw1401.png|frame|center|]]
Każda specyfikacja systemu pełni przede wszystkim rolę pośrednika
między (przyszłym) użytkownikiem tego systemu a jego
realizatorem. (UWAGA: mówiąc o użytkownikach systemu, nie mamy na
myśli tylko "prawdziwych użytkowników", ale także programistów
wykorzystujących dany system --- lub dany moduł --- do budowy
kolejnych systemów.) Oznacza to, że każdą specyfikację można czytać
dwojako, z dwóch różnych punktów widzenia.
Po pierwsze, dla użytkownika, specyfikacja przedstawia te wszystkie
własności systemu, na których może polegać jego użytkownik. Ważne
dopowiedzenie: i tylko na własnościach zawartych w specyfikacji
systemu użytkownik może polegać. Inne zauważane przez użytkownika
własności można rozumieć jako własności przypadkowe, które mogą się
zmienić, gdy na przykład powstanie kolejna wersja systemu, albo wręcz
przez być może nieobserwowalne bezpośrednio przez użytkownika efekty
działania systemu w czasie.
Po drugie, dla realizatora systemu, specyfikacja przedstawia te
wszystkie własności, które budowany system musi spełniać. I znów ważne
dopowiedzenie: i tylko te własności musi zapewnić realizator. Jeśli
jakaś własność nie jest konsekwencją specyfikacji, może ona nie być
przez realizację systemu zapewniona.
Już z powyższego widać, że budowa dobrej specyfikacji systemu jest
zadaniem bardzo ważnym, a jednocześnie na ogół bardzo złożonym. Jest
to przedmiot znaczącej dziedziny, często określanej jako inżynieria
wymagań: jak zbudować dobrą specyfikację (jak zebrać, sformalizować i
przedstawić w precyzyjny, a jednocześnie zrozumiały i jasny sposób
wszystkie niezbędnie wymagane własności systemu) i jak potem przekonać
się, że wszystkie oczekiwane i tylko oczekiwane własności systemu
zostały w specyfikacji zawarte.

Aktualna wersja na dzień 14:03, 18 paź 2006

<<powrót do strony wykładu

Systematyczne konstruowanie programów Inżynieria wymagań Walidacja specyfikacji Strukturalne języki specyfikowania Zadanie programisty Uszczegóławianie Uszczegóławianie, c.d. Dekompozycja Wyzwanie

Każda specyfikacja systemu pełni przede wszystkim rolę pośrednika między (przyszłym) użytkownikiem tego systemu a jego realizatorem. (UWAGA: mówiąc o użytkownikach systemu, nie mamy na myśli tylko "prawdziwych użytkowników", ale także programistów wykorzystujących dany system --- lub dany moduł --- do budowy kolejnych systemów.) Oznacza to, że każdą specyfikację można czytać dwojako, z dwóch różnych punktów widzenia.

Po pierwsze, dla użytkownika, specyfikacja przedstawia te wszystkie własności systemu, na których może polegać jego użytkownik. Ważne dopowiedzenie: i tylko na własnościach zawartych w specyfikacji systemu użytkownik może polegać. Inne zauważane przez użytkownika własności można rozumieć jako własności przypadkowe, które mogą się zmienić, gdy na przykład powstanie kolejna wersja systemu, albo wręcz przez być może nieobserwowalne bezpośrednio przez użytkownika efekty działania systemu w czasie.

Po drugie, dla realizatora systemu, specyfikacja przedstawia te wszystkie własności, które budowany system musi spełniać. I znów ważne dopowiedzenie: i tylko te własności musi zapewnić realizator. Jeśli jakaś własność nie jest konsekwencją specyfikacji, może ona nie być przez realizację systemu zapewniona.

Już z powyższego widać, że budowa dobrej specyfikacji systemu jest zadaniem bardzo ważnym, a jednocześnie na ogół bardzo złożonym. Jest to przedmiot znaczącej dziedziny, często określanej jako inżynieria wymagań: jak zbudować dobrą specyfikację (jak zebrać, sformalizować i przedstawić w precyzyjny, a jednocześnie zrozumiały i jasny sposób wszystkie niezbędnie wymagane własności systemu) i jak potem przekonać się, że wszystkie oczekiwane i tylko oczekiwane własności systemu zostały w specyfikacji zawarte.