10 april, 2018

Högre kvalitet

Hur kommer det sig att det blir färre buggar när man lägger till ytterligare ett språk? Det låter ju som en paradox, men är verklighet.

Färre rader manuellt skriven kod

Du får högre kvalité på det levererade systemet genom att stor del av programkoden inte skrivs för hand längre, utan genereras från specifikationen som är skriven i DSL.  Totalt sett är det färre rader kod och därför färre felaktigheter.

Forskning visar att, oavsett språk, så är andelen buggar per manuellt skriven kodrad ganska konstant. Eftersom roboten använder sig av en enda mall (template) som sedan används i samtliga moduler, så blir slutresultatet samma, men andelen manuellt skrivna rader lägre.

Rent matematiskt får du samma minskning av buggar som nettominskningen av totalt antalet kodrader, inräknat DSL självt, roboten och dess mallar. Hur mycket det blir i praktiken beror helt och hållet på hur väldefinierad din DSL-syntax är, hur många gånger en viss mall kan användas och hur mycket annan kod som finns, men en vanlig siffra är 25%.

Färre missuppfattningar

Felaktigheter i mjukvarusystem kan grovt delas upp i tre kategorier:

  1. Missuppfattningar i kommunikationen mellan kund och leverantör.
  2. Missförstånd mellan de som skriver specifikationen och de som programmerar.
  3. Fel i de skrivna programmen.

Genom att använda ett DSL som är noga anpassat till verksamheten så minskar andelen missförstånd som beror på ordval, formuleringar och otillräcklig information. Det beror på att innehållet i ett DSL-dokument kontrolleras mot en strikt syntax och måste därför vara kompletta.

Enklare att hitta felen

Det kan naturligtvis bli fel när ett DSL översätts till körbar programkod av en robot, men den processen är gemensam för alla program. Sådana systematiska fel är mycket lättare att hitta av den enkla anledningen att samma typ av fel finns på många ställen och syns i tester mycket fortare. Rättningar i den generatorn slår igenom på samtliga program direkt.

Hur mycket är högre kvalitet värd för dig?