Programminženierijā projektēšanas šablons ir vispārīgs atkalizmantojams risinājums biežai problēmai programmatūras projektējumā. Tas nav pabeigts risinājums, ko var tieši pārveidot izejas kodā vai mašīnkodā. Tas ir apraksts vai paraugs tam, kā risināt problēmu, un to var izmantot daudzās dažādās situācijās. Projektēšanas šabloni ir formalizētas labās prakses, kuras programmētāji var izmantot, lai risinātu biežāk sastopamās problēmas sistēmas vai lietotnes projektēšanas gaitā.

Objektorientētie projektēšanas šabloni parasti demonstrē klašu vai objektu attiecības un savstarpējo mijiedarbību, konkrēti nenorādot iesaistīto klašu vai objektu gala realizācijas. Šabloni, kas maina objekta stāvokli, var nebūt izmantojami funkcionālās programmēšanas valodās, daži šabloni var nebūt nepieciešami valodās, kurās ir iebūvēts atbalsts problēmai, ko šis šablons risina, objektorientētie šabloni var nederēt risinājumiem neobjektorientētās valodās.

Projektēšanas šabloni var tikt uzskatīti par strukturētu piegājienu programmēšanai un līmeni starp programmēšanas paradigmu un konkrētu algoritmu.