APP下载

基于GJB5000A三级的产品集成过程研究与应用*

2015-05-03苏春梅何剑伟李永刚

遥测遥控 2015年4期
关键词:专用部件软件

苏春梅,何剑伟,李永刚,王 玮

(中国人民解放军63680部队 无锡 214000)

引言

随着GJB5000A-2008《军用软件研制能力成熟度模型》[1]在军工企业的逐步应用推广,软件产品研制过程的工程化要求越来越规范和严谨。产品集成过程域是GJB5000A成熟度等级三已定义级包含的过程域,该过程域的目的就是形成最终产品,确保已集成的产品是符合用户和设计需要的。因此,该过程域的有效覆盖实施将有助于提高软件研制的工程化水平,同时提高软件产品质量,降低软件产品成本,保证按期交付合格的软件产品。

虽然GJB5000A标准中明确了产品集成过程域实施要求,但是其可操作性不是很强,为达到GJB5000A模型产品集成过程域专用实践的要求,实现专用目标,笔者总结了单位实施GJB5000A成熟度等级三认证评价过程的具体实践和成功经验,提出一套合理可行的产品集成流程,并结合应用作演示说明,期望能够为实施GJB5000A过程改进的相关单位提供有益参考。

1 产品集成过程域

产品集成过程域包含3个专用目标共计9个专用实践,全面概括了产品集成的准备、接口一致性的管理、产品部件组装和产品交付的各项要求[2]。这里的术语“产品”和“产品部件”泛指软件开发生命周期不同阶段输出的服务及其部件,如单元测试后的软件单元、部件测试后的软件部件、配置项测试后的软件配置项、系统测试后的软件系统等。

专用目标SG1准备产品集成包括3个专用实践:SP1.1确定集成顺序;SP1.2建立产品集成环境;SP1.3建立产品集成规程和准则。专用目标SG2确保接口一致性包括2个专用实践:SP2.1评审接口说明的完备性;SP2.2管理接口。专用目标SG3组装产品部件和交付产品包括4个专用实践:SP3.1确认集成产品部件已就绪;SP3.2组装产品部件;SP3.3评价已组装的产品部件;SP3.4包装和交付产品或产品部件。

产品集成(PI)[3,4]是将技术解决方案(TS)过程域生成的产品部件组装成产品的过程活动。产品集成不只是在设计和制造结束时一次性的产品部件组装,本过程域的范围是,按照已定义的集成顺序和规程,在一个阶段或一些增量阶中,逐次组装和评价产品部件,直到完成完整的产品集成[5]。产品集成的关键是管理产品和产品部件的内外部接口,以确保接口间的兼容性。应在整个项目中关注接口管理。

这里会涉及到两个主要的步骤,其一是产品集成过程管理,直观来说就是组装产品的步骤与方法,将所有部件组装为一个整体,然后进行测试和交付。其二是接口管理,接口是由需求决定的,而接口需求与部件功能相关,因此接口的管理工作是和产品的设计过程同步的,同时也是验证(VER)和确认(VAL)过程域的输入之一。接口的管理主要是在项目的生命周期中消除接口之间的不一致,形成一个文档化、可访问的接口文档,同时也保证了交付产品的质量。产品集成过程域的实施流程[6]如图1所示,图中项目组、测试组、评审组实施的相关活动可根据项目实际进行裁剪。

图1 产品集成过程域实施流程Fig.1 The product integration process area implementation process

为达到GJB5000A模型产品集成过程域专用实践的要求,实现专用目标,本文从集成策划、产品集成和接口管理三个方面作详细分析和研究。

1.1 集成策划

集成策划就是制定产品集成计划的过程,产品集成不是一次完成,因此需制定一份集成计划并使之文档化。集成策划的主要目的是:描述集成工作,以支持实现策略;向参与者描述每一个集成步骤需要做什么;识别需要的资源以及它们在什么时候什么地点被需要。对不同规模和不同应用类型项目产品,计划集成的程度不同。对大规模的系统,必须要有一个明确的、统一的产品集成计划,在生命周期概念形成阶段,实施集成策划,形成产品集成计划初稿,集成计划内容要符合软件开发计划中的进度和资源安排,并在项目开发过程后续阶段中不断完善和细化。至于细化集成计划的时机,可根据项目情况选择在设计完成后或在编码完成后。

