Фундаментальная теорема программной инженерии ( FTSE ) — термин, введенный Эндрю Кенигом для описания замечания Батлера Лэмпсона [1], приписываемого Дэвиду Дж. Уиллеру : [2]
«Мы можем решить любую проблему, введя дополнительный уровень косвенности ».
Теорема не описывает фактическую теорему, которую можно доказать; скорее, это общий принцип управления сложностью посредством абстракции .
Теорема часто расширяется юмористическим предложением «… за исключением проблемы слишком большого количества уровней косвенности», ссылаясь на тот факт, что слишком много абстракций могут создавать собственные проблемы внутренней сложности. Например, использование слоев протоколов в компьютерных сетях , которое сегодня повсеместно, подвергалось критике способами, типичными для более общих недостатков абстракции. [3] Здесь добавление дополнительных уровней косвенности может привести к тому, что более высокие уровни будут дублировать функциональность нижних уровней , что приведет к неэффективности, а функциональность на одном уровне может потребовать данных, присутствующих только на другом уровне, что в корне нарушает цель разделения на разные уровни.