芮吉祥
(上海船舶运输科学研究所有限公司 舰船自动化系统事业部,上海 200135)
近年来,军用软件的工程化水平不断提升,想要研制出高品质的军用产品,就必须大力发展软件开发技术,将其作为信息技术的核心[1]。目前很多国家都已将软件的研制能力和生产效率作为衡量其经济和科技发展水平的重要标准之一[2]。“软件定义装备”是武器装备信息化、智能化发展的必然趋势,军用软件在信息化战争和军事智能化发展中起着基础性、决定性作用。从建设世界一流军队、聚焦备战的层面看,我国与军事强国的竞争在某种意义上是软件研制和生产能力的竞争。GJB 5000A是一种产品开发模型,描述的是一组有效过程的特征,提供的是一套最佳实践。将软件开发视为一个过程,根据该原则对软件开发和维护进行过程监控和研究,使其更科学化、标准化,能使企业更好地实现工程目标。因此,不断提升软件产品的质量是软件研制工程中的核心任务之一。本文通过实例解析军用软件工作产品和过程活动的检查要点,介绍质量保证人员(Quality Assurance Personnel,QA)在军用软件开发阶段的主要工作特点和起到的重要作用。
在《军用软件研制能力成熟度模型》体系文件中,共划分了7个过程域,过程和产品质量保证(Process and Product Quality Assurance,PPQA)贯穿整个软件生命周期,占据着非常重要的地位[3]。项目级软件QA制订并维护《软件质量保证计划》,根据适用的过程说明、标准和规程,对软件项目遵循的过程和工作产品进行客观的评价,记录、跟踪不符合项,并向组织级QA、软件项目组(或软件开发组)成员和管理部门领导反馈质量保证活动的结果,确保不符合项得到解决[3]。PPQA活动的流程见图1。
项目级QA制订和维护《软件质量保证计划》,对软件项目的过程和产品进行客观评价,交流、分析在对过程和产品进行评价时发现的问题,记录、跟踪不符合项,确保不符合项得到调整[3]。形成PPQA记录,接受、配合评价工作,纠正不符合项。组织级QA审核《软件质量保证计划》,在每个阶段或里程碑节点对项目级QA的工作进行评价,审核其质量活动和工作产品。
QA在整个软件过程管理中对所有过程域进行监督,能掌握过程中的第一手资料,对完善项目过程具有重要作用[4]。
对于具体项目而言,工作产品审核的依据是GJB 438B—2009 《军用软件开发文档通用要求》,项目级QA应严格按照标准审核,不得参杂任何主观因素,做到客观、公正、仔细、认真。
例一:在《H1224电站监控系统(下位机)软件研制任务书V1.0》的审核中,项目级QA并没有严格按GJB 438B—2009的要求审核,导致该任务书的软、硬件环境描述内容缺失,在组织级QA的审查和监督下才对问题进行详细记录并跟踪解决,见图2。工作实践表明,项目级QA与组织级QA之间的交流非常重要,有问题需及时沟通,项目级QA要虚心接受组织级QA的批评和指导,保持积极进取的心态,认真弥补自己在审核工作中存在的不足,认真查阅文档,客观公正地记录不符合项,并跟踪解决。
图2 《H1224电站监控系统软件(下位机)软件研制任务书V1.0》审核截图
例二:在《H1224电站监控系统(下位机)软件设计说明V1.0》的审核中,项目级QA对工作产品的审核不能局限于当前阶段的工作产品,需建立系统性思维,贯穿前后、承上启下,熟悉每项工作产品与其他工作产品之间的关系,查漏补缺,针对遗漏或错误的部分开出不符合项。
图3为《H1224电站监控系统(下位机)软件需求规格说明V1.0》截图;图4为《H1224电站监控系统(下位机)软件设计说明V1.0》截图。由图3和图4可知,“软件设计说明”中的性能指标应与“软件需求规格说明”中的有关性能指标一一对应,遗漏的部分应开出不符合项。
图3 《H1224电站监控系统(下位机)软件需求规格说明V1.0》截图
图4 《H1224电站监控系统(下位机)软件设计说明V1.0》截图
图5为《H1224电站监控系统软件(下位机)软件单元测试说明V1.0》截图。单元测试计划应根据软件设计说明中的详细设计部分[5]编制,《H1224电站监控系统软件(下位机)软件单元测试说明V1.0》第四章表2测试项列表中的测试项“直流模拟量输入、直流模拟量输出、预定义逻辑处理功能”在单元测试计划相关章节中未见说明,内容不能一一对应,此时也应开出不符合项。
图5 《H1224电站监控系统软件(下位机)软件单元测试说明V1.0》截图
例三:项目级QA应有相应的专业背景,比如了解电站监控系统的基本技能,能对项目的性能指标和技术参数熟记于心。《H1224电站监控系统(下位机)软件设计说明V1.0》中对性能的描述为“刷新时间100 ms”(见表1),《H1224电站监控系统(下位机)软件需求规格说明V1.0》中对性能需求的描述为“实时数据刷新频率为10 ms”(见表2),二者之间存在冲突,很明显此处数据错误,因此需对性能指标数字的敏感程度形成条件反射。
表1 《H1224电站监控系统(下位机)软件设计说明V1.0》中的功能和性能描述
表2 《H1224电站监控系统(下位机)软件需求规格说明V1.0》中的功能和性能需求描述
例四:项目QA在进行代码审查时应严格按《过程和产品质量保证过程域》中规定的百分比进行代码抽查,例如H1224电站监控系统软件(下位机),该项目软件估算表代码行数为5 396行,实际代码行数为4 999行,小于10 000行代码应按50%比例随机抽查,实操中该项目QA抽查的代码片段见图6。
根据代码注释规范的要求,重要变量和典型算法必须有注释,图6中整形变量i的赋值运算(i=0)、算术运算(i++)和关系运算(i 1) 注释建议采用英文及英文标点符号。 2) 在注释中应标明对象的完整名称和用途,但应避免代码描述过于详细。 3) 每行注释的最大长度为100个字符。 4) 不允许给注释加外框。 5) 在编写代码的同时给出注释。 6) 重要变量必须有注释。 7) 对变量的注释与变量在同一行,所有注释都要与相应的变量对齐,与变量分开至少2个“Tab”键,例如: intm_iLevel,m_iCount; // m_iLevel…tree level // m_iCount…count of tree items stringm_strSql; //SQL 8) 典型算法必须有注释。 9) 在循环和逻辑分支的上一行必须就近添加注释。 10) 程序段或语句的注释在程序段或语句的上一行添加。 11) 在代码交付之前,必须删掉临时的或无关的注释。 12) 为便于阅读代码,每行代码的长度应少于100个字符。 例五:当发生计划或需求变更时,项目级QA应参加变更影响域分析,认真核对因计划或需求发生改变而需变更的工作产品,并在工作产品检查单自定义栏添加需检查的内容,见图7。 图7 工作产品检查单自定义栏片段 项目级QA参与软件开发计划的制订工作,根据软件开发计划制订《软件质量保证计划》,并按计划开展质量保证活动。以H1224电站监控系统软件(下位机)项目过程活动审核计划(见图8)为例,分析如下。 软件开发过程包含7个阶段,各阶段涉及的过程活动总结如下: 1) 软件需求获取阶段,涉及的过程活动包括项目策划活动、需求管理活动、测量分析活动、配置管理活动、任务管理活动、同行评审活动和联合评审活动; 2) 软件需求分析阶段,涉及的过程活动包括项目策划活动、需求管理活动、测量分析活动、配置管理活动、任务管理活动、项目监控活动、同行评审活动、联合评审活动、阶段评审活动和里程碑评审活动; 3) 软件设计阶段,涉及的过程活动包括软件设计活动、测量分析活动、配置管理活动、任务管理活动、项目监控活动、需求管理活动、同行评审活动和阶段评审活动; 4) 软件实现与单元测试阶段,涉及的过程活动包括软件单元测试活动、测量分析活动、配置管理活动、任务管理活动、项目监控活动、需求管理活动、同行评审活动和阶段评审活动; 5) 软件集成与测试阶段,涉及的过程活动包括软件单元集成与测试活动、测量分析活动、配置管理活动、任务管理活动、项目监控活动、需求管理活动、同行评审活动和阶段评审活动; 6) 软件系统测试阶段,涉及的过程活动包括软件系统性合格测试活动、测量分析活动、配置管理活动、任务管理活动、项目监控活动、需求管理活动、同行评审活动和阶段评审活动; 7) 软件验收发布阶段,涉及的过程活动包括测量分析活动、配置管理活动、任务管理活动、项目监控活动、同行评审活动、阶段评审活动和里程碑评审活动。 图9为H1224主推进装置控制监测系统软件实现与单元测试阶段的过程活动。从图9中可看出,项目任务管理活动和测量分析活动贯穿整个软件生命周期,其中:阶段时间超过45 d,在阶段中和阶段末各检查1次;阶段时间小于45 d,在阶段末检查。 图9 H1224主推进装置控制监测系统软件实现与单元测试阶段的过程活动 涉及的变更活动包括需求变更和计划变更:当需求发生变更时,需进行需求管理过程活动,并配置管理过程活动检查;当计划发生变更时,需进行项目监控过程活动,并配置管理过程活动检查。变更活动在整个过程活动中属于比较重要的部分:当涉及需求更改控制时,要确保识别出受影响的工作产品,并得到项目软件研制人员的承诺,项目级QA需参加需求变更影响域分析;当涉及计划变更时,项目级QA需参加软件开发计划,更改影响域分析,梳理变更流程,确保后续工作按合理可行的计划开展。关于变更涉及的需求变更和计划变更过程活动示例如图9所示。 在进行过程活动审核时,需特别注意到达里程碑节点的时间,整个软件开发阶段共有2个里程碑节点,分别是需求分析阶段的里程碑评审活动和验收发布阶段的里程碑评审活动。需在时间节点内检查该阶段的计划完成情况,发现并纠正问题,为下一阶段的工作打好基础。H1224电站监控系统软件(下位机)需求分析阶段的里程碑会议未在开发计划规定的时间内召开,这属于严重不符合项,见图10。 图10 H1224电站监控系统软件(下位机)需求分析阶段项目监控过程活动严重不符合项片段 不符合项主要分为2类[4],其中: 1) 第一类不符合项可理解为项目级QA发现某个软件工作产品或软件过程活动存在不符合项,被评价人员认可这是不符合项,同意立即或在约定的时间内采取纠正措施; 2) 第二类不符合项可理解为项目级QA发现某个软件工作产品或软件过程活动存在不符合项,被评价人员不认为这不是不符合项或被审核人员虽然认为这是不符合项,但无法对其进行调整或对纠正措施不能达成一致。 不符合项的记录方式是项目级QA在“军用软件过程管理平台”上记录,并在平台的“不符合项”中提交。对于第二类不符合项,项目级QA还需将不符合项信息填写在《软件不符合项报告》中,例如H1224电站监控系统软件(下位机)需求分析阶段的不符合项记录情况见图11。 在整个软件生命周期内,将在质量保证方面开展的工作分析体现在验收发布阶段撰写的质量保证总结报告中显得尤为重要,下面以H1224电站监控系统软件(下位机)项目为例进行分析。 在该软件的研制周期内共检查工作产品30个,发现不符合项41个,现已全部关闭。工作产品中的不符合项主要包括文档编制依据罗列不齐全、测试项描述不完整、未描述测试相关人员的活动、文档相应章节遗漏有关保密的要求、工作产品中遗漏软件功能和性能指标、外部接口名称描述不一致等。经分析发现,产生这些不符合项的主要原因有编制人员工作疏忽、对体系文件不熟悉和未严格按模板的要求编写等。 在软件研制周期内共完成过程活动评价59个,发现不符合项5个,现已全部关闭。过程活动评价中的不符合项主要包括里程碑评审会议未在开发计划规定的时间内召开和周采集数据未及时提交等。经分析,产生这些不符合项的主要原因有:软件负责人临时出差,无法在开发计划规定的时间内召开会议;项目组成员同时承担多个项目,需不定期出差,造成周采集数据未能及时提交。整个软件研制周期内的不符合项数量统计见表3。 表3 不符合项数量统计 该项目软件生存周期模型选用新研发的模型,其分析图见图12。整体质量应呈下降态势,但在软件验收发布阶段的不符合项数量呈上升态势。通过分析发现,出现该情况的原因是:软件固件保障手册和软件用户手册编制人员的工作态度不够端正,编写水平有待提高,对体系文件的理解能力不到位。总体分析该项目阶段不符合项总数未出现持续2个阶段增长的情况,整体质量状态和发展趋势无异常。 图12 新研发的软件生存周期模型分析图 该软件研制周期内的配置管理活动严格按《软件配置管理计划》执行,不存在偏差,配置管理活动与规程相符,在《软件配置管理计划V1.0》中发现1个不符合项,已采取纠正措施,并对其进行跟踪处理。当配置项发生更改时,按体系文件的要求执行更改控制,项目级配置管理员已及时更新《配置状态报告》。 质量保证是软件研制能力成熟度实施中较为重要的过程,该过程执行的质量与软件产品研制质量有着非常重要的关系。本文重点介绍了GJB 5000A二级软件成熟度模型7个过程域中的PPQA活动流程,阐述了项目级QA在军用软件开发阶段的主要职责和工作步骤,通过实例解析了工作产品和过程活动的检查要点,分析了不符合项的处理和反馈情况。由实践结果可知,项目级QA对于软件开发质量而言具有重要的基础保障作用。4 过程活动审核
5 不符合项实例分析
6 结 语