集成策划包含以下内容:

①确定集成顺序。标识被集成项(软件单元、软件部件、软件配置项、软件系统等);标识验证活动;选择集成顺序与理由。

②确定集成环境。标识集成环境;标识集成环境的验证准则。

③确定集成规程和准则。标识集成测试的细节;确定集成准则。

集成策划的结果要文档化于《产品集成计划》中,模板如表1所示。

表1 《产品集成计划》模板示意Table1 PIplan template

1.2 产品集成

产品集成就是依据产品集成计划,将经过单元测试的软件代码逐步集成为部件、配置项和软件系统,并对集成后的部件、配置项和系统进行测试。

产品集成活动不是单元测试结束后一次性的产品部件组装活动,而是一个从软件分析(原型)开始,与软件设计、编码、单元测试、集成测试活动相关的不断迭代和增量的过程[7]。

产品集成根据待集成产品部件的粒度可分为部件级集成、配置项级集成和系统级集成(即软硬件综合集成),集成顺序如图2所示,在项目开发中根据项目实际规模和特点裁剪实施。

图2 产品集成顺序Fig.2 The product integration sequence

部件级集成完成单元测试,并按照产品集成计划中部件级集成要求和集成顺序实施集成。配置项级集成完成部件测试,并按照产品集成计划中配置项级集成要求和集成顺序实施集成。系统级集成完成配置项测试,并按照产品集成计划中系统级集成要求和集成顺序实施集成。

集成过程中要在《产品集成报告》中记录集成过程活动。

产品集成按照实施流程可以分为准备并确认被集成项与集成环境、实施产品集成及产品打包与交付三个步骤。

1.2.1 确认被集成项与集成环境

确认被集成产品就是要确认被集成项已通过测试,且版本受控,同时依据产品集成计划对照待集成部件逐项审查,确认被集成项的接口与设计一致。

确认集成环境首先要搭建集成环境。开发人员和测试人员根据产品集成计划中的环境要求搭建集成的软、硬件环境,如测试设备及工具,以确保集成的真实性和有效性。一般推荐在编码工作开始前就搭建好集成环境,便于开发、测试。然后,按验收准则对集成环境进行确认,并在《产品集成报告》中记录检查确认结果。

1.2.2 实施产品集成

开发人员根据产品集成计划列出的产品部件清单和集成顺序,组装产品部件,并进行验证和确认,直至最后交付产品。

首先检查要进行组装的产品部件是否符合功能要求和接口要求,然后进行产品部件的组装,并不断对功能与接口进行检验。在集成过程中,如果出现错误,则必须对其进行记录、排查和解决,从而确保集成后的产品是符合用户与设计要求的。具体步骤如下:

①集成负责人必须从配置库中获取正确的待集成文件及版本,并安装到指定机器。

②集成负责人使用相关工具进行编译、集成,并根据集成验证规程检查编译、集成是否通过。

③若集成通过,则集成负责人将集成通过的包部署至指定的测试机器上,同时将其提交到配置库,集成结束。

④若集成不通过,则集成负责人分析查找集成失败的原因,根据不同原因采取不同的对策。若是源代码问题,则通知开发人员修改源代码或补提交源代码。开发人员在完成代码修改或补提交后,通知集成负责人再次集成,返回①。集成负责人将本次集成的情况记录在《产品集成报告》中。集成过程中,项目经理应定期检查集成环境是否符合要求。待项目终结,集成负责人应对项目的集成环境进行清除。

1.2.3 产品打包与交付

如果集成完成,则由集成人员对提交产品进行核查,核查内容包括:产品相关文件是否存在缺失、是否沾染病毒。然后按照文件合同要求将需要的文档、执行代码和配置数据等打包制作安装文件,并交由配置管理员上传至配置库的指定目录,供产品交付。

1.3 接口管理

