Programvaredesign er en underdisiplin av programvareutvikling som går på å definere arkitekturen, komponentene, grensesnittene og andre trekk ved et system eller en komponent. Sett som en prosess er programvaredesign den aktiviteten som går på å analysere kravene til programvaren for å beskrive dens interne struktur. Sluttproduktet av designprosessen er en arkitektur, altså hvordan programvaren er delt opp og organisert.

Programvaredesign kan deles inn i arkitektur og detaljert design. Detaljert design beskriver hver komponent presist nok til at den kan implementeres.

Se også Kravbehandling

Kilder IEEE Computer Society Guide to the Software Engineering Body of Knowledge, IEEE 2004

Design