词条 | Fundamental theorem of software engineering |
释义 |
The fundamental theorem of software engineering (FTSE) is a term originated by Andrew Koenig to describe a remark by Butler Lampson[1] attributed to the late David J. Wheeler:[2] {{quote|"We can solve any problem by introducing an extra level of indirection."}}The theorem does not describe an actual theorem that can be proven; rather, it is a general principle for managing complexity through abstraction. The theorem is often expanded by the humorous clause "…except for the problem of too many levels of indirection," referring to the fact that too many abstractions may create intrinsic complexity issues of their own. For example, the use of protocol layering in computer networks, which today is ubiquitous, has been criticized in ways that are typical of more general disadvantages of abstraction.[3] Here, the adding of extra levels of indirection may cause higher layers to duplicate the functionality of lower layers, leading to inefficiency, and functionality at one layer may need data present only at another layer, which fundamentally violates the goal of separation into different layers. See also
References1. ^Abrahams and Gurtovoy, C++ Template Metaprogramming, 2005, Addison Wesley, p13. 2. ^http://bwlampson.site/Slides/TuringLecture.htm 3. ^{{cite journal| last1 = Wakeman | first1 = I. | last2=Crowcroft | first2=J. | last3=Wang | first3=Z.|last4=Sirovica|first4=D. | date = Jan 1992| title = Is Layering Harmful?| journal = IEEE Network| pages =20–24| doi = 10.1109/65.120719}} 2 : Fundamental theorems|Software engineering folklore |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。