APP下载

分布式研发模式下软件开发能力评估的研究

2023-09-25周钢梁海峰孙静崔航单威王宇

现代信息科技 2023年16期
关键词:评估模型软件工程

周钢 梁海峰 孙静 崔航 单威 王宇

摘  要:中国民航信息集团公司近年来在北京、重庆、沈阳、成都、嘉兴、欧洲等地设立了区域研发中心,基本实现了集中开发到分布式开发。然而,各区域研发中心的软件研发要求和人员技术能力存在较大差异,且异地分布式开发的沟通效率低,这些因素导致分布式研发团队的软件开发质量不稳定。文章基于以上问题展开研究,设计了分布式研发模式下的开发能力评估模型,并研制了基于该模型的质量管理平台,有效地保证了民航信息系统的研发质量。

关键词:软件工程;分布式研发模式;开发能力;评估模型;CMMI

中图分类号:TP311.5   文献标识码:A   文章编号:2096-4706(2023)16-0109-07

Research on Software Development Capability Assessment under the

Distributed R & D Mode

ZHOU Gang, LIANG Haifeng, SUN Jing, CUI Hang, SHAN Wei, WANG Yu

(TravelSky Technology Network Co., Ltd., Beijing  101318, China)

Abstract: In recent years, TravelSky has established some regional regional R & D centers in Beijing, Chongqing, Shenyang, Chengdu, Jiaxing, Europe, and so on. It basically realizes the centralized development to the distributed development. However, there is a large difference in software research and development requirements and personnel technical capabilities of regional research and development centers, and the communication efficiency of remote distributed development is low, resulting in the development quality of software is unstable. Based on the above issues, this paper carries out research, designs a development capability assessment model under the distributed R & D mode, and develops a quality management platform based on this model, which effectively ensures the R & D quality of civil aviation information systems.

Keywords: software engineering; distributed R & D mode; development capability; assessment model; CMMI

0  引  言

近年来,随着国家强调科技创新的重要性,作为唯一的以信息服务为主业的中央企业,中国民航信息集团公司(简称“中国航信”)持续加大研发投入,提升投入强度。中国航信所运营的民航信息系统是民航业务生产链条的重要组成部分,是民航商务运营的关键信息技术基础设施,承担我国民航客货运输业务数据处理和传输的关键系统,被行业和媒体誉为“民航健康运行的神经”。

随着业务的迅猛发展,中国航信研发和运营的民航信息系统的规模逐年增大,系统的总代码量已经超过9 000万行。自2017年开始,为解决总部研发资源瓶颈问题,中国航信的研发体系启动了从集中走向分布的工作,资源分布按业务特点,形成“北京+X”的有序分布,研发人员达2 000余人。面对多地协同分布式研发模式下沟通效率低、技术人员能力存在较大差异,研发产出一直处于较低水平的挑战,如何能有效地配置研发资源,提高开发效率,如何通过高质量的软件研发和交付来保障大型信息系统的安全性和可靠性,是中国航信乃至软件行业面临的一个重要挑战。

一直以来,软件开发能力往往是通过各种基础信息进行主观综合评价,这种定性评价的方式很难进行横向及纵向对比,也很难发现自身具体的能力差距以及造成差距的根本原因和明确的解决方案[1]。而软件开发能力的量化评估,可以一定程度解决软件开发能力评价缺乏客观性和可比性的不足。本文所论述的大型软件的开发能力评估模型和技术基本解决了软件开发能力评价缺乏客观性和可比性的不足,有效地保证了民航信息系统的研发和运营,也为其他领域和行业的软件研发质量管理工作提供了有益的借鉴和参考。

1  相关工作

国内外学者从不同视角对企业的研发能力进行了大量研究,研发分为研究和开发两个阶段,前者主要是知识的获取与积累,后者更注重成果的生成和转化。现有文献多集中于把研发看作一个整体分析,并基于企業从宏观层面上进行研发能力评估,针对企业不同研发阶段的能力影响因素分类研究较少[2]。由美国国防部(United States Department of Defense)与卡内基-梅隆大学(Carnegie-Mellon University)下的软件工程研究中心(Software Engineering Institute, SEISM)以及美国国防工业协会(National Defense Industrial Association)共同开发和研制的软件能力成熟度集成模型(Capability Maturity Model Integration, CMMI)[3],主要是针对企业的软件开发项目进行能力成熟度的评估,是世界公认的软件能力成熟度评估标准,业界普遍使用CMMI模型作为软件生产过程标准和软件企业成熟度等级认证标准[4]。

