1.核动力运行研究所,湖北 武汉 430223
2.中国舰船研究设计中心,湖北武汉430060
摘要: 随着信息化技术发展,软件在集成系统中的比例不断提高。如何持续提升软件质量,成为系统集成领域需要重点解决的问题之一。本文从精细化管理理念和工程实际出发,分析了软件研制过程中存在的一些典型问题,提出了解决思路。
关键字:精细化管理;软件研制
1.概述
随着信息化技术的不断发展,特别是在系统集成优化的需求下,原有系统中部分硬件的功能需要用软件来替代,软件在集成系统中所占的比重越来越高。软件作为支撑系统运行的灵魂,已经越来越凸现出其举足轻重的作用,直接影响到系统的质量。同时软件偏“虚”的特点,导致其质量相对硬件来说较难评价,对其研制过程的管理也提出了更高的要求。怎样站在总体角度开展高质量软件研制,研究适用于系统总体层面的软件质量管控方法显得尤为重要。本文从软件研制过程中部分典型问题入手,对精细化管理、持续改进方面提出了一些思考和建议。
2.问题思考
2.1如何提升软件研制质量
在现代软件工程学中,软件质量被定义为软件确定的功能和性能需求,正式明确的开发流程和标准,以及软件所应具有的隐含特性得到满足的程度。目前部分软件项目管理人员对于软件代码的质量关注度高,而对软件全生命周期质量精细化管理的认识还需要进一步提高。软件研制质量不止由软件编码质量决定,在软件生命周期各个阶段涉及许多性质各异的工作、任务、文档等,这些不同方面的因素或多或少影响着软件的质量,最终都有可能导致软件的故障、缺陷。
图1 软件研制的典型生命周期模型图
2.2如何识别软件研制的风险
有的软件研制存在进度拖延或返工问题,其部分原因在于前期对风险的识别不够充分,例如配套硬件的研制进度滞后,软件的跨平台移植性需求估计不足等。软件研制品质的保障源头在于策划和设计阶段,如果初期方向出了问题,后果往往是较难弥补或需要花费重大代价的。
2.3如何加强软件外包过程的质量控制
对于总体设计牵头单位来说,软件编码、单元测试等阶段的工作往往是由一个或多个外包方联合完成的。在软件研制过程中如何对外包单位软件研制质量进行有效管理,对提升软件研制质量、缩短研制周期极为重要。如软件在外包方测试时不够充分,在第三方测试时发现的问题较多,反复修改,会浪费大量时间;部分外包方软件文档、代码格式存在质量较差的问题,编码不规范、无注释,文档编制不规范,对软件后期的使用、维护都会带来较大困难。
2.4如何加强软件研制过程的组织过程资产复用
软件研制过程中的文档、代码、经验和教训等都是组织资产的一部分、是组织无形的财富。目前软件的代码、文档复用还存在偏低的问题,软件研制过程中的经验和教训怎样在组织内部更好的分享也是需要持续关注的问题。
3.改进措施
3.1依托软件工程过程管理体系加强全生命周期质量管理
精细化质量管理中提出“质量是设计出来的,是生产出来的,是预防出来的”。质量管理、防患于未然。随着用户方对软件研制质量越来越重视,也要求单位内部要建立健全软件工程化管理制度,要根据软件承制资格规定,建立与软件重要性、规模相适应的软件管理体系,达到相应软件研制能力并取得资质证书。一些单位依托GJB 5000A 《军用软件能力成熟度模型》、GB /T 19001《质量管理体系标准》等标准基础建立了单位内部的软件质量体系。有体系文件的指导、有章可循,有标准可依托,也要求软件开发人因在软件研制生命周期中将质量管理体系文件充分贯彻执行。
3.2重视软件开发策划充分识别风险
加强软件前期策划,结合质量体系要求和业务特点,识别软件产品实现所需的过程,确定过程准则和过程资源,充分识别软件实现过程技术质量、进度等风险,做好风险分析和评估,形成风险清单和对应管控措施,在产品研制生产全周期进行持续跟踪落实,确保风险受控。具体做法上,则建议可以采取邀请项目组和经验丰富的项目负责人等开展“头脑风暴”等形式充分识别研制过程风险,提前策划项目的“B计划”作为备用方案等等。
3.3对软件外包方研制全流程进行监督
从部分单位的经验来看,可根据软件的规模及关键等级选择具有相应资质等级的软件外包方,从而从源头方面筛选出更好的外包方承担软件外包工作。细化对软件外包方的节点要求,除了合同中规定的时间节点外,可设置内控监督检查节点或定期例会制度,及时跟踪软件外包中的各类时间节点。此外,还建议细化对外包方的技术要求,例如文档模板、代码编制规范等。
3.4加强软件研制过程的组织资产复用和知识分享
关于软件工程化管理,标准中一些要求对于非软件专业出身的软件研制人员的使用和理解来说可能会有一些难度,需要实际进行摸索,有研制工作经验的项目负责人的传帮带作用显得尤为重要,通过软件研制过程中的经验分享和交流,模板文件的传承,领会体系文件中相关规定流程的意义,更加有利于融会贯通、举一反三、标准的良好落实实施。
4结语
软件质量的提升是一个不断精进的过程,也可看做是一个系统工程,需要顶层规划、逐项落实、持续改进。依靠质量管理体系的有效运行,加强软件研制全生命周期工程质量管理和风险管控,大志小行、知行合一,让持续改善成为习惯,从而切实提高软件研制的质量。
参考文献:
[1]刘畅,郝佳宁.基于GJB 5000A的软件质量保证[J].质量与可靠性2020(01):58-62.
[2]项国富.舰船装备软件质量的问题与思考[J].舰船质量2020(44):64-65.
[3]杨骁.软件开发中影响软件质量的因素研究[J].现代工业经济和信息化2019(11):115-117.
[4]刘海峰.装备软件质量保证的现状和思考[J].通信对抗.2008.
作者简介:罗芳(1988年1月6日),汉族,四川省资阳市,硕士研究生,工程师,研究方向:软件开发、软件测试,工作单位:核动力运行研究所。