Beste svaret
Software Engineering er en enorm lekeplass med mange forskjellige typer og undertyper, men de viktigste typene software engineering er to: Systemprogramvare og applikasjonsprogramvare.
Systemprogramvare: Eksempler inkluderer men er ikke begrenset til programmene som er dedikert til å administrere datamaskinen eller en eller annen enhet dedikert til en bestemt oppgave som: Windows-operativsystem (Microsoft Windows 10), IOS-operativsystem (OS X 10.10 Yosemite., 4.13 OS X 10.11 El Capitan, 4.16 macOS 10.14 Mojave ……), Android-operativsystem (Android OS), Linux (Ubuntu…)
Applikasjonsprogramvare: Sluttbrukerprogrammer som gjør det mulig for brukeren å utføre oppgaver som å lage dokumenter (Microsoft Word, Pages …), sende e-post (Gmail-applikasjon), designe grafikk (Photoshop) osv.
Og alt det ovennevnte kan brytes opp i mindre underkomponenter / kategorier som utgjør undertrær av applikasjonsprogramvare og undertrær av systemprogramvare.
Et eksempel på en underkategori av applikasjonsprogramvare: Photoshop er et program som tilhører en serie programvareapplikasjoner i Adobe Creative Software Suite som består av photoshop, InDesign og andre.
I Software Engineering, når en programvareingeniør utvikler et nettsted, en mobilapp eller et spill: Alle disse programmene faller inn under kategorien applikasjonsprogramvare. Og hvis en programvare ingeniør utvikler programvare som kjører på en fysisk black box-enhet designet spesielt for ett bestemt fly: Denne spesifikke utviklingen kan falle inn under applikasjonsprogramvare så vel som systemprogramvare fordi den er designet for å spesifikt få en enhet til å fungere, og denne enheten avhenger spesielt av den spesifikke programvare for å starte opp og kjøre andre komponenter som omfatter eller får blackbox til å fungere: La oss anta at den samme programvareutvikleren har utviklet en ekstra komponent for den svarte boksen for å gjøre det mulig for brukerne å få tilgang til den svarte boksen og se flyets nåværende plassering: Komponenten, uansett om den kjører i den svarte boksen eller på en mobil enhet, faller inn under applikasjonsprogramvare.
Svar
Det er forferdelige programvareingeniører. Det er bare dårlige programvareingeniører. Det er middelmådige programvareingeniører. Det er ganske gode programvareingeniører. Det er gode programvareingeniører. Det er gode programvareingeniører.
Og det er programvareingeniører som leverer programvare i tide og under budsjett. Gud hjelper deg hvis du må vedlikeholde den programvaren, men den var i tide og under budsjett.
Men seriøst …
Denne listen er ikke inkludert. Også den samme SWE kan gjøre flere roller, kanskje til forskjellige tider, og kanskje til forskjellige tider. Dette er for øvrig ikke best practices.
Det er SWE-er som skriver kravdokumenter. De vet kanskje ikke en gang hvordan de skal programmere, men de forstår forretningskrav og de oversetter forretningskravene til programkrav.
Det er designere som tar kravene og kommer med en programvaredesign. Vanligvis er utdataene deres noe som et UML-diagram eller et flytdiagram (grusomheter!) Eller et dataflytdiagram eller en slags pseudokode. De gjør også ofte en analyse av ulike konkurransedyktige design for å se hvilken som er “optimal”. De utgjør også en testplan.
Så er programvareutviklingsingeniørene (SDE) som faktisk konverterer kravene til kode. Vi pleide å kalle disse menneskene «programmerere» fordi de skrev programmer, men det ordet har falt i bruk (i dag er alle ingeniører eller vitenskapsmenn. Bibliotekarer er nå bibliotekforskere. Hjemmehjemmeforeldre er husingeniører. bygger nå ingeniører. Lastebilsjåfører er nå operasjonsingeniører, og så videre).
Koden går til programvareutviklingsingeniører i test. De tester programvaren i henhold til testplanen. Vanligvis er det to testfaser: enhetstesting og systemtesting.
Til slutt går programvaren for å frigjøre ingeniører. Jeg er ikke akkurat det de gjør, for jeg var en stund.
Det er også tekniske forfattere som skriver kundedokumentasjon og støtter ingeniører som hjelper kunder når noe går galt.
Det er salgsstøtteingeniører, og deres jobb er å enten blende dem med glans eller forvirre dem med tull. Jeg får beskjed om at jeg vil være god til det. Det gjør meg bekymret.