页数:59页文件大小:229.5 KB来源: 软件工程ppt课件
本课件讲解软件质量的定义与质量保证活动,介绍Boehm、McCall与ISO三层质量度量模型,并展开软件工程管理的组织与人员因素、进度与经费控制,以及软件知识产权的法律保护。
第13章 软件评价与管理:第13章:软件评价与管理ANSI/IEEEStd729-1983定义的“软件质量”为:与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体。M.J.Fisher定义的“软件质量”为:所有描述计算机软件优秀程度的特性的组合。13.1软件质量
软件质量标准:在计算机发展早期,计算机内存容量有限,运行速度慢,人们设计软件时特别强调时间、空间效率。现今对
功能与性能方面的质量:一般说来,应从三个方面考虑软件质量:1)功能与性能方面软件应该能够按照既定的要求进行工作,与明确规定的功能和性能需求一致。软件要保证能够可靠的工作,合法的输入下正确运行,非法输入和意外事件可安全处理
软件结构方面的质量
开发标准与文档方面:3)开发标准与文档方面软件开发应该与明确成文的开发标准相一致,而且要遵循一些软件开发准则,软件文档资料也必须齐全
质量要求的差异:以上三方面是相辅相成的,但还必须指出
质量特性之间的矛盾:C.质量的不同特性之间可能是矛盾的。例如,片面强调软件执行效率,设计出来的软件就可能结构复杂;追求良好的可靠性,就不一定能获得较高的运行速度
大型软件的质量评价:大型软件系统的质量应该从可靠性、易理解性、易维护性和效率等几个方面评价。具体开发时应使诸多的质量特性最大限度地满足
应用技术手段:软件质量保证(SQA)主要做好几方面:1)应用技术手段软件质量保证活动开始于帮助分析员获得高质量的规格说明书,帮助设计员应用高效的技术方法和工具,并且始终贯穿整个开发过程。13.1.2软件质量保证
组织技术评审:2)组织技术评审在软件开发过程的每个阶段结束后,都需要组织技术评审,可以及早发现软件开发过程中可能引起的潜在错误,并对质量进行评价
加强软件测试:3)加强软件测试软件测试是软件质量保证的重要手段,可以发现软件中大多数隐蔽的错误
推行软件工程标准:4)推行软件工程标准标准是由用户或委托单位确定的,有时是设计者自定的。一旦标准确定,就应该重视标准,并在软件开发中统一遵循。因此,可以将软件规范情况作为软件技术评审的一项内容
控制软件变更:5)控制软件变更软件质量的一个主要威胁来自于对软件的修改和变更。在修改的过程中常常会引起一些新的潜在错误。因此,应严格控制软件的修改和变更
软件质量度量:6)对软件质量进行度量软件质量保证的一个重要目标也是对软件质量进行跟踪,这就需要对软件质量进行度量,并对软件质量情况及时记录和报告
Boehm质量模型:Boehm在1976年提出了定量评价软件质量的概念,并给出了60个质量度量公式,还第一次提出了软件质量的层次模型。可移植性可使用性可维护性可靠性效率环境工程可测试性可理解性可修改性设备独立性完善性准确性一致性设备效率可存取性通信性结构性自描述性简洁性易读性可扩充性图13.1Boehm模型一、Boehm模型13.2软件质量度量模型
McCall质量模型:McCall于1979年提出了包括软件质量要素、软件评价准则、软件质量度量的三个层次的McCall软件质量度量模型。产品修正产品转移互连性可移植性复用性可维护性可测试性灵活性正确性可靠性可使用性效率完整性图13.2M
面向三种用途的质量要素:这个模型提出了11个软件质量要素,22个软件属性(评价准则)。其中11个质量要素分别面向软件产品的运行、修正和转移等三个主要用途。产品修正产品转移互连性可移植性复用性可维护性可测试性灵活性正确性可靠性可使用性效率完整性图13.2McCall软件质量模型产品运行
正确性、可靠性与效率:软件的质量因素定义如下
完整性与可使用性等
灵活性与可移植性等
McCall质量度量模型:通常,对以上11个质量要素直接度量是困难的,因此McCall定义了一些评价准则,使用它们来估计软件质量要素的值。可训练性可操作性可跟踪性完整性容错性准确性一致性执行效率复杂性安全性工具性简明性可审计性可扩充性模块性自描述性简洁性通用性硬件独立性软件独立性通信共用性数据共用性可使用性正确性可靠性效率完整性可维护性灵活性可测试性可移植性复用性互连性产品运行产品修正产品转移图13.3McCall质量度量模型质量因素主要用途软件属性(评价准则)
ISO三层质量度量模型
ISO与McCall模型的对应:ISO的三层结构来源于McCall的模型,其高层、中层、底层分别与McCall模型的质量因素、评价准则、度量相对应。其中SQRC由8个质量因素组成,SQDC选用了23个评价准则
ISO质量度量模型图:ISO认为,高层和中层应建立国际标准,以便在国际范围内推广应用SQM技术。而底层SQMC则可以由各使用单位根据实际情况制定。图13.4ISO建议的质量度量模型可跟踪性完整性一致性准确性容错性简洁性模块性通用性可扩充性工具性自描述性简明性执行效率存储效率存取控制存取审查可操作性可训练性通信性软件独立性硬件独立性通信共用性数据共用性正确性可靠性可维护性适应性效率安全性可用性连接性SQRCSQDCSQMC由各使用单位根据实际情况制定
ISO9126质量特性:1991年ISO发布的ISO/IEC9126质量特性国际标准中:SQRC(高层)改称为“质量特性”;SQDC(中层)称为“质量子特性”;SQMC(底层)称为“度量”
六个质量特性
质量因素之间的影响:软件的各种质量因素之间相互存在有利和不利的影响,所以没有一种软件的设计能同时使所有的质量因素都是最佳的。在实际中,应根据软件的不同类型和不同要求,对不同的评价准则给出不同的权重
质量度量的发展趋势:软件质量度量(SQM)技术,仍然处于发展和完善阶段。关于软件质量因素的选用,有面向用户的,有面向软件开发人员的,有面向管理人员的。根据ISO今年来讨论的趋势,逐渐向面向用户靠拢。因为,软件质量因素是在软件需求分析和定义阶段,由用户根据需要提出来的要求
软件工程管理:软件工程管理就是指对整个软件开发运行过程,包括分析、设计、编码、测试及维护各个阶段的一切活动进行有效的管理和控制。它主要包括开发人员、组织机构、用户、文档资料、计划进度、经费开支等方面的管理
大型软件开发组织结构:一、组织机构软件开发没有统一的模式,但是一个好的软件开发组织应该具有好的组织机构、合理的人员分工、有效的通讯。软件经理项目经理1项目经理2项目经理n程序小组程序小组程序小组程序小组程序小组程序小组……审查小组图13.5大型软件开发组织结构13.3.1组织机构与人员管理
软件经理与项目经理:在大型软件开发组织结构中,软件经理负责管理软件开发部门,在各个项目间分配和协调各种资源。项目经理领导1到6个程序小组,管理一个具体项目的各个方面(包括计划、进度、审查、复审等)。软件经理项目经理1项目经理2项目经理n程序小组程序小组程序小组程序小组程序小组程序小组……审查小组图13.5大型软件开发组织结构
程序小组与审查小组:每个程序小组负责项目的一部分开发工作。审查小组从事质量保证活动,在项目开发每个阶段结束之前进行技术审查和管理复审。软件经理项目经理1项目经理2项目经理n程序小组程序小组程序小组程序小组程序小组程序小组……审查小组图13.5大型软件开发组织结构
主程序员组:二、主程序员组主程序员组由IBM公司在70年代初期提出,它是一种程序小组的较为流行的组织形式。高级工程师(主程序员)后备工程师技术人员专家资料员辅助人员图
主程序员与技术人员:主程序员组中选用经验丰富、技术好的程序员担任主程序员。他负责主持计划、协调和复审该程序小组中的全部技术活动。技术人员一般由2到5人组成,负责软件分析和开发活动。后备工程师支持高级工程师(主程序员)的工作,必要时代替主程序员工作。高级工程师(主程序员)后备工程师技术人员专家资料员辅助人员图
专家与辅助人员:根据应用的规模和类型,程序小组可能还需要临时或长期地增加一些具体领域的专家、辅助人员(初级程序设计员、秘书、打字员等)、资料管理员。高级工程师(主程序员)后备工程师技术人员专家资料员辅助人员图12.6主程序员组
用户因素:三、用户用户是应用软件开发中一个重要的,不可忽视的因素。在软件开发过程中必须得到用户的密切配合与支持。项目负责人必须特别留意与用户保持联系,掌握用户的心理和动态,防止来自用户的一些干扰
来自用户的干扰
进度控制:为了保证软件开发能按预定的时间表进行,必须对软件开发过程加以控制:1)进度控制项目进度的制定应在软件定义与分析阶段完成,一旦制定,要严格执行,不要随意更改。13.3.2软件工程控制
人员控制:2)人员控制人员的频繁变动或流动将会大大增加软件出错机会,因此要保证开发人员的稳定性。至少要保证软件项目每一期工程,或者软件生存周期每一阶段中人员的相对稳定性。还要努力调动每一个开发人员的积极性
经费与质量控制
文档资料管理:软件工程管理很大程度上是通过对文档资料的管理来实现的。每个阶段的文档资料是对前面工作的总结和审核,又是后一阶段的工作基础。所以,应该建立一套完整的文档资料体系,描述和记录整个开发过程。文
软件产权:软件产品的特殊性是:软件开发工作量大、周期长、投资高,然而软件复制却相当容易,而且复制费用很低。所以长期以来,软件产品的侵权行为非常严重,严重挫伤了人们开发软件的积极性
软件知识产权的法律保护:计算机软件是一种人类智力的创作成果,享有的经济权利和精神权利主要靠知识产权来保护
版权法:1)版权法版权法主要保护对象是文字作品。计算机软件中的文档资料大部分是文字作品,源程序中的注释部分也是文字作品。如果将代码看作是特殊的文字,整个程序就是文字作品了。所以,版权法保护计算机软件
独创性要求:版权法要求受保护的软件产品具有独创性(也称为初创性、原创性),不能抄袭或复制他人的软件
专利法:2)专利法版权法保护的只是文字作品的表达形式,不保护作品中反映出的作者的构思、方案。软件产品的作者在软件构思上的工作是创造性劳动,类似于发明成果,可以使用专利法来保护
专利法的三个特性:对软件产品的保护,专利法比版权法要求严格。它要求受保护的软件具有三个特性:新颖性、技术先进性、实用性。对于已经获得专利的软件,可以享受专利法和版权法所赋予的双重法律保护
商标法:3)商标法计算机软件兼有作品和产品的特征,所以也得到商标法的保护
商业秘密法:4)商业秘密法无论采取哪种知识产权法的保护,对软件的一部分源程序始终受到商业秘密法的保护
许可合同与保密条款:一些软件的主要开发者在许可他人使用有关软件时,如果不愿意将源程序及有关文件中某些内容透露出去,就可以利用“许可合同”或“第三方保存源程序合同”等合同中制定的相应的保持商业秘密的条款来保护
软件著作权保护的基本条件:一、软件著作权保护的基本条件《中华人民共和国著作权法》明确规定,计算机软件是它受保护客体中的一项。受保护的软件必须满足两个基本条件
原创性:1)必须是开发者独立开发的,即具有原创性著作权保护的主要形式和内容是在一定时间范围内,禁止他人未经软件权利人许可进行的复制或抄袭软件的行为。任何有复制或抄袭他人的软件不能获得著作权
固定在有形物体上:2)在某种有形物体上如纸、磁带、磁盘等,通过这些有形物体能为人所感知、传播和复制
软件著作权保护范围:只要满足著作权法中基本条件的计算机软件(包括程序和文件),都受著作权保护。二、软件著作权保护范围注:尽管程序的目标代码是以二进制数码形式构成的,但是应该把它和源代码视为同一作品,因而也享有著作权保护
不受保护的思想与算法:软件著作权保护的只是软件的表现,而不是软件的一切。例如,软件的程序代码受著作权保护,但软件开发过程中使用的任何思想、概念、发现、原理、算法、处理过程和运行方式都不受保护,可以被他人使用以制作功能相似的软件
著作权人的权利
精神权利
经济权利:2)经济权利也称财产权利,是指作者使用自己的作品以获得经济收益的专有权利,以及作者在社会大众使用自己的作品时取得报酬的权利。修改权、使用权和获得报酬权属于经济权利。经济权利可以转让给他人
结束页:ThankYou!TheEnd
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}