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 澳门葡京手机版app下载 med mange universiteter b?de i Skandinavia, England og USA, var det naturlig ? velge Institutt for informatikk og Simulasenteret som 澳门葡京手机版app下载spartner.
– 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 澳门葡京手机版app下载sprosjekter med universiteter som matcher v?re behov, sier seniorforsker Kai Hansen p? ABB.