《A3--任甲林--基于Sonar的质量数据分析.pdf》由会员分享,可在线阅读,更多相关《A3--任甲林--基于Sonar的质量数据分析.pdf(46页珍藏版)》请在三个皮匠报告上搜索。
1、基于基于SonarSonar的质量数据分析的质量数据分析任甲林麦哲思科技(北京)有限公司任甲林麦哲思科技(北京)有限公司任甲林任甲林公司:麦哲思科技(北京)有限公司 职位:CEO人物介绍:人物介绍:麦哲思科技与艾纵企业管理咨询公司创始人麦哲思科技与艾纵企业管理咨询公司创始人CMMICMMI高成熟度主任评估师,教员高成熟度主任评估师,教员COSMICCOSMIC实践委员会成员,实践委员会成员,COSMICCOSMIC中国分部主席中国分部主席主要从事提升软件研发能力的培训与咨询主要从事提升软件研发能力的培训与咨询工程经验工程经验:19931993年从事软件开发年从事软件开发,参与了参与了5050多
2、个项目的开发多个项目的开发20052005年从事软件技术与管理咨询年从事软件技术与管理咨询20072007年成立麦哲思科技(北京)有限公司年成立麦哲思科技(北京)有限公司曾为曾为100100多家软件公司提供培训和咨询践指南多家软件公司提供培训和咨询践指南目录目录C O N T E N T S1.Sonar1.Sonar检测报告中的度量数据检测报告中的度量数据2.2.可以执行的度量分析方法可以执行的度量分析方法3.3.横向对比分析案例横向对比分析案例4.4.纵向对比分析案例纵向对比分析案例5.5.分布规律分析案例分布规律分析案例6.6.因果规律分析案例因果规律分析案例SONARSONAR检测报告
3、中的度量数据检测报告中的度量数据0101数据分析数据分析的两种路线的两种路线目标导向型目标导向型探索分析型探索分析型度量目标采集数据管理结论分析数据已有数据分析数据管理结论采取措施SonarSonar的静态分析报告的静态分析报告SonarSonar分析报告中的度量数据分析报告中的度量数据比率数据注释率代码重复率语句覆盖率属性数据问题类型严重等级检查项派生度量元缺陷密度方法的圈复杂度密度代码的圈复杂度密度代码质量综合评价指数(代码熵)规模数据代码行方法个数类个数圈复杂度问题个数代码熵的计算方式代码熵的计算方式代码熵=Bugs*10+阻断类bug*30+漏洞*10+阻断类漏洞*30+坏味道+阻断类
4、坏味道*10_代码行数项目熵=代码熵*(1+重复率*100)*(1+每千行代码的圈复杂度)可以执行的度量分析方法可以执行的度量分析方法0202可能的分析方法可能的分析方法横向对比横向对比纵向对比纵向对比分布规律分析分布规律分析因果规律分析因果规律分析横向对比分析横向对比分析0303横向对比分析横向对比分析对不同类的对象同一个时间段的数据进行对比分析案例:违规最多的规则案例:违规最多的规则违反最多的规则TOP10Sections of code should not be commented out919The diamond operator()should be used598Package
5、 names should comply with a naming convention591String literals should not be duplicated402Cognitive Complexity of methods should not be too high124Local variable and method parameter names should comply with a naming convention68Collection.isEmpty()should be used to test for emptiness68Class variab
6、le fields should not have public accessibility67Local variables should not be declared and then immediately returned or thrown65Override should be used on overriding and implementing methods62案例:缺陷扎堆分析案例:缺陷扎堆分析违规最多的文件TOP5BusinessMonitorBean.java478BillLogServiceImpl.java231ErrorServiceImpl.java159El