保证接口的一致性是产品集成过程域中非常重要的一个环节。接口包括内部接口和外部接口,内部接口指的是产品模块之间的接口,而外部接口指的是与外部系统进行集成的接口。如对于财务系统,OA系统的接口为外部接口,而财务系统中财务核算模块和报销管理模块的接口为内部接口。但无论是内部接口还是外部接口,都需要进行必要的管理,如接口的变更控制、接口变更的评审等。

1.3.1 接口变更请求

代码实现工程师在进行接口实现时,若由于需求变更、设计缺陷等因素导致接口发生变化,则应及时提出接口变更申请,并提交给设计工程师与项目经理进行评审。

1.3.2 接口变更评审

首先由代码实现工程师和设计工程师讨论接口变更的必要性、可行性和具体变更方法,然后由代码实现工程师、设计工程师和项目经理一起评审接口变更事项,质量保证人员及其他人员可以旁听。若评审结论为不通过,则根据评审意见继续修改,或重新调整变更请求,协商后重新评审。若评审结论为通过,则设计工程师根据评审结果完成接口变更的相关接口设计文档,待重新设计接口后,提交代码实现工程师修改接口程序。

2 产品集成应用

下面以GJB5000A三级评价项目为例,描述产品集成过程域的实际应用。

项目需求背景:目前国产操作系统逐渐发展成熟,测控系统国产化工作也在同步开展,即采用麒麟操作系统。为实现测控应用软件由Windows平台向麒麟操作系统平台顺利转换,需要先期开发配套的麒麟操作系统时统模拟软件系统KLTES(Timer Emulation Software for KY Linux),通过软件方式模拟“系统控制台和多功能时统卡”的功能,为麒麟操作系统下的上层测控应用软件提供时间基准、中断、符合、双工切换等服务,方便麒麟操作系统下测控应用软件在无硬时统支持的环境下开发和测试使用。

项目启动之后,项目经理依据项目特点对照GJB5000A三级体系选择生命周期模型,并在软件开发计划中对集成活动进行策划,明确产品集成人员和集成流程,制定详细实施计划,在工作分解结构WBS(Work Breakdown Structure)中将集成活动分解到生命周期模型不同软件开发阶段。根据GJB5000A三级体系裁剪指南,本系统确定的集成活动包含部件级集成和配置项级集成。下文以配置项级集成为例,对部分集成活动进行描述。

KLTES分为4层(部件包),分别是交互界面包、共享数据服务包、业务处理包和时统接口服务包,每个包为一个被集成的软件部件。KLTES的逻辑结构如图3所示。

图3 KLTES逻辑结构设计示意图Fig.3 KLTES logic structure design diagram

2.1 软件配置项级集成进入及退出准则

进入准则:①配置项中的部件已经通过部件测试;②配置项中的部件已标识,功能与说明相符;③配置项集成环境准备完毕且得到验证。

退出准则:①集成过程中的各种问题得到有效解决;②集成测试发现的缺陷满足质量目标要求;③软件配置项测试通过评审。

2.2 配置项级集成顺序

本软件共开发了四个部件包,部件之间的逻辑关系如图3所示。从图3中可以看出,时统接口服务包是最底层,上层是业务处理包,再上层是交互界面包,共享数据服务包介于业务处理包和交互界面包之间,为其提供进程交互服务。同时也能够清晰看到,其他三个包与共享数据服务包之间均存在依赖关系,即其他三个包均依赖共享数据服务包。综合考虑以上因素,选取自底向上的集成方法并遵循调用关系顺序实施集成。自底向上的集成方案是工程实践中最常用的集成方法,相关技术也较为成熟,选取自底向上的集成方法思路更清晰,同时软件中四个部件之间的调用关系也会很清晰。具体集成顺序为:先集成共享数据服务包,再集成时统接口服务包,然后集成业务处理包,待业务处理包与时统接口服务包集成后可完成软件的核心功能,最后集成交互界面包。集成顺序如图4所示。

图4 KLTES配置项级集成顺序Fig.4 KLTES configuration integration sequence

2.3 配置项级集成环境

本软件配置项级集成环境为某平台机房。所需的集成环境构成见图5,其组成及检查情况见表2。

