BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

代码质量管理工具Sonar提供了设计与架构度量

| 作者 Srini Penchikala 关注 36 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2010年6月4日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

近日,新版的开源代码质量管理工具Sonar提供了设计与架构度量。Sonar 2.0引入了针对Java应用的设计分析、架构与面向对象的度量,而前不久发布的Sonar 2.1可以检测到未使用的方法以及对不建议使用方法的调用。

架构度量特性包含一个叫做Dependency Structure Matrix(DSM)的全新可视化工具,它可以表示组件之间的依赖并在其中导航,能够通过去掉不必要的依赖来移除包间的循环,还能识别出拥有太多职责的类(这违背了单一职责模式)。面向对象度量包含了Chidamber & Kemerer度量,比如Depth of Inheritance Tree(DIT)、Number of Childre(NOC)、Response for a Class(RFC)、Afferent/Efferent Couplings(CA/CE)以及Lack of cohesion in methods(LCOM)。最新版的Sonar还基于Squid引入了一个全新的规则引擎、Sonar解析器既可以处理源代码,也可以处理字节码,解析器带有内建的规则,可以检测未使用的私有与保护方法以及客户端对不建议使用的方法的调用。Squid通过分析应用源代码、Java API和外部程序库的字节码来决定哪些方法、类和属性是不建议使用的。Sonar 2.1的新特性还有:

  • 一个全新的“Libraries”页面,显示了项目中所有的程序库和依赖,该特性要求使用Maven来构建项目。一旦在Sonar站点的主页上选择了一个项目,该服务就会以可视化的树形结构展示出项目依赖。此外,还有一个可选的动态过滤器,可以根据名称过滤程序库以便在应用的依赖间导航。
  • 用于搜索程序库使用情况的“Dependencies”页面。比如说,可以搜索到使用了第三方框架如Commons Logging 1.1的所有项目。
  • 可以使用各种插件扩展Sonar的功能。现在有一个全新的“System Info”页面显示了系统属性、已装插件和Java虚拟机内存统计信息。该页面还给出了关于Sonar配置和数据库统计的详细信息。
  • 一个用于管理已装插件和系统信息的管理控制台。

最新版的Sonar为这些插件引入了一个测试框架和一个客户化的Maven生命周期管理工具。它还带有一个用于集成项目事件的Web Service并在项目的size widget中增加了一个新的度量模块。

Sonar团队的Freddy Mallet撰写了一篇文章,谈到了如何使用新版的Sonar管理包间的循环以及如何在类层次上重新设计。Sonar开发团队正忙于开发一个Eclipse IDE插件并于上个月发布了0.1版。感兴趣的读者朋友可以看看Project Nemo,这是Sonar的一个在线版本,它给出了很多开源项目的代码分析统计结果,这些项目有Apache Commons frameworks、Apache Tomcat、Struts2和Esper等等。

查看英文原文:Code Quality Management Tool Sonar Provides Design and Architecture Metrics

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT