软件质量及质量模型

2008-04-09 04:06:39来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

----软件质量是一个复杂的概念,不同的人从不同的角度来看软件质量问题,会有不同的理解。从用户的角度看,质量就是满足客户的需求;从开发者的角度看,质量就是与需求说明保持一致;从产品的角度看,质量就是产品的内在特点;从价值的角度看,质量就是客户是否愿意购买。

----在软件项目开发过程中,项目经理眼中的质量就是能"令人满意"地工作以完成预期功能的软件产品。所谓"令人满意",包括功能、性能、接口需求及其他指标,如可靠性、可维护性、可复用性和正确性。然而在实际工作中,一旦出现问题时,项目管理人员必须权衡利弊,作出取舍,在满足某一个指标的同时,牺牲另外一个或几个指标。比如为了按期交货,需对软件功能进行分类,在第一个版本中实现优先级较高的功能,在第二个版本中实现优先级较低的功能。因此,项目经理需要一个对其工作有指导意义的质量模型和度量方法。该模型一方面可以帮助项目经理生产出符合标准的软件产品,另一方面帮助项目经理识别可能影响产品质量的风险。

----如上所述,项目经理需要一个易于理解的质量模型来帮助他评估软件的质量和对风险进行识别、管理。目前已有很多质量模型,它们分别定义了不同的软件质量属性。比较常见的三个质量模型是McCall模型(1977年)、Boehm模型(1978年)和ISO9126(1993年)。

----在项目开始的时候,项目经理应该根据客户的需求及项目的特点,选择一组项目管理目标,针对这组目标,设计一套数据测量和统计的方法。这组管理目标应该与软件产品和软件过程的属性相关,而这些属性能反映目标实现的概率。

----例如,从实用的角度出发,我们可以选择下面一组管理目标:需求的质量、产品的质量、开发的有效性、测试的有效性。

----这组目标既反映软件产品的质量属性,又反映软件过程的质量属性。模型的目标必须能通过一组属性来测量,以帮助对风险的定义和分类。

风险

----风险就是遭受损失的可能性。软件开发风险管理过程包括风险的识别、评估和排序及风险的监控。

----对大多数项目而言,容易产生风险的软件质量区域有:正确性、可靠性、可维护性、可复用性和交货期。

----对不同项目和不同的项目经理,上述风险区域的顺序可能是不同的。进行风险管理对质量模型提出了两点要求:一是要求模型支持对风险的量化表示;二是要求模型支持对整个项目的风险评估。即对风险的测量应该可以经归纳汇总得到某一软件阶段或整个项目所面临的风险。

----当项目的风险被识别和量化以后,应该对它们进行分类。如可以按采取措施的不同进行分级:

----低级按当前趋势推进,非常可能实现其目标,无需制定应急计划;

----中级按当前趋势推进,有可能实现其目标,需要制定应急计划;

----高级按当前趋势推进,很难实现其目标,需立即制定应急计划。

----分类工作通常需要统计数据的支持,且应由有经验的分析员来完成。

质量模型和风险评估

----一旦项目经理选定了管理目标,且定义了相关的质量属性,就应该着手定义测量标的。这些测量标的适用于整个软件生命周期,包括初期阶段,这将有助于在软件开发的初期发现潜在的问题。

需求质量

----1.需求质量及其风险

----需求是软件开发活动的基础,与需求相关的质量属性包括明确性、完整性、可理解性、需求的波动性、可跟踪性。

----软件需求定义包括功能需求,即软件应做哪些工作;性能需求,即做多少和做多快;接口需求,即软件与谁接口、如何接口和怎样接口。如果需求不明确、不完整或不易理解,就会出现最终产品不能满足需求的风险。

----2.需求的质量属性及其测量

----(1)明确性

----不明确的需求是指那些有多种含意的需求,这类需求在实现时,不同的开发人员会有不同的理解。有两组测量数据可以用来评估需求文档的明确性:一组是不明确的需求用语,一组是不确定的需求用语。

----不明确用语:适当的、合适的、适用的、不限于、通常、至少、不时。

----不确定用语:可以、也许、作为候选。

----需求的不明确性可以从不明确或不确定的需求用语中反映出来。

----(2)完整性

----完整的需求文档要求对需求的描述足够详细,使设计和实现可以在此基础上进行。用于评估需求完整性的测量标的可以选择文档中"待定"或"待补充"等用语的数目,这些地方往往是需求需要补充或修改的地方。

----(3)可理解性

----有两个标的物可以反映需求的可理解性:一个是需求文档的编号结构,另一个是可读性评估。通常,需求的编号结构(即其深度和广度)反映了需求文档的质量;另外,索引的可读性也是影响需求可理解性的重要因素之一。

----(4)需求的波动性

----需求的波动性是指需求的变化频率。需求变化对软件质量的影响随着开发工作的接近完成而越来越大,波动性的测量标的是在某一时间段里,需求的变化条目数与需求的总条目数之百分比。对变化条目的统计应来自项目的配置管理系统。

----(5)可跟踪性

----软件需求是从系统需求中分析得来的,系统需求应对其进行跟踪,以确保软件需求在系统设定的环境下正常工作。软件需求也须对其设计、实现及测试过程进行跟踪,以确保其作为软件一部分的正确性。有两个可跟踪性的测量标的物,一是没有对系统需求进行跟踪的软件需求条目数;另一个是没有跟踪到代码和测试的软件需求数。

----3.需求风险

----已被公认的一点是,质量差的需求文档及多变的需求是项目风险的主要来源。需求的波动性是风险的一个重要因素,需要下大力量对其进行测量,以减少其影响。需求变化发生得越晚,产生的影响越大,风险也越大。值得一提的是,对需求风险的测量应贯穿整个软件生命周期。

产品质量

----1.产品质量及其风险

----软件开发项目的主要目的就是生产符合项目需求的代码和文档。因此,需要进行测量的质量属性有:体系/结构、复用性、可维护性及文档与代码的一致性。

----2.软件质量属性和测量标的

----体系/结构、复用性和可维护性使用相同的质量属性,包括复杂性、程序大小及两者的关系。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:变革与突破—如何认识基于构件的软件开发方法

下一篇:成功软件开发者的9种编程习惯(三)