软件工程:实践者的研究方法第18章软件的技术度量

软件工程:实践者的研究方法第18章软件的技术度量,第1张

软件工程:实践者的研究方法第18章软件的技术度量,第2张

第18章 软件的技术度量

  测度是任意一个工程过程中的重要元素。运用测度,我们能更好的理解我们所建立的模型的属性,但最重要的是,我们还可以运用测度来评价我们所建立的工程化产品或系统的质量。

  不象其他的工程学科,软件工程并不是建立在基本物理定量规律上的。绝对测度,如电压、重量、速度、或者温度,在软件界中并不普遍。相反,我们是要设法获取一套间接测度方法来提供对软件质量的表示。因为软件测度不是绝对的,所以它们是可以讨论的。Fenton[FEN91]在讨论这个问题时谈到:

  测度是把数字或符号分配给现实世界实体的属性,根据明确定义的规则来定义它们……在物理科学、医学、经济和较新的社会科学方面,现在我们能够测度我们原先认为不能测度的属性……。当然,这些测度并不象在物理科学中定义的一些测度那么完美……,但是它们确实存在并且往往基于它们可作出重要的决策。为了提高我们对特定实体的理解,我们有责任尝试去测度所谓不可测度的东西,这种责任在软件工程中和在其他学科中是一样重要。

  但是有一些软件业人员继续争论道软件是不是可测度的或者说测度的尝试应该推迟到我们能更好地理解软件和用以描述软件的属性的时候。这是个错误的说法。

  虽然计算机软件的技术度量并不是绝对的,但是它们为我们提供了基于一套清晰定义规则的一种系统的方法来评价质量。它们同时还为软件工程提供了一种现场的而不是事后的洞察,这使得工程师能在潜在的问题变成灾难性错误前发现和纠正它们。

  在第4章我们讨论了运用在过程和项目级别的软件度量。在这一章,我们的重点转移到当产品被工程化的时候,可以用来评价产品的质量的度量。这些产品内部属性的测度为软件工程提供了对分析、设计和编码模型的有效性;测试用例的有效性以及要开发的软件整体质量的一个实时的指示。

18.1 软件质量

  甚至最老练的软件开发者都会同意高质量的软件是一个重要的目标,但是我们如何定义质量呢?一句谐趣话曾经这样说道,“每一个程序能正确地做某件事,但是这并不是我们想要它做的事情。”

  在第8章我们提出了许多不同的方法来看待软件质量并介绍了一个定义,它强调了与清晰描述的功能和性能需求的符合性、明显的文档的开发标准、以及被认为是所有专业开发的软件所应具备的隐式特征。

  毫无疑问上述定义可以被无休止地修改、扩展或讨论。针对本书的目的,定义强调了以下三个重点:

  1.软件需求是质量测度的基础。需求符合性的缺乏也就是缺乏质量。①

  2.特定的标准定义了一套开发标准,用以指导软件开发的方式。如果标准未能够遵守,那么缺少质量就几乎是肯定的结论。

  3.要有一套经常未被提及的隐式需求(例如,对好的可维护性的期望)。如果软件符合其显式的需求,但是未能满足隐式需求,软件质量仍是值得怀疑的。

  软件质量是一个多因素的复杂混合,这些因素随着不同的应用和需要它们的用户而变化。以下章节标识了软件质量因素,以及描述了用以获取它们的人类活动。

18.1.1 McCall的质量因素

  影响软件质量的因素可以分为两大类:(1)可以直接测度的因素(例如,每个功能点的错误)和(2)只能间接测度的因素(例如,可用性和可维护性)。在每种情况下测度都必须发生。我们必须对软件(文档、程序、数据)和一些数据作一些比较,并获得质量的指示。

  McCall和他的同事[MCC77]提出了对影响软件质量的因素的有用的分类。这些软件质量因素,如图18-1所示,集中在软件产品的三个重要方面:它的操作特性、它承受改变的能力、以及对新环境的适应能力。

  对于在图18-1提到的因素,McCall提供了如下的描述:

  正确性。一个程序满足它的需求规约和实现用户任务目标的程度。

  可靠性。一个程序期望以所需的精确度完成它的预期功能的程度。更完整的对可靠性的定义已经在前面提出过了(见第8章)。

  功效。一个程序完成其功能所需的计算资源和代码的数量。

  完整性。对未授权人员访问软件或数据的可控制程度。

  可用性。学习、操作、准备输入和解释程序输出所需的工作量。

  可维护性。定位和修复程序中一个错误所需的工作量。(这是一个十分局限的定义。)

  灵活性。修改一个运作的程序所需的工作量。

  可测试性。测试一个程序以确保它完成所期望的功能所需的工作量。

  可移植性。把一个程序从一个硬件和/或软件系统环境移植到另一个环境所需的工作量。

  可复用性。一个程序[或一个程序的一部分]可以在另外一个应用程序中复用的程度——这和程序完成的功能的包装和范围相关。

  互操作性。连接一个系统和另一个系统所需的工作量。

  很难,在一些情况下也不可能,去开发一个对以上的质量因素的直接测度,因此,定义一组度量,并被用于按照下面的关系为每个因素开发表达式:

Fq=c1×m1+c2×m2+…+cn×mn

  这里Fq是一个软件质量因素,cn是回归系数,mn是影响质量因素的度量值。不幸的是许多McCall定义的度量值只能主观地测度。度量可以用检查表的形式,来给软件的特定属性进行评分[CAV78]。由McCall提出的评分方案是从0(低)到10(高)的范围。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 软件工程:实践者的研究方法第18章软件的技术度量

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情