programvaredesignet
Programvaredesignet refererer til den delen av programvareutviklingen som beskriver hvordan et system settes sammen av komponenter, data og grensesnitt for å oppfylle kravene innenfor gitte begrensninger. Hovedformålet er å legge til rette for implementering, vedlikehold og skalerbarhet, samt å oppnå ønskede kvalitetsattributter som pålitelighet og ytelse.
Skille mellom arkitektur og detaljering: arkitektur beskriver systemets overordnede struktur og forholdet mellom hovedkomponentene, mens detaljert
Prosess og artefakter: etter kravspesifikasjonen utarbeides en arkitekturbeskrivelse, modul design og grensesnittkontrakter, samt datamodellering og valg
Viktige prinsipper: separasjon av bekymringer, modulær design, abstraksjon, lav kobling og høy kohesjon, gjenbruk og enkelhet.
Designmønstre og notasjoner: UML brukes ofte for å modellere strukturer og interaksjoner; mønstre som Factory, Observer,
Tilnærminger: mange prosjekter kombinerer top-down- og bottom-up-tilnærminger, ofte i en iterativ og inkrementell utviklingsmodell som vektlegger