APP下载

基于GJB5000A的软件敏捷开发在装备研制中的应用

2016-01-23邱卫新海军驻南京地区雷达系统军事代表室南京0003中国船舶重工集团公司第七二四研究所南京53

雷达与对抗 2015年2期

邱卫新,陆 峻(.海军驻南京地区雷达系统军事代表室,南京0003; .中国船舶重工集团公司第七二四研究所,南京53)



基于GJB5000A的软件敏捷开发在装备研制中的应用

邱卫新1,陆峻2
(1.海军驻南京地区雷达系统军事代表室,南京210003; 2.中国船舶重工集团公司第七二四研究所,南京211153)

摘要:通过分析GJB5000A与敏捷开发各自的擅长领域和存在的明显不足,将敏捷开发实践裁剪为适应GJB5000A相应的成熟度级别,使软件组织在获得敏捷性的同时具有规范性。提出了装备研制中基于GJB5000A的软件敏捷开发过程,为进一步改进提供了规范性实践。

关键词:GJB5000A;敏捷开发;过程改进

0 引言

随着软件在装备中应用范围和实现功能的迅速拓展,装备软件的规模、复杂度和数量都在大幅度增长,呈现出多样化、复杂化和智能化的特点,而软件面临的问题也越来越多。软件质量在某种程度上已经成为制约装备质量、效能、战备完好性的瓶颈问题,其质量直接影响着军事指挥和武器装备作战效能的发挥。提高和保证装备软件质量成为十分重要和紧迫的任务。

GJB5000A与敏捷开发方法逐步成为软件过程改进的两种主要模式。然而,目前国内在实施GJB5000A模型方法时流于形式主义的现象很严重,而在敏捷方法的实践中“目无法度”的情况也很突出。在GJB5000A模型框架下,本文将以快速迭代开发为主要特征的敏捷开发与GJB5000A模型进行融合,可以帮助装备承研单位在进行大规模规范化开发的同时快速响应需求变化,有效改进软件开发过程,提高企业的核心竞争力[1]。因此,基于GJB5000A的软件敏捷开发研究具有重大的现实意义。

1 GJB5000A与敏捷开发

GJB5000A是一个过程改进参考模型,其核心思想是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和管理。GJB5000A一共有5个成熟度等级,定义了一个循序渐进的度量标准,用以评估装备承研单位的软件过程和评价其软件能力。它描述了软件过程不断改进和提升途径,帮助有关单位对其各项过程改进工作排出优先次序[2]。软件能力成熟度一级(初始级)描述软件过程不可预测,成功依赖个人能力,项目常无法按期完成,过程不可预测;软件能力成熟度二级(已管理级)描述软件过程执行受控,项目满足已定义的标准和规程,解决基本项目管理问题;软件能力成熟度三级(已定义级)描述组织过程比二级更针对性、更严格,解决组织级过程标准化的问题;软件能力成熟度四级(已定量管理级)描述组织和项目为质量和过程绩效建立了定量的目标,并作为管理过程的标准,解决定量管理的问题;软件能力成熟度五级(优化级)描述根据对过程中固有变异和共因进行定量理解,强调持续地改进过程,解决持续过程优化的问题[3]。

Agile开发方法(敏捷开发)是近年来软件开发界提出的一种新的开发方法。敏捷开发是轻量型的开发方法,它反对传统、庞大、重型的过程,强调与人交流的重要性,提倡用高质量的软件代替文档,具有能够适应需求变化、进行快速开发的能力。这类方法以快捷、轻便的思维方式迅速解决了一些传统软件开发中存在的问题,提高了软件企业的生产效率,得到了迅速的推广。敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态[4]。

2 装备研制中基于GJB5000A的软件敏捷开发意义

敏捷方法能够适用于开发复杂的、大规模的应用程序,但是会存在一些问题有待解决:

(1)隐式知识可以促进敏捷,但在所开发软件的规模扩大时具有严重的伸缩性问题;

(2)要识别和响应是否需要违背标准的敏捷实践,高才能的人员是关键;

(3)当项目很大且变更可预见时,简单设计是有风险的。

扩大敏捷使用规模的主要解决方案是引入GJB5000A的一些要素:

(1)使用高层架构计划来提供必须的全局视图信息;

(2)更仔细地定义里程碑完成标准以避免表面“完成”实际却没有完成的情况;

(3)使用设计模式和架构方案而不是简单设计来应对可以预见的变更[5]。

