Programvaruteknik är tillämpningen av ett systematiskt, disciplinerat, mätbart tillvägagångssätt för utveckling , drift och underhåll av mjukvara , såväl som studier av dessa tillvägagångssätt; det vill säga tillämpningen av disciplinen ingenjörskonst på mjukvara ( ISO/IEC/IEEE 24765:2017 ) [1] .
Termen "mjukvaruteknik" dök upp för första gången 1968 vid en Nato-konferens och var avsedd att stimulera sökandet efter lösningar på den " mjukvarukris " som ägde rum vid den tiden . Det har sedan dess vuxit till yrket som mjukvaruingenjör och ett forskningsområde som är dedikerat till att göra programvara bättre, mer tillgänglig, bättre stödd och snabbare att utveckla.
Money Magazine och Salary.com rankade mjukvaruteknik som det bästa jobbet i Amerika 2006[ förtydliga ]
Mjukvaruutveckling är relaterad till disciplinerna datavetenskap , projektledning och systemteknik .
När de första moderna digitala datorerna dök upp i början av 1940-talet var uppsättningar av körbara instruktioner redan inbyggda i maskinen. Experter insåg snabbt att detta tillvägagångssätt inte är särskilt bekvämt. Så föddes den "lagrade programarkitekturen" eller von Neumann-arkitekturen . Således började uppdelningen i "hårdvara" och "mjukvara" med en abstraktion som användes för att lösa problemet med beräkningskomplexitet.
De första programmeringsspråken började dyka upp på 1950-talet, och detta var ytterligare ett viktigt steg i abstraktionen. Stora språk som Fortran , Algol och Cobol släpptes i slutet av 1950-talet för att lösa vetenskapliga, algoritmiska respektive affärsproblem. Dijkstra skrev sin berömda artikel "Go To Statement Considered Harmful " 1968, och David Parnas introducerade nyckelbegreppen modularitet och informationsgömma 1972 för att hjälpa programmerare att hantera allt mer komplexa programvarusystem. Systemprogramvara för styrning av hårdvara kallad " operativsystem " introducerades av Unix 1969. 1967 introducerade Simula -språket konceptet med ett objektorienterat programmeringsparadigm .
Dessa framsteg inom mjukvara möttes av ett stort genombrott inom datorteknik. I mitten av 1970-talet introducerades mikrodatorn , vilket gjorde det möjligt för hobbyister att skaffa sin egen dator och skriva sina egna program för den. Detta gav i sin tur upphov till persondatorer (PC) och Microsoft Windows . Också i mitten av 1980-talet framstår sådana begrepp som mjukvarans livscykel som någon form av konsensus för centraliserad mjukvaruutveckling. Det sena 1970-talet och början av 1980-talet såg uppkomsten av flera nya simulaliknande objektorienterade programmeringsspråk, inklusive Smalltalk , Objective-C och C++ .
Programvara med öppen källkod , som dök upp i början av 1990-talet, skapade en decentraliserad stil av mjukvaruutveckling.
Lagliga krav för licensiering och certifiering av professionella programvaruingenjörer varierar runt om i världen. I Storbritannien licensierar British Computer Society mjukvaruingenjörer och medlemmar av föreningen kan också bli "certifierade ingenjörer" (C.Eng), och i vissa delar av Kanada, som Alberta, Ontario och Quebec, kan ingenjörer
Under 2004 räknade US Bureau of Labor Statistics 760 840 mjukvaruingenjörer som arbetade i USA. Under samma tidsperiod fanns det cirka 1,4 miljoner utövare anställda i USA inom andra blandade ingenjörsyrken. På grund av dess relativa nyhet som ett formellt studieområde, lärs programvaruteknik ofta ut som en del av en datavetenskaplig läroplan, och många mjukvaruingenjörer är väl bevandrade i datavetenskap.
Många mjukvaruingenjörer arbetar som anställda eller entreprenörer. De arbetar i företag, statliga myndigheter (civila eller militära) och ideella organisationer. Vissa ingenjörer arbetar som frilansare . Vissa organisationer har specialister för att utföra var och en av uppgifterna i mjukvaruutvecklingsprocessen. Andra kräver en mjukvaruingenjör som utför många eller alla uppgifter på en gång. I stora projekt kan människor bara specialisera sig i en roll. I små människor kan ta flera eller alla roller samtidigt.
Specialiseringar inkluderar: inom industrin: analytiker, programvaruarkitekter , utvecklare , testare , teknisk support, mellanliggande analytiker, chef; i akademiska kretsar: lärare, forskare.
De flesta mjukvaruingenjörer och programmerare arbetar 40 timmar i veckan, och cirka 15 procent av mjukvaruingenjörer och 11 procent av programmerare arbetade mer än 50 timmar i veckan 2008. Skador inom dessa yrken är sällsynta. Men som med andra yrken som kräver mycket tid framför en dator, är personer inom dessa yrken mer benägna att bli trötta i ögonen, ryggsmärtor och hand- och handledssjukdomar som karpaltunnelsyndrom .
Software Engineering Institute erbjuder certifiering inom specifika områden som säkerhet, processoptimering och mjukvaruarkitektur. Apple , IBM , Microsoft och andra företag fond[ förtydliga ] egna prov för certifiering. Många IT-certifieringsprogram fokuserar på specifika tekniker och hanteras av dessa teknikleverantörer. Dessa certifieringsprogram är utformade kring den plats där personer som använder dessa tekniker kommer att vara anställda.
Certifieringsförlängningen "General Software Development Skills" är tillgänglig via olika professionella gemenskaper. 2006 certifierade IEEE över 575 mjukvaruproffs som "Certified Software Development Professional" (CSDP). 2008 lade de till en nybörjarcertifiering känd som "Certified Software Development Associate" (CSDA). ACM hade ett professionellt certifieringsprogram i början av 1980-talet som avbröts på grund av bristande intresse. ACM övervägde också att certifiera professionella mjukvaruingenjörer i slutet av 1990-talet, men beslutade slutligen att en sådan certifiering inte var lämplig för professionell mjukvaruutveckling.
British Computing Society har utvecklat en juridiskt erkänd professionell certifiering som kallas Chartered IT Professional (CITP) och är endast tillgänglig för fullvärdiga medlemmar (MBCS). Programvaruingenjörer är berättigade till medlemskap i Institute of Engineering and Technology och kan kvalificera sig som Chartered Engineer i enlighet därmed . I Kanada har Canadian Information Processing Society också utvecklat en juridiskt erkänd professionell certifiering som kallas Information Systems Professional (ISP). I Ontario, Kanada, är programvaruingenjörer som tar examen från Canadian Engineering Accreditation Board (CEAB), klarar Professional Practice Examination (PPE) och har minst 48 månaders erfarenhet av mjukvaruingenjör, berättigade att bli licensierade genom PEO. ”) och kan bli professionella ingenjörer (P.Eng).
Programmeringskunskaper är en förutsättning för att bli mjukvaruingenjör. 2004 släppte IEEE Computer Society SWEBOK , som publicerades som ISO/IEC 19759:2004-standarden, som beskriver mängden kunskap som de anser att en kvalificerad mjukvaruingenjör med fyra års erfarenhet bör skaffa sig. Många människor går in i detta yrke efter att ha tagit examen eller gått en yrkesskola. Standardläroplanen för International Bachelor of Software Engineering definierades av CCSE och uppdaterades 2004. Ett antal universitet har program för programvaruteknik. Sedan 2010 har det funnits 244 heltidsprogram, 70 onlinekurser, 230 specialistprogram, 41 forskarprogram och 69 certifikatprogram i USA. I ryska universitet finns det ett separat område för utbildning 09.03.04 "Software Engineering".
Utöver högre utbildning finansierar många företag praktikplatser för studenter som vill göra karriär inom informationsteknologi. Dessa metoder kan visa studenten intressanta verkliga utmaningar som mjukvaruingenjörer möter varje dag. Liknande erfarenhet kan erhållas genom militärtjänstgöring inom området mjukvaruteknik.
De största skillnaderna mellan mjukvaruteknik och andra ingenjörsdiscipliner, enligt vissa forskare, är den olika nivån på produktionskostnaderna. [2]
![]() | ||||
---|---|---|---|---|
|