部门SCM实施方案初稿

 
部门 SCM 实施方案初稿
Jack Yang
JackYang.sh@gmail.com
 
 
 
 
本文所使用的术语定义见表1。
 
表1 术语定义
缩写、术语
解释
SCM
软件配置管理。软件配置管理,贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理无论是对于软件企业管理人员还是研发人员都着重要的意义。软件配置管理可以提炼为三个方面的内容:版本控制、变更控制、过程支持。
Version Control
版本控制
Change Control
变更控制
Process Support
过程支持
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1.         需要具有完善的权限控制和管理
权限控制需要能够细化到能够对一个项目中的不同目录进行权限控制。
2.         远程访问、上传、下载便利
3.         具有版本控制功能
4.         具有同步功能
5.         目录和文件管理方便
6.         具有友好的管理界面,操作简单
7.         当项目组进行异地开发时,可以独立的进行软件配置管理
当项目组开发完毕回到公司后,可以对配置管理进行合并
8.         具有全文搜索功能
支持的文件格式至少包括Microsoft Office Visio® (.vsd)、Microsoft Office Word (.doc)、Microsoft Office Excel (.xls)、 Microsoft Office PowerPoint® (.ppt)、Acrobat Reader(.pdf)
 
 
 
1.       项目实施过程中,不断在进行修改的代码和文档。
代码包括WINDOWS平台下的工程代码和UNIX平台下的工程代码。
2.       项目实施结束,已不再进行修改的代码和文档。
代码包括WINDOWS平台下的工程代码和UNIX平台下的工程代码。
3.       个人整理的技术文档。
4.         完成一个特定功能的代码片断,归入知识库用于内训。
 
 
主机采用普通的PC Server。
由于,需要支持多个客户端同时接入,进行相关的软件配置管理操作,所以对主机的CPU和内存都有一定要求。建议CPU采用P4 2.8以上、内存采用512MB以上。
由于,需要存档大量的代码和文档,所以硬盘采用250GB以上。为了保证数据的安全性,建议采用Raid 1。而且要对主机上的数据进行经常性的备份。
 
 
操作系统可选择Windows、LINUX、UNIX。
选择Windows的好处是管理方便、维护成本低,缺点就是安全性欠佳,容易感染病毒。
选择LINUX或UNIX的好处是安全性好,不容易感染病毒,但其缺点是管理复杂、维护成本高、熟悉相关管理和维护知识的人员少。
具体选择哪个操作系统,要根据之后对SCM工具的选择而定。
 
由于需要和多个客户端之间同时交换大量的数据和文件,所以应该使用100M网络。在初期阶段,可以先不考虑把SCM服务器联入外网。在外开发的项目组采用独立的SCM方案,所以,无需连接部门内部的SCM服务器。
 
 
6.1     SharePoint Portal Server2003
 
1.         SharePoint Portal Server 2003 产品信息
 
2.         SharePoint Portal Server 2003 的 10 大优点
 
3.         SharePoint Portal Server 2003的新增内容
 
4.         SharePoint Portal Server 2003 漫游
 
5.         升级到 SharePoint Portal Server 2003 的十大理由
 
6.         SharePoint团队
 
7.         美国Air Products部署SharePoint的成功案例
 
 
 
1.         官方网站
 
2.         如何利用PVCS进行项目文档管理
 
 
 
1.         软件配置管理 HOWTO CVS VS STARTEAM
 
 
 
 
 
 
1.         Visual SourceSafe 2005官方网站
 
2.         软件配置管理与SourceSafe使用指南
http://www.51testing.com/html/36/1424.html
 
 
 
1.         全面迎接SVN时代来临
 
2.         SubVersion英文官方网站
 
3.         SubVersion中文官方网站
 
4.         Subversion使用手记
 
5.         Subversion 简介
 
6.         将会取代CVS的版本控制工具——Subversion
 
 
 
Lotus Domino Document Manager官方网站
 
Lotus Domino Extended Search 智能搜索引擎
 
Domino.Doc提高了通用汽车的档案管理
 
IBM 软件中小企业文档管理解决方案
 
 
 
1.         官方网站
 
2.         PaperPort Pro Office 简体中文版
 
3.         SCANSOFT PAPERPORT
 
 
 
1.         Team Foundation官方网站
 
2.         为 Visual SourceSafe 用户介绍 Team Foundation 
 
