软件质量属性

软件质量属性
软件质量属性

第11章软件的质量属性

许多年前,我参加了一项工程,在该项目中用新的应用程序替换许多已有的主机(m a i n f r a m e)应用程序。根据用户的要求,开发组设计了一个基于窗口的用户界面并定义了新的数据文件,其容量是旧文件的两倍。虽然新系统满足了技术上的规范,但并没有达到客户可接受的程度。用户总是抱怨用户界面运行缓慢,并且新的数据文件所占用的磁盘空间太大。

用户没有陈述对新产品的一些特性的期望,这就不能在他们所提出的功能需求中体现出来。糟糕的是,开发者和用户没有详细地讨论新技术方法所牵涉到可能的性能,从而导致了用户期望与产品实际性能之间的期望差异。比起仅仅满足客户所要求的功能,软件的成功似乎更为重要。

11.1 非功能需求

用户总是强调确定他们的功能、行为或需求—软件让他们做的事情。除此之外,用户对产品如何良好地运转抱有许多期望。这些特性包括:产品的易用程度如何,执行速度如何,可靠性如何,当发生异常情况时,系统如何处理。这些被称为软件质量属性(或质量因素)的特性是系统非功能(也叫非行为)部分的需求。

质量属性是很难定义的,并且他们经常造成开发者设计的产品和客户满意的产品之间的差异。就像Robert Charette(1990)指出的那样:“真正的现实系统中,在决定系统的成功或失败的因素中,满足非功能需求往往比满足功能需求更为重要”。优秀的软件产品反映了这些竞争性质量特性的优化平衡。如果你在需求的获取阶段不去探索客户对质量的期望,那么产品满足了他们的要求,这只能说你很幸运。但更多的可能是客户失望和开发者沮丧。

虽然,在需求获取阶段客户所提出的信息中包含提供了一些关于重要质量特性的线索,但客户通常不能主动提出他们的非功能期望。用户说软件必须“健壮”,“可靠”或“高效”时,这是很技巧地指出他们所想要的东西。从多方面考虑,质量必须由客户和那些构造测试和维护软件的人员来定义。探索用户隐含期望的问题可以导致对质量目标的描述,并且制定可以帮助开发者创建完美产品的标准。

11.2 质量属性

虽然有许多产品特性可以称为质量属性(Quality Attribute),但是在许多系统中需要认真考虑的仅是其中的一小部分。如果开发者知道哪些特性对项目的成功至关重要,那么他们就能选择软件工程方法来达到特定的质量目标(Glass 1992; DeGrace and Stahl 1993)。根据不同的设计可以把质量属性分类(Boehm 1976; DeGrace and Stahl 1993)。一种属性分类的方法是把在运行时可识别的特性与那些不可识别的特性区分开(Bass, Clements and Kazman 1998)。另一种方法是把对用户很重要的可见特性与对开发者和维护者很重要的不可见特性区分开。那些对开发者具有重要意义的属性使产品易于更改、验证,并易于移植到新的平台上,从而可以间接地满足客户的需要。

在表11 -1中,分两类来描述每个项目都要考虑的质量属性;还有其它许多属性( C h a r e t t e 1 990)。一些属性对于嵌入式系统是很重要的(高效性和可靠性),而其它的属性则用于主机应用程序(有效性和可维护性)或桌面系统(互操作性和可用性)。在一个理想的范围中,每一个系统总是最大限度地展示所有这些属性的可能价值。系统将随时可用,决不会崩溃,可立即提供结果,并且易于使用。因为理想环境是不可得到的,因此,你必须知道表11 -1中那些属性的子集对项目的成功至关重要。然后,根据这些基本属性来定义用户和开发者的目标,从而产品的设计者可以作出合适的选择。

表11-1 软件质量属性

对用户最重要的属性对开发者最重要的属性

有效性(a v a i l a b i l i t y)可维护性( m a i n t a i n a b i l i t y)

高效性( e f ficiency) 可移植性( p o r t a b i l i t y)

灵活性( f l e x i b i l i t y)可重用性( r e u s a b i l i t y)

完整性(integrity) 可测试性( t e s t a b i l i t y)

互操作性( i n t e r o p e r a b i l i t y)

可靠性( r e l i a b i l i t y)

健壮性( r o b u s t n e s s)

可用性( u s a b i l i t y)

产品的不同部分与所期望的质量特性有着不同的组合。高效性可能对某些部分是很重要的,而可用性对其它部分则很重要。把应用于整个产品的质量特性与特定某些部分、某些用户类或特殊使用环境的质量属性要区分开。把任何全局属性需求记录到在第9章所示的软件需求规格说明的第e .4部分中,并把特定的目标和列在软件需求规格说明第d部分的特性、使用实例或功能需求相联系起来。

11.3 定义质量属性

你必须根据用户对系统的期望来确定质量属性。定量地确定重要属性提供了对用户期望的清晰理解,这将有助于设计者提出最合理的解决方案(Gilb 1988)。然而,大多数用户并不知道如何回答诸如“互操作性对你的重要性如何?”或者“软件应该具有怎样的可靠性?”等问题。在一个项目中,分析员想出了对于不同的用户类可能很重要的属性,并根据每一个属性设计出许多问题。他们利用这些问题询问每一个用户类的代表,可以把每个属性分成一级(不必多加考虑的属性)到五级(极其重要的属性)。这些问题的回答有助于分析员决定哪些质量特性用作设计标准是最重要的。

然后,分析员与用户一起为每一属性确定特定的、可测量的和可验证的需求(R o b e r t s o n and Robertson 1997)。如果质量目标不可验证,那么就说不清你是否达到这些目标。在合适的地方为每一个属性或目标指定级别或测量单位,以及最大和最小值。如果你不能定量地确定某些对你的项目很重要的属性,那么至少应该确定其优先级。I E E E关于软件质量度量方法的标准提出了一个在综合质量度量基准体系下定义软件质量需求的方法(IEEE 1992)。

另一个定义属性的方法是确定任何与质量期望相冲突的系统行为(Voas 1999)。通过定义不悦人意行为—一种反向需求—你可以设计出强制系统表现出那些行为的测试用例。如果你不能强制系统,那么你可能达到了你的属性目标。这种方法最适用于要求安全性能很高的

应用程序,在这些应用程序中,系统的差错可能会导致生命危险。

这一节的剩余部分将简要地介绍列在表11 -1中的每一个质量属性,并提出一些有助于用户陈述他们对质量属性期望的问题。虽然这些例子有些简单,但提供了由“化学制品跟踪系统”或其他项目总结出的样本目标的陈述。你将需要选择最好的方法来表达每一个质量属性需求,这样可以指导开发者进行设计选择。

11.3.1 对用户重要的属性

1) 有效性有效性指的是在预定的启动时间中,系统真正可用并且完全运行时间所占的百分比。更正式地说,有效性等于系统的平均故障时间(M T T F)除以平均故障时间与故障修复时间之和。有些任务比起其它任务具有更严格的时间要求,此时,当用户要执行一个任务但系统在那一时刻不可用时,用户会感到很沮丧。询问用户需要多高的有效性,并且是否在任何时间,对满足业务或安全目标有效性都是必须的。一个有效性需求可能这样说明:“工作日期间,在当地时间早上6点到午夜,系统的有效性至少达到9 9.5%,在下午4点到6点,系统的有效性至少可达到9 9.95%。

2) 效率效率是用来衡量系统如何优化处理器、磁盘空间或通信带宽的(Davis 1993)。如果系统用完了所有可用的资源,那么用户遇到的将是性能的下降,这是效率降低的一个表现。拙劣的系统性能可激怒等待数据库查询结果的用户,或者可能对系统安全性造成威胁,就像一个实时处理系统超负荷一样。为了在不可预料的条件下允许安全缓冲,你可以这样定义:“在预计的高峰负载条件下,1 0%处理器能力和1 5%系统可用内存必须留出备用。”在定义性能、能力和效率目标时,考虑硬件的最小配置是很重要的。

