Design softwaru je proces řešení problémů a plánování pro softwarové řešení. Teprve když jsou určeny účely a specifikace softwaru, mohou začít softwarový vývojáři pracovat na vývoji a návrhu řešení. To zahrnuje komponenty na nízké úrovni a otázky související s implementací algoritmů, tak jako i pohled na architekturu.
Dnešní koncepty návrhu poskytují softwarovému designérovi více sofistikovanější metody.
Existuje také mnoho aspektů, které je třeba zvážit při návrhu softwaru.