软件过程管理体系建设的本地化方法

2021-09-10 07:22殷群郗永琳
技术与创新管理 2021年3期
关键词:培训体系行业标准软件开发

殷群 郗永琳

摘要:软件研发方式封闭、研制过程管理失控,可能造成软件的可靠性和质量问题。企业的软件过程体系文件本地化,需要建立一支真正懂技术、懂管理的综合队伍,才能确保体系持续有效推进。为探寻合理的创新举措,以留存软件开发过程中产生的必要的技术文档和管理文档,保留软件开发项目的工作经验。针对企业软件过程体系文件本地化建设难、实施推进不力的问题,提出了体系建设与精益思想结合、优化管理流程、明确管理职责等方法,以实现体系本地化建设。通过严把评审、测试和检查关,以建立“走出去,请进来”培训机制、加强体系建设人才培养、提升全员软件质量意识等方法,确保体系有效实施,从而实现精细化、规范化管理;解决了由于人员流动引起的技术损失,实现成果可持续性继承;解决了低水平重复,实现研制能力台阶式发展,实现了软件研制过程质量意识的常态化提升。

关键词:行业标准;软件本地化;软件开发;培训体系;质量意识

中图分类号:TP 311文献标识码:A文章编号:1672-7312(2021)03-0321-05

Localization Method of the Construction of Software

Process Management System YIN Qun,XI Yonglin

(Xi’an Institute of Electromechanical Information Technology,Xi’an 710065,China)

Abstract:Closed software development methods and outofcontrol development process management may cause software reliability and quality problems.The localization of the software process system files of an enterprise requires the establishment of a comprehensive team that truly understands technology and management to ensure the continuous and effective advancement of the system.In order to explore reasonable innovation measures to retain the necessary technical documents and management documents generated in the software development process,and to retain the working experience of the software development project,this paper,in view of the difficulties in the construction of the file localization of the enterprise software process system and the ineffective implementation,put forward methods such as the combination of system construction and lean thinking,optimization of management processes,and clarification of management responsibilities to achieve system localization.Through strict review,testing and inspection,establishing a “go out,please come in” training mechanism,strengthening the system construction of personnel training,and improving the software quality awareness of all employees can ensure the effective implementation of the system so as to achieve refined and standardized management;The technical loss caused by the flow of personnel is realized,and the achievement of sustainable inheritance is realized;the lowlevel duplication is solved,the stepbystep development of the research capability is realized,and the quality awareness of the software development process is normalized.

Key words:industry standards;software localization;software development;training system;quality awareness

0引言

随着信息化和数字化程度的飞速发展,软件产品应用范围越来越广泛,数量越来越多,其规模和复杂程度也不断扩大,软件的核心地位和灵魂逐步凸现。软件实现的功能大大超过了硬件,一旦发生质量问题,造成的影响是极为严重的,甚至是灾难性的\[1-3\]。近年来在产品试验和实际使用中,暴露了不少软件质量方面的问题,软件已成为目前产品质量和可靠性的薄弱環节之一\[4-7\]。软件研制之所以容易出质量问题,是由软件研制工作的特点决定的。硬件研制过程有设计文件和图纸资料可查,配以硬件的实物测试,容易发现问题和解决问题,研制过程相对透明,过程监控措施比较完善。软件研制往往是基于个人作坊式的开发方式,软件项目的开发依附于某个个体或某个项目组,整个项目的执行过程对单位来说几乎就是一个“黑匣子”,也许这个项目非常成功,但单位难以让其他项目组共享经验,因为他们的成功是难以复制的\[8-10\]。对软件研制过程的监控如果采用类似硬件研制的监控方式,难以取得实质性效果,软件研制中出现的质量问题,主要是由于软件研发方式封闭、软件研制过程管理失控位造成的。软件质量已引起各级部门的高度重视,迫切需要寻求新的软件开发模式和管理方式,建立软件过程体系,将软件开发的所有活动纳入到体系中,使项目执行不再是一个“黑匣子”,企业可以掌控软件开发的每个环节,及时发现软件研制中的质量问题,消除质量隐患。为了解决软件研制面临的严峻形势,借鉴先进管理经验,发布了GJB5000A标准,企业按照标准建立企业的软件过程体系文件,以实施型号软件工程标准和规范的方式深入贯彻软件工程化思想\[11-13\]。

第3期殷群等:软件过程管理体系建设的本地化方法1推行过程存在的问题

