好文档 - 专业文书写作范文服务资料分享网站

Sonar参数分析 docx

天下 分享 时间: 加入收藏 我要投稿 点赞

Sonar参数分析

API compatibility

1. API behavior changes---Clirr Plugin

正常接口变化数

2. API breaks---Clirr Plugin

可能引发错误的接口变化

3. New API---Clirr Plugin

新增接口数

4. Total API Changes---Clirr Plugin

接口变化总数

注:以上参数需要依赖于Clirr,暂时仍存在问题

Architecture

5. Architecture--- Total Quality Plugin

架构质量 计算方式: ARCH = 100 – TI TI = Tangle Index 架构复杂指标

6. Architecture Tangle Index--- Total Quality Plugin

Complexity

7. Complexity—默认

复杂度

8. Complexity /class—默认

类复杂度

9. Complexity /file—默认

文件复杂度

10. Complexity /method—默认

方法复杂度

11. Complexity Factor--- Quality Index Plugin

复杂度因素 计算方式:

CF = (5 * Complexity>30) * 100 / (Complexity>1 + Complexity>10 + Complexity>20 +

精品文档

Complexity>30)

12. Complexity Factor Methods--- Quality Index Plugin

方法复杂度因素

13. QI Complexity---Quality Index Plugin

复杂度质量指标 计算方式:

(Complexity>30 *10 + Complexity>20 * 5 + Complexity>10 * 3 + Complexity>1) / validLines

Design

14. Design Classes and Methods Complexity--- Total Quality Plugin

NOM = (1 - (class_complexity - 12) / (acel * 12)) * 50 + (1 - (method_complexity - 2.5) / (acel * 2.5)) * 50 参见19

15. Design Coupling Between Objects--- Total Quality Plugin

CBO = (1 - (efferent_coupling - 5) / (acel * 5)) * 100 参见19 DIT = (1 - (depth_of_inheritance_tree - 5) / (acel * 5)) * 100 参见19

16. Design Depth of Inheritance Tree--- Total Quality Plugin 17. Design Lack of Cohesion of Methods--- Total Quality Plugin

LCOM = (1 - (lack_of_cohesion_of_method - 1) / (acel * 1)) * 100 参见19

18. Design Response for Class--- Total Quality Plugin

RFC = (1 - (response_for_class - 50) / (acel * 50)) * 100 参见19

19. Design Quality--- Total Quality Plugin

设计质量 计算方式: DES = 0.15*NOM + 0.15*LCOM + 0.25*RFC 0.25*CBO + 0.20*DIT NOM = (1 - (class_complexity - 12) / (acel * 12)) * 50 + (1 - (method_complexity - 2.5) / (acel * 2.5)) * 50 LCOM = (1 - (lack_of_cohesion_of_method - 1) / (acel * 1)) * 100 RFC = (1 - (response_for_class - 50) / (acel * 50)) * 100 CBO = (1 - (efferent_coupling - 5) / (acel * 5)) * 100 DIT = (1 - (depth_of_inheritance_tree - 5) / (acel * 5)) * 100 Acel参数因子的值可以在Sonar setting页面配置。

每一个度量标准的默认阙值也可以进行配置(例如,50是response_for_class的默认阈值)。

20. LCOM4(Lack of cohesion of methods)

用来说明class内部方法和变量之间的关系, 值越大, 说明内聚性越差. 一般情况下 LCOM4=1是内聚性最佳的. 2说明可以拆成两个类, 以此类推.但是这种测量对门面服务类来说不适用. 有时候很小的类也会根据需要合并在一起, 尽管关联不大

21. Package tangle index

包复杂指数 此参数为包的复杂等级,最好的值为0%,意味着包之间没有圈依赖;最差的值为100%,意味着包与包之间的关系特别的复杂。该指数的计算公式:2 * (package_tangles / package_edges_weight) * 100.

精品文档

22. RFC(Response for Class)

