资源描述
*,T,单击此处编辑母版标题样式,Title,速度发动司法,Title,额外,第三章,软件项目的文档与配置管理,谷瑞 东南大学软件学院,3.1,软件工程文档概述,3.2,文档的分类与编制时间,3.3,文档的管理,3.4,配置管理的基本概念,3.5,配置管理的过程,3.6,配置管理的组织与实施,一个程序员的忏悔录,曾经有一个很好的文档配置管理工具在我面前,我没有理睬,直到版本混乱的时候才后悔莫及,工作中最大的痛苦莫过于此,如果上天再给我一次机会的话,我向对它说三个字:我要你。如果非得加一个期限的话,我希望是一辈子。,3.1,软件项目文档管理概述,项目文档概述,软件项目文档是,IT,软件项目开发中的重要组成部分,项目文档作用,能作为开发组员之间交流沟通的媒介,能为软件项目的维护工程师提供有关信息系统的资料和知识库,能为项目管理者提供项目计划、预算、开发进度等各方面的信息,能作为最终用户或管理员的用户手册,使用户知道如何使用、维护及管理,系统,3.1,软件项目文档管理概述,文档的分类,按照文档的产生和使用范围,文档可分为三类:,开发文档,作为软件开发人员前一阶段的工作体现和后一阶段的工作依据,管理文档,由软件开发人员制定的需提交给相关人员的一些工作计划或工作报告,用户文档,是软件开发人员为用户准备的有关该软件使用、操作、维护的资料,3.2,文档编制时间表,可行性研究,需求分析,软件设计,编码与单元测试,集成与系统测试,运行维护,可行性分析报告,项目开发计划,软件需求说明书,数据库要求说明书,测试计划,概要设计说明书,详细设计说明书,用户手册,操作手册,测试分析报告,开发进度月报,项目开发总结,程序维护手册,阶段,文档,文档编制时间表,3.2,文档编制时间表,管理人员,开发人员,维护人员,用户,可行性分析报告,项目开发计划,软件需求说明书,数据库要求说明书,测试计划,概要设计说明书,详细设计说明书,用户手册,操作手册,测试分析报告,开发进度月报,项目开发总结,程序维护手册,项目组人员与文档编制表,文档,用户,3.3,文档的管理与维护,文档的管理,在软件生存周期中,各种文档作为半成品或成品,会不断生成、修改或补充。一般的,文档的管理包括:,应该编制哪些文档,其详尽程度如何,审查和批准的负责人和时间进度安排,在开发期间内各文档的维护、修改和管理负责人,3.4,配置管理的基本概念,软件项目开发中是否遇到如下的问题?,开发人员使用错误的版本修改程序,开发人员未经授权修改代码或文档,或修改的结果不能及时反映到各个相关部分;,人员流动,交接工作不彻底造成软件关键部件遗失;,已修复的,Bug,在新版本中出现,找不到某个文件的历史版本,无法重新编译某个历史版本,使维护工作十分困难;,因协同开发中,或者异地开发,版本变更混乱导致整个项目失败;,软件项目进行中面临的一个主要问题是持续不断的变化;配置管理是有效管理变更的手段,它贯穿着几乎软件的整个生命周期。,3.4,配置管理的基本概念,配置管理,软件配置管理,(Software Configuration Management,,,SCM),是对产品进行标志、存储和控制,以维护其完整性、可追溯性以及正确性,它为软件开发提供了一套管理办法和活动原则,。,配置管理作用,记录软件产品的演化过程,确保软件开发者在软件生命周期中的各个阶段都能得到精确的产品配置。,最终保证软件产品的完整性、一致性、追朔性、可控性,3.4,配置管理的基本概念,软件配置项,软件配置项:,凡是纳入配置管理范畴的工作成果统称为配置项(,Configuration Item,,,CI,)。配置项主要有两大类:,属于产品组成部分的工作成果,例如源代码、需求文档、设计文档、测试用例等等。,在管理过程中产生的文档,例如各种计划、状态报告等等,这些文档虽然不是产品的组成部分,但是值得保存。,每个配置项的主要属性有:名称、标识符、文件状态、版本、作者、日期等。,3.4,配置管理的基本概念,配置项状态变迁,配置项刚建立时其状态为,“,草稿,”,;配置项通过评审(或审批)后,其状态变为,“,正式发布,”,3.4,配置管理的基本概念,基线,基线是软件生存周期中的一个特定点,其作用是把开发阶段的工作划更加明确化、使本来连续的工作在这点断开,以便于检查和评价阶段成果,图:软件开发中的基线,3.4,软件配置管理概述,版本与版本控制,软件配置是一个动态的概念,它一方面随着软件生存周期向前推进,另一方面随时会有新的变种出现,V1.0,V1.2,V1.1,V1.3,V1.4,V2.0,V2.1,V1.1.1,V1.1.2,图:版本演变与变种,3.4,配置管理的基本概念,版本与版本控制,软件的每一个版本都是源代码、文档及数据以及相关的系统环境的一个收集,且各个版本都可能由不同的变种组成。,版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地查找到配置项的任何版本。,3.4,配置管理的基本概念,版本控制规则,处于“草稿”状态的配置项的版本号格式为:,0.YZ,YZ,数字范围为,01-99,处于“正式发布”状态的配置项的版本号格式为:,X.Y,X,为主版本号,取值范围为,1-9,。,Y,为次版本号,取值范围为,1-9,处于“正在修改”状态的配置项的版本号格式为:,X.YZ,配置项正在修改时,一般只增大,Z,值,,X.Y,值保持不变,3.4,配置管理的基本概念,配置管理委员会,配置管理委员会,(Software Configuration Control Board,,,SCCB),是实现有序、及时和正确处理软件配置项的基本机制。,主要负责评估变更,批准变更申请,在生存期内规范变更申请流程,对变更进行反馈,与项目管理层沟通,3.5,软件项目配置管理过程,配置管理基本活动,配置管理计划,配置项标志,配置项控制,状态状况报告,配置项审核,配置管理过程,配置项标识、跟踪,配置管理环境建立,基线变更管理,基线审核,配置状态统计,配置管理计划,配置管理过程围绕配置管理的,5,项活动进行,3.5,软件项目配置管理过程,项目配置管理过程,配置管理计划,就是确定软件配置管理的解决方案,一个关键任务是确定要控制哪些文档。,配置项标志、跟踪,一个项目通常会生成很多的过程文件,并经历不同的阶段和版本,3.5,软件项目配置管理过程,项目配置管理过程,配置管理环境建立,建立配置管理库,简称配置库。软件配置管理库是用来存储所有基线配置项及相关文件的等内容的系统,是在软件产品的整个生存期中建立和维护软件产品完整性的主要手段。,开发库,受控库,产品库,3.5,软件项目配置管理过程,项目配置管理过程,配置管理环境建立,受控操作,:,从受控库导出的文件自动被锁定直到文件重新被导入,一个版本号自动与新版本文件相关联。配置库中文件不能更改,任何更改都被视为创建了一个新版本文件。,3.5,软件项目配置管理过程,项目配置管理过程,基线变更管理,项目基线(配置项)可能由于种种原因会发生变更,如:客户需求变化、进度变更、成本变更、产品环境变化等。,配置控制,变更请求,变更评估,批准,/,拒绝,变更实现,3.5,软件项目配置管理过程,项目配置管理过程,基线变更管理,变更请求,项目名称,变更申请人,提交时间,变更题目,紧急程度,变更的具体内容,变更影响分析,变更确定,处理结果,签字,3.5,软件项目配置管理过程,项目配置管理过程,基线变更管理,变更评估,变更评估,软件变更分类,技术影响分析,接口影响分析,进度影响分析,预算影响分析,3.5,软件项目配置管理过程,项目配置管理过程,基线变更管理,变更批准或拒绝,批准,/,拒绝变更,(若批准)实施变更,决策,(若批准)验证变更,(,若批准)发布、安装变更,(若批准)版本更新,3.5,软件项目配置管理过程,项目配置管理过程,基线变更管理,变更批准或拒绝,变更实现,变更实现,受控基线出库,实现的测试和验证,实现被承认,受控基线入库,2.5,软件项目配置管理过程,项目配置管理过程,配置审核,配置审核作为变更控制的补充手段,目的是为了确保某一变更请求已被确切实现。配置审核主要包括两方面的内容:,配置管理活动审核,基线审核,3.5,软件项目配置管理过程,项目配置管理过程,状态报告,定期检测软件配置管理系统的运行情况以及配置项本身的变更历史记录,并且将这些结果以报告的形式给出。,3.6,配置管理组织与实施,配置管理组织,组织机构,责 任,具体职责,项目经理,负责整个软件项目的研发活动,根据,SCCB,的建议,批准配置管理的各项活动并控制它们的进程,制定和修改项目的组织结构和配置管理策略,批准、发布配置管理计划,决定项目起始基线和开发里程碑,接收并审阅,SCCB,的报告,软件配置控制 委员会(,SCCB,),管理软件基线,承担变更控制的所有责任,授权建立软件基线和标志配置,/,配置单元,代表项目经理和受到基线影响的质量保证组、配置管理组、工程组、系统测试组、合同管理组、文档支持组等小组的利益,审查和审定对软件基线的更改,审定由软件基线数据库中生产的产品和报告,软件配置小组(,SCM,小组),负责协调和实施项目,创建和管理项目的软件基线库,制定、维护和发布,SCM,计划、标准和规程,标志置于配置管理下的软件工作产品集合,管理软件基线的库的使用,更新软件基线,生成基于软件基线的产品,记录,SCM,活动,生成和发布,SCM,报告,开发人员,负责开发任务,根据组织内确定的软件配置管理计划和相关规定,按照软件配置管理工具的使用模型来完成开发任务,3.6,配置管理组织与实施,配置管理实施,主要包括的活动,确定初始基线,由,SCCB,确定研发活动的初始基线;,配置库管理,配置人员根据软件配置管理规划设立配置库和工作空间,为执行软件配置管理做好准备,并定期执行备份和清理工作;,授权开发,开发人员按照统一的软件配置管理策略,根据获得授权的资源进行项目研发工作,;,集成,系统集成人员按照项目进度集成组内开发人员的工作成果,构建系统,推进版本演进;,管理基线,SCCB,根据项目的进展情况,并适时地建立基线,批准基线变更,保证开发和维护工作有序地进行;,产品开发,系统集成人员进行产品集成,由,SCCB,批准,进行发布。,
展开阅读全文