Programvaruutveckling
- För den specifika aktiviteten att skriva källkod, se Programmering.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Alfa-Beta-Gamma.png/250px-Alfa-Beta-Gamma.png)
Programvaruutveckling (också: mjukvaruutveckling eller programutveckling, på engelska: software engineering eller, när man inte nödvändigtvis syftar på utveckling med grund i ingenjörsvetenskap, software development) är tillämpningen av en systematisk, disciplinerad och mätbar metod för utvecklandet, användandet och underhållet av programvara.[1] Den engelska termen software engineering populariserades efter 1968 års NATO Software Engineering Conference som hölls i Garmisch, Tyskland av dess ordförande F.L. Bauer, och har använts sedan dess. Programvaruutveckling innefattar kunskapen, verktygen, och metoderna för att definiera specifikationer och design, programmering, testning, och underhållning av programvara. Disciplinen har även påverkats av fälten datavetenskap, management, matematik, projektledning, kvalitetsteknik, ergonomi, och datorteknik. På svenska kan programvaruutveckling även syfta till utveckling av programvara i allmänhet, utan krav på att aktiviteten vilar på ingenjörsvetenskaplig grund.
Programvaruutveckling bedrivs oftast med en uttalad programutvecklingsmetodik. Datorbaserade systemutvecklingsverktyg kallas CASE-verktyg (Computer Aided Software Engineering) och används för att automatisera arbete inom de olika utvecklingsfaserna. Exempel på områden där de används är design, avlusning, testning och spårbarhet.
Områden
Inom disciplinen ingår flera subområden som:
- Programutvecklingsmetodik, (eng. software development process), är en struktur som antas för en utvecklingsprocess.
- Kravhantering, (eng. requirements engineering), innefattar fastställandet av intressenternas produktmål samt specificerandet av dessa.
- Programvarudesign, (eng. software design), syftar till processen att planera för en programvarulösning på både arkitektonisk och lägre nivå.
- Programvarutestning, (eng. software testing), behandlar utvärdering av en programvaruprodukts kvalitet.
- Konfigurationshantering, (eng. configuration management), identifierar och underhåller produktkonfiguration under produktens livscykel.
- Spårbarhet, (eng. requirements traceability), innebär förmågan att kunna följa ett krav både framåt och bakåt under utveckling och underhåll, och spårbarhetsåterhämtning.
- Datorstöd för programvaruutveckling, (eng. computer-aided software engineering), studerar verktygsstöd för utveckling av programvara.
- Programvarukvalitet, (eng. software quality), syftar till hur väl en produkt uppfyller funktionella krav och kvalitetskrav.
- Programvaruunderhåll, (eng. software maintenance), studerar hur man effektivt underhåller programvara.
- Reverse engineering, innebär antingen att analysera ett system och skapa en representation på högre abstraktionsnivå[2] eller att gå bakåt i utvecklingskedjan[3]
- Reengineering, undersökandet och förändrandet av programvara för att stöpa den i annan form.
Svenska profiler
- Claes Wohlin, Blekinge Tekniska Högskola. Sveriges första professor med inriktning mot storskalig programvaruutveckling.
- Per Runeson, Lunds Universitet. Professor sedan 2004 med särskild inriktning mot storskalig testning av programvara. Handleddes som doktorand av Claes Wohlin.
- Dick Schefström(1956-2003), Luleå tekniska universitet. Avliden professor i programvaruteknik.
Svenska forskargrupper[4]
- SERL, Software Engineering Research Lab, Blekinge tekniska högskola.
- Use-Oriented Design and Development, Blekinge tekniska högskola.
- SERG, Software Engineering Research Group, Lunds universitet.
- Software Engineering & Management, Chalmers tekniska högskola.
- SED, Software Engineering Division, Mälardalens högskola.
- MASK, Management and Acquisition of Software Engineering Knowledge, Linköpings universitet.
- Software Engineering Group, Umeå universitet.
- RICS, Research in Computer Science, Linnéuniversitetet.
Se även
- Unix-filosofin, en programvaruutvecklingsparadigm som betonar enkelhet och modularitet.
Referenser
- ^ “IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610.12-1990, 1990.
- ^ Chikofsky, E.J. (27 augusti 1990). ”Reverse Engineering and Design Recovery: A Taxonomy in IEEE Software”. IEEE Computer Society: ss. 13–17.
- ^ Warden, R. (1992). Software Reuse and Reverse Engineering in Practice. London, England: Chapman & Hall. sid. 283–305
- ^ http://www.bth.se/com/sesweden.nsf/pages/a1f02180bd67c1bbc1256fe4004986fd!OpenDocument[död länk] Hämtad 2012-01-07
Externa länkar
- CASE Tools
- UML CASE tools
- Agile CASE Tool