快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰app在线下载_龟发之家论坛



1.目的

1.规范软件开拓流程。

2.前进代码治理的规范性与安然性。

2.介入者

所有的开拓职员、软件项目经理,亦适用于训练生。

3.治理澳门新葡亰app在线下载软件

1.版本治理采纳SubVersio澳门新葡亰app在线下载n + TortoiseSVN进行版本节制治理。

2.TortoiseSVN的最新版本宣布于http://tortoisesvn.net/downloads。

4.目录布局

SVN的目录布局如下所示:

192.168.1.3

├─Product_A

│ ├─branches

│ │ ├─dev_1_0

│ │ │ ├─Document

│ │ │ │ ├─1需求文档

│ │ │ │ └─2测试文档

│ │ │ └─Project

│ │ │├─Model_1

│ │ │└─Model_2

│ │ └─dev_1_1

│ ├─tags

│ │ ├─dev_1_0

│ │ │ ├─Doument

│ │ │ │ ├─1立项文档

│ │ │ │ ├─2需求阐发

│ │ │ │ ├─3系统设计

│ │ │ │ ├─4开拓计划

│ │ │ │ ├─澳门新葡亰app在线下载5测试申报

│ │ │ │ ├─6会议纪要

│ │ │ │ └─7产品实施

│ │ │ ├─Install

│ │ │ │ ├─1安装包

│ │ │ │ ├─2用户手册

│ │ │ │ └─3培训计划

│ │ │ └─Source

│ │ │├─Model_1

│ │ │├─Model_2

│ │ │├─Model_3

│ │ │└─Solution

│ │ ├─dev_1_1

│ │ └─dev_1_2

│ └─trunk

│├─Include

│├─Project

│├─Public

││ ├─1会议纪要(临时)

││ ├─2义务分配

││ ├─3开拓纪要

││ └─4测试数据

│└─SDK

│├─Boost

││ ├─Include

││ └─Lib

│└─TDE

│├─Include

│└─Lib

└─Product_B

每个软件产品对应SVN根目录下的一个二级子目录。每一个软件产品目录又主要包括如下三个部分:(1)Tag;(2)Trunk;(3)Branches

Tag:按版本保存该软件产品所有的颠末完备测试的历史稳定版本,相称于该软件产品的“里程牌”,每个版本目录主要包括三个部分:(1)Document;(2)Install;(3)Source

Tag/Document:与该版本软件产品有关的文档,不包括组成模块的文档,邻近主题的文档应保存在同一子目录下,子目录命名清晰清楚明了,例如上图所示。

Tag/Install:颠末测试的完备安装包以及安装阐明、用户指南、更新记录等相关用户文档。若必要其它组件的支持也应放在此目录下。

Tag/Source:与该软件产品有关的所有源代码。Source目录下主要包括两大年夜类。一类是源代码,主如果每一个开拓职员的本地Project目录(见《关于VC2005工程设置设置设备摆设摆设的阐明》)中的模块,每一个模块是一个目录,模块目录下包括与该模块相关的所有文档。另一类是办理规划,根据软件产品的不合,可以定义多少个办理规划,例如“XX信息平台”产品由三个部分组成:采集、利用与治理器,以是可以定义三个办理规划,分手用于天生这三个组成部分。办理规划内的工程可以按开拓职员、功能等主题定义筛选器。分外留意的是,每个办理规划必须定义子工程的“依附关系”与“天生顺序”,工程的依附关系也必要形成文档。

Trunk:目录是软件产品当前的主干开拓版本,主要由四部分组成:(1)Include;(2)Project;(3)Public;(4)SDK

Trunk/Include:软件产品开拓历程中必要包孕的公共头文件,不能包括开拓模块输出的头文件。比如软件产品必要应用boost::share_ptr功能,该功能只包括头文件,则可以把boost::share_ptr应用的头文件放在Include目录里。Include目录也可以根据必要定义子目录,参考《关于VC2005工程设置设置设备摆设摆设的阐明》

Trunk/Project:寄放所有的软件开拓模块。不合的开拓职员将自己本地工程中的Project寄放于此目录中,若模块数量较多留意(1)命名清晰(2)不要重名。比如功能库可以用取名“libXXX“,平台插件可以取名“pluginXXXX”等。

Trunk/Public:寄放软件开拓历程中必要被所有开拓职员共享的文档、代码、图表等,比如项目组会议纪要、义务分配与开拓计划书、测试用例数据库的dmp导出文件等。Public中的文件应该是临时性子的,不代表终极的成果文档;终极的成果文档可以由Public中的内容演化天生。

Trunk/SDK:若软件产品是基于某开拓平台的二次开澳门新葡亰app在线下载拓产品,则该开拓平台的相关文件应放在此目录下。若应用了多个SDK,则应按不合的SDK组织二级目录,每个二级目录下的文件应该是自力完备的,也应包括SDK的阐明文档、更新记录与示例代码

Branches:目录是软件产品的迭代开拓版本。Branches目录中应按当前迭代的版本组织目录,版本目录下的子目录组织参考Trunk目录。Branches中的内容主要由三部分组成:(1)需求文档;(2)开拓代码;(3)测试结果。

需求文档记录针对某一迭代版本提出的新需求,以及为了满意这些新需求该版本的哪些模块必要进行哪些大年夜致的调剂,即“需求”;详细模块的调剂规划应记录在该模块的“内部文档”中。开拓代码是开拓职员根据需求文档对相关模块进行调剂,即“相应”。测试结果记录测试职员对改动后的模块进行测试得出来的结果,即“结果”。

“需求-相应-结果”这是一个轮回的历程,直至满意了新的需求并经由过程测试。这个历程如下图所示:

5.用户与权限

SVN的用户主要分三个层次的权限等级:(1);项目经理(2)开拓职员;(3)训练生。项目经理具有SVN所有目录的读写权限;开拓职员根据环境可以取得与项目经理相同的权限,或者对应Project目录的权限;训练生平日对分配给自己的Model目录具有读写权限,对他所依附的其它Model目录具有只读权限。

阐明:文档的层次是两澳门新葡亰app在线下载层的,一层是与整体相关的文档以及“终极文档”,一层是“模块文档”,平日训练生可以打仗的只有模块文档(包括义务模块文档与依附模块文档)。

6.日常治理

提交到SVN的代码,必须是可Build经由过程的代码。分外是在开拓初期,模块接口的功能可以简单地实现,或者干脆不实现,然则必然要包管依附到此模块的其他开拓职员可以Build经由过程。

开拓职员应该形成“上班update,放工commit”的习气,即天天开始事情的时刻最好是反省一下自己依附的模块有没有更新,停止事情的时刻将自己认真的模块commit。

然则这样又有一个问题,在项目的开拓历程中,分外是初期,模块的接口是不稳定的,这样会造成模块的用户频繁地应对接口变更。这是应该是一个“度”的问题,也从一个侧面要求开拓职员先设计接口并包管在较长的光阴内接口的功能、样式维持稳定。

您可能还会对下面的文章感兴趣: