软件质量与质量保证知识分享.ppt
《软件质量与质量保证知识分享.ppt》由会员分享,可在线阅读,更多相关《软件质量与质量保证知识分享.ppt(168页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件质量与质量保证内容安排内容安排n n第六章第六章 软件质量与质量保证软件质量与质量保证第一节第一节 软件质量软件质量第二节第二节 软件质量保证软件质量保证第三节第三节 技术方法和工具的选用技术方法和工具的选用第四节第四节 正式技术评审的实施正式技术评审的实施第五节第五节 标准的执行标准的执行第六节第六节 文挡及其修改的控制文挡及其修改的控制第七节第七节 度量度量第八节第八节 SQA小组的活动小组的活动6.1 软件质量软件质量n n一、软件质量的定义一、软件质量的定义与明确确定的功能和性能需求的与明确确定的功能和性能需求的一致性一致性与明确成文的开发标准的一致性与明确成文的开发标准的一致性与
2、所有专业开发的软件所期望的与所有专业开发的软件所期望的隐含的特性的一致性隐含的特性的一致性软件质量因素软件质量因素n n二、软件质量因素二、软件质量因素可直接度量的因素可直接度量的因素只能间接度量的因素只能间接度量的因素度量和量度度量和量度n n度量度量(Measurement)度量是对开发过程进行检测,以提高开发度量是对开发过程进行检测,以提高开发度量是对开发过程进行检测,以提高开发度量是对开发过程进行检测,以提高开发过程的质量和劳动生产率过程的质量和劳动生产率过程的质量和劳动生产率过程的质量和劳动生产率n n量度量度(Metrics)量度是度量的结果或度量中一个项的抽象量度是度量的结果或度
3、量中一个项的抽象量度是度量的结果或度量中一个项的抽象量度是度量的结果或度量中一个项的抽象表示,做为评价质量和劳动生产率的基表示,做为评价质量和劳动生产率的基表示,做为评价质量和劳动生产率的基表示,做为评价质量和劳动生产率的基础础础础量度模型量度模型Boehm模型模型n nBoehm模型模型量度模型量度模型McCall模型模型n nMcCall模型模型量度模型量度模型ISO模型模型n nISO模型模型各因素间的影响各因素间的影响6.2 软件质量保证软件质量保证n n一、质量保证策略一、质量保证策略以检测为重点以检测为重点以过程管理为重点以过程管理为重点以新产品开发为重点以新产品开发为重点二、软件
4、质量保证活动二、软件质量保证活动n n1 技术方法和工具的选用技术方法和工具的选用n n2 正式技术评审的实施正式技术评审的实施n n3 多层次软件测试多层次软件测试n n4 标准的执行标准的执行n n5 文档及其修改的控制文档及其修改的控制n n6 度量和报告制度度量和报告制度n n7 记录和记录保存记录和记录保存n n8 SQA小组活动小组活动6.3 技术方法及方法的选用技术方法及方法的选用n n一、采用或不采用软件工程方法一、采用或不采用软件工程方法软件工程从软件工程从软件工程从软件工程从19681968年提出至今,软件工程中年提出至今,软件工程中年提出至今,软件工程中年提出至今,软件工
5、程中许许许许多多多多技术已变得成熟。软件工程知识体技术已变得成熟。软件工程知识体技术已变得成熟。软件工程知识体技术已变得成熟。软件工程知识体(SWEBOK)(SWEBOK)已被定义,软件工程多个部分已已被定义,软件工程多个部分已已被定义,软件工程多个部分已已被定义,软件工程多个部分已有有有有ISOISO标准,较软件工程的发展趋势和新技术标准,较软件工程的发展趋势和新技术标准,较软件工程的发展趋势和新技术标准,较软件工程的发展趋势和新技术已初显端貌。已初显端貌。已初显端貌。已初显端貌。问题:是否真正掌握软件工程的实质问题:是否真正掌握软件工程的实质问题:是否真正掌握软件工程的实质问题:是否真正掌
6、握软件工程的实质(运用系统运用系统运用系统运用系统的的的的、规范的和可定量的方法开发、运行和维护规范的和可定量的方法开发、运行和维护规范的和可定量的方法开发、运行和维护规范的和可定量的方法开发、运行和维护软件软件软件软件)?并在实际工作中付诸实施!当然,软?并在实际工作中付诸实施!当然,软?并在实际工作中付诸实施!当然,软?并在实际工作中付诸实施!当然,软件工程也不是包医百病的灵丹妙药!目前的主件工程也不是包医百病的灵丹妙药!目前的主件工程也不是包医百病的灵丹妙药!目前的主件工程也不是包医百病的灵丹妙药!目前的主要问题是要问题是要问题是要问题是许许许许多软件企业不遵循软件工程的思想多软件企业不
7、遵循软件工程的思想多软件企业不遵循软件工程的思想多软件企业不遵循软件工程的思想操作。操作。操作。操作。二、开发过程的选用二、开发过程的选用n n1、瀑布模型、瀑布模型n n2、瀑布模型的改进与延伸、瀑布模型的改进与延伸(1)原型原型(2)螺旋模型螺旋模型(3)4GT(4)混合模型混合模型n n3、迭代、增量到统一的软件开发过程、迭代、增量到统一的软件开发过程n n4、形式化开发模型、形式化开发模型1、瀑布模型、瀑布模型n n提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程n
8、n问题:问题:问题:问题:要求需求一开始就提正确而且不变;要求需求一开始就提正确而且不变;要求需求一开始就提正确而且不变;要求需求一开始就提正确而且不变;开发人员相互等待导致开发工作的阻塞现象,尤其在开发人员相互等待导致开发工作的阻塞现象,尤其在开发人员相互等待导致开发工作的阻塞现象,尤其在开发人员相互等待导致开发工作的阻塞现象,尤其在开始和结束阶段。开始和结束阶段。开始和结束阶段。开始和结束阶段。n n在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的位置。位置。位置。位置。
9、n n它提供了一个模板,使得分析、设计、编码、测它提供了一个模板,使得分析、设计、编码、测它提供了一个模板,使得分析、设计、编码、测它提供了一个模板,使得分析、设计、编码、测试和维护可在该模板指导下应用,仍然是软件工试和维护可在该模板指导下应用,仍然是软件工试和维护可在该模板指导下应用,仍然是软件工试和维护可在该模板指导下应用,仍然是软件工程中应用最泛的过程模型。程中应用最泛的过程模型。程中应用最泛的过程模型。程中应用最泛的过程模型。n n在科学和工程计算、实时控制及嵌入式系统中应在科学和工程计算、实时控制及嵌入式系统中应在科学和工程计算、实时控制及嵌入式系统中应在科学和工程计算、实时控制及嵌
10、入式系统中应用得很好。用得很好。用得很好。用得很好。瀑布模型瀑布模型2、瀑布模型的改进与延伸、瀑布模型的改进与延伸n n(1)原型原型原型开发确实是解决需求的不确定性和原型开发确实是解决需求的不确定性和可变性提出的一种好办法。可变性提出的一种好办法。原型分抛弃式原型、演化式原型和增量原型分抛弃式原型、演化式原型和增量式原型式原型n n抛弃式原型的最大用处是辅助分析和确定用抛弃式原型的最大用处是辅助分析和确定用抛弃式原型的最大用处是辅助分析和确定用抛弃式原型的最大用处是辅助分析和确定用户需求,及解决系统任何部位的不确定性问户需求,及解决系统任何部位的不确定性问户需求,及解决系统任何部位的不确定性
11、问户需求,及解决系统任何部位的不确定性问题;题;题;题;n n演化式原型可以作为一种开发方法,利用演演化式原型可以作为一种开发方法,利用演演化式原型可以作为一种开发方法,利用演演化式原型可以作为一种开发方法,利用演化成为最终系统;化成为最终系统;化成为最终系统;化成为最终系统;n n增量式原型开发可以作为瀑布模型开发的补增量式原型开发可以作为瀑布模型开发的补增量式原型开发可以作为瀑布模型开发的补增量式原型开发可以作为瀑布模型开发的补充。充。充。充。原型原型瀑布模型的改进与延伸瀑布模型的改进与延伸n n(2)螺旋模型螺旋模型也是一个演化过程模型,综合了也是一个演化过程模型,综合了瀑布模型和原型的
12、优点,成功与瀑布模型和原型的优点,成功与否很大程度上取决于风险分析技否很大程度上取决于风险分析技术术螺旋模型螺旋模型瀑布模型的改进与延伸瀑布模型的改进与延伸n n(3)4GT(3)4GT其最大特点是拥有一组工具,每个工具都能使其最大特点是拥有一组工具,每个工具都能使其最大特点是拥有一组工具,每个工具都能使其最大特点是拥有一组工具,每个工具都能使软件开发人员在高层次上定义软件的某些特性,软件开发人员在高层次上定义软件的某些特性,软件开发人员在高层次上定义软件的某些特性,软件开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些特性自动地生成源代并把开发人员定义的这些特性自动地生成源代并把开
13、发人员定义的这些特性自动地生成源代并把开发人员定义的这些特性自动地生成源代码。所以,这种方法可以大大地减少软件开发码。所以,这种方法可以大大地减少软件开发码。所以,这种方法可以大大地减少软件开发码。所以,这种方法可以大大地减少软件开发的时间,目前主要用于事务处理应用程序。的时间,目前主要用于事务处理应用程序。的时间,目前主要用于事务处理应用程序。的时间,目前主要用于事务处理应用程序。4GT4GT实现成为产品以后,要进行彻底的测试,实现成为产品以后,要进行彻底的测试,实现成为产品以后,要进行彻底的测试,实现成为产品以后,要进行彻底的测试,还需要数据库的支持。对于一些较大的应用程还需要数据库的支持
14、。对于一些较大的应用程还需要数据库的支持。对于一些较大的应用程还需要数据库的支持。对于一些较大的应用程序,必须先制定出一个系统的策略,否则难以序,必须先制定出一个系统的策略,否则难以序,必须先制定出一个系统的策略,否则难以序,必须先制定出一个系统的策略,否则难以完成。完成。完成。完成。必须指出的,使用必须指出的,使用必须指出的,使用必须指出的,使用4GT4GT也会产生与瀑布模型开也会产生与瀑布模型开也会产生与瀑布模型开也会产生与瀑布模型开发软件所遇到的同样的问题。如果能与基于构发软件所遇到的同样的问题。如果能与基于构发软件所遇到的同样的问题。如果能与基于构发软件所遇到的同样的问题。如果能与基于
15、构件的开发方法结合起来,很可能将成为软件开件的开发方法结合起来,很可能将成为软件开件的开发方法结合起来,很可能将成为软件开件的开发方法结合起来,很可能将成为软件开发的一种主流方法。发的一种主流方法。发的一种主流方法。发的一种主流方法。4GT瀑布模型的改进与延伸瀑布模型的改进与延伸n n(4)混合模型混合模型目前软件企业一般都采用混合模型开发目前软件企业一般都采用混合模型开发软件。软件。它是把瀑布、原型、螺旋和它是把瀑布、原型、螺旋和4GT开发模开发模式组合起来,它允许一个项目可以根据式组合起来,它允许一个项目可以根据项目特征和要求及企业自身的开发条件项目特征和要求及企业自身的开发条件(技术的和
16、管理的技术的和管理的)选择一条最有效的路选择一条最有效的路径。径。好处:给企业管理者和开发者提供了一好处:给企业管理者和开发者提供了一个舞台,使每个模型的长处都得到发挥。个舞台,使每个模型的长处都得到发挥。但由此对企业管理和技术都提出了更高但由此对企业管理和技术都提出了更高要求。要求。混合模型混合模型3、迭代、增量到统一的开发过程、迭代、增量到统一的开发过程n n自从自从OO技术于技术于90年代逐步走年代逐步走向实用以后,才为真正的迭代、向实用以后,才为真正的迭代、增量到统一的开发过程奠定了增量到统一的开发过程奠定了坚实的技术和组织基础;也为坚实的技术和组织基础;也为重用技术和基于构件的开发提
17、重用技术和基于构件的开发提供了条件。供了条件。演化演化迭代增量迭代增量统一的软件开发过程统一的软件开发过程基于构件的开发基于构件的开发4、形式化开发模型、形式化开发模型n n能够借助一种严密的、数学的符号规格说能够借助一种严密的、数学的符号规格说明、开发和验证一个基于计算机的系统明、开发和验证一个基于计算机的系统n n好处:能够消除在使用其它软件工程模式好处:能够消除在使用其它软件工程模式中难以克服的诸如二义性、不完整性和不中难以克服的诸如二义性、不完整性和不一致性等问题,不是通过专门安排的评审,一致性等问题,不是通过专门安排的评审,而是通过数学分析的应用。而是通过数学分析的应用。n n尽管,
18、当前对于大型复杂的软件系统要进尽管,当前对于大型复杂的软件系统要进行完整的形式化开发,还不现实,也不可行完整的形式化开发,还不现实,也不可能。但用于大型复杂系统的一些关键部位,能。但用于大型复杂系统的一些关键部位,确实是一种有效地实用策略确实是一种有效地实用策略开发过程总结开发过程总结n n软件开发过程的采用,主要决定于你开发软件开发过程的采用,主要决定于你开发的产品:的产品:不同的产品应有不同的过程,不能只从技术角不同的产品应有不同的过程,不能只从技术角不同的产品应有不同的过程,不能只从技术角不同的产品应有不同的过程,不能只从技术角度来评价它们的优劣!如一个科学、工程计算度来评价它们的优劣!
19、如一个科学、工程计算度来评价它们的优劣!如一个科学、工程计算度来评价它们的优劣!如一个科学、工程计算系统可用瀑布模型或形式化开发模型;一个事系统可用瀑布模型或形式化开发模型;一个事系统可用瀑布模型或形式化开发模型;一个事系统可用瀑布模型或形式化开发模型;一个事务处理系统可用原型;而一个务处理系统可用原型;而一个务处理系统可用原型;而一个务处理系统可用原型;而一个WebWeb站点的创建站点的创建站点的创建站点的创建可用演化模型可用演化模型可用演化模型可用演化模型n n本部分内容极为重要:本部分内容极为重要:因为开发过程的不同,不仅对软件开发和维护因为开发过程的不同,不仅对软件开发和维护因为开发过
20、程的不同,不仅对软件开发和维护因为开发过程的不同,不仅对软件开发和维护的质量和劳动生产率有重大影响,而且实现时的质量和劳动生产率有重大影响,而且实现时的质量和劳动生产率有重大影响,而且实现时的质量和劳动生产率有重大影响,而且实现时所采用的方法、语言和工具也不完全相同所采用的方法、语言和工具也不完全相同所采用的方法、语言和工具也不完全相同所采用的方法、语言和工具也不完全相同反过来,讨论方法、语言和工具的对其质量和反过来,讨论方法、语言和工具的对其质量和反过来,讨论方法、语言和工具的对其质量和反过来,讨论方法、语言和工具的对其质量和劳动生产率的影响,也就没有依据了劳动生产率的影响,也就没有依据了劳
21、动生产率的影响,也就没有依据了劳动生产率的影响,也就没有依据了三、开发方法、语言和工具的选用三、开发方法、语言和工具的选用n n开发方法开发方法提供了构造软件的技术提供了构造软件的技术n n语言语言用以支持软件的分析、设计和用以支持软件的分析、设计和实现实现n n工具工具为开发方法和语言提供自动化为开发方法和语言提供自动化或半自动化的支持或半自动化的支持n n什么样的软件开发过程就有什么样什么样的软件开发过程就有什么样的方法、语言和工具的方法、语言和工具(一一)开发方法开发方法n n结构化开发方法结构化开发方法n n面向对象(面向对象(OO)的开发方法)的开发方法n n形式化开发方法形式化开发
22、方法1、形式化开发方法、形式化开发方法n n在软件工程中研究的形式化开发方法,不是计算在软件工程中研究的形式化开发方法,不是计算在软件工程中研究的形式化开发方法,不是计算在软件工程中研究的形式化开发方法,不是计算理论研究中的理论研究中的理论研究中的理论研究中的“符号十抽象公理化符号十抽象公理化符号十抽象公理化符号十抽象公理化”的数学方法,的数学方法,的数学方法,的数学方法,这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决n n我们介绍的形式化开发方法则是用于软件系统设我们介绍的形式化开发方法则是用于软件系统
23、设我们介绍的形式化开发方法则是用于软件系统设我们介绍的形式化开发方法则是用于软件系统设计中的数学建模技术计中的数学建模技术计中的数学建模技术计中的数学建模技术n n形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行为或特性进行的描述。为或特性进行的描述。为或特性进行的描述。为或特性进行的描述。描述的内容包括:功能特性、行为特性、结构特性和描述的内容包括:功能特性、行为特性、结构特性和描述的内容包括:功能特性、行为特性、结构特性和描述的内容包括:功能特性、行为特性、结构特性和时间
24、特性时间特性时间特性时间特性 形式化规格说明可以分为:操作类形式化规格说明可以分为:操作类形式化规格说明可以分为:操作类形式化规格说明可以分为:操作类(如有限状态机、如有限状态机、如有限状态机、如有限状态机、PetriPetri网网网网)、描述类、描述类、描述类、描述类(基于代数的基于代数的基于代数的基于代数的(如如如如Z Z语言语言语言语言VDMVDM语言语言语言语言)和基于逻辑的和基于逻辑的和基于逻辑的和基于逻辑的(如如如如RTLRTL、TRIO)TRIO)。2、结构化与、结构化与OO开发方法开发方法n n不讲全部,不讲全部,不讲全部,不讲全部,OOOO方法要比结构化方法好方法要比结构化方
25、法好方法要比结构化方法好方法要比结构化方法好n nMeyerMeyer提出的一个设计方法实现模块化能力的五提出的一个设计方法实现模块化能力的五提出的一个设计方法实现模块化能力的五提出的一个设计方法实现模块化能力的五条判断准则:条判断准则:条判断准则:条判断准则:(1)(1)分解性、分解性、分解性、分解性、(2)(2)组合性、组合性、组合性、组合性、(3)(3)可理解性、可理解性、可理解性、可理解性、(4)(4)连续性、连续性、连续性、连续性、(5)(5)保护性保护性保护性保护性n n 从这五条准则出发,从这五条准则出发,从这五条准则出发,从这五条准则出发,MeyerMeyer提出了模块结构五提
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 质量 质量保证 知识 分享
限制150内