在软件过程管理体系运行中,存在着管理工作量远大于软件工程工作量、工作效率及生产率不高等问题。结合软件开发大致流程,各个企业在推行和执行GJB5000A标准过程中出现了不少问题,如实施与体系文件要求相违背,测试和评审流于形式等。其主要原因有几个方面,一是对标准理解不透彻,未能做到融会贯通,在制定企业软件过程管理文件时将标准中的要求生搬硬套在体系中,文件大量使用标准术语,体系文件本地化水平低,科研人员难以理解和执行;二是对企业项目特点未进行深入分析和分类,没有根据企业特点制定软件研制流程和管理职责,重点不突出,管理不到位;三是培训方式过于简单单调,科研人员和管理人员培训不到位。为保证企业软件研制质量、提高软件管理水平、全面贯彻执行标准、增强企业软件研制和管理能力,必须建立一支真正懂技术、懂管理的综合队伍,确保体系持续有效推进。最主要的是要建立适合企业特点的本地化软件过程管理体系和分类分级加强各类人员培训。

2建立本地化软件过程管理体系的措施

GJB5000A行业标准,规定了软件研制和维护活动中的主要管理、工程過程实践,但未明确这些措施在软件研制过程中如何实施\[14-17\]。这就意味着单位必须要根据标准的要求,结合企业的软件研制实践,建立本地化软件管理体系,对研制过程实施管理。在符合标准的前提下,简化运行流程,降低管理成本。软件过程管理本地化,主要体现在几个方面。一是软件过程管理文件本地化,软件过程管理文件是各企业按照GJB5000A的要求,根据企业软件重要等级、规模、项目特点制定的规范软件研制过程制度。二是软件过程管理执行本地化,企业应根据自身特点,提出软件过程管理的特点。三是宣贯培训本地化,宣贯培训是建立软件过程管理体系的重要管理过程,必须根据科研人员特点提出有效的宣贯培训措施。四是建立本地化监督检查制度。建立本地化软件过程,管理体系过程主要采取了以下3方面措施。

2.1制定本地化的软件过程管理文件

一是采用本地化术语制定的本地化体系文件,减少体系中的标准术语。众所周知,标准术语晦涩难懂,标准条款仅仅是提出大的目标和要点。而企业的体系建设不能过多出现标准用语,这些标准术语未转化成符合项目特点的操作要求,项目组实施起来就比较困难,不知道如何具体实施,如“承诺、利益相关方、进展评审”等标准术语都应结合企业自身用语习惯、项目特点转化为实际操作要求,确保文件指导项目运行的可操作性,提高实施效果。采用本地化方法制定体系文件,可以使不熟悉行业标准的科研人员能够容易理解体系文件的要求,只有在充分理解体系文件的基础上,才能准确执行体系文件的要求。

二是根据企业软件特点精简体系文件。在满足行业标准要求的前提下,根据企业软件特点制定合理的软件过程管理文件体系。软件一般分为非嵌入式软件和嵌入式软件,根据规模分为微型、小型、中型、大型和巨大型软件。GJB5000A标准是对软件过程管理的通用要求,为了满足大型复杂软件的管理要求,行业标准推荐的过程管理文件体系完整、复杂,过程管理的文件多,对于一般以嵌入式应用软件为主的企业显得过于复杂,执行起来费时费力,需要占用科研人员较多的时间编制软件资料,导致执行难度大,往往出现执行不到位情况。在软件过程管理体系文件制定中,根据企业主要从事嵌入式应用软件开发的特点,在满足行业标准要求的前提下,通过适当合并文件,制定了既符合行业标准要求又有利于执行的软件过程管理文件体系。比如对于单配置项软件,配置项测试可以完成合格性测试的所有内容,而对于多配置项软件,配置项测试和系统测试均执行后才能完成合格性测试,在企业制定文件过程中,一定要考虑这些软件项目特点。

2.2结合企业软件特点制定软件研制流程与管理职责根据软件研制能力要求,结合企业软件项目特点,依据GJB5000A、GJB2786A等软件工程标准的要求,系统梳理软件研制工作,制定了企业软件研制流程,如图1所示。在软件研制过程中,加强对评审、测试等内容的要求以及研制过程规范性的监督检查,确保项目实施的规范性和可控性。

2.2.1严把评审、测试和检查关

评审、测试和检查是客观评价软件项目运行的有效方法,是项目能够按要求执行的有力保障。在项目研制过程中,评审和测试的作用不容忽视。建立以同行专家评审的节点评审制度。成立由管理专家和软件研制专家组成的评审组,明确管理专家重点审查软件研制过程的符合性、规范性内容,软件研制专家重点审查技术文件是否符合要求,是否满足输入的技术要求等内容。图1软件研制流程示意

2.2.2严控评审节点,提高评审有效性

