1、软件研发版本管理制度20资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。泰豪软件研发版本管理规范v1.0(草案)研发部 -2-4目录文档类别使用对象31引言41.1目的41.2范围41.3术语定义41.4版序控制记录51.5版本更新记录52版本管理521版本标识方法5211正式版本522目录结构623文档的存放72.3.1 当前版本和历史版本的存放72.3.2 开发文档的存放72.3.3 源代码的存放72.3.4 SQL语句的存放72.3.5发行文档的存放724权限控制管理83更新管理( 版本升级) 83.1版本升级原则83.2 新版本的发布94备份管理95用户版本管理106研发部
2、统一管理阶段性版本106.1阶段性版本的提交到研发部106.2阶段性版本的发布到公司网站上106.3各项目组新版本内部及时备份。117版本工具的使用117.1研发部采用svn配置管理工具118各项目组提交文档及源码以及规则118.1 各项目组需要提交的文档118.2当前所管理的产品列表129周报管理制度1210风险管理制度13文档类别使用对象文档类别该文档是为泰豪公司提供一个版本管理规范性文件。使用对象该文档使用对象为泰豪软件公司研发本部各部门项目经理及版本管理人员, 以及其它相关人员。未经许可, 该文档不得提供给上述规定对象以外的人员阅读或使用。 1引言1.1目的本文档是为规范泰豪软件公司研
3、发版本管理而制定的。1.2范围本文档为各产品部、 事业部版本管理员提供有关版本管理规范的相关内容, 包括: l 版本标识方法l 软件系统数据的存放l 文档的修改控制l 文档的备份制度1.3术语定义SVNSvn是一个开源的版本控制系统Subversion的简称文档一种数据媒体和其上所记录的数据。配置管理标识和确定系统中配置项的过程, 在系统整个生存周期内控制这些项的投放和更动, 记录并报告配置的状态和更动要求, 验证配置项的完整性和正确性。软件配置软件的具体形态在某时刻的瞬时影像。配置项 软件配置管理的对象称为配置项, 如: 系统规格说明书, 项目开发计划, 用户手册, 源码。基线 软件生存周期
4、中各开发阶段末尾的标记, 它的作用是把各阶段工作的划分更加明确化, 使原来连续的工作在这些点上断开, 使之便于检验和肯定阶段成果。1.4版序控制记录版序状态拟稿审核批准发布日期1.0研发部 张洪兴09/11/181.5版本更新记录*A - 增加 M - 修改 D - 删除版本/修订版修改页码修改记录修改人日期1.0初始版本 /022版本管理21版本标识方法为了使工作规范化、 统一化, 各项目组实行的版本标识管理方法分为: 正式版本和特殊版本。211正式版本 公司在市场上发行的正规版本。以”V”开头, 版本号放后。V前面增加项目名称, 版本号分3节: 主版本号, 次版本号和内部版本号, 每节之间
5、以小数点( .) 间隔。如V2.0.1表示主版本号为2, 次版本号为0, 内部版本号为1。研发部控制主版本号和次版本号, 各项目组控制内部版本号。例如: 一体化平台-平阴版v1.1.1 , 一体化平台为产品名称, 平阴版为版本名称( 平阴为具体项目名称) , v1.1.1为主版本号+次版本号+内部版本号。22目录结构由于各项目组的实际情况不同, 目录结构很难统一, 但为了能更好地管理各项目组的文档, 建议可将被管理的配置项分为三大类: 文档类、 源码类及安装盘类, 这样存放比较清晰, 有利于版本管理。至于二级目录是以版本划分, 并根据制定的目录结构给出文件级目录清单( 先给出源程序及文档的文件
6、级目录清单, 安装盘的能够后再执行) : 。现以农电平台1.0的目录结构举例如下: 根目录一级目录二级目录三级目录对应配置项备注产品名称一体化平台版本号源码(F:)核心源码包jar源码存目录前正在修改的内容Class文件扩展源码包源码sqlSQL文件版本变动说明文档(G:)需求文档用户需求记录版本号在文件名上标识概要设计文档总体设计文档按版本号依次类推数据库设计详细设计文档测试用例测试记录版本号在文件名上标识用户手册用户使用手册产品说明书项目计划项目计划实施手册实施手册月度计划月度计划安装盘(H:)REL_SRC产品盘或发布文档SETUP发布文档表示正式版本及特殊版本的目录按以下原则定义: (
7、1) 正始版本: 以”V”开头, 版本号放后, 主版本号和次主版本号之间的”.”去掉, 明细版本号之前加”-”。举例如下: 版本号 目录名V1.0 V1.0V1.1 V1.1V1.0.1 V1.0.1V1.1.2 V1.1.223文档的存放2.3.1 当前版本和历史版本的存放对于源码文件, 特别增加了一个Current目录, 存放当前正在开发与维护的源码文件, 当前未发布版本的所有数据都存放在.CURRENT下。一旦当前版本正式发行, 则当前目录被修改为相应的历史目录。历史版本是指已经发行的版本, 存放在相应的版本目录之下, 一般不允许改动。2.3.2 开发文档的存放根据各项目部自己的情况,
8、将系统用户需求记录、 总体设计文档、 详细设计及数据结构文件、 测试记录、 用户手册等放入相应的目录下。2.3.3 源代码的存放源代码包括如: java, jsp, BMP, ICO等相关文件, 是未经编译处理的、 不能直接交付使用的产品文件以及编译产品所需的文件; 联机帮助文件HLP在未生成HLP文件之前的DOC, RTF等格式的文档也视为源代码。各子系统当前的程序源文件放入相应的目录下。对于一个子系统又分多个分子系统的情况, 应在该目录下分别建立几个相应的目录。2.3.4 SQL语句的存放各子系统SQL文件放入.SQL下, 对于不同的数据库, 分别建立不同的子目录, 如oracle、 sy
9、sbase、 db2等。公共SQL文件直接放入SQL下即可, 不同数据库的特殊SQL分别放入对应的子目录下。2.3.5发行文档的存放发行文档是指产品交付用户使用所必须的文件。包括: 产品可执行文件, 用户使用说明书, 联机帮助( HLP) ; 资源文件( BMP, ICO等) , 环境配置文件等。以上文档作为制作发行盘的素材, 放在RELEASE的REL_SRC目录之下, 制作好的发行盘放在RELEASE的SETUP目录。24权限控制管理为保障文档的安全性, 一致性, 以及防止意外修改, 必须对不同的文档设置不同的访问权限。文档权限类别: 只读权限, 读写权限。文档类别: 设计文档, 源码,
10、发行文档。用户类别: 开发人员、 测试人员、 分析设计人员、 项目经理、 配置管理员、 安装盘制作人员、 问题及需求管理人员、 用户文档编写人员等。为了控制不同的使用权限, 根据要求在服务器上分别建立不同的用户, 针对不同的配置项所在目录分配不同的权限。为了便于管理, 应以表格的形式列出人员与管理对象的访问关系( 用户权限清单) 。3更新管理( 版本升级) 3.1版本升级原则版本升级应严格纳入版本管理的控制之下。应当谨慎地控制版本的升级, 保障高版本的向下兼容性, 或提供严格定义的升级方法。在下面几种情况下, 进行版本演化和升级: 1、 当产品发生重大修改和改进时, 主版本号加1。重大修改和改
11、进包括: 1) 平台迁移; 2) 开发工具的迁移; 3) 体系结构的变迁。2、 当产品发生较小的改进或修改时, 次版本号能够加1。 3、 对于改动量比较少的, 如修改产品的错误, 可增加内部版本号。内部版本号对用户来说是不可见的, 只对项目部内部版本控制有用。4、 记录版本升级过程。每次版本升级, 都要填写版本升级记录表, 记录表样例如下: 版本升级记录表版本号发布日期修改文件问题简要描述发布责任人批准人备注说明: 版本号: 记录当前发布的版本。 发布日期: 该版本批准发布的日期。 修改文件: 版本修改记录文件, 一般为版本修改日志。3.2 新版本的发布新版本的发布包括主版本号和次版本号的升级
12、, 一般不包括内部版本号的升级。流程如下: 1、 根据项目进展情况, 或者根据用户需要进行发布准备。2、 在指定目录中, 根据本次发布的版本号建立相应的子目录, 将current下的所有内容拷贝至新建目录下。3、 可在新建目录下建立readme.txt, 并加入相应的内容。readme.txt文件是记录该版本与上一版本的不同, 作过哪些改动。格式样例如下: 增加或修改功能涉及源文件改动原因4备份管理为了保证文档的最大可恢复性, 要随时及定期地进行备份工作。1、 随时备份: (1) 开发人员每天都要将自已当日修改的源文件在本地机器上进行备份。(2) 开发负责人每天要将所有源文件在本地机备份。(3
13、) 建议备份采用循环备份。2、 定期备份(1) 备份形式为硬盘备份和光盘备份。硬盘备份时, 要备份在独立的硬盘上; 光盘备份时, 要将光盘存放在可靠的地方。(2) 备份周期视各产品部、 事业部的具体情况而定。如果处于开发阶段, 每周应对所有的源程序项进行备份, 一般为每周周五; 如果处于其它阶段, 根据具体情况而定, 但周期不能超过两周。(3) 备份要由版本管理员负责, 备份原则应是保证文档的最大可恢复性。(4) 对于历史版本或某用户的特殊版本, 如果无特殊原因不再进行修改的话, 建议用光盘进行备份, 而且应有备份盘说明文件BACKUP.TXT。该文件应该记录以下内容: 本次备份时间, 备份内
14、容, 执行人。5用户版本管理当前主要以做项目为主, 是根据客户要求开发的程序。为了更好地管理源程序, 应为每一用户建立一个用户版本文件, 该文件应包含以下内容: 用户编号: 用户名称: 软件版本号: 开始使用时间: 联系人: 联系电话: 用户程序更改日志样例如下: 更改时间版本号修改模块名称变更原因变更概述软件位置变更人员备注说明: 1) 用户购买软件时要为该用户建立一个包含上述内容的一个用户版本文件, 并填写有关数据。2) 用户进行版本更新时要求填写该文件的版本变更记录, 用以反映用户版本的变更情况。6研发部统一管理阶段性版本 6.1阶段性版本的提交到研发部当各项目组更新了新版本以后, 如果
15、次版本号发生改变, 各项目组配置管理员经项目经理批准后要把次版本修改的内容( 提交的内容分为修改的源码、 新的文档和安装盘) 提交给研发部版本管理人员。 6.2阶段性版本的发布到公司网站上产品新版本发布以后, 及时在软件演示环境中进行更新。而且新版本的特色和特点要在公司网站上进行发布, 描述新版本特色的文档要由各项目组进行提供给项目部, 经项目部保存后, 文档提交给公司网站管理人员进行发布, 以便供其它项目组和公司营销人员进行了解。 6.3各项目组新版本内部及时备份。 研发部负责进行所有产品版本的管理, 但各个项目组也要自己进行备份。7版本工具的使用7.1研发部采用svn配置管理工具研发部采用
16、专门的配置管理服务器, 此服务器只是专门用于版本的管理, 一般不用于其它的应用, 配置管理软件采用svn1.5进行配置管理。8各项目组提交文档及源码以及规则8.1 各项目组需要提交的文档名称成果描述立项申请书写名此项目的价值、 所需人力资源及费用、 可行性分析、 成本-效益分析、 风险分析立项评审报告评审结论、 评审建议软件需求说明书目标客户、 业务流程、 系统中的角色、 子功能模块介绍、 质量要求、 界面要求系统设计说明书系统约束、 开发环境、 数据流程图、 用例图、 模块之间的关系图、 类函数文件变量等命名规则、 系统安全设计说明、 性能分析数据库设计说明书所有表名、 表设计、 表ER图、
17、 生成库的sql语句、 存储过程等。表及字段命名规则。用户界面设计说明书系统界面设计说明、 原型图模块设计说明书编程的接口、 主要的数据结构、 主要算法测试用例用例名称、 用例描述、 输入值、 希望输出值缺陷报告Bug名称、 bug状态、 bug紧急情况、 bug处理人等测试报告界面测试报告、 性能测试报告部署说明书部署环境说明、 初始化的数据、 注意事项、 数据的迁移等安装和使用手册安装过程描述、 各模块使用手册、 FAQ手册软件源代码源代码、 开发工具、 API详细说明、 代码注释、 编译后程序系统维护记录问题描述、 问题解决情况技术评审报告评审内容、 评审结果、 评审人系统安装程序打包程
18、序、 打包工具、 打包完以后的安装程序8.2当前所管理的产品列表序列号产品名称应用范围所属项目组产品介绍1一体化平台Sg186农电农电2安全性评价系统电网安全性评价调度3电网调度专业技术安全知识在线调考系统( 网省版) 电网调度4电网现场标准化作业系统电网调度5国调E语言编辑浏览器电网调度6江西省电力公司生产安全管理系统电网调度7江西省电力公司电网输电GIS电网调度8青海一体化OMS项目建设电网调度9生产管理系统短信平台电网调度10泰豪EOMP业务基础平台电网调度11泰豪图形化智能操作票系统电网调度9周报管理制度 各项目组每周向研发部提交周报。周报具体的格式如下: 项目周报报告名称所属项目报告人报告日期本周工作汇报1. 任务进度情况2. 项目成本情况3. 项目质量情况4. 客户情况5. 存在的问题和对策或者各个项目组提交最新的project 文件。Project文件中包含各任务完成百分比, 任务分配人, 资源情况。10风险管理制度各项目组每周向研发部提交风险跟踪表。周报具体的格式如下XYZ项目 风险跟踪表风险编号严重性可能性风险描述报告者处理者当前状态解决措施 风险严重性: 指风险对项目造成的危害程度, 例如能够划分为5个等级: 5很严重, 4比较严重, 3中等, 2轻度, 1低微。 风险可能性: 指风险发生的几率, 能够用百分比表示。