Najlepsza odpowiedź
Inżynieria oprogramowania to ogromny plac zabaw z wieloma różnymi typami i podtypami, ale główne typy inżynierii oprogramowania to dwa: Oprogramowanie systemowe i oprogramowanie użytkowe.
Oprogramowanie systemowe: Przykłady obejmują między innymi programy przeznaczone do zarządzania komputerem lub jakieś urządzenie przeznaczone do określonego zadania, takie jak: system operacyjny Windows (Microsoft Windows 10), system operacyjny IOS (OS X 10.10 Yosemite., 4.13 OS X 10.11 El Capitan, 4.16 macOS 10.14 Mojave ……), system operacyjny Android (system operacyjny Android), Linux (Ubuntu…)
Oprogramowanie: Programy dla użytkowników końcowych, które umożliwiają użytkownikowi wykonywanie zadań, takich jak tworzenie dokumentów (Microsoft Word, Pages…), wysyłanie wiadomości e-mail (aplikacja Gmail), projektowanie grafiki (Photoshop) itp.
A wszystko to można zepsuć na mniejsze komponenty podrzędne / kategorie, które tworzą poddrzewa oprogramowania aplikacji i drzewa podrzędne oprogramowania systemowego.
Przykład podkategorii oprogramowania aplikacyjnego: Photoshop to aplikacja należąca do pakietu aplikacji w Adobe Creative Software Pakiet składający się z Photoshopa, InDesign i innych.
W inżynierii oprogramowania, gdy inżynier oprogramowania tworzy witrynę internetową, aplikację mobilną lub grę: wszystkie te aplikacje należą do kategorii oprogramowania użytkowego. inżynier opracowuje oprogramowanie, które może działać na fizycznym urządzeniu typu „czarna skrzynka” zaprojektowanym specjalnie dla jednego konkretnego samolotu: ten konkretny rozwój może podlegać zarówno oprogramowaniu aplikacyjnemu, jak i systemowemu, ponieważ jest przeznaczony specjalnie do działania jednego urządzenia, a to urządzenie zależy konkretnie oprogramowanie do uruchomienia i uruchomienie innego komponentu, który obejmuje lub sprawia, że czarna skrzynka działa: Załóżmy teraz, że ten sam programista opracował dodatkowy komponent dla tę czarną skrzynkę, aby umożliwić użytkownikom dostęp do czarnej skrzynki i przeglądanie bieżącej lokalizacji samolotu: ten komponent, czy działa w czarnej skrzynce lub na urządzeniu mobilnym, podlega oprogramowaniu aplikacyjnemu.
Odpowiedź
Jest okropnych inżynierów oprogramowania. Są tylko źli inżynierowie oprogramowania. Istnieją mierni inżynierowie oprogramowania. Jest całkiem dobrych inżynierów oprogramowania. Są dobrzy inżynierowie oprogramowania. Są świetni inżynierowie oprogramowania.
Są też inżynierowie oprogramowania, którzy dostarczają oprogramowanie na czas i w ramach budżetu. Boże dopomóż, jeśli musisz utrzymywać to oprogramowanie, ale było to na czas i w ramach budżetu.
Ale poważnie…
Ta lista nie jest wyczerpująca. Ponadto ta sama SWE może pełnić kilka ról, być może w różnym czasie, a może w różnym czasie. Nawiasem mówiąc, to nie są najlepsze praktyki.
Są SWE, którzy piszą dokumenty wymagań. Mogą nawet nie wiedzieć, jak programować, ale rozumieją wymagania biznesowe i przekładają wymagania biznesowe na wymagania programu.
Są projektanci, którzy przyjmują wymagania i opracowują projekt oprogramowania. Zwykle ich wynikiem jest coś takiego jak diagram UML lub schemat blokowy (ohyda!), Diagram przepływu danych lub jakiś rodzaj pseudokodu. Często też analizują różne konkurencyjne projekty, aby zobaczyć, który z nich jest „optymalny”. Tworzą również plan testów.
Następnie są inżynierowie programistyczni (SDE), którzy faktycznie przekształcają wymagania w kod. Nazywaliśmy tych ludzi „programistami”, ponieważ pisali programy, ale to słowo wyszło z użycia (obecnie każdy jest inżynierem lub naukowcem. Bibliotekarze są teraz bibliotekarzami. Rodzice mieszkający w domu są inżynierami domowymi. teraz inżynierowie budowlani. Kierowcy ciężarówek są teraz inżynierami operacyjnymi transportu itd.).
Kod jest testowany przez inżynierów programistów. Testują oprogramowanie zgodnie z planem testów. Zwykle są dwie fazy testowe: testowanie jednostkowe i testowanie systemu.
Na koniec oprogramowanie trafia do inżynierów. Nie jestem tym, czym oni się zajmują, bo nim byłem przez jakiś czas.
Są też pisarze techniczni, którzy piszą dokumentację dla klientów i inżynierowie pomocy technicznej, którzy pomagają klientom, gdy coś pójdzie nie tak.
Są inżynierowie wsparcia sprzedaży, a ich zadaniem jest albo olśnić ich błyskotliwością, albo wprawić w zakłopotanie bzdurami. Powiedziano mi, że byłbym w tym dobry. To mnie niepokoi.