阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

代码质量管理工具 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:466038
用户头像

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

关注

评论

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

出海季,互联网出海锦囊之本地化

融云 RongCloud

元宇宙 IT业界

高效的组织信息共享知识库是一种宝贵的资源

Geek_da0866

可复现、开放科研、跨学科合作:数据驱动下的科研趋势及应用方案

ModelWhale

数据分析 代码复现 开放生态 协同软件 科研成果

酷开科技 × StarRocks:统一 OLAP 分析引擎,全面打造数字化的 OTT 模式

StarRocks

基于云ModelArts的PPO算法玩“超级马里奥兄弟”【华为云至简致远】

科技怪咖

视频人脸识别和图片人脸识别的关系

夏夜许游

人脸识别 视频人脸识别

绝无此例!用实例演示如何使用Spring搭建微服务框架

Java永远的神

spring 面试 微服务 springboot SpringCloud

为何微博又双叒叕崩溃了?

华仔

2021年数据泄露成本报告解读

SEAL安全

DevSecOps 数据安全 混合云 零信任 软件供应链

基于Java的插件化集成项目实践

阿提说说

微服务 插件化

如何避免无效的沟通

观测云

详谈RDMA技术原理和三种实现方式

C++后台开发

网络协议 C/C++后台开发 C/C++开发 RDMA技术 以太网

从零开始搭建MySQL主从复制架构

杨杰灵

Java MySQL 主从复制

秀到飞起!Alibaba全新出品JDK源码学习指南(终极版)限时开源

Java全栈架构师

程序员 程序人生 jdk源码 Java 面试 架构师

CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统

华为云开发者联盟

IoT 华为云 冷链

关于 Intel 在 micro-vm 快速启动的探索及实例演示 | 第 36-38 期

OpenAnolis小助手

云原生 cpu 开源社区 sig 龙蜥大讲堂

完整的搭建内网穿透ngrok详细教程(有图有真相)

Geek_32c728

签约计划第三季

开源一夏 |我在滴滴做开源

石臻臻的杂货铺

开源 8月月更

不可忽略!户外LED显示屏的特点及优势

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

基于DMS的数仓智能运维服务,知多少?

华为云开发者联盟

数据库 后端 监控 智能运维

浅谈Service Mesh对业务系统的价值

HelloGeek

微服务 云原生 server mesh 微服务治理

「一篇终结JVM」:Java面试必问十个JVM核心知识点梳理

Java全栈架构师

Java 程序员 面试 程序人生 JVM

国内首发可视化智能调优平台,小龙带你玩转KeenTune UI

OpenAnolis小助手

开源 龙蜥社区 sig KeenTune 一键式性能调优

豆瓣评分9.0,“Linux命令行”经典巨著升级版上市了!

图灵教育

带你了解什么是 Web3.0

liuzhen007

Web 3.0

中小微企业如何简单便捷、低成本实现数字化?360视觉云有妙招

ToB行业头条

融云「音视频架构实践」技术专场【内含完整PPT】

融云 RongCloud

音视频技术

ICDAR比赛技术分享

之家技术

算法 人工只能 竞赛 ICDAR

技术干货|如何将 Pulsar 数据快速且无缝接入 Apache Doris

SelectDB

数据库 Doris pulsar 数据导入 kafaka

面试不再被吊打!这才是Redis分布式锁的七种方案的正确打开方式

程序员小毕

Java 架构 面试 分布式 分布式锁

【技术白皮书】第一章:OCR智能文字识别新发展——深度学习的文本信息抽取

合合技术团队

自然语言处理 深度学习 AI OCR 信息抽取

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