构建管理服务 类名 构建管理服务 类英文名 BuildAdmin
成员变量
变量名 变量说明
cvsroot 保存了cvsroot环境变量
buildDir 保存了临时存放应用项目源代码的路径
方法
方法名 参数 执行步骤 方法说明
cvs_check_out 应用项目cvs系统中的名字 利用cvsroot 登录cvs系统;
执行cvs co指令,把参数制定的应用项目源代码取出并放在成员变量${buildDir}指定的目录/项目名字/目录下。
从cvs中取出项目源代码
statcvs module:应用项目cvs系统中的名字;
project_Build_Tag:每个项目的当前构建标签
(1) 对源代码进行项目度量,并把结果放在${statCVSTopDir}目录下的${project_Build_Tag}目录下。 对源代码进行度量
execute 对每一个应用项目执行:
cvs_check_out
statcvs
执行ProjectBuild的execute()方法
应用项目构建服务
类名 构建管理服务 类英文名 BuildAdmin
成员变量
变量名 变量说明
project_Build_Tag 保存了当前正在构建的项目由项目名称和当前系统时间组成的构建标签
方法
方法名 参数 执行步骤 方法说明
test_project 为测试而编译连接源代码;
安装测试版产品;
测试产品;
计算测试覆盖率;
输出测试结果到${testTopDir}指定目录下的${project_Build_Tag}目录下;
输出测试覆盖率结果到${testCoverTopDir}指定目录下的${project_Build_Tag}目录下;
dist_project 编译连接源代码;
安装发布版产品到${distTopDir}指定目录下的${project_Build_Tag}目录下。
execute 执行test_project方法
执行dist_project方法
把两个方法的日志合并成一个日志文件,命名为${project_Build_Tag}.txt,并把其放在${ projectLogTopDir }指定的目录下。
执行场景
构建场景

1.操作系统定时服务类开始执行;
1. 1启动BuildAdmin对象的execute方法
针对每个被管理的项目,执行下列步骤:
#begin
1.1.1根据当前系统时间和项目名称生成该项目的构建标签,并记录构建标签
1.1.3以构建标签为参数生成项目的ProjectBuild对象
1.1.2调用cvs_check_out方法,从cvs系统中取出该项目的源代码
1.1.3执行statcvs方法,生成项目度量数据并保存到相应的位置
1.1.4调用该ProjectBuild对象的execute方法,完成项目的测试和安装,并产生相应的构建信息
#end
浏览构建信息场景
我们已经说过,各个构建信息能实现在browser中的自我展示,所以Nightlybuild对象只需通过某种格式显示各个构建信息的目录,构建信息请求者可以通过这些目录请求各个构建信息。

1.NightlyBuild对象接到浏览构建信息的请求,通过对自己保存的构建信息目录和构建标签列表组织构建信息目录。
5、文档书写辅助工具
word 文档书写排版工具
powerpoint,图片组织绘画工具
visio 绘制数据流图,ER图等的工具
rational rose,绘制UML图形的工具
windows 附件中的画图来截取图片
操作系统的全屏打印功能
参考资料
进一步学习面向对象的系统分析和设计:《面向对象的系统分析和设计》Ronald J. Norman
《实用面向对象软件工程教程》殷人昆 田金兰 马晓勤 译
良好的用例编写风格可以从这里获得:《编写有效用例》 Alistair Cockburm
进一步理解cvs和nightlybuild技术的相关背景资料:《cvs和nightlybuild技术》 杨锦方
cvs源代码版本系统在:http://www.cvshome.org
statcvs 项目工作量分析工具在:http://statcvs.sf.net/
clover测试覆盖率分析工具在: http://www.cortexebusiness.com.au/
ant构建工具在:http://ant.apache.org
junit单元测试工具在:http://www.junit.org
apache web程序测试工具在:http://jakarta.apache.org/cactus/
关于作者
龚永生,热衷J2EE技术,主要研究门户系统软件。你可以通过gongys@legend.com与他联系。
地址(addr): 北京市海淀区上地信息产业基地开拓路7号联想大厦
邮编 100085
电话(tel): 010-62986638-5749
手机(mobile): 13910304330
传真(fax): 010-62975824