第11章软件质量管理与配置管理.pptx
《第11章软件质量管理与配置管理.pptx》由会员分享,可在线阅读,更多相关《第11章软件质量管理与配置管理.pptx(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第11章章 软件质量管理软件质量管理 与软件配置管理与软件配置管理 (参考第(参考第24章、第章、第25章)章)n软件质量管理软件质量管理 软件质量软件质量 软件质量标准软件质量标准 复查与审查复查与审查n软件配置管理软件配置管理 有关概念有关概念 变更管理变更管理 版本管理版本管理 系统构建系统构建 发布版本管理发布版本管理1n软件质量管理就是确保软件有较少的缺陷数,并达到软件质量管理就是确保软件有较少的缺陷数,并达到可维护性、可靠性、可移植性、效率等既定标准。可维护性、可靠性、可移植性、效率等既定标准。n质量管理是对软件开发过程进行的独立的检查活动质量管理是对软件开发过程进行的独立的检查
2、活动(如图所示)。应有独立的团队专门负责质量管理。(如图所示)。应有独立的团队专门负责质量管理。D1D2D3D4D5软件开发过程软件开发过程质量管理过程质量管理过程标准和规程标准和规程 质量规划质量规划 质量评审报告质量评审报告 软件质量管理与软件开发的并行过程软件质量管理与软件开发的并行过程11.1 软件质量管理软件质量管理2n软件质量管理由以下三个主要活动构成:软件质量管理由以下三个主要活动构成: 质量保证质量保证 定义和选择应用于软件开发过程和定义和选择应用于软件开发过程和软件产品的标准,建立起机构质量规程和质量标准软件产品的标准,建立起机构质量规程和质量标准的整体框架,的整体框架, 质
3、量规划质量规划 从这个框架中选择适当的规程和标从这个框架中选择适当的规程和标准,为某一软件项目制定质量计划。准,为某一软件项目制定质量计划。 质量控制质量控制 定义并实施质量管理过程,确保开定义并实施质量管理过程,确保开发团队严格遵守项目质量规程和标准。发团队严格遵守项目质量规程和标准。3n软件质量保证软件质量保证(Software Quality Assurance,SQA)活动活动为达到高质量软件提供了一个框架。该活动包括:为达到高质量软件提供了一个框架。该活动包括: 制定制定软件开发过程标准或软件产品标准软件开发过程标准或软件产品标准 采用采用有效的软件工程方法和工具有效的软件工程方法和
4、工具 过程中采用的正式技术评审过程中采用的正式技术评审 一种一种多层次的测试策略多层次的测试策略 对软件文档及其修改的控制对软件文档及其修改的控制 保证规程和标准被严格执行保证规程和标准被严格执行 软件度量及报告机制软件度量及报告机制 等方面的内容。等方面的内容。4n质量规划质量规划在软件过程的早期阶段进行。规划说明产品在软件过程的早期阶段进行。规划说明产品的质量要求以及产品质量的评定方法(规范)。具体的质量要求以及产品质量的评定方法(规范)。具体内容包括:内容包括: 产品介绍:产品介绍: 产品的性质、意向市场产品的性质、意向市场 产品计划:产品计划: 发布日期、销售及服务计划发布日期、销售及
5、服务计划 过程描述:过程描述: 产品开发和管理中应采用的标准产品开发和管理中应采用的标准 质量目标:质量目标: 鉴定和验证产品的关键质量属性鉴定和验证产品的关键质量属性 风险和风险管理:风险和风险管理: 主要风险及应对措施主要风险及应对措施 质量控制质量控制就是监督检查整个软件开发过程,确保质量就是监督检查整个软件开发过程,确保质量保证过程和标准被严格执行。保证过程和标准被严格执行。511.1.1 软件质量软件质量 1. 软件质量软件质量定义定义 软件质量软件质量是软件产品和过程的一组固有特性满足是软件产品和过程的一组固有特性满足用户和其他相关方要求的程度。用户和其他相关方要求的程度。 2.
6、软件质量的特性(属性):软件质量的特性(属性): 在教材在教材P415图图24-2列出的质量属性有:列出的质量属性有: 安全性、信息安全性(保密性)、可靠性、可调节安全性、信息安全性(保密性)、可靠性、可调节性、鲁棒性、可理解性、可测视性、适用性、模块化、性、鲁棒性、可理解性、可测视性、适用性、模块化、复杂度、可移植性、可用性、复用率、效率、可学习复杂度、可移植性、可用性、复用率、效率、可学习性等。性等。 6 3. 过程质量对产品质量的作用过程质量对产品质量的作用 软件开发过程的质量直接影响产品的质量,过程软件开发过程的质量直接影响产品的质量,过程相对易于标准化和监控。过程质量的管理和改进能减
7、相对易于标准化和监控。过程质量的管理和改进能减少软件开发中产生的缺陷。少软件开发中产生的缺陷。 但软件开发是创造性活动,人的技能和经验对软但软件开发是创造性活动,人的技能和经验对软件质量影响很大件质量影响很大。 过程质量管理包括:过程质量管理包括: 制定过程标准,包括如何进行评审、何时进行评制定过程标准,包括如何进行评审、何时进行评审等。审等。 对开发过程进行监控,确保过程标准的贯彻执行。对开发过程进行监控,确保过程标准的贯彻执行。 向项目管理层和客户报告软件过程的进展情况。向项目管理层和客户报告软件过程的进展情况。7n软件标准软件标准是对成功实践的认同。标准为开发一个优秀质是对成功实践的认同
8、。标准为开发一个优秀质量的软件提供了坚实的基础。量的软件提供了坚实的基础。n软件标准在软件质量管理中扮演着重要的角色,因为:软件标准在软件质量管理中扮演着重要的角色,因为: 1. 标准封装了成功的实践经验,可以避免重犯错误。标准封装了成功的实践经验,可以避免重犯错误。 2. 有助于控制软件质量有助于控制软件质量。通过使用标准,为判断软件通过使用标准,为判断软件是否达到要求的质量水平建立了基础。是否达到要求的质量水平建立了基础。 3. 有助于开发有助于开发工作的连贯性。都采用相同的做法。工作的连贯性。都采用相同的做法。 11.1.2 软件标准软件标准8 在质量在质量管理中。有两类可以定义和使用的
9、的标准管理中。有两类可以定义和使用的的标准: 产品标准产品标准 包括文档标准(如需求文档结构)、包括文档标准(如需求文档结构)、文档编写标准(如注释的标准写法)、编码标准等。文档编写标准(如注释的标准写法)、编码标准等。 过程标准过程标准 定义软件开发必须遵循的过程(封装定义软件开发必须遵循的过程(封装良好的开发方法)。如描述、设计和有效性验证过程、良好的开发方法)。如描述、设计和有效性验证过程、软件变更控制过程、版本发布过程等。软件变更控制过程、版本发布过程等。911.1.3 复查与审查复查与审查n复查复查(review)和审查(和审查(inspection)是检查项目可交)是检查项目可交付
10、文档的质量的付文档的质量的QA活动,和软件测试一样,作为软活动,和软件测试一样,作为软件检验和有效性验证(件检验和有效性验证(V&V)过程的一部分。)过程的一部分。n质量复查基于软件开发中产生的文档来进行。软件质量复查基于软件开发中产生的文档来进行。软件描述、设计、代码、过程模型、测试计划、配置管描述、设计、代码、过程模型、测试计划、配置管理规程、过程标准以及用户指南等都被复查,还应理规程、过程标准以及用户指南等都被复查,还应当检查文档和代码的一致性、完整性,确保遵循质当检查文档和代码的一致性、完整性,确保遵循质量标准。量标准。10n复查不仅仅是检验与标准的一致性,还帮助发现软件复查不仅仅是检
11、验与标准的一致性,还帮助发现软件和项目文档中的问题和遗漏。复查的结果作为质量管和项目文档中的问题和遗漏。复查的结果作为质量管理过程的一部分被正式记录。理过程的一部分被正式记录。n复查与审查的目的是提升软件的质量复查与审查的目的是提升软件的质量.n质量复查不同与管理过程复查。质量复查不同与管理过程复查。 过程复查是将软件开发的实际过程与计划对比,过程复查是将软件开发的实际过程与计划对比,主要关注点是工程是否能够按时并在预算范围内提交主要关注点是工程是否能够按时并在预算范围内提交有用的软件,同时将外部环境因素考虑在内。有用的软件,同时将外部环境因素考虑在内。111. 复查过程复查过程n复查过程分为
12、复查过程分为3各阶段各阶段: 1)复查前活动:)复查前活动: 建立复查团队,安排时间,分发复查文档。复建立复查团队,安排时间,分发复查文档。复查团队成员需阅读并理解软件、文档及相关标准。查团队成员需阅读并理解软件、文档及相关标准。 2)复查会议:文档或程序的作者和复查团队成员一起讨论,并记)复查会议:文档或程序的作者和复查团队成员一起讨论,并记录复查决议和要采取的行动。录复查决议和要采取的行动。 3)复查后活动:解决提出的问题,修复漏洞,重构软件使它与质)复查后活动:解决提出的问题,修复漏洞,重构软件使它与质量标准相一致。进一步检查是否覆盖了所有的复查意见量标准相一致。进一步检查是否覆盖了所有
13、的复查意见。规划规划团队准备团队准备个人准备个人准备复查会议复查会议错误改正错误改正重构重构跟踪复跟踪复查意见查意见复查前活动复查前活动复查后活动复查后活动软件复查过程活动图软件复查过程活动图12n敏捷开发中的复查过程是非正式的,如敏捷开发中的复查过程是非正式的,如Scrum方方法,在每次的软件迭代完成后有一个复查会议;法,在每次的软件迭代完成后有一个复查会议;极限编程方法中的结对编程。极限编程方法中的结对编程。n敏捷方法依赖于个人主动性来提升和重构代码,敏捷方法依赖于个人主动性来提升和重构代码,通常不考虑标准一致性的问题。通常不考虑标准一致性的问题。132. 程序审查程序审查n程序审查是程序
14、审查是“同行评审同行评审”,开发团队成员合作来发现开发团队成员合作来发现程序中的漏洞。不执行程序,所以与测试互补。程序中的漏洞。不执行程序,所以与测试互补。n程序审查涉及不同背景的团队成员,他们需详细检查程序审查涉及不同背景的团队成员,他们需详细检查设计模型和代码。设计模型和代码。n审查时,需使用一份常见错误的检查表(来自书本的审查时,需使用一份常见错误的检查表(来自书本的实例和应用领域的错误经验,见下页表),该表由机实例和应用领域的错误经验,见下页表),该表由机构根据部门标准和实践自己开发,并应经常更新。构根据部门标准和实践自己开发,并应经常更新。nFagan(1986)和)和McConne
15、ll(2004)都报告了通过程)都报告了通过程序审查错误检测率可以达到序审查错误检测率可以达到60%以上。以上。14 11.2 软件配置管理软件配置管理 软件配置管理软件配置管理(Software Configuration Management,SCM)是应用于整个软件过程中的庇)是应用于整个软件过程中的庇护性活动。软件护性活动。软件配置是一个软件产品在生存期各个阶配置是一个软件产品在生存期各个阶段的不同形式和不同版本的程序、文档及相关数据的段的不同形式和不同版本的程序、文档及相关数据的集合。集合。 SCM是对是对软件开发过程中软件开发过程中的各阶段产品和最终产的各阶段产品和最终产品的演化与
16、变更以及版本与发布管理。是品的演化与变更以及版本与发布管理。是CMMI第二第二级中的关键过程域。它的主要目的是对变更加以控制,级中的关键过程域。它的主要目的是对变更加以控制,将变更对成本、进度和质量影响降到最小。将变更对成本、进度和质量影响降到最小。 15软件配置管理的活动软件配置管理的活动系统构建系统构建版本管理版本管理变更管理变更管理发布管理发布管理组件版本组件版本系统版本系统版本系统发布版本系统发布版本变更提议变更提议SCM中四个相关的活动中四个相关的活动161. 变更管理变更管理: 评估来自客户和开发者的软件变更请求,评估来自客户和开发者的软件变更请求,分析变更的影响,估算变更的费用,
17、决策是否变更,分析变更的影响,估算变更的费用,决策是否变更,何时变更。何时变更。2. 版本管理版本管理:跟踪系统组件的多个版本,确保不同开发:跟踪系统组件的多个版本,确保不同开发者对组件做出的变更不会彼此影响。者对组件做出的变更不会彼此影响。3. 系统构建系统构建:将系统组件装配成可执行程序的过程。:将系统组件装配成可执行程序的过程。4. 发布管理发布管理:决定发布或提交一个系统的时间,准备好:决定发布或提交一个系统的时间,准备好所有待发布的信息(可执行文件、数据文件、配置文所有待发布的信息(可执行文件、数据文件、配置文件和文档等),并为每个系统发布版本编制好文档。件和文档等),并为每个系统发
18、布版本编制好文档。17n配置管理需要工具的支持,工具用来追踪变更提议,配置管理需要工具的支持,工具用来追踪变更提议,存储系统组件的多个版本,从这些组件中构建系统,存储系统组件的多个版本,从这些组件中构建系统,并跟踪系统版本的实际发布。并跟踪系统版本的实际发布。nSCM中的有关术语:中的有关术语: 术语术语 解释解释软件配置项软件配置项(SCI)程序、文档、数据、组件等,是软件工程过程中创程序、文档、数据、组件等,是软件工程过程中创建的信息。配置项会存在多个不同的版本。每个配建的信息。配置项会存在多个不同的版本。每个配置项都有一个唯一的名字。置项都有一个唯一的名字。配置控制配置控制对系统和组件的
19、版本进行记录、识别、储存和维护对系统和组件的版本进行记录、识别、储存和维护的过程,确保变更得到管理。的过程,确保变更得到管理。 版本版本配置项的一个实例。有一个唯一的标示符(如名字配置项的一个实例。有一个唯一的标示符(如名字+版本号)版本号)18 基线基线开发各阶段不能轻易改变的软件版本(底线)。基线是受控开发各阶段不能轻易改变的软件版本(底线)。基线是受控的,即构成系统的软件版本是不能轻易改变的。的,即构成系统的软件版本是不能轻易改变的。 基线作用用于控制变更,禁止开发人员随便修改一个基线作用用于控制变更,禁止开发人员随便修改一个“已已冻结冻结”的工作成果。的工作成果。 代码线代码线软件组件
20、以及组件所依赖的其它配置项的集合。软件组件以及组件所依赖的其它配置项的集合。 主线主线系统不同版本的基线的序列。系统不同版本的基线的序列。工作空间工作空间一个私有的工作空间中,对软件的修改不会影响其他开发者一个私有的工作空间中,对软件的修改不会影响其他开发者对该软件的使用。对该软件的使用。 分支分支从现存的代码线版本中创建一个新的代码线,新代码线和已从现存的代码线版本中创建一个新的代码线,新代码线和已存在的代码线可以并行开发。存在的代码线可以并行开发。 合并合并通过合并在不同代码线中的单独版本来创建软件的新版本。通过合并在不同代码线中的单独版本来创建软件的新版本。这些代码线可能由某个代码线先前
21、存在的分支所创建。这些代码线可能由某个代码线先前存在的分支所创建。系统构建系统构建通过链接组件和库中适当版本创建一个可执行的系统版本。通过链接组件和库中适当版本创建一个可执行的系统版本。IEEE对对基线的定义基线的定义: 已经通过正式评审和批准的规已经通过正式评审和批准的规约或产品,可以作为进一步开发的基础,并且只能通约或产品,可以作为进一步开发的基础,并且只能通过正式的变更控制规程才能改变它。过正式的变更控制规程才能改变它。19SCISCISCISCISCI配置项库配置项库基线:基线:软件需求规约软件需求规约软件设计规约软件设计规约源代码源代码测试规程测试规程/用例用例可运行的系统可运行的系
22、统存储存储提取提取软件工软件工程任务程任务修改修改正式技正式技术评审术评审批准批准SCM控制控制基线化的基线化的SCI和项目数据库(参考教材和项目数据库(参考教材1)20 A A1.1 A1.2 A1.3 B B1.1 B1.2 B1.3 C C1.1 C1.2C1.3 L1 L2 EX1 EX2代码线(代码线(A)代码线(代码线(B)代码线(代码线(C)库和外部组件库和外部组件 AB1.2C1.1 L1 L2 EX1基线基线-V1 A1.3B1.2C1.2 L1 L2 EX1基线基线-V2代码线、基线、主线代码线、基线、主线主线(基线的序列)主线(基线的序列)2111.2.1 变更管理变更管
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 软件 质量管理 配置管理
限制150内