通过检查一个方法被调用的情况来反映一个class的复杂程度. 也可以简单的理解为一个类所包含的方法多寡.

23. Suspect LCOM4 density

LCOM4密度值

Documentation

24. Comment lines

Javadoc、多行注释、单行注释的总数。空注释行、头文件中的注释(主要用于定义许可证)以及commented-out行均不会包括在内。

25. Commented-out LOC

注释掉的代码行数。Javadoc块不会被扫描

26. Comments (%)

注释行数/(注释行数+有效代码行数)

27. Public documented API (%)

添加注释的公有API占总的公有API的百分比

28. Public undocumented API

公有API未添加注释个数

Duplication

29. DRYness –-- Total Quality Plugin

DRYNESS = 100 - Duplicated lines density

30. Duplicated blocks

重复块数

31. Duplicated files

重复文件数

32. Duplicated lines

重复行数

33. Duplicated lines (%)

重复行占总行数的百分比

34. Useless Duplicated Lines---Useless Code Tracker

无用的重复行数;当前的Sonar告诉你有50重复的行数,但是不能告诉你是有两块25行的代码重复(这样你可以节省25行代码)还是有5块10行(这样你可以节省40行代码)的代码重复;通过这个插件,你可以获取到额外的信息。

General

35. Analysability Value--- SIG Maintainability Model

精品文档

可理解性

请查看37指标后的详细介绍

36. Changeability Value--- SIG Maintainability Model

可扩展性

37. Stability Value--- SIG Maintainability Model

稳定性

38. Testability Value--- SIG Maintainability Model

可测试性

可维护性可通过7个质量特性来衡量: 可理解性 可测试性 可修改性 可靠性 可移植性 可使用性

效率

这个插件标示了一个Software Improvement Group(SIG)可维护性模型

这个模型需要两步: 计算基数的指标,然后结合他们计算出更高层面上的数值。 每一个指标被分成5级别排名:从--(很糟糕)到++(非常好) 第一步加上基数的指标。 Volume: 基于代码的行数

Rank LOC -- > 1310000 - > 655000 0 > 246000 + > 66000 ++ > 0 Duplications: 基于代码重复的密度 Rank Duplication -- > 20% - > 10% 0 > 5% + > 3% ++ > 0% Unit tests: 基于单元测试覆盖率

Rank Coverage ++ > 95% + > 80% 0 > 60% 精品文档

- > 20% -- > 0% Complexity:基于方法的圈复杂度

第一步根据圈复杂度的范围确定在方法代码行中的百分比。

Eval High Low Complexity > 20 > 0 Very high > 50 Medium > 10 然后根据分布,我们使用下面的表格来计算等级: Rank Medium H igh Very High ++ < 25% < 0% < 0% + < 30% < 5% < 0% 0 < 40% < 10% < 0% - 否则等级是--

Unit size: 基于方法代码的行数

第一步根据行数的范围确定方法代码行数的百分比。

Eval LOCs < 50% < 15% < 5% Very high > 100 High > 50 Medium > 10 Low > 0 然后根据分布,使用下面的表格来计算等级: Rank Medium H igh Very High ++ < 25% < 0% < 0% + < 30% < 5% < 0% 0 < 40% < 10% < 0% - < 50% < 15% < 5% 否则等级为--

第二步是通过一个简单的平均,将他们结合起来,使用以下映射表来确定最终等级.

analysability changeability stability Volume Complexity Duplications Unit size Unit tests 精品文档

Sonar参数分析 docx

Sonar参数分析APIcompatibility1.APIbehaviorchanges---ClirrPlugin正常接口变化数2.APIbreaks---ClirrPlugin可能引发错误的接口变化3.NewAPI---ClirrPlugin<
推荐度:
点击下载文档文档为doc格式
8qm059wgka35m4y31ezc5v45r56fh10091e
领取福利

微信扫码领取福利

微信扫码分享