软件配置管理

上传人:d**** 文档编号:203102872 上传时间:2023-04-24 格式:DOCX 页数:9 大小:19.15KB
返回 下载 相关 举报
软件配置管理_第1页
第1页 / 共9页
软件配置管理_第2页
第2页 / 共9页
软件配置管理_第3页
第3页 / 共9页
点击查看更多>>
资源描述
软件配置管理(SCM)引言随着我们系统迅速升级,客户订制产品越来越多,开发人员的增加,使我们公司在提升 软件开发能力成熟度水平时面临诸多挑战,如:缺少有效的变更管理和问题解决跟踪手段。软件存在多个版本,在保存版本时由于缺少工具的支持,难以对版本加以标识和关联, 在版本回溯时容易产生混乱。在并行开发时,由于缺少工具进行并发控制,会发生覆盖工作,丢失修改的现象。鉴于以上挑战,我们迫切需要建立一个平台,对项目整体流程进行强有力的统一管理。 这项管理工具应能实现需求管理与状态跟踪、版本管理和变更管理等功能,支持CMM模型 中配置管理过程域(SCM町人)目标的实现,从而帮助我们提高软件产品质量和客户满意 度的目的。软件开发管理的核心是软件配置管理。现在软件配置管理越来越被重视。1软件配置管理概述1.1软件配置管理定义IEEE 定义:软件配置管理(SCM Software Configuration Management)是一门应 用技术、管理和监督相结合的学科,通过标识和文件来记录配置项目的功能和物理特性。 通过控制这些特性的变更,然后记录和报告变更的过程和状态,并验证他们与需求是否一 致。从IEEE的定义可以看出软件配置管理是一门综合性的学科,它不仅包含了管理,也 包含了一些技术手段。通俗点说SCM是通过技术及行政手段对软件产品及其开发过程和生命周期进行控 制、规范的一系列措施和过程,它通过控制、记录、追踪对软件的修改和每个修改生成的 软件组成部件来实现对软件产品的管理。SCM可以协调软件开发使得混乱减到最小,是 一种标识、组织和控制修改的技术,目的是使错误达到最小并最有效地提高生产效率。1.2软件配置管理功能简介在ISO9000.3中,对配置管理系统的功能作了如下描述:。唯一地标识每个软件项的版本;。标识共同构成一完整产品的特定版本的每一软件项的版本;。控制由两个或多个独立工作的人员同时对一给定软件项的更新;。按要求在一个或多个位置对复杂产品的更新进行协调;。标识并跟踪所有的措施和更改;这些措施和更改是在从开始直到放行期间,由于更改 请求或问题引起的。1.3软件配置管理作用及意义软件配置管理(SCM)是ISO9001和CMM Level2中的重要组成元素,它在软件产 品开发的生命周期中,提供了结构化的、有序化的、产品化的管理软件工程的方法,是软 件开发和维护的基础。软件配置管理是一组追踪和控制活动,它开始于软件开发项目之初,结束于软件被淘 汰之时。实施软件配置管理的目的是保证软件项目的工作产品在整个项目周期中的完整性”。 所谓完整性是指,工作产品要求有完整的变更历史记录,要求有正式的变更过程,而且还要 求保证工作产品能和需求以及变更保持一致性。SCM使软件产品变为受控的和可预见的,它控制这样几个问题:1. 谁做的变更?2. 软件有什么变更?3. 什么时间做的变更?4. 为何要变更?通过实施SCM,可以达到可重用过程制度化,包括:满足组织的政策方针、计划和过 程描述文档化、分配适当资源(包括资金,人员和工具、确定责任和权限、培训相关人员、 通过不同级别的管理方法和纠正活动检测状态。置于SCM之下的工作产品包括发送给用户的软件产品(如软件需求文档,软件代码) 用于内部使用的软件工作产品(如过程描述),和用于创建工作产品的工具等(如操作系统、 数据库、开发工具)。SCM还用于建立和维护软件工作产品基线。基线是由配置项及相关实体组成的,包括 组成软件产品的相关版本、设计、代码、用户文档等。它是软件生命周期中各开发阶段末尾 的特定点,即里程碑。通过正式的技术评审而得到的软件配置的正式文本才能成为基线,它 的作用是使各个阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检 验和肯定阶段成果。基线是配置项继续发展的一个固定基础。实施SCM不论是对软件开发者、测试者、项目经理、QA人员,还是客户都将会获得 很多好处:有助于规范团队各个角色的行为,同时又为各个角色之间的任务传递和交流提供 无缝的接合;能帮助项目经理更好地了解项目的进度、开发人员的负荷、工作效率和产品质 量状况、交付日期等信息。2软件配置管理功能(SCM)SCM分为四大功能领域:配置项的标识、变更控制、配置状态统计、配置审核。2.1配置项的标识配置项的标识包括标识软件系统的结构,标识独立部件,并使它们是可访问的。配 置标识的目的,是在整个生命周期中标识系统各部件并提供对软件及其软件产品的跟踪能 力。所谓配置项,简单地说就是受SCM控制和管理的工作产品单元,也是配置管理的目 标。什么能作为配置项进行管理?下面举一些例子,程序(源代码、目标代码、可执行 程序、函数等)、文档(需求定义、系统分析、系统设计、高层设计、低层设计、测试规 格说明书、测试计划、安装手册、发布说明、用户手册等)、数据(测试数据和项目数据)、 执行文件等,都是典型的配置项。但有几个问题需要讨论:一、配置项划分的颗粒度问题。也就是说,配置项实际上是逻辑的概念,不完全对 应物理上的文件,因此为了便于管理,就要进行一定程度的划分,比如典型的,可以把用 来生成一个“构件”的几个代码文件设定为一个配置项,这样在进行变更时就需要同时对这 些文件进行修改。二、不一定要把所有的工作产品都作为配置项。有些工作产品,比如状态报告,相 当稳定,不容易变化,同时对最终产品发布没有直接影响,就可以考虑不作为配置项进行 管理。为什么要这样考虑呢?因为如果作为正式的配置项,需要进行配置项的标识、控制、 报告等等工作,会给项目增加不必要的成本。因此,可以考虑对这些产品仅仅进行简单的 管理就可以了。但是对诸如项目计划文档,仍然需要进行软件配置管理。三、对于一些没有实际物理文件,但仍然需要进行配置管理的工作产品,比如操作 系统参数、编译器描述、物理特性、版本描述等,为了能进行配置管理,需要对其进行描 述,并形成文档,再以配置项形式进行管理。比如进行技术变更时,就有可能需要改变系 统参数。2.2变更控制变更控制包括在软件生命周期中控制软件产品的发布和变更,目的是建立确保软件产 品质量的机制。通过它可以知道:什么是受控的?受控产品怎样变更?谁控制变更?何时 接受,恢复,验证变更?我们目前所熟知的版本管理,其本身并没有什么直接作用,而真 正起发挥作用是为变更控制进行支持。为什么这样说呢?我们仔细考虑一下,我们通过备 份的方法,保存了所有的配置项的所有版本,但是什么时候会有用处呢?往往没有进行变 更控制的时候,就会发现所有的版本仅仅占用磁盘空间,而从来不会使用,甚至真正想找 到以前某个状态时,反而难于查找。主要的原因是,所记录的配置项的所有状态,只有和 变更控制进行配合,将变更的原因和变更的结果(配置项的某一版本)联系在一起,才能 以变更为主线,将所有版本变为“有理由的”,才能形成基线,真正发挥变更控制和版本管 理的作用。2.3配置状态统计配置状态统计包括记录和报告变更过程,目标是不间断记录所有基线项的状态和历 史,并进行维护,它解决以下问题:系统已经做了什么变更?此问题将会对多少个文件产 生影响?它依照项目对配置管理的要求进行统计和分析配置管理状态报告往往能从另一 个方面反映项目的进度情况,甚至有时比项目进度状况报告还要准确。比如,变更请求状 态分布报告,就可以客观地反映按照计划应该完成多少变更请求,而实际上完成多少变更 请求,这实际上客观地反映出已完成和未完成工作量。这方面的内容在项目进度报告中很 难客观反映,从而造成项目实际情况与进度报告不符。2.4配置审核配置审核将验证软件产品的构造是否符合需求、标准、或合同的要求,目的是根据 SCM的过程和程序,验证所有的软件产品已经产生并有正确标识和描述,所有的变更需 求都已解决。通过它可以知道:系统和需求是否吻合?是否所有变更都是在版本控制下?2.5配置管理计划最后,也是非常重要的配置管理活动,就是在项目开始之前就进行配置管理计划。 配置管理计划往往和项目开发计划一起产生,并相互影响。配置管理计划的目标是规划 整个项目的配置管理活动,尤其是重要的比如发布、基线管理等问题。配置管理计划的 主要内容包括配置项的标识和命名规范、配置管理环境方案、配置管理活动计划和时间 表、基线计划、发布计划等。可以说,配置管理计划直接决定了项目配置管理的方针, 以及配置管理活动的准则。忽略配置管理计划,将使整个配置活动甚至项目都受到影响3软件配置管理(SCM)应用SCM从应用层次上可以从低到高分为三级:版本控制、以开发者为中心、过程驱动。3.1版本控制版本控制主要应用于个人独立开发或小组开发,它可以控制任何文件的版本、实现分支 和归并功能、进行文本比较、标记注释和版本报告信息。主要工具有Visual SourceSafe及 Intersolv PVCS。版本控制是全面实行软件配置管理的基础,可以保证软件技术状态的一致性。我们在平 时的日常工作中都在或多或少地进行版本管理的工作。比如有时我们为了防止文件丢失,而 拷贝一个后缀为bak或日期的备份文件。当文件丢失或被修改后可以通过该备份文件恢复。版本控制是对系统不同版本进行标识和跟踪的过程。版本标识的目的是便于对版本加以 区分、检索和跟踪,以表明各个版本之间的关系。一个版本是软件系统的一个实例,在功能 上和性能上与其他版本有所不同,或是修正、补充了前一版本的某些不足。实际上,对版本 的控制就是对版本的各种操作控制,包括检入检出控制、版本的分支和合并、版本的历史记 录和版本的发行。本地机器与版本控制服务器之间的代码不同步绝对不应该超过1天,通常每个小时就 要完成一次循环。版本控制是SCM的第一步。版本控制做好以后,实现所有人拥有所有代码。然后可以 加上集成控制3.2以开发者为中心以开发者为中心主要应用于部门级开发,它可用于软件维护、不断增加的开发任务、 并行开发、QA及测试,它面向大型团队、利于交流、能最大限度地利用人力资源,主要工 具为 Rational ClearCase 及 MKS Source Integrity03.3过程驱动过程驱动主要使用于企业级开发,着重解决新的工具引入、IT审核、管理报告、复杂 的生命周期、应用工具包、集成解决方案、资料库等问题,实现真正规范的团队开发,主要 工具为 Platinum Technology CCC/Harvesto4应用实例个优秀的SCM平台的特征一个优秀的SCM平台的特征:a. 支持 CMM/CMMI软件配置管理是CMM/CMMI二级的一个重要KPA,是CMM三、四、五级的基础。SCM 系统应该能够支持制定SCMP、用户自定义SCM流程、变更控制并提供配置状态报告自动 生成等SCM基本功能,可以根据用户的需求生成整个项目或项目在某一段时间内的相应报 告文件。b. 跨平台现代的 SCM 系统应该能够支持如 Windows 98, Window NT,Windows 2000, Linux,Solaris,HP-UX,IBM AIX等目前开发人员、管理人员使用得最多的平台。对于使用多个不同的平 台进行软件开发、测试、运行的公司来说,一个统一、支持多平台的SCM系统是最理想的。 如果使用的SCM系统只支持单一平台,那么势必给开发、测试、发布的各环节带来很大的 不便,大量的时间将被浪费于代码的手工上传、下载中。c. 并发和串行的版本控制现代的SCM系统应该支持多用户并行开发,支持基于Copy-Modify-Merge贝、修改、合 并)的并行开发模式和基于Lock-Unlock-Lock (锁定-解锁-锁定)的串行开发模式。使用第 一种方法,团队的开发人员之间无须好象排队一样等待修改代码;使用第二种方法,团队的 开发人员无需好像到处救火一样地解决合并过程产生的冲突。开发人员可以并行开发、更改 代码。d. 支持异地开发现代的SCM系统应该能够通过同步不同开发地点的存储库,支持异地开发。提供多种同步 方式:直连网络同步、存储介质同步、文件传输同步(FTP、Email附件)等,而且同步的 内容可以预先定制,例如同步整个项目,或者同步项目中的某一些选定分支。e. 备份/恢复功能开发备份程序。备份方式应该灵活多样,可以选择完整备份或增量备份,节省时间和开销; 恢复功能可以完全自动实现。f. 基于浏览器用户界面现代的SCM系统应该可以通过浏览器用户界面浏览所有的项目信息,诸如项目的基本信息, 项目的历史,项目中的文件,文件不同版本的对比,文件的历史记录、变更请求/问题报告 的状态等。g. 图形化用户界面现代的SCM系统不仅应该提供浏览器用户界面和基于命令行的使用界面(CLI),同时也应 该提供了图形化的用户界面(GUI)。这是现代的SCM系统最基本的要求。h. 处理二进制文件现代的SCM系统不仅应该能够处理文本文件,还可以管理二进制文件,而且对于二进制文 件也能够实现增量传输、增量存储,节省存储空间,降低对网络环境的要求。i. 支持企业级的SCM现代的SCM系统应该面向企业,而不仅仅是某一个软件项目组。要能够有效地支持大规模 的团队协同工作。j. 基于TCP/IP协议,支持不同的LAN或WAN现代的SCM系统的客户端和服务器端的程序通过TCP/IP协议通信,而无须依赖于象NFS 或者通过域来共享文件系统,因此能在任何局域网(LAN)或广域网(WAN)中正常工作。 一旦将文件从服务器上复制到用户自己的机器上,普通的用户操作无需访问网络,如编译、 删除、移动。现代的SCM系统应支持支持脱机工作、移动办公。在不同的网络环境、无论 在什么样的操作系统下,所有客户端程序和服务器端程序都是兼容的。k. 高效率现代的SCM系统应该具有一个的良好的体系结构,使得它的运行速度很快。现代的SCM 系统因该把传输的数据量控制到最小,从而节省网络带宽,提高速度。例如,在传输文件时, 仅仅传输文件被修改的部分,即文件增量(Delta)。l. 高可伸缩性现代的SCM系统应该具有良好的可伸缩性(Scalability)o随着企业规模扩大,现代的SCM 系统因该依然能正常工作。SCM系统的工作性能不应该因为数据的增加而受影响。m. 高安全性能对项目的权限进行配置,例如检入、检出、查看等操作。这些都能帮助企业保护机密数据。n. 支持Email通知现代的SCM系统应该能够支持Email通知。这样,当一个开发人员做了一些修改,系统可 以自动通知其他相关人员。o. 和常用IDE集成现代的SCM系统应该能够支持Microsoft的SCC API (源代码控制API),用户能够在支持 SCC API 的开发环境,如 Visual Studio、Visual .NET PowerBuilder 等中直接使用 SCM 工 具进行配置管理。p. 支持变更控制现代的SCM系统应该能够支持对变更请求和问题报告的管理,而不应将变更管理和配置管 理人为地隔离开来。变更管理是一个系统,而配置管理又是一个系统,这样做只会给用户带 来更多地麻烦,而且也不符合CMM标准。q. 支持软件“三库”管理在GB 12505-90中,明确提出了软件“三库”的概念。“三库”包括开发库、受控库和产品 库。从CMM的角度来看,对开发库的管理并没有要求,但是对受控库和产品库是需要进行 管理的。现代的SCM系统应该能将三库统一起来,并支持不同级别的管理。张波2004-12-15
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!