Domänspecifik modellering

Domänspecifik modellering ( DSM ) är en mjukvaruteknisk metod för att designa och utveckla system, såsom datorprogramvara . Det innebär systematisk användning av ett domänspecifikt språk för att representera de olika aspekterna av ett system.

Domänspecifika modelleringsspråk tenderar att stödja abstraktioner på högre nivå än modelleringsspråk för allmänna ändamål, så de kräver mindre ansträngning och färre detaljer på låg nivå för att specificera ett givet system.

Översikt

Domänspecifik modellering inkluderar ofta också idén om kodgenerering : automatisera skapandet av körbar källkod direkt från de domänspecifika språkmodellerna. Att vara fri från manuellt skapande och underhåll av källkod innebär att domänspecifikt språk kan förbättra utvecklarens produktivitet avsevärt. Tillförlitligheten av automatisk generering jämfört med manuell kodning kommer också att minska antalet defekter i de resulterande programmen och därmed förbättra kvaliteten.

Domänspecifikt språk skiljer sig från tidigare kodgenereringsförsök i CASE -verktygen på 1980-talet eller UML- verktygen på 1990-talet. I båda dessa byggdes kodgeneratorerna och modelleringsspråken av verktygsleverantörer. [ citat behövs ] Även om det är möjligt för en verktygsleverantör att skapa ett domänspecifikt språk och generatorer, är det mer normalt att domänspecifikt språk förekommer inom en organisation. En eller några expertutvecklare skapar modelleringsspråket och generatorerna, och resten av utvecklarna använder dem.

Att ha modellspråket och generatorn byggda av organisationen som kommer att använda dem möjliggör en tät passform med deras exakta domän och som svar på förändringar i domänen.

Domänspecifika språk kan vanligtvis täcka en rad abstraktionsnivåer för en viss domän. Till exempel kan ett domänspecifikt modelleringsspråk för mobiltelefoner tillåta användare att specificera abstraktioner på hög nivå för användargränssnittet, såväl som abstraktioner på lägre nivå för att lagra data som telefonnummer eller inställningar. På samma sätt kan ett domänspecifikt modelleringsspråk för finansiella tjänster tillåta användare att specificera abstraktioner på hög nivå för kunder, såväl som abstraktioner på lägre nivå för att implementera aktie- och obligationshandelsalgoritmer.

Ämnen

Definiera domänspecifika språk

För att definiera ett språk behöver man ett språk att skriva definitionen i. Språket i en modell kallas ofta för en metamodell , därför är språket för att definiera ett modelleringsspråk en meta-metamodell. Meta-metamodeller kan delas in i två grupper: de som härrör från eller anpassningar av befintliga språk, och de som har utvecklats specifikt som meta-metamodeller.

Härledda meta-metamodeller inkluderar entitetsrelationsdiagram , formella språk , utökad Backus-Naur-form (EBNF), ontologispråk , XML-schema och Meta-Object Facility (MOF). Styrkan hos dessa språk tenderar att ligga i förtrogenhet och standardisering av originalspråket.

Etos av domänspecifik modellering gynnar skapandet av ett nytt språk för en specifik uppgift, och därför finns det föga förvånande nya språk utformade som meta-metamodeller. Den mest använda familjen av sådana språk är OPRR, GOPRR och GOPPRR, som fokuserar på att stödja saker som finns i modelleringsspråk med minimal ansträngning.

Verktygsstöd för domänspecifika språk

Många allmänna modelleringsspråk har redan verktygsstöd tillgängligt i form av CASE- verktyg. Domänspecifika språk har en tendens att ha en för liten marknadsstorlek för att stödja konstruktionen av ett skräddarsytt CASE-verktyg från grunden. Istället byggs det mesta verktygsstödet för domänspecifika språkspråk utifrån befintliga domänspecifika språkramar eller genom domänspecifika språkmiljöer.

En domänspecifik språkmiljö kan ses som ett metamodelleringsverktyg, dvs ett modelleringsverktyg som används för att definiera ett modelleringsverktyg eller CASE-verktyg. Det resulterande verktyget kan antingen fungera inom den domänspecifika språkmiljön, eller mindre vanligt produceras som ett separat fristående program. I det vanligare fallet stöder den domänspecifika språkmiljön ett extra lager av abstraktion jämfört med ett traditionellt CASE-verktyg.

Att använda en domänspecifik språkmiljö kan avsevärt sänka kostnaden för att få verktygsstöd för ett domänspecifikt språk, eftersom en väldesignad domänspecifik språkmiljö kommer att automatisera skapandet av programdelar som är kostsamma att bygga från grunden, som t.ex. domänspecifika redaktörer, webbläsare och komponenter. Domänexperten behöver bara specificera de domänspecifika konstruktionerna och reglerna, och den domänspecifika språkmiljön tillhandahåller ett modelleringsverktyg som är skräddarsytt för måldomänen.

De flesta befintliga domänspecifika språk sker med domänspecifika språkmiljöer, antingen kommersiella som MetaEdit+ eller Actifsource , öppen källkod som GEMS eller akademiska som GME . Den ökande populariteten för domänspecifika språk har lett till att domänspecifika språkramverk läggs till i befintliga IDE, t.ex. Eclipse Modeling Project (EMP) med EMF och GMF , eller i Microsofts DSL-verktyg för mjukvarufabriker .

Domänspecifikt språk och UML

Unified Modeling Language (UML) är ett allmänt modelleringsspråk för programvaruintensiva system som är utformat för att stödja mestadels objektorienterad programmering . Följaktligen, i motsats till domänspecifika språk, används UML för en mängd olika ändamål över ett brett spektrum av domäner. De primitiver som UML erbjuder är de för objektorienterad programmering, medan domänspecifika språk erbjuder primitiver vars semantik är bekant för alla utövare inom den domänen. Till exempel, inom området fordonsteknik , kommer det att finnas mjukvarumodeller för att representera egenskaperna hos ett låsningsfritt bromssystem, eller en ratt , etc.

UML inkluderar en profilmekanism som gör att den kan begränsas och anpassas för specifika domäner och plattformar. UML-profiler använder stereotyper , stereotypattribut (kända som taggade värden före UML 2.0) och begränsningar för att begränsa och utöka omfattningen av UML till en viss domän. Det kanske mest kända exemplet på att anpassa UML för en specifik domän är SysML , ett domänspecifikt språk för systemteknik .

UML är ett populärt val för olika modelldrivna utvecklingsmetoder där tekniska artefakter som källkod, dokumentation, tester och mer genereras algoritmiskt från en domänmodell. Till exempel kan applikationsprofiler för den juridiska dokumentstandarden Akoma Ntoso utvecklas genom att representera juridiska koncept och ontologier i UML-klassobjekt.

Se även

externa länkar