Ohjelmistoarkkitehtuuri
Ohjelmistoarkkitehtuuri kuvaa ohjelmiston korkean tason komponentit ja sen, miten ne ovat vuorovaikutuksessa keskenään. Järjestelmän jokaisella komponentilla on tarkoin määritelty tehtävä sekä joukko rajapintoja. Tietyn arkkitehtuurin käyttäminen järjestelmässä tarkoittaa myös valintojen tekemistä. Sen muuttaminen myöhemmin voi olla vaikeaa ja kallista.