17 april, 2018

Hur 20 miljoner kodrader krymper till 5 miljoner

Jo, det är sant. Det finns stora kommersiella programvaror som består av miljontals kodrader skrivna av robotar. Det här är i stort hur det går till.

Varför minska antalet manuellt skrivna kodrader?

Antalet manuellt skrivna kodrader har stor betydelse, varför det? Jo, det visar sig att antalet buggar i en programvara är direkt proportionell till antalet manuellt skrivna kodrader. Detta oberoende av programmeringsspråk.

Därför är det viktigt att i möjligaste mån hålla ner antalet manuellt skrivna rader. Öka i stället antalet genererade kodrader som är skrivna av robotar.

När man tittar på innehållet i kodmassan för en en större applikation visar det sig att en stor del av koden följer fasta mönster. Det ”affärsmässiga” innehållet är inte så stor del av det totalen.

Genom att använda robotar så krymper antalet skrivna kodrader

En mjukvarurobot skriver kod baserat på en formell specifikation som beskriver vad som ska utföras på ett strukturerat sätt. Tekniken som används för att formalisera detta kallas Domänspecifika språk eller DSL.

Just på grund av att ett välkonstruerad specifikation är mycket mer kompakt än slutgiltiga programkoden, så blir antalet skriva kodrader mindre.  Hur mycket mindre beror på hur mycket de olika programdelarna liknar varandra, men det är inte ovanligt att det krymper till en fjärdedel.

Ta tex följande utdrag ur ett program:

Det är egentligen bara de röda raderna som är essensen och det affärsmässiga innehållet. Resten av programmet är kod som behövs för utföra logiken i det ramverk och den implementation som är vald. Med det är också kod som ska se likartad ut för samtliga program av samma typ och som då passar utmärkt att utföras av en robot istället.

Ett motsvarande specifikation till en robot skulle kunna vara:

Mycket kompaktare och lättläst, även för en som inte är expert på programmering, men känner till sin databas och tabellverk.

Slutresultatet är färre kodrader fast samma innehåll

På grund av att roboten översätter specifikationen till vanlig kod, så blir slutresultatet det samma. Det slutliga programmet blir lika, men vägen dit är helt olika.

För exemplet ovan blir det bara 4 kodrader i stället för 23!

Om ni har ett stort system med många program som exemplet ovan så är det inte allt omöjligt att ni också får 20 miljoner kodrader att bara bli 5 miljoner.

Vad skulle det  innebära för ditt företag om antalet kodrader minskade till en fjärdedel?