(计算机应用技术专业论文)支持协同的软件配置管理过程建模和应用.pdf_第1页
(计算机应用技术专业论文)支持协同的软件配置管理过程建模和应用.pdf_第2页
(计算机应用技术专业论文)支持协同的软件配置管理过程建模和应用.pdf_第3页
(计算机应用技术专业论文)支持协同的软件配置管理过程建模和应用.pdf_第4页
(计算机应用技术专业论文)支持协同的软件配置管理过程建模和应用.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)支持协同的软件配置管理过程建模和应用.pdf.pdf 免费下载

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

文档简介

支持协同的软件配置管理过程建模和应用 摘要 软件配置管理是贯穿整个软件生命周期的一个支撑过程,是软件项目成功 的重要保证。在软件开发过程中,完成一个项目任务需要不同角色成员进行协 作。目前中小企业的软件配置管理在自动化、流程控制、管理变化、和团队协 作方面还没起到作用,主要因为目前适合中小型项目的配置管理工具仅支持一 定的配置管理活动,不能在整体流程上提供很好的支持,这对软件配置管理工 具提出了一个重要的需求:协作性。因此需要更有效的支持协同的配置管理工 具的产生,这也是本文研究的出发点。 本文以支持协同,提高中小型企业配置管理过程的敏捷性为目的,研究了 软件配置管理的基本理论,引入敏捷思想,对支持协同的配置管理进行需求分 析,改进了一个配置管理概念模型。接着,在配置管理概念模型的基础上,利 用配置管理模式,提取配置管理活动,对支持协同的配置管理过程建模,该模 型不但能清楚地描述出配置管理的整个过程,而且体现了不同角色在软件配置 管理过程中的协作关系。然后重点讨论了过程模型中有利于支持协同的关键问 题:工作空间管理、变更管理、过程控制等。最后使用l o t u s 的相关技术和工 具,根据所提过程模型,设计开发了支持协同的配置管理原型系统,并将其应 用于“煤质管理信息平台 的开发过程中。 关键词:支持协同,敏捷思想,软件配置管理,c m m i ,模式 p r o c e s sm o d e l i n ga n da p p l i c a t i o no ns 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 ts u p p o r t i n gc o o p e r a t i o n a b s t r a c 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 ti sas u p p o r t i n gp r o c e s st h r o u g ht h ee n t i r el i f e c y c l e ,w h i c hi s t h ei m p o r t a n tg u a r a n t e ef o rt h es u c c e s so fs o f t w a r e i nt h es o f t w a r e d e v e l o p m e n tp r o c e s s ,t h ec o m p l e t i o n o fap r o j e c tt a s kr e q u i r e sc o o p e r a t i o nb e t w e e n m e m b e r so fd i f f e r e n tr o l e s a tp r e s 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 td o n tp e r f o r ma r o l ei na u t o m a t i o n ,p r o c e s sc o n t r o l ,c h a n g em a n a g e m e n t ,a n dt e a mc o o r d i n a t i o ni nm i d d l e o rs m a l le n t e r p r i s e s ,m a i n l yb e c a u s et h ec 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 tt o o l sw h i c ha r e s u i t a b l ef o rm i d d l eo rs m a l lp r o j e c t so n l ys u p p o r ts o m ec o n f i g u r a t i o nm a n a g e m e n t a c t i v i t i e s ,d o n tp r o v i d eg o o ds u p p o r tf o rt h eo v e r a l lp r o c e s s t h i sb r i n g s f o r w a r da n i m p o r t a n td e m a n dt os c m :c o l l a b o r a t i v e t h e r e f o r e ,t h es u p p o r t o fm o r ee f f e c t i v e c o l l a b o r a t i v eo ft h es e l e c 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 tt o o l i sn e e d e d ,w h i c hi sa l s ot h e s t a r t i n gp o i n tf o rt h ed i s s e r t a t i o n t h i sd i s s e r t a t i o nt a k e st h ea g i l i t yo 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 tp r o c e s sf o r m i d d l eo rs m a l le n t e r p r i s e sa sat a r g e t ,r e s e a r c h e st h eb a s i ct h e o r yo fs 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 ,l e a d i n gi n t oa g i l i t yt h o u g h t ,a n a l y z e st h ec 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 t s u p p o r t i n gc o o p e r a t i o n ,i m p r o v e sac o n f i g u r a t i o nm a n a g e m e n tc o n c e p t u a lm o d e l t h e n , b a s e do nt h es c mc o n c e p t u a lm o d e l ,u n d e rt h eg u i d a n c eo ft h es 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 tp a t t e r n ,d r a w s o u tc o n f i g u r a t i o n m a n a g e m e n ta c t i v i t i e s ,m o d e l i n g t h e c o n f i g u r a t i o nm a n a g e m e n ts u p p o r t t i n gt h ec o l l a b o r a t i v e ,t h e m o d e lc a nn o to n l yc l e a r l y d e s c r i b et h ew h o l ep r o c e s 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 dr e f l e c t st h ed i f f e r e n tr o l e si n t 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 p r o c e s sc o l l a b o r a t i v er e l a t i o n s h i p t h e n t h e d i s s e r t a t i o nd i s c u s s s e sk e yi s s u e si nt h ep r o c e s sm o d e l :w o r k p l a c em a n a g e m e n t ,c h a n g e m e n t m a n a g e m e n t ,p r o c e s sc o n t r o l ,a n d s o o n l a s t l y , t a k i n g u s eo ft h ep r o c e s sm o d e l ,t h e d i s s e r t a t i o nd e s i g n e sa n dd e v e l o p 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 tp r o t o t y p e s y s t e ms u p p o r t i n gc o o p e r a t i o nb a s e do nt h et e c h n o l o g i e sa n dt o o l so fl o t u s ,a n da p p l i e si t i nt h ed e v e l o p m e n to fc o a lq u a l i t ym a n a g e m e n ti n f o r m a t i o ns y s t e m ( c q m i s ) k e yw o r d s :s u p p o r t i n gc o o p e r a t i o n ,a g i l i t yt h o u g h t ,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 ,c m m i ,p a t t e r n 插图清单 图1 1 煤质管理信息平台层次结构图3 图2 1 版本和元素的关系8 图2 2 基线8 图2 3c m m i 的阶段模型图。1 3 图2 4s c m 模式语言1 5 图3 1s c m 概念模型2 3 图3 2 软件配置管理模式的应用2 4 图3 3 用户、用户组、角色、权限关系图2 7 图3 4 支持协同的配置管理过程模型3 0 图3 5 开发人员在私有工作区的工作流程3 2 图3 6 配置库中的数据流动3 4 图3 7 配置库和工作空间的关系3 5 图3 8 变更模型3 8 图3 9 变更控制流程3 9 图3 1 0 变更状态与操作关系图3 9 图3 1 1 非乐观锁检出过程。4 2 图4 1 系统总体实现架构4 6 图缸2 “缺陷提交”表单设计5 1 图4 3 软件配置管理基本流程5 2 图4 4c q m i s 项目中的目录组织结构。5 3 图4 5 用户登录5 4 图4 6 建立工作组5 5 图4 7 添加用户的详细信息5 5 图4 8 触发器( b l o c kd e v s t r e a m ) 核心代码5 6 图4 9 在s c c m s 支持下的提交活动5 6 图4 1 0 缺陷提交活动。5 7 图4 1 1 缺陷管理5 8 图4 1 2b u g 统计图5 8 表格清单 表2 1c m m l 2 中配置管理过程的目标和实践1 4 表3 1 与s c m 模式概念对应的s c c m 概念2 4 表4 1 “用户表单的详细设计4 8 表4 2 “权限组 表单的详细设计4 8 表4 3 “操作权限 表单的详细设计4 9 表4 4 “活动提交表单的详细设计4 9 表4 5 “缺陷提交 表单的详细设计4 9 表4 6 “缺陷管理信息 表单的详细设计5 0 表4 7 “报表统计”表单的数据设计5 0 表4 8 “图表统计”表单的数据设计5 0 i l l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所 知,除了文中特别加以标注和致谢的地方外,论文中不包含其它人已经发表或撰写过的研究成果, 也不包含为获得 金起王些太堂臧其它教育机构的学位或证书而使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位敝储躲圣、鲤 签字日期: 曝年占月段日 学位论文版权使用授权书 本学位论文作者完全了解金8 巴工些盔堂有关保留、使用学位论文的规定,有权保留并向国 家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权佥月巴王些太堂可 以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 靴做储虢舀、蝴 签字日期:) 鼹年月沙 学位论文作者毕业后去向: 工作单位: 通讯地址: 导师签名 前哆 签字日期:厉蟹f , e li 乙曰 电话: 邮编: 致谢 两年半的研究生学习生活快要结束了,值此毕业之际,我要向所有关心过 我、帮助过我的人表示感谢。 衷心感谢我的导师袁兆山教授。袁老师认真严谨的治学态度和工作作风将 令我终身难忘。在读研期间,袁老师为我们提供了优良的学习环境,在论文写 作过程中,袁老师给予我精心的指导和热情的鼓励。在生活上,袁老师给了我 无微不至的关怀。在这段期间里,我学到的不仅仅是专业知识,更是一种做人 的道理。袁老师以他在软件工程领域深厚的理论基础和对研究方向良好的把握, 给了我意义最深刻的指引。在此,我对他表示深深的感谢。 向所有在我读研期间给予我无私帮助的老师们表示深深的谢意,向参与本 论文送审、评审和答辩的老师致敬,感谢他们所付出的辛勤劳动。 感谢实验室的兄弟姐妹和我的室友,与他们的讨论交流大大地拓展了论文 的思路,令我受益匪浅。怀念我们在一起一起努力的时光,认识你们是我读研 期间最大的收获之一。 最后,感谢我的父母和家人在求学期间对我的鼓励。他们多年来始终如一 地关心我、支持我,使我可以毫无顾虑地进行学习和研究工作。他们的亲情是 我一生最宝贵的财富和精神支柱。 黄超男 2 0 0 8 年6 月 第一章绪论 1 1 课题的研究意义 人类社会的生活方式和劳动方式从本质上讲具有群体性、交互性、分布性 和协作性。计算机的发展,大大缩小了时间和空间对人类活动的限制,更有效 地促进人类社会群体间有目的的协作。为了研究群体协作的本质和特征,多个 学科都从不同的角度探索协同工作的规律,开发相应的工具来提高人类群体协 同工作效率。从上世纪八十年代中期开始出现的新兴研究领域“计算机支持的 协同工作 ,把“协同科学 这门研究不同学科中存在着共同本质特征的横断学 科与信息科学技术结合起来。 软件配置管理已成为各个软件机构实施软件工程活动必不可少的保障。现 在,中小企业已渐渐意识到软件过程与配置管理有着密切的联系。但是,传统 意义上的软件配置管理主要着重于软件的版本管理,缺乏软件过程支持的概念。 在大多数有关软件配置管理的定义中,也并没有明确提出配置管理需要支持协 同的概念。因此,不管软件的版本管理得多好,组织之间没有连接关系,组织 所拥有的只是相互独立的信息资源,从而形成了信息的“孤岛 。在c m 提供 了过程的支持后,组织之间通过过程驱动建立一种单向或双向的连接。对于开 发人员或测试人员来说,不必去熟悉整个过程,也不必知道整个团队的开发模 式,他们只需集中精力关心自己所需要进行的工作。 我国软件企业的规模普遍偏小,一般将开发人员在百人以下的软件企业划 归为中小软件企业。这类企业占我国软件企业总数的百分之八十以上。随着国 际化竞争力的冲击、中小企业对软件配置管理的认识也在提高,软件配置管理 在软件开发过程中的地位日显突出,但由于缺乏相关理论方法的指导和相关经 验,制定的软件配置管理方案往往不符合企业实际需要。 目前国内大部分这类公司使用的配置管理工具仅具有简单的配置管理功 能,在自动化、流程控制、管理变化、和团队协作等方面还没起到作用,即在 支持协同方面存在不足。同时针对开发过程对敏捷性和自动化的需求,软件配 置管理实践要能够为支持每个项目团队的开发过程提供足够的灵活性和自主 性。支持协同的配置管理可以很大程度地提高配置管理过程的敏捷性,目前针 对中小型企业的配置管理工具在这方面的研究还很少。因此,在软件配置管理 工作中,为了使支持开发过程的配置管理获得成功,需要研究支持协同的配置 管理过程建模,控制不同角色的配置管理活动规范地、有序地进行,最终构建 一个支持协同的软件配置管理支持环境。 1 2 课题提出的背景 1 2 1 理论背景 近来虽然国内一些企业对软件工程和配置管理的热情见涨,而且网上的专 题讨论、相关的培训也应运而生,究其原因不外乎是为了i s o9 0 0 0 认证以及 s w c m m 认证。但是虽然国内不少学者和单位翻译或编着了许多软件工程方面 的书籍,遗憾的是,作品的理论性、概念性太强,而可实践性和对实施的指导 不足。而且即使有些软件工程方面、软件能力成熟度模型方面的专著提到配置 管理,也主要是着重于讨论配置管理在能力成熟度模型中所处的位置,以及实 施软件配置管理的目标、实施方案、实施过程等。对于与软件开发人员日常的 开发活动更相近的如配置管理具体的管理活动、各种不同的配置管理模型、基 于这些模型的配置管理工具的使用以及实施阶段需要完成的各项任务、需要解 决的具体问题、注意事项等却极少提及。 过程详细描述了各种人员在整个软件生命周期中如何使用整个系统,过程 控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软 件开发环境中一个独立的部分,现在配置管理也开始提供这部分的功能。 目前的配置管理工具对过程的支持还很不够,而且支持方式差别还很大。 许多管理只是提供一个预先定义好的生命周期模型,并保证开发的每一步都按 照这个模型规定的进行。在理想情况下,c m 提供协同支持的结果是实现自然 而然的过程驱动,将变更流程化,业务处理自动化。这样,对于管理者来说, 就能达到过程改进的目的。这样做的好处是能够规范整个团队的各项工作。 当前的配置管理工具,着重点都是版本控制以及代码共享基本功能部分, 作为软件企业开发整体环节控制的配置管理工作,如果不能及时有效的进行交 流和通信,势必造成混乱和错误,这样可能会严重影响开发进程。协同的目的 是通过利用现有的计算机、通信技术来快速完成一个共同任务。而配置管理工 具在支持协同方面表现明显不足。因此需要更有效的支持协同的配置管理工具 的支持,这也是本文研究的出发点。 1 2 2 项目背景 课题来源于淮北矿业集团( 公司) 科研项目:袁庄煤矿煤质管理信息平台1 3 j 。 ( 1 ) 项目概述 煤质管理信息平台( c q m i s ) 是合肥工业大学计算机学院软件工程实验室为 淮北矿业集团公司袁庄煤矿设计的一套以煤炭质量管理为主要功能的应用软 件。 系统主要功能是利用信息技术改进煤炭质量管理过程中的煤质数据分析统 计、销售管理、以及报表处理等方面,实现对煤质管理信息的快速反馈、动态 跟踪。管理者可以随时多角度看到全面、准确的煤质管理过程中的化验分析, 计划制定,煤质监测,商品煤销售等数据信息,将复杂的数据统计与维护工作 转换为计算机高效处理方式,使煤质管理科学化,规范化,并为决策者对日常 的煤质管理工作提供辅助决策。 2 煤质管理信息平台以轻量级j 2 e e 平台为支撑,采用基于w e b 的三层体系结 构( 客户机一应用服务器一数据库服务器) ,是综合运用x m l 数据描述、a j a x 后台数据传输技术、m v c 设计模式等领先技术而构建起来的系统。项目层次结 构如图1 1 所示。 w e b 表示层 h t r pf 传输x m l ) ,一土一一一、 , 、 j d b c 浏览器 l i :应用服务器 i i i i i 数据库服务器 图1 1 煤质管理信息平台层次结构图 ( 2 ) 项目的软件配置管理实施总结 煤质管理信息平台于2 0 0 6 年筹备,2 0 0 6 年2 月正式启动,至今系统已交 付3 o 版本【4 j 。这个项目由项目组开发,采用统一的配置管理支持。系统的研 制开发,始终遵守现代软件工程指导思想,采用迭代开发与测试驱动开发相结 合的思想,运用先进、适用的软件开发技术和支撑工具。 在项目开发时,开发组成员对配置管理的重要性已经有了充分的认识,制 定了详细的配置管理计划和软件配置管理规范,其中配置管理计划 中包括了人员及职责分配、配置管理软硬件资源、配置项计划、基线计划与配 置库备份计划,软件配置管理规范中制定了配置项版本号规则、配置项状态 变迁规则、配置项版本控制流程、配置库备份规则和源码提交规则。 在这个项目的开发中,通过配置管理实施,收获到了以下经验: 充分认识到配置管理的重要性,通过配置管理的实施,大大提高了开发 的效率和产品的质量。 3 制定了详细的配置管理计划和较实用的软件配置管理规范,采 用了比较先进的管理方法,使得配置管理的实施有章可循。 使用c v s 作为版本控制工具和b u g z i l l a 作为缺陷跟踪工具来进行软件 配置管理的执行,并且通过c v s 与开发平台e c l i p s e 的集成,使开发人 员方便使用。同时试验使用配置管理工具i b mc l e a r c a s e 和c l e a r q u e s t 进行软件配置管理工作。 开发前对部署环境进行试验,保证开发工作的正常运行。 对开发人员进行配置管理方面的培训工作,同时使开发者切身体会到采 用配置管理的好处,从而用积极的态度去配合配置管理人员的工作,更 好的保证开发工作的顺利进行。 但同时也发现了不少问题,表现在: 配置管理工具不能很好的支持软件配置管理过程中各角色的协同。 对配置管理计划没有严格执行。开发人员为了加快项目进度,往往忽视 甚至省略了配置管理的某些规范步骤的执行。 开发组成员分散,不能进行及时通信,因而不能及时看到其它成员的成 果,不能及时更新本地机上关于其它成员的最新开发版本,这就加大了 版本冲突的可能性。 配置管理工具的自动化支持不够。使用的配置管理工具c v s 和缺陷跟 踪工具b u g z i l l a 不能很好的集成,且在过程控制,自动化构建,发布管 理,权限管理等功能需求方面均需要手工完成。 企业级配置管理工具i b mc l e a r c a s e 和c l e a r q u e s t 虽然功能强大,但对 系统配置要求很高,且操作复杂,不适合中小型项目。 分析以上问题产生的原因,一方面是由于经验的缺乏,但更主要的是缺乏 一个合适的、能支持协同的软件配置管理工具。 1 3 国内外研究现状 s c m 是软件开发实施规范化、标准化、工程化的重要管理手段。目前,国 内外关于软件配置管理的研究相当活跃,也出现了一些产品和原型系统。其中, 最具有代表性的软件配置管理产品主要有:由s o f i t o o l 公司开发的c h a n g ea n d c o n f i g u r a t i o nc o n t r o l ( c c c ) ,是最早的配置管理工具之一;由b o r l a n d 软件公 司推出的s t a r t e a m ;m i c r o s o f t 的v i s u a ls o u r c es a f e :r a t i o n a l 公司的c l e a r c a s e : 及开源的c v s 等。 近年来出现了分布、多层次的软件体系,以及基于大粒度软件构件技术的 软件开发方法。为适应这些新的软件开发需求,工具开发者也在不断推陈出新, 不断的改进软件配置管理工具的功能。北大软件工程研究所研究了基于构件的 配置管理并开发了相应的软件配置管理系统j b c m 。华中理工大学进行了集成 的配置管理系统的研究并开发出软件配置管理系统h s c m s 。 4 随着敏捷方法逐渐流行并成功应用,“敏捷配置管理( a g i l es c m ) ”的术语首 先在2 0 0 0 - - 2 0 0 2 年由b r a da p p l e t o n 和s t e v eb e r c z u k 提出。接着被引起广泛 关注。2 0 0 4 年底,c mc r o s s r o a d s 社区开始出现较多的讨论。目前,每段时期 都有关于a g i l es c m 的一个专题。一些软件配置管理工具厂商如i b m 、 t e l e l o g i c 、b o r l a n d 等也开始关注敏捷软件配置管理,并针对敏捷用户提出了技 术白皮书。k e v i na l e e 于2 0 0 6 年8 月发表了“敏捷软件配置管理与i b mr a t i o n a l 工具集”;p e t e rs c h u h 于2 0 0 7 年5 月发表了“大型组织的敏捷配置管理”。 敏捷配置管理的提出,目的在于在传统配置管理的基础上,提高配置管理 过程的灵活性和敏捷性,而支持各角色协同的配置管理,可以使活动快速有效 的进行,对开发过程提供灵活的支持。不过,由于国内对s c m 的研究起步较 晚,掌握s c m 要领与技术的人还不是很多。随着软件企业对配置管理认识的 提高与经验的积累,要提高工作效率,对s c m 敏捷性的研究己经成为当今的 研究热点。而目前的配置管理工具更多关注的是对每个独立的配置管理活动的 支持,而本文考虑支持各角色协同,提高整个配置管理过程的效率。 1 4 组织结构 第一章绪论。介绍了课题的研究意义、背景、国内外研究现状以及论文的 组织结构。 第二章软件配置管理理论基础。总结了软件配置管理的定义、基本概念、 主要活动及c m m c m m i 和软件配置管理模式。 第三章支持协同的配置管理过程建模。阐述支持协同的配置管理需求,引 入敏捷思想,改进了s c m 概念模型。在此基础上,提取配置管理活动,对支 持协同的配置管理过程建模,并讨论了过程模型中的关键问题。 第四章基于配置管理过程模型的s c c m s 的设计和实现。使用l o t u s 的相 关技术和工具,对支持协同的配置管理原型系统进行实现,并应用于c q m i s 项目的开发过程中。 第五章总结与展望。 5 第二章软件配置管理理论基础 2 1 软件配置管理概述 2 1 1s c m 的定义 软件配置管理【1 ( s c 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 n t ) 是一组活动,被 设计来通过标识可能变更的工作产品、建立它们之间的关系、定义管理这些工 作产品的不同版本的机制、控制施加的变更以及审计和报告所发生的变更而控 制变更。 在i e e e 标准7 2 9 1 9 8 3 中,对软件配置管理进行了定义,包括:标识识别 产品的结构、产品的构件及其类型,为其分配唯一的标识符,并以某种形式提 供对它们的存取。 控制:通过建立产品基线,控制软件产品的发布和在整个软件生命周期中 对软件产品的修改。 状态统计:记录并报告构件和修改请求的状态,并收集关于产品构件的重 要统计信息。 审计和审查:确认产品的完整性并维护构件间的一致性,即确保产品是一 个严格定义的构件集合。 生产:对产品的生产进行优化管理。它将解决最新发布的产品应由哪些版 本的文件和工具来生成的问题。 过程管理:确保软件组织的规程、方针和软件周期得以正确贯彻执行。它 将解决要交付给用户的产品是否经过测试和质量检查的问题。 小组协作:控制开发统一产品的多个开发人员之间的协作。 软件配置管理使整个软件产品演进过程处于一种透明状态,开发人员、测 试人员、项目管理者、质量保证组以及客户可以轻易地从配置管理中得到有用 的信息,配置管理可以告诉他们软件产品由什么组成,处于什么状态,对软件 产品做了什么变更,谁做的变更,什么时间做的变更,为什么要做此变更。 2 1 2s c m 的基本概念 ( 1 ) 软件配置与配置项 所谓配置,就是一系列相关内容( 又被称为可配置项或配置项) 的集合,它满 足以下要求: 通过配置i d 可以唯一地标识配置。 其中的项是一致的,例如每一项与其它项之间的关系都是清楚明确的。 作为一个整体,这一系列的内容都是可以重新构建出来的。 配置项是配置中的基本部分,是配置管理的最小单元。软件配置项【2 l ( 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 l ) 是软件配置管理的对象,一组软件配置项通 过特定的系统模型组合形成一个特定的软件配置。在中国国家标准计算机软 6 件配置管理计划规范中指出:“软件配置是一个软件产品在软件生命周期的各 个阶段所产生的各种形式( 机器可读或人工可读) 和各种版本的文档、程序及其 数据的集合。该集合中的每一个元素被称为该产品的软件配置中的一个配置项 ( c o n f i g u r a t i o ni t e m ,c i ) ”。各种管理文档和技术文档、源代码及其可执行代码、 运行时所需的各种数据及相应的存储介质等,均可构成软件配置项,它们经过 评审和检查通过后进入软件配置管理。版本控制的对象可以是大粒度的软件配 置,也可以是小粒度的软件配置项。 作为软件配置项,其自身还必须要满足以下要求: 可标识和可版本化:每一个配置项都有一个版本号,用于标识它的变更历史。 可跟踪:作用于配置项上的任何活动都是可以跟踪的。 可控制:只有通过一个已文档化的并且可控制的过程,才能对于每个配置项 加以改动。 ( 2 ) 软件配置库 软件配置库又称作软件受控库【5 1 ,是指在软件生命周期的某一个阶段结束 时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人 工可读信息的库。软件配置管理就是对软件配置库中的各配置项进行管理。 对软件配置库的要求首先是安全可靠性,必须保证软件配置库中的内容不 被任意删除、修改,保证配置库不被非法用户获取:其次是完整性,要保证各 阶段的基线各配置项的完整性;再次,要能够方便的对软件配置库进行备份和 恢复,在正常的情况下做好每日或每周的备份,保证在出现异常的情况下,能 够方便地进行恢复。 ( 3 ) 版本 源文件是一个软件最为重要的组成单元之一,因此对源文件的管理也就成 为软件组成单元管理的最重要的一环,是进行高效的软件开发的关键所在。对 源文件的标识包括文件名和版本两个基本方面。版本作为源文件的一个标识部 分,软件开发人员在对它的引用过程中所关心的问题,实际上是该版本能够给 出什么内容的源文件。因此,版本实际上是一种抽象,用来定义一个具体实例 应该具有什么样的内容和属性。随着软件的开发,源文件的版本也不断的演变, 这些不同的版本便形成了_ 个源文件的版本空间。 要对源文件标识包括两个基本方面:一是文件名,二是版本。版本,亦称 配置标识,是指某一特定对象的具体实例的潜在存在。版本和元素的关系如图 2 1 所示。 7 警累 q ) r i g h t v a l i d 址o r j a v a 掣 sy姗?5m_元素ta l i j s p 。 元素的版本树 特定版本 图2 1 版本和兀素的关系 ( 4 ) 基线 1 ) 基线的定义 i e e e 对基线的定义【6 】是:“已经正式通过复审核批准的某规约或产品,它因 此可作为进一步开发的基础,并且只能通过正式的变化控制过程改变。刀简单地 说,基线就是项目储存库中每个工件版本在特定时期的一个“快照 。它提供一 个正式标准,随后的工作将基于这个标准进行,并且只有经过授权后才能变更 这个标准。建立一个初始基线后,其后对它进行的每次变更都将记录为一个差 值,直到建成下一个基线。常见的软件基线如图2 2 所示: 图2 2 基线 2 ) 基线的属性 通过正式的评审过程建立。 基线存在于基线库中,对基线的变更接受更高权限的控制。 基线是进一步开发和修改的基准和出发点。 2 1 3s c m 的对象 软件开发生命周期中所有纳入配置管理的对象有文档、模型、源代码、图 片等。配置项主要有两大类:( 1 ) 属于产品组成部分的工作成果,例如需求文档、 设计文档、源代码、测试用例等。( 2 ) 项目管理和机构支撑过程产生的文档。 每个配置项的主要属性有:名称、标识符、文件状态、版本、作者、日期 等。所有配置项都被保存在配置库里,确保不会混淆、丢失。配置项及其历史 记录反映了软件的演化过程。 2 1 4s c m 的主要活动 软件配置管理的实质【1 l 是进行配置标识、版本控制、变更控制、过程管理、 8 配置状态报告和审计的一系列活动,它们贯穿了整个软件生命周期。 ( 1 ) 配置标识 配置标识包括标识软件系统的结构、唯一标识独立的组件,并使其是可访 问的。配置标识的目的是在整个软件生命周期中标识系统各组件,并提供对软 件及其软件产品的跟踪能力。 有效的配置标识是进行其它配置管理活动的前提,如果配置项和相关的配 置文档没有被很好的确定,想要控制这些配置项的变更、建立准确的记录和报 告、审核配置项的有效性是不可能的。不准确或不完全的配置项标识和配置文 档可能会导致有缺陷的产品,从而延期交付并造成很高的维护费用。 ( 2 ) 版本控制 版本控制是对系统不同版本进行标识和跟踪的过程,它是全面进行软件配 置管理的基础。同时,版本控制也是支持并行开发的基础。 版本控制通过版本标识来记录每个配置项的发展历史,保证了版本之间的 可追踪性,即可以保证在任何时刻恢复任何一个配置项的任何一个版本。实际 上,对版本的控制就是对版本的各种操作控制,包括检入检出操作、版本的分 支和合并、版本的历史记录和版本的发行。 ( 3 ) 变更控制 变更控制是软件配置管理的核心和关键,指在整个软件生命周期中控制软 件产品的发布和变更。变更控制的目的是建立一个帮助保证生产符合质量标准 的软件,保证每个版本的软件包含所有必要的元素以及工作在同一版本中的各 元素可以一起正常工作的机制。变更控制告诉我们什么是受控的,受控产品如 何变更,谁控制变更,何时接受、恢复、验证变更。 对于大型的软件工程项目,不受控的变更将迅速导致混乱。充分利用人工 过程和自动化工具建立变更请求、许可、实施的机制尤为重要。 ( 4 ) 过程管理 确保软件组织的规程、方针和软件周期得以正确贯彻执行。它将保证软件 过程的正确执行,从而保证生产出高质量的软件产品。 ( 5 ) 配置状态报告 配置状态报告是指将己发生变化的配置项的有关信息发送给其它人员。在 一个大型的开发项目中,开发人员很有可能只关注于他们自己的那一部分一 即某些功能的增强或者与之相应的b u g 修改,从而失去了对整个项目的整体把 握,最后变得没有人知道项目整体的变更情况。而这正是软件开发者所不愿意 看到的,并且从实现的角度看也偏离了原来的需求。而状态报告则为软件项目 人员提供了一种保证每个人都与变更以及相应影响取得同步的机制,记录配置 的状态和保证基线产品及其变更建议的历史,并使相关人员了解配置和基线状 况。当一个软件配置项标识更改,或变更控制审核者批准一次变更,则生成一 9 个配置状态报告。主要描述配置项的状态、变更的执行者、变更时间和有何影 响。主要回答:配置项的状态、新旧版本的差别、有多少错误、此问题将会对 多少个文件产生影响。 配置状态报告主要是在版本控制与过程管理的基础上,通过量化的数据和 报表,体现软件开发的进度。 ( 6 ) 配置审计 所谓审计是指通过采样分析不同的对象,从而确保在整个活动中,有关过 程的规定都能被认真遵从。如果采用随机的方式加以采样,并且采样的频度足 够大的话,那么根据统计学的原理可知,就可以确保大部分活动均已遵循有关 过程的规定。对于一个好的审计而言,其主要原则是:采样的随机性、审计的 独立权威性;采样的目的在于保证过程被遵循,而不是为了发现个别人的违规 行为;采用相对来说仁慈的、非强制性的、可接受的方法。配置管理审计正如 其名称所反映的那样,是用于确保配置管理按照每个阶段的规定加以实施,并 且保证相应质量记录的存在。配置审计过程应当对系统中的变更加以采样( 并且 采样时不应局限于特定的组或者项目) 。 配置审计根据需求标准或合同协议检验软件产品配置,它说明系统是否满 足需求,是否对上一版本所有变更都已加入当前版本。配置审计的目的是检验 所有的软件产品都已产生并且被正确的识别和描述以及所有的变更要求可以根 据确定的软件配置管理过程和程序解决。它回答:系统和需求是否吻合,是否 所有变更都是在版本控制下。 2 1 5s c m 过程的柔性化 软件配置管理是确保软件项目成功的一项基本工程化规程。软件系统的复 杂性在不断增长、用于开发软件的项目环境复杂性在不断增长、生命周期不同 阶段的要求有所不同、组织机构的管理流程和人员也可能发生变化,因而,项 目对s c m 的需求会随着时间的推移而变化。s c m 工具必须具备灵活性,从而 能满足持续变化的项目需求惮j 。 在现实中,不同的软件开发项目有不同的需求和不同程度复杂性。这些需 求并不是不变的,而是总在变化。因而,在一个时期工作得很好的s c m 过程 到另一个时期可能会变得很不充分。对于任何一个项目,成功s c m 的关键是 尽可能接受更多的变更,同时不失去对软件的控制。在项目进行过程中,必须 持续地调优s c m 过程,从而让用于s c m 工具的管理开销能够满足持续变化的 项目需求。 在软件开发生命周期的不同阶段,项目对s c m 的要求会发生变化。好的 s c m 工具可以实现对不同的项目、生命周期的不同阶段、不同的人实施不同程 度的版本控制和变更控制。例如,在生命周期的初期,鼓励做出尽可能多的变 更,因而可以放松控制力度。当软件系统接近发布时,要明确地判断和约束是 1 0 否可以进行何种变更,严格控制并且准确地追踪所作的变更。 2 2c m m i 及其对s c m 的描述 ( 1 ) c m m 定义 c m m 的定义为:对于软件组织在定义、实现、度量、控制和改善其软件过 程的进程中各个发展阶段的描述。这个模型便于确定软件组织的现有过程能力 和查找出软件质量及过程改进方面的最关键的问题,从而为选择过程改进战略 提供指南。 s w c m m 为软件企业的过程能力【9 】提供了一个阶梯式的进化框架,它基于 过去所有软件工程成果的过程改善的框架,吸取了以往软件工程的经验教训, 是目前国际上最流行也是最实用的软件生产过程标准。 ( 2 ) c m m 的相关概念 1 ) 过程( p r o c e s s ) :i e e e 定义过程为“为实现给定目标所执行的一系列操作 步骤 【i e e e - s t d - 6 1 0 。 2 ) 软件过程( s o f t w a r ep r o c e s s ) :是指人们用于开发和维护软件产品及其相 关产品的一系列活动、方法、实践和革新。其中相关产品是指项目计划、 设计文档、编程、测试和用户手册等。当一个企业逐步走向成熟,软件 过程的定义也会日趋完善,其企业内部的过程实施将更具有一致性。 3 ) 软件过程能力( s o f t w a r ep r o c e s sc a p a b i l i t y ) :描述了在遵循一个软件过程 后能够得到的预期结果的界限范围。该指标是对能力的一种衡量,用它 可以预测一个组织( 企业) 在承接下一个软件项目时,所能期望得到的最 可能的结果。 4 ) 软件过程性能( s o f t w a r ep r o c e s sp e r f o r m a n c e ) :表示在遵循一个软件过程 后所得到的实际结果。 5 ) 软件过程成熟度( s o f t w a r ep r o c e s sm a t u r i t y ) :是指一个具体的软件过程 被明确地定义、管理、评价、控制和产生实效的程序。所谓成熟度包含 着能力的一种增长潜力,同时也表明了组织( 企业) 实施软件过程的实际 水平。随着组织软件过程成熟度能力的不断提高,组织内部通过对过程 的规范化和对成员的技术培训,软件过程也将会被它的使用者关注和不 断修改完善。从而使软件的质量、生产率和生产周期得到明显改善。 6 ) 软件能力成熟度等级( s o f t w a r ep r o c e s sm a t u r i t yl e v e l

温馨提示

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

评论

0/150

提交评论