基于GJB5000A四级的军用软件定量管理方法

2018-06-14 07:15:22叶赪镠程春姬
软件 2018年5期
关键词:基线定量密度

叶赪镠,程春姬,马 晋

(中国航空无线电电子研究所,上海 200233)

0 引言

近年来,我国武器装备正处于快速发展时期,软件的需求日趋增多,软件的规模、应用范围、功能和性能都呈指数级增长,软件逐步成为武器装备的灵魂与核心。例如,随着信息技术的飞速发展,综合到航电系统的功能越来越复杂,任务更加多样化,系统高度综合化,航电软件呈现出大规模、多学科、复杂性等特点,已成为大规模甚至超大规模的复杂软件系统。同时,航电软件的交付质量、周期、成本对飞机研制影响越来越大,也越来越受到重视。

由于军用软件和硬件环境的匹配要求非常严格,各分系统各模块间接口交联复杂、信息交换频繁,实时性,安全性、稳定性要求极高,软件的质量与可靠性要求越来越高。

自总装备部出台GJB5000-2003《军用软件能力成熟度模型》和GJB5000A-2008《军用软件研制能力成熟度模型》以来,军用软件研制单位根据软件工程化要求开展软件质量管理工作[1]。

在 GJB5000A军用软件研制能力成熟度等级 4中,有两个过程域:组织过程绩效和定量项目管理[2]。组织过程绩效收集以往项目的历史数据,利用各种统计技术,建立和维护组织的过程绩效基线和模型。定量项目管理使用组织的过程绩效基线和模型,以帮助项目预测是否能达到其质量和过程绩效目标,并标识应采取怎样的纠正措施。引入GJB5000A四级的定量项目管理可实时监控软件研发质量,采用科学的方法确保软件研发质量目标的实现。

本文首先介绍了GJB5000A四级软件定量管理的作用,然后介绍了GJB5000A四级软件定量管理的步骤,并举例说明了质量方面的定量管理方法。

1 GJB5000A 四级定量项目管理的作用

GJB5000A四级定量项目管理使用组织的过程绩效基线和模型,以帮助项目预测达到目标的确定性概率。通过定量项目管理,快速定位影响软件质量和成本的关键因素,及时调整策略,降低项目开发风险,提高软件产品质量和降低软件研发成本[3]:

(1)基于历史项目度量,通过目标分解和组织提供的基线和模型,客观、科学地确定项目的目标,并通过预测确定达到目标的确定性概率,避免盲目的制定目标。

(2)在项目执行过程中定期监控,通过阶段预测来确定达到目标的确定性概率,主动掌握项目目标的执行情况,有助于对风险进行量化,对目标偏离的情况主动采取最优措施,确保目标的最终实现。

2 GJB5000A 四级软件定量管理步骤

软件定量管理的前提是组织具有大量的历史项目数据,并依据历史数据准确地建立了组织的质量和过程绩效基线和模型。

2.1 建立项目软件的质量和过程绩效目标

定量管理首先需要确定项目的质量和过程绩效目标。软件策划阶段,软件负责人应分析组织年度质量和过程绩效目标,分析项目特性,识别本项目的绩效目标,包括来自于客户、最终用户和开发团队的需求,并确认各目标之间的关系和优先级[4]。

软件负责人可参考组织库中类似项目的过程绩效基线和模型,制定软件项目的质量和过程绩效目标。通过模拟预测,对目标达成的确定性概率进行分析。当目标确定性概率不符合要求时,需要通过模拟预测对项目的绩效目标进行调整,以确定最精准的项目目标。当目标发生冲突或不能达成时,提交管理指导委会员决策。

2.2 策划软件定量管理

软件项目的质量和过程绩效目标确定后,通过分析组织过程绩效基线和模型,识别能帮助实现项目目标的候选子过程。当组织过程绩效模型复杂时,项目各阶段子过程具有不同方法,即具有不同的基线,例如需求开发有原型法和访谈法,对应两个基线,同行评审有会议法和审核法,也对应两个基线。对于这种情况,策划阶段就需要模拟决策,找出符合绩效目标的最佳方法组合,也即各子过程的基线组合。

当定量管理的子过程确定后,项目的阶段定量管理时机也就确定了。

然后识别并确定子过程中需要定量管理的产品和过程测量属性,确定测量项[5],如:缺陷密度、测试覆盖率等。确定对应测量项的量化分析统计技术,如统计过程控制图等。

根据以上的分析,需要制订一份软件定量管理计划,作为项目过程中的定量管理依据,内容应包含以上分析的结果。

2.2 监控项目软件质量和过程绩效目标

项目研制过程中,根据软件定量管理计划,在项目执行的各子过程阶段,采集用于定量管理的测量项的实际数据。在定量分析之前,需要对测量数据进行有效性验证[6]。