3.         Visual Studio 2005 Team System初体验(1) - Team Foundation Server的安装
 
 
 
部门SCM实施方案的总体架构,请看图1
部门SCM的总体架构图
 
 
图 1 部门SCM的总体架构图
 
考虑到从版本控制和集中式档案管理这两方面入手来实施部门SCM。所以,部门SCM服务器上首先部署集中式档案管理服务端和版本管理服务端,在下面的章节中将对这两个服务端进行详细介绍。
部门SCM服务器架设在一台性能符合要求的PC Server上,这台PC Server接入公司的局域网。公司局域网内部的任何一台机器都能访问到这台部门SCM服务器。
部门SCM服务器只需要在升级系统补丁或者防火墙病毒库时,使用能够访问外网的IP地址。平时使用固定的普通IP地址即可,IP地址确定后,就不应该无故修改。
考虑到部门SCM服务器上存放着各种重要的内部资料和源代码,而且无论是采用WINDOWS还是LINUX系列操作系统都无法完全避免系统漏洞的存在,所以,把服务器设定为无法从外网访问。虽然,这样会降低外部项目组和部门SCM服务器进行信息交互的实时性,但可以间接的增强服务器的安全性,降低服务器系统管理的难度。
为了保证SCM服务器上档案资料的安全性,SCM服务器的登录密码只有SCM管理员和部门经理知道。而且,应该尽量减少直接登录SCM服务器的次数。
 
集中式档案管理服务端用于存放并管理部门内部的各种格式的档案,包括各种文档和各种平台的代码。
对于隶属于某个项目的档案资料,服务端以项目为单位进行管理。对于员工个人整理的各种档案资料,服务端按照类别进行管理。允许有权限的员工访问相应的档案资料,并提供对档案资料的全文检索功能。
档案管理服务端所存放的档案都是最新版本。这些档案的历史版本可以从版本管理服务端签出。
档案管理服务端所存放的所有档案资料都包含有创建者等信息,以便对档案资料进行跟踪维护和员工之间的技术交流。
 
目前,正在评估中的两个软件系统是微软的SharePoint Portal Server 2003和IBM的Domino.Doc。最终确定采用哪套软件系统还需要查阅大量资料后才能确定。
 
由于档案管理服务端和版本管理服务端之间没有直接的交互接口,所以档案从版本管理服务端到档案管理服务端的归档操作需要部门内部的SCM管理员手工完成。
当版本管理服务端上有项目封版之后,SCM管理员就进行一次项目档案的归档操作,所以,档案归档操作的频率不高。档案归档操作应该有SCM管理员、项目经理、项目开发人员、项目测试人员共同参与,才能保证归档的质量。
由于项目档案的归档操作,只是归档各种档案文件,并不会归档档案文件的版本信息。所以,项目档案归档之后,不会对版本管理服务端进行清理操作,这样就不会破坏项目档案的版本信息。而且,万一人工的归档操作发生错误,也有一个补救措施。
 
部门员工需要访问其它项目沉淀下来的各种档案资源时,可以通过图形客户端或WEB的方式,直接登录到档案管理服务端,访问各种权限允许的档案资源。并且可以把这些档案资源下载到本地,供随时查阅。
部门员工可以把自己整理的档案资料上传到相应的类别下,供大家查阅。SCM管理员定期检查员工个人上传的档案资料,对内容不符合要求或归错类别的档案资料,要进行相应调整,并通知档案资料的创建人。部门其它员工在发现不符合要求的文档时,应该及时向SCM管理员报告。
 
8.1.5          SCM管理终端之间的访问关系
SCM管理员使用SCM管理终端,通过图形客户端或WEB方式,连接到SCM服务器对档案管理服务端进行部署和日常维护。
SCM管理员也可以直接登录到SCM服务器对档案管理服务端进行部署和日常维护。但为了保证SCM服务器的安全性,这种管理维护方式应该尽量少用。
 
出于安全性的考虑,在SCM 实施初期外网无法访问部门SCM 服务器。异地项目组如果想访问档案管理服务端上的资源,可以向SCM 管理员或其它部分同事提出请求。根据请求人的权限,从档案管理服务端取出相关的资源,发送给异地项目组。
当异地项目组完成项目回到公司后,SCM 管理员和项目组各成员一起把项目组的各种档案资料归档到档案管理服务端中。
 
