Marcus Östling
Storheter och enheter i mjukvarumodeller
Sammanfattning
Storheter och enheter är vanligt förekommande inom vetenskap och ingenjörsvetenskap,
men inte alls lika förekommande inom mjukvaruutveckling.
Syftet med denna rapport är
att studera möjligheterna att integrera storheter och enheter i mjukvara och utvärdera hur
det påverkar mjukvarans källkod samt dess prestanda.
Detta genomfördes genom att
först designa en lösning och implementera ett koncepttest av lösningen.
Koncepttestet användes sedan för att utvärdera påverkan på mjukvaran och för att
jämföras mot det existerade bibliotek UnitsNet samt en lösning som använder den primitiva
typen double.
Designen resulterade i en statiskt typad lösning och påverkan på källkoden mättes på
två stora kodbaser, 265k och 1138k rader kod.
Mätvärden på mjukvaran visade ingen markant skillnad mellan lösningarna,
men åsikterna som gavs av utvecklare visade att en statiskt typat lösning
var att föredra över en lösning som använder den primitiva typen double.
Prestandatesterna visade att när typerna användes i sammansatta funktioner så
hade de statiskt typade lösningarna samma tillväxttakt som lösningen med
double hade. Den konstanta faktorn kunde öka exekveringstiden med ≈50 gånger.