已阅读5页,还剩64页未读, 继续免费阅读
(计算机软件与理论专业论文)基于过程的软件配置管理模型的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要 随着软件规模的不断扩大,软件开发管理对于提高软件开发效率和软件产品 质量的作用也越来越重要。而软件开发管理的核心是有效的软件配置管理。软件 配置管理是一种标识、组织和控制变更的技术,目的是使软件开发受控、软件错 误可跟踪,并最有效地提高生产效率。它是软件开发和维护的基础,也是软件质 量保障的重要措施。 本文首先系统介绍了国内外软件配置管理领域的研究现状、软件配置管理的 基本概念、目的及意义。在分析研究了现有软件配置管理技术的基础上,提出了 一个基于过程的软件配置管理模型。该模型主要针对当前软件配置管理系统大多 以版本控制为核心,对过程支持较弱的现状,着重研究了软件配置管理系统中对 过程支持功能的设计与实现。为突出对过程支持的特点,本模型引入了软件过程 配置的概念。整个模型共分三大模块:用户配置管理模块,软件过程配置管理模 块和软件产品配置管理模块。同时,模型还可提供公司级、项目级和开发级三个 层次的配置管理视图。对于该模型,本文逐模块、逐层次的进行了详尽地设计与 论述。最后,在此模型的基础上,运用j a v a 等开发技术及o r a c l e 数据库工具,实 现了一个基于过程的软件配置管理系统。 关键词:软件配置管理;过程支持;过程配置;p s c m 英文摘要 t h er e s e a r c ho np r o c e s s b a s e ds 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 m o d e l a b s t r a c t a l o n gw i t ht h eu n c e a s i n ge x p a n s i o no fs o f t w a r es c a l e ,s o f t w a r ed e v e l o p m e n t m a n a g e m e n tb e c o m e sm o r ea n dm o l ei m p o r t a n tf o re n h a n c i n gs o f t w a r ed e v e l o p m e n t e f f i c i e n c ya n ds o f t w a r ep r o d u c tq u a l i t y t h ec o r eo f s o f t w a r ed e v e l o p m e n tm a n a g e m e n t i se f f e c t i v 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 t s 0 1 a l ec o n f i g u r a t i o nm a n a g e m e n ti s ak i n do ft e c h n o l o g yf o rm a r k i n g ,o r g a n i z a t i o na n dc h a n g ec o n t r o l ,t h eg o a li sc a u s e s t h es o f t w a r ed e v e l o p m e n tt ob ec o n t r o l l e d ,g r f o ro ft h es o f t w a r et ob ep o s s i b l et ob e t r a c k e d ,a n de n h a n c e st h ep r o d u c t i o ne f f i c i e n c y i ti s t h ec o r n e r s t o n eo fs o f t w a r e d e v e l o p m e n ta n dm a i n t e n a n c e ,a n da l s oi sak e y f o rs o f t w a r eq u a l i t ya s s u r a n c e a tt h eb e g i n n i n go ft h i st h e s i s ,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 sp r e s e n t s i t u a t i o n sf i r ep r e s e n t e d a n dt h e nt h eb a s i cc o n c e p t ,t h eg o a la n dt h es i g n i f i c a n c eo f 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 tg o ti n t r o d u c e d a f t e ra n a l y z e dt h ep r e s e n ts i t u a t i o n o 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 ,an e wm o d e lw h i c hb a s e do np r o c e s si s p r o p o s e d s i n c ep r e s e n tm o s to ft 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 st a k e t h ee d i t i o nc o n t r o la sac o r e n e g l e c tp r o c e s ss u p p o r t , t h i st h e s i se m p h a s i z e st h ed e s i g n a n dr e a l i z a t i o no ft h ep r o c e s ss u p p o r tf u n c t i o ni ns 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 y s t e m f o rh i g h l i g h t st h ep r o c e s ss u p p o r tc h a r a c t e r i s t i c ,t h i sm o d e li n t r o d u c e st h e c o n c e p to fs o f t w a r ep r o c e s sc o n f i g u r a t i o n t h ee n t i r em o d e li sd i v i d e dt h r e em o d u l e s : u s e rc o n f i g u r a t i o nm a n a g e m e n tm o d u l e ,s o f t w a r ep r o c e s sc o n f i g u r a t i o nm a n a g e m e n t m o d u l ea n ds o f t w a r ep r o d u c tc o n f i g u r a t i o nm a n a g e m e n tm o d u l e m e a n w h i l e ,t h em o d e l c o u l dp r o v i d et h r e el e v e l so ft h ec o n f i g u r a t i o nm a n a g e m e n tv i e w s :c o m p a n yl e v e l , p r o j e c tl e v e la n dd e v e l o p m e n tl e v e l t h i st h e s i sd e s c r i b e da n dd e s i g n e dt h em o d e lb y e a c hm o d u l ea n dl e v e l f i n a l l y , b a s e do i lt h i sm o d e l ,u t i l i z i n gj a v a , o r a c l ed a t a b a s et o o l a n do t h e rd e v e l o p m e n tt e c h n o l o g i e s ,o n 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 si sr e a l i z e d k e yw o r d s :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 ;p r o c e s ss u p p o r t ;p r o c e s s c o n f i g u r a t i o n :p - s c m 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文:基士过程盟筮住醒置笪堡撞垒煎座屡班究:! 除论文中已 经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以 明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开发 表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名畅翮7 年多月勿日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于:保密口 不保密囹( 请在以上方框内打“”) 论文作者签名孙角l a 为目导 日期:加0 7 基于过程的软件配置管理模型的应用研究 第1 章绪论 1 t 引言 随着现代软件技术的发展,对于软件项目的需求日益复杂而且变更频繁,项 目的开发模式已经由昔日的手工作坊式的开发转变为规模化、团队式的开发,当 开发团队发展到一定规模时,会越来越强调开发过程的规范化和成熟度。软件项 目的成败在很大程度上取决于对其开发过程的控制,包括对质量、源代码、进度、 资金、人员等进行控制。要进行有效的过程控制,仅仅依靠人的力量是不够的, 还需要有相应的管理方法和管理工具。 软件配置管理 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 ) 正是能满足这些需 求的有效方法。软件配置管理是一套规范、高效的软件开发管理方法,同时也是 提高软件质量的重要手段,是团队开发的基石。软件配置管理可以帮助开发团队 对软件开发过程迸行有效的变更控制,高效地开发商质量的软件。软件配置管理 已日益成为软件开发过程中的关键要素。在由卡内基梅隆大学软件工程研究所创 建的能力成熟度模型c m m 嘲( c a p a b i l i t ym a t u r i t ym o d e l ) 中,将软件配置管理定为 c m m 2 级( 可重复级) 的一个关键过程域,而i s o i e c l 2 2 0 7 国际标准也把它作为软 件生命周期过程中基本过程的重要支持过程。 当前,软件过程工程的发展对软件配置管理提出了新的要求。为提高软件配 置管理对过程的控制和管理能力,增强其对各种不同开发过程的可适应性,应该 将软件过程活动作为管理对象引入到软件配置管理中来。本文的中心问题就是研 究将软件过程活动作为软件配置管理对象的相关技术与方法,并通过软件配置管 理系统的开发实践,来验证本文所提出的相关技术与方法的正确性和可行性。 1 2 选题背景及意义 2 0 世纪7 0 年代中期,美国国防部曾立题专门研究导致软件项目不成功的真正 原因。研究结果表明,7 0 的项目是因为管理不善而并不是因为技术实力不够而引 起失败,迸而得出一个结论。即软件过程的管理是影响软件研发项目全局的因素, 而技术只影响局部【3 】。随着这一研究成果的发布,对软件过程的管理的相关研究就 成为人们关注的焦点,且越发显得重要和迫切。 第1 章绪论 软件开发技术和方法论的发展,使得软件开发的质量及效率有了大幅度的提 升,但与此同时,由于软件开发过程越来越复杂,开发中所产生的大量中闻产品 也越来越难以管理。解决该问题的唯一途径是加强软件开发的管理。软件开发机 构若想从初始的混乱开发过程,过渡到可重用、可管理的有序化过程,进而上升 到更高的成熟度水平,那么,软件开发管理的技术与手段就是对该软件开发机构 的极有力的支持,而软件开发管理的核心就是有效的软件配置管理1 4 】。 但是,传统意义上的软件配置管理主要着重于软件的版本管理,缺乏软件过 程支持的概念。在大多数有关软件配置管理的定义中,也并没有明确提出配置管 理需要对过程进行支持的概念。因此,不管软件的版本管理得有多好,由于组织 之间没有连接关系,他们所拥有的也只是相互独立的信息资源,从而形成了信息 的“孤岛”【4 】。 1 2 1 问题的提出 作为一个软件开发机构,项目经理在对项目,尤其是规模较大、处理业务相 对复杂的项目进行管理的过程中,经常会提问或被提问到下面的一些问题: “谁能给我某年某月某日某项目的整个软件代码? ” “谁能告诉我,现在用的这个文件的上个版本是谁修改的? ” “谁能给我项目的需求文档和概要设计文档? ” “谁能告诉我,项目当前进行到什么阶段? ” “谁能给我某项目测试阶段的人员分配和工作安排? ” 缺乏有效的项目管理手段的软件开发机构恐怕没有人能够完整地回答这些漫 无边际的问题,因为项目组涉及的软件系统可能规模很大,开发过程也很复杂, 代码量很多,文档也可能多而乱或者缺乏。那么,应该怎样才能有效地组织和规 范这些项目元素以及各个过程阶段,以便有效地控制软件质量呢? 加强对软件配 置管理的认识,提高软件配置管理的能力和技术手段是解决这些问题的唯一、可 行的途径。s c m 的目的是在软件项目的整个生存周期中,建立和维护软件产品的 完整性和可追踪性,它也是绝大多数软件工程过程和管理过程中必不可少的部分。 在质量体系的诸多支持活动中,配置管理处在这些支持活动的中心位置,它能有 基于过程的软件配置管理模型的应用研究 机地把其它支持活动结合起来,形成一个整体,相互促进,相互影响,有力地保 证了质量体系的实施。人们通过实践越来越认识到,s c m 对于提高软件质量和软 件开发过程的可靠性,有着极其重要的作用【5 】。它代替了传统的问题修复方式,完 整地记录了软件开发过程,包括软件中出现的问题,修复这个问题的过程以及与 修复过程相关的全部人和事等。 由此可见,软件项目的成败在很大程度上取决于对其开发过程的控制,而包 含对软件过程提供支持的s c m ,对于软件开发过程的可靠性和提高软件质量等有 着重要意义。过程控制本来是软件开发环境中一个独立的部分,如果s c m 也能提 供这样的功能,则将会大大提高软件开发的质量和效率。目前的配置管理工具对 过程的支持还很不够,一些配置管理系统虽然提供对过程的控制,但只是提供一 个预先定义好的生命周期模型,并保证开发的每一步都按照这个模型规定的进行。 这些工具缺乏灵活性,也极大地束缚了软件产品的开发。 1 。2 。2s c m 的出现 s c m 的出现是软件项目发展的必然结果,这主要表现在如下几个方面【6 】: 1 软件技术迅速扩展,项目开发日趋复杂,人员数量不断扩充,系统开发平 台多样化,开发及测试环境复杂且分布各地,开发规模目益扩大,随之而来的管 理复杂性也急剧加大。 2 软件开发永远不变的特点就是变化,需求变更、技术更新、人员变更、环 境变化、架构变化等层出不穷,所有这些变化使得项目开发的风险大大增大,如 何应对并追踪这些变化,进而对变化加以控制,是一个重要而棘手的课题。 3 ,软件系统越做越大,产品组件动辄上千,多则上万,版本控制如何着手, 令人头痛。 “乱世出英雄”,s c m 便在这样的环境下应运而生了。 随着软件业规模的扩大,s c m 的实施已经不再是要不要的问题,而是在什么 时间、如何实旌的问题了。s c m 作为c m m2 级的一个关键过程域,其重要性已逐 渐被人们所认知。与此同时,s c m 也是c m m 3 、4 、5 级的基础【刀。如何能在软件开 发过程中更好地实施s c m ,以便让它最大限度地发挥作用呢? 或者,实施s c m 的 关键闯题以及解决这个关键闯题的技术与方法到底是什么昵? 这些正是本文要着 第1 章绪论 重探讨的问题。 1 3 国内外研究现状 s c m 是软件开发实施规范化、标准化、工程化的重要管理手段。目前,国外 关于软件配置管理的研究相当活跃,也出现了一些产品和原型系统。其中,最具 有代表性的软件配置管理产品主要利8 1 :r a t i o n a l 公司的c l e a t c a s e n ,p l a t i n u m 的 c c c h a r v e s t 1 0 1 ,m i c r o s o f t 的v i s u a ls o u r e e s a f e 1 ”,c v s t l 2 1 ,b o r l a n ds t a r t e a m ”1 , m e r a n tp v c s 1 4 j 等。配置管理系统主要有格勒诺布尔大学的a d e l e 1 5 1 ,c o m p a q 系 统研究中心的v e s t a l l 6 1 等。 近年来出现了分布、多层次的软件体系,以及基于大粒度软件构件技术的软 件开发方法。为适应这些新的软件开发需求,工具开发者也在不断推陈出新,不 断的改进软件配置管理工具的功能。i b m 开发的s t e l l a t i o n 1 7 1 系统中加强了对团队 成员协作的支持并且支持分布式开发,l s r - i m a o 提出f e d 训i o n 【1 司方法,提高了 s c m 的柔性以满足不同层次的用户需求。 国内目前对于软件配置管理的研究工作与研究成果还很少,其重要性尚未被 普遍认识。但是,随着对外技术合作的增加,已经有越来越多的人认识到了s c m 的重要性,许多有识之士在积极倡导,职能部门、有关工厂、研究所都已开始对 各生产单位提出这方面的要求,并着手开展了一些工作。北大软件工程研究所正 在研究基于构件的配置管理并开发了相应的软件配置管理系统j b c m 1 9 1 。华中理 工大学正在进行集成的配置管理系统的研究并开发软件配置管理系统h s c m s 2 0 1 。 不过,由于国内对s c m 的研究起步较晚,掌握s c m 要领与技术的人还不是很多。 那些尚未真正建立起有效管理体系的软件企业,对一些对配置管理有硬性要求的 项目,基本上是应付的多。值得庆幸的是,随着软件企业对配置管理认识的提高 与考核经验积累,以及中国加入w t o 后,行业被要求必须按国际惯例行事,与国 际接轨等情况的出现,对s c m 的研究也已经成为当今的研究热点。人们逐渐认识 到,s c m 的成功与否,也将毫无疑问地成为软件企业能否在市场竞争中获胜的重 要因素之一,谁先掌握并建立起有效的配置管理体系,谁就在市场竞争中拥有更 多的筹码。 1 3 1 软件配置管理工具的发展 基于过程的软件配置管理模型的应用研究 围绕配置管理,世界上一些致力于软件工程研究的组织或公司推出了各种配 置管理工具软件,如p v c s 、c l e a r c a s e 等,另外还有一些自由软件,如r c s 、c v s 等。这些配置管理工具面向软件规范化、工程化、自动化的需要,解决了实际工 作中的问题,帮助开发团队提高了科学管理水平和工程效率,降低工程成本。 软件配置管理工具的发展,大致经历了三代【2 1 1 : 第一代软件配置管理软件仅仅是基于文件的版本控制工具瞄l 。有些工具只对 源对象提供版本控制功能,如s c c s ;有的则提供了对导出对象进行版本控制,如 r c s 。这些都是一些面向开发而非面向管理的、简单的、独立的工具 2 3 1 。 第二代配置管理系统能够处理复杂的元素,提供了不同的版本模型,是一个 集成了版本管理和项目组建功能的工具,如d s e e 在实现对文件进行版本管理的 基础上,应用了系统模型( 系统模型是指由源对象及其关系进行描述的软件系统) 的描述和版本绑定等策略来支持项目组建。但这些工具只是支持编码阶段的工具, 而不是支持整个软件的生命周期。 第一代和第二代配置管理系统,作为一种支持开发的工具,提供了帮助开发 者对软件产品进行协作变更的功能。但是,软件配置管理系统还应该在某种程度 上支持软件开发的管理功能,即对软件产品提供变更控制的功能。 第三代配置管理系统已经发展成为面向管理的、大型的、复杂的配置管理系 统,如c l c a r c a s e 等。c l e a r c a 版本管理的对象既可以是文件,也可以是目录。 与第一代、第二代配置管理系统相比,其版本管理的对象有了很大的扩展。但其 管理对象也仅是文件及目录,对过程的支持仍然不够。 1 3 2 软件配置管理系统 a d e l e 是格勒诺布尔大学研究的一个配置管理系统,它的基本特征是有一个较 好的数据模型,提供界面检查、产品组成的显示、配置项的构建以及工作区的控 制等。a d e l e 的设计目标是要成为软件工程环境的核心系统。a d e l e 采用中心数据 库的方式对配置项进行管理,它使用户可以定义对象的界面以及对象的实现,定 义配置项以及配置项的类别,通过属性来描述配置项的特征以及它们之间的关系。 同时,用户可以通过属性来指定任一配置项进行管理,这些属性可以是系统定义 的,也可以由用户来定义。用户还可以指定基于属性值的选取规则,根据此规则 第l 章绪论 来查询配置项的信息。a d e l e 还能很好的维护配置项信息的完整性和一致性。 v e s t a 是c o m p a q 系统研究中心开发的软件配置管理系统。v e s t a 能够实现对源 程序的控制以及版本的追踪,同时,它能够使软件的构建过程得以自动地执行。 v e s t a 的特点就在于它对于软件的构建过程实现,提供了其它系统所不具备的三个 方法。首先,它的构建过程是可重复的,因为它对于配置项的描述可以唯一指定 用什么样的工具去构建哪些源程序;其次,它能存储在此之前构建的结果,使之 可以重用,这样就能很好的支持增量构建;第三,它能够自动的捕获和记录构建 依赖,这样就保证了构建过程的一致性。另外,它还提供了灵活的系统建模语言, 以供用户准确的描述配置项,并支持团队的并行开发。 此外,还有科罗拉多大学的n u c m u ,a a r h u s 大学的r a g n a r o k l 2 5 、e p o s 小 组的e p o s 【2 6 1 和c a l g a r y 大学的d i s c t 2 7 1 等,所有这些也都是较有特色的配置管理 原型系统或环境。 在国内,就c a s e ( c o m p u t e ra i d e ds o f t w a r ee n g i n e e r i n g ,计算机辅助软件工 程) 1 2 8 1 的研究和开发而言,至今已经形成了一定的研究和开发力量。以杨芙清教授 为代表的北京大学软件工程研究所,对于c a s e 理论、产品和技术进行了集中的 研究,并推出了基于构件的新一代软件配置管理工具青鸟配置管理系统 o b c m ) 。青鸟配置管理系统面向软件企业开发、管理相关资源的需求,支持基于 构件的软件开发方法,能够有效地改善软件企业的开发过程。 1 4 本文研究内容 本文从分析国内外软件配置管理领域的研究现状出发,对基于过程的软件配 置管理模型及系统实现展开研究。针对当前已有的软件配置管理技术大多是以版 本控制和配置支持为核心,而对过程支持相对较弱的现状,本文研究的模型以过 程的建立作为配置管理的前提,模型本身不设定任何一种特定的过程,也不规定 特定的生存周期模型或软件开发方法,各软件开发机构可以根据组织自身的特点, 构建本组织的标准过程库。一个组织通常会为多个客户开发软件,此时,可针对 开发项目的具体特征,由组织标准过程库中选择合适的过程,并加以裁剪、修改, 使之适合于具体的项目,并以该选定的开发过程为前提制定配置策略,由此展开 适合具体项目、具体开发过程的配置管理活动。配置管理中的过程支持是本文研 基于过程的软件配置管理模型的应用研究 究的重点,在论文中将给予着重论述。 本文首先从理论上来研究基于过程的软件配置管理模型,该模型将软件配置 管理建立在过程框架上,全面支持软件过程的各项活动,极大提高配置管理对过 程支持的灵活性。在此基础上,本文将结合实际,设计并实现一个基于该模型的 配置管理原型系统,并就实现该系统的相关技术问题与实现结果,做较为详细的 论述。 第2 章软件配置管理概述 第2 章软件配置管理概述 2 1 什么是软件配置管理 配置的概念最早应用于制造系统,其目的是有效标识复杂系统的各个组成部 分,如在制造行业很早就有材料清单( b i l lo f m a t e r i a l s ,b o m ) 的概念,如,计算机 系统的c p u 、磁盘以及外设配置及其相应的规格、型号等。随着计算机软件的发 展,软件开发已由最初的“程序设计阶段”经历了“程序系统阶段”进而演变为当前的 “软件工程阶段”【2 9 】,软件的复杂性日益增大。此时,如果仍然把软件看成一个单 一的整体,那就无法解决软件所面临的问题了。软件产品同样需要类似材料清单 的概念,于是配置的概念被逐渐引入软件领域,且越来越受到人们的重视。 那么,什么是软件配置管理? 软件配置管理即s c m ,是软件工程中用来管理 软件资产变更的一项规程( d i s c i p l i n e ) ,是一套按规则管理软件开发和软件维护以及 其中各种中间软件产品的方法,它研究怎样在不同时刻如何标识软件系统的配置, 以便系统化地控制配置的改变,以及在整个软件生命周期内维护配置的完整性和 可追踪性1 3 0 。配置管理的出现很好的改善了软件维护问题,是软件企业的核心活 动和重要的质量保障手段。 i e e e “软件配置管理计划标准”( i e e e8 2 8 1 9 9 8 1 关于s c m 的论述如下口1 1 : 软件配置管理由适用于所有软件开发项目的最佳工程实践组成,无论是采用 分阶段开发,还是采用快速原型进行开发,甚至包括对现有软件产品进行维护。 s c m 通过以下手段来提高软件的可靠性和质量: 1 在整个软件的生命周期中提供标识和控制文档、源代码、接口定义和数据 库等工件的机制; 2 提供满足需求、符合标准、适合项目管理及其它组织策略的软件开发和维 护的方法学: 3 为管理和产品发布提供支持信息,如基线的状态,变更控制、测试、发布、 审计等。 简言之,软件配置管理就是为协调软件开发,使得混乱减到最小的技术,它 是一种标识、组织和控制修改的技术,目的是使错误达到最小并最有效地提高生 产效掣,2 l 。 基于过程的软件配置管理模型的应用研究 2 2s c m 中的基本概念 2 2 1 配置配置项 所谓配置,就是一系列相关内容( 又被称为可配置项或配置项) 的集合,它满足 以下要求 3 3 1 : 通过配置d 可以唯一地标识配置。 其中的项是一致的,例如每一项与其它项之间的关系都是清楚明确的。 作为一个整体,这一系列的内容都是可以重新构建出来的。 配置项是配置中的基本部分,是配置管理的最小单元。软件配置项( s o f t w a r e c o n f i g u r a t i o ni t e m ,s c i ) 是软件配置管理的对象,一组软件配置项通过特定的系统 模型组合形成一个特定的软件配置。在中国国家标准计算机软件配置管理计划 规范中指出:“软件配置是一个软件产品在软件生命周期的各个阶段所产生的各 种形式( 机器可读或人工可读) 和各种版本的文档、程序及其数据的集合。该集合中 的每一个元素被称为该产品的软件配置中的一个配置项( c o n f i g u r a t i o ni t e m ,c i ) ”。 各种管理文档和技术文档、源代码及其可执行代码、运行时所需的各种数据及相 应的存储介质等,均可构成软件配置项,它们经过评审和检查通过后进入软件配 置管理。版本控制的对象可以是大粒度的软件配置,也可以是小粒度的软件配置 项。i s o9 0 0 0 3 进一步指出配置项可以是: 与合同、过程、计划和产品有关的文档及数据。 源代码、目标代码和可执行代码。 相关产品,包括软件工具、库内可复用软件、外购软件以及顾客提供的软 件等。 作为软件配置项,其自身还必须要满足以下要求: 可标识和可版本化:每一个配置项都有一个版本号,用于标识它的变更历 史。 可跟踪:作用于配置项上的任何活动都是可以跟踪的。 可控制:只有通过一个已文档化的并且可控制的过程,才能对于每个配置 项加以改动。 随着软件过程的进展,软件配置项迅速增长。软件配置管理的目的是在软件 第2 章软件配置管理概述 项目的整个生存周期内建立和标识软件配置项,并对其进行管理和控制,维护其 完整性、一致性和可跟踪性口4 1 。 从管理角度来看,配置项可分为技术配置项、合同配置项和连续配置项【4 】。技 术配置项是指公司要为达到s c m 目的,如形成基线、跟踪变更、报告和审计等进 行控制的项,这些项由开发组织给其编号。合同配置项是指合同中指定的一些项, 如系统或子系统所要求的实际代码、技术文档和使用手册等。连续配置项指的是 分阶段连续交付的组成一个系统的配置项,这些项不是一次付清的。在软件项目 向前推进的同时,软件配置项的数量也会上升,即需要纳入管理的各种工作产品 越来越多,配置管理的作用也会越来越明显。 2 2 2 基线 1 基线的定义 基线是在软件开发中经过正式审核作为下一步开发基础的软件配置,是项目 情况的度量点,是后继开发的基础,以及对后继开发工作进行验证的基准。基线 在形体上体现为一组冻结了的软件配置项,也就是说,组成基线的每一配置项是 软件开发过程中所产生的某一软件实体的一个特定版本。基线是软件开发过程中 的一个里程碑,其标志是有一个或多个软件配置项的交付,且这些软件配置项己 经经过技术审核而获得认可。 i e e e 对于基线的定义是【3 5 1 :已经通过正式复审和批准的某规约或产品,它因 此可以作为进一步开发的基础,并且只能通过正式的变更控制过程进行改变。 简单地说,基线就是项目储存库中每个工件版本在特定时期的一个“快照”。它 提供一个正式标准,随后的工作将基于这个标准进行,并且只有经过授权后才能 变更这个标准。建立一个初始基线后,其后对它进行的每次变更都将记录为一个 差值,直到建成下一个基线。常见的软件基线如图2 1 所示。 基于过程的软件配置管理模型的应用研究 图2 1 基线 f i g 2 1b a s e l i n e 可以说,基线是软件生命周期各阶段末尾的特定点,亦称里程碑,其作用是 把各阶段的工作划分得更加明确,使得本来连续的工作在这些点上断开,以便于 检验和确认阶段开发成果 3 6 1 。 软件项目开发过程中,需要定期建立基线以确保团队开发人员的工作保持同 步。通常,在项目生命周期中的里程碑处,要定期建立基线。 g b t1 2 5 0 5 9 0 定义了软件生命周期中3 种形式的基线:功能基线、指派基线 和产品基线【4 j 。 功能基线是指在系统分析与软件定义阶段结束时,经过正式评审和批准的系 统设计规格说明书中对待开发系统的规格说明;或是指经过项目委托单位和项目 承办单位双方签字同意的协议书,或合同中所规定的对待开发软件系统的规格说 明;或是由下级申请经上级同意,或直接由上级下达的项目任务书中所规定的对 待开发软件系统的规格说明。功能基线是最初批准的功能配置标识。 指派基线是指在软件需求分析阶段结束时,经过正式评审和批准的软件需求 的规格说明。指派基线是最初批准的指派配置标识。 产品基线是指在软件组装与系统测试阶段结束时,经过正式评审和批准的有 关所开发软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标 识。 2 基线的属性 建立基线的主要原因是:重现能力、可追踪性和报告能力口7 1 。 重现能力是指返回并重新生成软件系统给定发布版本的能力。可追踪性则建 立了项目的各种类型工件( 需求、设计、实现、测试等) 之间的横向依赖关系,其目 的在于确保设计满足需求、代码实旖设计以及使用正确代码编译生成可执行文件。 第2 章软件配置管理概述 报告能力来源于一个基线内容同另一个基线内容的比较,基线比较有助于程序调 试并生成发布说明( r e l e r i s en o t e s ) 。基线具有以下特点【3 8 j : ( 1 ) 通过正式的评审过程建立; ( 2 ) 基线存在于基线库中,对基线的变更接受更高权限的控制; ( 3 ) 基线是进一步开发和修改的基准和出发点; ( 4 ) 进入基线前,不对变化进行管理或者较少管理; ( 5 ) 进入基线后,对变化进行有效管理,而且这个基线作为后继工作的基础; ( 6 ) 不会变化的东西不要纳入基线; ( 7 ) 变化对其它没有影响的可以不纳入基线。 3 建立基线的必要性 建立基线之所以是必要的,是因为建立基线具有以下几点好j z j 2 t 3 9 1 : ( 1 ) 基线为开发工件提供了一个定点和快照。新项目可以从基线提供的定点之 中建立; ( 2 ) 当认为更新不稳定或不可信时,基线为团队提供一种取消变更的方法; ( 3 ) 可以利用基线重新建立基于某个特定发布版本的配置,这样也可以重现被 报告的错误。 ( 4 ) 利用基线可实现版本隔离。基线为开发工件提供了一个定点和快照,新项 目可以从基线提供的定点之中建立。作为一个单独分支,新项目将与随后对原始 项目( 在主要分支上) 所进行的变更进行隔离。 2 2 3 版本 源文件是一个软件最为重要的组成单元之一,因此对源文件的管理也就成为 软件组成单元管理的最重要的一环,是进行高效的软件开发的关键所在。对源文 件的标识包括文件名和版本两个基本方面1 4 。版本作为源文件的一个标识部分,软 件开发人员在对它的引用过程中所关心的问题,实际上是该版本能够给出什么内 容的源文件。因此,版本实际上是一种抽象,用来定义一个具体实例应该具有什 么样的内容和属性。随着软件的开发,源文件的版本也不断的演变,这些不同的 版本便形成了一个源文件的版本空间【帅】。 2 2 4 软件配置库 基于过程的软件配置管理模型的应用研究 软件配置库又称作软件受控库,是指在软件生命周期的某个阶段结束时, 存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读 信息的库。软件配置管理就是对软件配置库中的各软件项进行管理。 对软件配置库的要求首先是安全可靠性,必须保证软件配置库中的内容不被 任意删除、修改,保证软件配置库不被非法用户获取到;其次是完整性,要保证 各阶段的基线各配置项的完整性;再次,是要能够对软件配置库方便地进行备份 和恢复,在正常的情况下做好每日或每周的备份,保证在出现异常的情况下,能 够方便地进行恢复。 2 3 软件配置管理的关键活动 软件配置管理的主要任务是在项目的整个生存周期内建立和维护软件项目产 品的完整性。在i e e e 标准7 2 9 1 9 8 3 中,软件配置管理的主要功能包括如下几项【4 l j : ( 1 ) 酉己置表示; ( 2 ) 版本控制; ( 3 ) 变更控制; ( 4 ) 变更状态统计; ( 5 ) 变更审计; ( 6 ) 构建; ( 7 ) 过程管理; ( 8 ) 小组协作。 下面对这些功能,一一加以说明。 2 3 1 配置标识 配置标识主要是为每个配置项提供唯一的标识符,正确地标识每个配置项以 及它们之间的联系,并以某种形式提供对它们的存取。 软件配置实际上是一个动态的概念,一方面随着软件生存期的向前推进,软 件配置项的数量在不断增多,另一方面又随时会有新的变更出现,形成新的版本。 为了方便对软件配置的各个阶段即配置项进行管理和控制,不致造成混乱,首先 应给它们命名,再利用面向对象的方法去组织它们。 配置标识是一个配置项的选择、命名和描述的过程。首先,把一个软件系统 第2 章软件配置管理概述 分成便于进行配置管理的各个配置项;然后按一定的方法对这些配置项进行命名、 编号,以便于软件管理人员、开发人员能够明了该软件系统各配置项之间的相互 关系,包括各文档之间以及文档与代码之间的联系;最后要对每一个组成部件的 功能、性能和物理特性进行必要的描述。 配置标识包括识别软件系统的结构、唯一标识独立的组件并使其以某种方式 存取。配置标识的目的是获得在软件整个生命周期中识别其组件的能力,配置标 识告知系统中的配置是什么,系统的各个组件是什么,文件的版本是什么。配置 标识的主要活动包括选择配置项、制定配置项、标识方案和存取方案。 2 3 2 版本控制 版本控制是对系统不同版本进行标识和跟踪的过程。它是全面实施软件配置 管理的基础,可以保证软件技术状态的一致性。 版本标识的目的是便于对版本加以区分、跟踪和检索,以表明各个版本之间 的关系。一个版本是软件系统的一个实例,在功能和性能上与其它版本有所不同, 或是修正、或是补充前一版本的某些不足。 实际上,对版本的控制就是对版本的各种操作控制,包括签入签出控制、版 本的分支和合并、版本的历史记录和版本的发行等。 版本控制是配置管理的基本要求,它可以保证在任何时刻恢复任何一个配置 项的任何一个版本。版本控制记录了每个配置项的发展历史,这样就保证了版本 之间的可追踪性,也为查找错误提供了帮助。版本控制也是支持并行开发的基础。 2 3 3 变更控制 变更既是不可避免的,也是必不可少的。变更和变更控制是矛盾的统一体。 由于变更的内容、变更的幅度都会直接影响到整个项目的开发,所以时时刻刻需 要考虑到变更的波及面。例如,在一个瀑布模型的生命周期中,如果需求规格发 生了变化,那么软件生命周期中各个阶段都有可能受到影响,这些阶段的所有相 关的软件配置项也都会或多或少的受到影响。受到影响的各个部分必须进行调整 才能够应对这些变化带来的冲击。这时,软件配置管理显得尤为重要,它需要提 供有效的措施,对变更进行严格的控制。通过变更控制能够协调软件开发,使混 舌l 减至0 最,j 、。 基于过程的软件配置管理模型的应用研究 变更控制是指详细记录配置项变化的相关信息,包括变化原因、变化内容、 变化的实现者等。记录正在执行的变化信息,有助于做出正确的管理决策。此外, 变更控制还要控制变化过程,包括建立控制点,建立报告和审查制度等。 软件的变更通常有两种不同的类型:功能变更和错误修补( b u g f i x ) 变更【4 2 】。 功能变更是为了增加或者删除某些功能、或者为了改变完成某个功能的方法 而需要的变更。这类变更必须经过某种正式的变更评价过程,以估计变更所需要 的成本以及变更对软件系统其它部分的影响。如果变更的代价比较小而且对系统 的其它部分没有影响或者影响很小,通常应该批准这个变更。反之,如果变更的 代价比较高,或者影响比较大,那么,必须权衡利弊,以决定是否进行这种变更。 如果同意这种变更,需要进一步确定由谁来支付变更所需要的费用。如果是用户 要求的变更,则应由用户来支付这笔费用;否则,必须完成某种成本效益分析, 以确定是否值得实施这种变更。因此,功能变更将涉及到软件额外费用的问题。 错误修补( b u g f i x ) 变更是为了修复漏洞而提出进行的变更。它是必须进行的, 通常不需要从管理的角度对这类变更进行审查和批准。但是如果发现错误的阶段 在造成错误的阶段之后,如在实现阶段发现了设计错误,则必须遵照标准的变更 控制过程,把这个变更正式记入文档,同时,对所有受到这个变更影响的文档及 程序,都做相应的修改。 2 3 4 配置状态统计 配置状态统计是指将已发生变化的配置项的有关信息发送给其他人员。在一 个大型的开发项目中,开发人员很有可能只关注于他们自己的那一部分即某 些功能的增强或者与之相应的b u g 修改,从而失去了对整个项目的整体把握,最 后变得没有人知道项目整体的变更情况。而这正是软件开发者所不愿意看到的, 并且从实现的角度看也偏离了原来的需求。而状态统计则为软件项目人员提供了 一种保证每个人都与变更以及相应影响取得同步的机制【3 3 1 。 状态统计主要是在版本控制与过程管理的基础上,通过量化的数据和报表。 体现软件开发的进度。 2 3 5 配置审计 所谓审计是指通过采样分析不同的对象,从恧确保在整个活动中,有关过程 第2 章软件配置管理概述 的规定都能被认真遵从。如果采用随机的方式加以采样,并且采样的频度足够大 的话,那么根据统计学的原理可知,就可以确保大部分活动均已遵循有关过程的 规定。对于一个好的审计而言,其主要原则是:采样的随机性、审计的独立权威 性:采样的目的在于保证过程被遵循,而不是为了发现个别人的违规行为;采用 相对来说仁慈的、非强制性的、可接受的方法。配置管理审计正如其名称所反映 的那样,是用于确保配置管理按照每个阶段的规定加以实施,并且保证相应质量 记录的存在。配置审计过程应当对系统中的变更加以采样( 并且采样时不应局限于 特定的组或者项目) ,同时应在此过程中提出如下一些问题,并确保能够得到满意 的回答【3 3 1 。 ( 1 ) 本次变更有相应的变更请求吗? 有必要的评审记录吗? 变更是不是正确 的? 有相应的影响分析吗? ( 2 ) 变更请求是否通过了适当的评审批准授权? ( 3 ) 实际实施变更时是否是按变更请求中所描述的那样进行的? ( 4 ) 是否遵循了正确的文档标准,以反映配置项的变化? ( 5 ) 是否遵循了s c m 过程( 如签入、签出以及版本编号升级等) ? 此外,这里 还可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区门禁安装协议书
- 工伤理赔工资协议书
- 油漆师傅赔偿协议书
- 扶贫车间聘用协议书
- 找人花钱上学协议书
- 承办音乐节合同范本
- 承包协议不施工合同
- 承包地收回合同范本
- 承包木工协议书模板
- 承包送货免责协议书
- 阀门压力试验作业指导书
- 新版氨水安全技术说明书
- 食品营养学(暨南大学)智慧树知到答案章节测试2023年
- 于金明-肿瘤精准治疗华西
- 传感器原理与应用智慧树知到答案章节测试2023年山东大学(威海)
- 经营部管理制度
- 钢结构加工安装合同 钢结构构件加工合同(3篇)
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- 建水景点介绍
- GB/T 20145-2006灯和灯系统的光生物安全性
- 公文写作基础知识-课件
评论
0/150
提交评论