Narzędzia te mogą być względnie samodzielnymi programami, takimi jak kompilatory, debuggery, interpretery, łączniki i edytory tekstu, które można łączyć w celu wykonania zadania. Mogą one również tworzyć zintegrowane środowisko programistyczne (IDE), które łączy w sobie wiele funkcji takich samodzielnych narzędzi.
Architektura Użytkownicy często postrzegają istotę oprogramowania inaczej niż programiści. Osoby korzystające z nowoczesnych komputerów ogólnego przeznaczenia (w przeciwieństwie do systemów wbudowanych, komputerów analogowych i superkomputerów) zazwyczaj widzą trzy warstwy oprogramowania wykonującego różnorodne zadania: platformę, aplikację i oprogramowanie użytkownika.
Oprogramowanie platformy
Platforma obejmuje oprogramowanie sprzętowe, sterowniki urządzeń, system operacyjny i zazwyczaj graficzny interfejs użytkownika, który pozwala użytkownikowi na interakcję z komputerem i jego urządzeniami peryferyjnymi.
Oprogramowanie napisane przez użytkownika