Sonar全参数分析报告.docx

上传人:b****8 文档编号:30590264 上传时间:2023-08-18 格式:DOCX 页数:32 大小:43.38KB
下载 相关 举报
Sonar全参数分析报告.docx_第1页
第1页 / 共32页
Sonar全参数分析报告.docx_第2页
第2页 / 共32页
Sonar全参数分析报告.docx_第3页
第3页 / 共32页
Sonar全参数分析报告.docx_第4页
第4页 / 共32页
Sonar全参数分析报告.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

Sonar全参数分析报告.docx

《Sonar全参数分析报告.docx》由会员分享,可在线阅读,更多相关《Sonar全参数分析报告.docx(32页珍藏版)》请在冰豆网上搜索。

Sonar全参数分析报告.docx

Sonar全参数分析报告

Sonar参数分析

APIcompatibility

1.APIbehaviorchanges---ClirrPlugin

正常接口变化数

2.APIbreaks---ClirrPlugin

可能引发错误的接口变化

3.NewAPI---ClirrPlugin

新增接口数

4.TotalAPIChanges---ClirrPlugin

接口变化总数

注:

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

Architecture

5.Architecture---TotalQualityPlugin

架构质量

计算方式:

ARCH=100–TI

TI=TangleIndex

6.ArchitectureTangleIndex---TotalQualityPlugin

架构复杂指标

Complexity

7.Complexity—默认

复杂度

8.Complexity/class—默认

类复杂度

9.Complexity/file—默认

文件复杂度

10.Complexity/method—默认

方法复杂度

11.ComplexityFactor---QualityIndexPlugin

复杂度因素

计算方式:

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

12.ComplexityFactorMethods---QualityIndexPlugin

方法复杂度因素

13.QIComplexity---QualityIndexPlugin

复杂度质量指标

计算方式:

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

Design

14.DesignClassesandMethodsComplexity---TotalQualityPlugin

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

15.DesignCouplingBetweenObjects---TotalQualityPlugin

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

16.DesignDepthofInheritanceTree---TotalQualityPlugin

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

17.DesignLackofCohesionofMethods---TotalQualityPlugin

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

18.DesignResponseforClass---TotalQualityPlugin

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

19.DesignQuality---TotalQualityPlugin

设计质量

计算方式:

DES=0.15*NOM+0.15*LCOM+0.25*RFC0.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参数因子的值可以在Sonarsetting页面配置。

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

20.LCOM4(Lackofcohesionofmethods)

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

21.Packagetangleindex

包复杂指数

此参数为包的复杂等级,最好的值为0%,意味着包之间没有圈依赖;最差的值为100%,意味着包与包之间的关系特别的复杂。

该指数的计算公式:

2*(package_tangles/package_edges_weight)*100.

22.RFC(ResponseforClass)

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

23.SuspectLCOM4density

LCOM4密度值

Documentation

24.Commentlines

Javadoc、多行注释、单行注释的总数。

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

25.Commented-outLOC

注释掉的代码行数。

Javadoc块不会被扫描

26.Comments(%)

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

27.PublicdocumentedAPI(%)

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

28.PublicundocumentedAPI

公有API未添加注释个数

Duplication

29.DRYness–--TotalQualityPlugin

DRYNESS=100-Duplicatedlinesdensity

30.Duplicatedblocks

重复块数

31.Duplicatedfiles

重复文件数

32.Duplicatedlines

重复行数

33.Duplicatedlines(%)

重复行占总行数的百分比

34.UselessDuplicatedLines---UselessCodeTracker

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

General

35.AnalysabilityValue---SIGMaintainabilityModel

可理解性

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

36.ChangeabilityValue---SIGMaintainabilityModel

可扩展性

37.StabilityValue---SIGMaintainabilityModel

稳定性

38.TestabilityValue---SIGMaintainabilityModel

可测试性

可维护性可通过7个质量特性来衡量:

  可理解性

  可测试性

  可修改性

  可靠性

  可移植性

  可使用性

效率

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

这个模型需要两步:

计算基数的指标,然后结合他们计算出更高层面上的数值。

每一个指标被分成5级别排名:

从--(很糟糕)到++(非常好)

第一步加上基数的指标。

Volume:

基于代码的行数

Rank

LOC

--

>1310000

-

>655000

0

>246000

+

>66000

++

>0

Duplications:

基于代码重复的密度

