军用软件测评实验室测评管理度量模型设计与实现*

2019-09-27 01:36姜晓辉郭久武
舰船电子工程 2019年9期
关键词:度量数值软件

姜晓辉 胡 勇 郭久武

(北京特种机电技术研究所 北京 100012)

1 引言

遵从《ISO/IEC 17025:2017实验室管理体系检测和校准实验室能力一般要求》/《GJB 2725A-2001测试实验室和校准实验室通用要求》标准建立的软件测评机构,其软件测评工作与软件开发是相对独立的软件工程过程。软件测评项目管理包括项目策划、测量与监控、配置管理和质量保证等过程。在软件测评项目管理中,通常重点考察质量、进度、成本三个维度,最终目标是以过程质量换取交付产品的质量保证[1~2]。

我国获取国家和军方认证的软件测评实验室已达300多家,测评工作的管理与测试项目的评价尚没有统一的度量模型与评价方法。如何有效地管理测评项目,是目前国内外学者研究的重要课题。基于此,参考CMMI(能力成熟度模型集成)技术中系统与软件工程技术、软件质量要求和评价技术、软件开发项目的产品度量和过程度量方法[3],提出一种军用软件测评实验室测评管理度量模型,构建了面向管理的度量指标体系和评价方法[4],并依此完善标准化的测评项目量化管理机制。该模型可应用于软件测评实验室管理机构对实验室的监控[5],实验室间的能力比对,需方选择合格测试业务供方,以及实验室的内部管理。经数十个测评项目的工程实践表明,该模型可有效提高我国军用软件测评项目量化管理的精准性与效率。

2 软件开发项目度量

软件研制能力成熟度模型技术将软件度量分为产品度量和过程度量。它们从不同维度反映软件工程的特性,通过定量监控软件开发的实施过程和过程产品质量,达到质量管理的目标。

2.1 软件产品度量

软件产品度量是对软件固有质量属性的度量。从工程实践角度讲,可以简化理解为对软件产品质量和软件使用质量的度量[6],见图1和图2。

图1 产品质量模型

图2 使用质量模型

针对软件的质量特性与子特性进行度量集构建,典型度量一般包括功能的充分性、计算的精确性、数据的可交换性、数据加密、缺陷密度、对诊断功能的支持、环境的适应性、任务有效性和满意度标度等[7~8]。

2.2 软件过程度量

软件过程度量是对软件过程进行度量的定义、方法、活动和结果的集合[9]。通过度量,给出对软件过程客观的评价[10],用于指出软件属性的趋势,能有针对性地进行改善。从过程依从性、稳定性、生产率、时间和进度、资源和费用、技术能力6个过程性能类型进行度量集构建[11],典型度量一般包括过程偏离度、需求变更、软件过程变更、开发效率、环境资源和技术适应性等。

2.3 统一过程度量与评价

现有软件质量度量技术着重分析软件质量属性的影响因素,研究对象是软件产品,即在软件质量属性和软件设计、编程的特性之间建立关联映射。这些度量可以帮助认识软件产品的质量特性,尽管其对质量特征和产品特性的度量本身是有用的,但在软件过程质量度量中无法使用;且模型中的质量要素和准则(子特性)之间的关系是通过非形式化建立,不能确定该模型是不是质量的一个完备的或者一致的定义,为评价带入主观性因素。

现有软件过程度量技术对软件过程的度量存在片面性,不能充分体现度量的过程性;CMMI技术虽然为软件过程改善和软件过程评估提供了一个有效的指导框架,在这个过程中,软件的质量、进度等都是可以预测的;但没有提出实现每个关键过程域的具体知识和方法,缺乏实际操作性。

为解决上述问题,业界提出使用“目标-提问-测量GQM(Goal-Question-Measurement)”方法的统一过程度量模型,抽取各个过程域所需的过程和产品的基本度量和导出度量,形成软件项目的典型度量,包括规模、工作量、人员、进度、生产率、缺陷密度等,将这些度量按照过程度量和产品度量进行分类和分层,建立过程和产品统一性度量与评价模型,形成统一性的层次结构。

3 软件测试项目度量体系设计

基于软件开发项目度量中统一过程度量思想设计模型,从测试项目过程和测试产品质量的角度提出基本度量和导出度量,明确度量层次关系和度量信息模型[12]。提出由10个导出度量组成的度量体系用于测试项目质量管理[13],如表1所示。

表1 度量体系设计

采用信息需要测量目标、度量指标、基本度量元和计算公式,由信息需求到测量项关系表的形式,明确基本度量元与最终管理需求的映射关系。

4 度量归一化模型设计

