Ohjelmistosuunnittelussa
Ohjelmistosuunnittelussa tarkoitetaan ohjelmistojen rakenteen, toiminnallisuuden ja käyttäytymisen suunnitteluprosessia ennen ja osana toteutusta. Se kattaa vaatimusten analysoinnin, arkkitehtuurin valinnan, moduulien ja rajapintojen määrittelyn sekä yksityiskohtaisemmat luokka- ja tietomallit. Tavoitteena ovat toiminnalliset vaatimukset, ylläpidettävyys, laajennettavuus, suorituskyky ja turvallisuus.
Keskeisiä periaatteita ovat eriyttäminen, kapselointi, abstraktio, toistettavuuden välttäminen ja yksinkertaisuus. Suunnittelussa hyödynnetään suunnittelumalleja, arkkitehtuurityylejä (esim. kerrosarkkitehtuuri,
Metodologiat vaihtelevat vesiputkesta iteratiivisiin ja ketteriin käytäntöihin; valinta riippuu projektin koosta, riskistä ja vaatimusten muuttumisnopeudesta. Suunnittelu
Haasteita ovat vaatimusten epäselvyys, tekninen velka, skaalautuvuus ja turvallisuusvaatimusten täyttäminen. Parhaat käytännöt painottavat selkeää dokumentointia, iteratiivista