軟件熵Software entropy)是指軟件的無序程度。軟件熵可用來說明軟件在經過不斷修改後,無序程度提高的現象。

伊瓦爾·雅各布森用以下的方式描述「軟件熵」: [1]

熱力學第二定律說明在一個封閉系統內的無序程度不會下降,只會上昇或維持定值,其無序程度可以用來表示。此定律似乎也可適用在軟件系統內,在系統經過修改後,其無序程度(或稱為熵)會上昇,這可稱為「軟件熵」。
軟件開發中,有類似的理論。Lehman提出了以下的二個定律[2]
  1. 有用到的電腦程式就會被修改。
  2. 若沒有特別的處理及修正,修改程式會使其複雜度會增加。

Andrew Hunt及David Thomas用破窗理論來說明如何避免在軟件開發過程中軟件熵的增加。[3]

代碼重構可以漸進的降低軟件熵。

相關條目

參考資料

  1. ^ Jacobson, Ivar; Christerson, Magnus; Jonsson, Patrik; Övergaard, Gunnar, Object-Oriented Software Engineering: A Use Case Driven Approach, ACM Press. Addison-Wesley: 69–70, 1992, ISBN 0-201-54435-0 
  2. ^ Lehman, M.M.; Belady, L.A., Program evolution: processes of software change, Academic Press Professional, Inc., San Diego, CA, 1985 
  3. ^ Hunt, Andrew; Thomas, David, The Pragmatic Programmer, Addison Wesley, 1999, ISBN 0-201-61622-X  - Item 4 (of 22 tips) is Don't Live with Broken Windows.