22.08.2013 Views

20(1-[2-

20(1-[2-

20(1-[2-

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Därför kraschar datorn<br />

Av Johan Falk, Per Runeson ur F&F 5/<strong>20</strong>07.<br />

Traditionella ingenjörsmetoder gör inte programmen tillräckligt bra.<br />

Alla som använder persondatorer har någon gång varit med om program som kraschar eller gör något<br />

helt annat än man tänkt sig. I bästa fall leder det till att man måste starta om programmet eller datorn,<br />

och ibland får man lära sig att vissa kommandon helt enkelt inte fungerar. I värre fall förstörs värdefull<br />

information och veckors arbete går förlorat.<br />

Hur kommer det sig att datorprogram har så många brister? Varför verkar det omöjligt att konstruera<br />

felfria program, när exempelvis en rulltrappa eller en tv kan fungera felfritt i många år?<br />

Vid Lunds tekniska högskola bedrivs forskning om just program utveckling. En av författarna till denna<br />

artikel, Per Runeson, har utvärderat en ny metod för att utveckla program. Även om metoden inte<br />

lovar perfekta datorprogram, visar studien att det finns mycket att vinna på att ersätta de traditionella<br />

metoderna för att utveckla program.<br />

Dyr programutveckling<br />

Program utveckling är en allt viktigare del av vårt samhälle. Datorprogram styr fler och fler produkter<br />

och tjänster som vi är beroende av i vårt dagliga liv. Det gäller inte bara våra persondatorer;<br />

datorprogrammen styr också hur bilen ska bromsa, vilka pengatransaktioner som ska göras på<br />

banken och hur telefonsamtal ska kopplas.<br />

Pålitliga och effektiva program har därför blivit en viktig - och dyr - del av nya produkter.<br />

Utvecklingskostnaderna för en ny mobiltelefon består till 80-90 procent av program utveckling. För<br />

industrirobotar ligger nivån på omkring 75 procent. Även för bilar, som ju uppfattas som<br />

huvudsakligen mekaniska, har program utvecklingen på tio år gått från en obetydlig del till en tredjedel<br />

av produktionskostnaden.<br />

Anledningen till de höga kostnaderna är att dagens program är oerhört komplexa. Program utveckling<br />

är inte längre något som enskilda personer klarar av på en vecka eller två. Det är enorma projekt som<br />

kan engagera hundra programmerare i ett år eller mer.<br />

Ett exempel är telefonsystemen. För femton år sedan hade programmen som styr en telefonväxel<br />

ungefär en miljon rader med kod, alltså kommandon som säger åt en dator vad den ska göra. Det<br />

motsvarar femtio böcker med program kod sida upp och sida ner. I dag finns lika mycket kod i en<br />

enkel mobiltelefon! Och en modern telefonväxel kräver 10-100 miljoner rader kod.<br />

När en ny telefon modell ska utvecklas kräver det alltså inte bara att 50 böcker med text skrivs<br />

samman. Olika delar av koden måste också fungera ihop, och slutprodukten ska förstås möta de krav<br />

som finns på funktioner och kvalitet. Dessutom ska allt göras inom loppet av vanligtvis 8-15 månader.<br />

Ett program paket med ordbehandlare och presentationsprogram kan innehålla fem gånger så mycket<br />

kod - tillräckligt för att fylla en hel bokhylla.<br />

Till detta kan vi lägga att förutsättningarna tör datorprogram förändras snabbt. Datorerna i dag är<br />

dubbelt så snabba som för ett och ett halvt år sedan. Om man jämför med järnvägens utveckling<br />

motsvarar det att ta steget från smalspårig järnväg till magneträls på några få år. Men medan de som<br />

bygger tåg har haft 150 år på sig att utveckla ny teknik, måste programmerare anpassa sig snabbt för

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!