附属复杂度 - 维基百科,自由的百科全书

附屬复杂度(Accidental complexity)是指電腦軟體開發過程中所引入不必要的复杂度。附屬复杂度不是待求解問題的本質,相對而言, 本質複雜度和待求解問題的本質有關,是無法避免的。附屬复杂度一般是因為選用求解問題的方法時所引入的[1]

有時附屬复杂度可以歸因於像無效的規劃等錯誤,不過有時附屬复杂度是求解問題時伴隨產生的副作用。例如因為記憶體用完而產生的复杂度是一種附屬复杂度,但只要決定使用電腦求解問題,就會存在這種复杂度。

好的軟體架構、設計及實現可以將附屬复杂度降到最低,過多的附屬复杂度是一個反面模式的例子。

圖靈獎得主佛瑞德·布魯克斯在1980年代中期已開始使用附属复杂度。他也在1995年時在《人月神話》中的沒有銀彈一段中提出他的新論點[2][3][4][5]

參考資料

[编辑]
  1. ^ Holt, John. UML for systems engineering: watching the wheels. IET. 2004: 8. ISBN 978-0-86341-354-4. 
  2. ^ Brooks, Fred P. No Silver Bullet - Essence and Accident in Software Engineering. Proceedings of the IFIP Tenth World Computing Conference. 1986: 1069–1076. 
  3. ^ Brooks, IEEE Computer
  4. ^ Brooks, Mythical Man-Month, Silver Bullet Refired
  5. ^ McCabe, Watson. Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric Chapter 10: Essential Complexity. 1996. (原始内容存档于2012-08-28).