为在公司内部进行开发的项目组提供集中化的版本管理服务。
 
 
考虑到各个项目组所用的开发平台和开发工具不尽相同。所以,SCM服务器上将同时架设多种相互独立的版本管理软件。并且根据项目组的实际要求可以增加版本管理软件。
 
目前入选的版本管理软件包括:
1.         SourceSafe
2.         CVS
3.         SubVersion
4.         基于FTP的目录管理方式
 
SourceSafe与Visual Studio系列开发工具结合的非常好。所以,使用VS6、VS2003或VS2005开发项目的项目组都可以选择相应的SourceSafe版本,进行版本管理。为了配合不同的VS版本,SCM服务器上会同时架设SourceSafe6和SourceSafe2005。
 
CVS是一个即适合WINDOWS平台项目又适合UNIX/LINUX平台项目的版本管理工具。在WINDOWS平台下CVS有图形客户端WINCVS完成日常版本管理操作,在UNIX/LINUX平台下有方便快捷的命令完成日常版本管理操作。CVS的并行版本管理功能也是几个版本管理工具中最先进的。
 
SubVersion作为CVS的继承者,不仅,包含有CVS所有优秀的特性。同时,它还解决了CVS存在的一些问题,如:权限管理和对二进制文件的版本管理。所以,项目组如果不是为了延续CVS管理的遗留版本信息,那么 建议直接选用SubVersion作为版本管理工具。
 
基于FTP的目录管理方式是最轻量级的版本管理方法。项目的目录结构根据要求建立,并为每个项目组成员建立FTP访问权限。这种版本管理方式存在很多问题,所以不建议使用。
 
项目组成员可以使用开发工作站上安装的各种版本管理工具的客户端与SCM服务器上版本管理工具服务端进行交互,完成各种版本管理操作。
 
有些项目的服务端源程序存放在UNIX/LINUX的服务器上,为了对这类源程序进行版本管理,可以在UNIX/LINUX服务器上安装版本管理软件的客户端程序。通过图形或命令行界面完成各种版本管理操作。
 
8.2.5          SCM管理终端的访问关系
SCM管理员使用SCM管理终端,通过图形客户端或命令行方式,连接到SCM服务器对版本管理服务器进行部署和日常维护。
SCM管理员也可以直接登录到SCM服务器对版本管理服务端进行部署和日常维护。但为了保证SCM服务器的安全性,这种管理维护方式应该尽量少用。
 
版本管理服务端和集中式档案管理服务端之间没有直接的交互接口,当版本管理服务端有项目封版时,SCM管理员就对封版的项目进行一次手工归档操作。
 
出于安全性的考虑,在SCM实施初期外网无法访问部门SCM服务器。所以,异地项目组无法连接到部门SCM服务器完成各种版本管理操作。解决方法是异地项目组根据自己项目的实际情况,在异地架设版本管理服务端独立实现各种版本管理操作。
当异地项目组开发解决回到公司时,项目组成员和SCM管理员一起,把异地版本管理服务器中与项目相关的各种版本信息迁移到部门内部SCM服务器的版本管理服务端上。同时把源代码、文档等档案资料的最新版本归档到档案管理服务端中。
 
 
异地项目组根据项目开发工具和开发平台的实际需要架设版本管理软件,在项目开发过程中,独立完成所有的版本管理操作。
当项目组开发完成回到公司后,项目组成员和SCM管理员一起,把异地版本管理服务器中项目的版本信息迁移到部门SCM服务器的版本管理服务端中。同时把源代码、文档等档案资料的最新版本归档到版本管理服务端中。
 
异地项目组成员可以使用异地开发工作站上安装的各种版本管理工具的客户端与异地版本管理工具服务端进行交互,完成各种版本管理操作。
 
 
有些项目的服务端源程序存放在UNIX/LINUX的服务器上,为了对这类源程序进行版本管理,可以在UNIX/LINUX服务器上安装版本管理软件的客户端程序。通过图形或命令行界面完成各种版本管理操作。
 
 
异地项目组成员使用异地版本管理服务器管理终端,通过图形客户端或命令行方式,连接到异地版本管理服务器对异地版本管理服务器进行部署和简单的日常维护工作。
 
 
本地项目组启动新项目时需要完成以下流程中提到的各个步骤:
1.         规划项目文档的目录结构。
随着项目的推进,项目涉及的各种文档数量会越来越多。具有一个清晰的目录结构来分类存放各种项目文档就显得尤为重要。
SCM管理员和项目经理,可以根据其它项目的文档目录结构和自己的项目相结合来规划文档的目录结构。
虽然,在项目初期涉及的文档种类较少,但建议这个时候应尽可能的把目录结构规划的完整。

