Język specyfikacji
Język specyfikacji to formalny język w informatyce używany podczas analizy systemów , analizy wymagań i projektowania systemów do opisu systemu na znacznie wyższym poziomie niż język programowania , który jest używany do tworzenia kodu wykonywalnego dla systemu.
Przegląd
Języki specyfikacji na ogół nie są wykonywane bezpośrednio. Mają opisywać co , a nie jak . Rzeczywiście, uważa się to za błąd, jeśli specyfikacja wymagań jest zaśmiecona zbędnymi szczegółami implementacji.
Powszechnym podstawowym założeniem wielu podejść do specyfikacji jest to, że programy są modelowane jako struktury algebraiczne lub teoriomodelowe , które obejmują zbiór zbiorów wartości danych wraz z funkcjami w tych zbiorach. Ten poziom abstrakcji pokrywa się z poglądem, że poprawność zachowania wejścia/wyjścia programu ma pierwszeństwo przed wszystkimi innymi jego właściwościami.
W zorientowanym na właściwości podejściu do specyfikacji (przyjętym np. przez CASL ) specyfikacje programów składają się głównie z aksjomatów logicznych , zwykle w systemie logicznym , w którym równość odgrywa pierwszorzędną rolę, opisującą właściwości, które muszą spełniać funkcje — często po prostu poprzez ich wzajemne powiązania. Kontrastuje to z tak zwaną specyfikacją zorientowaną na model w frameworkach takich jak VDM i Z , która polega na prostej realizacji wymaganego zachowania.
Specyfikacje muszą zostać poddane procesowi dopracowania (dopełnienia szczegółów implementacji), zanim będą mogły zostać faktycznie wdrożone. Wynikiem takiego procesu udoskonalania jest wykonywalny algorytm, który jest albo sformułowany w języku programowania, albo w wykonywalnym podzbiorze danego języka specyfikacji. Na przykład prawidłowo zastosowane potoki Hartmanna można uznać za specyfikację przepływu danych , która jest bezpośrednio wykonywalna. Innym przykładem jest model aktora , który nie ma określonej zawartości aplikacji i musi być wyspecjalizowane jako wykonywalne.
Ważnym zastosowaniem języków specyfikacji jest umożliwienie tworzenia dowodów poprawności programu ( patrz dowód twierdzeń ).
Języki
Zobacz też
- Specyfikacja formalna
- Specyfikacja niezależna od języka
- Specyfikacja i język opisu
- Ujednolicony język modelowania
Linki zewnętrzne
- Media związane z językami specyfikacji w Wikimedia Commons