Komponentna programska oprema, včasih imenovana komponentna programska oprema, se nanaša na ločen modul ali programski objekt, ki deluje neodvisno od drugih komponent v sistemu, hkrati pa ohranja komunikacijo s celotnim sistemom. Preprosteje povedano, komponenta je zgrajena za zagotavljanje določene naloge ali storitve. Čeprav ta vrsta programskega inženiringa temelji na objektno usmerjenem programiranju, velja za ločeno in naprednejšo klasifikacijo, imenovano storitveno usmerjeno programiranje. Posamezni komponentni moduli omogočajo, da sistem še naprej deluje v primeru, da se en sam program zruši.
Izraz komponentna programska oprema ustrezno opisuje način, kako vsak od posameznih programskih modulov tvori komponento ali del celotnega sistema. Na primer, razmislite o načinu, kako je avto sestavljen iz različnih delov. Nekateri deli so bolj bistveni za njegovo delovanje kot drugi, a kot celota, če odpove določen nekritičen sistem, kot je radio, bo preostali del avtomobila še naprej deloval. Programiranje komponent programske opreme je podobna načrtovalna shema, v kateri več delov ustvarja celoten sistem.
Ta vrsta programske opreme se običajno uporablja v programskih aplikacijah, ko bi popolna okvara sistema lahko povzročila težave z varnostjo ali bila nadloga. Takšne aplikacije vključujejo programsko opremo za obdelavo naročil in plačil, programsko opremo za vodenje evidenc in celo internetne brskalnike. Posamezne naloge, ki jih izvaja programska oprema te vrste, so prenesene na posamezne komponente programske opreme. Ti deli zagotavljajo enakomerno delovanje celotnega sistema, hkrati pa ščitijo varnost sistema, saj je vsaka komponenta izolirana od drugih.
V primeru internetnih brskalnikov lahko posamezne komponente delujejo tako, da ponujajo več sej brskanja po procesih. Za povprečnega uporabnika to pomeni, da ko je odprtih pet zavihkov in napačen java skript povzroči zamrznitev spletnega mesta, ki si ga ogleduje na enem zavihku, je ogrožen samo ta zavihek. Z zapiranjem zavihka lahko shranite preostanek seje. Ta sistem z več procesi prav tako povečuje varnost v sodobnem internetnem brskalniku, saj vsak proces hrani v svojem ločenem prostoru.
Številni sodobni računalniški operacijski sistemi (OS) vsaj do neke mere uporabljajo komponentno programsko opremo. En primer je operacijski sistem Windows. V tem sistemu lahko uporabniki omogočijo ali onemogočijo komponente OS, da ga prilagodijo svojim potrebam. Poleg tega, če se program ustavi, so vključeni zaščitni ukrepi za varno uničenje povezanega procesa in končanje programa brez ponovnega zagona računalnika. Zaradi te sposobnosti je komponentna programska oprema pomemben del programskega inženiringa.