资源描述
第十一章软件项目与构型管理大纲v软件构型管理(Software Configuration Management,SCM)定义与工作内容v软体构型管理标准与内容v软体专案基线(Baseline)与构型管理的关系v软体构型管理工具v本章总结2/35学习目标v组织内软件构型管理的内容v软体构型管理限制与指引v软体构型管理的规划v监督与稽核软体构型管理3/35软件构型管理的定义v系统构型(System Configuration)是指可能是硬件、韧体、软件或技术文件的结合,以完成一个产品Buckley。v特定版本:由各组成部份如硬件、韧体、软件或技术文件等排列组合而成,以作为依据设立程序及产品目标。v所有版本现状及修改皆可追溯并具有双向追溯性(bidirectional traceability),藉以提升可维护性。v具体地说,构型管理是标识构型标识符,以维护其完整性、可追溯性及正确性的学科。4/35软件构型管理的工作内容v工作内容构型识别(Configuration Identification)版本控制(Version Control)构型控制(Configuration Control)含变更控制(Change Control)构型状况报告(Configuration Status Accounting)构型稽核(Configuration Audit)5/35构型识别v构型识别是指选择适当的记述方式,包括运用数字编号及其它识别名称,以区别各类需要做构型管理的各项产品(如文件、程序、数据)。v构型项目的内容,可能使用已获准之记述方式,用各种不同的形式(包含规格、蓝图、列表、界面控制文件等),以区别、定义出各种构型项目的功能及实体特征(functional and physical characteristics)。6/35标识方法v构型项目的标识方法,主要是选择适当的记述方式,包括运用数字编号及其它识别名称,以区别各类软件产品(文件、数据、程序)。v软件产品识别必须确保各项软件产品的命名(Naming)均有意义,而且具有一致性。7/35构型项目的范例例如:文件的识别,包含v专案名称(或专案代码)v系统/子系统名称v承包商名称v客户名称v合约编号8/35版本控制v版本控制为构型管理的核心功能。v构型数据库中的元素都应(自动)予以版本的标识。v版本的标识,必须具有唯一性。9/35版本控制的范例10/35RELEASE 1.0RELEASE 1.5RELEASE 2.0变更控制v变更控制(Change Control):针对项目中所有组成项目,如果需要做变更,必须要有一个完整而妥善的变更方法与程序。11/35变更控制的作业程序v软件项目变更控制主要依据基线配置项,一般流程,如下:提出变更请求(CR)由变更控制委员会(CCB)审核并决定是否批准批准之变更请求,经由指派人员提取构型项目(CI),进行修改复审变化提交修改后的构型项目(CI)建立测试基线并测试重建软件的适当版本复审(审查)所有构型项目(CI)的变化发布新版本12/35构型项目变更控制的作业流程(1/2)13/35使用单位直属主管变更需求申请单核准核准检讨更改的必要性核准拒绝CCB退回拒绝构型项目变更控制的作业流程(2/2)14/35冲击性分析确认更改核准拒绝CCB拒绝可行性分析执行更改工作接受软件开发小组核准构型状况报告(1/2)v构型状况报告(Configuration Status Accounting):根据报告,应着重反映当前基线配置项的状态,以作为对开发进度报告的参照。15/35构型状况报告(2/2)包括下列主要内容:v构型数据库结构和相关说明v开发起始基线的构型项目组合v当前基线位置及状态v各基线配置项及成分支的情况v各子开发分支类型的分布情况v关键构型项目的版本演进记录v其他应予报告的事项16/35构型稽核的目的v构型稽核(Configuration Audit)目的是作为构型管制的补充手段,来确保某一变更需求(CR)已被确实实现。在某些情况下,它被作为正式的技术审查的一部分,当软件构型管理成为一个正式的活动时,该活动由软件质量确保(SQA)人员独立执行。17/35构型稽核的主要工作v软件项目构型稽核的主要工作功能构型稽核(Functional Configuration Audit,FCA)实体构型稽核(Physical Configuration Audit,PCA)18/35功能构型稽核主要工作v审查软件测试报告v审查正式鉴定测试(FQT)v确认所有的工程变更要求,均已完整纳入管制,并已获得解决。v审查相关的运作及支持文件(Operation and Support Document)v审查每一检验与测试项目及检验与测试结果19/35实体构型稽核主要工作v审查软件产品规格(SPS)与版本说明文件(VDD)的一致性与完整性。v审查已经发展完成(as-built)的软件、软件产品规格(SPS)及运作及支持文件相互之间的一致性与完整性。v确认目前的软件产品规格(SPS)是否与原来识别的内容一致。v确认正确的版本及修改信息是否已纳入基准文件,并与基准的构型状况报告相符。20/35软件构型管理标准与内容(1/2)v软件工程技术吸引越来越多关注的目光。例:CMMI为代表现代的软件工程理念,在国内、外皆受到业界广泛的重视。v软体构型管理(Software Configuration Management,SCM)作为CMMI第2级的一个流程领域(Process Area,PA),在整个软件的开发活动中占有极重要的地位。21/35软件构型管理标准与内容(2/2)v软件构型管理中所包含的活动,融合入现有的软件开发流程的管理过程,甚至以软件构型管理过程为框架,来发展及再造组织的软件开发流程。v在CMMI 二级当中,最后一个PA 软件构型管理的目的,是在项目的整个软件生命周期内,建立并维护软件项目产品及项目过程产物的完整性。实际上,构型管理是大多数软件工程和管理流程的重要部分。22/35软件项目基线与构型管理的关系v在软件开发过程中,由于各种原因,可能需要变更需求、变更预算、变更进度和变更设计方案等,尽管这些变更请求(CR)中绝大部分是合理的,但在不同的时机作不同的变更,难易程度和造成影响差别甚大,为了有效地控制变更,软件构型管理必须引入项目基线(基线)(baseline)的概念。23/35基线属性 v通过正式的评审过程建立 v基线存在于基线库中,对基线的变更,接受更高权限的控制 v基线是进一步开发和修改的基准和出发点 24/35建立基线的好处(1/2)v重现性 及时返回并重新生成软件系统给定发布版的能力,或者是在项目中的早期所具备开发环境的能力。当认为更新不稳定或不可信时,基线为团队提供一种取消变更的方法 v可追溯性 建立项目执行工件之间的前后继承关系。目的是确保需求、编码、设计、测试、实施(上线)及用正确代码编译可执行文件。25/35建立基线的好处(2/2)v版本隔离 基线为提供一个定点和快照,新项目可以从基线所提供的定点中建立,作为一个单独分支,新项目将与随后定点上之原始项目(在主要分支上)进行变更的隔离。26/35软件构型管理工具(1/6)v较著名的软件构型管理工具Rational ClearCaseHansky FireflyConcurrent Versions System(CVS)Microsoft Visual Source SafeMerant PVCSBorland Starteem27/35构型管理工具-Rational ClearCase(2/6)vRational 公司是规模相当大的软件CASE 工具之供货商,已被整合入IBM中。vRational公司所开发的构型管理工具ClearCase,深受用户的喜爱,是现在应用面最广的企业级、跨平台的构型管理工具之一。28/35构型管理工具-Hansky Firefly(3/6)vHansky 公司的Firefly是软件开发管理套件中重要的一环,可以轻松管理、维护整个企业的软件资产,包括程序代码和相关文档。vFirefly是一个功能完善、运行速度极快的软件构型管理系统,可以支持不同的操作系统和多种层级开发环境,因此它能在整个企业中的不同团队,不同项目中得以应用。29/35构型管理工具-Concurrent Versions System(4/6)vConcurrent Versions System(CVS)是开放源代码软件,由于其简单易用、功能强大,跨平台,而且免费,在全球中小型软件企业中得到了广泛使用。vCVS最大的遗憾就是缺少相应的技术支持,许多问题的解决需要自己寻找数据。30/35构型管理工具-Microsoft Visual Source Safe(5/6)vVisual Source Safe(VSS)是微软公司为Visual Studio配套开发的一个小型的构型管理工具,准确来说,它仅能够称得上是一个小型的版本控制软件。vVSS的优点在于其与Visual Studio产品结合,使用简单。提供了历史版本记录、修改控制、日志等基本功能。31/35构型管理工具-PVCS(6/6)vMERANT 公司的PVCS 能够提供对软件配置管理的基本支持,透过使用其图形接口或类似SCCS 的命令,能够基本满足小型项目开发的构型管理需求。vPVCS 在功能上虽然能满足基本需求,但其性能表现一直较差,逐渐地被市场所冷落。32/35本章总论v构型管理本身无论从理论和实践都在不断丰富和发展。例如:构型管理应用于“知识库”的管理,就产生了“项目管理”这一新的领域。v构型管理提供的状态报告和数据统计,为软件度量提供了决策依据。v构型管理为项目管理提供了各种监控项目进展的视角,为项目经理确切掌握项目进程,并提供了保证。v构型管理为开发人员提供了一个协同合作的平台,在此平台上,大家能够更有效率的交流和合作。可以说,构型管理是软件开发的基石!33/35自我评量v软件构型管理定义为何?v软体构型管理的主要工作为何?v建立软件项目基线目的?v专案构型稽核目的与主要工作?v软体构型管理工具有哪些?34/35
展开阅读全文