軟體熵(Software entropy)是指軟體的無序程度。軟體熵可用來說明軟體在經過不斷修改後,無序程度提高的現象。
伊瓦尔·雅各布森用以下的方式描述「軟體熵」:
[1]
- 熱力學第二定律說明在一個封閉系統內的無序程度不會下降,只會上昇或維持定值,其無序程度可以用熵來表示。此定律似乎也可適用在軟體系統內,在系統經過修改後,其無序程度(或稱為熵)會上昇,這可稱為「軟體熵」。
- 在軟體開發中,有類似的理論。Lehman提出了以下的二個定律[2]:
- 有用到的電腦程式就會被修改。
- 若沒有特別的處理及修正,修改程式會使其複雜度會增加。
Andrew Hunt及David Thomas用破窗理論來說明如何避免在軟體開發過程中軟體熵的增加。[3]
代碼重構可以漸進的降低軟體熵。