Bästa svaret
Software Engineering är en stor lekplats med många olika typer och undertyper, men de viktigaste typerna av programvaruteknik är två: Systemprogramvara och applikationsprogramvara.
Systemprogramvara: Exempel inkluderar men är inte begränsat till de program som är avsedda för hantering av datorn eller någon enhet som är avsedd för en specifik uppgift 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 …)
Programvara: Slutanvändarprogram som gör det möjligt för användaren att utföra uppgifter som att skapa dokument (Microsoft Word, Pages …), skicka e-post (Gmail-applikation), designa grafik (Photoshop) etc
Och allt ovan kan brytas upp i mindre underkomponenter / kategorier som utgör underträd av applikationsprogramvara och underträd av systemprogramvara.
Ett exempel på en underkategori av applikationsprogramvara: Photoshop är ett program som tillhör en serie programvaruapplikationer i Adobe Creative Software Svit som består av photoshop, InDesign och andra.
In Software Engineering, när en programvarutekniker utvecklar en webbplats, en mobilapp eller ett spel: Alla dessa applikationer faller under kategorin applikationsprogramvara. Och om en programvara ingenjör utvecklar programvara som körs på en fysisk blackbox-enhet som är utformad speciellt för ett specifikt flygplan: Denna specifika utveckling kan falla inom applikationsprogramvara och systemprogramvara eftersom den är utformad för att specifikt få en enhet att fungera och den här enheten beror specifikt på den programvara för att starta upp och köra andra komponenter som omfattar eller får blackbox att fungera: Låt oss nu anta att samma programutvecklare har utvecklat en ytterligare komponent för den svarta rutan för att göra det möjligt för användarna att komma åt den svarta rutan och se flygplans aktuella plats: Den komponenten oavsett om den körs i den svarta rutan eller på en mobil enhet omfattas av applikationsprogramvara.
Svar
Det finns hemska mjukvaruutvecklare. Det finns bara dåliga mjukvaruutvecklare. Det finns medelmåttiga mjukvaruutvecklare. Det finns ganska bra mjukvaruutvecklare. Det finns bra mjukvaruutvecklare. Det finns fantastiska mjukvaruutvecklare.
Och det finns programvarutekniker som levererar programvara i tid och under budget. Gud hjälper dig om du måste underhålla den programvaran, men den var i tid och under budget.
Men på allvar …
Denna lista är inte inkluderande. Samma SWE kan också göra flera roller, kanske vid olika tidpunkter och kanske vid olika tidpunkter. Det här är förresten inte bästa praxis.
Det finns SWE: er som skriver kravdokument. De kanske inte ens vet hur man programmerar, men de förstår affärsbehov och de översätter företagskraven till programkrav.
Det finns designers som tar kraven och kommer med en programvarudesign. Vanligtvis är deras resultat något som ett UML-diagram eller ett flödesschema (fasor!) Eller ett dataflödesdiagram eller någon form av pseudokod. De gör också ofta en analys av olika konkurrensdesigner för att se vilken som är “optimal”. De utgör också en testplan.
Sedan är programutvecklare (SDE) som faktiskt omvandlar kraven till kod. Vi kallade dessa människor ”programmerare” för att de skrev program, men det ordet har kommit i outnyttjande (idag är alla ingenjörer eller forskare. Bibliotekarier är nu biblioteksforskare. Hemmaföräldrar är hushållsingenjörer. bygger nu ingenjörer. Lastbilsförare är nu operativa ingenjörer och så vidare).
Koden går till testingenjörer för programvaruutveckling. De testar programvaran enligt testplanen. Vanligtvis finns det två testfaser: enhetstestning och systemtestning.
Slutligen går programvaran till att släppa ingenjörer. Jag är inte precis vad de gör för jag var en stund.
Det finns också tekniska författare som skriver kunddokumentation och supporttekniker som hjälper kunder när något går fel.
Det finns försäljningsstödtekniker och deras jobb är att antingen blända dem med glans eller förvirra dem med skitsnack. Jag får veta att jag skulle vara bra på det. Det gör mig orolig.