APP下载

软件设计评审量化模型研究∗

2023-11-15宿鲁艳

舰船电子工程 2023年8期
关键词:正态密度软件

楚 菲 宿鲁艳

(中国电子科技集团公司第二十八研究所 南京 210023)

1 引言

指挥信息系统[1]软件的研制过程有着软件系统复杂、软件需求变化快,软件规模庞大,研制周期短等特征。为了适应指挥信息系统软件研制特点,对于军工企业而言进行软件工程的过程改进是必由之路,要不断地优化企业的软件工程实践,采取适合企业情况的最佳实践。

军用软件能力成熟度模型是军用软件全生存周期过程技术和管理最佳实践的集合[2]。这些“最佳实践”是对过程活动所获得的经验、做法进行总结和萃取,将其形成标准化的,可推广实施的操作、流程、规则等,以有效地在整改组织范围内最大地利用改进过程所创造的价值[3]。这些实践可以指导组织实施精细化过程管理,不断改进组织过程,提高质量和过程绩效[4],提升组织整体交付效率,降低交付后缺陷率,进而实现组织核心竞争力的提升,提升客户满意度。在军用软件能力成熟度模型四级“量化级”中明确要求“采取量化分析技术,实现较高的质量和过程绩效”。一个组织整体运作的关键因素在于组织过程绩效,建立和维护组织过程绩效基线和模型是非常关键的,是提升组织能力和进行定量管理的基础[5]。

本文选取软件设计评审过程进行量化改进,给出了建立软件设计评审过程性能模型的方法。在模型建立过程的工具选择方面,由于Minitab 是一款体积小、功能全面的质量管理工具软件,它涵盖了基本统计技术、回归分析、方差分析、实验设计分析、控制图、质量工具和可靠性工具等功能[6],本模型建立过程选用Minitab工具。

2 必要性分析

软件质量之父Watts S.Humphrey 多年前就提出了团队软件过程TSP(Team Software Process)模型[7],在该模型中提出了十个量化法则,其中两个量化法则能够充分说明软件设计评审的重要性。具体描述如下。

关于工作量分布的定量法则:在设计评审上花费的时间比设计时间多50%以上时,评审一般比较彻底。这条法则告诉我们相比设计过程,设计结果是否正确、合理、足够优秀更为重要。而要确保好的设计结果就要抓好设计评审。

关于质量分布的定量法则:80%的软件缺陷[8]应该在编译之前发现。这条法则告诉我们软件缺陷越早发现越好。越早发现缺陷,修复软件缺陷的成本越低。研究表明,评审在发现规格说明错误和设计错误方面的有效性高达75%。由于能够检测出并排除掉绝大部分的这类错误,评审过程将极大地降低后续开发和维护阶段的成本[9]。

指挥信息系统软件的研制过程中,拟制软件设计说明是不可或缺的一个环节,软件设计说明主要描述计算机软件配置项的设计,包括计算机软件配置项级设计决策、计算机软件配置项体系结构设计和实现该软件所需的详细设计[10]。软件设计过程是软件编码前非常重要的一个环节,所以在软件设计评审过程中充分挖掘问题显得至关重要。建立模型,能够掌握已研制软件过程状态的稳定性和过程之间的关系,开展后续软件预测,对目标实现的达成情况进行分析并有针对性地采取措施[11]。因此,为了把好软件编码前最后一道关,提升软件设计评审有效性,研究软件设计评审过程性能模型的建立方法是十分必要的。

3 软件设计评审量化模型定义

建立软件设计评审过程性能模型要尽可能地识别出所有对过程性能有影响的因子,并对影响因子进行分类、排序后,初步确定影响软件设计评审质量的因子是:软件设计人员能力、软件设计投入工作量、评审人员能力、评审速率、项目难度、软件需求评审清除缺陷密度,即:软件设计评审清除问题密度Y=f(项目难度X1、软件设计人员能力X2、评审人员能力X3、评审速率X4、软件设计单页投入工作量X5、软件需求评审清除缺陷密度X6)。

