Tasarım şablonları (tasarım kalıpları, tasarım örüntüleri, tasarım desenleri), yazılım tasarımı sırasında sıkça karşılaşılan, birbirine benzer sorunları çözmek için geliştirilmiş ve kanıtlanmış genel çözüm önerileridir. Bu şablonlar, nesneler ve sınıflar arasındaki ilişkileri-etkileşimleri gösterirler. Programcı, bir tasarım şablonunu yaşadığı soruna bakarak kullanabilir. Tasarım şablonlarının temelleri, Mimar Christopher Alexander‘ın 1970 sonlarında başlatığı çalışmalara dayanmaktadır. Alexander, 1977 ‘de “A Pattern…