在金融行业,众多银行信息系统基于“应用开发平台”模式建设,加强对应用系统的自主掌控,提升银行信息化的风险管理与控制水平。但平台研发的质量缺乏有效的体系保证,难以进行全面的质量管控[5]。

在软件测试方面,当前存在一些软件测试过程改进模型,例如,应用于企业内部测试能力评估的测试成熟度模型(TMMi),基于SPICE的专业软件测试机构测试过程改进模型,能够及时、全面、有效地分析测试过程的效能[6]。

敏捷开发以尽早交付客户可以工作的软件为唯一标准,强调提高效率,是软件开发管理的利器,但达成高效的前提是:保持稳定的开发步骤,保持稳定的开发团队,团队之间彼此默契[7]。由多个区域研发单位人员组成的分布式研发团队并不具备这个前提。

以上的研究只有CMMI比较符合中国航信对于开发能力评估的需要,CMMI项目管理方法是全面管理软件项目中的每一个环节,提供软件开发特征和参考模型[8]。但在实践应用中,如何做,如何有效实施,却要靠组织根据自己的实际情况进行探索和实践[9]。CMMI进行开发能力评估存在以下问题:一是CMMI的一大堆规程和过程只是要求企业或项目团队按照规范按部就班地去做事情,缺乏具体操作层面的实践要求,使得只能通过主观意向性来判断规范的达成情况,因而评估结果不够客观;二是CMMI模型假定每个个体都会按照制订的规程去认真地完成每一件事情,而这个假设往往又是很难成立的,就如CMMI要求进行工作产品的评审,但评审效果由于缺乏客观的标准很难评估;三是CMMI强调要进行项目团队技能的评估,项目团队技能无法达到的时候要组织专门的培训,关键问题是项目团队技能无法满足的情况非常普遍,由于进度要求我们仍然要进行项目,CMMI模型仅使用定性的描述,这在项目团队进行各方面的优劣比较和规划改进路线时无法提供有力支持。

在本研究中,结合中国航信的实际情况,重点关注开发并建立一套适合分布式研发模式的软件开发能力评估模型,即制造一把衡量软件开发能力的标尺,以解决大型信息系统开发质量持续改进“做什么、怎么做、何时做、谁来做、做多少”的问题。

2  软件开发能力评估模型设计

软件开发能力评估模型的研究目标是,明确中国航信研发体系软件工程能力等级建设标准和实践指导,既可用于分布式研发模式的能力评价,也可用于过程改进路线规划。模型采用能力等级以及能力积分两种评价方式,能客观、科学地评价中国航信研发体系软件开发能力水平。模型框架如图1所示。

图1  软件开发能力评估模型框架

借鉴CMMI模型的分级表示方法[3],分布式软件开发能力评估模型划分了3个渐进的能力等级,设置了9个评价域,每个评价域包含若干个评价项。每个能力等级包含若干评价项。评价项源自中国航信软件研发流程库的研发管理制度,完整覆盖了中国航信对软件研发活动所规定的质量要求和标准。同时,评估模型还设置能力积分,对每一个评价项按照其所对应的能力等级设置分值,并按照明确评价标准和引导改进的原则、以及度量的目的设置多个采分点,每个采分点对应软件工程实践的达成情况判断。

2.1  评估管理域与评价项

评估模型从管理分布式软件研发实践活动的角度划分为9大管理域,每个管理域又划分若干子域,各子域包括多个评价条目。具体内容有:

1)过程管理域。建立并保持更新标准的研发管理过程,明确定义过程管理者职责,为团队提供过程指导,识别和解决过程问题,确保过程实施和改进的有效性。设置过程定义、过程管理角色2个子域,从9个工程实践进行评价项。

2)团队管理域。制定计划描述完成工作所需的内容,通过对项目进度的掌握,以便出现偏离时采取适当的纠正措施调整偏差,保证目标的达成;识别、记录、分析和管理潜在的风险或机会,缓解不利影响,提高实现目标的可能性。设置计划、跟踪与监控、风险与问题3个管理子域,从12个工程实践分别进行评价。

3)开发管理域。确保相关人员对需求的理解保持一致,设计和开发满足需求的解决方案,集成满足功能和质量需求的工作产品。设置需求、设计、编码3个管理子域,从41个工程实践分别进行評价。

4)测试管理域。通过测试提高软件满足客户需求的可能性。从9个工程实践分别进行评价,设置41个评价项。

5)质量管理域。验证并改进执行的过程和所产生的工作产品的质量。设置质量管理、配置管理、安全管理3个子域,从24个工程实践分别进行评价。

