Методология программирования, при которой программа описывается как совокупность абстрактных типов данных.