(计算机软件与理论专业论文)支持过程管理的配置管理工具的研究与实现.pdf_第1页
(计算机软件与理论专业论文)支持过程管理的配置管理工具的研究与实现.pdf_第2页
(计算机软件与理论专业论文)支持过程管理的配置管理工具的研究与实现.pdf_第3页
(计算机软件与理论专业论文)支持过程管理的配置管理工具的研究与实现.pdf_第4页
(计算机软件与理论专业论文)支持过程管理的配置管理工具的研究与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 摘要 软件配置管理作为软件开发过程管理和过程改进的基础,开始于软件开发项 目之初结束于软件被淘汰之时,支持和控制着整个软件生命周期。当今- 软件开 发机构不但面临日新月异的技术更新的压力,同时更面临开发管理所带来的软件 成本、软件质量等的困扰。由于软件规模的扩大以及业务领域的多样性等原因软 件开发过程的管理和控制也越来越复杂,开发过程中所产生的大量中间产品( 开 发文档及程序等) 也越来越难以管理。解决此问题的途径就是加强软件配置管理, 然而当前的软件配置管理系统中对过程的支持还存在很多不足,为了提高软件配 置管理对过程的控制和管理能力,增强软件配置管理对各种不同开发过程的可适 应性,在软件配置管理中引入过程管理的思想和机制是非常有必要的。 本文首先从讨论配置管理的基本概念入手,针对已有的配置管理系统存在的 问题进行研究,从而提出在配置管理中支持过程管理的必要性,重点研究并设计 了支持过程管理的软件配置管理系统,最后实现了此系统的部分功能。此系统主 要是用开发库、受控库、产品库三类库控制配置项的进化;此外采用工作流的调 度来支持整个配置管理的流程,实现了完善、灵活的配置项管理、基线管理、变 更管理以及审计管理等功能;此外版本管理采用w i n c y s 来进行管理,有效的提高 了版本的利用率,为版本的演进提供了很好的依据。此系统基于n e t 的框架,采 用b s 模式。数据库采用s q ls e r v e r 。配置管理系统的实现,使软件生产企业提 高质量管理水平、降低开发成本具有了可操作性,实现了软件开发过程的规范化。 关键词:过程管理;配置管理;配置项;工作流 英文摘要 r e s e a r c ha n di m p l e m e n t a t i o no fs o f t w a r ec o n f i g u r a t i o nm a n a g e m e n t t o o l sb a s e do np r o c e s sm a n a g e m e n t a b s t r a c t a st h ef o u n d a t i o no fs o f t w a r ed e v e l o p m e n tp r o c e s sm a n a g e m e n ta n di m p r o v e m e n t , s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n ts t a r t sw i t ht h eb e g i n n i n go fd e v e l o p m e n ta n d f i n i s h e sw h e nt h es o f t w a r ei se l i m i n a t e d , s u p p o r t sa n dc o n t r o l st h ew h o l es o f t w a r el i f e c y c l e t h em o d e r ns o f t w a r ed e v e l o p m e n to r g a n i z a t i o n i s f a c i n gt h ep r e s s u r e o f c o m p e t i t i o nw h i c hi n t e n s i f i e su n c e a s i n g l y ,s i m u l t a n e o u s l ys u f f e r st h ec o s ta n dq u a l i t y o fs o f t w a r ei t s e l la tt h es a m et i m e ,t h ep r o c e s so fs o f t w a r ed e v e l o p m e n ti sm o r ea n d m o r ec o m p l e x ,a n dt h em a n a g e m e n to fm i d d l ep r o d u c t s ( d e v e l o p m e n td o c u m e n t sa n d p r o c e d u r ea n ds oo n ) p r o d u c e di nt h ed e v e l o p m e n tb e c o m e s h a r d e rt oc o n t r 0 1 t h ew a y t os o l v et h ep r o b l e mi st os t r e n g t h e nt h ec o n f i g u r a t i o nm a n a g e m e n t h o w e v e ri nt h e c u r r e n ts o f t w a r ec o n f i g u r a t i o nm a n a g e m e n ts y s t e mt h es u p p o r ta l s oh a sv e r ym a n y i n s u f f i c i e n c i e st ot h ep r o c e s s ,i no r d e rt oe n h a n c et h ea b i l i t yo fp r o c e s sc o n t r o l l i n g a n dm a n a g e m e n to fs o f t w a r ec o n f i g u r a t i o n ,a n dt oe n h a n c et h ea d a p t a t i o no fd i f f e r e n t d e v e l o p m e n tp r o c e s s ,i t sn e c e s s a r yt oa d d t h em a n a g e m e n to fp r o c e s st oc o n f i g u r a t i o n m a n a g e m e r i t t h i st h e s i sf i r s ti n t r o d u c e ss o m eb a s i cc o n c e p t so fc o n f i g u r a t i o nm a n a g e m e n t ,a n d t h e nd o e st h er e s e a r c ho np r o b l e m so fc u r r e n tc o n f i g u r a t i o nm a n a g e m e n ts y s t e m s ,a n d b r i n g su p t h en e c e s s i t yo fs u p p o r t i n gt h ep r o c e s sm a n a g e m e n ti nc o n f i g u r a t i o n m a n a g e m e n t ,r e s e a r c h e sa n dd e s i g n st h es o f t w a r ec o n f i g u r a t i o nm a n a g e m e n ts y s t e m b a s e do np r o c e s sm a n a g e m e n t ,a n di m p l e m e n t st h ep a r tf u n c t i o n so ft h es y s t e m t h i s s y s t e mu s i n gd e v e l o p m e n tl i b r a r y ,c o n t r o l l e dl i b r a r ya n dp r o d u c t i o nf i b r a r yc o n t r o lt h e e v o l u t i o no fc o n f i g u r a t i o nm a n a g e m e n ti t e m ;u s i n gt h ew o r k f l o wt os u p p o r tt h ef l o wo f t h ew h o l ec o n f i g u r a t i o nm a n a g e m e n t ;i m p l e m e n t st h ef u n c t i o n so fp e r f e c t , f l e x i b l e c o n f i g u r a t i o nm a n a g e m e n t 、 b a s e l i n em a n a g e m e n t 、 c h a n g em a n a g e m e n ta n da u d i t m a n a g e m e n t ;f u r t h e r m o r e ,t h em a n a g e m e n to fv e r s i o nu s e sw i n c v s t om a n a g e ;t h i s j o bp r o m o t e st h eu s a b i l i t yo fv e r s i o n ,a n dp r o v i d e st h ee v i d e n c e sf o re v o l u t i o no f v e r s i o n i m p l e m e n t a t i o no ft h i st h e s i sl a y st h ef o u n d a t i o no fs t a n d a r d i z e dm a n a g e m e n t 茎苎塑要 o ft h ee n t e r p r i s es o f t w a r ep r o d u c t i o n t h i ss y s t e mb a s e so n n e t , a n db sm o d e l ,a n d d a t a b a s ei ss o ls e r v e r t h ei m p l e m e n t a t i o no ft h ec o n f i g u r a t i o nm a n a g e m e n ts y s t e m m a k e si tp o s s i b l et h a te n h a n c i n gt h eq u a l i t ym a n a g e m e n ta b i l i t yo fs o f t w a r ee n t e r p r i s e a n dt or e d u c et h ed e v e l o p m e n tc o s t ,h a sr e a l i z e dt h es t a n d a r d i z a t i o no fs o f t w a r e d e v e l o p m e n tp r o c e s s k e yw o r d s :p r o c e s sm a n a g e m e n t :c o n f i g u r a t i o nm a n a g e m e n t ;c o n f i g u r a t i o n i t e m ;w o r k f l o w 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文:童挂过程萱堡殴醒量篮理王县的鲤峦皇塞丑:除论文中 已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中 以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开 发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:弥专磊2 d 0 7 年岁月2 于日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于;保密口 不保密日 诸在以上方框内打“”) 论文作者签名:际t 磊导师签名:彳他 日期:j 叼年3 月2 铲日 支持过稃管理的配置管理工具的研究与实现 第1 章绪论 1 1 选题背景和意义 现代软件开发机构正面临着不断激化的竞争压力,同时又遭受自身管理所带 来的软件成本、质量等问题的困扰。与此同时,软件的开发过程也越来越复杂, 开发中所产生的大量中间产品也越来越难以管理。解决此问题的唯一途径就是加 强软件配置管理。软件开发机构若想从初始的混乱状态,过渡到可重用、可管理 的有序化状态,进而上升到更高的成熟度水平,就需要采取一些方法来规范软件 开发过程,进行有效的软件过程管理,并且提供相应的工具对其进行支持。 早在7 0 年代初期,人们就提出了软件配置管理的概念,研究并实现了第一代 软件配置管理工具。这些软件配置管理工具通过在特定的时刻标识一个软件系统 的配置,即一组中间软件产品及描述,系统地控制对配置的更改,并在整个软件 生命周期中很好地完成了维护配置的完整性和可跟踪性【1 1 。 软件配置管理是贯穿于整个软件过程的质量保证活动。它是一种对软件配置 修改进行标识、组织和控制的技术,其作用是协调软件开发,减少由变更而引起 的混乱,从而提高软件生产效率,确保软件质量。随着软件开发规模的日益扩大, 软件配置管理日益成为软件开发过程中的关键要素,是c m m - 2 级( 可重复级) 的一个关键过程域。当前,软件过程工程的发展对软件配置管理提出了新的要求。 传统配置管理系统的过程支持能力比较弱,而且它们的版本管理模型是基于文件 的,不适应基于构件的软件开发。为提高软件配置管理对过程的控制和管理能力, 增强其对各种不同开发过程的可适应性,把过程管理的思想和机制引入到配置管 理中是很有必要的。本文正是针对这个问题来进行研究的。 1 2 国内外研究现状 软件配置管理是软件开发实施规范化、标准化、工程化的重要管理手段。国 外关于配置管理的研究相当多,也出现了一些产品和原型系统。其中具有代表性 的软件配置管理产品有r a t i o n a l 公司的c l e a rc a s e ,p l a t i n u m 公司的c c c h a r v c s t , 第1 章绪论 m i c r o s o f t 的v i s u a ls o u r c e s a f e 等 2 1 。配置管理系统主要有格勒诺布尔大学的a d d e , c o m p a q 系统研究中心的v e s t a 等【】。近年来出现了分布式、多层次软件体系以 及基于大粒度软件构件技术的开发方法。为适应这些新程序的开发需要,工具开 发者也在不断的推陈出新,不断的改进软件配置管理工具的功能。m m 开发的系 统s t e l l a t i o n 加强了对团队成员协作的支持并且支持分布式开发,l s r i m a g 提 出f e d e r a t i o n 方法,提高软件配置管理的柔性以满足不同层次用户的需求。 国内目前对软件配置管理的研究还很少,其重要性还未被普遍认识。随着对 外技术合作的增加,越来越多的人认识到了软件配置管理的重要性,许多人在积 极倡导,职能部门、有关工厂、研究所都已开始对各生产单位提出这方面的要求, 并着手开展了一些工作。北大软件工程研究所正在研究基于构件的配置管理并开 发了相应的软件配置管理系统j b c m 5 1 ,华中理工大学正在进行集成的配置管理系 统的研究并开发软件配置管理系统h s c m s n ,上海复旦大学正在开发的可变粒度 配置管理工具w i n g c m 7 。 围绕配置管理,世界上一些致力于软件工程研究的组织或公司推出了各种配 置管理工具软件如p v c s 、c l e a rc a s e 等,另外还有一些自由软件,如r c s 、c v s 等。这些配置管理工具面向软件规范化、工程化、自动化的需要,解决实际工作 中的问题,帮助开发团队提高科学管理水平,从而提高工程效率,降低工程成本。 在国际市场上,软件配置管理工具的开发、使用已有多年了,软件配置管理 工具的发展经历了三代”1 】: 第一代软件配置管理系统仅仅是基于文件的版本控制工具。有的只是对源对 象提供版本控制,如s c c s ;有的则提供了对导出对象进行版本控制,如r c s 。这 些都是一些面向开发而非面向管理的、简单的、独立的工具。 第二代配置管理系统是为管理大规模软件开发而设计的。在这种大规模软件 开发中,数据通常分布在许多不同的地方。如d s e e 不仅实现了版本控制、系统 建模等功能,而且还能够提供需要完成任务的清单以及已经完成任务的清单,并 且还能将特殊事件通知相关用户。但这些工具仅是支持编码阶段的工具。第一代 和第二代配置管理系统,作为一种支持开发的工具,提供了帮助开发者对软件产 支持过程管理的配置管理工具的研究与实现 品进行协作变更的功能。但是,软件配置管理系统还应该在某种程度上支持软件 开发的管理功能,即对软件产品提供变更控制的功能。 第三代配置管理系统已经发展成为面向管理的、大型的、复杂的配置管理系 统,如c l e a rc a s c 版本管理的对象可以是文件,也可以是目录。与第一代、第二代 配置管理系统相比,其版本管理的对象有了很大的扩展。但其管理对象也仅是文 件及目录,对支持过程管理的软件开发支持的不够。 通过总结分析,当前的配置管理工具普遍存在以下问题: 1 1 缺乏自动跟踪与驱动变更的能力。 2 ) 在配置开发、管理过程中,应严格遵循g b ,i 1 2 5 0 5 9 所建议的按三类库( 软 件开发库、软件受控库、软件产品库1 进行开发和管理。但现在的配置管理工具中 有的并没有完全按照国际的建议进行管理。 3 1 传统意义上的软件配置管理主要着重于软件的版本管理,缺乏软件过程支 持。 钔缺乏对变更决策提供量化分析。 1 3 研究内容 本文通过分析传统的配置管理系统的不足,提出了在配置管理系统中支持过 程管理的必要性,并在此基础上设计并实现了支持过程管理的软件配置管理系统。 本文的研究主要从以下几点展开: 1 、软件配置管理:首先讨论了配置管理的定义、配置管理的相关概念,其次 研究了配置管理的关键活动,最后论述了配置管理系统的功能和作用。 2 、支持过程管理的软件配置管理系统:传统的配置管理系统由于对软件过程 支持的力度不够,常常是软件产品不能按时完成、成本超出预算的重要原因之一。 为了解决这些问题本文提出了在配置管理系统中支持过程管理的重要思想。 3 、支持过程管理的配置管理系统的设计与实现:在深入研究了配置管理相 关理论以及在配置管理系统中支持过程管理重要性的基础上,设计并实现了一个 支持过程管理的配置管理系统,本系统主要通过控制配置项在三类库( 开发库、 第1 章绪论 受控库和产品库) 中的数据流动来标识配置项,采用工作流的调度来支持整个配 置管理的流程。本系统基于n e t 框架开发,采用b s 模式,实现了完善、灵活的 配置项管理、基线管理、变更管理以及审计管理等功能。 1 4 论文的组织结构 本论文共分为5 章: 第1 章绪论,介绍了本课题的研究背景和意义、配置管理工具的国内外研究 现状以及本文的主要研究工作和论文的组织结构。 第2 章介绍了软件配置管理的理论基础。首先从软件配置管理的定义出发, 介绍了有关软件配置管理的基本概念,然后讨论了软件配置管理的关键活动以及 软件配置管理系统的功能和作用。 第3 章介绍了支持过程管理的软件配置管理。主要介绍了过程管理的提出、 过程管理的相关理论以及过程支持的重要性。最后介绍了软件配置管理的功能要 求。 第4 章介绍了支持过程管理的配置管理系统的分析与设计。首先介绍了配置 管理系统的分类、典型的配置管理工具,其次介绍了支持过程管理的配置管理系 统的功能、体系结构以及系统的组成模块,最后给出了本系统的数据库设计,并 介绍了实现本系统的关键技术。 第5 章详细介绍了支持过程管理的配置管理系统的实现。主要介绍了开发模 式的选择、开发技术的选择、系统架构以及部分功能视图。 支持过程管理的配置管理工具的研究与实现 第2 章软件配置管理 2 1 软件配置管理的相关概念 2 1 1 软件配置管理的定义 软件配置管理( s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n t ) 通常缩写为s c m 。软件 配簧管理有多种定义,可以从以下几个角度理解和掌握它的含义【1 2 删: 从i e e e 7 2 9 1 9 8 3 标准中,软件配置管理包括:标识( i d e n t i f i c a t i o n ) 、控制 ( c o n t r 0 1 ) 、状态统计( s t a t u sa c c o u n t i n g ) 、审计和审查( a u d i ta n dr e v i e w ) 、生产 ( m a n u f a c t u r e ) 、过程管理( p r o c e s sm a n a g e m e n t ) 、小组协作( t e a mw o r k ) 。该标准中 给出的软件配置管理定义是识别和定义系统中配置项的过程,通过配置管理可以 在生存周期中控制配置项的变更,记录并报告配置项及变更需求的状态,检验配 置项的完整性和正确性。 从o b t1 1 4 5 7 角度,软件配置管理是标识和确定系统中配置项的过程,在系 统整个生存周期内控制这些配置项的投放和变更,记录并报告配置项的状态和变 更要求,验证配置项的完整性和正确性,软件配置管理本身既是一个过程又是一 套规范。 从s w c m m 角度,在1 9 8 6 年一1 9 9 1 年期间,美国卡内基梅隆大学的软件 工程研究院( c m u s e i ,s e i ) 在建立软件能力成熟度模型( s w c m m ) 的过程中,基 于对许多开发环境的软件配置管理功能的研究和评价,定义了执行软件配置管理 的目标和所需的一系列关键活动,s w c m m 将软件配置管理作为第二级的一个关 键过程域,它是软件过程的关键要素,已经成为软件生存周期中的重要控制过程。 综上所述,软件配置管理是指一套管理软件开发和软件维护以及其中各种中 间软件产品的方法和规则,它通过在特定的时刻选择软件配置( 一组中间软件产 品及描述) ,系统地控制对配置的修改,并在整个软件生命周期中维护配置的完 整性和可跟踪性。 第2 章软件配置管理 2 1 2 软件配置项 软件过程的输出信息主要包括程序、数据结构和文档,组成上述信息的所有 项目构成一个软件配置,其中每一项称为一个软件配置项( s c i ) 1 2 1 j ,它是置于软 件配置管理下的实体元素,包括各种管理文档和技术文档、源代码及其可执行代 码、运行时所需的各种数据及相应的存储介质等,均可构成软件配置项,它们经 过评审和检查通过后进入软件配置管理。随着软件过程的进展,软件配置项迅速 增长。软件配置管理的目的是在软件项目的整个生存周期内建立和标识软件配置 项,并对其进行管理和控制,维护其完整性、一致性和可跟踪性。 2 1 3 基线 软件配置管理包括了在软件生命周期的时间分散点上对各配置项进行标识, 并对它们的修改进行控制的过程。在一个开发阶段结束或一组功能开发完成后, 要对相应的配置项进行基线化并形成各类基线。在配置管理系统中,基线就是一 个或一组配置项在其生命周期的不同时间点上通过正式评审而进入正式受控的一 种状态,而这个过程被称为“基线化” 2 2 1 。每一个基线都是下一步开发的出发点 和考查点。每个基线都将接受配置管理的严格控制,对其进行修改将严格按照变 更控制要求的过程进行。在一个软件开发阶段结束时,上一个基线加上增加和修 改的基线内容形成下一个基线,这就是“基线管理”的过程,因此基线具有以下 属性: ( 1 ) 通过正式的评审过程建立。 ( 2 ) 基线存在于基线库中,对基线的变更接受更高权限的控制。 ( 3 ) 基线是进一步开发和修改的基准和出发点。 图2 1 表示了最常见的软件基线。 图2 1 软件基线 f i g 2 1 s o f t w a r eb a s e l i n e 支持过程管理的配置管理工具的研究与实现 2 1 4 版本 源文件是一个软件最为重要的组成单元之一,因此对源文件的管理也就成为 软件组成单元管理的最重要的一环,是进行高效的软件开发的关键所在。对源文 件的标识包括文件名和版本两个基本方面。版本作为源文件的一个标识部分,软 件开发人员在对它的引用过程中关心的实际上是该版本可以给出什么内容的源文 件。因此,版本实际上是一种抽象,用来定义一个具体实例应该具有什么样的内 容和属性。随着软件的开发,源文件的版本也不断的演变,这些不同的版本便形 成了一个源文件的版本空间。 2 1 5 软件配置库 软件配置库又被称为软件受控库,是指在软件生命周期的一个阶段结束时, 存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读 信息的斟驯。软件配置管理就是对软件配置库中的各软件进行管理。对软件配置 库的要求首先是安全可靠性,必须保证软件配置库中的内容不被任意删除,修改, 保证软件配置库不被非法用户获取到;其次是完整性,要保证各阶段的基线、各 配置项的完整性;再次要能够对软件配置库进行备份和恢复,在正常的情况下做 好每日或每周的备份,保证在出现异常的情况下,能够方便地进行恢复。 2 1 6 配置状态报告 配置状态报告( c s r ) 是软件配置管理的一项任务,其目的是记录配置的状态和 保证基线产品及其变更建议的历史,并使相关人员了解配置和基线状况。它主要 描述软件配置项的状态、变更的执行者、变更时间和产生的影响【2 5 1 。配置状态报 告的结果存入联机数据库,供软件开发人员或维护人员按关键字查询变化信息, 此外应定期生成配置状态报告,并允许管理者和开发者评估重要变更。 2 1 7 配置审核 确定变更是否正确实施有正式技术审核和软件配置审核两种措施【捌。正式技 术审核的目的是在任何软件表示形式中发现功能、逻辑或实现的错误,证明审核 的软件已满足需求,保证软件符合定义标准,以一致方式开发软件,使项目易于 第2 章软件配置管理 管理。因此,正式技术审核关注己变更的配置对象的技术正确性、审核者评估软 件配置项的一致性、遗漏及潜在的副作用。软件配置审核关注的是正式技术审核 中未考虑的因素,作为技术审核的补充措施,确保软件变更被正确的实施。 2 2 软件配置管理的关键活动 软件配簧管理包括配置标识、版本控制、变更控制、状态报告和审核四部分 e 2 7 - 3 创,贯穿整个软件生命周期,配置标识是在系统演化过程中标识其中的中间软 件产品;版本控制记录每个配置项的发展历史,并控制基线的生成;变更控制包 括在整个生命周期中控制中间软件产品的变化;状态报告记录和报告软件的变化 过程,审计控制用于保证软件产品是依照需求、标准和合同开发出来的。软件配 置管理的关键活动如图2 2 所示: 图2 2 软件配置管理活动 f i g 2 2a c t i v i t yo fs o f t w a r ec o n f i g u r a t i o n 支持过程管理的配置管理工具的研究与实现 2 2 1 配置标识 对于s c m 计划中的每个c s c i ,必须为其软件技术文档、代码和媒体建立配 置标识。最初批准的配置标识建立三个基线,对其随后的变更进行控制。除了以 上的正式基线外,在软件开发过程中还产生许多其它的阶段软件工作产品s w p ( s o f t w a r ew o r kp r o d u c t ) ,如软件设计文档、软件测试规格说明、最初源代码等, 把这些在开发期间的软件及其相关技术文档称为开发配置。开发配置描述软件设 计和实现,也需要予以配置控制。对基线和开发配置都须予以标识( 包括标识和变 更标识1 ,并将标识放置在配置管理库内进行集中控制。配置标识的总体原则是, 保证配置管理工具检索便利,使项目组成员容易记住标识规则,同时要确保组织 标识规则的一致性。 2 2 2 版本控制 版本控制是软件配置管理中不可缺少的功能。所有置于配置库中的元素都应 自动予以版本的标识,并保证版本命名的唯一性。版本在生成过程中,自动依照 设定的使用模型自动分支、演进。除了系统自动记录的版本信息以外,为了配合 软件开发流程的各个阶段,我们还需要定义、收集一些元数据( m e t a d a t a ) 来记录 版本的辅助信息和规范开发流程,并为今后对软件过程的度量做好准备。当然如 果选用的工具支持的话,这些辅助数据将能直接统计过程数据,从而方便我们软 件过程改进( s o f t w a r ep r o c e s si m p r o v e m e n t ,s p i ) 活动的进行。对于配置库中的 各个基线控制项,应该根据其基线的位置和状态来设置相应的访问权限。一般来 说,对于基线版本之前的各个版本都应处于被锁定的状态,如需要对它们进行变 更,则应按照变更控制的流程来进行操作。 2 2 3 变更控制 对于大型的软件开发项目,无控制的变更将迅速导致混乱,变更控制就是通 过结合人的规范和自动化工具,以提供一个变化控制的机制。变更控制的对象主 要指配置库中的各基线配置项。变更管理的一般流程是: 舢由开发人员或系统集成员提出变更需求 第2 章软件配置管理 b ) 由s c c b ( 软件变更控制委员会) 审核并决定是否批准。 c ) 配置管理员根据s c c b 的决定临时开放相应的权限,并备案。 d ) 系统集成员执行相应的变更。 变更控制通常分为两类:一类是基线的变更控制,另一类是软件版本的变更 控制。基线的变更是指在一个软件版本的开发周期内对基线配置项的变更,主要 包括基线的应用和更新等活动。基线变更所涉及的操作主要包括基线标签的定义 和标签的使用。基线标签属于严格受控的配罱项,它的命名必须严格按照相关的 命名规范来进行。基线在建立时,按照角色职责的分工,须经s c c b 同意并正式 的将该基线的标识和作用范围通知系统集成员,由后者负责执行;基线一旦划定, 由该基线控制的各配置项的历史版本均处于锁定或严格受控状态,任何对基线位 置的变更请求都必须按变更控制流程,提交s c c b 批准,然后由系统集成员执行。 软件版本的变更是指软件版本的命名规范应事先制定,并按照开发计划予以 发布使用。在软件版本的演进过程中既需要从以前的版本中继承,又需要相对的 独立性。所以在对于子版本例如某特定用户的定制版本) 就需要对一系列配置项从 统一的开发起始基线所确定的版本上建立新的分支,然后在此分支上开发新的版 本。因此在这样的变更控制流程中,受控的对象还应包括特定的分支类型,以及 工作视图的选取规则,同时配置管理员将在这一过程中担负更多的操作职责。 2 2 4 状态报告和审核 配置状态报告是软件配置管理的一项任务,其目的是记录配置的状态和保证 基线产品及其变更建议的历史,并使相关人员了解配置和基线状况。当一个软件 配置项标识更改或变更控制审核者批准一次变更时,便生成一个配置状态报告。 它包含在整个软件生命周期中对基线所有变更的可跟踪性报告,主要描述配置项 的状态、变更的执行者、变更时间和产生的影响。 配置状态报告的结果存入数据库,管理者和开发者可以查询变化信息,也可 以评估变更,软件工程师可以看到做了哪些修改或者每个文件都包含在哪个基线 中;项目经理可以跟踪详细的问题报告和其他各种维护活动的最简单的报告,包 括事务日志、变更日志、配置项增量报告等。 支持过程管理的配置管理工具的研究与实现 审核根据需求标准或合同协议检验软件产品配置。审核告诉我们系统是否满 足需求,是否对上一版本所有的变更都加入了当前版本。配置审核的目的是检验 软件产品是否都产生并且被正确的识别和描述以及所有的变更要求是否可以根据 s c m 过程和程序解决。 2 3 软件配置管理系统的功能和作用 2 3 1 软件配置管理系统的功能 配置管理软件具有版本管理、变更管理、过程控制和权限管理等功能。其中, 版本管理主要是对变更配置项以及变更结果提供一个可跟踪的手段,避免软件开 发行为不受控或出现混乱,便于软件开发工作以基线渐进方式完成;变更管理主 要控制和协调不同责任的软件开发人员之间的交流,使得软件相关人员在有序的 环境下进行工作,避免导致团队开发效率出现不可逾越的瓶颈;过程控制主要是 在版本控制与过程管理的基础上,通过量化的数据与报表,体现软件开发的进度, 并且以用户和开发团队均认可的衡量尺度,对软件实施过程和软件功能的完整性、 正确性进行检验审计;权限管理主要针对与系统开发的相关人员的管理,控制人 员对系统资源的存取权限,保障开发工作和系统资源的安全性与稳定性。用户管 理软件正是以这些功能的具体实现来贯穿整个软件生命周期,对软件进行标识、 控制和管理的。 2 3 2 软件配置管理系统的作用 随着软件系统的日益复杂化和用户需求的多样化、软件更新的频繁化,软件 配置管理逐渐成为软件生存周期中的重要控制过程,在软件开发过程中扮演着越 来越重要的角色。一个好的软件配置管理过程能覆盖软件开发和维护的各个方面。 良好的软件配置管理能使软件开发过程有更好的可预测性,使软件系统具有可重 复性,使用户和主管部门对软件质量和开发小组有更强的信心。 软件配置管理过程是对不断演化、完善过程中的软件产品的管理过程。其最 终目标是实现软件产品的完整性、一致性、可控性,使产品最大程度的与用户需 第2 章软件配置管理 求相吻合。它通过对软件的修改和每个修改生成的软件组成部件进行控制、记录、 追踪来实现对软件产品的管理功能。 软件配置管理的最终目标是管理软件产品。软件产品是在用户不断变化的需 求驱动下不断变化的,为了保证对产品有效地进行控制和追踪,软件配置管理过 程不仅仅能对静态的、成形的产品进行管理,而且必须对动态的、成长的产品和 生产产品的过程进行管理。 正因为软件配置管理过程直接连接产品开发过程、开发人员和最终产品,这 些都是项目主管人员所关注的重点,因此软件配置管理系统在软件项目管理中起 着重要的作用。软件配置管理过程所提供的控制、报告功能可帮助项目经理更好 地了解项目的进度、开发人员的负荷、工作效率和产品质量状况、交付臼期等信 息。同时软件配冕管理过程所规范的工作流程和明确的分工有利于管理者应对软 件开发人员流动较大的情况,使新的成员可以快速实现任务交接,尽量减少因人 员流动而造成的损失。 总之,软件配置管理作为软件开发过程必要的环节和软件开发管理的基础, 支持和控制着整个软件生存周期,同时对软件开发过程的项目管理也有重要的支 持作用。一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程 有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。 2 4 本章小结 本章介绍了有关软件配置管理的基本概念,配置管理的关键活动,并讨论了 配置标识、版本控制、变更控制、状态报告和审核方面的内容。在配置标识方面, 讨论了配置标识的内容和目的;在版本控制方面,介绍了版本控制的作用和版本 控制的内容;在变更控制方面,说明了实施变更的重要性,介绍了两种变更类型: 基线的变更控制和软件版本的变更控制;在状态报告和审核方面,主要讨论了配 置状态报告的目的和任务。最后还介绍了软件配置管理系统的功能和作用。本章 的介绍为以后系统的研究与实现奠定了理论基础。 支持过稃管理的配置管理工具的研究与实现 第3 章支持过程管理的软件配置管理 3 1 过程管理 3 1 1 软件过程管理的提出 随着计算机软件技术的发展,软件的规模和复杂度不断的增加,虽然软件开 发在技术、方法和工具上都在不断的改进,但是新型软件开发方法和技术的使用 并未使软件生产率和生产质量得到有效的提高,主要体现在:软件产品不能按时完 成、超出预算的成本、以及采用新的技术和工具后其高效性难以体现等,这一直 是困扰软件企业的关键问题。渐渐地,软件生产商开始意识到问题的根源在于对 软件的生产过程管理不力,也就是说当前软件开发的主要问题不是技术问题,而 是管理问题。软件开发机构在形成一套完整而成熟的软件过程后,软件开发才能 步入正轨,才能保证在约定的期限内以固定的成本生产出客户满意的产品。一个 软件项目的成功与否,可以用三个因素来衡量:成本、进度和质量【3 1 1 。 高的生产率通常会降低成本并缩短开发周期,因此,可以认为高质量和高生 产率( q p ) 是软件项目追求的两个最主要的目标。在所有影响这两个目标的因素 中,最重要的有三个:过程、人和技术,即通常所说的质量三角。如图3 1 所示: 技术 人 过程 图3 1 质量三角 f i g 3 1t h et h r e er o l e so f q u a l i t y 对于任何软件组织来说,人始终是最为关键的因素。开发人员的水平越高、 经验越丰富,开发出高水平软件产品的概率越高。技术也是软件开发中的重要因 第3 章支持过程管理的软件配置管理 素,采用各种先进工具和方法,能够帮助项目提高生产率和软件质量,降低成本, 更好地达成商业目标。 过程是另一个影响软件项目成败的关键因素。过程定义失误、过程执行不正 确、过程管理的缺乏都会使优秀人才无法充分发挥作用,先进的软件技术无法高 效运用。为了解决软件危机的问题,专家们开始从软件过程的管理方面着手,希 望能有效地降低成本、提高质量。 从8 0 年代中期开始,在美国国防部资助下,s e i 首先提出软件能力成熟度模 型理论及其应用,并在9 0 年代正式发表为研究成果,用于指导软件企业形成并不 断地改进其过程。这一成果己经得到业界的认可,并在世界范围内得到了广泛应 用,成为事实上的软件过程改进标准。 目前国内外很多公司和研究机构都在对软件过程管理进行研究并且取得了不 错的成果。2 0 0 0 年底国际标准化组织发布了2 0 0 0 版i s 0 9 0 0 0 族国际标准,该标准 鼓励在制定、实施和改进质量管理体系( q m s ) 时采用过程方法。新标准基本的八项 质量管理原则中有两项分别是“过程方法”和“管理的系统方法”。其中,过程 方法指的是将活动和相关的资源作为过程进行管理,可以更高效地得到期望的结 果。管理的系统方法指的是将相互联系的过程作为系统加以识别、理解和管理, 有助于组织提高实现目标的有效性和效率。同时标准还给出了p d c a 循环模型, 以帮助企业保持和持续改进过程能力。此外,美国卡内基梅隆大学软件工程研究 所( c m u s e i ) 提出的软件能力成熟度模型己经成为软件开发组织改进开发过程的 重要参考模型,它涵盖了有关计划、设计和管理软件开发和维护的实践,可以指 导软件机构控制开发和维护软件的过程,为软件机构描述了从混乱的,不成熟的 软件过程向成熟的、有纪律的软件过程改进的一条途径。 3 1 2 过程管理的相关理论 根据i e e e 的定义,软件工程是对软件开发、运作、维护的系统化的、有纪律 的、可度量的方法之应用,即对软件的工程化应用。 软件过程的概念是伴随着软件工程技术的成熟而逐步形成的。为了提高软件 质量和软件开发的生产率,软件人员很自然地将注意力集中到软件开发过程中所 支持过程管理的配置管理工具的研究与实现 使用的方法、技术、工具和环境等问题上,这就形成了最原始的“过程观”,这 也是“软件过程”概念的基本雏形。 从2 0 世纪7 0 年代开始,各种软件开发模型相继提出,如瀑布模型、演化模型、 螺旋模型等,为最初形成的原始的“过程观”注入了具体的内容。随着软件的应 用领域以及软件项目规模逐步扩大,软件产品复杂度越来越高,原有各种软件开 发模型的局限性以及软件管理方面的问题逐渐体现出来。在这种情况下,人们提 出了一种以“软件过程”为基本概念的新的软件工程概念框架。 1 9 8 4 年1 0 月召开的第一届国际软件过程讨论会上,正式提出了软件过程的概 念,并且对其赋予了明确的定义。当时给出的软件过程的定义是:软件过程是在 软件生存周期中所实施的一系列活动的集合,且每个活动可由一些任务组成。2 0 世纪9 0 年代,i e e e 进一步将软件过程扩展定义为:软件过程也称为软件生存周期过 程或软件过程组,是指软件生存周期中一系列相关过程,过程是活动的集合,活 动是任务的集合,任务则起到把输入加工成输出的作用。活动的执行可以是顺序 的、迭代的、并行的、嵌套的或者是有条件地引发的。根据i e e e 对软件过程概念 的解释,软件过程涵盖了软件采购、软件开发、软件维护、软件运作、软件获取、 软件管理、软件支持等七大类软件活动;而国际标准化组织则将这七大类活动分 为基本过程( 与软件生产直接相关的过程) 、支持过程( 有关各方按他们的支持目标 所从事的一系列相关活动) 和组织过程( 与软件生产组织相关的过程) 。软件过程的 基本成分包括:过程活动、活动中所涉及的人员、软件产品、所用资源和各种约束 条件。下面对这些软件过程的基本成分进行详细的说明。 1 ) 活动:一个活动是构成某一个完整过程的一个过程步,也即过程中的某一 个步骤,其目标是加工合作生成该活动应提交的产品。 实施者:实施者是一个过程或一个活动的执行者,它可以是有关人员或某 种相关工具。 3 ) 角色:角色是与某一活动相关的权力和责任的集合。它是一种对一个过程 或一个活动的实施者的抽象表示机制,在活动进行时由实施者来扮演。角色与实 第3 章支持过程管理的软件配置管理 施者之间存在动态映射关系,一个实施者可以扮演不同的角色,一个角色也可以 由多个实旌者扮演。 4 ) 产品:产品是进行软件过程的各项活动时所创建或修改的信息实体。产品 分为中间产品( 需求规约、设计规约、测试计划、测试用例等) 和最终产品( 如可运 行的目标码、最终提交的文档资料等) 。 5 ) 资源:资源是指参与软件过程的各项活动所需要的人、物及

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论