Vad är programvaruteknik?

Programvaruingenjörer och dataprogrammerare utvecklar båda programvaruapplikationer som behövs av datorer som fungerar. Skillnaden mellan de två positionerna ligger i ansvaret och arbetssättet. Programvaruingenjörer använder väl definierade vetenskapliga principer och förfaranden för att leverera en effektiv och pålitlig programvaruprodukt.

Mjukvaruutveckling 

Programvaruteknik behandlar tillvägagångssättet för att utveckla programvara som en formell process ungefär som den som finns i traditionell teknik. Programvaruingenjörer börjar med att analysera användarnas behov. De designar programvara, distribuerar, testar den för kvalitet och underhåller den. De instruerar datorprogrammerare att skriva den kod de behöver. Programvaruingenjörer kan eller kanske inte skriver någon av koden själva, men de behöver starka programmeringsfärdigheter för att kommunicera med programmerarna och är ofta flytande i flera programmeringsspråk.

Programvaruingenjörer designar och utvecklar dataspel, affärsapplikationer, nätverkskontrollsystem och operativsystem för mjukvara. De är experter på teorin om datorprogramvara och begränsningarna för hårdvaran de designar för. 

Datorstödd mjukvaruutveckling

Hela mjukvarudesignprocessen måste formellt hanteras långt innan den första kodraden skrivs. Programvarutekniker producerar långa designdokument med hjälp av datorstödda verktyg för programvaruteknik. Programvaruingenjören konverterar sedan designdokumenten till designspecifikationsdokument, som används för att designa kod. Processen är organiserad och effektiv. Det pågår ingen programmering utanför manschetten.

pappers~~POS=TRUNC

Ett utmärkande drag i mjukvaruteknik är pappersspåret som den producerar. Konstruktioner skrivs av av chefer och tekniska myndigheter, och kvalitetssäkringens roll är att kontrollera pappersspåret. Många programvaruingenjörer erkänner att deras jobb är 70% pappersarbete och 30% kod. Det är ett kostsamt men ansvarsfullt sätt att skriva programvara, vilket är en anledning till att flygelektronik i moderna flygplan är så dyra.

Utmaningar för programvaruteknik

Tillverkare kan inte bygga komplexa livskritiska system som flygplan, kärnreaktorkontroller och medicinska system och förväntar sig att programvaran kastas ihop. De kräver att hela processen hanteras ordentligt av programvaruingenjörer så att budgetar kan uppskattas, rekryteras personal och risken för fel eller dyra misstag minimeras.

I säkerhetskritiska områden som luftfart, rymd, kärnkraftverk, medicin, branddetekteringssystem och berg- och dalbana kan kostnaderna för programvarufel vara enorma eftersom liv är i fara. Mjukvaruingenjörens förmåga att förutse problem och eliminera dem innan de händer är avgörande.

Certifiering och utbildning

I vissa delar av världen och i de flesta amerikanska stater kan du inte kalla dig själv en programvaruingenjör utan formell utbildning eller certifiering. Flera av de stora mjukvaruföretagen, inklusive Microsoft, Oracle och Red Hat erbjuder kurser för certifieringar. Många högskolor och universitet erbjuder examen inom programvaruteknik. Blivande programvaruingenjörer kan vara huvudsakliga inom datavetenskap, programvaruteknik, matematik eller datainformationssystem.

Datorprogrammerare

Programmerare skriver kod till specifikationerna som de har fått av programvaruingenjörer. De är experter på de viktigaste datorprogrammeringsspråken. Även om de vanligtvis inte är involverade i de tidiga designstadierna, kan de vara involverade i att testa, ändra, uppdatera och reparera koden. De skriver kod på ett eller flera av de efterfrågade programmeringsspråken, inklusive:

  • SQL
  • JavaScript
  • Java
  • C #
  • Pytonorm
  • PHP
  • Ruby on Rails
  • Snabb
  • Objective-C
  • PHP

Ingenjörer kontra programmerare

  • Programvaruteknik är en gruppaktivitet. Programmering är främst en ensam aktivitet. 
  • En mjukvaruingenjör är involverad i hela processen. Programmering är en aspekt av mjukvaruutveckling. 
  • En programvaruingenjör arbetar med komponenter med andra ingenjörer för att bygga ett system. En programmerare skriver ett komplett program.