关于软件构建,打包和布置的一般定义和过程
软件构建,打包到布置属于SCM的范畴,很多团队和公司对于这个环节控制不力和没有控制,
从而一定程度上影响了软件最终的质量。这里略微总结一下关于这个过程的一般定义和步骤。
Build - 构建
Package - 打包
Deploy - 部署
构建(Build)的目的是通过对源代码和其他资源(软件开发配置库中的资源)有选择的选取,
编译、生成等方法加工,产生最终可以用于运行系统的可执行文件和其他一切文件、文档。构
建始于对目标的选择,而不是简单的认识意义上对于源代码的check out。构建按照不同的目
的可以分为以下几类:
1. 私有的构建:此类构建一般是单个开发人员在自己工作空间里的构建,基于一定的开发基线,
开发人员为开发和测试为目的的私有空间内的构建。开发人员可以及此整合其他人的修改或者
测试阶段性工作的完成情况等。
2. 整合构建: 整合构建一般由SCM团队或人员为整合整个开发团队的工作,在整合工作空间
内正确(没有错误)构建所有需要的资源的过程。这可能是测试构建和最终发布构建的预演。
3. 测试构建: 为测试所展开的构建。这个过程与单个开发人员的私有构建不同,他是提供基准
测试样本的构建,由此生成的产品才是测试人员测试的目标。测试构建也通称为QA构建。
4. 发布构建:在测试完成之后,认为产品可以最终发布而进行的以产品目标进行的构建。
构建的具体步骤:
不管采用的是什么样的开发平台和开发工具(IDE等……),构建的一般过程概述如下(个人建议,
可能并不具备权威意义):
- 通过SCM工具从CM库中选取需要构建的元素(集)。
- 执行构建命令(script,commands,最好能做到自动化,如make,ant之类系统的采用)。
- 把构建构成全程记录在日志文件中。
- 查阅构建日志,确定构建当中的问题。
- 可能的话在构建过程中调用相关的功能测试,确保测试正确。
- 如果构建成功并且是可以标识的阶段性的(里程碑,测试,发布),对当前CM库打标签记录。
- 构建构成是重复性的,所以确保使用了自动化工具(很重要的原则)
关于打包:
打包是把构建的结果集和其他需要的CM项(scripts)、数据库、文档等按一定方法(RPM……)集成
可以安装、发布的软件包的过程。
打包的一般过程:
- 构建是可标识的首先需要标记构建;
- 识别其他需要打包项(脚本,数据库,文档等);
- 集中所有的打包目标项;
- 需要一个发布笔记的草稿;
- 验证包的正确性;
部署(发布前奏)
部署是发布前最后的准备工作。
在发布前确定将要发布的软件包在产品运行环境中工作正确。
部署一般过程:
- 最终完成的发布笔记(release note)
- 向CCB(修改控制委员会)提交关于这个发布的基线修改请求。
- 审查所有的修改记录(Change Logs);
- 前述步骤通过,则可以确定发布日期和通知支持团队;
- 安装发布版,一般通过最后的发布媒介;
- 最后验证发布介质上的产品的正确性和功能完整性;
- 通知客户,管理者和支持团队发布产品;
这些一般性建议对于具体的企业和团队可以根据具体情况加以定制和修改。
从而一定程度上影响了软件最终的质量。这里略微总结一下关于这个过程的一般定义和步骤。
Build - 构建
Package - 打包
Deploy - 部署
构建(Build)的目的是通过对源代码和其他资源(软件开发配置库中的资源)有选择的选取,
编译、生成等方法加工,产生最终可以用于运行系统的可执行文件和其他一切文件、文档。构
建始于对目标的选择,而不是简单的认识意义上对于源代码的check out。构建按照不同的目
的可以分为以下几类:
1. 私有的构建:此类构建一般是单个开发人员在自己工作空间里的构建,基于一定的开发基线,
开发人员为开发和测试为目的的私有空间内的构建。开发人员可以及此整合其他人的修改或者
测试阶段性工作的完成情况等。
2. 整合构建: 整合构建一般由SCM团队或人员为整合整个开发团队的工作,在整合工作空间
内正确(没有错误)构建所有需要的资源的过程。这可能是测试构建和最终发布构建的预演。
3. 测试构建: 为测试所展开的构建。这个过程与单个开发人员的私有构建不同,他是提供基准
测试样本的构建,由此生成的产品才是测试人员测试的目标。测试构建也通称为QA构建。
4. 发布构建:在测试完成之后,认为产品可以最终发布而进行的以产品目标进行的构建。
构建的具体步骤:
不管采用的是什么样的开发平台和开发工具(IDE等……),构建的一般过程概述如下(个人建议,
可能并不具备权威意义):
- 通过SCM工具从CM库中选取需要构建的元素(集)。
- 执行构建命令(script,commands,最好能做到自动化,如make,ant之类系统的采用)。
- 把构建构成全程记录在日志文件中。
- 查阅构建日志,确定构建当中的问题。
- 可能的话在构建过程中调用相关的功能测试,确保测试正确。
- 如果构建成功并且是可以标识的阶段性的(里程碑,测试,发布),对当前CM库打标签记录。
- 构建构成是重复性的,所以确保使用了自动化工具(很重要的原则)
关于打包:
打包是把构建的结果集和其他需要的CM项(scripts)、数据库、文档等按一定方法(RPM……)集成
可以安装、发布的软件包的过程。
打包的一般过程:
- 构建是可标识的首先需要标记构建;
- 识别其他需要打包项(脚本,数据库,文档等);
- 集中所有的打包目标项;
- 需要一个发布笔记的草稿;
- 验证包的正确性;
部署(发布前奏)
部署是发布前最后的准备工作。
在发布前确定将要发布的软件包在产品运行环境中工作正确。
部署一般过程:
- 最终完成的发布笔记(release note)
- 向CCB(修改控制委员会)提交关于这个发布的基线修改请求。
- 审查所有的修改记录(Change Logs);
- 前述步骤通过,则可以确定发布日期和通知支持团队;
- 安装发布版,一般通过最后的发布媒介;
- 最后验证发布介质上的产品的正确性和功能完整性;
- 通知客户,管理者和支持团队发布产品;
这些一般性建议对于具体的企业和团队可以根据具体情况加以定制和修改。
Comments