定义:代码质量管理工具Sonar提供了设计与架构度量 。Sonar 2.0引入了针对Java应用的设计分析、架构与面向对象的度量,Sonar 2.1可以检测到未使用的方法以及对不建议使用方法的调用 。是一个集成了CheckStyle、PMD、Findbugs的代码校验规则,重复代码发现,代码测试覆盖率,代码注释率,及所有的检测率变化追踪的完美代码质量检查工具 。它包含了代码质量检测的七个方面
特点:
- 代码覆盖:通过单元测试,将会显示哪行代码被选中 。
- 改善编码规则 。
- 搜寻编码规则:按照名字,插件,激活级别和类别进行查询 。
- 项目搜寻:按照项目的名字进行查询 。
- 对比数据:比较同一张表中的任何测量的趋势 。
- 单元测试
- Sonar还基于Squid引入了一个全新的规则引擎、Sonar解析器既可以处理源代码,也可以处理字节码,解析器带有内建的规则,可以检测未使用的私有与保护方法以及客户端对不建议使用的方法的调用 。Squid通过分析应用源代码、Java API和外部程序库的字节码来决定哪些方法、类和属性是不建议使用的 。
- 一个全新的“Libraries”页面,显示了项目中所有的程序库和依赖,该特性要求使用Maven来构建项目 。一旦在Sonar站点的主页上选择了一个项目,该服务就会以可视化的树形结构展示出项目依赖 。此外,还有一个可选的动态过滤器,可以根据名称过滤程序库以便在应用的依赖间导航 。
- 用于搜索程序库使用情况的“Dependencies”页面 。比如说,可以搜索到使用了第三方框架如Commons Logging 1.1的所有项目 。
- 可以使用各种插件扩展Sonar的功能 。现在有一个全新的“System Info”页面显示了系统属性、已装插件和Java虚拟机内存统计信息 。该页面还给出了关于Sonar配置和数据库统计的详细信息 。
- 一个用于管理已装插件和系统信息的管理控制台 。最新版的Sonar为这些插件引入了一个测试框架和一个客户化的Maven生命周期管理工具 。它还带有一个用于集成项目事件的Web Service并在项目的size widget中增加了一个新的度量模块 。
特点:
- 评价设计质量
- 翻转依赖性
- 支持并行开发和极限编程
- 独立的发布模块
- 识别package的循环依赖
- Number of Classes and Interfaces:实现类与抽象接口的数目
- Abstractness (A):包的抽象度 。指一个包内包含的抽象类或接口占整个包中的类的比重 。
- Afferent Couplings (Ca):向心耦合 。依赖该包(包含的类)的外部包(类)的数目(i.e. incoming dependencies),该数值越大,说明该包的担当的职责越大,也就越稳定 。
- Efferent Couplings (Ce):离心耦合 。被该包依赖的外部包的数目(i.e. outgoing dependencies),该数值越大,说明该包越不独立(因为依赖了别的包),也越不稳定 。
- Instability (I):衡量一个包的不稳定程度 。I=Ce/(Ce+Ca) 。它的值处于[0,1]之间 。I=0时说明包是最稳定的,反之I=1则说明包极不稳定 。
- Distance from the Main Sequence (D): 该指标主要用来评价包的抽象程度与稳定程度的平衡关系,它可以用二维直线图 A + I = 1 来表示 。
- Package Dependency Cycles:包的循环依赖度 。
推荐阅读
- 复合了?曝梁洛施怀四胎,李泽楷满脸笑意陪同检查,李嘉诚送豪宅
- 电信651错误代码怎么解决
- 静态IP和动态IP有什么区别?
- 651错误代码怎么解决
- 淘宝代码怎么用
- 开始用Rust编写代码!
- 电脑上没有声音怎么办
- 如何自己建立网页代码
- 提车时如何验车
- 怎样检查华为手机是不是正品新的
