- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件质量模型详解
质量属性 虽然有许多产品特性可以称为质量属性(Quality Attribute),但是在许多系统中需要认真考虑的仅是其中的一小部分。如果开发者知道哪些特性对项目的成功至关重要,那么他们就能选择软件工程方法来达到特定的质量目标。根据不同的设计可以把质量属性分类。一种属性分类的方法是把在运行时可识别的特性与那些不可识别的特性区分开。 另一种方法是把对用户很重要的可见特性与对开发者和维护者很重要的不可见特性区分开。 那些对开发者具有重要意义的属性使产品易于更改、验证,并易于移植到新的平台上,从而可以间接地满足客户的需要。 McCall提出了表明软件质量的11个质量特性,表1给出了McCall提出的11个质量特性及其含意。 可跟踪性:沿一个设计说明或一个实际程序 构件返回到需求的能力。 完整性: 所需功能实现的程度。 一致性: 在整个软件开发项目中使用统一 的设计和文档编制技术的程度。 容错性:当程序出错时,造成破坏的程度。 准确性: 计算和控制的精确程度。 执行效率:程序的运行时间。 复杂性 : 程序结构化、模块化、简明、简 洁、清晰和可理解的程度。 安全性:控制或保护程序和数据机制的有效性。 工具性:程序监视自身运行和识别出现错误的程序。 简明性: 程序代码的紧密程度。 可训练性:程序使新用户使用该系统的辅助程度。 可操作性: 程序操作的难易程度。 可审计性: 检查与标准是否符合的难易程度。 可扩充性:系结构、数据或过程设计可扩充的程度。 模块性 : 程序各构件的功能独立性。 自描述性: 源代码提供自身描述的程度。 简洁性: 程序易于理解的程度。 通用性: 程序各构件潜在的应用范围。 硬件独立性:软件与运行它的硬件之间的相关程度。 软件独立性:程序与非标准编程语言性质、 操作系统特性、以及其他环境 限制的无关程度。 通信共用性: 使用标准接口、协议和带宽的 程度。 数据共用性: 在整个程序中使用标准数据结 构和类型的程度。 国际标准和国家标准规定的质量特性标准中规定了6个质量特性及其相关的21个质量子特性(如图13所示)。6个质量特性的含义在表2中给出。 在表3中,分两类来描述每个项目都要考虑的质量属性;还有其它许多属性 。一些属性对于嵌入式系统是很重要的(高效性和可靠性),而其它的属性则用于主机应用程序(有效性和可维护性)或桌面系统(互操作性和可用性)。在一个理想的范围中,每一个系统总是最大限度地展示所有这些属性的可能价值。系统将随时可用,决不会崩溃,可立即提供结果,并且易于使用。因为理想环境是不可得到的,因此,你必须知道表2.5.3中那些属性的子集对项目的成功至关重要。然后,根据这些基本属性来定义用户和开发者的目标,从而产品的设计者可以作出合适的选择。 产品的不同部分与所期望的质量特性有着不同的组合。高效性可能对某些部分是很重要的,而可用性对其它部分则很重要。把应用于整个产品的质量特性与特定某些部分、某些用户类或特殊使用环境的质量属性要区分开。把任何全局属性需求记录到软件需求规格说明相应的部分中,并把特定的目标和列在软件需求规格说明的特性、使用实例或功能需求相联系起来。 定义质量属性 你必须根据用户对系统的期望来确定质量属性。定量地确定重要属性提供了对用户期望的清晰理解,这将有助于设计者提出最合理的解决方案。然而,大多数用户并不知道如何回答诸如“互操作性对你的重要性如何?”或者“软件应该具有怎样的可靠性?”等问题。在一个项目中,分析员想出了对于不同的用户类可能很重要的属性,并根据每一个属性设计出许多问题。他们利用这些问题询问每一个用户类的代表,可以把每个属性分成一级(不必多加考虑的属性)到五级(极其重要的属性)。这些问题的回答有助于分析员决定哪些质量特性用作设计标准是最重要的。 然后,分析员与用户一起为每一属性确定特定的、可测量的和可验证的需求。如果质量目标不可验证,那么就说不清是否达到这些目标。在合适的地方为每一个属性或目标指定级别或测量单位,以及最大和最小值。如果不能定量地确定某些对项目很重要的属性,那么至少应该确定其优先级。 另一个定义属性的方法是确定任何与质量期望相冲突的系统行为。通过定义不悦人意行为——一种反向需求——你可以
文档评论(0)