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

    软件质量与质量保证知识分享.ppt

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

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

    软件质量与质量保证知识分享.ppt

    软件质量与质量保证内容安排内容安排n n第六章第六章 软件质量与质量保证软件质量与质量保证第一节第一节 软件质量软件质量第二节第二节 软件质量保证软件质量保证第三节第三节 技术方法和工具的选用技术方法和工具的选用第四节第四节 正式技术评审的实施正式技术评审的实施第五节第五节 标准的执行标准的执行第六节第六节 文挡及其修改的控制文挡及其修改的控制第七节第七节 度量度量第八节第八节 SQA小组的活动小组的活动6.1 软件质量软件质量n n一、软件质量的定义一、软件质量的定义与明确确定的功能和性能需求的与明确确定的功能和性能需求的一致性一致性与明确成文的开发标准的一致性与明确成文的开发标准的一致性与所有专业开发的软件所期望的与所有专业开发的软件所期望的隐含的特性的一致性隐含的特性的一致性软件质量因素软件质量因素n n二、软件质量因素二、软件质量因素可直接度量的因素可直接度量的因素只能间接度量的因素只能间接度量的因素度量和量度度量和量度n n度量度量(Measurement)度量是对开发过程进行检测,以提高开发度量是对开发过程进行检测,以提高开发度量是对开发过程进行检测,以提高开发度量是对开发过程进行检测,以提高开发过程的质量和劳动生产率过程的质量和劳动生产率过程的质量和劳动生产率过程的质量和劳动生产率n n量度量度(Metrics)量度是度量的结果或度量中一个项的抽象量度是度量的结果或度量中一个项的抽象量度是度量的结果或度量中一个项的抽象量度是度量的结果或度量中一个项的抽象表示,做为评价质量和劳动生产率的基表示,做为评价质量和劳动生产率的基表示,做为评价质量和劳动生产率的基表示,做为评价质量和劳动生产率的基础础础础量度模型量度模型Boehm模型模型n nBoehm模型模型量度模型量度模型McCall模型模型n nMcCall模型模型量度模型量度模型ISO模型模型n nISO模型模型各因素间的影响各因素间的影响6.2 软件质量保证软件质量保证n n一、质量保证策略一、质量保证策略以检测为重点以检测为重点以过程管理为重点以过程管理为重点以新产品开发为重点以新产品开发为重点二、软件质量保证活动二、软件质量保证活动n n1 技术方法和工具的选用技术方法和工具的选用n n2 正式技术评审的实施正式技术评审的实施n n3 多层次软件测试多层次软件测试n n4 标准的执行标准的执行n n5 文档及其修改的控制文档及其修改的控制n n6 度量和报告制度度量和报告制度n n7 记录和记录保存记录和记录保存n n8 SQA小组活动小组活动6.3 技术方法及方法的选用技术方法及方法的选用n n一、采用或不采用软件工程方法一、采用或不采用软件工程方法软件工程从软件工程从软件工程从软件工程从19681968年提出至今,软件工程中年提出至今,软件工程中年提出至今,软件工程中年提出至今,软件工程中许许许许多多多多技术已变得成熟。软件工程知识体技术已变得成熟。软件工程知识体技术已变得成熟。软件工程知识体技术已变得成熟。软件工程知识体(SWEBOK)(SWEBOK)已被定义,软件工程多个部分已已被定义,软件工程多个部分已已被定义,软件工程多个部分已已被定义,软件工程多个部分已有有有有ISOISO标准,较软件工程的发展趋势和新技术标准,较软件工程的发展趋势和新技术标准,较软件工程的发展趋势和新技术标准,较软件工程的发展趋势和新技术已初显端貌。已初显端貌。已初显端貌。已初显端貌。问题:是否真正掌握软件工程的实质问题:是否真正掌握软件工程的实质问题:是否真正掌握软件工程的实质问题:是否真正掌握软件工程的实质(运用系统运用系统运用系统运用系统的的的的、规范的和可定量的方法开发、运行和维护规范的和可定量的方法开发、运行和维护规范的和可定量的方法开发、运行和维护规范的和可定量的方法开发、运行和维护软件软件软件软件)?并在实际工作中付诸实施!当然,软?并在实际工作中付诸实施!当然,软?并在实际工作中付诸实施!当然,软?并在实际工作中付诸实施!当然,软件工程也不是包医百病的灵丹妙药!目前的主件工程也不是包医百病的灵丹妙药!目前的主件工程也不是包医百病的灵丹妙药!目前的主件工程也不是包医百病的灵丹妙药!目前的主要问题是要问题是要问题是要问题是许许许许多软件企业不遵循软件工程的思想多软件企业不遵循软件工程的思想多软件企业不遵循软件工程的思想多软件企业不遵循软件工程的思想操作。操作。操作。操作。二、开发过程的选用二、开发过程的选用n n1、瀑布模型、瀑布模型n n2、瀑布模型的改进与延伸、瀑布模型的改进与延伸(1)原型原型(2)螺旋模型螺旋模型(3)4GT(4)混合模型混合模型n n3、迭代、增量到统一的软件开发过程、迭代、增量到统一的软件开发过程n n4、形式化开发模型、形式化开发模型1、瀑布模型、瀑布模型n n提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程提出最早,这是一种系统的、分阶段的线性过程n n问题:问题:问题:问题:要求需求一开始就提正确而且不变;要求需求一开始就提正确而且不变;要求需求一开始就提正确而且不变;要求需求一开始就提正确而且不变;开发人员相互等待导致开发工作的阻塞现象,尤其在开发人员相互等待导致开发工作的阻塞现象,尤其在开发人员相互等待导致开发工作的阻塞现象,尤其在开发人员相互等待导致开发工作的阻塞现象,尤其在开始和结束阶段。开始和结束阶段。开始和结束阶段。开始和结束阶段。n n在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的在历史上起过重要作用,而且至今仍占有重要的位置。位置。位置。位置。n n它提供了一个模板,使得分析、设计、编码、测它提供了一个模板,使得分析、设计、编码、测它提供了一个模板,使得分析、设计、编码、测它提供了一个模板,使得分析、设计、编码、测试和维护可在该模板指导下应用,仍然是软件工试和维护可在该模板指导下应用,仍然是软件工试和维护可在该模板指导下应用,仍然是软件工试和维护可在该模板指导下应用,仍然是软件工程中应用最泛的过程模型。程中应用最泛的过程模型。程中应用最泛的过程模型。程中应用最泛的过程模型。n n在科学和工程计算、实时控制及嵌入式系统中应在科学和工程计算、实时控制及嵌入式系统中应在科学和工程计算、实时控制及嵌入式系统中应在科学和工程计算、实时控制及嵌入式系统中应用得很好。用得很好。用得很好。用得很好。瀑布模型瀑布模型2、瀑布模型的改进与延伸、瀑布模型的改进与延伸n n(1)原型原型原型开发确实是解决需求的不确定性和原型开发确实是解决需求的不确定性和可变性提出的一种好办法。可变性提出的一种好办法。原型分抛弃式原型、演化式原型和增量原型分抛弃式原型、演化式原型和增量式原型式原型n n抛弃式原型的最大用处是辅助分析和确定用抛弃式原型的最大用处是辅助分析和确定用抛弃式原型的最大用处是辅助分析和确定用抛弃式原型的最大用处是辅助分析和确定用户需求,及解决系统任何部位的不确定性问户需求,及解决系统任何部位的不确定性问户需求,及解决系统任何部位的不确定性问户需求,及解决系统任何部位的不确定性问题;题;题;题;n n演化式原型可以作为一种开发方法,利用演演化式原型可以作为一种开发方法,利用演演化式原型可以作为一种开发方法,利用演演化式原型可以作为一种开发方法,利用演化成为最终系统;化成为最终系统;化成为最终系统;化成为最终系统;n n增量式原型开发可以作为瀑布模型开发的补增量式原型开发可以作为瀑布模型开发的补增量式原型开发可以作为瀑布模型开发的补增量式原型开发可以作为瀑布模型开发的补充。充。充。充。原型原型瀑布模型的改进与延伸瀑布模型的改进与延伸n n(2)螺旋模型螺旋模型也是一个演化过程模型,综合了也是一个演化过程模型,综合了瀑布模型和原型的优点,成功与瀑布模型和原型的优点,成功与否很大程度上取决于风险分析技否很大程度上取决于风险分析技术术螺旋模型螺旋模型瀑布模型的改进与延伸瀑布模型的改进与延伸n n(3)4GT(3)4GT其最大特点是拥有一组工具,每个工具都能使其最大特点是拥有一组工具,每个工具都能使其最大特点是拥有一组工具,每个工具都能使其最大特点是拥有一组工具,每个工具都能使软件开发人员在高层次上定义软件的某些特性,软件开发人员在高层次上定义软件的某些特性,软件开发人员在高层次上定义软件的某些特性,软件开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些特性自动地生成源代并把开发人员定义的这些特性自动地生成源代并把开发人员定义的这些特性自动地生成源代并把开发人员定义的这些特性自动地生成源代码。所以,这种方法可以大大地减少软件开发码。所以,这种方法可以大大地减少软件开发码。所以,这种方法可以大大地减少软件开发码。所以,这种方法可以大大地减少软件开发的时间,目前主要用于事务处理应用程序。的时间,目前主要用于事务处理应用程序。的时间,目前主要用于事务处理应用程序。的时间,目前主要用于事务处理应用程序。4GT4GT实现成为产品以后,要进行彻底的测试,实现成为产品以后,要进行彻底的测试,实现成为产品以后,要进行彻底的测试,实现成为产品以后,要进行彻底的测试,还需要数据库的支持。对于一些较大的应用程还需要数据库的支持。对于一些较大的应用程还需要数据库的支持。对于一些较大的应用程还需要数据库的支持。对于一些较大的应用程序,必须先制定出一个系统的策略,否则难以序,必须先制定出一个系统的策略,否则难以序,必须先制定出一个系统的策略,否则难以序,必须先制定出一个系统的策略,否则难以完成。完成。完成。完成。必须指出的,使用必须指出的,使用必须指出的,使用必须指出的,使用4GT4GT也会产生与瀑布模型开也会产生与瀑布模型开也会产生与瀑布模型开也会产生与瀑布模型开发软件所遇到的同样的问题。如果能与基于构发软件所遇到的同样的问题。如果能与基于构发软件所遇到的同样的问题。如果能与基于构发软件所遇到的同样的问题。如果能与基于构件的开发方法结合起来,很可能将成为软件开件的开发方法结合起来,很可能将成为软件开件的开发方法结合起来,很可能将成为软件开件的开发方法结合起来,很可能将成为软件开发的一种主流方法。发的一种主流方法。发的一种主流方法。发的一种主流方法。4GT瀑布模型的改进与延伸瀑布模型的改进与延伸n n(4)混合模型混合模型目前软件企业一般都采用混合模型开发目前软件企业一般都采用混合模型开发软件。软件。它是把瀑布、原型、螺旋和它是把瀑布、原型、螺旋和4GT开发模开发模式组合起来,它允许一个项目可以根据式组合起来,它允许一个项目可以根据项目特征和要求及企业自身的开发条件项目特征和要求及企业自身的开发条件(技术的和管理的技术的和管理的)选择一条最有效的路选择一条最有效的路径。径。好处:给企业管理者和开发者提供了一好处:给企业管理者和开发者提供了一个舞台,使每个模型的长处都得到发挥。个舞台,使每个模型的长处都得到发挥。但由此对企业管理和技术都提出了更高但由此对企业管理和技术都提出了更高要求。要求。混合模型混合模型3、迭代、增量到统一的开发过程、迭代、增量到统一的开发过程n n自从自从OO技术于技术于90年代逐步走年代逐步走向实用以后,才为真正的迭代、向实用以后,才为真正的迭代、增量到统一的开发过程奠定了增量到统一的开发过程奠定了坚实的技术和组织基础;也为坚实的技术和组织基础;也为重用技术和基于构件的开发提重用技术和基于构件的开发提供了条件。供了条件。演化演化迭代增量迭代增量统一的软件开发过程统一的软件开发过程基于构件的开发基于构件的开发4、形式化开发模型、形式化开发模型n n能够借助一种严密的、数学的符号规格说能够借助一种严密的、数学的符号规格说明、开发和验证一个基于计算机的系统明、开发和验证一个基于计算机的系统n n好处:能够消除在使用其它软件工程模式好处:能够消除在使用其它软件工程模式中难以克服的诸如二义性、不完整性和不中难以克服的诸如二义性、不完整性和不一致性等问题,不是通过专门安排的评审,一致性等问题,不是通过专门安排的评审,而是通过数学分析的应用。而是通过数学分析的应用。n n尽管,当前对于大型复杂的软件系统要进尽管,当前对于大型复杂的软件系统要进行完整的形式化开发,还不现实,也不可行完整的形式化开发,还不现实,也不可能。但用于大型复杂系统的一些关键部位,能。但用于大型复杂系统的一些关键部位,确实是一种有效地实用策略确实是一种有效地实用策略开发过程总结开发过程总结n n软件开发过程的采用,主要决定于你开发软件开发过程的采用,主要决定于你开发的产品:的产品:不同的产品应有不同的过程,不能只从技术角不同的产品应有不同的过程,不能只从技术角不同的产品应有不同的过程,不能只从技术角不同的产品应有不同的过程,不能只从技术角度来评价它们的优劣!如一个科学、工程计算度来评价它们的优劣!如一个科学、工程计算度来评价它们的优劣!如一个科学、工程计算度来评价它们的优劣!如一个科学、工程计算系统可用瀑布模型或形式化开发模型;一个事系统可用瀑布模型或形式化开发模型;一个事系统可用瀑布模型或形式化开发模型;一个事系统可用瀑布模型或形式化开发模型;一个事务处理系统可用原型;而一个务处理系统可用原型;而一个务处理系统可用原型;而一个务处理系统可用原型;而一个WebWeb站点的创建站点的创建站点的创建站点的创建可用演化模型可用演化模型可用演化模型可用演化模型n n本部分内容极为重要:本部分内容极为重要:因为开发过程的不同,不仅对软件开发和维护因为开发过程的不同,不仅对软件开发和维护因为开发过程的不同,不仅对软件开发和维护因为开发过程的不同,不仅对软件开发和维护的质量和劳动生产率有重大影响,而且实现时的质量和劳动生产率有重大影响,而且实现时的质量和劳动生产率有重大影响,而且实现时的质量和劳动生产率有重大影响,而且实现时所采用的方法、语言和工具也不完全相同所采用的方法、语言和工具也不完全相同所采用的方法、语言和工具也不完全相同所采用的方法、语言和工具也不完全相同反过来,讨论方法、语言和工具的对其质量和反过来,讨论方法、语言和工具的对其质量和反过来,讨论方法、语言和工具的对其质量和反过来,讨论方法、语言和工具的对其质量和劳动生产率的影响,也就没有依据了劳动生产率的影响,也就没有依据了劳动生产率的影响,也就没有依据了劳动生产率的影响,也就没有依据了三、开发方法、语言和工具的选用三、开发方法、语言和工具的选用n n开发方法开发方法提供了构造软件的技术提供了构造软件的技术n n语言语言用以支持软件的分析、设计和用以支持软件的分析、设计和实现实现n n工具工具为开发方法和语言提供自动化为开发方法和语言提供自动化或半自动化的支持或半自动化的支持n n什么样的软件开发过程就有什么样什么样的软件开发过程就有什么样的方法、语言和工具的方法、语言和工具(一一)开发方法开发方法n n结构化开发方法结构化开发方法n n面向对象(面向对象(OO)的开发方法)的开发方法n n形式化开发方法形式化开发方法1、形式化开发方法、形式化开发方法n n在软件工程中研究的形式化开发方法,不是计算在软件工程中研究的形式化开发方法,不是计算在软件工程中研究的形式化开发方法,不是计算在软件工程中研究的形式化开发方法,不是计算理论研究中的理论研究中的理论研究中的理论研究中的“符号十抽象公理化符号十抽象公理化符号十抽象公理化符号十抽象公理化”的数学方法,的数学方法,的数学方法,的数学方法,这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决这是由离散数学、逻辑学等课程去解决n n我们介绍的形式化开发方法则是用于软件系统设我们介绍的形式化开发方法则是用于软件系统设我们介绍的形式化开发方法则是用于软件系统设我们介绍的形式化开发方法则是用于软件系统设计中的数学建模技术计中的数学建模技术计中的数学建模技术计中的数学建模技术n n形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行形式化规格说明是对系统或产品及其所期望的行为或特性进行的描述。为或特性进行的描述。为或特性进行的描述。为或特性进行的描述。描述的内容包括:功能特性、行为特性、结构特性和描述的内容包括:功能特性、行为特性、结构特性和描述的内容包括:功能特性、行为特性、结构特性和描述的内容包括:功能特性、行为特性、结构特性和时间特性时间特性时间特性时间特性 形式化规格说明可以分为:操作类形式化规格说明可以分为:操作类形式化规格说明可以分为:操作类形式化规格说明可以分为:操作类(如有限状态机、如有限状态机、如有限状态机、如有限状态机、PetriPetri网网网网)、描述类、描述类、描述类、描述类(基于代数的基于代数的基于代数的基于代数的(如如如如Z Z语言语言语言语言VDMVDM语言语言语言语言)和基于逻辑的和基于逻辑的和基于逻辑的和基于逻辑的(如如如如RTLRTL、TRIO)TRIO)。2、结构化与、结构化与OO开发方法开发方法n n不讲全部,不讲全部,不讲全部,不讲全部,OOOO方法要比结构化方法好方法要比结构化方法好方法要比结构化方法好方法要比结构化方法好n nMeyerMeyer提出的一个设计方法实现模块化能力的五提出的一个设计方法实现模块化能力的五提出的一个设计方法实现模块化能力的五提出的一个设计方法实现模块化能力的五条判断准则:条判断准则:条判断准则:条判断准则:(1)(1)分解性、分解性、分解性、分解性、(2)(2)组合性、组合性、组合性、组合性、(3)(3)可理解性、可理解性、可理解性、可理解性、(4)(4)连续性、连续性、连续性、连续性、(5)(5)保护性保护性保护性保护性n n 从这五条准则出发,从这五条准则出发,从这五条准则出发,从这五条准则出发,MeyerMeyer提出了模块结构五提出了模块结构五提出了模块结构五提出了模块结构五条基本设计原则:条基本设计原则:条基本设计原则:条基本设计原则:(1)(1)语言语言语言语言(linguistic)(linguistic)模块单元、模块单元、模块单元、模块单元、(2)(2)少的接口、少的接口、少的接口、少的接口、(3)(3)小的接口小的接口小的接口小的接口(弱的耦合弱的耦合弱的耦合弱的耦合)、(4)(4)明确的接口、明确的接口、明确的接口、明确的接口、(5)(5)信息隐信息隐信息隐信息隐藏藏藏藏n n这些设计原则适用于任何设计方法。但我们可以这些设计原则适用于任何设计方法。但我们可以这些设计原则适用于任何设计方法。但我们可以这些设计原则适用于任何设计方法。但我们可以看到:看到:看到:看到:OOOO设计方法比任何其它方法都更能有效设计方法比任何其它方法都更能有效设计方法比任何其它方法都更能有效设计方法比任何其它方法都更能有效地实现这些原则。尽管地实现这些原则。尽管地实现这些原则。尽管地实现这些原则。尽管OOOO对象中的数据和操作对象中的数据和操作对象中的数据和操作对象中的数据和操作仍以结构化的方法为基础来实现仍以结构化的方法为基础来实现仍以结构化的方法为基础来实现仍以结构化的方法为基础来实现(二二)语言语言n n1、规格说明语言、规格说明语言n n2、设计语言、设计语言n n3、原型开发语言、原型开发语言n n4、编程语言、编程语言1、规格说明语言、规格说明语言n n软件规格说明语言软件规格说明语言(specification languages)(specification languages)记录软件规格说明记录软件规格说明记录软件规格说明记录软件规格说明它是对软件系统或它的一个构件行为的黑盒子它是对软件系统或它的一个构件行为的黑盒子它是对软件系统或它的一个构件行为的黑盒子它是对软件系统或它的一个构件行为的黑盒子描述描述描述描述为复杂的行为提供了一种简单的抽象描述。为复杂的行为提供了一种简单的抽象描述。为复杂的行为提供了一种简单的抽象描述。为复杂的行为提供了一种简单的抽象描述。n n黑盒子描述:是根据进出黑盒子边界的数黑盒子描述:是根据进出黑盒子边界的数据来说明的,它不涉及黑盒子内部的机制据来说明的,它不涉及黑盒子内部的机制n n在第五章的形式化开发方法中介绍了这种在第五章的形式化开发方法中介绍了这种语言语言(基于代数的和基于逻辑的基于代数的和基于逻辑的)。n n好处是它的精确性和自动化的潜在性。好处是它的精确性和自动化的潜在性。2、设计语言、设计语言n n软件设计语言软件设计语言软件设计语言软件设计语言(design languages)(design languages)记录软件设计。它是对软件系统或构件的一种白盒子记录软件设计。它是对软件系统或构件的一种白盒子记录软件设计。它是对软件系统或构件的一种白盒子记录软件设计。它是对软件系统或构件的一种白盒子描述描述描述描述 也就是把一个构件分解为一些更低层构件的描述也就是把一个构件分解为一些更低层构件的描述也就是把一个构件分解为一些更低层构件的描述也就是把一个构件分解为一些更低层构件的描述 并根据数据和控制来定义它们之间的相互联系并根据数据和控制来定义它们之间的相互联系并根据数据和控制来定义它们之间的相互联系并根据数据和控制来定义它们之间的相互联系n n设计语言与规格说明语言的区别:设计语言与规格说明语言的区别:设计语言与规格说明语言的区别:设计语言与规格说明语言的区别:设计语言用于定义分层的结构和构件间相互联系的描设计语言用于定义分层的结构和构件间相互联系的描设计语言用于定义分层的结构和构件间相互联系的描设计语言用于定义分层的结构和构件间相互联系的描述述述述 而规格说明语言用于定又每个构件的接口而规格说明语言用于定又每个构件的接口而规格说明语言用于定又每个构件的接口而规格说明语言用于定又每个构件的接口n n设计语言与编程语言的区别:设计语言与编程语言的区别:设计语言与编程语言的区别:设计语言与编程语言的区别:设计语言的主要目的是文档设计语言的主要目的是文档设计语言的主要目的是文档设计语言的主要目的是文档(描述算法和数据结构,还描述算法和数据结构,还描述算法和数据结构,还描述算法和数据结构,还要描述证明、假设和约定要描述证明、假设和约定要描述证明、假设和约定要描述证明、假设和约定)编程语言则要包含所有的以获得一个有效的可执行系编程语言则要包含所有的以获得一个有效的可执行系编程语言则要包含所有的以获得一个有效的可执行系编程语言则要包含所有的以获得一个有效的可执行系统统统统3、原型开发语言、原型开发语言n n原型开发语言原型开发语言原型开发语言原型开发语言(prototyping languages)(prototyping languages)使用黑盒子和白盒子的描述来定义一个系统的可执行使用黑盒子和白盒子的描述来定义一个系统的可执行使用黑盒子和白盒子的描述来定义一个系统的可执行使用黑盒子和白盒子的描述来定义一个系统的可执行模型模型模型模型 但是原型开发语言不要求给出系统各构件的详细算法,但是原型开发语言不要求给出系统各构件的详细算法,但是原型开发语言不要求给出系统各构件的详细算法,但是原型开发语言不要求给出系统各构件的详细算法,只要它是可描述的和可执行的即可只要它是可描述的和可执行的即可只要它是可描述的和可执行的即可只要它是可描述的和可执行的即可n n原型开发语言与编程语言的区别:原型开发语言与编程语言的区别:原型开发语言与编程语言的区别:原型开发语言与编程语言的区别:编程语言经过优化,能够生成一个时空效率都很高的编程语言经过优化,能够生成一个时空效率都很高的编程语言经过优化,能够生成一个时空效率都很高的编程语言经过优化,能够生成一个时空效率都很高的工作系统工作系统工作系统工作系统 原型开发语言可在牺牲执行效率的情况下,能支持简原型开发语言可在牺牲执行效率的情况下,能支持简原型开发语言可在牺牲执行效率的情况下,能支持简原型开发语言可在牺牲执行效率的情况下,能支持简单和抽象系统的描述、信息的局部化、重用和适应性,单和抽象系统的描述、信息的局部化、重用和适应性,单和抽象系统的描述、信息的局部化、重用和适应性,单和抽象系统的描述、信息的局部化、重用和适应性,它应方便地纪录规格说明和设计信息,并以其最终产它应方便地纪录规格说明和设计信息,并以其最终产它应方便地纪录规格说明和设计信息,并以其最终产它应方便地纪录规格说明和设计信息,并以其最终产品必须是可执行的为限制条件品必须是可执行的为限制条件品必须是可执行的为限制条件品必须是可执行的为限制条件n n原型开发是一种快速构造可执行软件系统模型的原型开发是一种快速构造可执行软件系统模型的原型开发是一种快速构造可执行软件系统模型的原型开发是一种快速构造可执行软件系统模型的方法,这种模型叫做软件快速原型方法,这种模型叫做软件快速原型方法,这种模型叫做软件快速原型方法,这种模型叫做软件快速原型原型开发语言(续)原型开发语言(续)n n如何解决原型语言的可执行问题如何解决原型语言的可执行问题一种基于元编程,是把原型开发语一种基于元编程,是把原型开发语言看成是现有软件的改编和相互连言看成是现有软件的改编和相互连接,实际上是一种重用技术接,实际上是一种重用技术另一种为可执行规格说明,它的基另一种为可执行规格说明,它的基本思想是:如果规格说明是形式化本思想是:如果规格说明是形式化的,而且具有操作语义,那么就有的,而且具有操作语义,那么就有可能构造一个能直接执行的系统可能构造一个能直接执行的系统4、编程语言、编程语言n n编程语言编程语言(programming languages)(programming languages)记录编程记录编程编程就是用编程语言把对软件的设编程就是用编程语言把对软件的设计表达式翻译为计算机能够计表达式翻译为计算机能够“懂得懂得”的形式的形式这是计算机发展至今使用的最主要这是计算机发展至今使用的最主要的方法,也是大家最熟悉的语言的方法,也是大家最熟悉的语言编程语言(续)编程语言(续)n n评价:不算汇编语言,现在已开发出各种评价:不算汇编语言,现在已开发出各种用途的高级语言有用途的高级语言有400-500种,常用的语种,常用的语言近言近30种种1.1.一般的应用领域一般的应用领域一般的应用领域一般的应用领域2.2.算法和计算的复杂性算法和计算的复杂性算法和计算的复杂性算法和计算的复杂性3.3.软件的运行环境软件的运行环境软件的运行环境软件的运行环境4.4.性能考虑性能考虑性能考虑性能考虑5.5.数据结构的复杂性数据结构的复杂性数据结构的复杂性数据结构的复杂性6.6.软件开发人员的知识软件开发人员的知识软件开发人员的知识软件开发人员的知识7.7.一个好的编译器或交义编译器的可用性。一个好的编译器或交义编译器的可用性。一个好的编译器或交义编译器的可用性。一个好的编译器或交义编译器的可用性。编程语言(续)编程语言(续)n n选择:对于一个专门项目的编程语选择:对于一个专门项目的编程语言的选择必须考虑:言的选择必须考虑:工程特性工程特性n n易于把设计翻译为代码、编译器效率易于把设计翻译为代码、编译器效率高、源代码的可移植性、开发工具的高、源代码的可移植性、开发工具的可用性、源代码的可维护性都好可用性、源代码的可维护性都好心理特性:心理特性:n n一致性、无二义性、紧凑性、局域性、一致性、无二义性、紧凑性、局域性、线性线性编程语言(续)编程语言(续)n n实际上,项目的应用领域是语言选择的最重要的实际上,项目的应用领域是语言选择的最重要的实际上,项目的应用领域是语言选择的最重要的实际上,项目的应用领域是语言选择的最重要的准则。因为,每一个应用领域都可以选择标准语准则。因为,每一个应用领域都可以选择标准语准则。因为,每一个应用领域都可以选择标准语准则。因为,每一个应用领域都可以选择标准语言:言:言:言:1.1.系统软件:系统软件:系统软件:系统软件:C C 2.2.实时应用:实时应用:实时应用:实时应用:C C、AdaAda、汇编、汇编、汇编、汇编 3.3.商用语言:商用语言:商用语言:商用语言:CobolCobol已让位于已让位于已让位于已让位于4GL4GL 4.4.工程和科学领域:工程和科学领域:工程和科学领域:工程和科学领域:FortranFortran仍然是主要语言仍然是主要语言仍然是主要语言仍然是主要语言 5.5.嵌入式软件:同系统软件和实时软件嵌入式软件:同系统软件和实时软件嵌入式软件:同系统软件和实时软件嵌入式软件:同系统软件和实时软件 6.6.个人计算机:已很少用个人计算机:已很少用个人计算机:已很少用个人计算机:已很少用BasicBasic,主要用,主要用,主要用,主要用C C 7.7.人工智能应用:更多采用人工智能应用:更多采用人工智能应用:更多采用人工智能应用:更多采用LispLisp、PrologProlog 8.8.网络软件:网络软件:网络软件:网络软件:JavaJava 9.9.学习语言:学习语言:学习语言:学习语言:PascalPascal 现在市场上使用的不是上述语言,就是上述语言的改现在市场上使用的不是上述语言,就是上述语言的改现在市场上使用的不是上述语言,就是上述语言的改现在市场上使用的不是上述语言,就是上述语言的改进、扩展或变种进、扩展或变种进、扩展或变种进、扩展或变种语言总结语言总结n n应该看到,随着规格说明语言、设计应该看到,随着规格说明语言、设计语言和原型开发语言,以及软件科技语言和原型开发语言,以及软件科技的发展,传统的编程语言的作用正在的发展,传统的编程语言的作用正在被缩小和代替。如果有一天,计算机被缩小和代替。如果有一天,计算机能够做到对文字、图形、图像和语言能够做到对文字、图形、图像和语言的完全识别,那么将会改变我们对整的完全识别,那么将会改变我们对整个编程语言的理解。但是,今天我们个编程语言的理解。但是,今天我们编程使用的大部分方法,仍然采用传编程使用的大部分方法,仍然采用传统的编程语言统的编程语言(三三)工具工具n n任何一种开发模型,如果没有工具与任何一种开发模型,如果没有工具与环境的支持,再好的方法和语言也难环境的支持,再好的方法和语言也难以做好以做好n n如何选择一个好的工具和环境?按现如何选择一个好的工具和环境?按现代软件工程的要求,一般应考虑以下代软件工程的要求,一般应考虑以下三个方面:三个方面:1.一个工具集一个工具集2.一个用户界面一个用户界面3.一个数据库一个数据库NIST/ECMA参考模型参考模型6.4 正式技术评审的实施正式技术评审的实施n n软件评审是一个软件评审是一个“过滤器过滤器”n n正式技术评审正式技术评审(FTR,Formal Technical Reviews)有时有时称为称为“走查走查(walkthrough)”一、软件缺陷的费用影响一、软件缺陷的费用影响n nFTR的一个明显好处是:可以早期发现软的一个明显好处是:可以早期发现软件缺陷,以便能在软件工程过程的下一步件缺陷,以便能在软件工程过程的下一步之前得到改正之前得到改正n n许多研究表明:许多研究表明:50-65%的缺陷来自设计,的缺陷来自设计,而而FTR能够发现设计缺陷中能够发现设计缺陷中75%的缺陷的缺陷n n一些大型系统的相对成本数据说明:如果一些大型系统的相对成本数据说明:如果在设计期间发现并改正一个错误所需的费在设计期间发现并改正一个错误所需的费用为用为1的话,在测试即将开始时的费用为的话,在测试即将开始时的费用为6.5,在测试期间为,在测试期间为15,而在交付使用后,而在交付使用后达到达到60-100二、缺陷的扩大和排除二、缺陷的扩大和排除n n缺陷扩大模型缺陷扩大模型无评审的缺陷扩大模型无评审的缺陷扩大模型有评审的缺陷扩大模型有评审的缺陷扩大模型三、正式技术评审三、正式技术评审(FTR)n nFTR的目标:的目标:1.1.发现软件在功能、逻辑和实现上的错误发现软件在功能、逻辑和实现上的错误发现软件在功能、逻辑和实现上的错误发现软件在功能、逻辑和实现上的错误2.2.验证评审的软件符合需求验证评审的软件符合需求验证评审的软件符合需求验证评审的软件符合需求3.3.保证软件按照已确定的标准表述保证软件按照已确定的标准表述保证软件按照已确定的标准表述保证软件按照已确定的标准表述4.4.使软件以统一方式开发使软件以统一方式开发使软件以统一方式开发使软件以统一方式开发 5.5.使项目更易于管理使项目更易于管理使项目更易于管理使项目更易于管理n nFTR可以作为一个训练基地,使初级工程可以作为一个训练基地,使初级工程人员观察到软件分析、设计和实现不同的人员观察到软件分析、设计和实现不同的处理方法。也能促进人们变得更加熟悉处理方法。也能促进人们变得更加熟悉正式技术评审正式技术评审(续续)n n(一一)评审会议评审会议3535人参加人参加人参加人参加会前准备,每个人工作量不超过会前准备,每个人工作量不超过会前准备,每个人工作量不超过会前准备,每个人工作量不超过2 2小时小时小时小时会议时间会议时间会议时间会议时间2 2小时小时小时小时n n评审结束时,必须作出决定评审结束时,必须作出决定接受该产品,不再作进一步修改接受该产品,不再作进一步修改接受该产品,不再作进一步修改接受该产品,不再作进一步修改该产品错误严重,拒绝接受该产品错误严重,拒绝接受该产品错误严重,拒绝接受该产品错误严重,拒绝接受(改正后也必须进行改正后也必须进行改正后也必须进行改正后也必须进行另一次评审另一次评审另一次评审另一次评审)暂时接受该产品暂时接受该产品暂时接受该产品暂时接受该产品(小错误已经发现,必须改正,小错误已经发现,必须改正,小错误已经发现,必须改正,小错误已经发现,必须改正,但没有必要进行另外的评审但没有必要进行另外的评审但没有必要进行另外的评审但没有必要进行另外的评审)正式技术评审正式技术评审(续续)n n(二二)评审报告和记录保存评审报告和记录保存报告报告报告报告n n评审了什么产品?评审了什么产品?评审了什么产品?评审了什么产品?n n谁评审的?谁评审的?谁评审的?谁评审的?n n发现了什么?结论是什么?发现了什么?结论是什么?发现了什么?结论是什么?发现了什么?结论是什么?记录:记录:记录:记录:n n确定该产品中问题的大小确定该产品中问题的大小确定该产品中问题的大小确定该产品中问题的大小n n成为生产者修改错误时的行动项的校对表成为生产者修改错误时的行动项的校对表成为生产者修改错误时的行动项的校对表成为生产者修改错误时的行动项的校对表 还要建立一个跟踪过程,以保证问题列表中的还要建立一个跟踪过程,以保证问题列表中的还要建立一个跟踪过程,以保证问题列表中的还要建立一个跟踪过程,以保证问题列表中的项都被正确的改正了项都被正确的改正了项都被正确的改正了项都被正确的改正了正式技术评审正式技术评审(续续)n n(三三)评审指南评审指南评审产品,不评审生产者评审产品,不评审生产者评审产品,不评审生产者评审产品,不评审生产者建立一个议事日程,并遵循它建立一个议事日程,并遵循它建立一个议事日程,并遵循它建立一个议事日程,并遵循它限制争论和辯驳限制争论和辯驳限制争论和辯驳限制争论和辯驳说明问题大小,不要企图解决所有提出的问题说明问题大小,不要企图解决所有提出的问题说明问题大小,不要企图解决所有提出的问题说明问题大小,不要企图解决所有提出的问题作记录作记录作记录作记录限制参与人数和坚持充分准备限制参与人数和坚持充分准备限制参与人数和坚持充分准备限制参与人数和坚持充分准备为可能评审的产品开发一张检查表为可能评审的产品开发一张检查表为可能评审的产品开发一张检查表为可能评审的产品开发一张检查表为为为为FTRFTR安排资源和时间表安排资源和时间表安排资源和时间表安排资源和时间表对所有的评审人员进行有意义的培训对所有的评审人员进行有意义的培训对所有的评

    注意事项

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

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




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

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

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

    收起
    展开