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.
För den specifika aktiviteten att skriva källkod, se Programmering.
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.
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å eller att gå bakåt i utvecklingskedjan
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.
This article uses material from the Wikipedia Svenska article Programvaruutveckling, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Innehållet är tillgängligt under CC BY-SA 4.0 om ingenting annat anges. Images, videos and audio are available under their respective licenses. ®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Svenska (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.