軟體工程基本定理
外观
軟體工程基本定理(fundamental theorem of software engineering,簡稱FTSE),是計算機科學家安德鲁·克尼格提出的名詞,說明另一位計算機科學家巴特勒·蘭普森所提過的格言[1],後來被David J. Wheeler所引用[2]:
「我們可以透過引入另外一個間接層來解決所有問題。」
此定理沒有說明實際的定理,可以證明定理成立或不成立。此定理是透過間接參考(Indirection)管理複雜性的通用原則。
此定理有時會加上一個幽默的話「……那些需要太多間接層的問題例外」,指出一個事實,太多的間接會造成其自身的內在複雜性問題。在分析說明時,常用抽象化代替原來語句中的間接。
例如计算机网络的協定分層,現今無所不在,但有受到許多的批評,而其中不少的批評就是抽象化的普遍缺點[3]。此處,加入額外的間接層會讓更高層有複製較低層功能的問題,因此造成沒有效率。而且一層的功能會需要只在另一層出現的資料,這在本質上違背了分成不同層的目的。
參考資料
[编辑]- ^ Abrahams, David; Gurtovoy, Aleksey. C++ Template Metaprogramming. Addison Wesley. 2005: 13.
- ^ Lampson, Butler. Principles for Computer System Design.
- ^ Wakeman, I.; Crowcroft, J.; Wang, Z.; Sirovica, D. Is Layering Harmful?. IEEE Network. Jan 1992: 20–24. S2CID 6631446. doi:10.1109/65.120719.