软件质量保证
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
通过网络等参考资料了解软件工程领域中不同的软件质量模型的原理及特点,了解软件产品规模度量的相关方法及相应的特点,了解软件产品复杂度度量方法及其特点,了解软件产品缺陷密度度量相关方法及原理,了解顾客满意度度量方法,并进行对比分析。
二、实验时间
2学时
三、实验内容
1、依据网络资源,了解软件度量中的相关知识,了解不同的软件质量模型及其各自的特点。
2、重点了解软件产品规模度量方法、软件复杂度度量方法、软件产品缺陷度量方法及顾客
满意度度量方法。
3、分析对比各类方法的特点。
四、实验总结
1、软件度量是什么?为什么要进行软件度量?
软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。
软件度量满足了三方面的需要:首先是满足了项目管理的需要。项目经理根据软件度量的数据可以对有关资源进行合理部署和分配,有效地对项目的进度和执行情况进行监控,确定软件产品是否符合质量的要求等。其次,满足了组织的需要。依照度量的数据,组织可以清楚地了解开发的效率和质量的总体水平,从而可以更好地进行产品组合、判定资金的投向,策划、管理或验证软件开发的活动。第三是满足了用户的需要。用户可以根据度量的数据比较正确地判定投入的资金,项目交付的合理期限以及判定递交项目的质量等。因此,研究软件的度量有着十分重要的社会意义和应用意义。通过软件度量可以改进软件开发过程,促进项目成功,开发高质量的软件产品。度量取向是软件开发诸多事项的横断面,包括顾客满意度度量、质量度量、项目度量、以及品牌资产度量、知识产权价值度量,等。度量取向要依靠事实、数据、原理、法则;其方法是测试、审核、调查;其工具是统计、图表、数字、模型;其标准是量化的指标。
美国卡内基·梅隆大学(CMU)软件工程研究所在《软件度量指南》中认为,软件度量在软件工程中的作用有:通过软件度量增加理解;通过软件度量管理软件项目,主要是计划和估算、跟踪和确认;通过软件度量指导软件过程改善,主要是理解、评估和包装。
2、软件质量模型有哪些主要模型?以其中一个软件质量模型为例,分析选择该
软件质量模型的原因及该质量模型所起到的作用。
软件质量模型主要有McCall模型、Boehm模型、FURPS模型、ISO9126。
MCCALL模型:
McCall的软件质量模型,也被称为GE模型(General Electrics Model)。其最初起源于美国空军,主要面向的是系统开发人员和系统开发过程。McCall 试图通过一系列的软件质量属性指标来弥补开发人员与最终用户之间的沟壑。
McCall认为软件质量可从两个层次去分析,其上层是外部观察的特性,下层是软件内在的特性。McCall定义了11个软件外部质量特性,称为软件的质量要素,它们是:正确性:一个程序满足他的需求规约和实现用户任务目标的程度;
可靠性:一个程序满足其所需的精确度,完成它的预算功能的程度;
效率:一个程序完成其功能所需的计算资源和代码的度量;
完整性:对未授权人员访问软件或数据的可控制程度;
可使用性:学习、操作、准备输入和解释程序输出所需的工作量;
可维护性:定位和修复程序中一个错误所需的工作量;
可测试性:测试一个程序以确保它完成所期望的功能所需的工作量;
灵活性:修改一个运行的程序所需的工作量;
可移植性:把一个程序从一个硬件或软件系统环境移植到另一个环境所需的工作量;
可复用性:一个程序可以在另一个应用程序中复用的程度;
互连性:连接一个系统和另一个系统所需的工作量。
同时,还定义了23个软件的内部质量特征,称之为软件的质量属性,它们是完备性、一致性、准确性、容错性、简单性、模块性、通用性、可扩充性、工具性、自描述性、执行效率、存储效率、存取控制、存取审查、可操作性、培训性、通信性、软件系统独立性、机独立性、通信通用性、数据通用性和简明性,软件的内部质量属性通过外部的质量要素反映出来。
3、对实验内容2中的四类方法进行简述。
软件产品规模度量方法:
软件规模度量是其他软件度量工作的基础与关键,对软件进行规模度量首先要确定一种度量单位。软件规模度量分为代码行技术和功能点技术等。
用软件的源代码行数作为软件规模的度量是一种传统的度量方法。以KLOC(千条源代码)为度量单位。例如,一个软件有38000条源代码,则其规模就为38KLOC。这种定义方法比较直接、简单,但是由于软件使用的编程语言的不同,特别是在开发人员大量使用第四语言以上的工具进行软件开发是,KLOC所描述出来的软件规模就不准确,而且
KLOC方法只能在软件开发完成后,根据源代码数来进行度量。
IFPUG功能点分析方法是功能点技术规模度量的一种。IFPUG功能点分析法是由IBM 公司在1979年开发。该方法对实时系统、控制系统等软件领域也适用,更适用MIS系统的规模度量。使用功能点分析方法进行软件规模度量,具有以下优点:⑴不依赖于软件开发所采取的技术和工具,较好地克服了传统采用KLOC估算法不科学的弊病;⑵基于用户功能性的需求对软件系统进行分解,用户比较容易理解,使用者本身也有能力处理,所以,用户可以较好地了解应用系统的规模大小以及与相关软件规模的比较,从而能合理地投入资金;⑶可以比较早地进行应用系统的规模估算,一旦输出、输入画面,输出的报表及相关的文件确定后,即可进行估算,而且随着软件开发过程的不断深入,估算可以做得越来越精确;⑷有一个国际性组织IFPUG负责功能点分析标准的制定和推广,所以功能点分析具有比较客观和公正的信誉,能为国际上许多机构广泛使用。
软件复杂度度量方法:
在硬件的可靠性设计中,有一条基本原则“简单就是可靠”。这个原则同样也适合软件,与功能的增多或增强相伴的是不断升级与补丁。现在已经有若干种软件复杂性的度量方法可供参考,其中McCabe QA是比较出色和实用的方法,它能够计算出多种软件复杂度,由此可对软件进行检查、分析和查明那些可能导致错误的代码。
软件复杂度度量方法有三种,代码行数度量法、McCabe度量法、Halstead度量法。
代码行数度量法代码行数度量法以程序的总代码行数作为程序复杂性的度量值。这种度量方法有一个重要的隐含假定是:书写错误和语法错误在全部错误中占主导地位。然而,由于这类错误严格来讲是私有的,不应把它们计入错误总数之中,在这种情况下,这种度量方法的前提就不存在。因而,代码行数度量法是一种很粗糙的方法,在实际应用中很少使用。
McCabe度量法McCabe度量法以程序流程图的分析为基础,通过计算强连通的程序图中线性无关有向环的个数,建立复杂性的度量。其计算公式为:V(G)=m-n+p,其中V(G)是强连通有向图G中的环数;m是G中的弧数;n是G中的节点数;p是G中分离部分的数目。对于一个正常的程序来说,程序图总是连通的,即p=1。为了使之强连通,我们可以从出口点到入口点画一条虚弧。实际上,我们常常采用另一种计算方法来获得McCabe度量值,即对于单入口单出口模块(通常都属这种情况),我们只需计算程序中判断语句个数加1即可得V(G)值。McCabe度量法实质上是对程序控制流复杂性的度量,它并不考虑数据流,因而其科学性和严密性具有一定的局限性。
Halstead度量法Halstead度量法通过计算程序中的运算符和操作数的数量对程序的复杂性加以度量。设n1表示程序中不同运算符的个数,n2表示程序中不同操作数的个数,N1表示程序中实际运算符的总数,N2表示程序中实际操作数的总数。令H表示程序的