2.         规划客户端源代码的目录结构。
运行在Windows平台下的客户端,一般都有集成开发工具(IDE)来管理项目包含的各种文件。开发人员可以在IDE建立的目录下建立一些子目录,从而根据自己的需要对项目文件进行细分。
同样,建议在项目之初,就把客户端源代码的目录结构规划得尽可能成熟完整。
另外,需要弄清楚每一种文件的作用,这样才能知道哪些种类的文件是需要进行版本管理的,哪些种类的文件是不需要进行版本管理的。通常,版本管理那些源文件和工程描述文件,而IDE自动生成的中间文件和最终文件都不需要进行版本管理。对文件的筛选需要SCM管理员和项目经理协作完成。

3.         规划服务端源代码的目录结构。
通常服务端源代码没有IDE可以选择,所以,服务端源代码的目录结构就需要自己来规划。当然,可以参考其它同类项目的服务端源代码目录结构。然后,根据自己项目的实际情况,进行一些修改。
同样,需要弄清楚每一种文件的作用。然后SCM管理员和项目经理协作完成对文件的筛选工作。

4.         把源代码和文档的目录,在版本管理服务端上进行签入操作。
源代码和文档的目录创建完毕,对客户端和服务端的源代码都创建了相应的初始工程后。SCM管理员就能和项目经理一起对源代码和文档进行签入操作。

5.         对版本管理服务端中的源代码和文档进行签出、更新、提交等操作。
项目的源代码和文档都成功签入版本管理服务器之后,项目组的设计人员、开发人员和测试人员都能够签出源代码和文档,进行相应的开发工作。当他们对源代码和文档进行了修改之后,通过更新、提交等相关操作完成版本管理工作。

 
日后,在项目实践过程中,根据不同的开发工具和不同的版本管理软件,要对流程的细节进行整理。
 
本地项目组完成项目开发,对项目进行封版操作时需要完成以下流程中提到的各个步骤:
1.         整理开发工作站上的源代码和文档
本地项目组的所有成员(包括:项目经理、设计人员、开发人员和测试人员)必须对项目所有使用到的开发工作站进行整理,保证项目的源代码和文档的最新版本都提交到版本管理服务器上。
SCM管理员必须对整个过程进行监督。
 
2.         整理开发服务器上的源代码和文档
本地项目组的所有成员(包括:项目经理、设计人员、开发人员和测试人员)必须对项目所有使用到的开发服务器进行整理,保证项目的源代码和文档的最新版本都提交到版本管理服务器上。
SCM管理员必须对整个过程进行监督。
 
3.         对版本管理服务器上项目的源代码和文档进行封版
SCM管理员与本地项目组成员一起,根据具体的版本管理软件对项目的源程序和文档进行封版操作。
 
4.         对项目源程序和文档进行归档操作
SCM管理员与本地项目组成员一起,把版本管理服务器上已封版的项目源代码和文档等资料,归档到集中式档案管理服务器上。归档操作,应该尽量保持源代码和文档的目录结构不被改变。
 
日后,在项目实践过程中,根据不同的版本管理软件和档案管理软件,要对流程的细节进行整理。
 
流程非常简单。本地开发人员通过图形化客户端或浏览器,就能访问档案管理服务器。然后,使用SCM管理员提供的帐号登录之后,就能完成权限规定的各种操作。比如:取得其它项目的文档和代码、对这些文档和代码进行全文搜索等操作。
 
流程非常简单。本地开发人员通过图形化客户端或浏览器,登录到档案管理服务器之后,就能把自己整理的技术资料上传到相应的分类下。
SCM管理员定期会对新上传的资料进行检查,对不符合要求的技术资料,会要求创建人进行修改。
 
异地项目组启动新项目时需要完成以下流程中提到的各个步骤:
1.         架设异地版本管理服务器
SCM管理员根据实际的项目需要架设相应的版本管理服务器,并且把版本管理的相关知识传授给项目组中日后负责版本管理服务器维护的人员和项目组其它成员。

