软件项目随着不断地演化,会变得越来越复杂,而这种复杂性,如果不加以合理的管理,很可能会走上失败的道路。这其中最有可能出现问题就是源代码,在本文,我们就来看看软件是如何越来越变得复杂的,我们如何使用代码指标来提高代码的质量,以避免软件在复杂性变革过程中走向失败。 软件演化过程自从 1967 年人类研究出软件之后,其在社会上的地位就一直很重要,接下来的日子里就是如何创造出模型和实践来开发出更高质量的软件。还有一部分人就是在不停的追踪研究软件的进化过程,探究这一演化过程到底带来了什么样的后果。 软件演化过程中诞生的法规 在上世纪七十年代,Manny Lehman 提出了一套 8 个法案以详细解释软件演化的方式,下面就是应该和现如今还有关联的 4 个法案。 1. 持续改变 一个软件随着用户的使用量的不断变化,软件会越来越没用,除非这款软件不断适应参加新域的需求,例如:新的法案个规章制度对这一软件的推动。 2. 复杂度不断增加 软件常常会随着时代的发展变得很复杂,复杂程度且越来越高,除非有相关的管理机制出现来管理。 3. 功能不断增长 一款软件的功能数量也会跟着时间的流逝而增加,因为用户的需求在变大。 4. 质量也有可能在下降 软件的质量感毫无疑问会不断下降,阻止这一趋势的办法就是通过人为方法来改善。 软件系统的老化一旦开发者对软件的复杂度管理失去控制的时候,就会出现一个我们称之为“软件老化Software Aging”的现象,简单说来就是随着时间的流动,其复杂性不断上升,质量不断下降。这些特征会导致一些比较危险的后果,首先就是软件变得无法理解,更没办法修改,会影响团队生产力。正是由于这样,这款软件也就不可靠了,开发者根本没法理解、修改、消除bugs。 从长远角度来说,软件老化的结果就是将这个软件扔掉,然后取代的是一个新的。这很容易理解,与其花很多钱去维护一个老旧的软件,还不如买一个新的、便宜的呢! |