3) 灵活性就像我们所知道的可扩充性、增加性、可延伸性和可扩展性一样,灵活性表明了在产品中增加新功能时所需工作量的大小。如果开发者预料到系统的扩展性,那么他们可以选择合适的方法来最大限度地增大系统的灵活性。灵活性对于通过一系列连续的发行版本,并采用渐增型和重复型方式开发的产品是很重要的。在我曾经参与的一个图形工程中,灵活性目标是如下设定的:“一个至少具有6个月产品支持经验的软件维护程序员可以在一个小时之内为系统添加一个新的可支持硬拷贝的输出设备。”

4) 完整性完整性(或安全性)主要涉及:防止非法访问系统功能、防止数据丢失、防止病毒入侵并防止私人数据进入系统。完整性对于通过W W W执行的软件已成为一个重要的议题。电子商务系统的用户关心的是保护信用卡信息,We b的浏览者不愿意那些私人信息或他们所访问过的站点记录被非法使用。完整性的需求不能犯任何错误,即数据和访问必须通过特定的方法完全保护起来。用明确的术语陈述完整性的需求,如身份验证、用户特权级别、访问约束或者需要保护的精确数据。一个完整性的需求样本可以这样描述:“只有拥有查账员访问特权的用户才可以查看客户交易历史。”

5) 互操作性互操作性表明了产品与其它系统交换数据和服务的难易程度。为了评估互操作性是否达到要求的程度,你必须知道用户使用其它哪一种应用程序与你的产品相连接,还要知道他们要交换什么数据。“化学制品跟踪系统”的用户习惯于使用一些商业工具绘制化学制品的结构图,所以他们提出如下的互操作性需求:“化学制品跟踪系统应该能够从

C h e m i

D r a w和C h e m-S t r u c t工具中导入任何有效化学制品结构图。”

6) 可靠性可靠性是软件无故障执行一段时间的概率(Musa, Iannino and Okumoto 1987)。

健壮性和有效性有时可看成是可靠性的一部分。衡量软件可靠性的方法包括正确执行操作所占的比例,在发现新缺陷之前系统运行的时间长度和缺陷出现的密度。根据如果发生故障对系统有多大影响和对于最大的可靠性的费用是否合理,来定量地确定可靠性需求。如果软件满足了它的可靠性需求,那么即使该软件还存在缺陷,也可认为达到其可靠性目标。要求高可靠性的系统也是为高可测试性系统设计的。

我的开发组曾经开发过一个用于控制实验室设备的软件,这些设备全天工作并且使用稀有的、昂贵的化学制品。用户要求真正与实验相关的那部分软件要高可靠性,而其它系统功能,例如周期性地记录温度数据,则对可靠性要求不高。对于该系统的一个可靠性需求说明如下:“由于软件失效引起实验失败的概率应不超过5‰”。

7) 健壮性健壮性指的是当系统或其组成部分遇到非法输入数据、相关软件或硬件组成部分的缺陷或异常的操作情况时,能继续正确运行功能的程度。健壮的软件可以从发生问题的环境中完好地恢复并且可容忍用户的错误。当从用户那里获取健壮性的目标时,询问系统可能遇到的错误条件并且要了解用户想让系统如何响应。

我曾经主持过一个叫作图形引擎的可重用软件组件的开发,该图形引擎具有描述图形规划的数据文件,并且把这一规划传送到指定的输出设备上(Wiegers 1996b)。许多需要产生规划的应用程序就要请求调用图形引擎。由于在图形引擎中,我们将无法控制这些应用程序的数据,所以此时健壮性就成为必不可少的质量属性。我们的一个健壮性需求是这样说明的:“所有的规划参数都要指定一个缺省值,当输入数据丢失或无效时,就使用缺省值数据。”这个例子反映了对一个“用户”是另一个软件应用程序的产品,其健壮性设计的方法。

8) 可用性可用性也称为“易用性”和“人类工程”,它所描述的是许多组成“用户友好”的因素。可用性衡量准备输入、操作和理解产品输出所花费的努力。你必须权衡易用性和学习如何操纵产品的简易性。“化学制品跟踪系统”的分析员询问用户这样的问题:“你能快速、简单地请求化学制品并浏览其它信息,这对你有多重要?”和“你请求一种化学制品大概需花多少时间?”对于定义使软件易于使用的许多特性而言,这只是一个简单的起点。对于可用性的讨论可以得出可测量的目标,例如“一个培训过的用户应该可以在平均3分钟或最多5分钟时间以内,完成从供应商目录表中请求一种化学制品的操作。”

同样,调查新系统是否一定要与任何用户界面标准或常规的相符合,或者其用户界面是否一定要与其它常用系统的用户界面相一致。这里有一个可用性需求的例子:“在文件菜单中的所有功能都必须定义快捷键,该快捷键是由 C t r l键和其它键组合实现的。出现在M i c r o s o f t Word 2000中的菜单命令必须与Wo r d使用相同的快捷键”。

可用性还包括对于新用户或不常使用产品的用户在学习使用产品时的简易程度。易学程度的目标可以经常定量地测量,例如,“一个新用户用不到3 0分钟时间适应环境后,就应该可以对一个化学制品提出请求”,或者“新的操作员在一天的培训学习之后,就应该可以正确执行他们所要求的任务的9 5%”。当你定义可用性或可学性的需求时,应考虑到在判断产品是否达到需求而对产品进行测试的费用。

11.3.2 对开发者重要的属性

1) 可维护性可维护性表明了在软件中纠正一个缺陷或做一次更改的简易程度。可维护性取决于理解软件、更改软件和测试软件的简易程度,可维护性与灵活性密切相关。高可维

护性对于那些经历周期性更改的产品或快速开发的产品很重要。你可以根据修复( f i x)一个问题所花的平均时间和修复正确的百分比来衡量可维护性。

“化学制品跟踪系统”包括如下的可维护性需求:“在接到来自联邦政府修订的化学制品报告的规定后,对于现有报表的更改操作必须在一周内完成。”在图形引擎工程中,我们知道,我们必须不断更新软件以满足用户日益发展的需要,因此,我们确定了设计标准以增强系统总的可维护性:“函数调用不能超过两层深度“,并且“每一个软件模块中,注释与源代码语句的比例至少为1∶2。”认真并精确地描述设计目标,以防止开发者做出与预定目标不相符的愚蠢行为。

2) 可移植性可移植性是度量把一个软件从一种运行环境转移到另一种运行环境中所花费的工作量。软件可移植的设计方法与软件可重用的设计方法相似(Glass 1992)。可移植性对于工程的成功是不重要的,对工程的结果也无关紧要。可以移植的目标必须陈述产品中可以移植到其它环境的那一部分,并确定相应的目标环境。于是,开发者就能选择设计和编码方法以适当提高产品的可移植性。

3) 可重用性从软件开发的长远目标上看,可重用性表明了一个软件组件除了在最初开发的系统中使用之外,还可以在其它应用程序中使用的程度。比起创建一个你打算只在一个应用程序中使用的组件,开发可重用软件的费用会更大些。可重用软件必须标准化、资料齐全、不依赖于特定的应用程序和运行环境,并具有一般性(DeGrace and Stahl 1993)。确定新系统中哪些元素需要用方便于代码重用的方法设计,或者规定作为项目副产品的可重用性组件库。