2.         规划项目文档的目录结构。
随着项目的推进,项目涉及的各种文档数量会越来越多。具有一个清晰的目录结构来分类存放各种项目文档就显得尤为重要。
SCM管理员和项目经理,可以根据其它项目的文档目录结构和自己的项目相结合来规划文档的目录结构。
虽然,在项目初期涉及的文档种类较少,但建议这个时候应尽可能的把目录结构规划的完整。

3.         规划客户端源代码的目录结构。
运行在Windows平台下的客户端,一般都有集成开发工具(IDE)来管理项目包含的各种文件。开发人员可以在IDE建立的目录下建立一些子目录,从而根据自己的需要对项目文件进行细分。
同样,建议在项目之初,就把客户端源代码的目录结构规划得尽可能成熟完整。
另外,需要弄清楚每一种文件的作用,这样才能知道哪些种类的文件是需要进行版本管理的,哪些种类的文件是不需要进行版本管理的。通常,版本管理那些源文件和工程描述文件,而IDE自动生成的中间文件和最终文件都不需要进行版本管理。对文件的筛选需要SCM管理员和项目经理协作完成。

4.         规划服务端源代码的目录结构。
通常服务端源代码没有IDE可以选择,所以,服务端源代码的目录结构就需要自己来规划。当然,可以参考其它同类项目的服务端源代码目录结构。然后,根据自己项目的实际情况,进行一些修改。
同样,需要弄清楚每一种文件的作用。然后SCM管理员和项目经理协作完成对文件的筛选工作。

5.         把源代码和文档的目录,在版本管理服务端上进行签入操作。
源代码和文档的目录创建完毕,对客户端和服务端的源代码都创建了相应的初始工程后。SCM管理员就能和项目经理一起对源代码和文档进行签入操作。

6.         对版本管理服务端中的源代码和文档进行签出、更新、提交等操作。
项目的源代码和文档都成功签入版本管理服务器之后,项目组的设计人员、开发人员和测试人员都能够签出源代码和文档,进行相应的开发工作。当他们对源代码和文档进行了修改之后,通过更新、提交等相关操作完成版本管理工作。

 
日后,在项目实践过程中,根据不同的开发工具和不同的版本管理软件,要对流程的细节进行整理。
 
10.6     异地项目组对项目进行封版操作的流程
异地项目组完成项目开发,对项目进行封版操作时需要完成以下流程中提到的各个步骤:
1.         整理开发工作站上的源代码和文档
本地项目组的所有成员(包括:项目经理、设计人员、开发人员和测试人员)必须对项目所有使用到的开发工作站进行整理,保证项目的源代码和文档的最新版本都提交到版本管理服务器上。
SCM管理员必须对整个过程进行监督。
 
2.         整理开发服务器上的源代码和文档
本地项目组的所有成员(包括:项目经理、设计人员、开发人员和测试人员)必须对项目所有使用到的开发服务器进行整理,保证项目的源代码和文档的最新版本都提交到版本管理服务器上。
SCM管理员必须对整个过程进行监督。
 
3.         版本管理服务器的迁移
SCM管理员与本地项目组成员一起,把异地版本管理服务器上项目的源代码、文档和相应的版本信息迁移到部门SCM服务器的版本管理服务器中。然后,根据具体的版本管理软件对项目的源程序和文档进行封版操作。
 
4.         对项目源程序和文档进行归档操作
SCM管理员与本地项目组成员一起,把版本管理服务器上已封版的项目源代码和文档等资料,归档到集中式档案管理服务器上。归档操作,应该尽量保持源代码和文档的目录结构不被改变。
 
日后,在项目实践过程中,根据不同的版本管理软件和档案管理软件,要对流程的细节进行整理。
 
由于外网无法访问部门SCM服务器,所以异地开发人员想查阅档案管理服务器上的资料时,可以请SCM管理员帮忙。SCM管理人员根据请求人的权限和要求,取得相应的资料之后,通过E-MAIL等方式发送给请求人。整个过程应该确保资料的安全性和保密性。
 
由于外网无法访问部门SCM服务器,所以异地开发人员想向档案管理服务器上传技术资料时,可以请SCM管理员帮忙。SCM管理员对技术资料进行检查之后,根据请求人的要求,上传到相应的分类下。
 
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值