模型因子取值如下。

项目难度X1取值说明见表1。

表1 项目难度X1取值说明

表2 单个设计人员能力取值说明

表3 单个设计人员能力取值说明

评审速率X4=软件设计文档页数/评审所花工时;

软件设计单页投入工作量X5=软件设计总工作量/软件设计文档页数;

软件需求评审清除缺陷密度X6=软件需求评审问题数量/软件需求文档页数。

4 软件设计评审量化模型建立方法

4.1 原始数据收集

按照如下原则收集原始有效数据,作为建立软件设计评审质量过程绩效模型的样本数据:

1)近五年软件研制类或含软件的系统研制类项目;

2)开展了软件设计评审活动的项目数据;

3)软件设计评审度量数据完整,详实。

软件设计评审原始数据收集表见图1,为了达到能建立模型的要求,筛选后至少保留20 组数据。

图1 软件设计评审原始数据收集表模板

4.2 模型原始数据筛选

对原始数据进行整理、分析,首先删除无效数据,如:设计评审问题密度等于零的项目数据;然后分别对设计评审问题密度和各模型因子进行排序,识别出设计评审问题密度特别小或特别大的数据,对数据的特殊性进行研判,如果项目存在特殊性导致设计评审问题密度数据异常,则剔除该异常数据。

按照图1 模板建立原始数据表,导入初步筛选后的模型预测值和所有模型因子数据。将设计评审量化模型因子X1~X6和软件设计评审清除问题密度Y 拷贝至Minitab 工具中,为便于在Minitab 工具中显示,预测模型和部分模型因子简称如下。

软件设计评审清除问题密度Y 简称为“设计评审问题密度”;

软件设计人员能力X2简称为“设计能力”;

评审人员能力X3简称为“评审能力”;

软件设计单页投入工作量X5 简称为“设计工作量”;

软件需求评审清除缺陷密度X6 简称为“需求评审问题密度”。

建立如表4 的工作表,设计评审清除问题密度值Y对应C8列,各模型因子值X对应C2~C7列。

表4 建立模型Minitab原始数据表

4.3 模型数据正态性检验

所有统计分析的过程都是基于样本服从正态分布的假设,所以样本数小于30 的样本必须先进行数据正态性检验,只有服从正态分布的样本得到的控制图才有意义。

对软件设计评审清除问题密度Y 和各连续型模型因子X 数据分析进行正态性检验,概率图见图2。

图2 选定正态性检验图

图2 直观地展示了样本点和标准正态性分布的拟合程度,并列出了样本数据的均值、标准差、样本量(N)、样本数据的累积分布与理论正态的累积正态分布的面积差(AD 值)、统计量指标(P 值)。AD值越小,样本数据越接近正态分布。图3中P值小于0.005,说明样本数据不服从正态分布。则对数据进行稳定性检查,区分过程的普通原因和特殊原因的简单有力工具是控制图[12],尝试借助控制图识别异常点,删除异常点后再进行数据正态性检验。

图3 变量控制图

4.4 数据稳定性检查

控制图基于正态分布理论建立,按顺序绘点成图,以此监控过程是否处于控制状态。控制图中包括中心线、上控制界限和下控制界限,上下控制界限线以内的点可接受,上下控制线以外点为异常点[13]。使用Minitab 工具进行数据稳定性检查,生成变量控制图见图3。

控制图中显示有两个点距离中心线大于两个标准差,判定为异常点,数据不稳定,剔除异常点后,重新进行数据正态性检验和数据稳定性检查。剔除异常数据的样本数据符合正态分布,正态性分析见图4,数据稳定性分析见图5,数据稳定,未见异常点。

图4 选定正态性检验图

图5 变量控制图

4.5 数据相关性分析

