Yazılım tasarımı, bir sorunun yazılım çözümü için, sorun giderme ve planlama aşamasıdır. Yazılımın özellikleri kararlaştırıldıktan sonra yazılım geliştiricileri sorun için bir çözüm geliştirir. Bu aşama mimarisel görünüm kadar, alt düzey algoritma gerçeklemeyi de içerir.
Yazılım tasarımı için programlamanın ilk aşaması da diyebiliriz. Programlama işlemine başlamadan önce mutlaka ön çalışma yapmak ve programın nasıl işleyeceğini ortaya koymak gerekir. Programlama makine dili veya yüksek seviyeli bir programlama dili kullanılarak yapılır.

Yazılım tasarımında bazı etmenler göz önünde bulundurulur. Bunlardan bazıları:
 Pazarlanabilirlik
 Kullanılabilirlik
 Paketleme
 Genişletilebilirlik
 Güvenilirlik
 Bakım kolaylığı
 Uyumluluk
 Yeniden kullanılabilirlik

Modelleme dili 
 Business Process Modeling Notation (BPMN)
 EXPRESS and EXPRESS-G (ISO 10303-11) 
 Extended Enterprise Modeling Language (EEML)
 Akış diyagramı
 Fundamental Modeling Concepts (FMC) 
 IDEF 
 Jackson Structured Programming (JSP) 
 LePUS3 
 Unified Modeling Language (UML)
 Alloy (specification language) 
 Systems Modeling Language (SysML)

Dış bağlantılar 
 İTÜ Ninova Açık Ders Malzemeleri , Yazılım Modelleme ve Tasarımı