产品集成的英文是Product Integration,在CMMI中的缩写是PI,它是一个单独的PA(过程域),可见产品集成在软件项目中的重要性。针对CMMI实施过程中发现的问题,笔者进行以下总结,供大家对产品集成进行理解。
(一)产品集成的目的
产品集成的目的就是组合产品组件最终形成产品,并要确保已集成的产品是符合用户和设计需要的。CMMI对该过程提供了进一步的描述,产品集成的过程就是将产品组件集成为更复杂的产品组件或完整的产品。
通过以上定义大家应该注意以下两个点:
1、 产品集成出来的部件不一定就是最终的产品,也可能是项目过程中某一个中间的组件。
2、 集成出来的产品或组件要符合用户和相关设计文档的要求。
通过对产品集成目的的分析,大家可以了解到产品集成在日常软件开发过程中是个持续的过程,因为软件产品是一步一步逐渐完成的,所以产品集成在软件开发过程中应该是一个经常性的活动。
那到底什么时候会进行产品集成呢?接下来大家就一起对产品集成的时机进行分析。
(二)产品集成的时机
在很多软件开发模型的理论中都有提到过何时开展产品集成的活动,其中比较先进的理论是在敏捷式开发模型中提出的“持续集成”,以及微软的MSF开发模型中倡导的“日构建”理论,这些理论对软件项目的开发具有指导性的意义。
大家应该在尽可能的情况下将产品集成的工作日常化、自动化,这样做的好处是可以尽早发现产品集成时由于各种接口不匹配的问题所带来的风险,而且可以使项目团队成员对整体项目的进展有所了解。谈到自动化产品集成就不得不提到“自动化日构建”的工具,项目组成员可以利用NAnt或Ant来实现。这些工具都是基于XML的,使用起来非常简单。
因此在软件项目中除了里程碑或重大变更需要进行产品集成外,笔者还建议可以开展“自动化日构建”工作,将产品集成日常化、自动化。
(三)产品集成的原理
软件开发和其他传统行业的开发流程和方法在原理上都是具有相同性的,下面以一只笔的组装过程来对产品集成的原理进行探讨。首先拿出一只普通的签字笔,该签字笔就代表软件项目最终所需交付的产品,然后将该签字笔进行拆分,如图1-1所示可以分解出“笔帽”、“笔杆前半部分”、“笔杆后半部分”、“笔芯”四个部分,这四个部分将分别代表软件项目中的四个组件或模块。
通过对以上项目背景的描述,我们开始进入项目的开发过程,大多数软件项目都是团队合作完成的,在本项目中分别由四个小组来开发“笔帽”、“笔杆前半部分”、“笔杆后半部分”、“笔芯”四个模块。
图1-1 签字笔拆分示意图