Specifikation och beskrivningsspråk

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 15 december 2014; kontroller kräver 5 redigeringar .

Specification and Description Language (SDL) är ett specifikationsspråk med formell semantik. Designad för att få en entydig beskrivning av beteendet hos reaktiva och distribuerade system. Utvecklad och standardiserad av CCITT . Baserat på Enhanced Finite Machine Models ( ESFM  ) för att beskriva systembeteende och abstrakta datatyper . Det är ett blandat specifikationsspråk, eftersom det låter dig definiera både den dynamiska delen av systemet (processkommunikation) och den statiska delen (datatyper) [1] .

Översikt

Språkstandarden definieras av CCITT (rekommendationerna Z.100 till Z.106). Språket var ursprungligen fokuserat på telekommunikationssystem, men nu omfattar dess omfattning processkontroll och i allmänhet realtidsapplikationer.

SDL tillhandahåller både grafisk representation (SDL/GR) och textfrasrepresentation (SDL/PR), som är helt likvärdiga semantiska representationer [1] . Modeller visas vanligtvis i SDL/GR grafisk form, medan SDL/PR främst används för att utbyta modeller mellan verktyg. Ett system definieras som en uppsättning sammanlänkade abstrakta automater som är förlängningar av finita automater .


SDL täcker fem huvudaspekter: struktur, kommunikation, beteende, data och arv. Komponenternas beteende förklaras av uppdelningen av systemet i hierarkiska nivåer. Kommunikation mellan komponenter sker med hjälp av portar (gates) anslutna med kanaler (kanaler). Dessa kanaler har viss latens, så kommunikationen är vanligtvis asynkron; att ställa in fördröjningen till noll gör den synkron.

Den första versionen av språket publicerades 1976 och använde en grafisk syntax (SDL-76). 1980 kompletterades den med elementär semantik (SDL-80). 1984 förbättrades semantiken (SDL-84) och ett textformulär för maskinbearbetning infördes också. 1988 publicerades SDL-88, som inkluderade språkets formella grunder: abstrakta och verkliga grammatiker, samt en komplett formell definition. Den version som släpptes 1992 (SDL-92) introducerade objektorienterade koncept som arv, abstrakta bastyper, etc., och transformationer beskrevs för objektorienterade funktioner för att få dem till standarden. SDL-2000 (ursprungligen publicerad 1999) är den senaste versionen (juni 2012) som helt och hållet är baserad på idéerna om objektorienterad programmering och inte längre inkluderar deras minskning till grundläggande funktioner. Serviceuppdateringar har släppts för denna version sedan 1999, och CCITT Recommendation Z.109 (06/07) utvecklades för den, där SDL-2000 kombineras med UML .

Hierarkinivåer

SDL innehåller följande nivåer av hierarki:

En systemagent består vanligtvis av flera blockagenter. Blockagenter kommunicerar med varandra genom kommunikationskanaler. En blockagent består av processagenter (obligatorisk struktur i SDL-92; SDL-2000 är mer flexibel). Varje processagent är en tillståndsmaskin som bidrar till den åtgärd som utförs av systemet. Åtgärder via meddelanden från runtime eller från en agent till en annan kallas signaler. Signaler som tas emot av processagenten köas först (ingångsport). När tillståndsmaskinen övergår till viloläge, om den första signalen vid ingångsporten är aktiverad för det tillståndet, övergår den till ett annat tillstånd. Övergången kan också avge signaler till andra agenter eller till körtiden. En processagent tillåts innehålla procedurtyper, så att samma åtgärder kan anropas från olika platser. Det är också tillåtet att anropa en fjärrprocedurtyp för att anropa en procedur i en annan agent (eller till och med ett annat system) och vänta på svar.

SDL-verktyg

De mest kända SDL-aktiverade modelleringsverktygen är Telelogic Tau, PragmaDev RTDS, Cinderella, Safire-SDL och ObjectGeode (inte längre tillgängliga) [2] . PragmaDev RTDS stöder både SDL och SDL-RT, som används för att utveckla realtidsapplikationer och inbyggda system. Det finns också gratisapplikationer som stöder SDL, som JADE, ett Java-ramverk för att utveckla specifikationer.

Se även

Anteckningar

  1. 1 2 Habrias, Frappier, 2006 .
  2. SDL-verktyg och MSC-verktyg. . SDL-verktyg och MSC-verktyg.. Hämtad 8 november 2014. Arkiverad från originalet 19 juni 2015.

Litteratur

Länkar