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

Tak jak budowaniu programów służą języki programowania, tak budowaniu specyfikacji służą języki budowania specyfikacji. Podobnie, jak w dziedzinie języków programowania, i tu widać olbrzymią różnorodność propozycji. Ta wielość języków budowania specyfikacji jest niewątpliwie częściowo uzasadniona wielością dziedzin zastosowań, bo wiele z tych dziedzin wymaga bardzo specyficznych mechanizmów specyfikacji systemów. Jest też jednak bardzo wiele języków budowania specyfikacji "ogólnego zastosowania".
(Pominiemy tu przedstawioną na slajdzie nielegalną reklamę formalizmu CASL --- The Common Algebraic Specification Language :-)
Dla prezentacji dużych, złożonych specyfikacji dużych, złożonych systemów kluczowa jest możliwość budowania tych specyfikacji w sposób strukturalny, przez systematyczne składanie specyfikacji mniejszych i prostszych w specyfikacje bardziej złożone za pomocą pewnej liczby dobrze zdefiniowanych operacji budowania specyfikacji. Tak powstała struktura jest jedynym praktycznym narzędziem sprzyjającym zrozumieniu i czytelności specyfikacji, a także dowodzeniu ich formalnych konsekwencji. Dodajmy jednak, że struktura ta nie musi wyznaczać struktury realizacji tych specyfikacji.