Фреймворк

Каркас программной системы (или подсистемы). Может включать вспомогательные программы, библиотеки кода, язык сценариев и другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта. Обычно объединение происходит за счет использования единого API.

Отличительной особенностью фреймворка является инверсия контроля (inversion of control) - парадигма, при которой программист расширяет готовую систему путем размещения собственного кода в специально определенных точках выполнения, например, при помощи полиморфизма в ООП-языках или колбеков в процедурных языках. Потоком выполнения при этом управляет фреймворк.

Использование фреймворков облегчает написание сложных приложений - таких, как игры, серверы, приложения с графическим интерфейсом. Платой за удобство становится привязанность кода к фреймворку.