Cel mai bun răspuns
Ingineria software este un loc de joacă vast, cu o mulțime de diferite tipuri și subtipuri, dar principalele tipuri de inginerie software sunt două: Software de sistem și software de aplicație.
Software de sistem: Exemplele includ, dar nu se limitează la acestea, programele dedicate gestionării computerului sau un dispozitiv dedicat unei sarcini specifice, cum ar fi: sistemul de operare Windows (Microsoft Windows 10), sistemul de operare IOS (OS X 10.10 Yosemite., 4.13 OS X 10.11 El Capitan, 4.16 macOS 10.14 Mojave ……), sistem de operare Android (Android OS), Linux (Ubuntu …)
Software de aplicație: Programe pentru utilizatorii finali care îi permit utilizatorului să efectueze sarcini precum crearea documentelor (Microsoft Word, Pages …), trimiterea de e-mail (aplicația Gmail), proiectarea graficelor (Photoshop) etc.
Și toate cele de mai sus pot fi sparte în componente secundare mai mici / categorii care alcătuiesc sub arbori ai aplicațiilor software și sub arbori ai software-ului Systems.
Un exemplu de subcategorie a software-ului aplicației: Photoshop este o aplicație care aparține unei suite de aplicații software din Adobe Creative Software Suită care constă din photoshop, InDesign și altele.
În Ingineria software, atunci când un inginer software dezvoltă un site web, o aplicație mobilă sau un joc: toate aceste aplicații se încadrează în categoria software-ului de aplicație. Și dacă un software inginerul dezvoltă software care rulează probabil pe un dispozitiv fizic cu cutie neagră conceput special pentru un avion specific: această dezvoltare specifică poate intra atât în software-ul aplicației, cât și în software-ul sistemelor, deoarece este conceput pentru a face să funcționeze în mod specific un dispozitiv și acest dispozitiv depinde în mod specific de acel specific software pentru a porni și a rula o altă componentă care cuprinde sau face ca caseta neagră să funcționeze: Să presupunem că același dezvoltator de software a dezvoltat o componentă suplimentară pentru acea casetă neagră pentru a permite utilizatorilor să acceseze caseta neagră și să vizualizeze locația curentă a avionului: acea componentă dacă rulează în caseta neagră sau pe un dispozitiv mobil se încadrează în software-ul aplicației.
Răspuns
Există ingineri de software îngrozitori. Există doar ingineri software răi. Există ingineri software mediocri. Există ingineri software destul de buni. Există ingineri software buni. Există ingineri software excelenți.
Și există ingineri software care livrează software la timp și sub buget. Dumnezeu să vă ajute dacă trebuie să mențineți acel software, dar a fost la timp și sub buget.
Dar serios …
Această listă nu este inclusă. De asemenea, același SWE ar putea îndeplini mai multe roluri, poate în momente diferite și poate în momente diferite. Apropo, acestea nu sunt cele mai bune practici.
Există SWE-uri care scriu documente privind cerințele. Este posibil ca nici măcar să nu știe cum să programeze, dar înțeleg cerințele afacerii și traduc cerințele afacerii în cerințe ale programului.
Există designeri care acceptă cerințele și vin cu un design software. De obicei, ieșirea lor este ceva cum ar fi o diagramă UML sau o diagramă de flux (ororile!) Sau o diagramă de flux de date sau un fel de pseudo-cod. De asemenea, fac frecvent o analiză a diferitelor modele competitive pentru a vedea care este „optimă”. De asemenea, alcătuiesc un plan de testare.
Apoi sunt inginerii de dezvoltare software (SDE) care convertesc de fapt cerințele în cod. Obișnuiam să numim acești oameni „programatori” pentru că au scris programe, dar acest cuvânt a căzut în uz (în zilele noastre, toată lumea este inginer sau om de știință. Bibliotecarii sunt acum oameni de știință în bibliotecă. Părinții care stau la domiciliu sunt ingineri domestici. acum ingineri de construcții. Șoferii de camioane sunt acum ingineri operaționali de transport și așa mai departe).
Codul merge la inginerii de dezvoltare software în test. Ei testează software-ul conform planului de testare. De obicei, există două faze de testare: testarea unității și testarea sistemului.
În cele din urmă, software-ul este pus la dispoziția inginerilor. Nu sunt exact ceea ce fac ei, pentru că am fost unul pentru o vreme.
Există, de asemenea, scriitori tehnici care scriu documentația clienților și susțin ingineri care îi ajută pe clienți atunci când ceva nu merge bine.
Există ingineri de asistență pentru vânzări și treaba lor este fie să-i uimească cu strălucire, fie să-i uimească cu prostii. Mi se spune că aș fi bun la asta. Asta mă face să fiu îngrijorat.