Hva er programvareteknikk?

Fokusert kvinnelig ingeniør som jobber på bærbar PC i verkstedet

Heltebilder / Getty Images





Programvareingeniører og dataprogrammerere begge utvikler programvare som trengs av fungerende datamaskiner. Forskjellen mellom de to stillingene ligger i ansvaret og tilnærmingen til jobben. Programvareingeniører bruker veldefinerte vitenskapelige prinsipper og prosedyrer for å levere et effektivt og pålitelig programvareprodukt.

Software Engineering

Programvareteknikk behandler tilnærmingen til utvikling av programvare som en formell prosess omtrent som den man finner i tradisjonell ingeniørfag. Programvareingeniører begynner med å analysere brukerbehov. De designer programvare, distribuerer, tester den for kvalitet og vedlikeholder den. De instruerer dataprogrammerere hvordan de skal skrive koden de trenger. Programvareingeniører kan eller ikke skriv noen av koden selv, men de trenger sterke programmeringsferdigheter for å kommunisere med programmererne og behersker ofte flere programmeringsspråk.



Programvareingeniører designe og utvikle dataspill , forretningsapplikasjoner, nettverkskontrollsystemer og programvareoperativsystemer. De er eksperter på teorien om dataprogramvare og begrensningene til maskinvaren de designer for.

Datastøttet programvareteknikk

Hele programvaredesignprosessen må formelt administreres lenge før den første kodelinjen skrives. Programvareingeniører produserer lange designdokumenter ved hjelp av datastøttede programvareingeniørverktøy. Programvareingeniøren konverterer deretter designdokumentene til designspesifikasjonsdokumenter, som brukes til å designe kode. Prosessen er organisert og effektiv. Det foregår ingen off-the-cuff programmering.



Papirarbeid

Et kjennetegn ved programvareutvikling er papirsporet det produserer. Design signeres av ledere og tekniske myndigheter, og kvalitetssikringens rolle er å sjekke papirsporet. Mange programvareingeniører innrømmer at jobben deres består av 70 % papirarbeid og 30 % kode. Det er en kostbar, men ansvarlig måte å skrive programvare på, som er en grunn til at flyelektronikk i moderne fly er så dyrt.

Programvareingeniørutfordringer

Produsenter kan ikke bygge komplekse livskritiske systemer som fly, atomreaktorkontroller og medisinske systemer og forventer at programvaren blir kastet sammen. De krever at hele prosessen administreres grundig av programvareingeniører, slik at budsjetter kan estimeres, rekrutteres personale og minimeres risikoen for feil eller dyre feil.

I sikkerhetskritiske områder som luftfart, romfart, atomkraftverk, medisin, branndeteksjonssystemer og berg-og-dal-baneturer, kan kostnadene ved programvarefeil være enorme fordi liv er i fare. Programvareingeniørens evne til å forutse problemer og eliminere dem før de oppstår er kritisk.

Sertifisering og utdanning

I noen deler av verden og i de fleste amerikanske stater kan du ikke kalle deg programvareingeniør uten formell utdanning eller sertifisering. Flere av de store programvareselskapene, inkludert Microsoft, Oracle og Red Hat, tilbyr kurs mot sertifiseringer. Mange høyskoler og universiteter tilbyr grader i programvareteknikk. Aspirerende programvareingeniører kan ha hovedfag i informatikk, programvareteknikk, matematikk eller datainformasjonssystemer.



Dataprogrammerere

Programmerere skriver kode til spesifikasjonene gitt til dem av programvareingeniører. De er eksperter på de store dataprogrammeringsspråkene. Selv om de vanligvis ikke er involvert i de tidlige designstadiene, kan de være involvert i testing, modifisering, oppdatering og reparasjon av koden. De skriver kode på ett eller flere av de etterspurte programmeringsspråkene, inkludert:

Ingeniører vs. programmerere

  • Programvareutvikling er en teamaktivitet. Programmering er først og fremst en ensom aktivitet.
  • En programvareingeniør er involvert i hele prosessen. Programmering er et aspekt ved programvareutvikling.
  • En programvareingeniør jobber på komponenter sammen med andre ingeniører for å bygge et system. En programmerer skriver et komplett program.