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