6)工具管理域。反映软件工程工具对研发流程实施的支撑程度。从6个工程实践进行评价,设置6个评价项。

7)改进管理域。定期评估过程的符合性和有效性,分析过程中存在问题的原因,识别改进点,制定一个有效、可持续的改进计划;通过对改进过程的掌握,以便出现偏离时采取适当的纠正措施调整偏差,保证改进目标的达成;达成改进目标,改进结果可见、可使用,为组织贡献过程相关信息或过程资产。设置改进机制、改进计划制定、改进跟踪、改进评价4个管理子域,从14个工程实践进行评价。

8)量化管理域。使用度量和分析方法来实现质量和过程目标。从9个工程实践进行评价,设置9个评价项。

9)质量数据域。通过评估软件开发与测试过程中影响代码质量的度量指标的健康度,从而综合评价软件研发流程执行情况和软件代码质量水平。从研发效能指标库中动态抽取9个质量相关结果性度量指标进行评价。

2.2  评价模式设计

结合本企业管理决策与规划个性化改进路线的实际需求,分布式软件开发能力评估采用定性与定量相结合的评价模式。

2.2.1  能力等级评价

评估模型设置能力等级。各管理域的能力等级是一组渐进的等级,从低到高设置3个级别,每个级别都建立在前一个级别的基础之上、由一组描述软件工程实践活动的评价项构成。每个评价项分别归属不同能力等级。分别是:

1级(基础级)。是分布式研发团队的基本要求和资格条件。表明在整体管理上具备了分布式研发模式所要求的基础的能力,项目管理基本规范、完整,并对项目成本、进度和质量实施监控和控制。

2级(良好级)。是分布式研发团队的合格能力要求。表明研发制度要求落实合规程度及软件研发过程改进提升情况、软件代码质量水平和软件工程工具管理合规程度达到了良好水平;研发过程标准化、文档化和一致化,而且软件产品的整个生产过程可见、可控。

3级(优秀级)。是分布式研发团队的高阶要求。表明研发制度要求落行合规程度及软件研发过程改进提升情况、软件代码质量水平和软件工程工具管理合规程度达到了优秀水平,使用统计与其他量化技术来优化改进行动,以实现质量与过程目标。

2.2.2  能力积分评价

评估模型设置能力积分,总积分700分。9个管理域、20个管理子域的共133个评价项,均按照能力等级设置分值:1级3分、2级5分、3级10分。如表1所示。

2.3  评估规则

2.3.1  能力等级评估规则

评估规则如表2、表3、表4、表5所示。

2.3.2  能力积分评估规则

评估模型设置能力积分,总积分700分。所有评价项均按照其对应的能力等级设置分值:1级满分3分、2级满分5分、3级满分10分。每个评价项按照能力等级和引导改进的原则设置1个或多个采分点,每个采分点都对应一个或一组软件工程实践活动描述,每个软件工程实践活动均被抽象为一个量化指标。

由于每个评价项都能对应研发体系指标库的一个或一组量化指标,那么根据该指标值所处的研发基线分位值区间就可以确定其具体积分分值。每个能力等级分值为该等级所对应的评价项得分之和。如表6所示。

2.4  组织级度量库

组织级度量库共定义了168个度量指标。涉及项目开发全过程,包括需求管理、设计、开发、测试和投产阶段。指标类型分为基础类指标、过程类指标和结果类指标。基础类指标反应项目组现状,不直接用于评价项目组能力水平;过程类指标一般用于项目或组织执行过程的度量,需要在项目执行过程中持续关注,及时发现、分析过程中出现的偏差;结果类指标通常以“产出”为导向,用于评价项目的最终结果。本体系中基础类指标19个、过程类指标44个、结果类指标20个和85个度量元。如表7所示。

3  分布式开发能力评估模型的应用

3.1  软件工程能力评估及质量管理平台

基于分布式开发能力评估模型,中国航信构建了分布式研发模式的软件工程能力评估及质量管理平台。该平台由软件研发流程库、优秀工程实践案例库、软件工程工具集成系统构建而成,实现软件研发过程电子化、自动化、数据化,研发流程制度资产化、工具化,解决各区域流程不统一、质量标准不一致的问题,提升分布式研发体系过程能力。

3.1.1  软件工程工具集成系统

