20(1-[2-
20(1-[2-
20(1-[2-
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