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