`
yanfaguanli
  • 浏览: 664139 次
文章分类
社区版块
存档分类
最新评论

简述软件配置管理

 
阅读更多

一、简述软件配置管理

随着软件团队人员的增加,软件版本不断变化,开发时间的紧迫以及多平台开发环境的采用,使得软件开发面临越来越多的问题,其中包括对当前多种产品的开发和维护、保证产品版本的精确、重建先前发布的产品、加强开发政策的统一和对特殊版本需求的处理等等,这些问题在实际开发中表现为,项目组成员沟通困难,软件重用率低下,开发人员各自为政,代码冗余度高,文档不健全等;造成的结果是:数据丢失,开发周期漫长,产品可靠性差,质量低劣,软件维护困难,用户抱怨使用不便,项目风险增加等。解决这些问题的唯一途径是加强软件开发的管理,而软件开发管理的核心是软件配置管理。

什么是软件配置管理?软件配置管理是一套规范、高效的软件开发基础结构。作为管理软件开发过程有效的方法,SCM 早已被发达国家软件产业的发展和实践所证明。SCM 可以系统地管理软件系统中的多重版本;全面记载系统开发的历史过程,包括为什么修改,谁作了修改,修改了什么;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。SCM 对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。SCM 是通往ISO9000 和SEI CMM 标准的一块基石。

二、软件配置管理的主要活动

任何一个活动的执行首先是明确谁做,再明确怎么做,配置管理活动也一样,一般来说配置管理中的角色主要包括:

项目经理:项目经理在配置管理方面的职责是依靠配置管理员、系统管理员和系统体系结构设计人员的帮助,制定项目的组织结构和配置管理策略。这些工作包括: 定制开发子系统,定制访问控制,制定常用策略,制定集成里程碑,以及进行系统集成

配置管理员:配置管理员的职责是根据项目经理制定的开发组织结构和策略,实施、维护配置管理的环境。其主要职责如下:创建配置管理库,对存储库进行日常备份和恢复,维护配置管理环境,及管理配置管理相关的用户

软件开发人员:软件开发人员依据项目的开发和配置管理策略,创建、修改和测试开发工件

集成人员:对软件进行归并,形成相应的基线或发布版本

QA 人员:需要对软件配置管理有较深的认识,其主要工作是跟踪当前项目的状态,测试,报告错误,并验证其修复结果

软件配置管理人员应该完成以下几个主要任务:

任务一配置标识

要配置标识,首先必须明确项目生命周期内所要产生的工作产品,然后确定工作产品的名称和标识规则。总体原则是,保证配置管理工具检索便利,让项目组成员容易记住标识规则,同时要确保组织一级的标识规则的一致性。

任务二版本管理

版本管理一般是使用工具来完成的,如Rational ClearCase、Merant PVCS Version Manager、Microsoft Visual SourceSafe等。使用这些工具时,容易被忽视的一点是制定所使用工具的版本规则。如果直接采用工具的内部版本号,会给产品发布带来一些困难。通常采用“X.Y.Z”方式进行版本标识,明确X、Y和Z各位数字递增的规则,然后结合工具标签(Label)功能,便可实现高效的版本管理。

任务三变更管理

变更管理是项目管理的一个重点和难点,涉及的范围很广。实施高效的变更管理至少应该包括两个部分:“定义合理的变更管理流程”、“采用自动化工具作为支持”。在具体的实践中,应该对变更进行分类和分层,建立起处理不同变更的“变更控制委员会”(CCB),既保证项目组成员有一定的自主权,又不会耽误高层经理对关键问题的把握。

任务四配置审核

配置审核包括两方面的内容:“配置管理活动审核”、“基线审核”。“配置管理活动审核”用于确保项目组成员的所有配置管理活动,遵循已批准的软件配置管理方针和规程,如检入(Check in)/检出(Check Out)的频度、工作产品成熟度提升原则等。实施“基线审核”,要保证基线化软件工作产品的完整性和一致性,并且满足其功能要求。基线的完整性可从以下几个方面考虑:基线库是否包括所有计划纳入的配置项?基线库中配置项自身的内容是否完整?(如,文档中所提到的参考或引用是否存在?)此外,对于代码,要根据代码清单检查是否所有源文件都已存在于基线库。同时,还要编译所有的源文件,检查是否可产生最终产品。一致性主要考察需求与设计以及设计与代码的一致关系,尤其在有变更发生时,要检查所有受影响的部分是否都做了相应的变更。审核发现的不符合项要进行记录,并跟踪直到解决。

任务五报告配置状态

报告配置状态的目的,是向项目所有成员提供基线内容和状态、基线变更信息(如表2所示),这也是实现资源共享的前提。此外,在项目生命周期中进行对配置项的变更数据统计分析,有利于评估项目风险,有效控制项目的执行。在变更请求被批准、基线版本发生变化及项目组提出任何需要时,可以采用Email等方式进行报告。

任务六发布管理

实施了规范的配置管理,发布就显得很从容了。但是必须要注意的是:发布的产品应该是从软件基线库中提取出来的;在软件发布给最终用户之前,要准备发布记录,为软件产品分配发布版本号,同时要对它进行发布评审并确认其得到批准。一般来说,高层经理、项目经理、软件质量保证人员和测试组都应该参加发布评审。

三、研发部实施配置管理的经验分享

要制定切实可行的配置管理规程

实施配置管理,非常重要的是先定义好配置管理规程,可以参看CMM、 RUP等规范来制定,但必须要注重与部门实际项目开发情况相结合,制定的流程不一定要复杂,过于求全,主要是让大家看了规程能够理解,并且可操作,能够遵守执行的,而且确实能解决实际问题的。规程的制定能让组织的人员有统一的标准可以依据,指导配置管理工作的有序执行。配置管理规程要根据实际过程情况定期进行更新

项目初期要做好配置管理计划

在执行任何软件过程之前一定要有明确的总体计划,特别是各开发阶段的配置管理计划,而且要严格按照计划执行,保证执行的结果与计划的要求一致,而不是做到哪里是哪里,导致整个过程杂乱无章。

保证充分的资源

软件配置管理活动在整个开发活动中是一项支持性、保障性的工作,它本身并不直接为企业产出可以直接赢利的工作成果;而配置管理每一项活动都需要消耗企业的人力资源,有些还需要购置专门的工具来支持活动的进行,这些都会导致企业生产成本的增加。这就需要组织高层和实施人员的大力支持,研发部从实施配置管理至今正是有了公司及部门领导在人力资源和工具资源上的大力支持才使得我们非常有效的实施这一过程。

实施培训

一般来讲,实施配置管理系统,相关人员需要接受一下培训:

管理员培训:针对配置管理员,主要学习配置管理工具管理相关内容

开发人员培训:针对开发人员,主要学习配置管理工具与开发相关的常用操作

管理流程培训:针对全体人员,目的是了解配置管理策略和流程,以及如何与开发管理、项目管理相结合

工具的支持

选择什么样的配置管理工具,一直是大家关注的热点问题。确实,与其他的一些软件工程活动不一样,配置管理工作更强调工具的支持;缺乏良好的配置管理工具的话,要做好配置管理的实施会非常困难。当然,对于工作的选择应根据部门实际的需要而论,不一定要选最好的,只要是最合适的就可以。

过程不断改进

实施软件配置管理不可能一次计划、执行就可以建立起完整的配置管理系统,要经过不断的经验总结和实际项目管理的需要,不断改进现有的配置管理规程,才可以达到较为成熟的软件配置管理过程,这是一个循序渐进的改进过程。

四、总结

以上只是简单地介绍了配置管理系统实施的相关内容,软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,支持和控制着整个软件生命周期。若要有效的实施软件配置管理,首先要通过一系列的培训,培养软件开发者的管理参与意识,同时更重要的是借助已有的经验教训,建立起真正适合自己团队的管理流程。

分享到:
评论

相关推荐

    华为路由器简单配置详解

    download 下载新版本软件和配置文件 erase 擦除FLASH中的配置 exec-timeout 打开EXEC超时退出开关 exit 退出配置 first-config 设置或清除初次配置标志 help 系统帮助简述 language 语言模式切换 monitor 打开用户...

    软件测试内容

    软件测试管理 质量管理 缺陷管理 配置管理 测试环境的重要性 需求管理

    计算机软件开发信息管理系统的设计与应用研究.docx

    对此,本文详细分析了计算机软件开发信息管理系统的设计要点,并简述了其重要性和应用,以供参考。 关键词:计算机;软件开发;信息管理系统 引言:随着计算机技术的不断发展,计算机的数据处理量也在迅速增加,如此...

    StorNext安装配置及维护规范

    StorNext 数据存储管理软件包括两部分,一是StorNex File ...以下我们主要简述在广电领域被大量应用的StorNext 共享文件系统软件的架 构部署及其工作原理。在本文我们将介绍两种类型的StorNext 共享文件系统部署架构:

    简述云计算十大特点.docx

    云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或...

    软件测试经典面试题

    28、软件配置管理工作开展的情况和认识? 9 29、你觉得软件测试通过的标准应该是什么样的? 10 30、引入测试管理的含义? 10 31、一套完整的测试应该由哪些阶段组成? 10 32、单元测试的主要内容? 10 33、...

    软件测试经典面试题 (超实用)

    28、软件配置管理工作开展的情况和认识? 9 29、你觉得软件测试通过的标准应该是什么样的? 10 30、引入测试管理的含义? 10 31、一套完整的测试应该由哪些阶段组成? 10 32、单元测试的主要内容? 10 33、集成测试...

    基于WEB的仓库管理系统的设计与实现设计软件程序源码+数据库+WORD毕业设计论文文档.zip

    基于WEB的仓库管理系统的设计与实现设计软件程序源码+数据库+WORD毕业设计论文文档. 基于WEB的仓库管理系统主要用于实现仓库的出入库管理,基本功能包括:入库模块、出库模块、商品查看模块、用户注册模块、个人...

    基于Jsp的图书馆管理系统软件设计源码+数据库+sql+毕业论文文档资料.zip

    鉴于计算机技术发展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样一个管理系统成本不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理发展的必然趋势,其必将有比较宽阔的市场,因此改性统在...

    Jsp图书馆管理系统软件设计(软件源码++数据库+sql本科毕业论文WORD文档资料).zip

    鉴于计算机技术发展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样一个管理系统成本不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理发展的必然趋势,其必将有比较宽阔的市场,因此改性统在...

    网络安全策略简述.doc

    可能是外来黑客对网络系统资源的非法使有,归 结起来,针对网络安全的威胁主要有三: 1、人为的无意失误 如操作员安全配置不当造成的安全漏洞,用户安全意识不强,用户口令选择不慎, 用户将自己的帐号随意转借他人...

    操作系统发展简述.txt

    操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统的型态非常多样,不同机器安装的OS可从简单到复杂,可从手机的嵌入式系统到超级电脑...

    [详细完整版]局域网的复习.doc

    简答题: 2、简述局域网的组成。... 通过网管工作站进行配置,此时需要相应的支持SNMP协议的网管软件; 4. 通过TFTP服务器进行配置。 22. ZTE 2826E交换机的全局模式进入命令:enable。 5、论述题:网络实验室计算机全

    住院管理信息系统数据库设计--需求分析.doc

    1.2.3操作可行性 我们所做的系统是为医院管理人员开发的,所有设定的用户对象是医院的工作人员 ,而且我们设计了友好的界面,同时写出了详细的使用说明,用户只需懂得简单的计算 机操作知识,就能自由应用本软件。...

    旅游管理系统课程设计报告书(1).doc

    " " "置错误,负荷太大,电源的功率不足 " " " "等 " " "软 "系统配置不当,未安装驱动程序或驱 "病毒影响,软件漏洞,缓存堆积" "件 "动程序之间产生冲突。存管理设置错 " " "故 "误,如存管理冲突、存管理顺序混乱 ...

    企业销售采购管理系统课程设计.doc

    目前可视化开发技术及工具(如visual basic)和数据库技术(如access)很成熟,并且该采购管理系统在公司现有的硬软件资 源基础上可以实施,因此技术上是可行的。 3)经济上的可行性:该系统所需的硬件设备,如...

    ASP+ACCESS企业人力资源管理系统的设计(源代码+论文).zip

    人力资源管理系统是一个企业单位不可...简述本课题在国内外的发展概况及存在的问题;说明本课题的指导思想;阐述本课题应解决的主要问题。 系统分析阶段主要说明了系统的需求分析,开发工具的选择和环境的配置。 系统开

    家教信息管理系统毕业设计

    2.1 环境配置 3 2.2 使用工具介绍 3 2.2.1 使用工具简述 3 2.2.2 B/S结构介绍 3 2.2.3 Struts+Spring+Hibernate框架介绍 3 2.2.4 JSP简介 6 2.2.5 MySQL数据库介绍 6 2.2.6 MyEclipse 集成开发环境介绍 6 第3章 系统...

    软件工程-理论与实践(许家珆)习题答案

    对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法 ,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性, 并进行关于变化的推理...

    电大操作系统简答题.docx

    答:操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。 在计算机系统中操作系统处于什么地位? 答: 操作系统是裸机之上的第一层...

Global site tag (gtag.js) - Google Analytics