軟體工程基本定理

軟體工程基本定理（fundamental theorem of software engineering，簡稱FTSE），是計算機科學家安德鲁·克尼格提出的名詞，說明另一位計算機科學家巴特勒·蘭普森所提過的格言，後來被所引用：

此定理沒有說明實際的定理，可以證明定理成立或不成立。此定理是透過間接參考（Indirection）管理複雜性的通用原則。

此定理有時會加上一個幽默的話「……那些需要太多間接層的問題例外」，指出一個事實，太多的間接會造成其自身的內在複雜性問題。在分析說明時，常用抽象化代替原來語句中的間接。

例如计算机网络的協定分層，現今無所不在，但有受到許多的批評，而其中不少的批評就是抽象化的普遍缺點。此處，加入額外的間接層會讓更高層有複製較低層功能的問題，因此造成沒有效率。而且一層的功能會需要只在另一層出現的資料，這在本質上違背了分成不同層的目的。

參考資料

Category:軟體工程