第一章引言-uml软件工程组织.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章引言-uml软件工程组织

第一章 引言   传统的软件配置管理建立在文件版本控制的基础之上,现代大型软件系统的开发要求在更大粒度上进行版本控制。同时,基于软件体系结构的软件开发是当前的发展趋势,也需要适应其特点的版本管理模型的支持。 1.1 版本管理模型概述 1.1.1 配置管理概念 随着软件开发规模的不断增大,一个项目中的中间软件产品的数目也越来越大,中间软件产品之间的关系也越来越复杂,对中间产品的管理也越来越困难,有效的配置管理则有助于解决这一问题。现在人们逐渐认识到,配置管理是适应软件开发需求的一种非常有效和现实的技术[1]。 配置管理是软件过程的关键要素。它是一种按规则实施的管理软件开发和维护过程及其软件产品的方法。软件配置管理系统在软件质量管理中也起着重要作用,它不仅是CMM的核心内容之一,是绝大多数软件过程工程和管理过程不可缺少的部分,也是国际标准化组织IS09000质量管理体系的核心内容之一。IEEE定义了软件配置管理(SCM)的标准[2],在这个标准中,SCM应该定义四个主要方面: 1)配置标识(configuration identification):产品、产品结构和产品中组件的标识及其类型; 2)配置控制(configuration control):控制配置项及其组件的演化; 3)配置状态统计(configuration status accounting):记录报告产品状态和变更请求,收集组件统计信息; 4)审计、审查(audits and reviews):维护产品完整性和一致性。 后来,随着异质平台开发、团队协作的出现,配置管理的定义得到进一步的扩展。SCM还包括: 5)生产(manufacture):管理产品组装和构建; 6)过程管理(process management):执行组织的过程、策略和生命周期模型; 7)团队合作(team work):支持开发者间的协作。 1.1.2 版本管理概念 版本管理是SCM的核心功能[3],版本管理的基本任务就是同时管理一个数据元素的多个版本[4]。版本管理应该具备以下的基本功能:1)创建新本版;2)通过某种选择机制来访问特定的版本;3)对版本添加用户定义的名字或标识;4)删除版本;5)维护版本间的关系;6)修改已存在的版本,这个操作一般是不允许的,至少不能是直接的;7)锁定特定版本;8)版本合并;9)赋给版本状态值和属性值;10)允许用户自定义数据对象间的关系。 为支持版本管理,需要一个合适的版本模型。该模型需要定义进行版本化的元素,版本的标识及其组织,版本的查询,版本的创建等等。版本模型可因版本化的元素,版本的组织结构、版本的粒度、面向状态的版本或者面向变更的版本、版本的选择规则的不同而不同。[5]中定义了组成版本模型的基本术语,如图1.1所示: 图1.1 版本模型基本术语 1)版本、版本元素、配置项 版本v代表着演化元素i的某一个状态。版本v可以通过表达式v = (ps, vs)来表示,ps、vs分别代表版本v在产品空间和版本空间中的状态。版本元素指由版本库维护其演化的元素。配置是指一个复杂对象的某一版本,例如:软件系统的一个配置是由需求文档、软件体系结构、程序源代码的某一版本组成。 2)增量 两个版本之间的差别称之为增量。一个版本通过对基版本使用一组变更来创建新版本就是直接增量存储。而对于内嵌增量和选择增量存储,某一元素的所有的版本是存储在一起的,因此各版本间的共同部分可以共享。内嵌增量方式通过指针指向其片断来组成一个版本,选择增量方式通过可见性表达式来决定一个版本。 3)版本演化 各版本沿着时间轴方向顺序演化称之为修订。这样的演化一般是指修改前一版本的错误。而对于各版本需要并行演化的称之为分支。 4)版本描述 面向状态的版本管理是指只关心版本元素的状态的版本管理。面向状态的版本管理通过修改和分支来描述一个版本。面向变更的版本管理通过对基线版本使用一组变更来描述一个版本。这样就可以跟踪每个版本到底执行了那些变更。 面向变更的版本管理有许多的优点: (允许基于规则的版本查询,而非以枚举的方式浏览版本树; (可以容易的获取各文件的一致性版本,而无须以手工的方式创建; (非常容易比较两个版本间的差别。 但面向变更的版本管理也存在问题: (变更的选项是线性增长的。当选项的数量超过一定值时,用户将面对繁多的选项而无法进行选择; (选项的命名一旦被确定将无法改变,这将导致以后若有类似的选项将非常难于命名;例如:假设已经存在一个“fill”的选项,如果以后需要增加一个新的“fill”选项,其命名可能就只能是“newfill”; (由于选项是属于布尔型的,其取值只能是TRUE,FALSE和UNSET。则在某些情况下,会导致大量的选项出现。例如:若需要管理一个操作系统的属性,则对每种操作系统

文档评论(0)

daoqqzhuan3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档