- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
质量评审设计评审单元测试测试验证测试管理?代码评审质量评审
质量评审特点优点复杂度分析代码评价度量代码结构化化简LCSAJs质量模型
质量评审能力检查多个代码复杂性度量元圈复杂度结点度量LCSAJ控制流(测试路径)识别死代码和不可测试代码提供功能强大的结构化化简工具结构化程序验证将你的代码化简到基本复杂度使用工业标准或自定义质量模型提供边界检查产生定量评估将所有结果总结成顶层的度量指标清晰性/测试性/维护性提供直观的报告和代码可视化工具
复杂性通常检查多余的复杂性是非常困难的程序的复杂性并不可怕,但是多余的复杂性会引起软件出问题
度量元度量元是软件度量的基础,就象“米”是对长度的度量注意度量结果本身并不能直接就反应出质量好坏在质量评审中使用度量源元时,相互的关联是最重要的
质量评审–代码评价度量清晰性系统的可理解性如何可维护性软件的可维护性如何?可测试性对系统进行测试需要多少工作?
复杂度度量控制流结点圈复杂度基本结点和基本圈复杂度循环嵌套函数扇入和扇出不可达性
结点分类跳转分为下列几类:向上(向后)跳转向下(向前)跳转结点根据跳转类型可以分为:下-下结点上-下结点上-上结点153421534215342
引起结点的C结构下列编程结构会引起结点: for while switch可利用基本结点度量消除这些局限性
引起结点的Ada结构下列编程结构会引起结点: IFTHENELSE CASE GOTO Exceptions可利用基本结点度量消除这些局限性
圈复杂度从有向图G,计算圈复杂度V(G): V(G)=No.edges(边数)-No.nodes(节点数)+2这样也正确: V(G)=No.predicates(判定节点数)+1Case结构(有N种选择)是个例外,计算为N–1 V(G)=No.regions(区域数)假如G是个连接的平面图
圈复杂度例子12条边9个节点VG=12-9+2=5145236789123456789101112
圈复杂度例子3个判定结点计算为4case计算为2VG=4+1=53-111
圈复杂度例子5个区域VG=532451
结点和圈复杂度13245此有向图可表示为右边两种程序结构。1452315342V(G)=6-5+2=3V(G)=6-5+2=3Knots=4Knots=1
结点和圈复杂度圈复杂度和结点度量是互补的两个指标总之,程序结构化度量量化了软件的属性圈复杂度用于表明程序复杂性结点度量用于表明程序实施时附加的复杂性
循环的复杂性度量由流程图研究源代码的循环结构用于度量复杂性和代码优化识别循环结构不被源代码结构所影响函数度量:函数入口和出口(扇入扇出)循环总数循环最大深度
C++OO实现类的数目子类的数目每个类的方法继承深度数据成员的数据类外的函数调用其他Chidamber和Kemerer度量
程序结构化验证
程序结构化验证通过匹配程序结构模版执行结构化验证,模版使用源代码基本块的流程图表示使用检查工具自动运行检查下列结构:if-then-endifif-then-else-endifdo-whilewhileforcase可配置成识别其他结构
程序结构化确认由于使用非正确的结构形式,C语言非常容易产生错误:需要switch,case,default和break语句的case语句if-then语句也容易产生错误for循环结构也容易产生错误
SPV建议如果检测到非结构化的代码,这部分代码应该由程序员重新编写,这不包括为了解决某些特殊问题而有意使用的非结构化编程除了允许以修改非结构化程序会带来不必要的复杂为理由以外,建议管理者可以先怀疑任何非结构化编程的使用流程图看起来很混乱,并不总是意味着代码是非结构化的。绘制流程图的算法可能会误导程序是高度复杂的通常程序的非结构化是由于代码内部错误引起的
SPV流程图SPV流程图,图形化地显示设计良好的程序结构中节点的化简过程
代码评审流程图
基本结点度量将所有的结构化的程序结构进行化简后,计算剩余的节点数就得到基本结点度量对于一个结构化的程序:基本结点数=0基本结点是非结构化程序引起的复杂性的度量
基本圈复杂度某些结构化的编程结构会引起很高的圈复杂度这个局限性可用基本度量克服定义:EV(G)=V(G)-M 这里M是有唯一入口和出口节点的子图G的数目对于一个结构化的程序:EV(G)=1
SPV度量总结如果一个模块通过SPV化简之后是结构化的,它有:基本结点为0基本圈复杂度为1非结构化的程序含有很高的基本度量值这两个度量是对代码中存在的结构缺
您可能关注的文档
- 9001XXXX转版培训XXXX0917学习课件.pptx
- 第2章人力资源管理的历史与发展.pptx
- 007第七章金融市场机制理论(黄达的金融学精编版(第四.pptx
- 保健品市场研究分析报告.pptx
- 8D教材38D讲义学习课件.pptx
- 珠宝行业公司筹资决策概述.pptx
- 物业公司统一说辞.pptx
- 某集团激励机制管理方案.pptx
- IP网络与IT管理所需的基本知识.pptx
- 天车及吊索具安全使用.pptx
- 2025年市总工会党组书记、市委组织部部长生活会“四个带头”个人对照检查发言材料2篇(含上年度整改+个人情况、个人事项+典型案例).docx
- 2025年部编版小学六年级下册《道德与法治》第四单元 让世界更美好第10课 我们爱和平教学课件.pptx
- 公司领导班子2025年围绕“四个带头”主题检视问题整改落实方案与组织生活会批评意见(20条)2篇文.docx
- 教育系统党组班子2025年对照“四个带头”含意识形态、以典型案例举一反三解析检视材料【2篇文】.docx
- 2025年国有企业领导班子、学校副校长生活会“四个带头”方面对照个人检视发言材料2篇文(附:上年度整改情况、典型案例解析).docx
- 2025年生活会“四个带头”个人对照检查材料2篇文(含对其他领导批评意见,个人公开事项申报、意识形态).docx
- 2025年国有企业党委书记、领导班子生活会“四个带头”方面对照检查发言材料2篇文(上年度整改情况).docx
- 乡镇领导班子、市委组织部常务副部长2025年对照“四个带头”含违纪行为为典型案例的剖析与反思检视剖析材料{2篇文}.docx
- 市委社会工作部2025年生活会领导班子对照检视发言材料2篇文(含以案为鉴,深刻反思存在问题、反面典型案例举一反三解析、其他需要说明情况).docx
- 2025年民主生活会、组织生活会批评意见(20条)与市直单位领导班子“四个带头”对照检查材料【含上年度查摆问题整改落实情况】2篇文.docx
最近下载
- 2025年西安铁路职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 武汉市2025届高中毕业生二月调研考试(二调)生物试卷(含答案).docx
- Gartner IT安全和风险管理评分(英).pdf
- 2024年高考英语一轮复习测试卷一(天津卷)(答题卡).pdf
- 2025年鄂尔多斯职业学院单招职业技能测试题库往年题考.docx VIP
- 医学课题申报答辩PPT模板.pptx
- F476003【复试】2024年上海海洋大学090800水产《复试F03微生物学之微生物学》考研复试.pdf VIP
- 02(03)S515排水检查井安装图集.docx VIP
- 大数据技术基础(第2版)全套教学课件.pptx
- 2025年鹰潭职业技术学院单招职业适应性测试题库及1套完整答案.docx VIP
文档评论(0)