GJB5000A依赖预先制定的复杂详尽的计划和规格说明。这导致了延误和竞争力降低,而使用敏捷方法可以解决这些风险。使用短迭代并在简单设计和预见变更的架构之间进行平衡可以应对快速变更。使用短迭代和结对编程可以快速看到结果。需求多次变更可以通过短迭代的方法加以解决。

GJB5000A模型方法与敏捷开发的最终目的都是为了提高软件产品质量对开发进度进行有效管理而产生的过程改进标准或实践。只是在软件过程改进中两者的关注焦点不同。GJB5000A关注组织级或企业级改进,为软件组织提供了实施过程改进所需要做的目标,没有对具体实践做出硬性规定;而敏捷开发更关注项目级改进,主要关注于为软件组织提供具体的可操作实践进行过程改进。GJB5000A与敏捷开发对于过程改进关注焦点的不同可以使两者互为补充。

综上所述,GJB5000A可以为敏捷开发提供必要的组织管理框架和组织级规模开发能力,有利于敏捷开发的最佳实践在组织级的应用和推广。同时,敏捷开发为GJB5000A提供了项目级的具体实践方法,确保团队在GJB5000A框架下能够快速响应,不断创新,持续交付价值。两者的有效结合能够有效实现个人绩效向团队绩效、向组织绩效的转变过程。同时,也可以通过敏捷实践,规避GJB5000A实施过程中重文档、重流程的不良倾向,使GJB5000A实施时更加关注组织的实际价值,关注客户,关注创新。

3 装备研制中基于GJB5000A的软件敏捷开发实现

3.1生存周期模型的选择

在组织层面,将敏捷团队封装以符合GJB5000A规范,敏捷团队在项目内部实施敏捷开发。在项目管理、工程以及支持层面,对GJB5000A的相关过程域进行适当的裁剪,将敏捷实践与相关过程域进行有效融合,建立基于GJB5000A的软件敏捷开发的生存周期模型。

采用该模型的项目,其生存周期划分为4个阶段,每一个阶段的工作产品都是下一个阶段的输入。为保证项目工程进度,阶段之间允许并行开发,但阶段结束须按顺序完成,不得交叉。

装备研制中基于GJB5000A的软件敏捷开发的生存周期模型流程图如图1所示。

图1 基于GJB5000A的软件敏捷开发的生存周期模型流程图

3.2阶段活动描述

装备研制中基于GJB5000A的软件敏捷开发的生存周期模型的阶段活动描述如表1所示。

表1 基于GJB5000A的软件敏捷开发的生存周期模型阶段活动描述

续表1 

4 结束语

GJB5000A软件能力成熟度体现了军工单位具备军用软件研制能力和承担相应成熟度等级的军用软件研制的资质。本文通过在GJB5000A的标准框架内与软件敏捷开发的融合实现,为提高装备研制过程中软件产品开发质量和开发效率提供了保证。

参考文献:

[1]Paul E McMahon.CMMI +敏捷整合开发:更快改进性能的案例与实用技术[M].北京:清华大学出版社,2012.

[2]Suzanne Garcia,Richard Turner.CMMI生存指南——最佳过程改进方法[M].北京:电子工业出版社,2010.

[3]GJB5000A军用软件研制能力成熟度模型[M].北京:总装备部军标出版发行部,2008.

[4]Daniel C.Halbert,Patrick D.0'Brien.Object-oriented development.IEEE Software.

[5]Dennis M Ahern,Aaron Clouse,Richard Turner.CMMI精粹[M].北京:清华大学出版社,2009.

Application of GJB5000A-based agile software development in equipment development

QIU Wei-xing1,LU Jun2
(1.Military Representatives Office of Radar System of the PLA Navy in Nanjing,Nanjing 210003; 2.No.724 Research Institute of CSIC,211153)

Abstract:The advantages and disadvantages of both the GJB5000A and the agile development are analyzed.In practice,the agile development is adjusted to adapt to the GJB5000A maturity levels,making the software agile and normative.The agile software development based on the GJB5000A in the equipment development is presented to provide normative practice for further improvement.

Keywords:GJB5000A; agile development; process improvement

作者简介:邱卫新(1962-),男,高级工程师,研究方向:雷达总体技术;陆峻(1976-),女,高级工程师,研究方向:计算机软件工程化。

收稿日期:2015-04-20;修回日期:2015-04-25

文章编号:1009-0401(2015)02-0060-04

文献标志码:A

中图分类号:TP31