《软件质量与质量保证优秀PPT.ppt》由会员分享,可在线阅读,更多相关《软件质量与质量保证优秀PPT.ppt(168页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、参考资料参考资料n nRoger S.Pressman:Software Engineering-A Practitioners Approach fifth edition,McGraw-Hill Companies,Inc.2001 n n 清华高校出版社清华高校出版社n n杨文龙,姚淑珍,吴芸:杨文龙,姚淑珍,吴芸:n n 软件工程,软件工程,n n 电子工业出版社,电子工业出版社,1997年年内容支配内容支配n n第六章第六章 软件质量与质量保证软件质量与质量保证n n第七章第七章 软件测试软件测试n n第八章第八章 软件维护软件维护内容支配内容支配n n第六章第六章 软件质量与质量保
2、证软件质量与质量保证n n第一节第一节 软件质量软件质量n n其次节其次节 软件质量保证软件质量保证n n第三节第三节 技术方法和工具的选用技术方法和工具的选用n n第四节第四节 正式技术评审的实施正式技术评审的实施n n第五节第五节 标准的执行标准的执行n n第六节第六节 文挡及其修改的限制文挡及其修改的限制n n第七节第七节 度量度量n n第八节第八节 SQA小组的活动小组的活动6.1 软件质量软件质量n n一、软件质量的定义一、软件质量的定义n n与明确确定的功能和性能需求与明确确定的功能和性能需求的一样性的一样性n n与明确成文的开发标准的一样与明确成文的开发标准的一样性性n n与全部
3、专业开发的软件所期望与全部专业开发的软件所期望的隐含的特性的一样性的隐含的特性的一样性软件质量因素软件质量因素n n二、软件质量因素二、软件质量因素n n可干脆度量的因素可干脆度量的因素n n只能间接度量的因素只能间接度量的因素n n度量和量度度量和量度n n度量度量(Measurement)n n度量是对开发过程进行检测,以提度量是对开发过程进行检测,以提高开发过程的质量和劳动生产率高开发过程的质量和劳动生产率n n量度量度(Metrics)n n量度是度量的结果或度量中一个项量度是度量的结果或度量中一个项的抽象表示,做为评价质量和劳动的抽象表示,做为评价质量和劳动生产率的基础生产率的基础量
4、度模型量度模型Boehm模型模型n nBoehm模型模型量度模型量度模型McCall模型模型n nMcCall模型模型量度模型量度模型ISO模型模型n nISO模型模型各因素间的影响各因素间的影响6.2 软件质量保证软件质量保证n n一、质量保证策略一、质量保证策略以检测为重点以检测为重点以过程管理为重点以过程管理为重点以新产品开发为重点以新产品开发为重点二、软件质量保证活动二、软件质量保证活动n n1 技术方法和工具的选用技术方法和工具的选用n n2 正式技术评审的实施正式技术评审的实施n n3 多层次软件测试多层次软件测试n n4 标准的执行标准的执行n n5 文档及其修改的限制文档及其修
5、改的限制n n6 度量和报告制度度量和报告制度n n7 记录和记录保存记录和记录保存n n8 SQA小组活动小组活动6.3 技术方法及方法的选用技术方法及方法的选用n n一、接受或不接受软件工程方法一、接受或不接受软件工程方法n n软件工程从软件工程从1968年提出至今,软件工程中年提出至今,软件工程中很多技术已变得成熟。软件工程学问体很多技术已变得成熟。软件工程学问体(SWEBOK)已被定义,软件工程多个部已被定义,软件工程多个部分已有分已有ISO标准,较软件工程的发展趋势标准,较软件工程的发展趋势和新技术已初显端貌。和新技术已初显端貌。n n问题:是否真正驾驭软件工程的实质问题:是否真正驾
6、驭软件工程的实质(运用运用系统的、规范的和可定量的方法开发、运系统的、规范的和可定量的方法开发、运行和维护软件行和维护软件)?并在实际工作中付诸实施!?并在实际工作中付诸实施!当然,软件工程也不是包医百病的灵丹妙当然,软件工程也不是包医百病的灵丹妙药!目前的主要问题是很多软件企业不遵药!目前的主要问题是很多软件企业不遵循软件工程的思想操作。循软件工程的思想操作。二、开发过程的选用二、开发过程的选用n n1、瀑布模型、瀑布模型n n2、瀑布模型的改进与延长、瀑布模型的改进与延长n n(1)原型原型n n(2)螺旋模型螺旋模型n n(3)4GTn n(4)混合模型混合模型n n3、迭代、增量到统一
7、的软件开发过程、迭代、增量到统一的软件开发过程n n4、形式化开发模型、形式化开发模型1、瀑布模型、瀑布模型n n提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程n n问题:问题:问题:问题:n n要求需求一起先就提正确而且不变;要求需求一起先就提正确而且不变;要求需求一起先就提正确而且不变;要求需求一起先就提正确而且不变;n n开发人员相互等待导致开发工作的堵塞现象,尤开发人员相互等待导致开发工作的堵塞现象,尤开发人员相互等待导致开发工作的堵塞现象,尤开发人员相互等待导致开
8、发工作的堵塞现象,尤其在起先和结束阶段。其在起先和结束阶段。其在起先和结束阶段。其在起先和结束阶段。n n在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的位置。位置。位置。位置。n n它供应了一个模板,使得分析、设计、编码、测它供应了一个模板,使得分析、设计、编码、测它供应了一个模板,使得分析、设计、编码、测它供应了一个模板,使得分析、设计、编码、测试和维护可在该模板指导下应用,仍旧是软件工试和维护可在该模板指导下应用,仍旧是软件工试和维护可在该模板指导下应用,仍旧是软件工试
9、和维护可在该模板指导下应用,仍旧是软件工程中应用最泛的过程模型。程中应用最泛的过程模型。程中应用最泛的过程模型。程中应用最泛的过程模型。n n在科学和工程计算、实时限制及嵌入式系统中应在科学和工程计算、实时限制及嵌入式系统中应在科学和工程计算、实时限制及嵌入式系统中应在科学和工程计算、实时限制及嵌入式系统中应用得很好。用得很好。用得很好。用得很好。瀑布模型瀑布模型2、瀑布模型的改进与延长、瀑布模型的改进与延长n n(1)原型原型n n原型开发的确是解决需求的不确定性原型开发的确是解决需求的不确定性和可变性提出的一种好方法。和可变性提出的一种好方法。n n原型分抛弃式原型、演化式原型和增原型分抛
10、弃式原型、演化式原型和增量式原型量式原型n n抛弃式原型的最大用处是协助分析和抛弃式原型的最大用处是协助分析和确定用户需求,及解决系统任何部位确定用户需求,及解决系统任何部位的不确定性问题;的不确定性问题;n n演化式原型可以作为一种开发方法,演化式原型可以作为一种开发方法,利用演化成为最终系统;利用演化成为最终系统;n n增量式原型开发可以作为瀑布模型开增量式原型开发可以作为瀑布模型开发的补充。发的补充。原型原型瀑布模型的改进与延长瀑布模型的改进与延长n n(2)螺旋模型螺旋模型n n也是一个演化过程模型,综合也是一个演化过程模型,综合了瀑布模型和原型的优点,成了瀑布模型和原型的优点,成功与
11、否很大程度上取决于风险功与否很大程度上取决于风险分析技术分析技术螺旋模型螺旋模型瀑布模型的改进与延长瀑布模型的改进与延长n n(3)4GT(3)4GTn n其最大特点是拥有一组工具,每个工具都能使软件开发人其最大特点是拥有一组工具,每个工具都能使软件开发人其最大特点是拥有一组工具,每个工具都能使软件开发人其最大特点是拥有一组工具,每个工具都能使软件开发人员在高层次上定义软件的某些特性,并把开发人员定义的员在高层次上定义软件的某些特性,并把开发人员定义的员在高层次上定义软件的某些特性,并把开发人员定义的员在高层次上定义软件的某些特性,并把开发人员定义的这些特性自动地生成源代码。所以,这种方法可以
12、大大地这些特性自动地生成源代码。所以,这种方法可以大大地这些特性自动地生成源代码。所以,这种方法可以大大地这些特性自动地生成源代码。所以,这种方法可以大大地削减软件开发的时间,目前主要用于事务处理应用程序。削减软件开发的时间,目前主要用于事务处理应用程序。削减软件开发的时间,目前主要用于事务处理应用程序。削减软件开发的时间,目前主要用于事务处理应用程序。n n4GT4GT实现成为产品以后,要进行彻底的测试,还须要数据实现成为产品以后,要进行彻底的测试,还须要数据实现成为产品以后,要进行彻底的测试,还须要数据实现成为产品以后,要进行彻底的测试,还须要数据库的支持。对于一些较大的应用程序,必需先制
13、定出一个库的支持。对于一些较大的应用程序,必需先制定出一个库的支持。对于一些较大的应用程序,必需先制定出一个库的支持。对于一些较大的应用程序,必需先制定出一个系统的策略,否则难以完成。系统的策略,否则难以完成。系统的策略,否则难以完成。系统的策略,否则难以完成。n n必需指出的,运用必需指出的,运用必需指出的,运用必需指出的,运用4GT4GT也会产生与瀑布模型开发软件所遇也会产生与瀑布模型开发软件所遇也会产生与瀑布模型开发软件所遇也会产生与瀑布模型开发软件所遇到的同样的问题。假如能与基于构件的开发方法结合起来,到的同样的问题。假如能与基于构件的开发方法结合起来,到的同样的问题。假如能与基于构件
14、的开发方法结合起来,到的同样的问题。假如能与基于构件的开发方法结合起来,很可能将成为软件开发的一种主流方法。很可能将成为软件开发的一种主流方法。很可能将成为软件开发的一种主流方法。很可能将成为软件开发的一种主流方法。4GT瀑布模型的改进与延长瀑布模型的改进与延长n n(4)混合模型混合模型n n目前软件企业一般都接受混合模型开目前软件企业一般都接受混合模型开发软件。发软件。n n它是把瀑布、原型、螺旋和它是把瀑布、原型、螺旋和4GT开发开发模式组合起来,它允许一个项目可以模式组合起来,它允许一个项目可以依据项目特征和要求及企业自身的开依据项目特征和要求及企业自身的开发条件发条件(技术的和管理的
15、技术的和管理的)选择一条最选择一条最有效的路径。有效的路径。n n好处:给企业管理者和开发者供应了好处:给企业管理者和开发者供应了一个舞台,使每个模型的特长都得到一个舞台,使每个模型的特长都得到发挥。但由此对企业管理和技术都提发挥。但由此对企业管理和技术都提出了更高要求。出了更高要求。混合模型混合模型3、迭代、增量到统一的开发过程、迭代、增量到统一的开发过程n n自从自从OO技术于技术于90年头逐步走年头逐步走向好用以后,才为真正的迭代、向好用以后,才为真正的迭代、增量到统一的开发过程奠定了增量到统一的开发过程奠定了坚实的技术和组织基础;也为坚实的技术和组织基础;也为重用技术和基于构件的开发供
16、重用技术和基于构件的开发供应了条件。应了条件。演化演化迭代增量迭代增量统一的软件开发过程统一的软件开发过程基于构件的开发基于构件的开发4、形式化开发模型、形式化开发模型n n能够借助一种严密的、数学的符号规格说能够借助一种严密的、数学的符号规格说明、开发和验证一个基于计算机的系统明、开发和验证一个基于计算机的系统n n好处:能够消退在运用其它软件工程模式好处:能够消退在运用其它软件工程模式中难以克服的诸如二义性、不完整性和不中难以克服的诸如二义性、不完整性和不一样性等问题,不是通过特地支配的评审,一样性等问题,不是通过特地支配的评审,而是通过数学分析的应用。而是通过数学分析的应用。n n尽管,
17、当前对于大型困难的软件系统要进尽管,当前对于大型困难的软件系统要进行完整的形式化开发,还不现实,也不行行完整的形式化开发,还不现实,也不行能。但用于大型困难系统的一些关键部位,能。但用于大型困难系统的一些关键部位,的确是一种有效地好用策略的确是一种有效地好用策略开发过程总结开发过程总结n n软件开发过程的接受,主要确定于你开发软件开发过程的接受,主要确定于你开发的产品:的产品:n n不同的产品应有不同的过程,不能只从技不同的产品应有不同的过程,不能只从技术角度来评价它们的优劣!如一个科学、术角度来评价它们的优劣!如一个科学、工程计算系统可用瀑布模型或形式化开发工程计算系统可用瀑布模型或形式化开
18、发模型;一个事务处理系统可用原型;而一模型;一个事务处理系统可用原型;而一个个Web站点的创建可用演化模型站点的创建可用演化模型n n本部分内容极为重要:本部分内容极为重要:n n因为开发过程的不同,不仅对软件开发和因为开发过程的不同,不仅对软件开发和维护的质量和劳动生产率有重大影响,而维护的质量和劳动生产率有重大影响,而且实现时所接受的方法、语言和工具也不且实现时所接受的方法、语言和工具也不完全相同完全相同n n反过来,探讨方法、语言和工具的对其质反过来,探讨方法、语言和工具的对其质量和劳动生产率的影响,也就没有依据了量和劳动生产率的影响,也就没有依据了三、开发方法、语言和工具的选用三、开发
19、方法、语言和工具的选用n n开发方法供应了构造软件的技术开发方法供应了构造软件的技术n n语言用以支持软件的分析、设计和语言用以支持软件的分析、设计和实现实现n n工具为开发方法和语言供应自动化工具为开发方法和语言供应自动化或半自动化的支持或半自动化的支持n n什么样的软件开发过程就有什么样什么样的软件开发过程就有什么样的方法、语言和工具的方法、语言和工具(一一)开发方法开发方法n n结构化开发方法结构化开发方法n n面对对象(面对对象(OO)的开发方法)的开发方法n n形式化开发方法形式化开发方法1、形式化开发方法、形式化开发方法n n在软件工程中探讨的形式化开发方法,不是计算在软件工程中探
20、讨的形式化开发方法,不是计算在软件工程中探讨的形式化开发方法,不是计算在软件工程中探讨的形式化开发方法,不是计算理论探讨中的理论探讨中的理论探讨中的理论探讨中的“符号十抽象公理化符号十抽象公理化符号十抽象公理化符号十抽象公理化”的数学方法,的数学方法,的数学方法,的数学方法,这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决n n我们介绍的形式化开发方法则是用于软件系统设我们介绍的形式化开发方法则是用于软件系统设我们介绍的形式化开发方法则是用于软件系统设我们介绍的形式化开发方法则是用于软件系统设计中的数学建模
21、技术计中的数学建模技术计中的数学建模技术计中的数学建模技术n n形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行为或特性进行的描述。为或特性进行的描述。为或特性进行的描述。为或特性进行的描述。n n描述的内容包括:功能特性、行为特性、结构特描述的内容包括:功能特性、行为特性、结构特描述的内容包括:功能特性、行为特性、结构特描述的内容包括:功能特性、行为特性、结构特性和时间特性性和时间特性性和时间特性性和时间特性n n形式化规格说明可以分为:操作类形式化规格说明可以分为:操作类
22、形式化规格说明可以分为:操作类形式化规格说明可以分为:操作类(如有限状态机、如有限状态机、如有限状态机、如有限状态机、PetriPetri网网网网)、描述类、描述类、描述类、描述类(基于代数的基于代数的基于代数的基于代数的(如如如如Z Z语言语言语言语言VDMVDM语语语语言言言言)和基于逻辑的和基于逻辑的和基于逻辑的和基于逻辑的(如如如如RTLRTL、TRIO)TRIO)。2、结构化与、结构化与OO开发方法开发方法n n不讲全部,不讲全部,不讲全部,不讲全部,OOOO方法要比结构化方法好方法要比结构化方法好方法要比结构化方法好方法要比结构化方法好n nMeyerMeyer提出的一个设计方法实
23、现模块化实力的五提出的一个设计方法实现模块化实力的五提出的一个设计方法实现模块化实力的五提出的一个设计方法实现模块化实力的五条推断准则:条推断准则:条推断准则:条推断准则:n n(1)(1)分解性、分解性、分解性、分解性、(2)(2)组合性、组合性、组合性、组合性、(3)(3)可理解性、可理解性、可理解性、可理解性、(4)(4)连续连续连续连续性、性、性、性、(5)(5)爱护性爱护性爱护性爱护性n n 从这五条准则动身,从这五条准则动身,从这五条准则动身,从这五条准则动身,MeyerMeyer提出了模块结构五提出了模块结构五提出了模块结构五提出了模块结构五条基本设计原则:条基本设计原则:条基本
24、设计原则:条基本设计原则:n n(1)(1)语言语言语言语言(linguistic)(linguistic)模块单元、模块单元、模块单元、模块单元、(2)(2)少的接口、少的接口、少的接口、少的接口、(3)(3)小的接口小的接口小的接口小的接口(弱的耦合弱的耦合弱的耦合弱的耦合)、(4)(4)明确的接口、明确的接口、明确的接口、明确的接口、(5)(5)信息隐藏信息隐藏信息隐藏信息隐藏n n这些设计原则适用于任何设计方法。但我们可以这些设计原则适用于任何设计方法。但我们可以这些设计原则适用于任何设计方法。但我们可以这些设计原则适用于任何设计方法。但我们可以看到:看到:看到:看到:OOOO设计方法
25、比任何其它方法都更能有效设计方法比任何其它方法都更能有效设计方法比任何其它方法都更能有效设计方法比任何其它方法都更能有效地实现这些原则。尽管地实现这些原则。尽管地实现这些原则。尽管地实现这些原则。尽管OOOO对象中的数据和操作对象中的数据和操作对象中的数据和操作对象中的数据和操作仍以结构化的方法为基础来实现仍以结构化的方法为基础来实现仍以结构化的方法为基础来实现仍以结构化的方法为基础来实现(二二)语言语言n n1、规格说明语言、规格说明语言n n2、设计语言、设计语言n n3、原型开发语言、原型开发语言n n4、编程语言、编程语言1、规格说明语言、规格说明语言n n软件规格说明语言软件规格说明
26、语言(specification languages)n n记录软件规格说明记录软件规格说明n n它是对软件系统或它的一个构件行为的黑它是对软件系统或它的一个构件行为的黑盒子描述盒子描述n n为困难的行为供应了一种简洁的抽象描述。为困难的行为供应了一种简洁的抽象描述。n n黑盒子描述:是依据进出黑盒子边界的数黑盒子描述:是依据进出黑盒子边界的数据来说明的,它不涉及黑盒子内部的机制据来说明的,它不涉及黑盒子内部的机制n n在第五章的形式化开发方法中介绍了这种在第五章的形式化开发方法中介绍了这种语言语言(基于代数的和基于逻辑的基于代数的和基于逻辑的)。n n好处是它的精确性和自动化的潜在性。好处是
27、它的精确性和自动化的潜在性。2、设计语言、设计语言n n软件设计语言软件设计语言软件设计语言软件设计语言(design languages)(design languages)n n记录软件设计。它是对软件系统或构件的一种白记录软件设计。它是对软件系统或构件的一种白记录软件设计。它是对软件系统或构件的一种白记录软件设计。它是对软件系统或构件的一种白盒子描述盒子描述盒子描述盒子描述n n也就是把一个构件分解为一些更低层构件的描述也就是把一个构件分解为一些更低层构件的描述也就是把一个构件分解为一些更低层构件的描述也就是把一个构件分解为一些更低层构件的描述n n并依据数据和限制来定义它们之间的相互联
28、系并依据数据和限制来定义它们之间的相互联系并依据数据和限制来定义它们之间的相互联系并依据数据和限制来定义它们之间的相互联系n n设计语言与规格说明语言的区分:设计语言与规格说明语言的区分:设计语言与规格说明语言的区分:设计语言与规格说明语言的区分:n n设计语言用于定义分层的结构和构件间相互联系设计语言用于定义分层的结构和构件间相互联系设计语言用于定义分层的结构和构件间相互联系设计语言用于定义分层的结构和构件间相互联系的描述的描述的描述的描述n n而规格说明语言用于定又每个构件的接口而规格说明语言用于定又每个构件的接口而规格说明语言用于定又每个构件的接口而规格说明语言用于定又每个构件的接口n
29、n设计语言与编程语言的区分:设计语言与编程语言的区分:设计语言与编程语言的区分:设计语言与编程语言的区分:n n设计语言的主要目的是文档设计语言的主要目的是文档设计语言的主要目的是文档设计语言的主要目的是文档(描述算法和数据结构,描述算法和数据结构,描述算法和数据结构,描述算法和数据结构,还要描述证明、假设和约定还要描述证明、假设和约定还要描述证明、假设和约定还要描述证明、假设和约定)n n编程语言则要包含全部的以获得一个有效的可执编程语言则要包含全部的以获得一个有效的可执编程语言则要包含全部的以获得一个有效的可执编程语言则要包含全部的以获得一个有效的可执行系统行系统行系统行系统3、原型开发语
30、言、原型开发语言n n原型开发语言原型开发语言原型开发语言原型开发语言(prototyping languages)(prototyping languages)n n运用黑盒子和白盒子的描述来定义一个系统的可运用黑盒子和白盒子的描述来定义一个系统的可运用黑盒子和白盒子的描述来定义一个系统的可运用黑盒子和白盒子的描述来定义一个系统的可执行模型执行模型执行模型执行模型n n但是原型开发语言不要求给出系统各构件的具体但是原型开发语言不要求给出系统各构件的具体但是原型开发语言不要求给出系统各构件的具体但是原型开发语言不要求给出系统各构件的具体算法,只要它是可描述的和可执行的即可算法,只要它是可描述的
31、和可执行的即可算法,只要它是可描述的和可执行的即可算法,只要它是可描述的和可执行的即可n n原型开发语言与编程语言的区分:原型开发语言与编程语言的区分:原型开发语言与编程语言的区分:原型开发语言与编程语言的区分:n n编程语言经过优化,能够生成一个时空效率都很编程语言经过优化,能够生成一个时空效率都很编程语言经过优化,能够生成一个时空效率都很编程语言经过优化,能够生成一个时空效率都很高的工作系统高的工作系统高的工作系统高的工作系统n n原型开发语言可在牺牲执行效率的状况下,能支原型开发语言可在牺牲执行效率的状况下,能支原型开发语言可在牺牲执行效率的状况下,能支原型开发语言可在牺牲执行效率的状况
32、下,能支持简洁和抽象系统的描述、信息的局部化、重用持简洁和抽象系统的描述、信息的局部化、重用持简洁和抽象系统的描述、信息的局部化、重用持简洁和抽象系统的描述、信息的局部化、重用和适应性,它应便利地纪录规格说明和设计信息,和适应性,它应便利地纪录规格说明和设计信息,和适应性,它应便利地纪录规格说明和设计信息,和适应性,它应便利地纪录规格说明和设计信息,并以其最终产品必需是可执行的为限制条件并以其最终产品必需是可执行的为限制条件并以其最终产品必需是可执行的为限制条件并以其最终产品必需是可执行的为限制条件n n原型开发是一种快速构造可执行软件系统模型的原型开发是一种快速构造可执行软件系统模型的原型开
33、发是一种快速构造可执行软件系统模型的原型开发是一种快速构造可执行软件系统模型的方法,这种模型叫做软件快速原型方法,这种模型叫做软件快速原型方法,这种模型叫做软件快速原型方法,这种模型叫做软件快速原型原型开发语言(续)原型开发语言(续)n n如何解决原型语言的可执行问题如何解决原型语言的可执行问题n n一种基于元编程,是把原型开发语一种基于元编程,是把原型开发语言看成是现有软件的改编和相互连言看成是现有软件的改编和相互连接,事实上是一种重用技术接,事实上是一种重用技术n n另一种为可执行规格说明,它的基另一种为可执行规格说明,它的基本思想是:假如规格说明是形式化本思想是:假如规格说明是形式化的,
34、而且具有操作语义,那么就有的,而且具有操作语义,那么就有可能构造一个能干脆执行的系统可能构造一个能干脆执行的系统4、编程语言、编程语言n n编程语言编程语言(programming languages)n n记录编程记录编程n n编程就是用编程语言把对软件的设编程就是用编程语言把对软件的设计表达式翻译为计算机能够计表达式翻译为计算机能够“懂得懂得”的形式的形式n n这是计算机发展至今运用的最主要这是计算机发展至今运用的最主要的方法,也是大家最熟悉的语言的方法,也是大家最熟悉的语言编程语言(续)编程语言(续)n n评价:不算汇编语言,现在已开发出各种评价:不算汇编语言,现在已开发出各种用途的高级
35、语言有用途的高级语言有400-500种,常用的语种,常用的语言近言近30种种n n1.一般的应用领域一般的应用领域n n2.算法和计算的困难性算法和计算的困难性n n3.软件的运行环境软件的运行环境n n4.性能考虑性能考虑n n5.数据结构的困难性数据结构的困难性n n6.软件开发人员的学问软件开发人员的学问n n7.一个好的编译器或交义编译器的可用性。一个好的编译器或交义编译器的可用性。编程语言(续)编程语言(续)n n选择:对于一个特地项目的编程语选择:对于一个特地项目的编程语言的选择必需考虑:言的选择必需考虑:n n工程特性工程特性n n易于把设计翻译为代码、编译器效易于把设计翻译为代
36、码、编译器效率高、源代码的可移植性、开发工率高、源代码的可移植性、开发工具的可用性、源代码的可维护性都具的可用性、源代码的可维护性都好好n n心理特性:心理特性:n n一样性、无二义性、紧凑性、局域一样性、无二义性、紧凑性、局域性、线性性、线性编程语言(续)编程语言(续)n n事实上,项目的应用领域是语言选择的最重要的事实上,项目的应用领域是语言选择的最重要的事实上,项目的应用领域是语言选择的最重要的事实上,项目的应用领域是语言选择的最重要的准则。因为,每一个应用领域都可以选择标准语准则。因为,每一个应用领域都可以选择标准语准则。因为,每一个应用领域都可以选择标准语准则。因为,每一个应用领域都
37、可以选择标准语言:言:言:言:n n1.1.系统软件:系统软件:系统软件:系统软件:C Cn n2.2.实时应用:实时应用:实时应用:实时应用:C C、AdaAda、汇编、汇编、汇编、汇编n n3.3.商用语言:商用语言:商用语言:商用语言:CobolCobol已让位于已让位于已让位于已让位于4GL4GLn n4.4.工程和科学领域:工程和科学领域:工程和科学领域:工程和科学领域:FortranFortran仍旧是主要语言仍旧是主要语言仍旧是主要语言仍旧是主要语言n n5.5.嵌入式软件:同系统软件和实时软件嵌入式软件:同系统软件和实时软件嵌入式软件:同系统软件和实时软件嵌入式软件:同系统软件
38、和实时软件n n6.6.个人计算机:已很少用个人计算机:已很少用个人计算机:已很少用个人计算机:已很少用BasicBasic,主要用,主要用,主要用,主要用C Cn n7.7.人工智能应用:更多接受人工智能应用:更多接受人工智能应用:更多接受人工智能应用:更多接受LispLisp、PrologPrologn n8.8.网络软件:网络软件:网络软件:网络软件:JavaJavan n9.9.学习语言:学习语言:学习语言:学习语言:PascalPascaln n现在市场上运用的不是上述语言,就是上述语言现在市场上运用的不是上述语言,就是上述语言现在市场上运用的不是上述语言,就是上述语言现在市场上运用
39、的不是上述语言,就是上述语言的改进、扩展或变种的改进、扩展或变种的改进、扩展或变种的改进、扩展或变种语言总结语言总结n n应当看到,随着规格说明语言、设计应当看到,随着规格说明语言、设计语言和原型开发语言,以及软件科技语言和原型开发语言,以及软件科技的发展,传统的编程语言的作用正在的发展,传统的编程语言的作用正在被缩小和代替。假如有一天,计算机被缩小和代替。假如有一天,计算机能够做到对文字、图形、图像和语言能够做到对文字、图形、图像和语言的完全识别,那么将会变更我们对整的完全识别,那么将会变更我们对整个编程语言的理解。但是,今日我们个编程语言的理解。但是,今日我们编程运用的大部分方法,仍旧接受
40、传编程运用的大部分方法,仍旧接受传统的编程语言统的编程语言(三三)工具工具n n任何一种开发模型,假如没有工具与任何一种开发模型,假如没有工具与环境的支持,再好的方法和语言也难环境的支持,再好的方法和语言也难以做好以做好n n如何选择一个好的工具和环境?按现如何选择一个好的工具和环境?按现代软件工程的要求,一般应考虑以下代软件工程的要求,一般应考虑以下三个方面:三个方面:n n1.一个工具集一个工具集n n2.一个用户界面一个用户界面n n3.一个数据库一个数据库NIST/ECMA参考模型参考模型6.4 正式技术评审的实施正式技术评审的实施n n软件评审是一个软件评审是一个“过滤器过滤器”n
41、n正式技术评审正式技术评审(FTR,Formal Technical Reviews)有时有时称为称为“走查走查(walkthrough)”一、软件缺陷的费用影响一、软件缺陷的费用影响n nFTR的一个明显好处是:可以早期发觉软的一个明显好处是:可以早期发觉软件缺陷,以便能在软件工程过程的下一步件缺陷,以便能在软件工程过程的下一步之前得到改正之前得到改正n n很多探讨表明:很多探讨表明:50-65%的缺陷来自设计,的缺陷来自设计,而而FTR能够发觉设计缺陷中能够发觉设计缺陷中75%的缺陷的缺陷n n一些大型系统的相对成本数据说明:假如一些大型系统的相对成本数据说明:假如在设计期间发觉并改正一个
42、错误所需的费在设计期间发觉并改正一个错误所需的费用为用为1的话,在测试即将起先时的费用为的话,在测试即将起先时的费用为6.5,在测试期间为,在测试期间为15,而在交付运用后,而在交付运用后达到达到60-100二、缺陷的扩大和解除二、缺陷的扩大和解除n n缺陷扩大模型缺陷扩大模型无评审的缺陷扩大模型无评审的缺陷扩大模型有评审的缺陷扩大模型有评审的缺陷扩大模型三、正式技术评审三、正式技术评审(FTR)n nFTR的目标:的目标:n n1.发觉软件在功能、逻辑和实现上的错误发觉软件在功能、逻辑和实现上的错误n n2.验证评审的软件符合需求验证评审的软件符合需求n n3.保证软件依据已确定的标准表述保
43、证软件依据已确定的标准表述n n4.使软件以统一方式开发使软件以统一方式开发 n n5.使项目更易于管理使项目更易于管理n nFTR可以作为一个训练基地,使初级工程可以作为一个训练基地,使初级工程人员视察到软件分析、设计和实现不同的人员视察到软件分析、设计和实现不同的处理方法。也能促进人们变得更加熟悉处理方法。也能促进人们变得更加熟悉正式技术评审正式技术评审(续续)n n(一一)评审会议评审会议n n35人参与人参与n n会前准备,每个人工作量不超过会前准备,每个人工作量不超过2小时小时n n会议时间会议时间2小时小时n n评审结束时,必需作出确定评审结束时,必需作出确定n n接受该产品,不再
44、作进一步修改接受该产品,不再作进一步修改n n该产品错误严峻,拒绝接受该产品错误严峻,拒绝接受(改正改正后也必需进行另一次评审后也必需进行另一次评审)n n短暂接受该产品短暂接受该产品(小错误已经发觉,小错误已经发觉,必需改正,但没有必要进行另外的必需改正,但没有必要进行另外的评审评审)正式技术评审正式技术评审(续续)n n(二二)评审报告和记录保存评审报告和记录保存n n报告报告n n评审了什么产品?评审了什么产品?n n谁评审的?谁评审的?n n发觉了什么?结论是什么?发觉了什么?结论是什么?n n记录:记录:n n确定该产品中问题的大小确定该产品中问题的大小n n成为生产者修改错误时的行
45、动项的校成为生产者修改错误时的行动项的校对表对表n n 还要建立一个跟踪过程,以保证问题还要建立一个跟踪过程,以保证问题列表中的项都被正确的改正了列表中的项都被正确的改正了正式技术评审正式技术评审(续续)n n(三三)评审指南评审指南n n评审产品,不评审生产者评审产品,不评审生产者n n建立一个议事日程,并遵循它建立一个议事日程,并遵循它n n限制争论和辯驳限制争论和辯驳n n说明问题大小,不要企图解决全部说明问题大小,不要企图解决全部提出的问题提出的问题n n作记录作记录n n限制参与人数和坚持充分准备限制参与人数和坚持充分准备n n为可能评审的产品开发一张检查表为可能评审的产品开发一张检
46、查表n n为为FTR支配资源和时辰表支配资源和时辰表n n对全部的评审人员进行有意义的培对全部的评审人员进行有意义的培训训n n评审你早期的评审评审你早期的评审6.5 标准的执行标准的执行n n产品质量是企业的生命,标准是产品产品质量是企业的生命,标准是产品的基础,没有标准,就无产品质量可的基础,没有标准,就无产品质量可言言n n软件工程国际标准体系软件工程国际标准体系ISO/IEC的软件工程标准体系结构框架的软件工程标准体系结构框架ISO/IEC 12207和和ISO/IEC TR15504ISO 9000-3(1993)/GB/T 19000.3(1994)CMM(1)标准的类别标准的类别
47、n nStandard(标准标准)n nSpecification(规范规范)n nCriterion(准则准则)n nGuidance(指南指南)n nConvention(约定约定)(2)标准的范围标准的范围(1)n n国际:国际:ISO(国际标准化组织国际标准化组织)n n区域:区域:NATO(北大西洋组织北大西洋组织)CJK(中、日、韩中、日、韩)n n国家:国家:GB(中国中国)ANSI(美国国家标准协会美国国家标准协会)FIPS(美国商务部国家标准局联邦美国商务部国家标准局联邦信息处理标准信息处理标准)BS(英国国家标准英国国家标准)DIN(德国国家标准德国国家标准)JIS(日本工
48、业标准日本工业标准)卜(2)标准的范围标准的范围(2)n n行业:行业:IEEE(美国电气和电子工程师美国电气和电子工程师协会协会)ACM(美国计算机协会美国计算机协会)DOD(美国国防部美国国防部)MIL-standard(美国军用标美国军用标准准)HB(中国航空标准中国航空标准)GJB(中国军用标准中国军用标准)n n厂标:厂标:IBM(国际商业机器公司国际商业机器公司)小(3)中国与中国与SE有关的国家标准有关的国家标准n n基础:基础:基础:基础:GB/T 11457-89(SEGB/T 11457-89(SE术语术语术语术语)n n开发:开发:开发:开发:GB 8566-88(GB
49、8566-88(计算机软件开发规范计算机软件开发规范计算机软件开发规范计算机软件开发规范)n n文档:文档:文档:文档:GB 8567-88(GB 8567-88(计算机软件产品开发文件编制指南计算机软件产品开发文件编制指南计算机软件产品开发文件编制指南计算机软件产品开发文件编制指南)n n GB 9385-88(GB 9385-88(计算机软件需求说明文件编制计算机软件需求说明文件编制计算机软件需求说明文件编制计算机软件需求说明文件编制规范规范规范规范)n n GB 9386-88(GB 9386-88(计算机软件测试文件编制规范计算机软件测试文件编制规范计算机软件测试文件编制规范计算机软件
50、测试文件编制规范)n n质量:质量:质量:质量:GB/T 12504-90(GB/T 12504-90(计算机软件质量保证支配规范计算机软件质量保证支配规范计算机软件质量保证支配规范计算机软件质量保证支配规范)n n管理:管理:管理:管理:GB/T 12605-90(GB/T 12605-90(计算机软件配置支配规范计算机软件配置支配规范计算机软件配置支配规范计算机软件配置支配规范)n n 90 90年以后,国家标准与国际标准从等效原则改为等年以后,国家标准与国际标准从等效原则改为等年以后,国家标准与国际标准从等效原则改为等年以后,国家标准与国际标准从等效原则改为等同原则,均接受双编码。同原则