设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

如何给软件“体检”以防止其老化?

2014-9-30 11:30| 发布者: joejoe0332| 查看: 3245| 评论: 0|原作者: CSDN|来自: CSDN

摘要: 软件项目随着不断地演化,会变得越来越复杂,而这种复杂性,如果不加以合理的管理,很可能会走上失败的道路。这其中最有可能出现问题就是源代码,在本文,我们就来看看软件是如何越来越变得复杂的,我们如何使用代码 ...


 如何阻止软件老化?


  这里有一些实践可以帮助我们管理软件复杂性,以此来阻止软件老化的进程。

  文档可用于记录软件架构、用户需求,还可以用来解释代码决策。在我看来,给软件架构和用户需求编写文档是最重要的,但我不同意用文档来解释代码。

  极限编程(Xtreme programming)所建议的两个实践我认为是比较有用的,尤其是在开发可维护的软件。结对编程(Pair programming)和集体所有(Collective Ownership)能够帮助我们在团队里分享好的知识,这样写出的代码肯定质量是比较高的,因为人们通常是根据不同的观点来编写和分析同一个代码库。

  其他的实践我想说的就是代码审核,在这篇文章里它也是重中之重。


代码审核


  代码审核就是一种不断分析代码的行为,旨在保证代码标准,符合用户需求。其方式无非就是手动的、自动的。


手动代码审核

手动代码审核通常是由最资深开发人员分析代码,而这些代码通常是由整个团队完成的,这个评审过程非常类似于评审会议(sprint reviews)。手动评审的好处就是能够在团队里分享技术,增加大家对项目的了解程度。相对的就是比较浪费时间,在分析代码的时候根本没时间去写代码。

自动代码审核

虽然可以自动执行代码审核,但是我觉得即使是那样,也不该忽略手动代码审核的地位,事实上我觉得两个方法是互补的。自动代码审核是一个过滤器可以抓住最初的小错误,节省很多时间。使用自动审核就是可以建立一些指导方针,电脑是可以创建一些简单的指标,这些指标在代码衡量里有显示。


代码衡量


  代码衡量(Code Metrics)被用来代表不同的软件指标,例如:尺寸大小、复杂性、耦合和内聚。第一个被使用的代码衡量就是六十年代的 Lines Of Code (LOC),用来测量生产力和工作效率。但是使用 LOC 测量不同语言编写的软件的复杂性是不公平的,就像把 Ruby 和 Objective-C 放在一起做比较是不可取的。


  随后,就出现了很多有名的代码衡量方式,最为常见的就是1994年提出的CK metrics,还有1995年提出的MOOD metrics。


用来计算代码衡量的工具


  有很多工具可以自动计算这些衡量,有的是免费的,有的是收费的,有的支持好几种语言,而有的只支持一种语言。


Sonar

Sonar 应该是企业用的最多的提取衡量数据的工具,它可以分析超过20种编程语言,并提供合理化的图标帮助理解。Sonar 还可以用在开源项目里,如果想把它用在个人项目里的话,可以安装一个本地版本或者是用一个像 CloudBees 一样的服务。

NDepend

NDepend 是一个用来分析.NET 代码的商业工具。可以分析超过 82 个衡量,并且通过不同的图形方式将其视图化。

CodeAnalytics

在我的硕士毕业展示里面,我就是用 CodeAnalytics 从 C# 代码里提取衡量。


写在最后的总结

  文章里已经展示软件的进化过程,它的危险性,以及如何组织项目老化。通过代码审核可以最大限度的降低软件复杂性所带来的麻烦。通过代码衡量指标来计算并优化代码质量。

  尽管代码衡量已经研究了数十年,但是我想很多开发者和公司都知道其为何物,并知道如何使用它们来改善代码质量,使之更加的可维护,提供更可靠的软件。


转自:http://code.csdn.net/news/2821916


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部