2.4 配置项级集成的接口

接口正确性检查与验证是软件配置项级集成的重点,配置项级集成涉及的软件接口列表及检查记录如表3、表4所示。

图5 KLTES配置项级集成构成图Fig.5 KLTES configuration integration component diagram

表2 产品集成环境及检查(配置项级)Table2 PI environment and check(configuration level)

表3 产品集成接口列表及检查(配置项级)Table3 PI interface list and check(configuration level)

表4 产品集成构件及检查(配置项级)Table4 PI component list and check(configuration level)

2.5 配置项级集成的产品集成结果

配置项级集成的产品集成报告如表5所示。

表5 产品集成报告(配置项级)Table5 PI report(configuration level)

依据GJB5000A三级体系要求实施产品集成,通过严格规范的产品集成过程管理,有效减少了评审缺陷和测试BUG,提高了验证和确认活动[8]的实施效率,从而确保按期保质保量交付合格的产品。

3 结束语

本文介绍了GJB5000A模型中产品集成过程域专用目标和专用实践,提出的产品集成流程很好地覆盖了产品集成过程域所有的专用目标和专用实践,从而满足GJB5000A模型中产品集成过程域的要求。本文从集成策划、产品集成和接口管理三个方面分析研究了产品集成的具体实施方法,并给出了应用案例。本文研究旨在为软件企业改进其软件过程,以及软件项目经理进行产品集成提供参考。

[1]中华人民共和国国家军用标准.军用软件研制能力成熟度模型GJB5000A-2008[S].北京:国防工业出版社,2009.Military Standard of the People's Republic of China.Capability Maturity Model GJB5000A-2008 for Military Software Development[S].Beijing:Publishing House of National Defence Industry,2009.

[2]石 柱.军用软件研制能力成熟度模型及其应用[M].北京:中国标准出版社,2009.Shi Zhu.Capability Maturity Model and Its Application for Military Software Development[M].Beijing:Publishing House of China Standard,2009.

[3]叶志玲,王向晖.基于CMMI星载嵌入式软件测试技术研究[J].计算机测量与控制,2013,21(4):72~76.Ye Zhiling,Wang Xianghui.Research of Testing Technology about Embedded Software of Satellites Based in CMMI[J].Computer Measurement&Control,2013,21(4):72 ~76.

[4]徐 艳.测试成熟度模型(TMM)的研究[J].电脑知识与技术,2009,5(18):5023~5025.Xu Yan.The Research of Testing Maturity Model[J].Computer Knowledge and Technology,2009,5(18):5023 ~5025.

[5]NASA Headquarters.NASA Systems Engineering Handbook[M].USA:National Aeronautics and Space Administration,2007:78~81.

[6]李祥明,郭力兵,刘晓阳,吴学军,王 玮.基于软件工程过程的GJB5000A-2008三级体系构建研究[J].遥测遥控,2013,34(2):72 ~76.Li Xiangming,Guo Libing,Liu Xiaoyang,Wu Xuejun,WangWei.Research on the Construction of GJB 5000A-2008 Grade-3 System Based on Software Engineering Process[J].Journal of Telemetry,Tracking and Command,2013,34(2):72~76.

[7]倪 亭.在软件研发与测试中推广 GJB5000A[J].软件,2013,34(2):31 ~35.Ni Ting.Promote GJB5000A in Software Development and Testing[J].Software,2013,34(2):31 ~35.

[8]高 月,梁成才,王 川,陆 伟.软件验证与确认在MIS开发中的应用[J].计算机工程,2011,37(1):84~86.Gao Yue,Liang Chengcai,Wang Chuan,Lu Wei.Application of Software Verification and Validation in MISDevelopment[J].Computer Engineering,2011,37(1):84 ~86.

猜你喜欢

专用部件软件
禅宗软件
体能测试专用鞋
体能测试专用鞋
体能测试专用鞋
加工中心若干典型失效部件缺陷的改进
奥迪e-tron纯电动汽车的高电压部件(下)
软件对对碰
基于Siemens NX和Sinumerik的铣头部件再制造
爱它就给它专用的设备
即时通讯软件WhatsApp