G2301产品集成指南.docx
《G2301产品集成指南.docx》由会员分享,可在线阅读,更多相关《G2301产品集成指南.docx(8页珍藏版)》请在冰豆网上搜索。
G2301产品集成指南
产品集成指南
文件状态:
[]草稿
[√]正式发布
[]正在修改
文件编号:
G2301产品集成指南
当前版本:
1.0
作者:
修订者:
审核者:
批准者:
发布日期:
2013-10-28
密级:
[]绝密[√]普通[]部门公开[]外部公开
修订记录
类别:
A–增加M–修改D–删除
日期
版本号
类别
描述
作者
2013-9-25
V0.1
A
创建文档
2013-9-27
V0.9
M
完善流程图
修订角色和职责等
完善活动及流程
完善选择集成方式章节
完善关键模块、集成策略、集成环境章节
修订有效输出
2013-10-28
V1.0
M
调整统一格式
术语
●产品集成(ProductIntegration):
将产品组件装配成产品,确保产品作为一个整体正确地运行(即具有所要求的功能与质量属性),并交付产品。
●产品(Product):
具备完整功能且能正确运行的交付品。
●产品组件(ProductComponent):
构成产品的各个子模块。
●桩模块(stub):
用以代替所测模块调用的子模块。
●驱动模块(driver):
相当于所测模块的主程序。
目的
产品集成的目的在于把产品构件组装成产品,确保所集成的产品恰当地发挥作用,确保交付产品。
此过程域适用于根据某种特定的集成顺序和规程,以步进的方式迭代进行,从而最终完成软件产品的组装。
本规程文件主要适用于软件项目的集成,包括系统与系统、子系统与子系统、模块和模块之间的集成。
范围
本规范适用于
参考文件
《CMMI3深度培训PPT-PP》,由北京赛迪提供。
《软件构架实践》SEI软件工程译丛,林•巴斯著
《微软项目:
求生法则》SteveMcConnell著,余孟学译
《实用软件工程》第二版,郑人杰、殷人昆、陶永雷等著
《软件工程:
实践者的研究方法》(第5版)RogerS.Pressman著
《软件开发的科学与艺术》陈宏刚等著
角色和职责
角色
职责
说明
上级领导
●为产品集成活动提供必要的资源;
●参与相关的确认活动。
项目经理
●编写《集成计划》;
●提出内部发布的发布申请。
评审小组
●集成计划确认;
●集成策略确认。
QA
●对产品集成过程及工作产品进行审计。
系统设计人员
●确定集成策略。
开发人员
●建立集成环境;
●产品集成;
●产品打包。
测试人员
●集成后产品的测试。
配置管理人员
●发布待集成组件;
●将集成后的组件纳入受控库。
系统管理员
●维护集成环境。
客户
●确认产品交付品
产品集成方法
选择集成方式
集成方式软件集成方式主要包括:
一次性组装方式和增殖式组装方式,我司一般采用增殖式的方式。
一次性组装方式
它是一种非增殖组装方式,也叫整体拼装。
使用这种方式,首先对每个模块进行模块测试,然后把所有的模块组装在一起进行测试,最终得到要求的软件系统。
例如,有一个模块系统结构,如图2-1(a)所示。
其单元测试和集成测试顺序如如图2-1(b)所示。
图2-1一次性组装方式
增殖式组装方式
这种组装方式又称为渐进式组装,是首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题。
最后通过增殖逐步组装成为要求的软件系统。
它又包括以下三种方式。
Ø自顶向下的增殖方式
这种组装方式是将模块按系统程序结构,沿控制层次自顶向下进行组装。
其步骤如下:
Step1:
以主模块为所测模块兼驱动模块,所有直属于主模块的下属模块全部用桩模块代替,对主模块进行测试。
Step2:
采用深度优先(参看图2-1)或分层的策略,用实际模块代替相应桩模块,再用桩模块代替它们的直接下属模块,与已测试的模块或子系统组装成新的子系统。
Step3:
进行回归测试(即重新执行以前做过的全部或部分测试),排除组装过程中引入新错误的可能。
Step4:
判断是否所有的模块都已组装到系统中?
是则结束测试,否则转到b去执行。
图2-2自顶向下增殖方式
缺点:
需要建立桩模块。
要使桩模块能够模拟实际子模块的功能十分困难,因为桩模块在接收了所测模块发送的信息后需要按照它所代替的实际子模块功能返回应该回送的信息,这必将增加建立桩模块的复杂度,而且导致增加一些附加的测试。
涉及复杂算法和真正输入/输出的模块一般在底层,它们是最容易出问题的模块,到组装和测试的后期才遇到这些模块,一旦发现问题,导致过多的回归测试。
优点:
是能够较早地发现在主要控制方面的问题。
Ø自底向上的增殖方式
这种组装的方式是从程序模块结构的最底层的模块开始组装和测试。
因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块。
在模块的测试过程中需要从子模块得到的信息可以直接运行子模块得到。
自底向上增殖的步骤如下:
Step1:
由驱动模块控制最底层模块的并行测试,也可以把最底层模块组合成实现某一特定软件功能的簇,由驱动模块控制它进行测试。
Step2:
用实际模块代替驱动模块,与已测试的直属子模块组装成子系统。
Step3:
为子系统配备驱动模块,进行新的测试。
Step4:
判断是否已组装到达主模块。
是则结束测试,否则执行Step2。
图2-3自底向上增殖方式
缺点:
是“程序一直未能作为一个实体存在,直到最后一个模块加上去后才形成一个实体”。
就是说,在自底向上组装和测试的过程中,对主要的控制直到最后才接触到。
但这种方式的优点是不需要桩模块,而建立驱动模块一般比建立桩模块容易,同时由于涉及复杂算法和真正输入/输出的模块最先得到组装和测试,可以把最容易出问题的部分在早期解决。
优点:
自底向上增殖的方式可以实施多个模块的并行测试,提高测试效率
Ø混合增殖方式
自顶向下增殖的方式和自底向上增殖的方式各有优缺点,在使用的过程中,通常是把以上两种方式结合起来进行组装和测试。
下面简单介绍三种常见的综合的增殖方式。
a.衍变的自顶向下的增殖测试:
它的基本思想是强化输入/输出模块和引入新算法模块的测试,并自底向上组装成为功能相当完整且相互对立的子系统,然后由主模块开始自顶向下进行增殖测试。
b.自底向上-自顶向下的增殖测试:
它首先对含读操作的子系统自底向上直至根结点模块进行组装和测试,然后对含写操作的子系统做自顶向下的组装和测试。
c.回归测试:
这种方式采用自顶向下的方式测试所修改的模块及其子模块,然后将这一部分视为子系统,再自底向上测试,已检查该子系统与其上级模块的接口是否适配。
确定关键模块
在使用增殖式组装方式进行集成时,测试者应当先确定关键模块,对这些关键模块及早进行测试。
关键模块至少应具有以下几种特征之一:
a.满足某些关键软件需求;
b.在程序的模块结构中位于较高的层次(高层控制模块);
c.较复杂、较易发生错误;
d.有明确定义的性能要求;
e.具有普遍适用意义的复用模块或对系统中其他部分提供支持的基础模块。
确定集成策略
历史的经验表明:
在产品集成的晚期发现并修改一个错误所需花费的时间及精力往往是产品集成的早期完成相同工作的数倍甚至数十倍。
因此,集成策略的一个根本目标就是保证错误能够及早发现。
确定集成策略可按如下方式完成:
a.确定关键模块。
一般来说,系统总包含一些关键模块,它们或对其他模块/子系统提供支持,或者实现一些对系统至关重要的算法,再或者模块复杂程度高,对系统的按时完成具有重要意义。
再确定集成策略之初,首先应当识别关键模块,并尽早安排集成。
b.对于规模较小、复杂程度低,且不含关键模块的系统,可采用一次性组装方式。
c.对于高层子系统/模块间存在明显的控制关系时可采用自顶向下的增殖方式。
d.最常用的集成方式是衍变的自顶向下的增殖方式。
需要注意的是其中的自底向上集成应以组装成为功能相当完整且相互对立的子系统为准,对于相互之间存在交互关系的模块需在此阶段集成为一个整体,并通过测试。
确定集成环境
产品集成环境可能包括对组织的现有资源的复用。
在这种情况下,《集成计划》应该指出这些资源的用途并且必须做出使用安排。
关于是采购还是开发产品集成环境的决策,参见“技术方案”过程中的“制造与购买分析”。
如果决定开发产品集成环境,就要实施“技术方案”及其他涉及项目开发的过程域中的有关实践。
在“产品集成”过程中的每个步骤上所要求的环境可能包括测试设备、仿真程序(在没有现成可用的产品构件的情况下)和记录设备等。
各桩模块、驱动模块如何配合各步集成、测试使用,应在《集成计划》中规定。
有效输出
产品的打包需求应在《集成计划》中描述。
对于由顾客存储和运输的产品来说,打包因素尤其重要。
在这种情况下,可能要为打包件规定很严格的环境条件。
在其他情况下,下列因素比较重要。
a.便于运输且经济(如:
货柜运输)。
b.可说明性(如:
收缩包装)。
c.拆包的方便性和安全性(如:
尖锐边缘,包装强度,对儿童安全的,打
包材料的环保程度,重量)。
软件系统打包和交付的例子如下:
a.磁带。
b.磁盘。
c.光盘。
d.硬备份文件。
e.诸如因特网之类的其他电子分发方式。
附件
该指南需要引用的参考文件。