【文档说明】软件工程管理-软件配置管理方案.ppt,共(132)页,3.279 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45016.html
以下为本文档部分文字说明:
软件配置管理第四部分项目案例案例角色和人物–小王:软件项目负责人–老王:公司技术老总开发小组:小李,老赵,小田,小谢软件产品进行配置管理(1/2)•软件项目已经成功进行了8个月,项目组已经进入编码阶段,在此过程中产生了许多的软件产品–到了编
码阶段已经有了近百个软件产品(包括技术文档、管理文档、程序模块等),项目组在管理这些产品方面感到繁琐和困难,常常测试人员正在测试某个模块时,开发人员却调整了程序。–特别是在不同省市阶段试用和现场测试的时候,用户提出要变更需求,软件项目组汇总用户的需求,并经过审批同意
了变更请求,为此,修改了软件需求规格说明书–项目组将更改后、新的软件需求规格说明书交给了软件设计小组,设计小组为此更改了设计。更改后的软件设计涉及诸多的软件模块和数据设计,为此导致许多的模块和源程序代码和可执行代码发生了变化–由于某
些编码的变化的是在当地开发,项目组很难清晰地了解哪些作了变化、做了什么样的变化软件产品进行配置管理(2/2)–由此带来的新的问题是,项目组未能及时将这些变化通知给相关、受影响的小组和人员,从而出现软件产品之间的不一致(设计与编码不一致),所开发的产品没有完全符合和
满足用户的需求–对于某些模块更为糟糕,因为这些模块已经经过了多达6-7次的修改,而且每次修改都有意义,从而产生了不同版本的软件模块设计,由于没有相关的有效管理措施,开发人员已经很难清晰、有效识别、区分这些软件模块,出现许多开发人员都有该模块的诸多版本–与此相对应的是,该模块的源代
码也有许多版本–在实际组装软件时,项目组不能有效提取出所需的软件产品,共同构成统一的可运行的软件系统–进而,不得不形成虽然似乎功能相同,但不同的地方版本。想到后续的维护大家都头疼。案例提示•软件开发过程中会产生
大量软件产品(包括文档、源代码和数据等),且这些产品之间存在关联关系•同一软件产品,也会发生变更从而产生许多版本•软件开发小组必须清晰的知道会有哪些产品、这些产品会有哪些不同的形式和版本•开发小组必须清晰的知道如何将产品的变化通知给受影响的小组•如果不能有效的了解软件产品及其变化,实施小组
很难组装这些软件产品,从而得到所需的软件产品什么是软件配置管理软件配置管理(SoftwareConfigurationManagement,SCM)是指通过执行版本控制、变更控制等规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。•
软件配置管理(SCM)是贯穿于整个软件过程中的保护性活动。•SCM目的是保证软件项目生成的产品在软件生命周期中的完整性和一致性.•因为变化可能发生在任意时间,SCM活动被设计来:(1)标识变化;(2)控制变化;(3)保证变化被适当地实现;(
4)向其他可能有兴趣的人员报告变化。•软件配置管理使改进变化可以更容易地被适应,并减少当变化必须发生时所需花费的工作量。•明确地区分软件维护和软件配置管理是很重要的。•维护是发生在软件已经被交付给客户,并投入运
行后的一系列软件工程活动,而软件配置管理则是当软件项目开始时就开始,并且仅当软件退出运行后才终止的一组跟踪和控制活动。配置管理与任何一位项目成员都有关系,因为每个人都会产生工作成果。配置管理是否有成效取决于三个要素:人、规范、工具随着计算机软件的发展,软件开发已由最初的“程序设
计阶段”经历了“软件系统阶段”进而演变为后来的“软件工程阶段”,软件的复杂性日益增大。此时,如果仍然把软件看成一个单一的个体,就无法解决所面临的问题,于是配置的概念逐渐引入软件领域,人们越来越重视软件配置的管理工作
。不懂软件项目的配置管理,就不懂软件开发管理不对软件项目进行配置管理,就没有进行软件项目开发管理内容提要1.软件配置管理的概念2.软件配置管理计划3.软件配置标识4.变更管理5.版本管理6.配置审核7
.配置状态报告8.软件配置管理工具一、软件配置管理的概念(一)软件配置项的概念(SoftwareConfigurationItem)1、软件配置项:配置管理的对象称为软件配置项。表1软件配置项的分类、特征和举例分类特征举例环境类软件开发环境及软
件维护环境编译器、操作系统、编辑器、数据库管理系统、开发工具(如测试工具)、项目管理工具、文档编辑工具定义类需求分析及定义阶段完成后得到的工作产品需求规格说明书、项目开发计划、设计标准或设计准则、验收测试计划设计类设计阶段结束后得到的产品系
统设计规格说明、程序规格说明、数据库设计、编码标准、用户界面标准、测试标准、系统测试计划、用户手册编码类编码及单元测试后得到的工作产品源代码、目标码、单元测试数据及单元测试结果测试类系统测试完成后的工作产品系
统测试数据、系统测试结果、操作手册、安装手册维护类进入维护阶段以后产生的工作产品以上任何需要变更的软件配置项2、软件配置软件配置是一个软件产品在生存期各个阶段的不同形式(记录特定信息的不同媒体)和不同版本的程序、文档及相关数据的集合,或者说是配置项的集
合。初始系统机型1机型2机型n操作系统1操作系统2用户1用户2图1不同用户有自己的工作环境ABCGDHEABFCDE用户1用户2图2面对不同用户产品的配置AFBDGCHE用户1用户2ABCDEFABCDEGH产品1产品2图3两个产品具有不同的配置用户1:A、B
、C、D、E和F用户2:A、B、C、D、E和G、H(二)软件配置管理1、什么是软件配置管理(1)ISO9000-3:1997配置管理是一个管理学科,它对配置项(包括软件项)的开发和支持生存期给与技术上的和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。(2)W.Bab
ich的解释软件配置管理能协调软件开发,使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效的提高生产率。(3)GB/T11457:1995《软件工程术语》国家标准A.表示和确定系统中配置项的过程,在系统整个生存期内控制这
些配置项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。B.对下列工作进行技术和行动指导与监督的一套规范:——对配置项的功能特性和物理特性进行标识和文件编制工作;——控制这些特性的更动情况;——
记录并报告这些更动进行的处理和实现的状态。2、软件配置管理的任务——制定软件配置管理计划——确定配置标识规则——实施变更控制——报告配置状态——进行配置审核——进行版本管理和发行管理表2《ISO/IEC12207:1995信息技术—软件生存周期过程》关于软件配置管理过程
的规定活动任务解释1.实施过程开发配置管理计划计划描述:配置活动、这些活动的规程、进度、配置管理组织及与其他组织的关系计划应形成文件2.配置标识制定标识规则以控制软件项及其版本标识内容包括:基线文档、版本基准号、其他3.配置控制标志并记录变更申请分析与评价变更批准(或不期准
)申请实现、验证和发行已变更的软件项审核跟踪变更控制并审核受控软件项跟踪变更原因、变更授权以保证重要功能的安全或保密4.配置状态报告编制管理记录和状态报告表明受控项(包括基线)的状态和历史状态报告应包括变更号、最新版本
、发行标识、版本号及各种版本比较5.配置评价确定和保证软件项的功能完整性、物理完整性6.发行管理和交付有效控制软件产品和文档的发行和交付在产品的生存期内保存代码、文挡的主拷贝包括重要的安全或保密功能的代码和文档应
按组织的方针处理、储存、包装和交付3、软件配置管理与软件开发过程•两类不同的变更:–开发阶段内部发生的变更:–开发过程解决不了的变更:•变更的评估和批准以及变更实施都要由软件配置管理人员去做。•开发过程应纳入配置管
理过程的控制之下。配置管理阶段1阶段2阶段n开发过程图4配置管理与开发过程(三)软件配置管理的意义1、软件项目的特点(1)不可见的逻辑实体(2)软件项目的规模日益庞大和复杂(3)参与软件项目的人员增加,人员间的沟通渠道数量按指数倍增。(4)产品非常容易
拷贝(5)时时处在演化和变更状态。这包括:——技术——业务环境——不同用户各有不同的需求——需求变更(6)开发人员的离去有较大的影响2、忽视软件配置管理可能导致的混乱现象–发错了版本–安装后不工作–异地不能正常工
作–已经解决的缺陷过后又出现错误–开发人员把产品拿出去出售赢利–找不到最新修改了的源程序–找不到编程序的人项目经理的配置管理流程项目经理的工作是:(1)确定项目配置管理策略(2)确定用于控制产品变更的策略和流程(3)在配置管理计划(是软件开发计划的一
部分)中记录此信息配置管理策略软件配置管理策略是指能够确定、保护和报告已经批准用于项目中的工件的能力。通过正确的标注来实现确定操作。对项目工件的保护是通过归档、建立基线和报告等操作而得以实现的。使用标准的、已记录下来的变更控制流程的目的是:确保项目中所做的变更保持一致,并将产品
的状态、对其所做的变更以及这些变更所耗费的成本及对时间表的影响通知给有关的涉众。软件配置管理计划说明在产品/项目生命周期中要执行的所有与配置管理相关的活动。它记录如何计划、实施、控制和组织与产品相关的配置管理活动。配备人员配置管理人员的选择和配备,是软件项目经理最主要
的工作。在一个比较理想的软件开发团队中,需要哪些角色呢?负责软件项目组的项目经理负责SCM计划和策略的配置经理负责软件产品开发与维护的软件工程人员负责验证产品正确性的测试人员负责确保产品高质量的质量保证经理使用产品的用户。配置经理配置经理的目标是确保用来建立、变更及
编码测试的计划和策略得以贯彻执行,同时使有关项目的信息容易获得。为了对编码更改形成控制,配置经理引入规范的请求变更的机制,评估更改的机制(通过变更控制机构CCB,由它负责批准对软件系统的变更),和批准变更的机制。配置经理负责为工程人员创建任务单,交由项目经理对任务进行分配,创建
项目的框架。同时,配置经理还收集软件系统中构件的相关数据,比如说用以判断系统中出现问题的构件的信息。项目经理的阶段工作要点二、软件配置管理计划配置管理计划标准——IEEE828-19901.引言——配置管
理计划的目的、适应范围、使用要求——项目概述——项目中需特别关注的配置管理问题和风险——软件配置管理严格性要求的等级——限制和假设——术语——参考文件2、软件配置管理——配置管理的组织结构——职责和权限——指令和方针——参照的规程(组织的规程或客户的规程)——遵循的标准3、软件配
置管理活动——配置管理活动——变更管理和配置控制——配置状态说明——配置审核——接口和子合同方控制4、软件配置管理进度安排——软件配置管理重要事件的顺序——软件配置管理各项活动间的依赖关系5、软件配置管理所需的资源——采用的工具——使用的设备——所需的培训——对其他人员的要求6、软件配置管理计划
的维护——维护的职责——计划更新的条件和审批——计划变更的交流和通报三、软件配置标识(一)确定配置项1、系统规格说明2、软件项目计划3、软件需求规格说明书a.图形分析模型b.处理规格说明c.原型d.数学规格说明4.初步用户手册5.设计规格说明书
a.数据设计描述b.体系结构设计描述c.模块设计描述d.接口设计描述e.对象描述(采用面向对象技术时)6.源代码清单7、测试规格说明a.测试计划和步骤b.测试用例和记录的结果8、操作和安装手册9、可执行程序a.模块可执行代码b.连接的模块10
、数据库描述a.模式和文件结构b.初始内容11、联机用户手册12、维护文档a.软件问题报告b.维护请求c.工程变更指令13.软件工程标准和规程图5软件配置项(二)配置项命名及其相关信息1、配置项命名。命名的
基本要求:唯一性;可追溯性。例:CODE是根结点为PCL_TOOLS树结构的第六层结点,对其命名为:PCL_TOOLS/EDIT/FORMS/DISPLAY/AST_INTERFACE/CODE2、配置项的相关标识信息每一配置项的有关信息:——组名——项名
——项标识(文件名或命名规则)——版本编号规则——什么情况下纳入控制之下,或——版本号——所遵循的变更控制规程四、变更管理(一)软件变更1、软件变更的不可避免性2、软价变更的复杂性–软件配置项数量大–版本多–变更的迁延性–人员沟通协调3、变更管理的任务–分析变更–记录和追踪变更–采取措
施保证变更在受控状态下进行(二)配置库(repository)1、配置库的作用–记录与配置相关的所有信息–利用库中的信息可评价变更的后果–可利用库中的信息查询,例如:•那些客户已提取了某个特定的系统版本?•运行一个给定的系统版本需要什么硬件和系统的
哪些版本?•一个系统到目前已生成了多少版本,何时生成的?•如果某一特定的构件变更了,会影响到系统的那些版本?•一个特定的版本曾提出过那几个变更请求?•一个特定的版本有多少已报告的错误?2、三类库(1)开发库:存放开发过程中需要保留
的各种信息,供开发人员个人专用。(2)受控库:在软件开发的某个阶段工作结束时,将工作产品存入或将有关的信息存入。(3)产品库:在开发的软件产品完成系统测试之后,作为最终产品存入库内,等待交付用户或现场安装。配置库操作所有人员都依照配置管理规范和计划来操作配
置库。配置管理员的主要操作有:–创建配置库,并且至少创建配置库的所有第一级目录。–为每个项目成员分配操作权限。一般地,项目成员拥有Add,Checkin,Checkout,Download等权限,但是不要轻易拥有“删除”权限。–配置管理员的权限最高。具体操作视所采用的配置管理软
件而定。–根据“基线计划”创建与维护基线,“冻结”配置项,控制变更。–定期清除配置库里的垃圾文件。–定期备份配置库。其他项目成员根据自己的权限操作配置库里的工作成果,例如:Add,Checkin,Checkout,Download等。(三)配置基线基线是软件生存期各开发阶段末尾的特定点2
、三种常见基线——功能基线在系统分析和软件定义阶段结束时,经过正是评审和批准的系统设计规格说明中对被开发软件系统的规格说明;经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对被开发软件系统的规格说明;由下级申请及上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规
格说明。——分配基线在软件需求分析阶段结束时,经正式评审和批准的软件需求规格说明。——产品基线在软件组装与系统测试阶段技术时,经正式评审和批准的有关所开发的软件产品的全部配置项的规格说明。3、基线与配置项4、典型的配置项和基线库内容——初始库:包括项目开始时可供利用的配置
项•已有的源代码(如可以利用且需要)•已有的软件文档(如可以利用且有需要)•已有的测试计划和测试数据(如可利用且有需要)•合同或建议书——环境配置项:包括对稳定的开发环境或维护环境所必需的配置项•编译器、操作系统、编辑程序
、实用程序、RDBMS•团组所用的工具(项目管理工具,进展表,测试工具,缺陷追踪等)•第三方库•文档工具(字处理器、电子表格等)——定义库:在需求规格说明工作结束时生成的•需求规格说明•项目计划•设计标准与设计准则•验收测试计划——设计库:在设
计工作结束时所产生的•系统设计说明书•程序规格说明•数据库设计•编码标准、用户接口标准、测试标准•系统测试计划•用户手册——构造库:在编码和段单元测试结束时生成的•源代码•标代码•单元测试数据——测试库:系统测试完成后生成的•系统测试数据•运行手册和安装手册——维护库:验收测
试、安装和培训等之后•将有变更的所有配置项(四)变更控制1、变更控制组变更控制组(ChangeControlBoard)也称为配置控制组(ConfigurationControlBoard),是配置项变更的监管组织。
其任务是对建议的配置项变更做出评价、审批以及监督已批准的变更的实施。2、变更请求与变更控制(1)利用配置库实现变更控制•软件配置项通过评审作为基线,将准许进入配置库(实施检入Check-in),开始“冻结”。•由
于多种原因需要变更就需要提出“变更请求”。在得到批准的情况下,允许配置项从库中检出(Check-out)(2)变更请求的主要内容•变更描述•对变更的审批•有关变更实施的一些信息表5变更请求表CRF(3)变更控制过程表6(4)故障报告故障报告包含的内容有:——FRID(故障报告标识
)——故障信息•故障描述•故障严重程度•怀疑有问题的部位•故障的影响•故障现象和环境信息•估计的故障原因•故障信息提供者——CCB评估意见•批准或拒绝•优先性•说明——故障修复信息•要变更的部分•说明3、变更记录变更记录置于模块首部的实例。//P
ROTEUSProjet(ESPRIT6087)//PCL_TOOLS/EDIT/FORMS/DISPLAY/INTERFACE//Object:PCL_TOOL_DESC//作者:陈**//开发日期:2000.12.8//版权归属:AS
DC//变更记录//版号变更负责人日期变更概要变更理由//1.0王**2001.4********//1.1李**2001.9********表7代码变更记录实例五、版本管理1、软件版本:包含两种不同含义(1)
为满足不同用户的不同使用要求,如适用于不同运行环境或不同平台的系列产品。(2)软件产品投入使用以后,经过一段时间运行提出了变更的要求,需要做较大的修正或纠错,增强功能或提高性能。2、版本标识版本管理也称版本
控制。版本标识方法:(1)号码版本标识(2)符号版本标识:把重要的版本属性有选择地给出。如:V1/VMS/DBServerV1.0V1.1V1.1aV1.1bV1.1.1V1.2V2.0V2.1V2.2概念软件的每一版本都是软件基线库的配置项(源代码、文档、数据)的一个集合。
版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地查找到配置项的任何版本。–所有项目成员都必须遵照版本控制规程操作配置库。版本控制规则配置项的状态有三种:“草稿”(Draft)、“正式发布”(Released)
、“正在修改”(Changing)。配置项状态变迁:1.配置项刚建立时其状态为“草稿”。2.配置项通过评审(或审批)后,其状态变为“正式发布”。3.此后若更改配置项,必须依照“变更控制规程”执行,其状态变为“正在修改”。4.当配置项修改完毕并重新通过评审(或审批)时,其状态又变为“正式发布”,如
此循环。版本号(1)处于“草稿”状态的配置项的版本号格式为:0.YZ–YZ数字范围为01-99。–随着草稿的不断完善,“YZ”的取值应递增。–“YZ”的初值和增幅由用户自己把握。(2)处于“正式发布”状态的配置项的版本号格式为:X.Y①X为主版本号,取值范围为1-9。Y为次版
本号,取值范围为1-9。②配置项第一次“正式发布”时,版本号为1.0③如果配置项的版本升级幅度比较小,一般只增大Y值,X值保持不变。只有当配置项版本升级幅度比较大时,才允许增大X值。(3)处于“正在修改”状态的配置项的版本号格式为:X.YZ–配置项正在
修改时,一般只增大Z值(一般以a,b,c依次增大),X.Y值保持不变。–当配置项修改完毕,状态重新成为“正式发布”时,将Z值设置为0,增加X.Y值。参见规则(2)。(一)什么是配置审核它是指对于存储配置项及相关记录的软件基线库的结构、内容和设施进
行检验,其目的在于验证基线是否符合描述基线的文档。验证包括:–配置项的处理是否有背离初始的规格说明或已批准的变更请求的现象;–配置标识的准则是否得到了遵循;–变更控制规程是否以遵循,变更记录是否可供使用–是否保
持了可追溯性。配置审核工作主要集中在两个方面,即:–功能配置审核——验证配置项的实际功效是与其软件需求一致的。–物理配置审核——确定配置项符合预期的物理特性,即特定的媒体形式。六、配置审核(二)为什么要实施配置审核确保软件配置管理的有效性,不允许出现任何混乱现象。例如:——防止
出现向用户提交了不适合的产品,如交付了用户手册不适当的版本;——发现不完善的实现,如开发出不符合初始规格说明或未按变更请求实施变更;——找出各配置项间不匹配或不相容的现象;——确认配置项已在所要求质量控制审查之后作为基线入库保存;——确认记录和文档保持着可追
溯性。(三)如何实施配置审核1、实施配置审核的时机——软件产品交付或是软件产品正式发行前——软件开发的阶段工作结束之后——在维护工作中,定期的进行2、实施配置审核的责任人参与实施配置审核的审核人员包括:项目组人员和非项目组人员,例如其他项目的配置管理人员、软件组织的内部审核员以及软件组织的软件
配置管理人员。3、配置审核工作的开展(1)由项目经理决定何时进行配置审核工作(2)质量保证组或软件组的配置管理组指定该项目的配置审核人员(3)项目经理和配置审核员决定审核范围。(4)配置审核员准备配置审核检查单(5)配置审核员安排时间审核文档和记录,审核活动可能涉及
到:项目范围配置项的检入(check-in)及检出(check_out)评审记录配置项的变更历史测试记录文件的命名变更请求版本的编号(6)配置审核员在审核中发现不符合现象,并作记录。(7)由项目经理负责消除
不符合现象。(8)配置审核员验证所有发现的不符合现象确已得到解决。七、配置状态报告(一)什么是配置状态报告1、配置状态报告(configurationstatusreporting)也称配置状态说明与报告(confi
gurationstatusaccounting&reporting)。–任务:有效的记录和报告管理配置所需要的信息–目的:及时、准确的给出软件配置项的当前状况,供相关人员了解,以加强配置管理工作。2、需要跟踪捕捉的状态报告信息可
以是:–配置项的当前标识–已交付软件的配置–变更请求或问题报告的状态–已获准变更的状态(二)配置状态报告信息1、状态说明的实体关系2、状态说明数据词典——配置项库(repository)•库名•库标识•所有者•范围/描述——配置项(configuratio
nitem)•库标识•项标识•项名•描述•项类型(源代码、测试计划等)——配置项版本(configurationitemversion)•库标识•项标识•版本号•入库日期、时间•与前版差异描述•锁定状态——检出与检入(ch
eck-out&check-in)•库标识•项标识•出库版本号•出库负责人•出库日期及时间•实施的变更请求号•变更描述•入库版本号•入库负责人•入库日期及时间——变更请求(changerequest)•变更请求号•软件版本号•申请*申请人*申请日期*变更部位*变更优先性*变更
概述*变更预期效果*附件•分析与审批*受影响工作项*估计工作量投入*成本*其他影响*假设*效果*分析日期*分析人*是否批准*理由*审批日期*批准人*发行版本•实施状态*受影响的每一个工作项—库标识—项标识—变更描述—出库版本—出库日期及时间—变更工作量—验证工作量—入
库版本—入库日期及时间*说明*变更结束日期及时间*变更结束负责人——发行(release)•发行版本•发行日期•目的•创建时间——发行配置项及版本号•库标识•项标识•项名称•概述•项类型(源代码、测试
计划等)•版本号——备份•备份号•备份日期•备份人•目的•介质——备份配置项•库标识•项标识——备份配置项版本•库标识•项标识•版本号3、定期提交的配置状态报告的内容示例——各份变更请求概要:变更请求号、日
期、申请人、状态、估计工作量、实际工作量、发行版本、变更结束日期——基线库状态:库标识、至某日预计库内配置项数、实际配置项数——发行信息:发行版本、计划发行时间、实际发行时间、说明——备份信息:备份日期、介质、备份存放位置——配置管理工具状态——配置管理培训状态八、软件配置管理工具(一
)手工方法实施软件配置管理存在的问题1、由于认识和理解的局限性,缺乏远见和坚定性2、规程过于繁琐3、可能出现人为的失误4、个别人可能持逆反心理5、必须作充分培训6、对人员的依赖性较大(二)采用工具支持配置管理的自动方法采用工具可能有如下的好处–减少了人为因素–节省人工实
施配置管理所花费的时间–发生配置问题的机会较少–程序人员可集中精力在自己的工作中,不必担心配置问题(三)采用配置管理工具的经济考虑–购置工具软件的成本–培训成本–改变工作方式的代价两条建议–首先采用手工方法更为直观,积累经验,提高认识–采购配置管理工具时应慎重选择ClearCase
主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理(WorkspaceManagement)、构造管理(BuildManagement)、过程控制(ProcessControl)。ClearCase通过
TCP/IP来连接客户端和服务器。VisualSourceSafeVisualSourceSafe是Microsoft公司推出的配置管理工具,是VisualStudio的套件之一。VSS的简单工作原理•将项目所有的源文件(包括各种文件类型)以
特有的方式存入数据库;•客户端将程序拷贝到各自的工作目录下进行调试修改,然后进行Checkin到服务器,进行综合更新;•支持多个项目之间文件快速高效的共享;•每个成员对项目文件所作的修改将被记录到数据库中;•VSS可以很容易地与MicrosoftAccess、Visu
alBasic、VisualC++、VisualFoxPro和其他的开发工具集成在一起.SourceSafe的优点可以用8个字来概括“简单易用,一学就会”。SourceSafe的主要局限性:1.只能在Windows下运行,不能在U
nix,Linux下运行。SourceSafe不支持异构环境下的配置管理,对用户而言是个麻烦事。这不是技术问题,是微软公司产品战略决定的。2.适合于局域网内的用户群,不适合于通过Internet连接的用户群,因为SourceSa
fe是通过“共享目录”方式存储文件的。Rational软件配置管理最佳经验使用统一变更管理(UnifiedChangeManagement)介绍旨在提高软件开发质量和生产率的一整套组织化和文档化的原理、方法和流程什么是软件最佳经验?在软件开发组织经证明的管理变更:问题分析人员项目经理Bug98Ad
dpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251NewcustomertransactionBug348集成
人员测试人员开发人员Build3Build2Build1管理变更:问题Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251Newcustomertra
nsactionBug348为什么这次联编会出错?我修改了很多文件,一定不能有闪失...这次版本发布包括新提出的需求462吗?还有多少个1级错误?什么时候我们能推出下一版?我该测什么?在这次联编中都包含哪些新内容?Build3Build2Build1分析人员项目经理集成人员
测试人员开发人员?Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251Newcustomer
transactionBug348活动与工件变更活动与工件如何结束这一循环??活动产生工件(如代码模块)Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwe
bdesignBug849Bug527Bug251NewcustomertransactionBug348活动与工件变更活动与工件多个工件集成在基线中人根据活动(如变更请求)进行工作变更管理如果你能:•知道在一个构建中修复了哪些缺陷?•快速确定一
个新构建中的不同点?•快速重构一个先前的发布版本?•确切地知道要测试什么?•在任何时候立即了解项目进度?•确切地知道两条基线之间的差别?•知道你的产品什么时候可以推向市场?统一变更管理是基于活动的工件
活动ActivityActivityActivity根据计划来实施活动并跟踪项目状态在整个开发生命周期所产生的成果配置管理的十大最佳经验1.在安全的存储库中进行工件的标识和存储2.控制并审计对工件的变更3.将工件组织为版本化的构件4.在项目里程碑创建基线5.记录并跟
踪变更请求6.使用活动来组织和集成7.维护稳定和一致的工作空间8.支持对构件的并行开发9.尽早和经常进行集成10.确保软件构建的再现性在安全的存储库中进行工件的标识和存储•标识对哪些工件进行版本管理–源代码–对象代码
,数据–Web内容–在生命周期其他点上产生的工件•文档和图象•模型和设计规范•需求和测试用例•存储工件的存储库必须具备可访问性,可扩展性,分布处理能力以及容错性1控制并审计对工件的变更•确定对不同类型工件的存取访问控制并控制具体的访问•对工件发生的变更进行审计–什么样的变更?–谁进行
的变更?–什么时候发生的变更?–为什么要进行变更?2将工件组织为版本化的构件•使用基于构件的体系结构是RUP中的一个最佳经验–减少复杂性–有利于共享和重用•在SCM中使用构件有助于将逻辑设计和物理实现紧密结合在一起•提供了更加智能的创建和使用SCM基线的机制System3User
SrvcsAdmin在项目里程碑创建基线•基线记录了一个构件中所有工件的一个单一版本–将不同构件的基线组合起来可以进行更大系统的构造•至少应在每次迭代后创建基线,但实际上基线的创建要更频繁•基线的好处–再现性–可跟踪性–报告
4管理高层对象•更好地表示你的软件架构直接可用的流程文件目录标签构建xxxxUCMProcessRationalClearQuestRationalClearCase管理高层对象•更好地表示你的软件架构直接可用的流程
文件目录标签构建xxxx构件子系统基线UCMProcessRationalClearQuestRationalClearCase记录并跟踪变更请求•变更请求会有多种形式并且来自不同的地方–内部及外部错误报告–来自市场及工程部门的功能增强请求–需求,设计,及文档变更请求•必须对变更请求进行管理和
跟踪•理想地,你应该可以跟踪变更请求以及实现该请求而产生的变更Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251NewcustomertransactionBug3485使
用活动来组织和集成•如果变更不从逻辑上进行组织,基于文件的版本控制是相当琐碎并容易产生错误•活动包含了实现活动的变更集以及其他活动属性•使用活动进行变更组织的好处–更接近自然的工作方式–提供了对错误和项目管理的逻辑链接–对手工工作进行了自动化1.FixBug6712.SpecialPromo3.
FixBug829ToDoList6维护稳定和一致的工作空间•工作空间使用户方便地访问与给定任务相关的构件•用户可以均衡下面两个方面:–同其他用户共享工作–同其他用户的工作隔离•生产率同稳定性成正比7•串行开发可能是理想的,但今天这种方式既不有效也不实用•开发人员不应等待其
他开发人员的工作完成•隔离的配置是进行有效并行开发的关键•分支是相当重要的•合并甚至会更重要支持对构件的并行开发321321410382尽早和经常进行集成•项目都面临着集成和隔离的矛盾•在两者之间求得平衡是成功的关键–开发人员应该总是可以控制自己的工作
空间–管理人员和集成人员必须在不牺牲个人生产率的前提下用一种可靠、可行的方式使开发人员同项目的进度保持一致•较晚或不经常进行集成会不利于迭代,进而引发更多风险有效的并行开发需要隔离过度隔离可能会造成集成恶梦9确保软件构建的再现性•构建应当是可进行全面审计的–内容–时间–谁•不同构建
之间的比较可以在不进行大范围调试的情况下轻易发现问题所在–从上次构建以来发生了哪些变更?–我们使用了相同的方式来进行系统构建吗?我们使用了不同工具或不同选项进行系统构建吗?10配置管理十大最佳经验1.
在安全的存储库中进行工件的标识和存储2.控制并审计对工件的变更3.将工件组织为版本化的构件4.在项目里程碑创建基线5.记录并跟踪变更请求6.使用活动来组织和集成7.维护稳定和一致的工作空间8.支持对构件的并行开发9.尽早和经常进行集成10.确保软件构建的再现性UCM对象介绍GUIFeatureN
ewPromoDefect3452活动(Activities)所有变更均同活动相关自动收集变更集BL1基线(Baselines)表示整个构件的版本支持可配置的提升级别流(Streams)定义关于版本的一致性配置提供了隔离与共享之间的平衡构件(Component
s)将构成子系统的相关工件进行组织基线操作的基本单位CB提升了抽象层次GUIFeatureNewPromoDefect3452CB活动(Activities)所有变更均同活动相关自动收集变更集BL1基线(Baselines)表示整个构件的版本支持可配置的提升级别流(Stream
s)定义关于版本的一致性配置提供了隔离与共享之间的平衡构件(Components)将构成子系统的相关工件进行组织基线操作的基本单位4736UCM对象介绍发扬了最佳经验8UCM操作概览ToDoListOrganizedActivities
RequestPriorityOwnerProjectBug981SamWebRelayBug5273SandyWebRelayAddGUIbutton1KimWebRelayUCM工作流概览SystemAcceptanceProducti
onWorkOnDeliverMakeBaselinePromoteBaselineRebaseBaseline开发人员集成人员项目经理UCM和软件团队•通过流程优化团队生产率集成人员开发人员集成人员测试人员开发人员Build3Build2Build1开发人员的挑战•单调乏味和易犯错误的
任务–如何重构一个发布版本?–其他开发人员在这个文件上工作吗?–我是在错误发生前还是错误发生后检入那个文件的??NewGUIBug849Bug527易于采用:“GettingStarted”wizardsUCM支持Windows和UNIXUCM:用于开发人员的解决方案公共集成流私有工
作空间加入项目1象平时一样工作2UCM易于使用并与开发人员的日常开发活动结合!易于采用:同流行的IDE集成ClearCaseIntegrations•AllaireColdFusion•BluestoneSapphireWeb•HAHTHahtSite•IBMWebSphere,V
isualAgeforJava•NetscapeApplicationBuilder•MicrosoftVisualStudio•MicrosoftVisualFrontPageandVisualInterDev•SunNetDynamics•SymantecVisualCaféUCM:
用于开发人员的解决方案公共集成流私有工作空间加入项目1象平时一样工作2UCM易于使用并与开发人员的日常开发活动结合!2以活动方式交付变更31.FixBug6712.SpecialPromo3.FixBug829待做工作列表公共集成流消除单调乏味
的任务轻松交付工作文件永远不会丢失!预览对话框示出需要交付的内容交付工具处理自动合并和简单合并自动调用合并管理器来处理其他冲突情况交付变更UCM:为开发人员而进行的优化•定义好的流程•加速工具使用,减少了团队成员之间的通信开支•将单调、易于出错的任务自动化–方便的工作空
间创建–文件永远不会丢失–易于集成变更–简化工作开发人员内置于工具内的流程集成人员的挑战SysNTAdminUserSrvcs?体系结构传统的CM系统不能表示你的体系结构集成人员集成问题与质量问题一致的系统构建困难构件被意外修改UCM:用于集成人员的解决方案•一致的
基线–构件定义了项目的范围–构件反映了高层系统架构对象,如子系统SystemUserServicesAdminProjectSystemBL5UserServicesBL2AdminBL3集成人员UCM使用构件来组织项目构件名称哪一条基线?只读?还是可修改的?集成人员基线创建和管理基线基线Buil
tTestedReleaseRejectedInitial用户可以定义基线的提升级别集成人员一致地组合系统开发人员和集成人员可以看到相同的配置易于创建和管理构件基线构件表达了你的系统架构清晰定义了项目范围UCM:为集成人员而进行的优化集成人员用于团队的统一变更管
理基线基线提升和使用级别BuiltTestedReleaseRejectedInitial你可以对UCM提供的流程进行定制•很好的流程,但这不是我们的流程!用于团队的统一变更管理自动状态变更SubmittedCloseOpenCloseRe-openDu
plicateCloseDuplicateOpenClosed•很好的流程,但这不是我们的流程!你可以对UCM提供的流程进行定制用于团队的统一变更管理基线提升项目策略基线最低的提升级别Baseline•很好的流程,但这不是我们的流程!你可以对UCM提供的流程进行
定制用于团队的统一变更管理基线提升基线使用级别自动状态变更项目策略不用书写脚本!你可以对UCM提供的流程进行定制…并且可以在需要时提供完整的定制•很好的流程,但这不是我们的流程!统一变更管理:优
点•直接可用的流程,不用书写脚本就可进行定制•管理高层构件•优化以便于团队接受开发人员永远也不会忘记一个文件了一致地进行系统整合管理基线维护构建审计追踪集成人员活动的组织与管理RationalClearQuestRationalClearCase管理活
动ToDoListsWorkflowClearQuest:组织好的活动RequestPriorityOwnerSpecialPromo1TerryBug5272SandyAddGUIbutton2Kim
管理工件Versioning:code,models,XML,HTMLParalleldevelopmentSpecialPromoa.htmlV5c.xmlV3b.jpgV8变更集ClearQuest:有组织的活动RationalClearQuestRationalCl
earCase活动自动收集变更集管理活动ToDoListsWorkflow管理工件Versioning:code,models,XML,HTMLParalleldevelopmentRequestPriorityOwnerSpecia
lPromo1TerryBug5272SandyAddGUIbutton2Kim将活动和工件结合在一起ClearCase和ClearQuest实现了UCM构件集成流开发流活动等等,这不是我的流程...ChangeRequestWorkflow有组织的活动Re
questPriorityOwnerProjectStatusBug981SamWebRelayCodeBug5273SandyWebRelayOpenAddGUIbutton1KimWebRelayCodeUCM以你工作的方式进行工作开发人员集成人员测试人员项目经理CodeOpenAss
ignTestClosed新的功能增强分析人员UCM使管理人员和开发人员同时受益•所有的高紧急度错误都得到修复了吗?•所有对发布版本1.0的功能增强请求的状态是什么?同基于活动的配置管理的紧密集成为掌握开发人员进度提供了方便使用Wizards可以快速产生查询和图表使用Window
s客户端和/或Web界面统一变更管理小结更快的版本发布–并行开发–分布开发更高的质量–基于已知基线进行软件构建–完全可靠的构建和发布周期集成的活动和工件管理–管理人的工作,对他们所需工件的访问进行自动化
直接可用的流程–使用已建好的配置管理最佳经验提升了抽象层次–在你所理解的工件上进行工作小组作业第7小组:安装并应用SourceSafe,制作一个产品演示PPT。(下面内容仅是建议,自己组织演示内容)•将项目所有的
源文件存入数据库;•客户端将程序拷贝到各自的工作目录下进行调试修改,然后进行Checkin到服务器,进行综合更新;•多个项目之间文件快速高效的共享;•每个成员对项目文件所作的修改将被记录到数据库中请小组以PPT方式总结出来,
2周后(4/29)上课前,第4,7组提交PPT文件给老师第4小组:安装并应用MSProjectProfessional,制作一个产品演示PPT。(下面内容仅是建议,自己组织演示内容)•项目经理编制WBS计划,形成进度甘特图•分配资源,发现资源瓶颈(暂时不管理
成本数据)•展现主要视图和表格•形成基线•跟踪项目进展人有了知识,就会具备各种分析明辨是非的能力。所以我们要勤恳读书,广泛阅读古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰培养逻辑思维能力;通过阅读文学作品,我们能提高培养文学情趣;通过阅读报刊
,我们能增长见识有许多书籍还能培养我们的道德给我们巨大的精神力量,