Конкретизирующее программирование предполагает, что частные, специальные программы извлекаются из универсальной.
Наиболее известная технология конкретизирующего программирования это подход с применением паттернов проектирования [Гамма, Хелм, Джонсон, Влиссидес 2001]. Паттерн (шаблон) проектирования (design pattern) описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте. Проектировщик знакомый с паттернами, может сразу применять их к решению новой задачи, конкретизируя их. Паттерны проектирования упрощают повторное использование удачных проектных и архитектурных решений.
Паттерн состоит из четырех основных элементов:
* имени — однозначно описывающего проблему проектирования;
* задачи — описания того, когда следует применять паттерн для конкретизации;
* решения — абстрактного описания элементов дизайна и отношений между ними;
* результатов — следствий применения паттерна.
Дополнительно к паттернам существуют каркасы (framework) — наборы взаимодействующих классов, составляющих повторно используемый дизайн для конкретного класса программ. Каркас диктует определенную архитектуру приложения, в нем аккумулированы проектные решения, общие для проектной области. Например, существуют каркасы, которые используются для разработки компиляторов.