根据对所需型号软件的实际工程数据分析,软件研制普遍存在的突出问题是轻视、忽视文档质量,软件各文档编制完成后的同行评审流于形式,未有效发现各文件存在的潜在缺陷,评审的有效性不足。同行评审的目的是通过及时进行软件检查,最大限度满足客户需求、保证质量和可靠性。有数据表明,在消除缺陷方面,同行评审的效率相比于软件测试提高了10倍以上,相对于软件独立测试有高达30倍的投资回报率,同时降低了软件缺陷率,提高了可靠性\[18-20\]。为了有效解决同行评审有效性问题,在软件过程体系中明确同行评审时需要的“人、物、过程”3方面因素。明确工作产品、评审级别、评审类型、利益相关方等要素,对评审问题明确处理流程,保证评审的有效性。

2.2.3加强测试,消除缺陷

推进行业标准目的,是为了提高产品研制能力,保证软件项目按照流程规范运行,而产品的使用结果取决于软件代码的质量,对代码的检查最有效的方法是测试。为了保证交付的代码可靠运行,在过程中必须采取有效措施,优化测试方法,加强软件测试力度。

目前典型的企业用软件开发过程普遍采用瀑布模型,软件测试均在编码完成后进行。软件缺陷在软件开发起始阶段就可能产生,而且错误往往具有级联效应,需求错误必然导致设计错误,设计错误必然导致实现错误,而且会逐级放大。如果软件测试在编码结束后才开始,软件错误会集中在测试中暴露,给测试后的更改造成极大压力,因此,必须在软件开发的需求、设计、编码过程中尽早融入验证活动,即评审,可以降低软件生存周期的后期就错的代价。同时,对于测试说明的评审,在体系中明确要求,加强对测试说明覆盖性和正确性的审查。

2.2.4建立本地化监督检查制度

结合企业项目管理流程,设置合理的检查环节,尽量与项目管理流程活动相结合,给出本单位项目管理的主要流程,应在什么点上相结合,提高管理效率。明确检查要求,以检查促实施。对于项目研制过程,定期或不定期组织质量保证人员对项目实施过程进行检查。从体系运行符合性、项目实施过程的流程性等方面进行全覆盖的检查,通过定期或不定期检查,促进项目严格按照体系文件执行,对项目实施过程中的通用型问题进行实地指导、培训,将检查和培训有机结合,促进项目组对标准、对体系的理解,保证项目的有效实施。

2.3培训体系建设

完善的软件过程体系和检查机制,只是开展工作的一种手段,而真正要让体系有效运行,必须保证每一位运行者都能了解自己对应的工作要求,并按照要求开展工作。因此,需要企业有一定数量的人员熟知体系,并不断指导项目运行。

一是建立“走出去,请进来”培训机制。“走出去,请进来”,特聘专家培训指导。为了使软件过程体系推进有效,相关人员熟悉标准,不定期邀请相应标准的编写专家进行授课。通过讲解标准要求及介绍兄弟单位的典型做法和经验教训,促进企业人员对标准的理解和掌握。同时在修订体系时,针对标准条款对照项目实施进行举例,使体系编写人员深入理解标准,为后续的项目指导奠定良好的基础。同时通过组织企业职工,尤其体系编写人员和科研管理部门人员参与外部调研、学习,通过兄弟企业的讲解和答疑等面对面形式的学习,加强相关人员对于标准和实际操作层面的理解,树立全员软件质量意识,推动企业软件过程管理工作水平螺旋式提升。

二是分角色培训。分角色培训,提高培训效果。软件过程体系是依据GJB5000A和单位项目特点建立的项目研制要求,不同角色人员的职责分工不同,针对软件研制和管理人员,开展相关制度、软件研制体系、软件开发技术、软件测试技术等培训。以往的培训是相关人员统一进行学习,培训出勤率低,听众精神不集中,培训效果不明显。针对这一现象,通过拓宽培训方式,建立培训快速响应机制,以讲深讲透为准则进行培训。即采取分角色培训的方式,即不同的角色人员进行专业不同的专业化的培训,可使得不同的角色人员快速熟练地掌握和自身工作相关的文件要求,同时针对各角色的培训需求,积极做出响应,手把手教学,务必达到讲明白、讲清楚的效果。通过这种定点清除知识点障碍的方法,提高培训效果,有利于标准的宣贯和落实。

3实施效果

自2015年开始按照GJB5000A实施以来,经过5年的运行,对过程体系文件进行了5次修订,改变了企业之前软件研制过程随意,文件未能有效受控的现象,现在所有型号项目均按照要求开展研制工作,确保了过程可控、管理规范、产品质量稳定、研制能力提升的效果。

3.1初步实现了软件过程的规范化

解决各自为政,实现精细化和规范化管理。结合企业软件规模特点建立的体系文件,解决了以往项目组各自为政、管理粗放、随意性较大的问题,在流程与运行模式上进行了改善。采用精益思想与软件过程体系相结合的方式,在软件过程体系中,规定了软件研制过程的基本步骤和方法,使项目研制流程规范、可控,实现了从无序到有序、从有序到一致、从一致到量化、从量化到优化的精细化和规范化管理。

