1、1第第6章章 软件评审软件评审 2内容提要内容提要p6.1 为什么需要软件评审为什么需要软件评审p6.2 软件评审的角色和职能软件评审的角色和职能p6.3 评审的内容评审的内容l6.3.1 管理评审l6.3.2 技术评审l6.3.3 文档评审l6.3.4 过程评审3内容提要内容提要p6.4 评审的方法和技术评审的方法和技术l6.4.1 评审的方法l6.4.2 评审的技术p6.5 评审会议流程评审会议流程l6.5.1 准备评审会议l6.5.2 召开评审会议l6.5.3 跟踪和分析评审结果p6.6 小结小结46.1 为什么需要软件评审为什么需要软件评审p总体来说,在开发过程中,评审可以让我们获得总
2、体来说,在开发过程中,评审可以让我们获得以下收益:以下收益:l提高项目的生产率。这是由于早期发现了错误,因而减少了返工时间,还可能减少测试时间。l改善软件的质量。l在评审过程中,使开发团队的其他成员更熟悉产品和开发过程。l通过评审,标志着软件开发的一个阶段的完成。l生产出更容易维护的软件。主要原因是:对于被评审的软件,评审者必须是非常熟悉的;同时,在评审过程中,一定会产生并利用很多证明文档,于是评审就迫使开发者产生出许多有用的文档,而这些文档如果不是因为评审,则在整个项目期间可能都不会生产。此外,评审过程也将增加对所开发软件的理解。56.2 软件评审的角色和职能软件评审的角色和职能 p评审组长
3、(评审组长(Moderator)p宣读员(宣读员(Reader)p记录员(记录员(Recorder)p作者(作者(Author)p评审员(评审员(Reviewer、Inspector)6评审员的主要职责评审员的主要职责 p熟悉评审内容,为评审做好准备。熟悉评审内容,为评审做好准备。p在评审会议上应该关注问题而不是针对个在评审会议上应该关注问题而不是针对个人。人。p主要的问题和次要的问题可以被分别讨论。主要的问题和次要的问题可以被分别讨论。p在会议前或者会议后可以就存在的问题提在会议前或者会议后可以就存在的问题提出建设性的意见和建议。出建设性的意见和建议。p明确自己的角色和责任。明确自己的角色和
4、责任。p做好接受错误的准备。做好接受错误的准备。76.3 评审的内容评审的内容p6.3.1 管理评审管理评审l一个组织之所以需要管理,是为了能更好的进步和发展。为了达到这个目的,通常需要对原来的发展状况进行回顾,分析并总结出存在的问题和改进的措施。这也就是为什么进行管理评审的原因。l管理评审就是最高管理者为评价管理体系的适宜性、充分性和有效性所进行的活动。管理评审的主要内容是组织的最高管理者就管理体系管理评审的主要内容是组织的最高管理者就管理体系的现状、适宜性、充分性和有效性以及方针和目标的的现状、适宜性、充分性和有效性以及方针和目标的贯彻落实及实现情况进行正式的评价,其目的就是通贯彻落实及实
5、现情况进行正式的评价,其目的就是通过这种评价活动来总结管理体系的业绩,并从当前业过这种评价活动来总结管理体系的业绩,并从当前业绩上考虑找出与预期目标的差距,同时还应考虑任何绩上考虑找出与预期目标的差距,同时还应考虑任何可能改进的机会,并在研究分析的基础上,对组织在可能改进的机会,并在研究分析的基础上,对组织在市场中所处地位及竞争对手的业绩予以评价,从而找市场中所处地位及竞争对手的业绩予以评价,从而找出自身的改进方向。出自身的改进方向。8管理评审的目的管理评审的目的 p适宜性适宜性p有效性有效性p充分性充分性9管理评审的输入管理评审的输入 p近期内、外审的评审结果;近期内、外审的评审结果;p顾客
6、信息反馈;顾客信息反馈;p相关方关注的问题;相关方关注的问题;p工作业绩与存在的问题;工作业绩与存在的问题;p纠正与预防措施实施情况;纠正与预防措施实施情况;p上次管理评审有关决定和措施的执行情况;上次管理评审有关决定和措施的执行情况;p可能影响管理体系变更的情况可能影响管理体系变更的情况l(如:法律、法规的变化,组织机构或产品、活动的变化、外部环境的变化等);p管理方针、目标和指标的适宜性及其实现情况。管理方针、目标和指标的适宜性及其实现情况。10管理评审的输出管理评审的输出 p管理评审报告管理评审报告需要包含以下内容:需要包含以下内容:l管理评审的目的、时间、参加人员及评审内容;l管理体系
7、及过程的适用性、充分性、有效性的综合评价和需要的改进;l管理方针、目标、指标适宜性的评价及需要的更改;l资源需求的决定和措施;l管理评审所确定的改进措施、责任部门和完成日期。11管理评审流程管理评审流程 126.3.2 技术评审技术评审 p技术评审的目的技术评审的目的l发现软件在功能、逻辑、实现上的错误;l验证软件符合它的需求规格;l确认软件符合预先定义的开发规范和标准;l保证软件在统一的模式下进行开发;l便于项目管理。p技术评审的输入技术评审的输入l评审的目的是说明为什么要进行该评审,该评审的实施目的是什么;l评审的内容包括需求文档、源代码、测试用例等;l评审检查单(检查项);l其他必须的文
8、档,如对设计文档进行评审,那么需求文档可以作为相关文档带入技术评审会。p技术评审的输出技术评审的输出技术评审报告技术评审报告l会议的基本信息;l存在的问题和建议措施;l评审结论和意见;l问题跟踪表;l技术评审问答记录(通常作为附录出现在报告中)。136.3.3 文档评审文档评审p文档评审的目的文档评审的目的p文档评审的内容文档评审的内容l在软件开发过程中,需要进行评审的文档很多,主要包括如下内容:需求评审,对需求评审,对市场需求说明书市场需求说明书、产品需求产品需求说明书说明书、功能说明书功能说明书等进行评审。等进行评审。设计评审,对设计评审,对总体设计说明书总体设计说明书、详细设计详细设计说
9、明书说明书等进行评审。等进行评审。代码评审,对代码进行审核。代码评审,对代码进行审核。质量验证评审,对质量验证评审,对测试计划测试计划、测试用例测试用例等进行评审。等进行评审。146.3.4 过程评审过程评审 p过程评审的作用如下:过程评审的作用如下:l评估主要的质量保证流程。l考虑如何处理和解决评审过程中发现的不符合问题。l总结和共享好的经验。l指出需要进一步完善和改进的部分。15过程评审流程过程评审流程 166.4 评审的方法和技术评审的方法和技术p特别检查(特别检查(Ad hoc review)p轮查(轮查(Pass Around)p走查(走查(Walkthrough)p团队评审(团队评
10、审(Group Review)p检视(检视(Inspection)17检视、团队评审和走查异同点比检视、团队评审和走查异同点比较表较表 角色角色/职责职责检视检视团队评审团队评审走查走查主持者评审组长评审组长或作者作者材料陈述者评审者评审组长作者记录员是是可能专门的评审角色是是否检查表是是否问题跟踪和分析是可能否产品评估是是否计划有有是准备有有无会议有有有修正有有有确认有有无186.4.2 评审的技术评审的技术 p缺陷检查表缺陷检查表p规则集规则集p评审工具的使用评审工具的使用lGerritlJupiterlSourceMonitorp从不同角度理解产品从不同角度理解产品p场景分析技术场景分析
11、技术196.5 评审会议流程评审会议流程p6.5.1 准备评审会议准备评审会议l在评审会议开始之前,评审组长需要发出评审通知(评审内容、会议时间、会议地点、参加人员等),并且将相关待评审的相关资料也发送给参加会议的评委。其主要的目的有两个:l让参加会议的人员对会议的内容有一定的了解,在会议前做好准备,避免盲目的参加会议而浪费自己和其他人的时间;l如果有评审员在会议时间有其他紧急的事情,可以及早反馈给评审组长,以便召集人重新确定评委或者评审会议改期召开。20评审会议召开时间点评审会议召开时间点 评审评审评审评审评审评审评审评审需求规格说明书概要设计详细设计编码单元测试集成测试系统测试产品单元测试
12、文档集成测试文档系统测试文档用户文档和培训资料21选择哪些评审材料选择哪些评审材料p由于作者意愿和评审会议时间的限制,不大可能由于作者意愿和评审会议时间的限制,不大可能对所有交付的产品和文档都进行评审,因此,需对所有交付的产品和文档都进行评审,因此,需要由评审组长和作者一起协商选定需要进行评审要由评审组长和作者一起协商选定需要进行评审的材料。的材料。pDaniel Freedman提出了一些材料筛选的原提出了一些材料筛选的原则:则:l基础性和早期的文档,如需求说明和原型等;l与重大决策有关的文档,如体系结构模型;l对如何做没有把握的部分,如一些挑战性模块,它们实现了不熟悉的或复杂的算法,或涉及
13、复杂的商业规则和开发人员不了解的其他领域;l将不断被重复使用的部件。l总之,大体原则为:选择那些最复杂和最危险的部分进行评审。22打包分发评审材料打包分发评审材料p通常如下材料需要被打包:通常如下材料需要被打包:l需要评审的部分可交付产品和文档;l定义了可交付产品的前期文档;l评审会议成员需要的所有表格;l有助于评审员发现缺陷的工具和文档,如缺陷检查表、规则集等;l用于验证可交付产品的测试文档。23合理安排评审活动进程合理安排评审活动进程p在评审会议正式开始之前,评审组长还需要收集在评审会议正式开始之前,评审组长还需要收集每个评审员的准备时间,并在审查文档中记录总每个评审员的准备时间,并在审查
14、文档中记录总的准备时间。的准备时间。p当这一切准备就绪之后,评审组长还要制定相应当这一切准备就绪之后,评审组长还要制定相应的活动进度表,安排会议房间,并将时间、地点的活动进度表,安排会议房间,并将时间、地点等相关信息通知评审会议成员。等相关信息通知评审会议成员。p安排会议时应注意以下几点:安排会议时应注意以下几点:l至少提前2-3天通知评审会议成员;l不要安排同一个人一天参加多个评审会议;l根据工作情况,适当安排评审会议,合理协调项目进度和评审会议之间的关系,不要让彼此相互影响。246.5.2 召开评审会议召开评审会议p评审预备评审预备l评审开始l成员介绍l评审员进行演示或说明l评审员就不清楚
15、或疑惑的地方与作者进行沟通l记录员在会议过程中完成会议记录p评审决议评审决议p评审结束评审结束p评审中应把握的几个原则评审中应把握的几个原则256.5.3 跟踪和分析评审结果跟踪和分析评审结果p跟踪跟踪l有条件接受的缺陷跟踪l不接受的缺陷跟踪p分析分析l有效性l效率和成本266.6 小结小结p人的认识不可能人的认识不可能100%符合客观实际,因此在符合客观实际,因此在软件生存期的每个阶段的工作中,都可能引入人软件生存期的每个阶段的工作中,都可能引入人为的缺陷。为的缺陷。p在某一阶段中出现的缺陷,如果得不到及时的纠在某一阶段中出现的缺陷,如果得不到及时的纠正,就会传播到开发的后续阶段中去,并在后续正,就会传播到开发的后续阶段中去,并在后续阶段中引出更多的缺陷。阶段中引出更多的缺陷。p实践证明,提交给测试阶段的产品中包含的缺陷实践证明,提交给测试阶段的产品中包含的缺陷越多,经过同样时间的测试之后,产品中仍然潜越多,经过同样时间的测试之后,产品中仍然潜伏的缺陷也越多。伏的缺陷也越多。p所以必须将发现缺陷的工作提前,在开发时期的所以必须将发现缺陷的工作提前,在开发时期的每个阶段,都要进行严格的软件评审,尽量不让每个阶段,都要进行严格的软件评审,尽量不让缺陷传播到下一阶段。缺陷传播到下一阶段。