为了验证软件设计评审清除问题密度Y 与每一个模型因子X 之间、以及模型因子X 两两之间的线性关联程度。使用Minitab 工具进行数据相关性分析,相关性分析结果见图6。

图6 相关性分析结果

业界关于Pearson 相关系数的绝对值参考值如下:

根据Pearson相关系数进行分析:

1)软件设计评审清除问题密度Y 与模型因子X之间的相关性分析见表5。

表5 Y与X的相关性分析表

经分析,模型因子“设计能力”与模型预测值不相关,删除该模型因子。

2)各模型因子X之间的相关性分析见表6。

表6 X之间的相关性分析表

经分析,“评审能力”和“项目难度”强相关,为了保证模型的线性特性,在建模时需要排除其中一个模型因子,排除对预测值贡献较小的模型因子“项目难度”。

4.6 最佳子集选择

将数据相关性分析后保留的模型因子X 进行组合,验证各模型因子X对软件设计评审清除问题密度Y 的影响程度。通常选择对预测值Y 影响较大,且模型因子个数适中的因子进行建模,以简化模型,便于模型的使用。

使用Minitab 工具分析最佳子集,最佳子集分析结果见图7。

图7 最佳子集分析结果

选择模型因子组合时综合考虑R-Sq(调整)值和模型因子的数量,选择R-Sq(调整)值较高,同时模型因子个数适中的模型因子组合,通过回归分析试算模型,试算后检查是否有异常观测值,如有异常观测值,删除数据后再次进行回归分析。通过以上试算分析,最终选择试算模型因子组合为评审能力和设计工作量。

4.7 数据回归分析

为了研究模型因子X 与模型预测值Y 之间的线性依赖关系,对选择的最佳子集进行回归分析,回归分析结果见图8,残差图见图9。

图8 回归分析结果

图9 残差图

回归分析结果显示R-Sq(调整)值为87.73%,超过75%,该模型因子组合达到建模要求,以“评审能力”和“设计工作量”作为关键因子构造回归方程,获得公式和各项参数。

4.8 确定最终模型

分析模型公式和因子组合符合实际工作情况,各因子可控,确定最终模型公式如下:

软件设计评审清除问题密度=0.05522×评审人员能力-0.00229×评审速率-0.1450。

5 结语

以上给出了软件设计评审过程性能模型的建立方法,该方法的运用依赖于软件设计评审过程的稳定,软件设计评审过程数据收集准确,影响因子识别全面,样本量充分等因素。因此,如果在运用此方法在建立过程性能模型时遇到困难,可以从以上角度查找原因。在软件设计评审过程性能模型初次建立完成后,应继续收集数据,待样本量充分后,根据后续积累的数据对模型进行持续改进,校准过往的过程性能模型。量化改进是持续进行的,持续改进是提高绩效的循环活动[14],持续地量化改进必将不断提升组织的产品质量和过程绩效,实现组织核心竞争力的不断提升。

通过建立基于GJB5000A 定量管理的型号软件体系及实施应用,提升了软件研制管理能力。建立基线,能够掌握已研制软件的过程管理能力水平,为后续软件的研制作参考;建立模型,能够清楚已研制软件过程状态的稳定性和过程之间的关系,开展后续软件预测,对目标实现的达成情况进行分析并有针对性地采取措施。定量管理能够更好地对科研生产过程进行控制,其方法可以应用到科研生产管理的方方面面。结合定量管理的预防管理思路深入推进软件研制过程的稳定性,全面应用获取更多不同研制类型、不同研制阶段的过程数据,建立更加精准的基线和模型,推动规范管理向精益管理转型。

猜你喜欢

正态密度软件
『密度』知识巩固
密度在身边 应用随处见
禅宗软件
“玩转”密度
密度应用知多少
软件对对碰
双幂变换下正态线性回归模型参数的假设检验
基于泛正态阻抗云的谐波发射水平估计
半参数EV模型二阶段估计的渐近正态性
谈软件的破解与保护