软件腐败(Software rot)也称代码腐败位元腐败软件腐蚀软件衰变,或软件熵,是指软件性能随着时间而逐渐恶化或反应性的递减(diminishing responsiveness),导致软件出错、不稳定或被称作遗留系统英语legacy software,需要升级。这并不是一个物理现象:软件实际上并不会衰变,而是缺乏敏捷反应(responsive)、未能随环境变化而修改。

新骇客词典定义“位元腐败”为软件程序随时间降级的幽默表示,即使什么都未改变。这把组成软件的位元类比为原子的衰变。[1]

原因

环境改变

如果程序环境的改变超出了编程者的预料。例如,早期电脑视频游戏是受系统定时器激发。当电脑时钟频率提高,则视频游戏收到影响。[2]

一次性能力

一次性能力(Onceability)[3]是指技术系统的质量水平:一旦失效,用户难以恢复系统。如不同的上下文、不可利用的资讯(如口令丢失、指令丢失、难以管理的用户界面)等等。

未使用的代码

几乎不太使用的代码可能包含了未被注意的错误。

几乎不修改的代码

正常的软件维护也可能会有软件腐败。特别的当一个程序包括模块间有远隔作用,改变一个可能会影响到表面看起来不相关的另一个模块。

分类

休眠软件的腐败

软件当前没有在使用。

活动软件的腐败

使用中的软件不断被修改以满足新的需求、改正错误。但每次改变时采取重构方法并不实际。因此软件会逐渐偏离最初的设计。例如,软件文档在上述过程中没有得到更新,软件文档中包含的特定知识可能会失效。

例子

早期的自然语言理解程序SHRDLU是使用LISP与PLANNER开发的,当时LISP语言还处于发展时期,因此SHRDLU使用了很多非标准的宏与软件库。这使得它在现代电脑环境上都不能运行。

重构

代码重构是一种解决软件腐败的方法。[4]

参见

参考文献

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.