15 april, 2018

Vad läser en robot?

En robot gör naturligtvis inte något på egen hand, utan får sina instruktioner från två källor.

  1. En specifikation av vad som ska utföras som är skriven i ett format som är läsbart av både människor och roboten. Det formatet använder en teknik som kallas DSM, eller domänspecifika modellspråk.
  2. När roboten sedan ska producera kod utifrån specifikationen så använder den ett antal mallar, antingen fasta eller programmerade.

Specifikationen är nyckeln

Specifikationen skriv i något som kallas DSM som helt enkelt är ett sätt att beskriva innehållet i din applikation eller programvara på en högre och mer abstrakt nivå.  Med hjälp av den beskrivningen och en mall så genereras sedan det mesta av programkoden automatiskt. Det betyder att mängden kod som behöver skrivas minskar kraftigt, vilket i sin tur ger,

  • Högre produktivitet
  • Färre buggar

Hur stor andel av koden som kan genereras helt och hållet från en specifikation i DSM varierar kraftigt från fall till fall, beroende på vilken typ av applikation det gäller. Men, en reducering av totala antalet skrivna kodrader till en fjärdedel är inte ovanlig.

Vad skiljer DSM från andra modellspråk?

Nyckeln till varför DSM är så effektivt är att det är speciellt anpassat för varje behov och applikation. Det som bestämmer syntax och innehåll är ditt speciella problemområde, din domän. Det som gör dessa så effektiva är just det att de är specialanpassade till din verklighet och ditt problemområde.

DSM syntax

Beskrivningen måste vara syntaktiskt och semantiskt specificerad i ett nytt, kompakt programmeringsspråk som skapas för ett specifikt och avgränsat område, domänen, därav namnet domänspecifikt programmeringsspråk.

Av praktiska skäl brukar man inte göra endast ett DSM för hela applikationen, utan dela upp problemet i mindre och mer lätthanterliga områden, vilket ger en svit av mindre, specialanpassade och samverkande DSM.

Mallar, templates

Vad blir då slutresultatet när jag skriver program definierade i mitt specialanpassade DSM? Jo, helt enkelt vanlig kod i det generella programmeringsspråk som ni normalt använder just nu. Den kan läsas och användas som vilken egenskriven kod som helst, med är genererad från definitioner i ditt DSM.

Med hjälp av mallar och en kodgenerator så drar roboten nytta av det faktum att en stor del av kod i en applikation följer fasta mönster. I stället för att behöva skriva varje program själva, så genereras de i stället.

De filer som typiskt genereras från ett DSM är grundläggande kod, som interface, deklarationer, egenskaper och viss logik. Det använder man sedan antingen som basklasser i objektorienterade språk som t.ex java, eller som biblioteksrutiner. Den egentliga affärslogiken startar på en högre nivå och utvecklingen går snabbare och enklare.