基于提出的度量体系,设计了归一化模型和评估方法。将项目管理参数整合成一项反映项目整体进展状态的集成化指标,归一化模型和评估方法满足标准如下。

指标是绝对数值,无量纲。各个参数情况不同,侧重于不同的软件度量维度,可比性差。有的参数无量纲(如工作量使用偏差率),有的参数有量纲(如缺陷密度的量纲为个缺陷/KLOC),没有可比性。为了将其整合为一项指标,必须将所有纳入指标的参数去量纲化。各参数的归一化数值才具有可比性,才能运用于计算。

各个参数的无量纲数值的数量级相同,最多相差1个数量级。如果各个参数数值相差悬殊,会发生大数据“淹没”小数据的情况(即小数据被忽略不计),指标就无法反映被“淹没”的参数的贡献。

各个参数的无量纲数值的物理意义明显,符合人们的认知规律和直观感觉。

基于GJB 2434A-2004《军用软件产品评价》、GB/T 18905-2002《软件工程产品评价》等标准中的评价方法。按照业界常规的指标评价方法,指标取值范围为[0,1]。

二元度量(算法中权值参数取值0或1)和分段度量(如:五级计分制)均是主观度量,且取值粒度较粗。采用更精细、更客观的度量算法。

使用正面评价法(数值越大越好),符合国人的思维习惯,使得指标的趋势表现更明确。

依据参数的关注度和重要性,对不同的参数赋予不同的权值。

建立指标评价准则,用以评判项目的整体进展状态。允许用户自主、灵活地设定评价标准,以符合评价项目的实际情况。

基于以上准则,建立的通用的归一化指标模型的形式化表述如下:

其中,V为集成化指标值,取值范围[0,1];αi为各个参数的权值,取值范围[0,1];βi为各个参数的取值,取值范围[0,1];N是纳入集成的参数项数,N ≥ 1。

式(1)中的βi可以进一步分为以下四种情形:

Ⅰ类:参数数值本身就是正比率,以百分比表示;参数度量是一种正向度量(即度量值越大越好)。如测试需求覆盖率,取值范围[0,1]。此种情形最简单,直接取参数数值本身即可。

Ⅱ类:参数数值本身就是偏差率,以百分比表示。不论是正偏差还是负偏差,都是超出项目的预期,都会对项目带来影响,因此都要考虑。解决办法是取偏差率的绝对值。为了保证取值范围[0,1],还需要取绝对值与1的最小值。鉴于偏差率度量是一种反向度量(即度量值的绝对值越小越好),对项目带来的是负面影响,因此需要将其影响扣除,解决方法是从1中减去最小值。值得一提的是,用户需求变更率也可归入Ⅱ类。

Ⅲ类:参数数值带量纲,以具体数值表示;参数度量是一种反向度量(即度量值越小越好)。如项目的缺陷密度是10个缺陷/KLOC,缺陷密度越小质量越好,对这些参数必须去量纲化。解决办法是设定其目标值作为基准(Benchmark)值,取参数数值与基准值的比值。为了保证取值范围[0,1],还需要取比值与1的最小值。鉴于参数度量是一种反向度量,因此需要将其负面影响扣除,解决方法是从1中减去最小值。

Ⅳ类:参数数值带量纲,以具体数值表示;参数度量是一种正向度量(即度量值越大越好)。如项目的生产率为10 LOC/人时,生产率越大效率越高,对这些参数必须去量纲化。解决办法是设定其目标值作为基准值,取参数数值与基准值的比值。为了保证正向效应,需要从比值中减去1。为了保证取值为正值,需要取其与0的最大值。为了保证最终结果的取值范围[0,1],还需要取最大值与1的最小值。

考虑四种情形后,建立的归一化指标模型的形式化表述如下:

其中,V为集成化指标值,取值范围[0,1];α1i为Ⅰ类参数的权值,取值范围[0,1];α2i为Ⅱ类参数的权值,取值范围[0,1];α3i为Ⅲ类参数的权值,取值范围[0,1];α4i为Ⅳ类参数的权值,取值范围[0,1];β1i为Ⅰ类参数的取值,取值范围[0,1];β2i为Ⅱ类参数的取值,取值范围[0,1];β3i为Ⅲ类参数的取值,取值范围[0,1];β4i为Ⅳ类参数的取值,取值范围[0,1];N1是Ⅰ类参数项数,N1≥1(N1为0时,不纳入公式,以下同);N2是Ⅱ类参数项数,N2≥1;N3是Ⅲ类参数项数,N3≥1;N4是Ⅳ类参数项数,N4≥1;Ri是Ⅰ类参数的正比率;DRi是Ⅱ类参数的偏差率;NQi是Ⅲ类参数的反向度量取值;是Ⅲ类参数的反向度量基准值(目标值);PQi是Ⅳ类参数的正向度量取值;是Ⅳ类参数的正向度量基准值(目标值)。