Rank

Duplication

--

>20%

-

>10%

0

>5%

+

>3%

++

>0%

Unittests:

基于单元测试覆盖率

Rank

Coverage

++

>95%

+

>80%

0

>60%

-

>20%

--

>0%

Complexity:

基于方法的圈复杂度

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

Eval

Complexity

Veryhigh

>50

High

>20

Medium

>10

Low

>0

然后根据分布,我们使用下面的表格来计算等级:

Rank

Medium

High

VeryHigh

++

<25%

<0%

<0%

+

<30%

<5%

<0%

0

<40%

<10%

<0%

-

<50%

<15%

<5%

否则等级是--

Unitsize:

基于方法代码的行数

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

Eval

LOCs

Veryhigh

>100

High

>50

Medium

>10

Low

>0

然后根据分布,使用下面的表格来计算等级:

Rank

Medium

High

VeryHigh

++

<25%

<0%

<0%

+

<30%

<5%

<0%

0

<40%

<10%

<0%

-

<50%

<15%

<5%

否则等级为--

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

Volume

Complexity

Duplications

Unitsize

Unittests

analysability

changeability

stability

testability

因此4个代表软件可维护性四维的先进指标。

可选项,通过将4个指标简单的结合在一块,可以得到可维护性排名。

需要注意的是,图表的颜色代表实际结合后的值,从红色=--到绿色=++.

39.Profileversion未知

未知

40.QualityIndex---QualityIndexPlugin

计算方式:

QI=10-4.5*coding-2*complexity-2*coverage-1.5*style

41.SIGMM--SIGMaintainabilityModel

SIG可维护性模型,参考37

42.TechnicalDebt($)---TechnicalDebtPlugin

清除所有技术债务需要的花费

43.TechnicalDebtindays---TechnicalDebtPlugin

需要多少人日去解决技术债务

44.TechnicalDebtratio---TechnicalDebtPlugin

技术债务占整个项目的比例

45.TotalQuality---TotalQualityPlugin

总体质量

计算方式:

TQ=0.25*ARCH+0.25*DES+0.25*CODE+0.25*TS

Management

46.Burnedbudget

燃尽预算

47.Businessvalue

商业价值

48.Teamsize

团队规模

注:

以上变量为手动输入变量,另外这里可以添加一些自定义的变量

Rules

49.Blockerviolations

阻碍性违规

50.CodeQuality---TotalQualityPlugin

代码质量

计算方式:

Code=0.15*DOC+0.45*RULES+0.40*DRYNESS

DOC=DocumentedAPIdensity

RULES=Rulescomplianceindex

DRYNESS=100-Duplicatedlinesdensity

51.Criticalviolations

严重违规

52.DeadCode---UselessCodeTracker

无作用程序代码

53.Infoviolations

建议级别违规

54.Majorviolations

重要违规

55.Minorviolations

次要违规

56.PotentialDeadCode---UselessCodeTracker

当前代码中未使用的protected方法数目;此参数可通过PMD:

UnusedProtectedMethod或者SQUID:

UnusedProtectedMethod获取到。

计算他们行数的和值。

57.QICodingViolations---QualityIndexPlugin

代码违规质量指标(PMD规则指数)

计算方式:

(Blocker*10+Critical*5+Major*3+Minor+Info)/validLines

58.QICodingWeightedViolations---QualityIndexPlugin

代码违规权重指标

59.QIStyleViolations---QualityIndexPlugin

风格违规质量指标(CheckStyle规则指数)

计算方式:

Style=(Errors*10+Warnings)/ValidLines*10

QI=10-4.5*coding-2*complexity-2*coverage-1.5*style

60.QIStyleWeightedViolations---QualityIndexPlugin

风格违规权重质量指标

61.Rulescompliance

遵守规则率

62.Securityrulescompliance---SecurityRulesPlugin

Security规则遵守率

63.Securityviolations---SecurityRulesPlugin

符合Security规则数目

64.Violations

违规总数

65.WeightedSecurityViolations---SecurityRulesPlugin

Security规则权重值(总数)

Size

66.Accessors

Getter及setter方法的数量

//Getters

publicStringgetName(){

     returnthis.name;

}

publicbooleanisParent(){

     returnthis.isParent;

}

//Setters

publicvoidsetName(Stringname){

     this.name=name;

}

publicvoidsetIsParent(booleanisParent){

     this.isParent=isParent;

}

