ohjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit ovat ohjelmistojärjestelmien ylintä rakennesuunnittelua. Ne kuvaavat järjestelmän koostuvien komponenttien, niiden vastuiden sekä komponenttien välisten yhteyksien yleisen rakenteen. Arkkitehtuuri toimii ohjenuorana suunnittelulle, kehitykselle, testaukselle ja ylläpidolle sekä järjestelmän elinkaaren riskien hallinnalle. Sen päätökset vaikuttavat sekä toiminnallisiin että ei-toiminnallisiin vaatimuksiin, kuten suorituskykyyn, skaalautuvuuteen, luotettavuuteen, turvallisuuteen ja ylläpidettävyyteen.
Keskeisiä arkkitehtuurityylejä ja -mallipohjia ovat kerroksittainen arkkitehtuuri, asiakas-palvelin (client-server), putkista ja suodattimista (pipes-and-filters), tapahtumavetoiset järjestelmät (event-driven),
Arkkitehtuurin dokumentointi ja päätöksenteko ovat keskeisiä. Tiedot voidaan kerätä Architectural Decision Records -tiedostoihin sekä arkkitehtuurin näkökulmiin,
Kehityksen aikana arkkitehtuuri voi kehittyä iteratiivisesti. Käytännössä arkkitehtuuri ohjaa sekä nykyistä toteutusta että tulevia muutoksia ja