写点什么

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

  • 2010-06-03
  • 本文字数:1073 字

    阅读完需:约 4 分钟

近日,新版的开源代码质量管理工具 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

2010-06-03 02:466108
用户头像

发布了 88 篇内容, 共 261.4 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Databend 开源社区上榜 2023 年度 OSCHINA 优秀开源技术团队

Databend

从身份治理出发,助力教育行业回归教育本质

Authing

低代码 教育 Authing 身份管理平台 身份管理

EndNote 21 for Mac(文献管理软件) v21.2永久激活版

mac

苹果mac Windows软件 EndNoter 参考文献管理软件

降人工简流程,人工智能助力企业打赢人力成本战

用友BIP

降本增效

不黑不吹,低代码开发真的好用吗?

伤感汤姆布利柏

低代码 JNPF

隧道LED照明技术见证大国交通发展,三思陶瓷散热技术强势突围

电子信息发烧客

融云数智办公获 IT168「2023 年度信创卓越贡献奖」

融云 RongCloud

产品 IT 信创 信息技术 数智办公

用友BIP资产云,盘活数据,助力国有资产保值增值

用友BIP

资产管理

开放原子开发者大会——操作系统大会2023成功举办

开放原子开源基金会

开源

商业&技术双轮驱动,企业数智化运营新力量

用友BIP

数智营销

缓存:系统设计中至关重要的一环

互联网工科生

数据库 缓存 缓存技术

倒计时1天|2023开放原子开发者大会,明天见!

开放原子开源基金会

开源

蓝戟英特尔锐炫A770评测:多款热门游戏性能提升,XeSS取得丰硕成果

E科讯

保姆级·从零搭建开发一个现代化体育赛事直播系统平台

软件开发-梦幻运营部

PAM:完善的第三方应用

尚思卓越

网络安全

11项指标!企业应用软件国产替代的选型标准与创新之路

用友BIP

国产替代

中国自动驾驶行业:迈向无限可能

不在线第一只蜗牛

人工智能 自动驾驶 智能汽车

文档理解的新时代:LayOutLM模型的全方位解读

快乐非自愿限量之名

人工智能 机器学习 深度学习 大数据

WhatsApp封号的原因以及如何避免?试试海外云手机!

Ogcloud

云计算 外贸管理 whatsapp

上海三思立体育苗系统Vertical X打造“不见光”人工农场

电子信息发烧客

来自前端面试官的吐槽:问CSS、DOM,还招不招人?KPI还要不要?

程序员改bug

编程 程序员 前端 前端面试 前端工程师

直播预告|国产化软硬件升级替换之路:可观测性建设之路

博睿数据

前端开发新趋势:Web3 与虚拟现实的技术融合

EquatorCoco

前端 Web 虚拟现实 web前端开发

探索光伏单晶行业成本管理之业务场景分析

用友BIP

成本管理 光伏单晶行业

lazada商品列表数据接口方法(lazada.item_search)

tbapi

lazada商品详情数据接口 lazada商品数据接口 lazada商品API接口 lazada API接口

重磅发布|2023年度中国可观测性现状调研报告发布

博睿数据

软件测试/测试开发丨常见测试框架类型TDD、DDT、BDD、ATDD

测试人

软件测试 自动化测试 测试开发

如何应对 RocketMQ 消息堆积

高端章鱼哥

RocketMQ 消息堆积处理

云技术分享 | EC2 之 Windows 忘记密码(一)

亚马逊云科技 (Amazon Web Services)

ssm Amazon EC2 launch

广告精准投放人群的实现:千万用户过滤指定人群

xfgg

Java

软件测试/测试开发丨分层测试体系、单元、UI 、接口、白盒测试

测试人

软件测试 测试开发

代码质量管理工具Sonar提供了设计与架构度量_Java_Srini Penchikala_InfoQ精选文章