67.ArtifactSize(Kb)---ArtifactSizePlugin

记录最终产品大小

68.Classes

类总数

69.Files

文件数

70.Lines

文件中行数

71.Linesofcode

代码行数

72.Methods

方法数目

73.Packages

包数目

74.PublicAPI

公共类、公共方法(不包括访问器)以及公共属性(不包括publicfinalstatic类型的)的数目。

75.Statements

Java语言规范中没有块定义的语句数目;此数目在遇到含有if,else,while,do,for,switch,break,continue,return,throw,synchronized,catch,finally等关键字的语句时增加。

例如:

//

i=0;

if(ok)

if(exit){

if(3==4);

if(4==4){;}

}else{

try{}

while(true){}

for(...){}

...

语句数目不会随着以下情况增加,类、方法、字段、注释定义、包以及import定义。

76.TotalUselessCode--UselessCodeTracker

可以删除的代码行数

Tests

77.Coverage

覆盖率

78.Linecoverage

行覆盖率

79.QITestCoverage---QualityIndexPlugin

测试覆盖率质量指标

80.Skippedunittests

忽略的单元测试数

81.TestingQuality---TotalQualityPlugin

测试质量

计算方式:

Test=0.80*COV+0.20*SUC

COV=Codecoverage

SUC=UnitTestssuccessdensity

82.Uncoveredlines

未覆盖行数

83.Unittesterrors

单元测试出错数

84.Unittestfailures

单元测试失败数

85.Unittestsuccess(%)

单元测试成功率

86.Unittests

单元测试个数

87.Unittestsduration

单元测试需要的时间

SCM

88.Commits

SVN库总的提交数

89.Lastcommit

最近的一次提交时间

SQALE

90.SQALERating

SQALE(SoftwareQualityAssessmentbasedonLifecycleExpectations)评级;

基于生命周期期望的软件质量模型

91.SQALERemediationCost

SQALE整治成本

附录

92.Sonar插件

插件名称

插件介绍

度量参数

ABAP

ABAP项目插件

ArtifactSize

衡量项目产品的大小

ArtifactSize(Kb)

Branding

允许添加Logo到Sonar界面上

BuildBreaker

在有一个警报阈值满足时,停止分析处理

C

C项目插件

CRules

C规则插件

Clirr

检查Java库二进制文件及源代码与之前版本的兼容性

APIbehaviorchanges

APIbreaks

NewAPI

TotalAPIChanges

Clover

通过AtlassianClover(收费)获取覆盖率

Cobol

Cobol项目插件

Crowd

AtlassianCrowd在Sonar上的认证委托

Email

分析报告可通过Email进行传输

Emma

Emma是替代Clover和Cobertura测量单元测试代码覆盖率的工具

Flex

ActionScript项目插件

FrenchPack

法语包

GoogleCalendar

将Google日历集成到Sonar

GreenPepper

收集GreenPepperMavenplugin提供的测试报告到Sonar上

Groovy

Groovy项目插件

JMeter

在Sonar上展示JMeter测试结果

JaCoCo

JaCoCo是替代Clover和Cobertura测量单元测试代码覆盖率的工具

JavaScript

JavaScript项目插件

Jira

从Jira服务中收集项目缺陷的数目

LDAP

LDAP在Sonar上的认证委托

Mantis

从MantisBugTracker中检索项目缺陷的个数

MotionChart

显示一组指标随着时间的演变(需要接入互联网)

Natural

Natural项目插件

PAM

允许Sonar在*nixbox上使用PAM认证

PDFReport

PDF报告插件

PHP

PHP项目插件

PL/SQL

PL/SQL项目插件

QualityIndex

根据编码规范、样式、复杂度、覆盖率计算一个全局的质量指标

QITestCoverage

QIStyleWeightedViolations

QIStyleViolations

QICodingWeightedViolations

QICodingViolations

ComplexityFactor

ComplexityFactorMethods

QIComplexity

QualityIndex

Radiator

使用treemap显示度量指标

SCMActivity

从SCM收集和报告信息。

Commits

Lastcommit

SIGMaintainabilityModel

SIG可维护性模型接口

SIGMM

TestabilityValue

StabilityValue

ChangeabilityValue

AnalysabilityValue

SecurityRules

检测一组已定义的安全规则

WeightedSecurityViolations

Securityviolations

Secur

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1