通信软件质量要求浅析

时间:2022-09-11 06:24:19

通信软件质量要求浅析

【摘 要】如何开发出高质量的通信软件已成为通信领域的重要课题,一套适合于通信软件的软件质量要求对软件确保质量的实现起到了关键作用。通过对软件质量、通用软件质量模型的分析,并结合通信软件实时性和交互性的特点,构造了一套适合于通信软件的软件质量要求。

【关键词】通信软件 质量要求 软件模型

1 引言

随着软件在通信行业中的应用和发展,如何保证通信软件的质量已经成为软件开发全生命周期贯穿始终的重要问题。然而软件质量是一个复杂的概念,对于不同的通信软件系统,软件质量的要求不一定相同,所关注的软件质量属性也不一定相同。软件业的专家们建立了多种通用的软件质量模型,在软件生命周期的不同阶段对软件质量进行度量。通用的软件质量模型在通信软件项目中使用,不能较好地结合通信软件的特性,软件质量可控性效果有限。本文主要介绍了软件质量定义的演变过程,简要介绍了三种通用软件质量模型,通过对通信软件的特性分析,建立了一套基于六项通信软件质量属性的软件质量要求体系。

2 软件质量

在软件术语定义中,目前为止对软件质量还没有一个统一的定义。软件质量是一个复杂的概念,先从国际上软件业对软件质量认识的演变过程说起:1979年,Fisher和Light认为软件质量是表征计算机系统卓越程度的所有属性的集合;1982年,Fisher和Baker认为软件质量是软件产品满足明确需求的一组属性的集合;20世纪90年代,Norman、Robin等认为软件质量是表征软件产品满足明确的和隐含的需求的能力的特性或特征的集合;1994年国际标准化组织公布的国际标准ISO 8042综合将软件质量定义为:反映实体满足明确的和隐含的需求的能力的特性的总和;CMU SEI的Watts Humphrey指出软件产品必须提供用户所需的功能,如果做不到这一点,什么产品都没有意义。由此可见,软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。国内的标准GB/T 11457-2006《软件工程术语》中定义软件质量为:软件产品中能满足给定需要的性质和特性的总体;软件具有所期望的各种属性的组合程度;顾客和用户觉得软件满足其综合期望的程度;确定软件在使用中将满足顾客预期要求的程度。

软件质量从不同的角度来看会得到不同的结论。从用户的角度看,软件质量就是满足客户的需求;从开发者角度看,软件质量就是与需求输入保持一致;从产品的角度看,质量就是产品的自身功能和优势。综上所述,对于质量的定义还应该是多方面的,在本文中给出如下定义:软件质量是软件产品满足使用要求的程度。

3 通用软件质量模型

软件专家们根据软件工程实践经验研究建立了多个软件质量模型来帮助理解、度量和预测软件的质量。运用最为广泛的软件质量层次模型包括McCall模型、Boehm模型和ISO9126质量模型。

McCall模型是最早的质量模型之一,如图1所示。J. A. McCall等人认为软件质量是正确性、可靠性、效率等构成的函数,正确性、可靠性、效率等被称为软件质量因素。McCall定义了11个软件外部质量特性,称为软件的质量要素,它们是正确性、可靠性、效率、完整性、可用性、可维护性、可测试性、灵活性、可移植性、可重用性和互操作性。

Boehm模型是由Boehm等在1978年提出来的质量模型,如图2所示。在表达质量特征的层次性上它与McCall模型类似,但它基于更为广泛的一系列质量特征,并将这些特征最终合并成19个标准。区别于McCall模型,Boehm提出的概念的成功之处在于它包含了硬件性能的特征。

ISO9126质量模型描述了一个由两部分组成的软件产品质量模型:一部分指定了内在质量和外在质量的六个特征;另一部分则指定了使用中的质量属性。如图3所示:

4 通信软件质量模型

4.1 通信软件特点

通信类软件具备了实时性和交互性软件的特性。实时软件的运行有严格的性能要求和性能约束。实时软件与外部接口的设备进行交互,并在实时状态下完成交互信息的处理等工作,简单灵活、模块化地对可靠性、可维护性、可用性等性能要求进行设计。实时软件处理的关键是效率,因此设计的主要内容是并发任务处理和定时中断,基于这两个方面来对每个关键功能按优先级排序,并完成功能的实现。交互软件是控制人机交互的通信软件。交互系统能够对人的介入做出反应,接受命令并以音频或者视频的方式响应或者在屏幕上输出显示。交互软件质量的关注焦点是人机之间的交互性能,如何向用户进行功能的演示。开发交互式软件必须关心两个内容:一是要提高交互能力,二是怎么把系统反映最好的一面演示给用户。

4.2 通信软件质量要求

