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.