式(2)建立的归一化指标模型比任何单维度指标更全面、更完整地反映项目进展状态;优于二元度量和分段度量,度量结果更精细、更客观;可用作统一指标来评估项目绩效(只要事先设置评估标准和准则);具有开放性和扩展性,可随时追加所需的参数度量。

在β3i和β4i中,当参数数值与基准值相同时,出现一个奇点:β3i和β4i取值为0,即参数对指标零贡献。在任务书中,指标通常是以“ ≥”或“ ≤”形式下达指标,当参数数值正好等于基准值时,也已经实现目标,在评估时注意此类情况。

5 综合评价方法设计

针对质量、进度和成本设计综合评价方法。以综合度量指标为基础,提出了一种综合度量指标评价方法[15]。

根据上文V定义,V取值越大,项目状态越好。评价项目状态,用户需要事先设置评价标准,其结果是测量值被映射到某一标度上。通常设置优秀、良好、合格、不合格4级标准。

评定等级标准一般划分如图3所示。

图3 测量和评定等级

将评定等级的四个区域分别标识为A(优秀)级、B(良好)级、C(合格)级、D(不合格)级,并赋以数值,赋值说明如表2所示。

除了定义评定等级外,用户必须定义评估准则,规定综合度量指标V应该达到的水平。例如,设置的评定等级是B,即在“当前水平”线之上,则评价准则可定义为当V的测量值 ≥“当前水平”,项目达标;否则项目不达标,即使V的测量值 ≥“最差情形水平”,此时项目状态还是合格的。

表2 评定等级赋值

6 实例验证

6.1 军用软件测评过程

军用软件测评项目均依据《[2005]装电字第324号军用软件测评实验室测评过程和技术能力要求》,结合各军兵种软件工程工作的管理规定开展工作。一般包括任务下达、测评启动、测试需求分析、测试策划、测试设计、测试实现、测试执行、回归测试、测试总结、测试结项活动[16]。通常军用软件测评实验室会将其中可控的测试活动归纳为五个工作过程,即测试需求分析与策划过程、测试设计与实现过程、测试执行过程、回归测试过程、测试总结过程。

6.2 军用软件测评测量过程

军用软件测评项目综合度量活动包括信息需要,建立度量目标,选择度量,引用或定义度量规范,制定度量计划,将测量与分析活动集成到项目开发过程中[17]。测量与分析的执行活动包括度量计划采集度量数据,检查度量数据的质量,存储度量数据,计算指示器的值,分析度量数据,解释当前项目的进展状态,标识项目出现的异常情况,并分析问题的原因。数据分析的结果及时向项目管理者和相关方通报,提供项目管理者决策和纠正措施的依据。军用软件测评项目进展综合度量流程是附加在军用软件测评流程中进行的。

6.3 实验与验证

表3 四类参数举例

针对军用软件测评项目,通过一个使用式(2)建立综合度量指标的示例进行验证。假设一个军用软件测评项目已经处于测试总结过程末期,需要对阶段整体进展状态进行评估。对四类情形各举一例,如表3所示。

计算β值和各个参数的贡献值αβ的结果如表4所示。

表4 四类参数导出的β值和贡献值

集成化指标值V=0.68,对照表2的标准,项目可评判为C(合格)水平状态。

7 结语

针对军用软件测试过程要求和特点,提出一种基于统一过程度量的软件测评项目管理模型,使用过程和质量度量模型控制项目质量、进度,通过归一化方法获取有效度量元,从多个维度对软件测试过程进行度量。通过军用软件测评实验室实际项目实验证明,本模型能够客观标识测试项目进展状态,提高软件测评项目量化项目管理的有效性和效率。在今后的研究中,应深入展开多级综合评价方法等相关算法研究,进一步完善度量与评价体系;特别是对不同类型、不同领域软件测评项目度量元的权重分配采用具体技术、方法、步骤,其有效性、合理性以及适用性有待进一步结合数据积累分析研究。

猜你喜欢
度量数值软件
鲍文慧《度量空间之一》
体积占比不同的组合式石蜡相变传热数值模拟
禅宗软件
数值大小比较“招招鲜”
舰船测风传感器安装位置数值仿真
铝合金加筋板焊接温度场和残余应力数值模拟
代数群上由模糊(拟)伪度量诱导的拓扑
突出知识本质 关注知识结构提升思维能力
软件对对碰
度 量