下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、下面重点讨论非功能需求中的质量属性需求。如何给众多质量属性分类,这是一个问题。McCall等人于1977年提出的软 件质量属性的分类模型,影响非常广泛。如图10-5所示,它将软件的质量属性 划分为三大类:产品操作、产品修改、产品改型。正确性-可靠性效率 完整性易用性10-5McCall等人提出的软件质量属性的分类模型该分类方法相当经典,但似乎缺少了 “产品开发”类的质量属性一一诸如易 理解性、可扩展性、可重用性等。另一方面,我们也发现产品开发、产品修改、 产品改型这三类质量属性有重叠(如易理解性和可扩展性对开发和维护都很重 要,再如对产品改型很关键的可重用性也同样影响着产品开发)。因此,考虑到
2、 被广泛认同的迭代式开发所暗示的增量交付使开发、修改、维护之间的界限不再 像以前那么明显,所以本书认为有充分的理由将产品开发、产品修改、产品改型 这三类质量属性合并为一类。本书推荐将软件质量属性划分为运行期质量属性、和开发期质量属性两大类 (如表10-2所示):开发期质量属性其实包含了和软件开发、维护、移植这三类活动相关的 所有质量属性,可以说这里的“开发”是相当广义的。开发期质量属性是开发人员、开发管理人员、维护人员非常关心的那些 质量属性。对最终用户而言,这些质量属性只是间接地促进用户需求的 满足。运行期质量属性是软件系统在运行期间,最终用户可以直接感受到的一 类属性,这些质量属性直接影响
3、着用户对软件产品的满意度。运行期质量属性开发期质量属性性能(Performance)易理解性(Understandability)安全性(Security)可扩展性(Extensibility)易用性(Usability)可重用性(Reusability)持续可用性(Availability)可测试性(Testability)可伸缩性(Scalability)可维护性(Maintainability)互操作性(Interoperability)可移植性(Portability)可靠性(Reliability)鲁棒性(Robustness)表10-2推荐的软件质量属性分类方式运行期质量属性需求是
4、一类非常重要的非功能需求,对客户满意度非常关 键,下面进行一一说明。性能(Performance)。性能是指软件系统及时提供相应服务的能力。具体 而言,性能包括速度、吞吐量和持续高速性三方面的要求:吞吐量通过单位时间处理的交易数来度量,速度往往通过平均响应时间来度量,而持续高速性是指保持高速处理速度的能力。持续高速性和实时系统有关,实时系统有“硬实时”和“软实时”之分,其中硬 实时系统对每次系统响应时间都有严格要求,如果不能满足要求,后果将是致命 的,所以把性能笼统地说成“进行典型操作所需的时间”显然忽视了实时系统性 能的内涵。下面值得说明一下效率(Efficiency)和性能的关系:它们反映
5、了同一问题的 “表”、“里”两面,性能为“表”,效率为“里”,如图10-6所示。所谓效 率,是指软件系统对CPU处理能力和存储能力这两大类计算机资源的使用效率。软件服务的使用者速度吞吐量持续高速性软件系统提供的服务对CPU处理能力的使用效率对存储能力的使用效率软件服务要使用的资源10-6 性能和效率的关系安全性(Security)。指软件系统同时兼顾向合法用户提供服务、以及阻止 非授权使用的能力。高安全性意味着“同时兼顾”,这是因为有些攻击的目的是 使软件系统拒绝向合法用户提供服务,而不是非法访问。易用性(Usability)。不少文献也称之为可用性,但为了避免和Availability 混淆
6、,本书采用非常流行的“易用性”的叫法。指软件系统易于使用的程度。持续可用性(Availability)。不少文献也称之为可用性,但为了避免和 Usability混淆,本书采用“持续可用性”的叫法。持续可用性指系统长时间无故 障运行的能力。可伸缩性(Scalability)。指当用户数和数据量增加时,软件系统维持高服 务质量的能力。例如当业务量较小时,软件系统运行在一台服务器上,当业务量 增大时,可以通过增加服务器或增加单台服务器上所运行软件系统的个数来提高 性能,而无需对软件系统本身进行编程级的修改。互操作性(Interoperability)o指本软件系统与其他系统交换数据和相互调 用服务的
7、难易程度。可靠性(Reliability)。软件系统在一定的时间内无故障运行的能力。鲁棒性(Robustness)。也称健壮性、容错性。鲁棒性是指软件系统在以下 情况下仍能够正常运行的能力:用户进行了非法操作、相连的软硬件系统发生了 故障、以及其他非正常情况。而开发期质量属性则随着软件系统规模的日益增长,显得越来越重要了,下 面一一说明之。易理解性(Understandability)o尤指设计被开发人员理解的难易程度。可扩展性(Extensibility)。为适应新需求或需求的变化为软件增加功能的 能力。我们在实际工作中,经常将可扩展性称为灵活性。可重用性(Reusability)。重用软件系统或其一部分的能力的难易程度。可测试性(Testability)o对软件测试以证明其满足需求规约的难易程度。 在实际工作中主要指进行单元测试、插桩测试等的难易程度。可维护性(M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论