4) 可测试性可测试性指的是测试软件组件或集成产品时查找缺陷的简易程度。如果产品中包含复杂的算法和逻辑,或如果具有复杂的功能性的相互关系,那么对于可测试性的设计就很重要。如果经常更改产品,那么可测试性也是很重要的,因为将经常对产品进行回归测试来判断更改是否破坏了现有的功能性。

因为我们知道随着图形引擎功能的不断增强,我们需要对它进行多次测试,所以作出了如下的设计目标:“一个模块的最大循环复杂度不能超过2 0。”循环复杂度度量一个模块源代码中逻辑分支数目(McCabe 1982)。在一个模块中加入过多的分支和循环将使该模块难于测试、理解和维护。如果一些模块的循环复杂度大于 2 0,这并不会导致整个项目的失败,但指定这样的设计标准有助于开发者达到一个令人满意的质量目标。

11.4 属性的取舍

有时,不可避免地要对一些特定的属性对进行取舍。用户和开发者必须确定哪些属性比其它属性更为重要,并定出优先级。在他们作决策时,要始终遵照那些优先级。图11 -1描述了来自表11 -1的质量属性之间一些典型的相互关系,当然你也可能会遇到一些例外( C h a r e t t e 1 990;IEEE 1992; Glass 1993)。一个单元格中的加号表明单元格所在行的属性增加了对其所在列的属性的积极影响。例如,增强软件可重用性的设计方法也可以使软件变得灵活、更易于与其它软件组件相连接、更易于维护、更易于移植并且更易于测试。

一个单元格中的减号表明单元格所在行的属性增加了对其所在列的属性的不利影响。高效性对其它许多属性具有消极影响。如果你编写最紧凑,最快的代码,并使用一种特殊的预编译器和操作系统,那么这将不易移植到其它环境,而且还难于维护和改进软件。类似地,一些优化操作者易用性的系统或企图具有灵活性、可用性并且可以与其它软硬件相互操作的

系统将付出性能方面的代价。例如,比起使用具有完整的制定图形代码的旧应用系统,使用外部的通用图形引擎工具生成图形规划将大大降低性能。你必须在性能代价和你所提出的解决方案的预期利益之间作出权衡,以确保作出合理的取舍。

图11-1 选择的质量属性之间的正负关系

为了达到产品特性的最佳平衡,你必须在需求获取阶段识别、确定相关的质量属性,并且为之确定优先级。当你为项目定义重要的质量属性时,利用图11 -1可以防止发生与目标冲突的行为。以下是一些例子:

? 如果软件要在多平台下运行(可移植性),那么就不要对可用性抱有乐观态度。

? 可重用软件能普遍适用于多种环境中,因此,不能达到特定的容错(可靠性)或完整性目标。

? 对于高安全的系统,很难完全测试其完整性需求;可重用的类组件或与其它应用程序的互操作可能会破坏其安全机制。

在软件中,其自身不能实现质量特性的合理平衡。在需求获取的过程中,加入对质量属性期望的讨论,并把你所了解的写入软件需求规格说明中。这样,才有可能提供使所有项目风险承担者满意的产品。

下一步:

? 从表11 -1中确定一些对于你目前项目的用户至关重要的质量属性。系统地陈述每个属性的一两个问题,这将有助于用户说清他们的期望。基于用户的回答,为每一个重要属性写出一两个明确的目标。

第3章软件质量与评价