软件工程工具集成系统对研发过程管理提供支持,依据中国航信的研发管理流程,并结合分布式开发能力评估模型,对软件工程涉及的各领域,提供解决方案。通过数据标准化技术,对研发过程中产生数据的多个工具进行全面的数据对接,解决了数据孤岛问题,实现数据广度、精度和规范度的增强,数据在团队、个人、区域等重要质量评估和管理工作场景中广泛应用,加强了质量评估全面性,各区域研发中心的全部软件项目团队跟踪关键质量数据,及时发现及改进各软件项目存在的质量隐患问题,大量指标的精度从统计级提升到决策级,为管理层直观地监控项目质量和了解项目人员产出提供更准确的支持,实现过程数据规范化,也有利于数据以更易用、更灵活、自助式的方式向外部开放。整体框架视图如图2所示,具体界面如图3和图4所示。

3.1.2  软件研发流程库和优秀工程实践案例库

中国航信软件研发流程库参考了IPD(Integrated Product Development)流程[10],侧重于定义软件研发管理红线,并依据分布式开发能力评估模型,不断优化流程制度体系,在达成质量目标和标准上则给予多个推荐的实践活动,在执行上预留了一定的灵活度。如表8所示。

3.2  推广应用成果

本研究在2019年开始在中国航信研发体系进行试点应用,验证了技术和方法的可行性,从2021年开始在中国航信研发体系和各分子公司全面实施,3年的实践证明其不仅能有效提升大型软件的交付质量和效率,且其设计原则和内容是指导IT企业建立和实施研发质量管理体系的通用解决方案,更能有效缩短CMMI五级认证时间,节约大量时间和人力成本,具体表现在:

1)从2019年5月开始试用,到2020年4月逐步推广到航信总部研发中心56个大型软件开发团队,使中国航信下属中国民航信息网络股份有限公司2020年5月以“0不符合项”的优异成绩通过了业界公认的最高等级CMMI V2.0五级评估,从评估准备到通过评估比业界同行速度快50%,节省大量时间和人力成本。

2)累积对445个软件的开发过程异常数据进行分析,完成52份根原因与解决方案报告,实现全部软件主要资产版本化管理,软件整体版本资产合规率达到91.28%。

3)全面开展软件自动化测试,所有软件平均自动化执行率达到92.92%,实施实例化需求自动化测试前移工作,使36.8%的缺陷检出提前到开发阶段,降低了缺陷的發现和修复成本。中国航信核心系统软件交付产能和交付质量2021年较2019年分别提升14.79%和28.85%。

4  结  论

本文所论述的评估模型是一个适合大型软件分布式研发模式的开发能力评估模型,是中国航信为建设高质量、高安全性要求的民航信息系统,解决研发体系资源瓶颈和资源能力问题而开展的一项IT治理工程,注重对大型软件研发过程各个环节、具体实施过程和改进反馈的评估,具有全程覆盖性、过程可控性、实施反馈性特点,可以认为是一个提升分布式研发模式下大型软件开发质量的通用解决方案。

参考文献:

[1] 张松.精益软件度量—实践者的观察与思考 [M].北京:人民邮电出版社,2013.

[2] 许秀梅.企业研发能力影响因素分析 [J].财会通讯,2015(11):40-42.

[3] CMMI Institute.CMMI V2.0 [EB/OL].[2023-02-18].https://cmmiinstitute.com.

[4] 刘文红,马贤颖,董瑞,等.基于CMMI的软件工程实施:高级指南 软件开发与测试丛书 [M].北京:清华大学出版社,2015.

[5] 曹杰.应用开发平台质量管理规范体系的研究与实践 [J].金融电子化,2014(4):69-71.

[6] 王强,田涛,刘昕昀.软件测试能力评定模型研究 [J].计算机技术与发展,2018,28(8):75-79.

[7] 王斌.敏捷开发模式在软件工程项目中的应用 [J].电子技术,2022,51(3):288-289.

[8] 张旭,刘浩驰.基于CMMI的量化管理在项目中的应用与研究 [J].电脑与电信,2016(4):62-65.

[9] 庄晓,张义珍,欧鹏,等.基于CMMI框架下持续改进的软件过程体系 [J].计算机应用与软件,2013,30(1):186-189.

[10] 李文瀚.基于IPD流程的新产品开发过程分析 [J].华东科技:综合,2021(6):453.

作者简介:周钢(1973—),男,汉族,江西鹰潭人,正高级工程师,博士,研究方向:企业科技管理、企业创新、研发管理、民航旅客服务信息系统。

猜你喜欢

评估模型软件工程
试验靶场无线通信系统综合效能评估方法
基于支持向量回归机的电能质量评估
依托工作室的软件工程实践教学研究
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
基于工程教育认证的《软件工程》课程教学质量建设研究 
通信运营企业基于客户效益的业财融合研究及应用
关于如何创新和完善计算机软件工程管理的探讨