在各子过程阶段,把采集的实际测量数据和对应子过程的绩效目标进行比较。当实际数据不符合目标要求时,需要进行原因分析,识别不能达成目标的风险,采取必要的纠正措施,调整相应的项目目标基线,通过组织绩效模型重新执行模拟预测,以检验后面阶段项目质量和过程绩效目标是否能达成[7]。此过程可能需要多次调整和预测,直致满足后面阶段项目目标。如果多次调整,超出了项目组实际能力范围仍不能满足项目目标,需提交项目负责人决策。

监控项目目标过程中,对已识别的风险纳入风险管理,确定的问题纳入问题跟踪管理。

项目结束时,由软件负责人整理项目的定量管理数据并提交软件工程过程小组(SEPG)[8]。

3 软件定量管理举例

3.1 组织的年度质量和过程绩效目标

假设某类型软件的年度阶段质量绩效基线和模型如表1和表2所示,表1中的基线符合正态分布。本文结合这些质量基线和模型,进行软件质量方面的定量管理说明。

表1 某类型软件年度阶段质量和过程绩效基线Tab.1 Organizational stage Quality and process-performance baseline for certain type of softwares

表2 某类型软件阶段质量和过程绩效模型Tab.2 Organizational Quality and processperformance model for certain type of softwares

需求评审缺陷密度的子因子:需求评审单位规模工作量。

3.2 软件策划阶段定量管理

3.2.1 初定项目的质量和过程绩效目标

策划阶段,根据软件估计,某配置项软件需求条数大概100条,按照表1中需求评审缺陷密度转换为缺陷数约为【12,18】。由于需求评审缺陷密度对最终质量目标验收缺陷密度影响最大,该范围不满足验收缺陷密度目标,通过预测,需求评审缺陷数范围为【14,20】能满足验收缺陷密度目标。初步制订项目的阶段质量和过程绩效目标,如表 3。由表2中模型公式得出,应变量需求评审缺陷密度是项目的一个阶段质量目标,其是否满足阶段目标依赖于自变量子因子需求评审单位规模工作量的定量管理。项目要求达到质量目标的确定性概率大于等于95%。

表3 初定的项目阶段质量绩效目标Tab.3 Preliminary project stage quality performance objectives

3.2.2 调整项目质量和过程绩效目标

使用蒙特卡洛模拟法来预测表3中目标的确定性概率是否能满足要求,这可通过模拟分析软件或者编写相应的程序完成。

每次蒙特卡洛模拟采样的次数越多(即参与预测的随机样本数据越多),预测的准确性会越高。表3中自变量子因子需求评审单位规模工作量基线随机样本数据代入表2中的过程绩效模型,进行模拟。模型的模拟结果显示为一张预测图,如图1为需求评审缺陷密度预测图。

图1 需求评审缺陷密度预测图Fig.1 The forecast chart for requirement review defect density

根据项目的质量目标,本项目的需求评审缺陷密度应该为(0.14,0.2)。在当前项目质量目标条件下,按照需求评审缺陷密度目标进行估算的确定性概率为63.02%,见图1,低于95%的质量要求,信心指数过低。

通过模型公式看出,为了达到需求评审缺陷密度质量目标的确定性概率大于等于95%,需要增加需求评审单位规模工作量。项目组根据组织的能力范围和项目实际情况,调整需求评审单位规模工作量,计算出新的均值和标准差。基于新的需求评审单位规模工作量的基线,预测出新的需求评审缺陷密度目标的确定性概率。如果质量目标确定性概率满足要求,项目组应策划新的需求评审措施,例如可采用对需求评审检查单内容重新制订、增加或更换评审专家、重新增加需求的评审次数等方案,以增加需求评审单位规模工作量。

需求评审单位规模工作量均值调整到0.25后,重新模拟结果如图2所示。

图2 最终需求评审缺陷密度预测图Fig.2 Final forecast chart for requirement review defect density

由模拟结果看出,加大需求评审单位规模工作量后需求评审缺陷密度达到目标的确定性概率为99.23%,符合质量目标要求,且未超出组织的能力范围。调整后项目质量目标如表4所示。

表4 调整后的阶段项目质量目标Tab.4 Adjusted project stage quality performance objectives

如果再次模拟仍未达到质量目标要求,则需要反复调整质量模型子因子基线数据,多次模拟质量目标并分析确定性概率。

以上例子中模型为一元方程。如果模型为多元公式,即应变量绩效目标有多个自变量子因子,例如最终验收缺陷密度可能和需求评审缺陷密度、编码人员平均技能系数、集成测试单位规模用例数量、系统测试缺陷密度等多个过程子因子有关,该模型应是一个多元公式。这种情况下调整项目绩效目标,首先需要进行敏感度分析,以找出模型中各子因子对绩效目标的影响大小。敏感度分析可使用方差贡献图表示,子因子的相关系数百分比绝对值越大表示对绩效目标的敏感度越大。调整时需要按模型子因子的敏感度由大到小的顺序调整,先调整敏感度大的子因子基线,如果在组织能力范围内调整后不能满足要求,再调整敏感度小的子因子基线,直致满足要求。4.2.1节中就是通过敏感度分析找出需求评审缺陷密度对验收缺陷密度的影响最大。