3.2实现了软件研制成果的继承性

解决了由于人员流动引起的技术损失,实现成果可持续性继承。随着软件系统规模的复杂度上升,软件可靠性问题也越来越突出,原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式。软件生产率软件过程体系的全面实施,解决了人员流动带来的技术流失及成果无法继承的现象。企业的软件研制能力,取决于单位的过程能力,而不是个人能力,持续的过程能力的改善,是实现软件开发管理水平的重要参数。软件过程体系的运行,针对成果的可持续性继承方面做了明确要求;针对过程工作资料的管理,进行了细化和完善,从而使企业软件项目成果达到可持续性继承的效果。

3.3提高了企业软件研发效率

通过规范化实施,软件研制过程中的技术文件和代码按照受控管理,建立了企业的组织资产库,包含8部分内容,如图2所示。对于系列化的产品或要求相近的产品,可以将前期已经完成的项目与新项目进行重用性分析,并对可重用的代码或文件通过规范的受控渠道获取,提高了设计人员和企业的工作效率。

3.4软件研制质量得到充分保证

軟件过程管理体系的有效运行,企业的产品科研与生产质量保持了持续稳定提高,产品研制和生产过程的质量损失大幅度降低。科研人员通过严格执行软件过程管理文件,显著减少了软件研发过程中的错误率,软件研制质量得到充分保证。软件研发过程的继承性得到充分体现,研发效率得到大幅度提高。同时,也使企业员工的质量管理意识大幅度提高。

4结语

合理的软件研发模式,以及软件本地化过程体系文件的建立,是增强软件研制能力、提高质量并消除隐患的重要途径。在明确软件本地化过程体系文件建立思路后,结合相关行业标准、完善的软件过程体系和检查机制,树立全员质量意识,并严格落实,是实现企业软件管理的创新举措。实践表明,本地化过程体系文件的建立,将软件开发的所有活动纳入到体系中,使项目经验得以保留,实现了精细化和规范化管理,软件研制能力得以跨越式发展。

参考文献:

\[1\]于敏,杨春晖.软件可信性相关指南标准对比研究\[J\].电子产品可靠性与环境试验,2018,36(06):1-8.

\[2\]BRIAND L C,JRGEN WST,DALY J W,et al.Exploring the relationships between design measures and software quality in objectoriented systems\[J\].Journal of Systems & Software,2000,51(03):245-273.

\[3\]黄志明.互联网软件项目的开发进度和质量管理研究\[D\].北京:北京邮电大学,2019.

\[4\]肖祥.基于高斯过程的软件开发可靠性研究\[J\].萍乡学院学报,2019,36(06):72-75.

\[5\]毕翔,吴家伟,陆阳.基于遗传算法优化的软件可靠性组合模型评估\[J\].合肥工业大学学报(自然科学版),2019,42(11):1498-1504.

\[6\]李玲玲,南楠,岳元.计算机通信网络可靠性设计技术分析与探究\[J\].信息与电脑(理论版),2018(24):168-169.

\[7\]葛修婷,潘娅.机器学习技术在软件测试领域的应用\[J\].西南科技大学学报,2018,33(04):90-97.

\[8\]张家良.软件原型设计在软件开发过程中的重要性\[J\].电脑编程技巧与维护,2019(12):24-25+55.

\[9\]赵海燕,李敏,陈庆奎,等.开源软件开发中的代码评审\[J\].小型微型计算机系统,2020,41(04):861-867.

\[10\]仓业金.基于JAVA编程语言的计算机软件开发应用\[J\].黑龙江教育(理论与实践),2018(12):87-88.

\[11\]TAHVILDARI L,KONTOGIANNIS K,MYLOPOULOS J.Qualitydriven software reengineering\[J\].Journal of Systems and Software,2003,66(03):225-239.

\[12\]费晰,陈湘陇,付杰.软件工程标准对航天型号软件工程化规范作用分析\[J\].电脑知识与技术,2015,11(16):61-62.

\[13\]李宏.软件开发标准化的意义\[J\].航天标准化,2001(06):24-25.

猜你喜欢
培训体系行业标准软件开发
造纸领域5项行业标准计划项目获批
近期发布的相关行业标准(2020年3月01日)摘选
高校二级党校培训教育体系建设及办学质量提升探微
探索高职院校学生干部培训体系的构建
信息安全环境下的计算机软件开发研究
基于心理行为训练的警察培训体系思考
核电厂定期试验管理软件开发
FPGA软件开发过程中编码规范的作用
31项安全生产行业标准即将实施