(产业经济学专业论文)面向中小企业的软件配置管理策略与应用研究.pdf_第1页
(产业经济学专业论文)面向中小企业的软件配置管理策略与应用研究.pdf_第2页
(产业经济学专业论文)面向中小企业的软件配置管理策略与应用研究.pdf_第3页
(产业经济学专业论文)面向中小企业的软件配置管理策略与应用研究.pdf_第4页
(产业经济学专业论文)面向中小企业的软件配置管理策略与应用研究.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(产业经济学专业论文)面向中小企业的软件配置管理策略与应用研究.pdf.pdf 免费下载

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

文档简介

对外经济贸易大学硕士论文 y86 1 9 6 1 摘要 近年来,网络技术和数据库技术的发展。使得软件规模越来越庞大;多单位、多 团队的合作开发使得开发队伍的离散化程度增加;各种开发工具和开发平台的应用以 及软件需求不确定性的增加,都使得软件开发变得复杂而难以一般的方式来有效管理, 软件的开发过程就会变得混乱,软件生产的质量、周期、成本变得难以预测和控制, 这就容易产生许多潜在的问题,往往就造成难以挽回的后果,软件危机越演越烈。为了 转变这种情况,软件开发急需一种有效的组织管理方法。软件配置管理( s o f t w a r e c o n f i g u r a t i o nm a n a g e m e n t ,s 例) 正可以满足这样的需求,它是一套规范、高效的软 件丌发基础结构,作为管理软件开发过程有效的方法,s c m 早已被发达国家软件产业的 发展和实践所证明。s c m 能对开发过程进行有效地管理和控制,完整、明确地记载开发 过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更 重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资 回报。 本课题首先介绍了软件配置管理出现的背景及目前的发展状况,接下来对配置管 理的基本构成要素和管理工具进行了全面介绍,在此基础上,针对s c m 的5 个核心管 理域进行了详细的研究,结合s c m 的基本理论和我国中小型软件企业的具体实际情况, 创新性的提出了一个中小型企业实施配置管理的解决方案。特别强调根据大部分企业 现有的开发过程,提出一个将s c m 融入其中的新的开发过程解决方案。最后通过一个 具体项目来说明该配置管理在实际中小软件企业开发中应用的可行性和该鳃决方案在 现实中的可操作性。 关键词:软件配置管理变更控制基线中小企业 对外经济贸易大学硕士论文 w i t ht h ed e v e l o p m e n to fn e t w o r ka n dd a t a b a s et e c h n o l o g y , t h es e a l e so fs o f t w a r er i m t oh u g e t h ec o o p e r a t i o no fm u l t i - u n i ta n dm u l t i - t e a mm a k ed e v e l o p e r sm o r ed i s c r e t e t h e u s eo fa l lk i n d so fd e v e l o p i n gt o o l sa n di n s t r u m e n t sl e a dt h er e q u i r e m e n to fs o f t w a r e u n c e r t a i n a l lo ft h e s ew i l lt u r no u tt h a tt h ed e v e l o p m e n to fs o f t w a r eb e c o m ec o m p l i c a t e d a n dh a r dt ob em a n a g e de f f e c t i v e l y , t h ed e v e l o p i n g p r o c e s sb e c o m ej u m b l e d ,a n dt h eq u a l i t y a n dt h ec o s to f s o f t w a r el e a nt oo u to f o u rc o n t r 0 1 s ot l l a t sw h yc r i s e sa p p e a rs of r e q u e n ti n t h e s ey e a r s i no r d e rt oc h a n g et h e s ea w f u ls t a t i o n s ,w en e e das o r to f e f f e c t i v em a n a g e m e n t , a n dt 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 t ( s c m ) i sj u s ts u c ho n e s c mi sas e to f s t a n d a r d s ,a sa ni m p a c t f u lw a y , i th a sb e e nc e r t i f i c a t e db yt h es o f t w a r ei n d u s t r yo f d e v e l o p e d c o u n t r i e s s c mc a nc o n t r o la n ds u p e r v i s et h ew h o l e d e v e l o p i n gp r o c e s s t a k ea n dt r a c ka l l t h eh i s t o r yr e c o r d s a n db u i l ds t a n d a r dd o c u m e n t s t h e s ea r et oa t t a i nt h em a i n t e n a n c ea n d u p g r a d et h es o f t w a r e ,a n dw h a t sm o r e ,s c mc a np r o t e c tt h ep r e c i o u sc o d er e s o u r c ea n d i m p r o v e t h er e u s eo f s o f t w a r e t h e p a p e ri sa r r a n g e da sf o l l o w s :f i r s t l y , i ts u m m a r i z e st h er e a s o no fs c m sc o m i n g i n t ob e i n ga n dd e v e l o p m e n t ,a n dt h es i g n i f i c a t i o no fi n t r o d u c i n gi ti n t oc h i n e s es o f t w a r e e n t e r p r i s e s e s p e c i a lt h es m a l la n dm e d i u ms e a l 船s e c o n d l y , i tm a k e s ac l a s s i f i c a t i o no ff i v e e l e m e n t si n c l u d i n gc o n f i g u r a t i o ni t e m ,e d i t i o nc o n t r o l ,c h a n g em a n a g e m e n t , s t a t u sr e p o r t , a n dc o n f i g u r a t i o na u d i t 1 1 1 i r d l y , b a s e do nt h ea b o v ep a r t sa n dt h ea c t u a ls t a t u so fc h i n e s e s o f t w a r ed e v e l o p m e n t , t h i sp a p e rd e v e l o p saf r a m e w o r ka b o u th o wt op u ts c mi n t op r a c t i c e i tf u s e st h ef i v ee l e m e n t sa n ds o f t w a r ed e v e l o p m e n tp r o c e s si n t oo n e ,a n de m p h a s e so nt h e p a r t so fe d i t i o nc o n t x o la n dc h a n g em a n a g e m e n t f i n a l l y , o nt h eb a s i so fap r a c t i c ep r o j e c t , t h i sp a p e rv e r i f i e st h ea c t u a la p p l i c a t i o ne f f e c t so ft h i ss c mf r a m e w o r ki nam e d i u m c h i n e s es o f t w a r ee n t e r p r i s e 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 ,c h a n g em a n a g e m e n t ,b a s e l i n e ,s m a l l a n dm e d i u me n t e r p r i s e s 2 对外经济贸易大学硕士论文 引言 软件危机似乎是软件产业与生俱来的产物,为了克服它,从1 9 6 8 年北大西洋公约 组织( n a t o ) 召开的计算机科学会议上,f r i t zb a u e r 首先提出的软件工程开始。,人 们一直从技术角度需求解决之道。从某种程度上,这些不断被创造出来的先进技术和 方法的确缓解了软件危机,比如面向对象方法,它就很好的解决了软件开发完备性和 代码重用性的问题,但是它们都没能从根本上解决软件危机,最明显的表现是软件成 本居高不下并且逐年上升,据美日两国近两年的统计数字表明,软件开发成本要占计 算机系统总成本的9 0 以上。 近年来,专家们开始把目光转向软件开发过程的管理方面。2 0 世纪9 0 年代中期, 卡内基。梅隆大学软件工程研究所( c m u s e i ) 正式提出了覆盖软件开发过程1 8 个领 域的软件能力成熟度模型( s o f t w a r ec a p a b i l i t ym a t u r i t ym o d e l ,s w - c m i ) 。c 删认 为通过实现这1 8 个过程域( 软件配置管理,质量保证、转包合同管理、项目跟踪与监 控、需求管理、组问协调、集成软件管理、培训程序、组织过程定义、组织过程焦点、 同级评审、产品过程、质量管理、定量过程管理、过程变更管理、技术改革管理及缺 陷防范) 可以帮助企业提舞对开发过程的控制能力,使软件开发的过程透明化、规范 化和运行强制化,从而达到保障软件质量的根本目的。目前c m m 体系已经得到很多发 达国家软件产业界的认可,在北美、欧洲和日本等国家地区得到了广泛应用,成为了 事实上的软件过程管理的标准。其中软件配置管理( s o f t w a r ec o n f i g u r a t i o n m a n a g e m e n t ,s a m ) 被置于首要位置,也是目前应用最广泛,效果最明显的一项过程域 管理。 我国目前的软件行业主要还是由中小型团队组成,相对于国际水平存在着严重的 开发过程混乱,缺乏有效的过程管理手段,而配制管理由于其本身实施的便利性、工 具的支持性以及与其它过程域良好的连结性,正符合中小型软件企业的管理需求,因 此本文针对这个出发点进行了大量相关研究,最终在总结出配制管理的5 大关键活动 域基础上,结合实际开发过程提出一个适用于中小型软件开发企业从无到有的配置管 理实拖解决方案,并在本文的最后部分通过一个具体项目来说明配制管理在实际中小 开发项目中实施的应用性和该解决方案在现实中的可操作性。 。杨一平, 现代软件工程技术与c 删的融合,人民邮电出版社,2 0 0 2 年版 。w w w , i e l a w c n n e w s s h o w a s d ? i d = 2 1 1 ,2 0 0 61 对外经济贸易大学硕士论文 1 1s c m 概念定义 第一章软件配置管理概述 软件配置管理究竟是什么意思昵? 从哲学的角度上说,一切事物都是在不断运动 和变化着的。而众所周知,相对于其它事物,软件更容易发生变更,敲击几下键盘就 可以改变一个软件,有的变更是有益的、创造性的、修正性的,符合软件开发目标的, 也有很多是导致混乱的,偏离目标的,从容易理解的角度来说,软件配置管理就是首 先确认在开发过程中所有会产生变动的软件产品关键元素( 如代码、设计文档) 为配 置项,并对其在接下来的所有变化进行相应管理,保留有益的变更,控制无益的变更。 s c m 最根本、最简洁的定义就是用于管理软件的变更的过程域,它可以有效控制软件开 发过程的混乱程度,从而保证开发方向的正确性和产品质量的可靠性。 目前公认比较权威的官方定义是以下两种: i i 1i s o 定义 按照( i s 0 i e c1 2 2 0 7 ( 1 9 9 5 ) 信息技术一软件生存期过程 中的定义,软件配置 管理就是在整个软件生命周期中实施管理和技术规程的过程,它标识、定义系统中软 件项目并制定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请; 保证软件项的完整性、一致性和正确性;以及控制软件项的存储、装载和交付。 l 。1 2 g b 定义 按照g b t1 1 4 5 7 ( 1 9 9 5 ) 软件工程术语固中的定义,软件配置管理是标识和确定 系统中配置项的过程,在系统整个生命周期中控制这些项的投放和更动,记录并报告 配置的状态和更动要求,验证配置的完整性和正确性,包括从软件项目计划到软件退 役为止全过程的所有追踪和控制软件变动的活动。 一言以蔽之,配置管理就是一门通过一系列技术、方法和手段来维护产品的历史、 鉴别和定位产品独有的版本、在产品开发和发布阶段控制变化,从而使管理制度化、 有效减少重复性工作、保证产品的质量和效率的管理科学。 1 2 s c m 术语 s c m 涉及概念较多,大多也比较新,为了便于研究说明,下面是一些重要的术语 。王海涛,软件配置管理,清华大学出版社,2 0 0 4 年版 。同上 对外经济贸易大学硕士论文 1 2 1 软件配置项 软件配置项( s o f t w a r ec o n f i g u r a t i o ni t e m ,s c i ) 指定在配置管理过程中作为 单个实体予以处理的软件工作产品。它们可以是: 1 计算机程序( 源代码、目标代码和可执行文件) ; 2 与合同、过程、计划和产品有关的文档和数据; 3 相关产品,包括软件工具、可复用的软件模块、第三方软件。 这些配置项的共同特点是它们会随着软件开发的深入不断发生各种变化,并且它 们的变化会对软件开发结果产生影响。在开发过程中,最早被确立的配置项应该是系 统软件规格说明书,并随着开发的进行配置项迅速增加。软件配置项基本可被划分为 软件基线和非基线配置项。 1 2 2 基线 运动是绝对的,静止则是相对的,上文提到每个软件配置管理项随时都可能发生 更动,那为了保证开发的有效进行,我们需要引入一种相对静止的标准,从而就有了 基线( b a s e l i n e ) 的概念;经过正式评审和认可的一组软件配置项,其中的配置项需 要被“冻结”,不能再做任何修改,它们将作为下一步的开发工作的基础。譬如设计报 告被定为为软件基线后,它就是编码工作的基础,对其修改必须严格按照变更申请等 f 式流程进行。基线相当于软件开发过程的里程碑,是软件配置管理的一个重要概念。 开发各阶段必须要产生的基线如图1 1 所示: 图1 1 软件开发各阶段的基线 资料来源:本研究整理 1 2 3 版本 版本( v e r s i o n ) 是某一配置项的已标识了的实例( i n s t a n c e ) 。在一般的开发中, 修改后的文件保存会直接覆盖原有文件,而在配置管理中,配置项文件在发生变更后 3 对外经济贸易大学硕士论文 保存是形成该文件的新版本,与原有版本一同存在,这样可以使整个开发过程有迹可 寻,确保回溯性和可视性。 1 2 4 标记 标记( l a b e l ) 是个很形象地说法,平时我们阅读中发现重要的篇章时会贴上一些 颜色的标签,方便下次查阅一样,l a b e l 的作用就是标示某些重要配置项,便于区别和 查找目标文件,并且l a b e l 可以事先自行定义其含义,使用非常灵活。其实基线就是 打上“基线”标记的配置项,只不过基线标记非常正式,不可随便标注。 1 2 5 软件配置库 软件配置库( s o f t w a r ec o n f i g u r a t i o nl i b r a r y ,s c l ) 就是存储所有软件配置项 的所有版本的地方,也有些学派称之为存储池。软件配置管理就是针对这个库中的各 软件项进行管理和控制,因此也被称之为软件受控库( s o f t w a r ec o n t r o l l e dl i b r a r y ) , 在许多配置管理工具中,配置库都呈现的很类似于资源管理器。 1 3 s c m 的发展 最早的配置管理概念起源于美国的国防工业中,1 9 6 2 年美国空军在设计喷气飞机 时,为解决控制和通信问题制定了第一个配置管理标准a f s c m 3 7 5 1 。后来随着计算机 的普及,配置管理也应用到软件开发中,并随着软件产业的发展而不断成熟。 国外对其的研究结果到目前为止已经历了三代:。 第一代:基于文件( f i l eb a s e d ) 的软件配置管理 早期的s c m 主要为版本管理,这一时期的软件配置管理工具以版本控制为主要特 征,支持c h e c ko u t c h e c ki n 模型以及简单分支,但所有配置项及元数据的存储主要 以文件形式存放,代表工具s c c s ,r c s ,p v c s 等,流程管理上基本以作业任务单等手工 方式为主。 第二代:基于项目库( p r o j e c tb a s e d ) 的软件配置管理 上个世纪七十年代末八十年代初,软件项目的发展要求s c m 不能仅仅对静态的、 完成的产品进行管理,还必须对动态的、成长的产品进行管理。在这种情况下,s o w 体系不断深化,形成了包括版本变更、变更控制、配置审计等更多的功能,开始出现 了基于项目库( p r o j e c tb a s e d ) 的存储管理的第二代软件配置管理,从而更好韵支持 并行开发以及团队协作,并且提供了实现过程管理的良好基础,这一代的工具覆盖了 8 黄军,软件配置管理及其工具应用) ,人民邮电出版,2 0 0 2 年版 。b r j a na w h i m , 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 ms t r a t e g i e sa n dr a t i o n a lc l e a r c a s e ,a d d i s o n w e s k yp u b l i s h i n g , 2 0 0 3 对外经济贸易大学硕士论文 较多的功能,实现形式多样,从简单直观的m i c r o s o f tv i s u a ls o u r c e s a f e ( v s s ) ,到 基于变更请求的i 蹦c m v c 以及p l a t i n u m c ac c c b a r v e s t 等。 第三代:基于文件访问透明的软件配置管理 9 0 年代中后期开始的第三代软件配置管理是基于文件访问透明( f i l e t r a n s p a r e n c yb a s e d ) 的,代表工具是r a t i o n a lc l e a r c a s e ,它在保持了所有第二代 配置管理特征的前提下,提供了更多的特性,通过专有的多版本文件系统m v f s 所提供 的对文件访问的透明性,开发人员可以在不保留本地副本的情况下直接访问受控配置 项。同时这一代的配置管理强调与变更管理( s o f t w a r ec h a n g em a n g e m e n t ) 、系统分 析设计以及测试等各个软件开发环节的结合,从而形成了更加全面完整的软件开发管 理方案。 1 4 实施配置管理的意义 前面已经提到,软件配置管理是伴随着软件技术的发展而发展的。在软件的最初 期,即机器码时代,是对机器进行直接编程,不可能开发大规模的应用系统,也不可 能有过于复杂的逻辑,因此这时只需编程人员自己控制代码即可,并不需要什么配置 管理。但是随着汇编语言、高级语言、面向对象等新技术的不断出现,应用系统规模 越来越大,内部结构越来越复杂,代码和其他工件越来越多,而且这些工件之间的对 应关系千丝万缕。这时就必然要求有一个良好配置管理体系来管理工件即我们前 面所说的配置项,使他们能够前后一致,使整个硬目保持完整。 西方国家是完整的经历了软件技术发展的所有阶段的,软件配置管理在西方国家 的软件企业和软件部门中也应用的相当广泛。其方法和工具也比较成熟。他们一般都 会设置专门人员,甚至是专门的部门来执行配置管理工作。并且根据本身企业的规模, 选择相应量级的配置管理工具。西方的软件企业在配置管理方面投入的成本是相当巨 大的。相比于薄弱的配置管理所可能带来的巨大风险,这些成本的投入物有所值。 相比于西方发达国家,我国软件事业落后了几十年时间。目前在纯粹的软件技术 方面,我们已经能够逐步紧跟世界潮流,但是在软件工程管理领域,却仍然存在不小 的差距,在软件配置管理方面就被甩开更远。下面两个小节,本文将详细地分析配置 管理当前在我国发展的情况,以及它对我国中小型软件企业的特别意义。 1 4 1 我国配置管理管理薄弱的现状 我国目前的软件行业的情况是一方面大量有识之士疾呼本土软件企业管理过于原 始和混乱,而另一方面,绝大多数韵软件企业对软件过程管理无动于衷甚至不知其为 何物。作为管理软件开发过程有效的方法,s c m 早已被发达国家软件产业的发展和实 践所证明,丽在我国本土软件企业只有联想( 通过c m m 3 级认证) 、东软( 通过c m m 5 对外经济贸易大学硕士论文 级认证) 等大型企业获得了配置管理认证资格o ,绝大多数的企业开发开发人员,甚至 是项目经理都对其重要性认识不够。据有关调查结果显示:我国平均每个开发人员被 包围在2 个操作系统、3 种语言、5 个开发工具和若干对象类型当中。,再加上多人协 同开发方式的引入,项目组成员共享同一个源代码开发,致使开发过程复杂而难以控 制,代码冗余度高、数据丢失、工作相互覆盖等问题层出不穷,以下这些问题几乎是 每个开发项目都会遇到的: 1 由于丌发经费及开发时间的限制。不可能一次开发解决所有问题,许多问题有 待于维护阶段解决,而维护和升级所必需的文档往往非常混乱。 2 开发过程缺乏规范化的管理,即使有源程序文档也由于说明不详细而不能对产 品进行进一步的功能扩充,用户不得不再投入大量的经费去开发新产品,造成巨大浪 费。 3 在团队式开发中,人员流动在所难免,如果管理不善,有些人员的流动将对开 发产生致命的影响,特别是开发管理人员的流失,很可能造成产品各模块所处的状态 及阶段无法确定,使开发过程无法正常继续。 4 管理不善致使没经测试的软件加入到产品中,不但影响产品的质量,有时还会 导致致命的错误,造成不可挽回的损失。 5 软件生产达不到规模化,无法生产出软件企业内部的软件标准构件仓库,使应 用软件产品总处于一种低水平、重复开发的状态,不但时间得不到保证,而且成本也 无法降低,使产品没有市场竞争力。 总结一下,没有实施配置管理的软件开发容易导致以下四大问题: 1 软件产品缺乏可视性 当项目缺乏配置管理时,整个软件开发过程处于一种不可视状态。开发人员、测 试人员、项目管理者、质量保证人员及客户等都不能即时的得到有关变动更的确切信 息,软件产品在这种情况下好似处于黑箱之中。 2 缺乏完整性和一致性 当开发过程缺乏可视性之后,随之而来的就是软件产品开发中的大量中间产品( 数 据、文档、代码、可执行文件) 的混乱,各种信息的不一致、不完整,人们没有能力 将变更置于相应的控制之下,必然造成软件产品缺乏完整性和一致性。 3 造成软件产品跟踪与审核的困难 软件的跟踪与审核的基础是基于软件配置管理的,没有配置管理所提供的各种变 更信息就谈不上产品跟踪和审核工作的展开。 4 制订下一阶段计划缺乏依据 计划过程需要评估和审核,而这些工作最基本的条件是软件的配置管理。如果软 。杨一平,现代软件工程技术与c 涮的融合,人民邮电出版社,2 0 0 2 年版 。h t t p :b l o g c s d n , n e f f a m 2 0 0 4 a r c h i v e 2 0 0 6 0 2 1 1 0 5 9 6 4 1 4 a s d x 2 0 0 5 1 2 6 对外经济贸易大学硕士论文 件的配置管理方面薄弱,进一步制定计划将缺乏依据。 1 4 2 本土中小软件公司实旋配置管理的意义及可行性 我国软件行业由于进入壁垒较低,所需的资金和人员相对于传统行业而言都少得 多,因此中小型企业比重十分之大,据不完全统计,我国5 0 以上的软件企业都是销售 年收入在1 0 0 0 万以下,员工数少于5 0 人的中小企业。这些公司由于机制灵活小巧, 可以充分满足社会上对软件需求的多样性。但同时,这些创业者往往技术出身,缺乏 必要的管理头脑,再加上企业人员流动性大、缺乏雄厚资金支持等特点就很容易造成 企业开发过程中管理薄弱、混乱,软件产品总处于一种低水平、重复开发的状态,没 有市场竞争力,因此无法做大做强,造成我国的软件企业目前还是以中小型为主的局 面。如果这些企业能够切实提高过程管理的质量,那么对我国软件产业的贡献是不可 估量的。 并且在软件过程管理中,配置管理对于中小企业而言是比较容易实施,且效果非 常明显的,原因如下: 1 首先配置管理的对象是软件企业所有的相关制品包括各种文档、代码、测 试用例等等,这里的制品。不仅指不同类别的制品,比如文档和代码,也指同一制品 的不同版本,他们都要被完整的保存下来,并且按照其内部的对应关系形成完整的线 路,来达到可追踪的目的。因此,配置管理实施的对象是具体而实在的东西,很容易 精确把握,对公司来说接受程度高。 2 配置的实施具有相对独立性,不依附于任何开发方法或者管理基础之上,因此, 在很多企业中,配置管理完全可以在其他管理活动没有开展或者还不成熟时独立进行, 它的实施对企业现有流程的影响不大,企业很容易展开,并且快速取得成效。 3 其次市场上已经推出了比较成熟的工具支持,比如微软的s o u r c e s a f e 。l l n u x 平台下的c v s ,以及重量级的配置管理工具r a t i o n a lc l e a r c a s e 等等,从价位到功能 都可以满足不同层次的需求。只要企业能够有足够的决心和耐心将这些工具真正用于 企业的生产流程,配置管理是不难取得成功的。 因此针对中小软件企业的配置管理研究对于我国软件质量的全面提高无疑是十分 现实和可行的手段,这也是本文之所以存在的根本原因。 o 市场报2 0 0 3 年3 月2 8 日第六版 7 对外经济贸易大学硕士论文 第二章配置管理关键功能域 软件配置管理因为一直贯穿整个开发过程,因此是相当琐碎的,为了实现控制变 更,高效、有序的存放、查找和利用软件开发信息这一根本任务,软件配置管理需要 完成以下五个功能域: l _ 配置标识 2 版本控制 3 变更控制 4 状态报告 5 配置审计 2 1 配置标识 配置管理的对象是配置项,一切功能的实施都必须在这之上来操作,因此毫无疑 问,配置项的确定和标识是第一个要完成的功能域。 2 1 1 选择配量项 配置项可以由个或多个文件组成,如果每一个软件开发中出现的文件都要对应 一个配置项,那可能成本很高而且不便于管理,因此就要进行一定的筛选,对于相当 稳定,不易变化并且对最终产品没有直接影响的工作产品可以不作为配置项进行管理, 譬如状态报告而项目计划,需求规格说明,设计文档,测试计划和数据,源代码, 可执行代码,工具,质量手册等这些就是比较典型的配置项。 另外还可以对配置项进行一定程度的集成,譬如可以把用来生成一个“构件”的 几个代码文件设定为一个配置项来进行统一管理。 2 1 2 标识配置项 配置项的标识使配置项被唯一识别,有效的配置标识是其他管理活动的前提,如 果没有被很好的标识,想要控制这些配置的变更、建立准确的记录和报告、进行审核 配置是不可能的。 标识内容包括:配置项名称、与其他配置项的联系以及版本信息等。标识的具体 形式可以根据需要进行不同的设计,但必须都要具有以下三个特点: 1 唯一性:在一个项目内不能出现重名,以避免混淆。 2 关联性:由于文件之间存在复杂的关联,在修改某一配置项的同时,还要修改 其它相关文件,因此配置项的命名还要体现出该配置项与其他配置项的联系以及版本 信息,以便管理人员、开发人员能明了软件系统中各配置项之间的相互关系。 3 描述性:配置项本身的每一个组成部件的功能、性能和物理特征在标识上也要 对外经济贸易大学硕士论文 有必要的信息描述。 2 1 3 建立配置库 标识好了的配置项要集中存储形成配置库( s c l ) ,软件开发过程中的各配置项的 各版本包括半成品或阶段产品以及最终产品都要存放在s c l 里。 2 2 版本控制 版本管理是针对各种软件配置项的修改和变化的管理。它的主要功能是记录和追 踪文件的变更,可以在任何时候恢复任何_ 个配置项的任意版本,保证产品的可追溯 性,为调整代码、清除b u g 提供了很大帮助; 此外,版本管理的另一个主要功能是支持并行开发,它能有效地解决版本的同步 以及不同开发者之间的沟通问题,从而减少错误、保证质量、提高了效率。版本管理 是软件配景管理的核心功能。 2 2 1 版本演进 版本控制规定:开发人员想编辑或修改一个文件时,必须通过检出( c h e c ko u t ) 方式来访问s c l 中的文件,修改后再通过检入( c h e c ki n ) 方式以新的版本文件形式 出现在配置库中,而不是覆盖原始文件。 如图2 1 所示,文件在修改后以1 4 的新版本与原先版本共同保存在配置库中: i 本地i 作目录 c h e c k i ni 勿 口醪 ,* 夕矽 l f i l e n a m e c p p s c l 图2 1 版本的c h e c ki n 资料来源:本研究整理 这样,文件的任何变动都可以保留下来,如果日后发现变动有误,可以很轻松的 进行修正而不会担心代码丢失的问题。 9 对外经济贸易大学硕士论文 2 2 2 加锁机制 为了防止多人同时对同一版本文件进行修改,版本管理使用了加锁的控制功能, 当某文件被检出时自动加锁,其他用户不能再次检出同一文件,直至该文件被检入时 自动解锁。加锁机制保证了多人同时开发时软件资源的内容一致性和正确性。 2 2 3 版本分支与合并 随着项目规模的扩大,并行开发已成为必然趋势,经常出现两个或两个以上的人 或团队针对同一个文件或整个软件系统进行同步的变更,这时加锁机制就不能满足开 发速度的要求了,于是版本管理又提供了分支功能:在需要的时候,从当前版本处复 制一或几份作为并行开发分支的第一个文件版本,并行开发者针对各自分支进行开发, 开发过程表示为分支的版本演进,开发结束后再归并到主线上。这样针对同一个目标 的并行开发即可以共享成果又能互不干扰。版本的合并包括针对单个文件的不同版本, 以及多个开发分支的合并两个部分。一般在一段文件开发结束后,开发人员要对一系 列的版本进行合并。 作为一个单独分支,新项目将与随后对原始项目( 在主要分支上) 所进行的变更 进行隔离。 如下图2 2 所示: 1 0 对外经济贸易大学硕士论文 图2 2 版本分支与合并 资料来源:本研究整理 由于分支的存在,各配置项的版本显示呈现出“树”状,因此被形象地称之为版 本树。 2 。3 4 版本标签 随着开发的进行,配置库中的文件版本越来越多,光从名称上寻找目标文件已经 不够方便,所以版本标签也应运而生。 标签本身并没有更多的语义,需要开发机构自行定义其含义,譬如可以创建 r e l e a s e l 这样的标签类型,把它关联到组成发布版本l 的所有相关配置项版本上。 2 3 变更控制 配置管理最本质的意义就在于通过控制软件开发中各种产品的变更来确保开发方 向的正确性,因此广义的变更控制就是配置管理,这里指的是狭义的变更控制:针对 基线配置项的变更活动迸行严格控制。基线是被正式审查和认可了的一个或一组配置 项,标志软件开发过程的各个里程碑,它是进一步开发的基础,对其进行的变更如果 不能有效的控制好,就会造成先前工作成果的流失和误导以后的开发工作,造成严重 后果,因此变更控制是配置管理中最关键的一环。 2 3 。1 基线的变更 基线的变更原因大致可以分为两类:修正错误和升级。 1 为改正错误的变更:如果在后期工作中发现前面阶段产生的基线中的错误,例 如在实现阶段发现了设计错误或者设计报告中的缺陷,就必须对此进行变更。 2 为了增加或者删除某些功能,或者为了改变完成某个功能的方法而需要的变更: 或许基线本身没有错误,但是随着开发的进行,客户需求也在变化,这是就需要对之 进行相应的变更。 开发人员、测试人员、维护人员以及用户等都可以根据实际情况对基线提出变更 申请,但无论是哪一种情况,基线一旦划定,由该基线控制的各配置项的历史版本均 处于锁定或严格受控状态,任何对基线的变更都必须严格按变更控制流程来进行。 2 3 2 变更控制流程 每个软件开发组织都要事先按有关规定以及结合软件本身的特点,设计一份标准 格式的更改申请单( c r ) ,并安排配置库管理员( c m o ) 负责接收c r ,c m o 要审查申请 单的清晰性和完整性,不符合要求的,及时退还申请人;符合要求的,打上跟踪标记, 并登记在更改申请数据库中,然后在规定时间交由配置控制组( c c b ) 讨论,由c c b 负 对外经济贸易大学硕士论文 责做出是否更改的决定,并制定更改计划。 c m o 完成c r 分类和标识后,提交给c c b 讨论。c c b 收到c r 后,分析此更改的必要 性,技术可行性并权衡其他的更改策略和方法:所涉及的有关软件配置项;对系统功 能和性能的影响:更改所需的资源是否合理、充分,以及对整个开发进度和经费的影 响等,最后决策是否实施此项更动。 c c b 可以做出批准、不批准或推迟更改请求的决定,也可要求申请人提供更充分的 信息或进一步的分析。 对已批准更改的c r 要形成更改实施意见,并由相应领导签字、通知相关人员执行; 对被拒绝的c r 要连同拒绝理由一并退回给更改申请人:需要延期的则由c m o 存档,在 适当的时候再提交c c b 讨论。 c m o 要及时将获准的c r ,送交相关开发组织负责人,由其负责安排相应的资源, 根据变更需求决定由配置库中提出目标基线s c i 或引出分支来实施更改。 在实施更改时,要注意按照c r 及c c b 实施意见上的内容,严格按设计一编码一测 试的流程进行;与程序相关的文档也必须做出相应修改,以保证一致性 一旦完成更 改并通过了单元测试( 有时还必须有集成测试) ,还必须有反复的回归测试来保证变更 已达到改良的目的,并且不会导致其他功能的失效。 修改后的配置项连同相应的回归测试报告经审批后一并提交给c m o ,重新履行入库 手续,新版本基线即替代旧版本,打好标签;c m o 还要生成变更报告并通知给所有相关 人员。 只有当完成对代码和数据更改的测试,相关文档也作了相应更改,并且对全部更 改进行了检测之后,才算完成了基线更改任务。 变更管理的一般流程如图2 3 所示: 图2 3 更改控制流程图 资料来源:本研究整理 1 2 对外经济贸易大学硕士论文 2 4 状态报告 配置状态报告是根据配置项操作数据库中的记录,以定期或事件驱动的方式,按 照标准格式提交给相关管理层和开发组成员,用来报告软件配置当前状况的文件。配 置状态报告着重反映当前基线配置项的状态,通过配置状态报告,可以了解基线配置 项的状态、当前的工作进度、变更对项目进展的影响等情况,从而为开发决策提供参 考依据。一个好的状态报告应该能回答以下关键的具体问题: 1 某配置项的状态是什么? 2 某变更请求被批准了吗? 状态如何? 3 哪些配置项会被该变更请求影响? 4 变更请求何时被批准的? 谁批准的? 5 变更请求是由谁实现的? 何时完成的? 谁复审的? 谁批准的? 6 变更请求是基于哪个版本? 7 新版本的区别是什么? 8 每个月提出的变更请求有多少个? 批准率是多少? 9 每个月的问题报告( p r o b l e mr e p o r t ,p r ) 是多少? 状态如何? l o 问题缺陷的主要原因是什么? 等等 状态报告中提供的数字一般都是用数据库中的客观数据通过工具自动生成,因此 它可以真实的反映出各配置项的当前状态及变更情况,比如可以客观地反映出c r 的已 完成和末完成工作量,这就避免了项目实际情况与进度报告不符的问题发生,从而可 以更有效的进行管理和控制。 2 5 配置审计 配置审计主要作用是作为变更控制的补充手段,其目标是为了确保软件配置管理 的有效性,不允许出现任何混乱现象,体现了配置管理的最根本要求。配置审核可分 为功能配置审核( f u n c t i o n a lc o n f i g u r a t i o na u d i t ,f c a ) 和物理配置审核( p h y s i c a l c o n f i g u r a t i o na u d i t ,p c a ) : 2 5 i 功能配置审核 功能配置审核( f c a ) 包括: l - 验证配置项的实际性能与软件需求规格说明一致,并符合基线文档要求; 2 通常要审查测试方法、流程、报告和设计文档等; 3 只有在完成较高层次的集成之后进行。 其主要目的是验证配置项的实际功能是否与软件需求相一致。一般采用结构化的 。王海涛,软件配置管理,清华大学出版社,2 0 0 4 年版 对外经济贸易大学硕士论文 和定义好的测试序列来进行验证,重点在于看新的或修改过的配置项性能是否符合需 求,在大多数情况下,不仅要确认配置项满足了需求的要求,并且没有带来非预期的 问题。 实施配置审核的时机通常为软件产品阶段交付或是正式发行前,或软件开发的阶 段工作结束之后以及在维护工作中定期地进行,通常由管理层代表、项目组人员及非 项目组人员,例如其它项目的配置管理人员,或者客户代表执行,有时也可由外部机 构来审核。 2 5 2 物理配置审核 物理配置审核( p c a ) 包括: 1 确定要交付的产品是否存在; 2 保证交付的产品确实包含所有必需的项目,如正确版本的源代码、资源、文档、 安装说明等等。 物理配置审核的目的是为了验证配置项符合预期的物理特性,这里所说的物理特 性是指特定的媒体形式,譬如某样产品交到客户手中是要以光盘的形式,那无力配置 审核就要检查是否该光盘存在,是否正常读取,是否包含了所有产品项等。 物理配置审核的完成标志着产品基线的建立,一般是在成功地完成了功能配置审 核之后进行。 两种审核各有侧重点,功能配置审核确认各配置项均正确反映需求;物理配置审 核确保配置项及其介质的有效性,即:文文一致、文实相符。 2 6 关键领域之间的关系 以上主要介绍的是配置管理的五大关键域,他们之间以配置标识和版本管理为基 础,以变更控制为核心,再辅之以状态报告和配羞审计作为监控的手段。 其中配置标识处于最底层,因为只有明确了要管理的内容,其他几项活动才能展 开。而版本管理则是最重要的基础工作。版本化记录了某一配置项发展历程上的各个 阶段,这使得其他工作如标记和基线都可以很容易的展开。 变更控制则是配置管理的核心,前面的配置标识和版本管理也无非是为了保证有 效的变更控制。 最后状态报告和配置审计是重要的监控手段。配置管理的目的是对软件开发进行 更好的控制,但不应忘记其本身也是一个管理过程,应该有相应监控机制,来预防或 者纠正可能发生的错误。状态报告为配置管理相关人员提供了一个很好的自省机会, 能够以“批评和自我批评”的方式,来排除故障。而配置审计则对配置管理的结果又 进行了最后的把关,保证配置管理的商质量完成a 几个领域之间的关系如图2 4 所示: 1 4 对外经济贸易大学硕士论文 图2 4 软件配置管理各关键领域之间的关系 资料来源:本研究整理 综上所述,配置管理的5 大关键过程域形成一个围绕软件开发整个生命周期的控 制流程,融入到软件开发过程的各个环节中,保证开发方向的正确性和开发资源的一 致性、完整性,最大限度的减少混乱,配置管理是改进软件过程、提高过程能力成熟 度的理想切入点。 对外经济贸易大学硕士论文 第三章基于中小企业的配置管理解决方案 本文所要提出的是一个支持中小型软件企业从无到有进行配置管理的方案,将上 文五个相关关键域有效地融入到软件开发的各个过程中,具体涉及到组织策略、规范 制定、人员工具的选择和实施步骤等各部分内容。该方案的建立是为相关类型的软件 企业提供一种正确的标准化解决之道,帮助企业根据自身的实际情况加快配置管理的 实旋步伐,保证其成功应用,从而达到控制变更、减少混乱、开发过程可视化以及完 成产品一致性和有效性的目的。 基于中小企业的配置管理解决方案框架如下: 1 前期准备 2 构建软硬件环境 3 版本控制 4 变更控制与开发阶段的融合 5 经验总结与全面实旌 3 1 前期准备 3 1 1 实施策略 软件配置管理实施策略分为增量式和一步式两种,对于中小型的这种发展型组织, 一步到位式的全面实施方式显然风险过大,本方案的建议是首先选择一个合适的实验 项目,通过实地运作来确定所计划的配置管理是否能满足组织的实际需要,目标项目 本身要具有一定的复杂性,这样可以尽早在s c m 实验过程中发现更多的情况,便于改 良后推进全面实施;但必须又要有较强的独立性和隔离性,毕竟是试验,需要将出错 的影

温馨提示

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

评论

0/150

提交评论