在调整模型子因子基线数据时,依据经验和组织实际能力相结合的原则调整,并需要进行原因分析。如果有不可控情况或超出组织能力范围,需要采取措施、进行风险管理并提交领导决策。

3.2.3 确定软件阶段定量管理内容

项目质量目标确定后,软件负责人需要根据组织的过程绩效基线和模型,确定项目的阶段定量管理时机。

项目过程中,模型公式的各应变量和自变量子因子对应的测量项都需要采集实际数据,其所属的子过程都需要定量管理。

例如,表2模型公式中需求评审缺陷密度和需求评审单位规模工作量都是和定量管理相关的测量项,需要在需求评审阶段结束时采集需求评审缺陷数、需求条数、需求评审工作量,并派生计算和定量分析。

把以上的内容写入软件定量管理计划,包含年度组织质量和过程绩效目标要求、项目质量目标、项目测量集、子过程定量分析方法、项目风险及目标达成、预防措施等。

3.3 其他阶段软件定量管理

项目过程中,项目组按照软件定量管理计划进行阶段定量管理,定量管理方法和软件策划阶段的方法类似。

例如,本例中在需求评审结束后,采集实际的需求评审的缺陷数,需求条数和需求评审工作量。计算出实际的需求评审缺陷密度和需求评审单位规模工作量。

如果实际的需求评审缺陷密度超出项目阶段质量目标基线上下限范围,则需调整需求评审缺陷密度的子因子“需求评审单位规模工作量”,并模拟得到新的需求评审缺陷密度。

如果需求评审缺陷密度目标新的确定性概率仍不满足项目的质量要求,则需要反复调整需求评审单位规模工作量基线数据并多次模拟质量目标。如果有不可控情况或超出组织能力范围,需要进行风险管理并提交领导决策。

模型子因子基线数据调整后需要按照新的基线数据制定方案,重新进行阶段工作。例如本例中需要重新进行需求评审,需求评审结束后再次进行定量管理,直至满足阶段质量目标。

如果模型为多元公式,项目过程中,采用相同方法,在模型公式的各应变量和自变量子因子所属的子过程采集实际数据和定量管理。

项目结束时,软件负责人整理项目的定量管理数据,进行原因分析,找出各阶段影响质量目标的因素及风险,记录在阶段报告和研制总结报告中,作为后续项目的风险防范。

4 结论

本文介绍了GJB5000A四级软件定量管理的方法。通过软件定量管理,在项目研发过程中能预先预测影响项目目标的风险,及时采取措施,确保项目目标的最终实现。

本文的方法对于军用软件的定量项目管理具有很好的参考价值。

[1] 倪亭. 在软件研发与测试中推广GJB5000A[J]. 软件, 2013,34(2): 31-35.

[2] 石柱. 军用软件研制能力成熟度模型及其应用[M]. 北京:中国标准出版社, 2009.

[3] 欧阳树生, 胡勇, 沈华红. 提高软件开发项目定量预测模型准确率的研究[J]. 信息技术与标准化, 2016, (8): 68-70.

[4] 张旭, 刘浩驰. 基于CMMI的量化管理在项目中的应用与研究[J]. 电脑与电信, 2016, (4): 62-65.

[5] 冯听雷. GJB5000A测量与分析过程域研究[J]. 软件, 2012,33(4): 118-119.

[6] 解群, 邹步青, 王勇. 军用软件过程质量度量实施方法研究[J]. 微型机与应用, 2014, 33(17): 1-4.

[7] 丁岳伟, 刘玉敬. 软件项目量化管理的实践[J]. 计算机系统应用, 2012, 21(6): 254-257.

[8] 刘文红, 马贤颖, 董锐, 张敏, 陈青, 吴欣, 张光迎. 基于CMMI的软件工程实施:高级指南[M]. 北京: 清华大学出版社, 2015.

猜你喜欢
基线定量密度
『密度』知识巩固
密度在身边 应用随处见
适用于MAUV的变基线定位系统
高技术通讯(2021年3期)2021-06-09 06:57:46
航天技术与甚长基线阵的结合探索
科学(2020年5期)2020-11-26 08:19:14
显微定量法鉴别林下山参和园参
“玩转”密度
密度应用知多少
当归和欧当归的定性与定量鉴别
中成药(2018年12期)2018-12-29 12:25:44
10 种中药制剂中柴胡的定量测定
中成药(2017年6期)2017-06-13 07:30:35
一种改进的干涉仪测向基线设计方法