第3章软件质量与评价(软件测试标准) 1、质量的定义 质量是多维的概念,包括:实体、实体的属性和对实体的观点。 GB/T6583-ISO8404(1994版)《质量管理与质量保证术语》对质量的定义是:反映实体满足明确的隐含的需要的能力的特性的总和。 GB/T18905-ISO14598(1999版)《软件工程产品评价》定义: 2、测度与度量 在软件质量中用于测量的一种量化的标度和方法即为“测度”,而名词的“度量”用来指测量的结果。 影响软件质量可分为:可直接测量、间接度量 3、软件质量模型 ○1、McCall(麦考尔)质量模型 三个重要方面:操作特性(产品运行)、承受可改变能力(产品修订)、新环境适应能力(产品变迁)。 McCall等认为,特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的优劣。 ②Boehm(勃姆)质量模型 提出了分层结构的质量模型,除了用户的期望和需要的概念,与McCall(麦考尔)质量模型相同外,还包括McCall模型中没有的硬件特性。 Boehm(勃姆)质量模型反映了对软件质量的理解,即软件做了用户要它做的;有效地使用系统资源;易于用户学习和使用;易于软件测试与维护。 ③ISO9126质量模型 GB/T16260-1996:六个影响质量的特性:功能性、可靠性、易使用性、效率、可维护性、可移植性;各个子特性(及其定义)要求要背 GB/T16260-1996出发点是软件最大限度地满足用户的明确的和潜在的需求。 国标16260中,在描述外部(内部)效率度量时,给出了若干针对计算机系统时间消耗的定义如下: ①响应时间是指从按动传送键到得到结果为止所需要的时间或响应时间包括处 理时间和传输时间 ②处理时间是指从接受一个消息到送出它的结果之间计算机的历时时间 ③ 周转时间是指从提出要求到得到结果所需要的时间 4、标准的发展 GB/T 16260-1996(ISO9126-1991)《软件产品评价-质量特性及其使用指南》已被两个相关的由多部分组成的标准:GB/T 18905-2002《软件工程产品评价》和GB/T 16260-2003(ISO9126-2001)《软件工程产品质量》所取代。 5、GB/T 18905产品评价 (一、GB/T 18905基本组成(6个部分组成) GB/T 软件工程产品评价第1部分: 概述 GB/T 软件工程产品评价第2部分: 策划和管理 GB/T 软件工程产品评价第3部分: 开发者用的过程

软件质量的特性

软件的质量特性质量特性说明子特性 一、功能性: 指满足明确或隐 含的需求的那些功能 1、适合性:提供了相应的功能 2、准确性:正确(用户需要的) 3、互操作性:产品与产品之间交互数据的能力 4、保密安全性:允许经过授权的用户和系统能够正常的访 问相应的数据和信息,禁止未授权的用户访问....... 5、功能性的依从性:国际/国家/行业/企业标准规范一致性 二、可靠性: 产品在规定的条 件下,在规定的时间内 完成规定功能的能力 1、成熟性:防止内部错误导致软件失效的能力 2、容错性:软件出现故障,自我处理能力 3、易恢复性:失效情况下的恢复能力 4、可靠性的依从性 三、易用性: 在指定使用条件 下,产品被理解、学 习、使用和吸引用户的 能力 1、易理解性: 2、易学性: 3、易操作性: 4、吸引性: 5、易用性的依从性: 四、效率性: 在规定台条件下, 相对于所用资源的数 量,软件产品可提供适 当性能的能力 1、时间特性:平均事务响应时间, 吞吐率, TPS(每秒事务数) 2、资源利用性:CPU 内存磁盘IO 网络带宽队列共享内 存 3、效率依从性: 五、维护性 "四规",在规定条 件下,规定的时间内, 1、易分析性:分析定位问题的难易程度 2、易改变性:软件产品使指定的修改可以被实现的能力

使用规定的工具或方法修复规定功能的能力3、稳定性:防止意外修改导致程序失效 4、易测试性:使已修改软件能被确认的能力 5、维护性的依从性 六、可移植性 从一种环境迁移 到另一种环境的能力 1、适应性:适应不同平台 2、易安装性:被安装的能力 3、共存性: 4、易替换性 5、可移植性的依从性:

软件质量属性

(1)正确性 正确性是指软件按照需求正确执行任务的能力。“正确性”的语义涵盖了“精确性”。 正确性无疑是第一重要的软件质量属性。 技术评审和测试的第一关都是检查工作成果的正确性。 (2)健壮性 健壮性是指在异常情况下,软件能够正常运行的能力。 正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。 开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。 健壮性有两层含义:一是容错能力,二是恢复能力。 从语义上理解,恢复不及容错那么健壮。 Unix容错能力很强,可惜不好用。 Windows容错能力较差,但是恢复能力很好,而且很好用。占了90% 的操作系统市场。 (3)可靠性 可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。 平时软件运行得好好的,说不准哪一天就不正常了,如(千年等一回的“千年虫”问题)等。 软件可靠性分析通常采用统计方法 时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当维护人员十万火急地赶到现场时,错误消失了;等维护人员回家后,错误又出现了。… 软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡规范化程序设计,预防可靠性祸害。 (4)性能 性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。 既要马儿跑得快,又要马儿吃的少。 性能优化的关键工作是找出限制性能的“瓶颈”,不要在无关痛痒的地方瞎忙乎。 性能优化就好像从海绵里挤水一样,你不挤,水就不出来,你越挤海绵越干。 (5)易用性 易用性是指用户使用软件的容易程度 导致软件易用性差的根本原因: 理工科大学教育存在缺陷 开发人员犯了“错位”的毛病 软件的易用性要让用户来评价。 (6)清晰性 清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。 开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。 可理解的东西通常是简洁的。 (7)安全性

软件质量特性

软件质量特性:功能性、可靠性、可用性、效率、可维护性、可移植性 (1)功能性:与功能及其指定的性质有关的一组软件属性。包括适宜性、准确性、互用性、依从性、安全性。 适宜性:规定任务提供一组功能的能力及这组功能的适宜程度。 准确性:系统满足规格说明和用户目标的程度,即在预定环境下能正确地完成预定功能的程度。 互用性:同其它指定系统协同工作能力。 依从性:软件服从有关标准、约定、法规及类似规定的程度。 安全性:避免对程序或数据的非授权故意或意外访问的能力。 (2)可靠性:与软件在规定的一段时间内和规定的条件下维持其性能水平有关的一组软件属性。包括成熟性、容错性、可恢复性。 成熟性:由软件故障引起失效的频度。 容错性:在软件错误或违反指定接口情况下维持指定性能水平的能力。可恢复性:在故障发生后重新建立其性能水平、恢复直接受影响数据的能力,以及为达到目的所需的时间与工作量。 (3)可用性:与使用的难易程度及规定或隐含用户对使用方式所做的评价有关的软件属性。包括可理解性、易学性、可操作性。 可理解性:用户理解该软件系统的难易程度。 易学性:用户学习使用该软件系统的难易程度。 可操作性:用户操作该软件系统的难易程度。 (4)效率:与在规定条件下软件的性能水平与所用资源量之间的关

系有关的一组属性。包括时间特性、资源特性。 时间特性:响应和处理时间及软件执行其功能是的吞吐量。 资源特性:软件执行其功能时,所使用的资源量及使用资源的持续时间。(5)可维护性:与软件维护的难易程度有关的一组软件属性。包括可分析性、可修改性、稳定性、可测试性。 可分析性:诊断缺陷或失效原因、判定待修改程序的难易程度。 可修改性:修改、排错或适应环境变化的难易程度。 稳定性:修改造成难以预料的后果的风险程度。 可测试性:测试已修改软件的难易程度。 (6)可移植性:与软件可从某一环境转移到另一环境的能力有关的一组软件属性。包括适应性、易安装性、一致性、可替换性。 适应性:软件无需采用特殊处理就能适应不同的规定环境的程度。 易安装性:在指定环境下安装软件的难易程度。 一致性:软件服从于可移植性有关的标准或约定的程度。 可替换性:软件在特定软件环境中用来替代指定的其他软件的可能性和难易程度。

软件产品评价 软件质量特性及其使用指南

中华人民共和国国家标准 GB/T16260—1996 idt ISO/IEC9126:1991 信息技术软件产品评价质量特性及其使用指南 Information technology-software product evaluation-Quality characteristics and guidelines for their use ----------------------------------------------------------- 1.范围 本标准定义了六个特性,它们以最小的重迭描述了软件质量。这些特性可以作为进一步细化和描述软件质性的基线。本际准描述了如何使用质量特性来评价软件质量。 本标准正文不规定子特性和度量以及有关测量(masurement)、评级(rating)和评估(asscssment)的方法。本际准符合GB/T 6583-92的质量定义。 注:在附录A中提供了子特性定义的建议,供参考。 本标准的特性定义和相关的质量评价过程模型适用于对软件产品质量需求的确 定以及在软件生存期中对软件产品质量的评价。 这些特性运用于各种软件,包括固件中的计算机程序和数据。 本标准供获取(acquisition)、开发(development)、使用(use)、支持(support)、维护(maintenancen)或评审(audit)软件的那些人所使用。 2.引用标准 下列标准包含的条文,通过在本标准中引用而构成为本标准的条文。本标准出版时,所示版本均为有效。所有标准都会被修订.使用本标准的各方应探讨使用下列标准最新版本的可能性。. GB/T 6583-92质量术语(idt ISO 84O2:1986) 部分:系统开发2O第词汇信息技术1990 :2O-ISO/IEC 2382. 3.定义 下列定义适用于本标准 3.1发评估assessment 为了确定一特定的软件模块、软件包或软件产品是验收合格还是发布,把特定的已成文的评估准则应用到该软件模块、软件包或软件产品上去的活动。 3.2特征features 特征是一软件产品的可识别的性质,该性质与质量特性相关。

软件质量模型的六大特性个子特性

软件质量模型的六大特性27个子特性 一、功能性: 1、适合性:软件是否提供了相应的功能 2、准确性:软件提供的功能是否正确(用户需要的) 3、互操作性:产品与产品之间交互数据的能力,例如word对其他文档的支持能力 4、保密安全性:允许经过授权的用户和系统能够正常的访问相应的数据和信息,禁止未授权的用户访问....... 5、功能性的依从性:国际/国家/行业/企业标准规范一致性 二、可靠性:产品在规定的条件下,在规定的时间内完成规定功能的能力 1、成熟性:软件产品为避免软件内部的错误扩散而导至系统失效的能力(主要是对内错误的隔离),exception等的处理 2、容错性:软件防止外部接口错误扩散而导致系统失效的能力(主要是对外错误的隔离) 3、易恢复性:系统失效后,重新恢复原有的功能和性能的能力。 4、可靠性的依从性 三、易用性:在指定使用条件下,产品被理解、学习、使用和吸引用户的能力 1、易理解性:软件交互给用户的信息时,要清晰,准确,且要易懂,使用户能够快速理解软件。 2、易学性:软件使用户能学习其应用的能力。 3、易操作性:软件产品使用户能易于操作和控制它的能力。 4、吸引性: 5、易用性的依从性: 四、效率性:在规定台条件下,相对于所用资源的数量,软件产品可提供适当性能的能力 1、时间特性:平均事务响应时间,吞吐率,TPS(每秒事务数). 软件处理特定的业务请求所需要的响应时间。 2、资源利用性:CPU 内存磁盘IO 网络带宽队列共享内存. 软件处理特定的业务请求所消耗的系统资源。 3、效率依从性: 五、软件维护性:"四规",在规定条件下,规定的时间内,使用规定的工具或方法修复规定功能的能力 1、易分析性:分析定位问题的难易程度 2、易改变性:软件产品使指定的修改可以被实现的能力 3、稳定性:防止意外修改导致程序失效 4、易测试性:使已修改软件能被确认的能力 5、维护性的依从性 六、软件可移植性:从一种环境迁移到另一种环境的能力 1、适应性:适应不同平台 2、易安装性:被安装的能力 3、共存性:软件产品在公共环境中与其它软件分享公共资源共存的软件。 4、易替换性: 软件产品在同样的环境下,替代另一个相同用途的软件产品的能力。 5、可移植性的依从性:

常见的软件质量模型教学教材

常见的软件质量模型

常见的软件质量模型 关于软件质量模型,业界已经有很多成熟的模型定义,比较常见的质量模型有McCall 模型、Boehm 模型、FURPS 模型、Dromey 模型和 ISO9126 模型。 ?Jim McCall 软件质量模型(1977 年) ?Barry W. Boehm 软件质量模型(1978 年) ?FURPS/FURPS+ 软件质量模型 ?R. Geoff Dromey 软件质量模型 ?ISO/IEC 9126 软件质量模型(1993 年) ?ISO/IEC 25010 软件质量模型(2011 年) Jim McCall 软件质量模型(1977 年)Jim McCall 的软件质量模型,也被称为 GE 模型(General Electrics Model)。其最初起源于美国空军,主要面向的是系统开发人员和系统开发过程。McCall 试图通过一系列的软件质量属性指标来弥补开发人员与最终用户之间的沟壑。 McCall 质量模型使用 3 中视角来定义和识别软件产品的质量: 1.Product revision (ability to change). 2.Product transition (adaptability to new environments). 3.Product operations (basic operational characteristics).

McCall 模型通过层级的要素、标准和指标来详述这 3 个视角定义(产品修改、产品转移、产品运行)。 ?11 Factors (To specify):描述软件的外部视角,也就是客户或使用者的视角。 ?23 Criterias (To build):描述软件的内部视角,也就是开发人员的视角。 ?Metrics (To control):定义衡量指标和方法 下图中,左侧为 11 个质量要素,右侧为 23 个质量标准。

质量管理体系架构设计

质量管理体系架构设计 ISO9000族标准博大精深,是多少年来世界级质量管理专家研究成果的高度总结,现代质量管理理论自最早起源于二十世纪第二次世界大战期间以来,经过众多成功企业的经验和同样众多企业失败的教训,不断反复实践,于1987年诞生,在这里,质量是一个不断变化的概念,从最早的质量检验到后来的质量控制,以至于今天的质量管理体系,其内容不断更新,不断兼收并蓄,质量是一个“大质量”的概念。 质量管理体系标准蕴含的深刻含义在于质量管理的目的是企业管理,整个标准讲的是企业的整体管理,一个企业要想搞好质量,离不开企业的整体管理思路和整体管理水平,它从企业管理的高度来要求员工做好各项工作,管理好“质量”,从而以工作质量保证产品质量、服务质量。《ISO9001:2008 质量管理体系要求》有力地帮助企业在获得收益之前有效地规避经营风险;《ISO9004:2009 质量管理体系业绩改进指南》则进一步帮助企业获得业绩,从而使企业保持稳步健康发展。另外,质量管理体系也是其它许多管理体系的理论基础,如环境管理体系、职业健康安全管理体系及国家于2008年发布的《企业内部控制规范》等。ISO9000族标准的权威性毋庸置疑! ISO9001开篇第一句话就是“采用质量管理体系应当是组织的一项战略性决策”。既然是战略性的,就需要最高管理者首先分析组织内部的各种需求,第一项需求分析就应当是——我们公司为什么要建立质量管理体系?答案各种各样:“因为形势所迫”、“因为市场的需要、客户的要求”、“因为大家都有了我不能落后”……这样的需求不是内在的、自发的,而是外部的、强制的,正是由于缺乏内在动力,致使质量体系的推广和运行工作受阻、处处碰壁,最终流于形式。在我看来,大家普遍对这项工作缺乏热情,存在很深的误解,个别部门甚至认为质量工作就是质量部门的事情(或许还有个潜台词:“否则要质量部那些人干嘛?”),那么真正的动力在哪里?应该在企业内部,真正的需求是什么?是企业提高自身素质的急迫需要。一个企业,首先要有比较完善的管理制度,还要有进一步提高管理水平的需要,才会对ISO9000有诉求。 更重要的是公司的最高管理者要对此项工作给予高度关注,这需要:企业的最高管理者和管理者代表有树立“管理透明、制度面前人人平等。”的强大决心;质量工作负责人(包括部门负责人)有面对和处理在一段时间内可能会出现高度混乱、冲突激烈、极度情绪化等情况的思想准备;基层工作人员应有质量管理是公司发展大势所趋的基本认知。 2、质量管理体系总体架构设计 质量管理体系架构包括质量管理体系指导思想、质量管理体系组织制度、质量管理体系实施方法三个层次。 2.1质量管理 建立文件化的质量管理体系绝不是建立文件的质量管理体系,许多公司建立体系的过程通常是这样的:花五分之四的精力编写或照搬其他公司的质量手册和程序文件,花十分之一的精力编造文件执行过程中的假记录,剩下的用来应付各种审核、认证、上级部门检查,最后把文件束之高阁,没人再去过问,甚至连编写文件的人都好像要忘了它们的存在。 我们写质量体系文件,应该顺应企业本身原有的、长期运行的过程,拿这些过程来和ISO9000标准进行对照,对于不足部分,要提出改造的要求——“过程的识别”,这里说的实际上就是“实践先行”的原则。而许多企业的体系文件却是“概念先行”。有一个概念,就要对应一个程序文件,对应一堆记录。这样的不从实际出发的、概念性的文件是很难执行的。过程分析是第一步,也是至关重要的一步(当然在此之前还有一个也是很重要的,就是对标准的理解、探讨和统一认识)。过程分析这一步是ISO9000标准开篇就讲过的、却被不少企业忽视的一步。分析什么?分析企业都有哪些过程、这些过程是怎么实现的、又是怎么管理这些过程的。把这些过程都摆到桌面上来,仔细分析一下,哪些是符合或基本符合标准

软件质量管理与控制

第8章 软件质量管理与控制 8.1 目的 软件质量管理的目的是通过分析质量要素和质量目标,制定合适的质量计划,整合技术评审、软件测试、质量保证、缺陷(或问题)跟踪等手段,保证软件开发质量。 8.2 关键活动与流程 软件质量管理的流程如图8-1所示,关键活动是“制定质量计划”、“技术评审”、“软件测试”、“质量保证”、“缺陷跟踪和问题跟踪”。 图8-1中,在技术评审、软件测试和质量保证活动中发现的缺陷和问题,都采用缺陷跟踪工具和问题跟踪工具来管理。 质量人员 测试人员 图8-1 软件质量管理的流程 该流程的主要工作成果见表8-1。 表8-1 软件质量管理流程的主要工作成果 8.2.1 制定质量计划 质量计划是软件质量管理的行动纲领,通常由项目经理和质量人员共同协商制定质量计划。 如果机构有独立的质量人员,那么由质量人员起草《质量计划》,递交给项目经理和质量经理审批。如果机构没有独立的质量人员,那么项目经理兼任质量人员和质量经理的角色。 表8-2为《质量计划》的参考格式。

表8-2 质量计划 8.2.2 技术评审 技术评审的目的是通过同行专家对工作成果的评审进行讨论,尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。 技术评审的主要好处有: ☆通过消除工作成果的缺陷而提高产品的质量。 ☆技术评审可以在任何开发阶段执行,不必等到软件可以运行之际,越早消除缺陷就越能降低开发成本。 ☆开发人员能够及时地得到同行专家的帮助和指导,无疑会加深对工作成果的理解,更好地预防缺陷,一定程度上提高了开发生产率。 理论上讲,为了确保产品的质量,产品的所有工作成果都应当接受技术评审。现实中,为了节约时间,允许人们有选择地对工作成果进行技术评审。在制定质量计划的时候,应该确定技术评审计划。 技术评审是团体活动,一般地,机构没有专职的技术评审人员,当需要技术评审的时候临时组织人员就可以了。质量人员应当参与重要的技术评审会议,这样既监督了技术评审,又加深对工作成果的了解。 技术评审的一般流程如图8-2所示。

软件质量特性

软件质量特性 功能性:与一组功能及其指定的性质有关的一组属性 可靠性:与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性 易用性:与一组规定或潜在的用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组属性 效率:与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性 可维护性:与进行指定的修改所需的努力有关的一组属性 可移植性:与软件可从某一环境转移到另一环境的能力有关的一组属性 软件质量特性–功能性 适合性:与规定任务能否提供一组功能以及这组功能的适合程度有关的软件属性准确性:与能否得到正确或相符的结果或效果有关的软件属性 互用性:与同其他指定系统进行交互的能力有关的软件属性 依从性:使软件遵循有关的标准,约定,法规及类似规定的软件属性 安全性:与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性 软件质量特性–可靠性 成熟性:与由软件故障引起失效的频度有关的软件属性 容错性:与在软件故障或违反指定接口的情况下,维持规定的性能水平的能力有关的软件属性 易恢复性:与在失效发生后,重建其性能水平并恢复直接受影响数据的能力以及为达此目的所需的时间和能力有关的软件属性 软件质量特性–易用性 易理解性:与用户为认识逻辑概念及其应用范围所花的努力有关的软件属性 易学性:与用户为学习软件应用所花的努力有关的软件属性 易操作性:与用户为操作和运行控制所花努力有关的软件属性 软件质量特性–效率 时间特性:与软件执行其功能时响应和处理时间以及吞吐量有关的软件属性 资源特性:与在软件执行其功能时所使用的资源数量及其使用时间有关的软件属性

软件质量特性–可维护性 易分析性:与为诊断缺陷或失效原因及为判定待修改的部分所需努力有关的软件属性 易改变性:与进行修改,排除错误或适应环境变化所需努力有关的软件属性 稳定性:与修改所造成的未预料结果的风险有关的软件属性 易测试性:与确认已修改软件所需的努力有关的软件属性 软件质量特性–可移植性 适应性:与软件无需采用有别于为该软件准备的活动或手段就可能适应不同的规定环境有关的软件属性 易安装性:与在指定环境下安装软件所需努力有关的软件属性 遵循性:使软件遵循与可移植性有关的标准或约定的软件属性 易替换性:与软件在该软件环境中用来替代指定的其他软件的机会和努力有关的软件属性

软件产品评价软件质量特性及其使用指南

软件产品评价软件质量特性及其使用指南--------------知识就是力量-----精品word文档值得下载------知识改变未来---------------- 中华人民共和国国家标准 GB,T16260—1996 idt ISO,IEC9126:1991 信息技术软件产品评价质量特性及其使用指南 Information technology-software product evaluation,Quality characteristics and guidelines for their use ----------------------------------------------------------- 1. 范围 本标准定义了六个特性,它们以最小的重迭描述了软件质量。这些特性可以作为进一步细化和描述软件质性的基线。本际准描述了如何使用质量特性来评价软件质量。 本标准正文不规定子特性和度量以及有关测量(masurement)、评级(rating)和评估(asscssment)的方法。本际准符合GB,T 6583,92的质量定义。 注:在附录A中提供了子特性定义的建议,供参考。 本标准的特性定义和相关的质量评价过程模型适用于对软件产品质量需求的确定以及在软件生存期中对软件产品质量的评价。 这些特性运用于各种软件,包括固件中的计算机程序和数据。 本标准供获取(acquisition)、开发(development)、使用(use)、支持(support)、维护(maintenancen)或评审(audit)软件的那些人所使用。 2. 引用标准

下列标准包含的条文,通过在本标准中引用而构成为本标准的条文。本标准出版时,所示版本均为有效。所有标准都会被修订.使用本标准的各方应探讨使用--------------知识就是力量-----精品word文档值得下载------知识改变未来---------------- ----------------------------------------------------------------------------------------------------------------------------- --------------知识就是力量-----精品word文档值得下载------知识改变未来---------------- 下列标准最新版本的可能性。 GB/T 6583,92 质量术语(idt ISO 84O2:1986) ISO/IEC 2382,2O:1990 信息技术词汇第2O部分:系统开发 --------------知识就是力量-----精品word文档值得下载------知识改变未来---------------- ----------------------------------------------------------------------------------------------------------------------------- --------------知识就是力量-----精品word文档值得下载------知识改变未来---------------- 3. 定义 下列定义适用于本标准 3.1 发评估assessment 为了确定一特定的软件模块、软件包或软件产品是验收合格还是发布,把特定的已成文的评估准则应用到该软件模块、软件包或软件产品上去的活动。 3.2 特征 features 特征是一软件产品的可识别的性质,该性质与质量特性相关。

常见的软件质量模型

常见的软件质量模型 关于软件质量模型,业界已经有很多成熟的模型定义,比较常见的质量模 型有McCall模型、Boehm模型、FURPS模型、Dromey模型和ISO9126模型。 JimMcCall软件质量模型(1977年)?BarryW.Boehm软件质量模型(1978年)?FURPS/FURPS+软件质量模型?R.GeoffDromey软件质量模型?ISO/IEC9126软件质量模型(1993年)?ISO/IEC25010软件质量模型(2011年)? Jim McCall软件质量模型(1977年) Jim McCall的软件质量模型,也被称为GE模型(General Electrics Model)。其最初起源于美国空军,主要面向的是系统开发人员和系统开发过程。McCall试图通过一系列的软件质量属性指标来弥补开发人员与最终用户之间的沟壑。 McCall质量模型使用3中视角来定义和识别软件产品的质量: 1.Product revision(ability to change). 2.Product transition(adaptability to new environments). 3.characteristics).operational(basic operations Product

McCall模型通过层级的要素、标准和指标来详述这3个视角定义(产品 修改、产品转移、产品运行)。 11Factors(To specify):描述软件的外部视角,也就是客户?或使用者的视角。:描述软件的内部视角,也就是开发build)Criterias(To23?人员的视角。:定义衡量指标和方法control)(ToMetrics? 个质量标准。23个质量要素,右侧为11下图中,左侧为

软件体系结构的质量特性

盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 软件体系结构的质量特性 摘要:众所周知的是,为了降低风险和减少构建软件系统的困难,人们在软件开发过程的早期应该首先考虑质量问题。此外,系统的结构驱动着整个开发过程。备用的结构中非功能性质量需求的实现决定了选择衔接整个系统的便利结构。这一议题在可靠的变革的应用程序构建中非常重要。软件开发的思想并没有在这一重要阶段给与很多细节关注。这篇文章详述了软件体系结构的质量特性,并且介绍了一种基于ISO 9126-1标准的技术。ISO模型的质量特性被精炼成为一种属性。而这种属性可被度量以增加体系结构的信息。我们的技术通过比较各自的质量属性的值从一组候选中挑选出适当的体系结构。并以一个关于监制系统技术应用程序为例说明。我们的方法有助于在体系结构分析过程中正确选择的决定。它可以很容易的被并入一般软件开发的过程或者一种特别的体系结构设计思想。 简介:在软件开发早期阶段以非功能需求为目标的质量需求极大的影响了软件系统的体系结构。但是,系统核心功能需求的提取在初始的系统结构的确定上扮演着重要的角色。另一方面,质量需求在软件设计阶段需要平衡[Kazman et al. 2000]。仅仅在最近,精确的软件体系结构设计的重要性(并不是局限于笔纸图画符号的设计方式)为了可靠的系统结构而蓬勃的发展起来[Bachmann et al.1996], [Bosch 2000], [Krutchen 2000].。那些包括istribution, adaptability, interoperability, component reusability and real-time issues 现代的应用软件需要一个早期的体系结构的定义来满足可维护行和 可靠性之类的质量需求。这些对于在架构之下的软件系统全部功能性需求目标的完成是至关重要的。特殊的,使用网络服务的新的信息系统,比如基于网络的电子商务应用程序,没有过多关心软件工程的时间而是因市场需求而发展的及其迅速。此外,此种产品的质量不在讨论范围之内。然而,当一个HTML页面在浏览器端显示出来的时候,我们马上就能意识到我们是否使用了一个好的或者坏的网络应用程序。像可用性,可靠性或有效性等的因素涉及到这个快速的评估。事实上,自从系统开发之初,软件开发者们对网络应用程序的质量特性就没有一个清晰的描述,正如我们所指出的,软件工程的范例通常被忽略。比如,即使当应用程序数据的语义与描述分离是一个可接受的范例,H TML i s

软件产品质量特性

软件产品质量特性 1.先进性 系统设计采用先进的体系结构和软硬件技术,满足目前以及将来相当一段时间对系统的需求。从而达到既满足现阶段工作对系统水平和能力的要求,推动计算机应用向更高级阶段发展,又能够在今后数年内保持其技术的先进性和实用性,从而保护投资的有效性。 2.开放性 信息系统建设的根本目的在于信息共享,因此在系统建设中采用的各项软、硬件技术和产品必须符合开放性原则,符合当前国际标准或者事实上的国际标准。 3.可靠性 对于信息系统来说,可靠性是指在一定的环境下、在给定的时间内,系统不发生故障的概率。衡量软件可靠性的方法包括正确执行操作所占的比例,在发现新缺陷之前系统运行的时间长度和缺陷出现的密度。根据如果发生故障对系统有多大的影响和对于最大的可靠性的费用是否合理,来定量的确定可靠性需求。 数据交换、业务集成和信息展现承受着大批量的关键性数据的流转、交换和存储,要充分考虑到可能出现的问题。应当提倡规范化程序设计,预防可靠性祸害。数据和系统的可靠性对一个应用系统是至关重要的,因此,必须把这一原则作为极为重要因素考虑。 4.安全性 信息安全是防止系统被非法入侵的能力,既属于技术问题又属于管理问题。主要涉及防止非法访问系统功能,这些访问包括查询、导出、导入、新增、修改、删除等操作,防止数据丢失,防止病毒入侵和防止私人数据进入系统。 数据交换、业务集成和信息展现所处理、传送和管理的信息,可能涉及到不同部门和系统的秘密或敏感信息,此类信息处理和传递的任何环节如果出现漏洞,其损失将是巨大的。数据和访问必须通过特定的方法完全保护起来。用明确的术语陈述完整性的需求,如身份验

证、用户特权级别、访问约束或者需要保护的精确数据。 一般的,如果黑客为非法入侵花费的代价高于得到的好处,那么认为这样的系统是安全的。 5.稳定性 系统的稳定性是指系统能保证7*24小时正常运行。系统的稳定性也是由几个方面因素组成:应用服务器、流程服务器、数据库。 ●应用服务器稳定是指长时间运行不会出现响应缓慢或当机的情况,这由几个方面保 证:第一是程序代码质量没有问题,不会出现内存泄漏、内存溢出等。另一方面是 指应用的访问连接数不会超过阀值。 ●流程服务器的稳定是指流程在长时间运行或大并发量访问时不会出现响应缓慢或 服务器当机等故障。 ●数据库稳定是指数据对于前端应用的访问能及时响应,不会因为数据量的增长而出 现响应缓慢。 6.健壮性 健壮性是指在异常情况下,当系统或其组成部分遇到非法输入数据、相关软件或硬件组成部分的缺陷或异常的操作情况时,能继续正确运行功能的程度。比如当数据库连接池满时能自动释放无用的连接,比如当某一个SERVER出现故障时能自动切换到另一台SERVER,比如当一个数据库出现故障时能自动切换到另一台备用的数据库等。 有两层含义:容错能力和恢复能力。健壮的软件可以从发生问题的环境中完好的恢复并且可容忍用户的错误。 7.可扩展性 可扩展性反映软件适应“变化”的能力。在软件开发过程中变化是经常发生的事情,如需求变更,设计变化,算法改进,新技术引进,程序变化等,所以可扩展性需要多加考虑。网络投诉支撑系统采用增量开发模式,不断推出新版本,可扩展性尤为重要。

软件工程之需求规格第11章软件的质量属性

软件工程之需求规格 第二部软件需求工程:第十一章软件的质量属性

目录 11.1 非功能需求 (3) 11.2 质量属性 (4) 11.3 定义质量属性 (6) 11.4 属性的取舍 (14)

第11章软件的质量属性 许多年前,我参加了一项工程,在该项目中用新的应用程序替换许多已有的主机( m a i nf r a m e)应用程序。根据用户的要求,开发组设计了一个基于窗口的用户界面并定义了新的数据文件,其容量是旧文件的两倍。虽然新系统满足了技术上的规范,但并没有达到客户可接受的程度。用户总是抱怨用户界面运行缓慢,并且新的数据文件所占用的磁盘空间太大。 用户没有陈述对新产品的一些特性的期望,这就不能在他们所提出的功能需求中体现出来。糟糕的是,开发者和用户没有详细地讨论新技术方法所牵涉到可能的性能,从而导致了用户期望与产品实际性能之间的期望差异。比起仅仅满足客户所要求的功能,软件的成功似乎更为重要。 11.1 非功能需求 用户总是强调确定他们的功能、行为或需求—软件让他们做的事情。除此之外,用户对产品如何良好地运转抱有许多期望。这些特性包括:产品的易用程度如何,执行速度如何,可靠性如何,当发生异常情况时,系统如何处理。这些被称为软件质量属性(或质量因素)的特性是系统非功能(也叫非行为)部分的需求。 质量属性是很难定义的,并且他们经常造成开发者设计

的产品和客户满意的产品之间的差异。就像Robert Charette(1990)指出的那样:“真正的现实系统中,在决定系统的成功或失败的因素中,满足非功能需求往往比满足功能需求更为重要”。优秀的软件产品反映了这些竞争性质量特性的优化平衡。如果你在需求的获取阶段不去探索客户对质量的期望,那么产品满足了他们的要求,这只能说你很幸运。但更多的可能是客户失望和开发者沮丧。 虽然,在需求获取阶段客户所提出的信息中包含提供了一些关于重要质量特性的线索,但客户通常不能主动提出他们的非功能期望。用户说软件必须“健壮”,“可靠”或“高效”时,这是很技巧地指出他们所想要的东西。从多方面考虑,质量必须由客户和那些构造测试和维护软件的人员来定义。探索用户隐含期望的问题可以导致对质量目标的描述,并且制定可以帮助开发者创建完美产品的标准。 11.2 质量属性 虽然有许多产品特性可以称为质量属性(Quality Attribute),但是在许多系统中需要认真考虑的仅是其中的一小部分。如果开发者知道哪些特性对项目的成功至关重要,那么他们就能选择软件工程方法来达到特定的质量目标( Glass 1992; DeGrace and Stahl 1993)。根据不同的设计可以把质量属性分类(Boehm 1976; DeGrace and Stahl 1993)。一种属性分类的方法是把在运行时可识别的

软件产品质量特性

o 软件产品质量特性 1. 先进性 系统设计采用先进的体系结构和软硬件技术,满足目前以及将来相当一段时间对系统的 需求。从而达到既满足现阶段工作对系统水平和能力的要求,推动计算机应用向更高级阶段 发展,又能够在今后数年内保持其技术的先进性和实用性,从而保护投资的有效性。 2. 开放性 信息系统建设的根本目的在于信息共享,因此在系统建设中采用的各项软、硬件技术和 产品必须符合开放性原则,符合当前国际标准或者事实上的国际标准。 3. 可靠性 对于信息系统来说,可靠性是指在一定的环境下、在给定的时间内,系统不发生故障的概率。衡量软件可靠性的方法包括正确执行操作所占的比例,在发现新缺陷之前系统运行的 时间长度和缺陷出现的密度。根据如果发生故障对系统有多大的影响和对于最大的可靠性的费用是否合理,来定量的确定可靠性需求。 数据交换、业务集成和信息展现承受着大批量的关键性数据的流转、交换和存储,要充 分考虑到可能出现的问题。应当提倡规范化程序设计,预防可靠性祸害。数据和系统的可靠性对一个应用系统是至关重要的,因此,必须把这一原则作为极为重要因素考虑。 4. 安全性 信息安全是防止系统被非法入侵的能力,既属于技术问题又属于管理问题。主要涉及防 止非法访问系统功能,这些访问包括查询、导出、导入、新增、修改、删除等操作,防止数据丢失,防止病毒入侵和防止私人数据进入系统。 数据交换、业务集成和信息展现所处理、传送和管理的信息,可能涉及到不同部门和系

统的秘密或敏感信息,此类信息处理和传递的任何环节如果出现漏洞,其损失将是巨大的。数据和访问必须通过特定的方法完全保护起来。用明确的术语陈述完整性的需求,如身份验证、用户特权级别、访问约束或者需要保护的精确数据。 一般的,如果黑客为非法入侵花费的代价高于得到的好处,那么认为这样的系统是安全 的。 5. 稳定性 系统的稳定性是指系统能保证7*24小时正常运行。系统的稳定性也是由几个方面因素组成:应用服务器、流程服务器、数据库。 应用服务器稳定是指长时间运行不会出现响应缓慢或当机的情况,这由几个方面保 证:第一是程序代码质量没有问题,不会出现内存泄漏、内存溢出等。另一方面是指应用的访问连接数不会超过阀值。 流程服务器的稳定是指流程在长时间运行或大并发量访问时不会出现响应缓慢或 服务器当机等故障。 数据库稳定是指数据对于前端应用的访问能及时响应,不会因为数据量的增长而出 现响应缓慢。 6. 健壮性 健壮性是指在异常情况下,当系统或其组成部分遇到非法输入数据、相关软件或硬件组 成部分的缺陷或异常的操作情况时,能继续正确运行功能的程度。比如当数据库连接池满时 能自动释放无用的连接,比如当某一个SERVER出现故障时能自动切换到另一台SERVER , 比如当一个数据库出现故障时能自动切换到另一台备用的数据库等。 有两层含义:容错能力和恢复能力。健壮的软件可以从发生问题的环境中完好的恢复并且可容忍用户的错误。 7. 可扩展性 可扩展性反映软件适应“变化”的能力。在软件开发过程中变化是经常发生的事情,如需求变更,设计变化,算法改进,新技术引进,程序变化等,所以可扩展性需要多加考虑。网

软件质量国家标准GB(质量管理度量)

软件质量国家标准GB-T8566--2001G,软件质量要素: 1.功能性-与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能.包含: a.完备性-软件功能完整,齐全有关的软件属性. b.正确性-能否得到正确或相符结果或效果有关的软件属性 2.可靠性-在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性.包含: a.可用度-软件运行后在任一随机时刻需要执行规定任务或完成规定功能时,软件处于可使用状态的概率. b.初期故障率-软件在初期故障期(一般为软件交付用户后的3个月)内单位时间(100小时)的故障数. c.偶然故障率-软件在偶然故障期(一般为软件交付用户后的4个月以后)内单位时间的故障数. d.平均失效前时间(MTTF)-软件在失效前正常工作的平均统计时间. e.平均失效间隔时间(MTBF)-软件在相继两次失效之间正常工作的平均统计时间.一般民用软件大体在1,000小时左右. f.缺陷密度(FD)-软件单位源代码(1,000行无注释)中隐藏的缺陷数量.典型统计表明,开发阶段平均50-60个缺陷/千行源码, 交付后平均15-18个缺陷/千行源码. g.平均失效恢复时间(MTTR)-软件失效后恢复正常工作所需的平均统计时间. 3.易用性-由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性.包含: a.易理解性-用户认识软件的逻辑概念及其应用范围所花的努力有关的软件属性. b.易学习性-用户为学习软件(运行控制,输入,输出等)所花的努力有关的软件属性. c.易操作性-用户为操作和运行控制所花的努力有关的软件属性 4.效率性-与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性.包含: a.输出结果更新周期-软件相邻两次输出结果的间隔时间. b.处理时间-软件完成某项功能(辅助计算或决策)所用的处理时间(不含人机交互的时间). c.吞吐量-单位时间软件的信息处理能力(各种目标的处理批数). d.代码规模-软件源程序的行数(不含注释), 属于软件的静态属性 5.可维护性-与进行指定的修改所需的努力有关的一组属性 6.可移植性-与软件从一个环境转移到另一个环境的能力有关的一组属性. 影响软件系统质量的4个关键技术要素 1.技术平台的寿命 2.试运行期 3.对于现有系统的迁移 4.技术扩展

(完整版)工厂品质管理体系通用版

工厂品质管理体系 为了贯彻执行公司“质量就是生命”的品质方针,强化和保证产品质量,工厂建立了初步的品质管理体系。本体系主要包括如下几个部分: 1.品质管理体系组织架构。 2.品质管理范围。 3.品质管理制度。 4.质量管理奖罚制度(待订)。 第一部分品质管理体系组织架构 1.组织架构: 2.组织架构及职责说明: 2.1.总经理(质量总负责人):作为工厂产品质量体系领导第一责任人,对产品质量管理总体负责, 主导制订产品质量方针、质量管理流程、质量管理制度、调整质量管理组织架构、监督质检、生产、采购等对质量方针的执行,重大质量事故处理和签核验收不符合项的整改措施。 2.2.品质经理:工厂产品质量管理体系执行第一责任人,审核产品质量计划、参与订产品质量方针、

质量管理流程、质量管理制度,检查和复核质检程序和执行流程,处理质量事故和验收不符合项的整改措施。 2.3.质量工程师:与工程制订产品质量计划,编制质量检验作业指引,参与订产品质量方针、质量 管理流程、质量管理制度,组织对质量事故的分析和鉴定,参与处理质量事故和验收不符合项的整改措施。 2.4.IQC组长:负责组织对外协工序和原材料的来料检验。 2.5.IPQC组长:负责组织对产品制程和制程终检的检验和监督。 2.6.OQC组长:负责组织外购成品的检验、出货检验、库存巡检、售后回访等。 2.7.质量计划专员:在质量工程师的指导下,编制产品质量计划。 2.8.文控:对各级检验报告的整理,对受控文件的管理。 2.9.外协工序检验员:按照外协工序工艺要求和作业指引执行外协工序质量验收。 2.10.原材料检验员:按照原材料技术规格书要求和作业指引执行来料质量验收。 2.11.生产制程巡检员:按照产品工艺要求和作业指引执行首件验收和生产过程中的作业要求规范化 巡检。 2.12.产品终检检验员:按照产品工艺要求和作业指引执行某段工序的验收或产品入库前的最终确定。 2.1 3.外购成品检验员:按照外购产品质量、功能要求和作业指引执行外购成品的质量验收。 2.14.产品出货检验员:执行产品库存定期巡检和出货前的最终质量确定。 2.15.售后回访专员:对实施中的项目产品应用情况的跟踪回访。 3.品质管理体系主体流程:

相关文档
最新文档