林晓欲,雷倩茹, 沈 欣
(1.中国空空导弹研究院,河南 洛阳 471009; 2.空装驻洛阳地区第一军事代表室,河南 洛阳 471009)
导弹产品中软件的作用日益增大,对弹载软件的质量要求也越来越高,因此,如何有效评价软件质量成为利益相关方的关注点。软件质量度量的基本思想是以“质量特性-子特性-影响子特性的因素”层级关系,开展以度量元为基础,定性或定量地进行度量的过程。由于质量因素间存在交叉、影响关系,经过分级分解后,度量元会急剧增长,度量成本很高。
本文综合考虑弹载软件的内、外部质量特性以及使用特性,以弹载软件质量为目标,结合内、外部需求和用户需求的核心关注点,构建简洁、实用和高效的度量模型。旨在通过简化的弹载软件质量模型,在软件质量评价过程中为该类软件质量度量提供一种定量化的方法。
软件质量的概念开始于20世纪70年代,是指在特定条件下使用软件产品满足明确或隐含需求的程度。软件质量评价一般以软件质量模型的建立为基础。1977年,McCall质量模型的建立; 1978年,分层结构的Boehm质量模型的提出; 1991年,ISO 9126-1991标准《软件产品-质量特性及其使用指南》的发布,系统性地将十多年来推出的各种质量模型进行了统一。1996年,国内发布了软件产品质量评价标准GB/T 16260-1996; 2004年,发布了GJB 5236-2004《军用软件质量度量》。
GJB 5236标准4.1中提到,软件产品质量可以通过测量内部属性、测量外部属性,以及测量使用质量的属性来评价; 与评价方法密切相关地建立了内部质量、外部质量、使用质量的质量模型; 内、外部质量模型有6个质量属性(功能性、可靠性、易用性、效率、维护性、可移植性),可再细分为若干子特性; 使用质量模型主要通过用户评价,如有效性、生产率、安全性以及满意度来体现。
对于军用软件产品来说,GJB 5236中质量模型度量的内容非常完整和全面,但如果直接用于弹载软件质量度量,各种质量要素影响关系复杂,且度量元太多太细,很难将全部要素推向最优。针对弹载软件,本文拟根据其特点作出相应的决策,建立弹载软件质量模型。
软件的使用质量体现了特定的用户对软件在特定环境下有效性、生产率、安全性和满意度的不同要求,不同类型的软件对软件要素的要求是不一样的,这与软件在什么背景下使用和实际用途有关。基于此,结合弹载软件的特点和质量要求,提出了弹载软件的质量模型。该模型将外部质量、内部质量与使用质量结合起来,用测试、度量和评估的手段对弹载软件特性进行客观和半客观的量化。
弹载软件属于嵌入式软件,其算法复杂、处理时间短,实时性要求高; 存储容量有限,具有很强的物理相关性; 一旦发生故障或失效,会造成重要任务失败或影响生命安全,要求具有高可靠性和高安全性。
实时性是指在有限的时间内,高精度完成各项任务; 物理相关性是指嵌入式软件与硬件设备密不可分,算法和通讯往往直接与物理设备相关联; 高可靠性与高安全性要求软件有防错、避错的设计,有措施保证软件具有提供可靠安全服务的能力。
弹载软件的特点决定了弹载软件与软件6大质量属性的依赖关系是,功能性是所有软件都必需的质量元素; 对于弹载软件系统,可靠性是一个至关重要元素; 弹载软件大多为实时软件系统,因此,效率也是一个重要的元素; 弹载软件对可移植性的要求一般不高,因为其多数是针对特定的应用需求或特定硬件系统定制开发; 弹载软件的用户一般是特定行业的专业人员,因此在易用性和维护性方面相较而言也没有过高要求。
弹载软件的质量模型是参考GJB 5236提供的软件质量模型,并结合弹载软件的质量和应用特点提出的。
2.3.1 质量特性的评价技术
弹载软件质量模型的评价,以内、外部质量模型为基础,以GJB 2434A-2004 《军用软件产品评价》为指导,在评价技术和度量元的选取上结合使用质量(用户评价)的要求形成。表1为相关质量特性对应的评价技术。
表1 相关质量特性对应的评价技术Table 1 Evaluation technologies corresponding to relevant quality characteristics
2.3.2 度量元的选取及权重分配
根据弹载软件及软件测试的特点,基于GJB 5236对度量元进行选取。为了对软件质量进行量化的度量,对每个质量特性、子特性及质量属性分配相应的权重。权重分配遵循的原则是,保证分配的权重值能够反映在集合中的比例关系,同一个集合中权重之和为固定值。
权重分配时考虑弹载软件的特点,参考表1对应的评价技术,充分结合软件代码审查、静态分析、规则检查、黑盒测试及用户满意度评价的结果,对本文2.2节中重点关注的功能性、可靠性、效率这3个质量特性分配权重和为75; 其余易用性、维护性、可移植性3个质量特性的要求按照本文2.2节分析结果,分配的权重和为25。具体子特性和各个质量属性的权重分配采用专家排序法,同时结合作者多年工程经验确定。
质量特性权重分配为:={,,,,,}={30,25,10,20,10,5},其中:为功能性权重;为可靠性权重;为易用性权重;为效率权重;为维护性权重;为可移植性权重。
表2为弹载软件质量模型结构,括号中的数值为各级指标权重值。在对某个弹载软件度量时,如果不涉及某些度量元则可以去除该度量元,剩余度量元的权重比例关系重新分配权重。
表2 弹载软件质量模型结构及权重分配
某弹载飞行控制软件集信息采集、计算、控制于一体,完成产品自检、对准导航、稳定控制、制导、滤波、引信控制等工作。
该软件对实时性要求很高,是以系统算法和逻辑时序为牵引把产品的各分系统有机地结合在一起,保证系统控制流和信息流运行通畅; 对影响时序的关键信号严格判断,保证产品的可靠性; 是实时嵌入式控制系统软件,采用事件触发机制,只要产品计算机一加电,软件即自动运行,处于等待处理外部事件的状态,无需外部人员介入。
用户要求以该项目软件系统的内、外部质量特性,子特性检测和度量的结果为参考,确定软件整体的质量特性。为此,检测人员根据该软件的需求规格说明文档,共设计446个测试用例,覆盖了功能性、可靠性、效率、可移植性,共发现25个问题; 易用性和维护性通过静态分析、规则检查和用户评价采集相关信息,共提出7个问题。该项目的测试用例执行情况如图1所示。
图1 测试用例执行分布情况Fig.1 Test case execution distribution
易用性和可移植性数据情况如表3所示。软件缺陷分布情况如图2所示。
图2 软件缺陷分布情况Fig.2 Software defect distribution
表3 易用性和可移植性数据情况
根据GJB 5236标准中的度量表,列出飞控软件内、外部质量子特性度量公式分别为
=1-
(1)
式中:为不能满足用户要求的需求数;为需要满足用户要求的需求总数。
=
(2)
式中:为在规格说明或评价中已证实的需求数;为需要实现特定需求数。
度量结果说明:0≤≤1,越接近1越好。
当度量元中只能获取不能满足用户要求的需求数和需要满足用户要求的需求总数时,使用式(1); 当度量元中能够获取已证实的需求数和需要实现特定需求数时,使用式(2); 当度量元中能够能够获取具体度量值时,使用=具体值。
结合测试用例及缺陷情况统计图,使用式(1)或式(2)计算相应的度量值,将其百分化。把计算出来的数据,分别记入表4 飞行控制软件质量度量评价结果中的度量值一列,然后从右向左,加权计数,最终得出质量的度量结果。
表4 飞行控制软件质量度量评价结果
通常,如果最终的度量值在90 分及以上,该软件内、外部质量为“通过”; 70 分(含)~90分,为“基本通过”; 70分以下,为“不通过”。根据度量结果,确定该弹载飞控软件整体的质量特性评定为“通过”。
本文在对当前国内外有代表性的质量度量模型进行分析比较基础上,对弹载软件质量的度量和评价模型进行了探索研究。模型针对弹载软件的特点、测试需求,结合软件质量度量标准,确定了适合于弹载软件的质量特性、子特性和度量元。以某弹载飞行控制软件为例,根据软件特点分解测试项和测试用例,并将质量特性与评价方法对应,尤其是将质量子特性和动态执行结果建立联系,通过度量公式完成度量评价。结果表明,本文给出的弹载软件质量模型合理有效,可用于弹载软件质量评价和过程控制。