软件质量是一个复杂的概念,软件业界很难定义出一个能够适用于所有软件的质量模型。每个软件系统都有自己的特征,通信软件在选择软件质量要求时必须考虑通信软件的共性需求。结合通信软件实时性和交互性的特点,软件质量必须着重关注软件效率和软件的人机交互性能,应该从软件的体系结构设计来系统地获得软件质量要求。在通信软件项目的开发过程中,项目经理眼中的软件质量就是能完成预期软件功能的软件产品。包括功能需求、性能需求、接口需求、质量需求、安全性需求等全部需求指标。项目经理需要一个对其工作有指导意义的软件质量要求,既可以帮助项目经理管理项目团队开发出符合需求与标准的软件产品,也可以帮助项目经理识别和规避可能影响项目质量的风险。但是在实际的通信软件开发中,项目经理和开发人员往往把精力集中到功能需求上,包括软件质量要求在内的例如性能要求和安全性要求等非功能需求容易被忽视。一味地追求功能上的推陈出新,软件质量要求却在软件设计中落不到实处。

就软件质量要求而言,每一个通信软件系统都是唯一的。不同质量级别对应着不同的软件质量要求。本文结合通信软件实时性和交互性的特点设计了一套通用的通信软件质量要求,从功能性、可靠性、易用性、效率、可维护性和可移植性6个软件质量属性来展开通信软件的质量要求。

(1)功能性

适用性:软件在预定环境使用时,满足功能需求(隐含功能需求)的能力;

正确性:软件在预定环境使用时,提供正确的运行结果并保证数据具有所需精确度的能力;

互用性:软件与其他约定系统进行信息交互的能力;

保密性:软件保护数据和信息,防止非法人员对软件进行访问的操作;

依从性:软件遵循相关通信业务标准、约定和法规的能力。

(2)可靠性

成熟性:软件在预定环境使用时,避免因其故障而引发失效的能力;

容错性:软件在出现故障或违反规定接口的情况下保持所设计性能水平的能力;

可恢复性:软件在失效时重建所设计性能水平并恢复直接受影响数据的能力。

(3)易用性

易理解性:用户能理解使用的能力;

易学性:用户学会并掌握软件使用的能力;

易操作性:用户操作软件的能力。

(4)效率

时间特性:软件在预定环境使用时,提供适当的响应和处理时间及吞吐量的能力;

资源特性:软件在预定环境使用时,使用适当的资源数量和类型的能力。

(5)可维护性

易分析性:确定软件缺陷或失效原因及确定软件设计更改的能力;

易变性:修改、排除缺陷或适应环境变化的能力;

稳定性:避免软件设计更改带来非预计影响的能力;

可测试性:对软件和软件的设计更改通过软件测试进行验证确认的能力,确保软件实现预定功能的能力。

(6)可移植性

适应性:软件无需采取措施或采取极小的措施即可适应所规定不同环境的能力;

可安装性:在预定环境下实现软件安装的能力;

可复用性:软件的架构设计可提高其他项目继承使用的能力;

共存性:在同一公共资源下本软件与其他软件共存的能力;

易替换性:在同一预定环境中软件替代其他制定软件的能力;

遵循性:软件遵循可移植性的标准和约定的能力。

本文给出的是一套相对全面的通信软件质量要求,包含了影响通信软件质量的基本要素。每个通信软件项目通过对软件需求的全面分析,经过裁剪来确定适合本项目的软件质量要求。通过对软件质量要求的跟踪监控,将每一条软件质量要求通过软件分析设计实现到软件实体中。

5 结束语

本文通过对软件质量定义的介绍阐述了软件质量在软件开发中的重要性,讨论了软件质量的基本属性,然后介绍了三种通用的软件质量模型。分析了通信软件实时性和交互性的特点,构造了一个适用于通信软件的软件质量要求模型。通信软件项目可结合项目需求对其进行裁剪,确定适用于项目的软件质量要求,在软件的全生命周期模型中实现该要求。

参考文献:

[1]ISO 9126. Information Technology--Software Product Evaluation--Quality Characteristics and Guidelines for Their Use[S]. International Organisation for Standardization, 1992.

[2]G Gordon Schulmeyer, James I McManus. Handbook of Software Quality Assurance(Third Edition)[M]. 2003.

[3]Stephen H Kan. Metrics and Models in Software Quality Engineering(Second Editon)[M]. 2004.

[4]董云卫. 软件质量工程[M]. 2版. 西安: 西安电子科技大学, 2008.

[5]张瑾. 软件质量管理[M]. 北京: 电子工业出版社, 2009.

上一篇:IMS网络P—CSCF容灾方案研究 下一篇:该选谁!三款主流MTK四核智能手机横向测试