SW wykład 14 - Slajd5: 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:sw1404.png|frame|center|]]
[[Grafika:sw1404.png|frame|center|]]
Wprowadzone wyżej rozumienie specyfikacji umożliwia traktowanie ich
jako prezentacji zadania programistycznego: zbuduj program (system,
moduł), który poprawnie realizuje daną specyfikację. Ścisła definicja
faktu "program poprawnie realizuje specyfikację" musi być oczywiście
podana w terminach ścisłej semantyki języka budowania specyfikacji i
ścisłej semantyki języka programowania. Pojęcie całkowitej poprawności
prostych instrukcji względem ich specyfikacji zadanych jako pary
warunków (wstępnego i końcowego), wykorzystywane na poprzednim
wykładzie, to tylko jeden, bardzo prosty przykład tej sytuacji.
Jak sugerowaliśmy wcześniej, w bardziej realistycznych przypadkach,
systemy czy ich moduły semantycznie opisywane będą jako struktury
(algebry, struktury pierwszego rzędu, itp.). Podobnie, specyfikacje z
kolei definiować będą mniej lub bardziej pośrednio klasy takich
struktur. Pojęcie poprawności systemu względem specyfikacji jest
wówczas już bardzo oczywiste: system jest poprawny względem
specyfikacji, gdy struktura będąca jego znaczeniem jest elementem
klasy struktur, będącej znaczeniem tej specyfikacji. Oczywiście,
prostota tej definicji jest możliwa tylko dzięki przesunięciu akcentu
na odpowiednią, na ogół skomplikowaną, definicję semantyki systemów i
ich specyfikacji.

Aktualna wersja na dzień 14:05, 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

Wprowadzone wyżej rozumienie specyfikacji umożliwia traktowanie ich jako prezentacji zadania programistycznego: zbuduj program (system, moduł), który poprawnie realizuje daną specyfikację. Ścisła definicja faktu "program poprawnie realizuje specyfikację" musi być oczywiście podana w terminach ścisłej semantyki języka budowania specyfikacji i ścisłej semantyki języka programowania. Pojęcie całkowitej poprawności prostych instrukcji względem ich specyfikacji zadanych jako pary warunków (wstępnego i końcowego), wykorzystywane na poprzednim wykładzie, to tylko jeden, bardzo prosty przykład tej sytuacji.

Jak sugerowaliśmy wcześniej, w bardziej realistycznych przypadkach, systemy czy ich moduły semantycznie opisywane będą jako struktury (algebry, struktury pierwszego rzędu, itp.). Podobnie, specyfikacje z kolei definiować będą mniej lub bardziej pośrednio klasy takich struktur. Pojęcie poprawności systemu względem specyfikacji jest wówczas już bardzo oczywiste: system jest poprawny względem specyfikacji, gdy struktura będąca jego znaczeniem jest elementem klasy struktur, będącej znaczeniem tej specyfikacji. Oczywiście, prostota tej definicji jest możliwa tylko dzięki przesunięciu akcentu na odpowiednią, na ogół skomplikowaną, definicję semantyki systemów i ich specyfikacji.