软件熵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.