欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    代码审查流程与要点.ppt

    • 资源ID:74474774       资源大小:1,010KB        全文页数:22页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    代码审查流程与要点.ppt

    ccooppyyrriigghhtt22000055lleeaaddoorr代码审查流程与要点生产平台组生产平台组2016-1-232016-1-23立得空间信息技术股份有限公司立得空间信息技术股份有限公司1ccooppyyrriigghhtt22000055lleeaaddoorr目录1.1.1.1.概述概述概述概述2.2.2.2.代码审查的目的代码审查的目的代码审查的目的代码审查的目的3.3.3.3.代码审查的好处代码审查的好处代码审查的好处代码审查的好处4.4.4.4.代码审查的局限性代码审查的局限性代码审查的局限性代码审查的局限性5.5.5.5.代码审查内容代码审查内容代码审查内容代码审查内容6.6.6.6.代码审查流程代码审查流程代码审查流程代码审查流程7.7.7.7.代码审查工具代码审查工具代码审查工具代码审查工具ccooppyyrriigghhtt22000055lleeaaddoorr1.概述 Code Review Code Review代码审查是指软件开发过程中,通过对代码审查是指软件开发过程中,通过对代码审查是指软件开发过程中,通过对代码审查是指软件开发过程中,通过对源代码进行系统性检查的过程。通常的目的是查找各种缺源代码进行系统性检查的过程。通常的目的是查找各种缺源代码进行系统性检查的过程。通常的目的是查找各种缺源代码进行系统性检查的过程。通常的目的是查找各种缺陷,包括代码缺陷、功能实现问题、编码合理性、性能优陷,包括代码缺陷、功能实现问题、编码合理性、性能优陷,包括代码缺陷、功能实现问题、编码合理性、性能优陷,包括代码缺陷、功能实现问题、编码合理性、性能优化等;保证软件总体质量和提高开发者自身水平。化等;保证软件总体质量和提高开发者自身水平。化等;保证软件总体质量和提高开发者自身水平。化等;保证软件总体质量和提高开发者自身水平。ccooppyyrriigghhtt22000055lleeaaddoorr2.代码审查的目的u u检查检查检查检查开发人员开发人员开发人员开发人员是否遵守开发规范中的规定是否遵守开发规范中的规定是否遵守开发规范中的规定是否遵守开发规范中的规定u u检查代码是否存在审定检查代码是否存在审定检查代码是否存在审定检查代码是否存在审定表中的错误表中的错误表中的错误表中的错误u u检查代码是否存在逻辑检查代码是否存在逻辑检查代码是否存在逻辑检查代码是否存在逻辑错误、性能低下或安全问题错误、性能低下或安全问题错误、性能低下或安全问题错误、性能低下或安全问题ccooppyyrriigghhtt22000055lleeaaddoorr3.代码审查的好处u u提高提高提高提高代码质量代码质量代码质量代码质量u u及早及早及早及早发现潜在缺陷,降低修改发现潜在缺陷,降低修改发现潜在缺陷,降低修改发现潜在缺陷,降低修改/弥补缺陷的成本弥补缺陷的成本弥补缺陷的成本弥补缺陷的成本u u促进促进促进促进团队内部知识共享,提高团队的整体水平团队内部知识共享,提高团队的整体水平团队内部知识共享,提高团队的整体水平团队内部知识共享,提高团队的整体水平u u评审评审评审评审过程对于评审人员来说,也是一种思路重构的过程,帮助更多的过程对于评审人员来说,也是一种思路重构的过程,帮助更多的过程对于评审人员来说,也是一种思路重构的过程,帮助更多的过程对于评审人员来说,也是一种思路重构的过程,帮助更多的人理解系统人理解系统人理解系统人理解系统u u是是是是一种传递知识的手段,可以让其它并不熟悉代码的人知道作者的意一种传递知识的手段,可以让其它并不熟悉代码的人知道作者的意一种传递知识的手段,可以让其它并不熟悉代码的人知道作者的意一种传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码图和想法,从而可以在以后轻松维护代码图和想法,从而可以在以后轻松维护代码图和想法,从而可以在以后轻松维护代码u u鼓励鼓励鼓励鼓励程序员们相互学习对方的长处和有点程序员们相互学习对方的长处和有点程序员们相互学习对方的长处和有点程序员们相互学习对方的长处和有点u u可以可以可以可以被用来确认设计和实现是否合理,检查设计是否清楚和简单被用来确认设计和实现是否合理,检查设计是否清楚和简单被用来确认设计和实现是否合理,检查设计是否清楚和简单被用来确认设计和实现是否合理,检查设计是否清楚和简单ccooppyyrriigghhtt22000055lleeaaddoorr4.代码审查的局限u u无法无法无法无法完全验证逻辑是否正确,无法检查功能是否完整;完全验证逻辑是否正确,无法检查功能是否完整;完全验证逻辑是否正确,无法检查功能是否完整;完全验证逻辑是否正确,无法检查功能是否完整;u u无法无法无法无法检测代码中遗漏的路径和数据敏感性错误检测代码中遗漏的路径和数据敏感性错误检测代码中遗漏的路径和数据敏感性错误检测代码中遗漏的路径和数据敏感性错误u u不不不不验证规格的正确性验证规格的正确性验证规格的正确性验证规格的正确性u u代价高昂,对于代价高昂,对于代价高昂,对于代价高昂,对于以上局限,需要编写正确的详尽的测试用以上局限,需要编写正确的详尽的测试用以上局限,需要编写正确的详尽的测试用以上局限,需要编写正确的详尽的测试用例,进行功能测试和集成测试来弥补。例,进行功能测试和集成测试来弥补。例,进行功能测试和集成测试来弥补。例,进行功能测试和集成测试来弥补。ccooppyyrriigghhtt22000055lleeaaddoorr5.审查内容u u基本规范:检查代码编写是否满足编码规范;基本规范:检查代码编写是否满足编码规范;基本规范:检查代码编写是否满足编码规范;基本规范:检查代码编写是否满足编码规范;u u程序逻辑:检查基本的程序逻辑、性能、安全性等是否程序逻辑:检查基本的程序逻辑、性能、安全性等是否程序逻辑:检查基本的程序逻辑、性能、安全性等是否程序逻辑:检查基本的程序逻辑、性能、安全性等是否存在问题,用户交互流程是否满足正常的软件使用要求;存在问题,用户交互流程是否满足正常的软件使用要求;存在问题,用户交互流程是否满足正常的软件使用要求;存在问题,用户交互流程是否满足正常的软件使用要求;u u软件设计:检查软件的基础设计、模块之间的耦合关系、软件设计:检查软件的基础设计、模块之间的耦合关系、软件设计:检查软件的基础设计、模块之间的耦合关系、软件设计:检查软件的基础设计、模块之间的耦合关系、第三方库或框架的使用是否合理。第三方库或框架的使用是否合理。第三方库或框架的使用是否合理。第三方库或框架的使用是否合理。代码审查分代码审查分3 3个等级:个等级:ccooppyyrriigghhtt22000055lleeaaddoorr5.1基本规范 项目在立项时需确定本项目所遵循的编码规范,如有特项目在立项时需确定本项目所遵循的编码规范,如有特项目在立项时需确定本项目所遵循的编码规范,如有特项目在立项时需确定本项目所遵循的编码规范,如有特殊要求,可在通用编码规范基础上进行适当修改。纯殊要求,可在通用编码规范基础上进行适当修改。纯殊要求,可在通用编码规范基础上进行适当修改。纯殊要求,可在通用编码规范基础上进行适当修改。纯C+/VC+C+/VC+开发项目应遵守开发项目应遵守开发项目应遵守开发项目应遵守C+C+编码规范编码规范编码规范编码规范,C#C#开发项目开发项目开发项目开发项目应遵守应遵守应遵守应遵守C#C#编码规范编码规范编码规范编码规范,混合开发项目应遵守两种编码规范。,混合开发项目应遵守两种编码规范。,混合开发项目应遵守两种编码规范。,混合开发项目应遵守两种编码规范。ccooppyyrriigghhtt22000055lleeaaddoorr5.1基本规范:案例11.1.成员变量命名不规范;成员变量命名不规范;成员变量命名不规范;成员变量命名不规范;2.2.成员变量访问权限申明方式不一致;成员变量访问权限申明方式不一致;成员变量访问权限申明方式不一致;成员变量访问权限申明方式不一致;3.3.代码之间的空行不符合规范;代码之间的空行不符合规范;代码之间的空行不符合规范;代码之间的空行不符合规范;4.4.部分成员变量只有申明,没有初始化;部分成员变量只有申明,没有初始化;部分成员变量只有申明,没有初始化;部分成员变量只有申明,没有初始化;5.5.没有注释没有注释没有注释没有注释ccooppyyrriigghhtt22000055lleeaaddoorr5.1基本规范:案例21.1.一个代码文件中包含多个类;一个代码文件中包含多个类;一个代码文件中包含多个类;一个代码文件中包含多个类;2.2.一个代码文件中代码过长;一个代码文件中代码过长;一个代码文件中代码过长;一个代码文件中代码过长;3.3.有的类中成员变量有初始值,有的没有;有的类中成员变量有初始值,有的没有;有的类中成员变量有初始值,有的没有;有的类中成员变量有初始值,有的没有;4.4.有的类有注释,有的类有注释,有的类有注释,有的类有注释,有的没有。有的没有。有的没有。有的没有。ccooppyyrriigghhtt22000055lleeaaddoorr5.2程序逻辑 程序逻辑检查软件基本的程序逻辑是否合理,包括循程序逻辑检查软件基本的程序逻辑是否合理,包括循程序逻辑检查软件基本的程序逻辑是否合理,包括循程序逻辑检查软件基本的程序逻辑是否合理,包括循环、递归、线程、事务等代码结构上的合理性。还包括异环、递归、线程、事务等代码结构上的合理性。还包括异环、递归、线程、事务等代码结构上的合理性。还包括异环、递归、线程、事务等代码结构上的合理性。还包括异常处理、性能、重复代码、可优化代码,无效代码等的检常处理、性能、重复代码、可优化代码,无效代码等的检常处理、性能、重复代码、可优化代码,无效代码等的检常处理、性能、重复代码、可优化代码,无效代码等的检查。在代码程度上检查用户界面操作逻辑是否正确、布局查。在代码程度上检查用户界面操作逻辑是否正确、布局查。在代码程度上检查用户界面操作逻辑是否正确、布局查。在代码程度上检查用户界面操作逻辑是否正确、布局是否合理、用户提示是否简捷明了、是否存在重复或无用是否合理、用户提示是否简捷明了、是否存在重复或无用是否合理、用户提示是否简捷明了、是否存在重复或无用是否合理、用户提示是否简捷明了、是否存在重复或无用功能等。功能等。功能等。功能等。ccooppyyrriigghhtt22000055lleeaaddoorr5.2程序逻辑:案例11.1.异常淹没:异常捕获后没有进行任何处理,也没有将异常抛出。异常淹没:异常捕获后没有进行任何处理,也没有将异常抛出。异常淹没:异常捕获后没有进行任何处理,也没有将异常抛出。异常淹没:异常捕获后没有进行任何处理,也没有将异常抛出。ccooppyyrriigghhtt22000055lleeaaddoorr5.2程序逻辑:案例21.1.提示框不符合要求:没有标题,没有显示图标(提示、警告、借误等)。提示框不符合要求:没有标题,没有显示图标(提示、警告、借误等)。提示框不符合要求:没有标题,没有显示图标(提示、警告、借误等)。提示框不符合要求:没有标题,没有显示图标(提示、警告、借误等)。2.2.提示表意不清,应明确显示是什么结点没有选中,而且结点是程序语言,要提示表意不清,应明确显示是什么结点没有选中,而且结点是程序语言,要提示表意不清,应明确显示是什么结点没有选中,而且结点是程序语言,要提示表意不清,应明确显示是什么结点没有选中,而且结点是程序语言,要翻译成用户语言,如:未选中兵要,请先选择一个兵要!。翻译成用户语言,如:未选中兵要,请先选择一个兵要!。翻译成用户语言,如:未选中兵要,请先选择一个兵要!。翻译成用户语言,如:未选中兵要,请先选择一个兵要!。ccooppyyrriigghhtt22000055lleeaaddoorr5.3软件设计 软件设计检查软件的层次结构划分是否合理,软件设计检查软件的层次结构划分是否合理,软件设计检查软件的层次结构划分是否合理,软件设计检查软件的层次结构划分是否合理,UIUI层、层、层、层、逻辑层、数据层、组件层等是否清晰,有无混淆;软件在逻辑层、数据层、组件层等是否清晰,有无混淆;软件在逻辑层、数据层、组件层等是否清晰,有无混淆;软件在逻辑层、数据层、组件层等是否清晰,有无混淆;软件在性能设计、安全性设计、易维护性设计、健壮性设计等设性能设计、安全性设计、易维护性设计、健壮性设计等设性能设计、安全性设计、易维护性设计、健壮性设计等设性能设计、安全性设计、易维护性设计、健壮性设计等设计方面是否合理。计方面是否合理。计方面是否合理。计方面是否合理。ccooppyyrriigghhtt22000055lleeaaddoorr5.3软件设计:案例11.1.工程命名有问题:该项目没有引入插件框架,工程命名有问题:该项目没有引入插件框架,工程命名有问题:该项目没有引入插件框架,工程命名有问题:该项目没有引入插件框架,这个工程是从其他项目拷贝而来,但是工程名这个工程是从其他项目拷贝而来,但是工程名这个工程是从其他项目拷贝而来,但是工程名这个工程是从其他项目拷贝而来,但是工程名称没有修改正确;称没有修改正确;称没有修改正确;称没有修改正确;2.2.都是都是都是都是ArcGISArcGIS工具类,但是分散在工具类,但是分散在工具类,但是分散在工具类,但是分散在2 2个工程中,个工程中,个工程中,个工程中,应该把第应该把第应该把第应该把第2 2个工程中的工具类移到第个工程中的工具类移到第个工程中的工具类移到第个工程中的工具类移到第1 1个工程中。个工程中。个工程中。个工程中。ccooppyyrriigghhtt22000055lleeaaddoorr6.代码审查流程立项阶段编写代码审查计划书建立代码审查缺陷库确定编码规范研制阶段提交代码审查申请单代码审查入口检查实施代码审查输出代码审查报告存在缺陷是代码整改否归档结项阶段编写代码审查总结报告存档ccooppyyrriigghhtt22000055lleeaaddoorr6.1立项阶段1.1.编写代码审查计划书:编写代码审查计划书:编写代码审查计划书:编写代码审查计划书:描述项目或产品在研制过程中进描述项目或产品在研制过程中进描述项目或产品在研制过程中进描述项目或产品在研制过程中进行代码审查活动的时间与周期,明确项目开发负责人、行代码审查活动的时间与周期,明确项目开发负责人、行代码审查活动的时间与周期,明确项目开发负责人、行代码审查活动的时间与周期,明确项目开发负责人、代码审查负责人;代码审查负责人;代码审查负责人;代码审查负责人;2.2.建立代码审查缺陷库:在项目或产品研制开始前开发负建立代码审查缺陷库:在项目或产品研制开始前开发负建立代码审查缺陷库:在项目或产品研制开始前开发负建立代码审查缺陷库:在项目或产品研制开始前开发负责人按照部门代码审查缺陷库模板责人按照部门代码审查缺陷库模板责人按照部门代码审查缺陷库模板责人按照部门代码审查缺陷库模板建立代码审查缺陷建立代码审查缺陷建立代码审查缺陷建立代码审查缺陷库,库,库,库,建立所有开发人员和审查人员的权限;建立所有开发人员和审查人员的权限;建立所有开发人员和审查人员的权限;建立所有开发人员和审查人员的权限;3.3.确定编码规范:开发负责人确定本项目或产品研制需遵确定编码规范:开发负责人确定本项目或产品研制需遵确定编码规范:开发负责人确定本项目或产品研制需遵确定编码规范:开发负责人确定本项目或产品研制需遵循的编码规范,并上传至代码审查缺陷库中。循的编码规范,并上传至代码审查缺陷库中。循的编码规范,并上传至代码审查缺陷库中。循的编码规范,并上传至代码审查缺陷库中。ccooppyyrriigghhtt22000055lleeaaddoorr6.2研制阶段1.1.提交代码审查申请单:到达项目提交代码审查申请单:到达项目提交代码审查申请单:到达项目提交代码审查申请单:到达项目/产品代码审查时间节点产品代码审查时间节点产品代码审查时间节点产品代码审查时间节点时,开发负责人确定代码基线,提交代码审查申请单给时,开发负责人确定代码基线,提交代码审查申请单给时,开发负责人确定代码基线,提交代码审查申请单给时,开发负责人确定代码基线,提交代码审查申请单给代码审查负责人;代码审查负责人;代码审查负责人;代码审查负责人;2.2.代码审查入品检查:代码审查负责人检查代码库中的代代码审查入品检查:代码审查负责人检查代码库中的代代码审查入品检查:代码审查负责人检查代码库中的代代码审查入品检查:代码审查负责人检查代码库中的代码基线是否满足代码审查条件,如不满足,退回至开发码基线是否满足代码审查条件,如不满足,退回至开发码基线是否满足代码审查条件,如不满足,退回至开发码基线是否满足代码审查条件,如不满足,退回至开发负责人;负责人;负责人;负责人;3.3.实施代码审查:审查负责人分配代码审查任务给审查人实施代码审查:审查负责人分配代码审查任务给审查人实施代码审查:审查负责人分配代码审查任务给审查人实施代码审查:审查负责人分配代码审查任务给审查人员,审查人员利用工具或手动按照编码规范与经验对代员,审查人员利用工具或手动按照编码规范与经验对代员,审查人员利用工具或手动按照编码规范与经验对代员,审查人员利用工具或手动按照编码规范与经验对代码进行审查。码进行审查。码进行审查。码进行审查。ccooppyyrriigghhtt22000055lleeaaddoorr6.2研制阶段4.4.输出代码审查报告:代码审查完成后,审查负责人编写输出代码审查报告:代码审查完成后,审查负责人编写输出代码审查报告:代码审查完成后,审查负责人编写输出代码审查报告:代码审查完成后,审查负责人编写代码审查报告至开发负责人;代码审查报告至开发负责人;代码审查报告至开发负责人;代码审查报告至开发负责人;5.5.代码整改:代码整改:代码整改:代码整改:代码审查报告代码审查报告代码审查报告代码审查报告中如果存在不符合项,开中如果存在不符合项,开中如果存在不符合项,开中如果存在不符合项,开发负责人按照不符合项分配代码整改任务;整改完成后发负责人按照不符合项分配代码整改任务;整改完成后发负责人按照不符合项分配代码整改任务;整改完成后发负责人按照不符合项分配代码整改任务;整改完成后重复重复重复重复1515过程。过程。过程。过程。ccooppyyrriigghhtt22000055lleeaaddoorr6.3结项阶段1.1.项目结项时,代码审查负责人编写项目结项时,代码审查负责人编写项目结项时,代码审查负责人编写项目结项时,代码审查负责人编写代码审查总结报告代码审查总结报告代码审查总结报告代码审查总结报告并向部门作总结报告,帮助部门整理该项目研制过程并向部门作总结报告,帮助部门整理该项目研制过程并向部门作总结报告,帮助部门整理该项目研制过程并向部门作总结报告,帮助部门整理该项目研制过程中出现的代码质量问题,其他项目组应以此为鉴,杜绝中出现的代码质量问题,其他项目组应以此为鉴,杜绝中出现的代码质量问题,其他项目组应以此为鉴,杜绝中出现的代码质量问题,其他项目组应以此为鉴,杜绝出现类似问题。出现类似问题。出现类似问题。出现类似问题。ccooppyyrriigghhtt22000055lleeaaddoorr7.代码审查工具1.SourceAnalysis 1.SourceAnalysis(StyleCopStyleCop):代码自动化检查工具,检):代码自动化检查工具,检):代码自动化检查工具,检):代码自动化检查工具,检查代码是否按照制定的编辑规则进行编码,可与查代码是否按照制定的编辑规则进行编码,可与查代码是否按照制定的编辑规则进行编码,可与查代码是否按照制定的编辑规则进行编码,可与Visual Visual StudioStudio集成。集成。集成。集成。ccooppyyrriigghhtt22000055lleeaaddoorr谢谢!

    注意事项

    本文(代码审查流程与要点.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开