Programvare på liv og død

Bente Anda ved Institutt for informatikk er den første forskeren i verden som har studert effekten av et nytt metodespråk som ble brukt til utvikling av programvare. Konklusjon: Bedre kvalitet, men like dyrt.

Arbeidet til førsteamanuensis Bente Anda ved Institutt for informatikk kan føre til sikrere styring av programvareutvikling.

Tenk deg at du er leder for 230 programmerere fordelt på tjue team i tre land som på et år skal lage verdens største sikkerhetskritiske programvare på nesten fire millioner linjer programkode. Programmet skal brukes i oljeindustrien i Nordsjøen. Den minste programmeringsfeil kan få fatale konsekvenser. Liv kan gå tapt.

Utfordringen er større enn som så. En del av programvaren bygger på gammel programkode. Koden er verken dokumentert eller systematisert. Programmererne må lete med lupe for å finne hvilke av de tusen nye kravene som henger sammen med hvilke kodelinjer. Små feil i én programlinje kan føre til uforutsigbare konsekvenser et helt annet sted i programmet.

Dette er ikke et tenkt skrekkscenario. Dette er virkeligheten for industrikonsernet ABB som har brukt 200 millioner kroner på programvaren. Det er ekstremt sjeldent at et så stort prosjekt blir utviklet i Norge.

For å komme i mål tok ABB i bruk det internasjonalt standardiserte modelleringsspråket UML (Unified Modelling Language), som mange programvareeksperter mener er svært velegnet til forbedret programvarekvalitet.

Men problemet til ABB var at det aldri er gjennomført et eneste forskningsarbeid som sier noe om den dokumenterte effekten av UML. Med tanke på fremtidige kostbare prosjekter ville ABB vite hvordan UML fungerer, hvordan de kunne bruke UML på en bedre måte og hvor mye penger de kunne spare.

Ekspertråd

Det var da førsteamanuensis Bente Anda ved Institutt for informatikk og Simulasenteret kom inn i bildet. Hun er en av landets fremste eksperter i UML.

Nå fikk hun analysere verdens første case-studie av UML i et stort industriprosjekt. Hun mener analysen er interessant også for andre programvareprodusenter.

– UML kan sikkert være utmerket, men man må studere UML i praktisk bruk for å si noe om hvor skoen trykker. Når man studerer reelle problemstillinger, blir overføringsverdien større, for industrien har vanskeligheter med å ta inn erfaringer fra eksperimenter. Poenget var å studere hvordan UML-basert utvikling foregår i store systemer med mange team og der man må utvide gamle programmeringssystemer, sier Bente Anda.

Ideen med UML er å forsikre seg at alle involverte i et prosjekt tolker problemstillingen på samme måte. For å komme i mål bruker man et utvalg av et titalls forskjellige diagrammer for å definere og beskrive datasystemet ut fra forskjellige perspektiver. En slik metode gir en langt mer presis dokumentasjon enn vanlig tekstprosa og reduserer faren for udefinerbare problemstillinger.

Motbakke

Bente Anda fant en del utfordringer:

Utfordring 1: UML er komplekst. For å utnytte alle diagrammene kreves mye kunnskap og erfaring.

– Det krever mye kunnskap å forstå hvilke diagrammer som er best egnet og hvordan man kan sjonglere mellom disse. ABB brukte bare to til tre diagramtyper. Årsaken var for lite opplæring. ABB prøvde å spare. Da blir det naturlig nok uenigheter underveis. For å få ønsket effekt må man ta seg tid til å lære syntaks og semantikk på alle nivåer.

Utfordring 2: Teamene slet med å bruke det første nivået i UML, Usecase, som beskriver systemet sett ut fra brukernes synspunkt. Usecase skal være lett å forstå. Hele poenget er å sørge for at kunden og prosjektgruppen tolker virkeligheten på best mulig måte.

Alle systemkrav kan vanligvis gjenspeiles i Usecase, men problemet var at kravene ble fordelt til de mange teamene på en slik måte at de ikke alltid klarte å håndtere dem.

Dette kan sammenliknes med et puslespill. Anta at hvert av de tjue teamene får femti brikker hver. De skal lage hver sin del av brettet, men problemet er at noen av de andre teamene har fått noen av puslespillbrikkene dine. Da må man løpe rundt og bytte brikker for å komme i mål.

Utfordring 3: Det ble ikke enklere av at deler av det eksisterende programsystemet ikke var dokumentert i UML. Det gjorde det vanskeligere å spore opp hvilke kodelinjer som skulle endres. Det kostet ABB dyrt.

Utviklerne måtte lage delmodeller av de gamle systemene. Men gammel anarkistisk kode er vanskelig å gjenspeile systematisk i UML.

Fremgang

Den største nytteverdien til UML var hjelpen til sporbarhet, kodegenerering, raskere testing og bedre og mer lettlest dokumentasjon. UML lager et automatisk skjelett med kode. Sporbarheten sørger for at programmererne til enhver tid finner hvilke krav som passer med hvilken kode. Det gjør det langt enklere å finne hvor i programmet man skal gjøre endringer.

– Konklusjonen er at ABB brukte mer penger enn forventet, men sammenlikningen er urettferdig fordi opplæringskostnadene ble så store. Dokumentasjonen ble mer konsistent, testingen ble bedre og bedriften fikk bedre sporbarhet. Det gjorde testingen mer effektiv, for testing er dyrt. Selv om man ikke finner feil, kan det finnes feil i systemet. Nå kan man gjøre mer testing på samme tid. Det øker sannsynligheten for å luke ut feil, sier Bente Anda.

Sporbarheten er også nyttig når man skal lage nye generasjoner av programvaren. Da kan man gå rett fra krav til kode. Det betyr at sporbarhet kan gi store besparelser ved senere oppgraderinger.

Naturlig Oslovalg

Seniorforsker Kai Hansen i forskningssenteret ABB sier at analysen ved Institutt for informatikk og Simulasenteret er viktig fordi de nå lærer positive og negative ting før de skal sette i gang med neste softvareprosjekt.

– UML senker ikke nødvendigvis kostnadene per kodelinje, men faren for feil blir mindre og kvaliteten bedre. Dette er viktig fordi vi lager sikkerhetskritisk softvare. Vi skal videreføre metoden med mindre justeringer.

Han påpeker at selv om ABB har nært samarbeid med mange universiteter både i Skandinavia, England og USA, var det naturlig å velge Institutt for informatikk og Simulasenteret som samarbeidspartner.

– De er langt fremme på det å måle effektivitet. Ingen andre institutter har markert seg som et bedre valg. Men generelt sett er det ikke lett å finne samarbeidsprosjekter med universiteter som matcher våre behov, sier seniorforsker Kai Hansen på ABB.

Emneord: Matematikk og naturvitenskap, Informasjons- og kommunikasjonsvitenskap, Systemutvikling og -arbeid, kommunikasjon, databaser og mulitmediasystemer, Sikkerhet og sårbarhet Av Yngve Vogt
Publisert 1. feb. 2012 12:01
Legg til kommentar

Logg inn for å kommentere

Ikke UiO- eller Feide-bruker?
Opprett en WebID-bruker for å kommentere