计算机研究生毕业论文范文-Rational工具进行软件配置管理方案的研究
目 录
随着软件产业的崛起,团队化的工作方式已成为软件开发的主流方式,然而随着软件开发人员的增加和开发环境的日益复杂,使得软件开发越来越难以管理。在实际开发中往往出现团队沟通困难,软件重用率低下,开发人员各自为政,代码冗余度高,文档不健全等问题,造成的结果是数据丢失,开发周期长,产品可靠性差,质量低劣,软件维护困难,项目风险增加等。因此,加强软件开发过程的配置管理是十分重要的。软件配置管理由于直接管理软件资源,对各方面均会产生显著的影响。
软件配置管理技术是CMM(capability maturity model,能力成熟度模型)2级(可重复级)的一个关键过程域,ISO/IEC 12207国际标准也把它作为软件生命周期过程中基本过程的重要支持过程。目前用于软件配置管理的工具有很多,IBM的Rational系列软件,无论在稳定性方面还是在性能方面口碑都很好,对于整个的软件开发过程能够提供有效的支持,其中的clearcase和clearquest工具相结合用来进行统一变更管理。
(加相关配置管理重要性的例子)
软件配置管理技术在八十年代初就应运而生了。第一代软件配置管理工具只是处理文件版本控制的工具,它们是基于单一文件的工具,它们将个独立文件改变存储在特殊的文档文件之中,一般支持恢复提交模式,并提供分支。最早的这类工具是SCCS和RCS,其它商用产品有Sun公司开发的TeamWare,以及Intelsoft公司的PVCS等,另外还有自由软件CVS。
第二代配置管理工具是基于项目数据库的,所有软件开发项目和文件的原信息与它们的文档文件分离,而储存在一个数据库中。这一代工具有基于变动请求的IBM的CMVC,面向操作的Platium公司的CCC以及SQL公司的PCMS.
第三代配置管理工具在保持了第二代工具的优点的基础上加入了“文件透明性”这一特征。最具有代表性的产品是ClearCase,它是通过一个独占的文件系统MVFS(multiversion file system,多版本文件系统)来实现文件透明性的。
这些配置管理工具在许多软件工程,如现今的MS Windows,Oracle等的开发过程中发挥了重要的作用。
在国内,随着软件工程技术的发展,已经有许多人注意到了配置管理的重要性,也有企业在开发或引进配置管理工具。如果我们要在国际的软件工程业中占有一席之地,配置管理工具的应用将是重要的一环。采用配置管理的工具可以有效地进行项目的并行开发和集成,甚至是地域上分布的开发,降低开发的风险。需要注意的是配置管理工具并不是越复杂越好,而应该选用适合于自己的配置管理工具。
本文将研究借助一个CRM系统Java化项目来研究如何使用Rational工具进行软件配置管理的解决方案,具体工作包括以下几点:
1、简要的介绍配置管理;
2、针对该CRM系统Java化项目制定配置管理计划,设定配置管理委员会的组成和职责;
3、采用Base ClearCase技术实现该配置管理计划,分别从配置管理人员和开发人员方面进行讨论实施方案;
4、采用UCM技术实现该配置管理计划,分别从配置管理人员和开发人员方面进行讨论实施方案;
5、针对项目的具体情况,讨论Base ClearCase和UCM技术的优劣;
6、研究管理license的有效方法;
7、讨论使用配置管理所带来的好处。
8、讨论实施过程中的一些技巧。
1.4本文的结构
VOB(Versioned Object Base),即版本对象库,这是SCM系统的核心,用来存储文件、目录和元数据的永久数据存储池。它能够管理任何表示为文件或目录的对象。它支持的特征包括:
(1) 可扩展的。ClearCase VOB中的元素可以从成百上千的文件演变成成千上万的文件和目录,当VOB变得很大时,一个VOB中的文件和目录可以在多个VOB间移动。一个VOB可以被分成多个VOB,多个VOB也可以相互连接。
(2) 容错性。ClearCase VOB使用内部数据库,不需要进行额外的数据库管理。
(3) 分布式。ClearCase VOB可以分布在网络的不同服务器上,对于最终用户是透明的。
(4) 可复制。这里的复制是指在不同地理位置上进行完全的复制并保持相互间的同步更新。ClearCase VOB可以在两点或多点进行复制。可复制是异地分布开发的关键。
ClearCase有两种VOB,一种是标准VOB,另一种是项目VOB(project VOB,简称PVOB),PVOB中包含与项目环境相关的对象。简言之,VOB存储和组织的对象组成了正在开发的系统,而PVOB存储的对象则用来组织和管理正在开发的项目。
定义在一个视图中可以看到哪些元素的哪些版本。对于使用UCM模型的项目,ClearCase自动生成配置规格。对于不使用UCM的项目,可以使用默认配置规格,或手工生成配置规格,还可以使用脚本生成配置规格。
在ClearCase中,工作空间被称为“视图(view)”,视图的主要目的是为开发者提供一组稳定的、一致的软件内容,在视图中可以进行变更和执行单元测试。视图依据一组配置规格定义从VOB内所有可用版本中选择文件和目录的合适版本。
ClearCase提供了两种视图,快照视图(snapshot)和动态视图(dynamic)。
快照视图将文件的拷贝从VOB中下载到视图中,使用一个数据库跟踪下载到本地工作目录中的版本,可以使用配置规格中的load语句来限制哪些元素从VOB拷贝到快照视图中。
动态视图通过一个称为“多版本的文件系统(Multiversioned File System,简称MVFS)的虚拟文件系统提供对于元素版本的存取操作,不用将元素拷贝到本地目录中,这个虚拟文件系统直接指向VOB中的元素。当在MVFS文件系统中使用编辑器的工具访问文件时,MVFS会中断文件打开命令,判断用户在什么视图中工作,再判断选择文件的哪个版本正确,然后打开文件的那个版本。动态视图是ClearCase所特有的。
由于软件开发活动的规模和复杂性,项目管理需要自动化和工具来协助组织和管理大型软件项目。ClearCase UCM拥有辅助管理和组织软件项目的对象和自动化功能,包括:项目、工作流和活动。
项目管理研究所(PMI)学院如下定义项目:
在有限资源条件下,人们用于规划、执行和控制活动而付出的努力。项目是为了创建“一个”产品或者服务而付出的“临时性”的努力。“临时性”的含义是每个项目都有明确的开始时间和结束时间。“一个”的含义是该产品或者服务在某些方面与其他的产品或者服务有明确的不同之处。在组织机构的各个层次都在进行着各种项目。项目中可能牵涉一个人或者是成百上千的人。项目可能只花费不足100个小时,也许会耗费超过100000000个小时。项目可能涉及一个机构的一个部门,也可能是跨越组织机构边界的合资或合作伙伴。项目通常是贯彻机构业务策略的要件。
ClearCase UCM中的项目代表一组独立的个人协作生成新的基线,这个基线由一个系统的一个或多个构件组成。使用ClearCase项目,其属性定义了项目范围和工作的对象以及策略,策略包括:项目分配工作的策略,工作空间(工作流和视图)的策略,还有项目成员执行哪些活动的策略。
一个工作流为其关联的一个或多个视图定义了工作配置,它包括为创建视图自动生成配置规格所需要的信息。每个项目有一个集成流(integration stream)和多个开发流(development stream)。
工作流主要有两个作用:
(1) 配置与工作流相关联的视图。他们配置视图来选择正确的文件版本,在工作流中从事项目工作。
(2) 工作流物理地存储开发人员工作在视图中的活动。
活动用于跟踪完成一项开发任务的工作。它包括一个文本标题,标题描述了任务和变更集,标题还标识了这个活动中所创建或者修改的所有版本。活动对象的主要任务就是跟踪变更集和结果。
在ClearCase中,元素(element)就是置于版本控制下的文件和目录。每个元素记录了它所代表的文件或目录的版本。这些元素版本被组织成不同的分支,分支就是版本的序列。
将被一起开发、集成、基线和发布的文件和目录聚集在一起就形成了构件,构件通过一个根目录来定义。
构件的一个版本就是一个基线。构件基线标识了构件中包含的每个元素的零或一个版本。每个基线有一个用户定义质量和晋升级别。一个公司可以使用ClearCase定义不同的测试水平并标识基线,表示每个基线已通过的测试水平。
标签(Label)是一个标签类型的一个实例,并被关联到一个元素的一个版本上。标签类型是一个冠名的标记符,用来标识一组相容的元素版本。在UCM里不需要自己创建和生成标签。
属性类型由一对数据/值构成,能够把属性(Attribute)实例关联到几乎所有的ClearCase对象上。
超链(Hyperlink)定义对象间的关系。
触发器(Trigger)是用户定义的事件,当某些ClearCase操作发生时被激活。触发器有两种不同的类型:事前触发和事后触发。事前触发的触发器在ClearCase事件发生前被激活,可以取消触发的事件,它的典型应用是强制制度;事后触发在ClearCase事件发生后被激活,它的典型应用是通知。
以上就是软件配置管理里的一些基本概念,下面将介绍一个CRM的项目,本文就是结合此项目来研究如何制定软件配置管理方案的。
本项目是国内某公司承接的一个日本公司的项目,它是将原来用ASP开发的一个客户关系管理(CRM)系统Call Center重新用JSP和目前比较流行的Struts技术里重新实现,这样使该CRM系统更好的应用于多种平台。本项目规模较大,涉及到500多个页面,而且要求新系统不能改变原系统的Oracle数据库的结构,并且要与原系统的数据库连接正常,不丢失数据。
下面根据不同的功能来划分该Call Center系统的模块结构,如表3-1所示:
表3-1 Call Center系统模块结构
Table 3-1
项目名 | 模块 |
Call Center | 登录 |
顾客检索 | |
社员检索 | |
设备检索 | |
修理检索 | |
入出库检索 | |
质量检索 | |
检查检索 | |
相关资料检索 | |
社内体制 | |
数据维护 | |
管理指标 | |
共通子画面 | |
共通模块 |
下面依次介绍各模块所包含的功能:
登录模块用来使用户进入该Call Center系统,它所包含的功能如表3-2所示。首先显示登录画面,然后用户输入账号和密码,验证正确后进入系统,否则提示用户。
表3-2 登录模块包含的功能
Table 3-2
模块名 | 功能 |
登录 | 登录画面 |
验证账号密码 | |
登录后菜单画面 |
顾客检索模块包含的功能如表3-3所示,可以指定条件来检索顾客,可以列出所有的顾客,也可以列出顾客的详细信息并且把这些信息导出成文件。
表3-3 顾客检索模块包含的功能
Table 3-3
模块名 | 功能 |
顾客检索 | 顾客检索 |
顾客一览 | |
顾客详细信息 | |
将顾客详细信息导出 |
社员检索模块包含的功能如表3-4所示,可以指定条件来检索社员,可以列出所有的社员,也可以列出社员的详细信息并且根据社员的email链接来给社员发送email。
表3-4 社员检索模块包含的功能
Table 3-4
模块名 | 功能 |
社员检索 | 社员检索 |
社员一览 | |
社员详细信息、生成email |
设备检索模块包含的功能如表3-5所示,这个模块包含的内容很多,可以检索设备各方面的信息,还可以将这些信息以多种方式导出。
表3-5 设备检索模块所包含的功能
Table 3-5
模块名 | 功能 |
设备检索 | 设备检索 |
设备一览 | |
将设备信息导出 | |
设备详细信息 | |
设备详细信息画面中的机种选择 | |
设备详细信息画面中的顾客选择 | |
设备入出库信息一览 | |
将设备入出库信息导出 | |
设备修理信息一览 | |
设备检查信息一览 | |
设备品质信息一览 | |
设备图片资料 | |
设备资料处理 | |
设备商谈信息一览 | |
设备详细商谈信息 | |
将设备详细商谈信息导出 | |
入出库详细信息画面 | |
故障信息选择 | |
上传入出库详细信息附加文件 | |
入出库信息输出菜单 | |
入出库信息输出成Excel文件 | |
入出库信息输出成Html文件 | |
将对应的详细信息用邮件发送 |
修理检索模块包含的功能如表3-6所示,其中包括查看详细的修理信息并把这些信息以Excel和Html两种文件格式输出;还可以把修理信息作为附件上传。
表3-6 修理检索模块所包含的功能
Table 3-6
模块名 | 功能 |
修理检索 | 详细修理信息 |
将修理信息输出成EXCEL文件 | |
将修理信息输出成HTML文件 | |
上传修理信息附加文件 | |
pull-down数据简易作成 | |
pull-down数据简易删除 | |
修理零部件信息处理 | |
修理工作信息处理 |
入出库检索模块包含的功能如表3-7所示,包括入出库信息的检索、列举、添加、修改等。
表3-7 入出库检索模块所包含的功能
Table 3-7
模块名 | 功能 |
入出库检索 | 入出库检索 |
入出库一览 | |
入出库号码变更 | |
将入出库信息输出 | |
详细入出库信息(新建) | |
详细入出库信息(更新) | |
附加处理文件 |
质量检索模块包含的功能如表3-8所示,包括检索质量信息以及输出等等。
表8 质量检索模块所包含的功能
Table 3-8
模块名 | 功能 |
质量检索 | 质量检索 |
详细质量信息 | |
将质量信息输出 |
检查检索模块包含的功能如表3-9所示,包括检查信息的检索、列举、添加、修改以及输出等等。
表3-9 检查检索模块所包含的功能
Table 3-9
模块名 | 功能 |
检查检索 | 检查信息检索 |
检查装置选择 | |
检查信息一览 | |
将检查信息输出 | |
详细定期检查信息(新建) | |
详细定期检查信息(修改) | |
打印检查信息 |
相关资料检索模块包含的功能如表3-10所示,包括相关资料的检索、列举、编辑以及登录等。
表3-10 相关资料检索模块所包含的功能
Table 3-10
模块名 | 功能 |
相关资料检索 | 相关资料检索 |
相关资料一览 | |
相关资料的编辑 | |
相关资料的登录 |
社内体制模块包含的功能如表3-11所示,包括社内体制的信息。
表3-11 社内体制模块所包含的功能
Table 3-11
模块名 | 功能 |
社内体制 | 社内体制表検索 |
社内体制表 | |
社内体制表输入画面 | |
工作岗位设定 | |
公司内部工作岗位选择 |
数据维护模块包括数据库中所有信息的登录、更新、修改、删除等操作。
管理指标模块用来设定各项管理参数,如表3-12所列举,还可以将这些参数输出。
表3-12管理指标模块所包含的功能
Table 3-12
模块名 | 功能 |
管理指标 | 按地区分类的顾客 |
按缴纳台数分类的顾客 | |
每月入出库件数 | |
每年入出库件数 | |
每月对应时间 | |
每年对应时间 | |
按对应时间分类的入出库件数 | |
按入出库时间分类的入出库件数 | |
每月1件对应时间 | |
每年1件对应时间 |
共通子画面模块包含了在所有模块中都可能用到的功能,比如数值输入、日期时间设定等,如表3-13所示。
表3-13共通子画面模块所包含的功能
Table 3-13
模块名 | 功能 |
共通子画面 | 数值输入 |
日期設定 | |
时间設定 |
共通模块包含了其它模块中都可能使用到的子模块等等。
| Column-name | type | length | Nullable |
1 | CardID | int | 8 | no |
2 | Name | varchar | 10 | no |
3 | CustomerID | int | 8 | no |
4 | Total | money | 8 | no |
5 | Balance | money | 8 | no |
6 | Date_rent | datetime | 8 | no |
7 | Despair_ date | datetime | 8 | no |
4.商户信息:商户编号、商户类型、地段、营业时间、培训次数
Primary key : shopid
表3.4 商户信息表
| Column-name | type | length | Nullable |
1 | ShopID | bigint | 8 | no |
2 | Shop_type | varchar | 8 | no |
3 | Area | char | 1 | no |
4 | Open_time | datetime | 8 | no |
5 | tran_times | bigint | 8 | no |
5.刷卡情况:交易号、客户编号 、卡号 、记录刷卡成功否、时间、商户编号、交易类型、消费金额、是否透支情况。
Primary key : no
Foreign key : customerid
表3.5 刷卡情况表
| Column-name | type | length | Nullable |
1 | no | int | 8 | no |
2 | CustomerID | int | 8 | no |
3 | CardID | int | 8 | no |
4 | Success | char | 1 | no |
5 | Time | datetime | 8 | no |
6 | ShopID | int | 8 | no |
7 | Shop_type | varchar | 8 | no |
8 | Cost | money | 8 | no |
9 | Despair_status | char | 1 | no |
》》》》》》》》》》》》》》》》》》》》》》》》
如果要全套计算机研究生毕业设计资料参考请访问http://www.fjcomputer.net
Copyright ©青苹果计算机论文参考 2003 |
|