Ohjelmistoarkkitehtuuri kuvaa ohjelmiston tai ohjelmistojärjestelmän rakennetta. Järjestelmän koon kasvaessa suunnitteluongelma ylittää algoritmien ja tietorakenteiden määrittelyn ja suurissa järjestelmissä kokonaisuuden suunnittelu ja määrittely esiintyy uutena ongelmana.[1]