Inženiring programske opreme lahko razdelimo na poddiscipline. Nekateri od njih so:
Zahteve glede programske opreme (ali inženiring zahtev): Izsiljevanje, analiza, specifikacija in validacija zahtev za programsko opremo.
Oblikovanje programske opreme: proces definiranja arhitekture, komponent, vmesnikov in drugih značilnosti sistema ali komponente. Opredeljen je tudi kot rezultat tega procesa.
Konstrukcija programske opreme: podrobna izdelava delujoče, smiselne programske opreme s kombinacijo programiranja (tudi kodiranje), preverjanje, testiranje enot, testiranje integracije in odpravljanje napak.
Testiranje programske opreme: empirična, tehnična preiskava, ki je bila izvedena, da bi zainteresiranim stranem zagotovili informacije o kakovosti izdelka ali storitve, ki se preskuša.
Vzdrževanje programske opreme: Celotna dejavnost, ki je potrebna za zagotavljanje stroškovno učinkovite podpore programski opremi.
Upravljanje konfiguracije programske opreme: identifikacija konfiguracije sistema na različnih točkah v času za sistematično nadzorovanje sprememb konfiguracije in ohranjanje celovitosti in sledljivosti konfiguracije skozi ves življenjski cikel sistema. Sodobni procesi uporabljajo različice programske opreme.
Upravljanje programskega inženiringa: uporaba upravljavskih dejavnosti - načrtovanje, usklajevanje, merjenje, spremljanje, nadzor in poročanje - za zagotovitev, da sta razvoj in vzdrževanje programske opreme sistematična, disciplinirana in kvantificirana.
Proces razvoja programske opreme: opredelitev, izvajanje, ocenjevanje, merjenje, upravljanje, spreminjanje in izboljšanje procesa življenjskega cikla programske opreme.
Modeli in metode inženiringa programske opreme postavljajo strukturo na področju programskega inženiringa s ciljem, da postane ta dejavnost sistematična, ponovljiva in na koncu bolj usmerjena v uspeh.
Kakovost programske opreme
Strokovna praksa na področju programske opreme se ukvarja z znanjem, veščinami in stališči, ki jih morajo imeti inženirji programske opreme za profesionalno, odgovorno in etično prakso programskega inženiringa.
Ekonomija programskega inženiringa je odločanje o programskem inženirstvu v poslovnem kontekstu
Računalniški temelji
Matematične osnove
Inženirski temelji