zoukankan      html  css  js  c++  java
  • 2017.07.07 IT项目管理笔记整理 第六章软件项目配置管理

    软件配置管理定义:是识别、定义系统中的配置项,在软件生命周期中控制它们的变更,记录并报告配置项和变更请求状态,并验证他们完整性和正确性的一个过程。是组织和管理各种软件产品及文档,控制其变化的一系列活动。

    功能:配置标识、配置控制、配置状态报告及配置审核。
    进行软件配置管理原因:复杂的软件系统开发过程,开发的过程越来越大,功能越来越复杂/众多软件开发人员/多种文件对象和类型(需求、各种文档、设计模型、源代码、目标代码、web组件、测试脚本、测试用例)多种版本/多种平台/多种开发地点。

    实施软件配置管理益处:加强了开发控制,加强了产品质量的可控性/节约费用(缩短开发周期、减少施工费用)/有利于知识库的建立(代码对象库、业务及经验库)/规范管理(量化工作量考核、规范测试、加强协调与沟通) 软件,由逻辑和功能特性构建的信息。

    配置由部件、部件表组成。标识,识别产品结构、构建和类型,唯一的标识符。

    软件配置项,是为了配置管理的目的而作为一个单位来看待的软件要素集合。

    基线,是开发过程的里程碑,以一个或多个配置项的交付为标准,基线由通过正式评审的软件配置项组成,是进一步开发的基础;基线只有通过正式的变更控制过程才能改变。

    作用把各阶段的工作划分得更加明确,使得本来连续的工作在这些点上断开,使之便于检验和确认阶段开发成果,使后续工作在确认后的基准上进行。


    版本,是一个基线或一个软件配置的特例(数字顺序版本V1.0、符号命名版本、属性版本、正交版本)。 控制,控制软件产品的发布和在整个生命周期中对软件产品的修改。

    状态统计,记录并报告构件和修改的请求状态,收集产品重要的统计信息。

    审核,确认产品的完整性并维护构建的一致性。生产,对产品的生产进行优化管理。过程管理,确保软件组织的规程、仿真和软件生命周期得以正确贯彻执行。 小组协作,控制开发同一产品的多个开发人员之间的协作。


    配置控制委员会,负责评审和批准对基线的变更,通常由项目选出的代表组成。


    软件配置管理过程:1计划配置管理 2、开发配置管理方案 3、配置控制 4、状态审计


    软件配置管理职能职责承担者 1、配置经理 2、模块主管 3、变更控制委员会


    版本控制机制的作用:同时修改、共享和公用代码、版本问题。

    配置经理职能: 1制定软件配置管理规程,形成文档并分发给有关人员 2建立系统基线,包括备份规则 3确保对基线的变更都经过授权人员的批准 4确保对基线的所有变更都进行充分细致的记录,以便可以重新生成或回退 5确保所有基线变更都经过回归测试

    6规定解决异常问题的关注焦点

    模块主管主要职责 1、把握模块的设计 2、为参与模版及其接口工作人员提供建议
    3、控制模块的所有更改 4、评审模块的变更和定期进行回归测试,确保模块的完整性


    软件配置管理文件体系 1、方针 2、过程定义 3、规程和模板


    过程定义文件活动描述 1、目的 2、角色及职责 3、入口准则 4、控制 5、输入
    6过程活动,采取行动把输入转变成预定的输出 7、输出 8、 出口准则


    软件配置管理的主要功能:1、配置标识 2、配置控制 3、配置状态报告 4、配置审核


    使用并行开发的原因,并行开发允许不同的开发人员在同一时间使用相同的源文件,通常采用工作副本的形式。并行开发隔离了那些还没有为项目的其余部分做好共享准备的工作,隔离了那些永远不被共享的工作,同时即使那一条开发线被冻结了,仍允许其他分支继续开发,


    分支管理:并行开发的关键方法隔离变更对变更、BUILD、测试以及基线等进行隔离,分别进行管理将工作分解、变更任务、工作分类等有机地组织起来对变更任务的集成进行控制有助于问题的交流、可见性、项目计划和跟踪以及最终的风险管理。分支、文件比较和合并是保障软件配置管理的重要手段,大型项目也是如此。


    变更管理:模块变更管理(差异代码管理、条件代码管理)基线管理(功能对基线进行适当控制,禁止任何未经批准的变更。为程序员提供灵活的服务,确保他们能够比较容易的对自己的代码进行修改和测试。


    配置标识注意问题
    1必须识别出每一个软件配置项并赋予它唯一的标记2识别和标记计划必须反应产品的结构 3必须建立识别和标记软件配置的标准 4必须建立识别和标记所有形式的测试和测试数据的标准 5必须建立识别建造基线需要的支持工具的标准 6要特别关注集成到软件产品中的第三方软件 7要特别关注来自其他产品中正被重新使用的软件或打算重用的软件
    8要特别关注打算替换的原型软件

    变更管理:1模块变更管理(分为差异代码管理和条件代码管理) 2、基线管理

    基线管理基本职能 1、对基线进行适当控制,禁止任何未经批准的变更 2、为程序员提供灵活的服务,确保他们能够比较容易地对自己的代码进行修改和测试


    基线变更控制机制的需求: 1对基线提出的变更必须经过一定层次的评审 2必须确定和理解提出的变更对经费、进度、软件开发和生产造成的影响 3变更必须获取相关组织的批准 4必须正确实施被批准的变更 5一旦变更被批准,必须通知所有受影响的部门


    软件配置审核关注的因素: 1、变更指令中指定的变更是否完成?每个附加变更是否已经纳入到系统中? 2、是否进行了正式技术审核 3、是否遵循软件工程标准 4、变更的软件配置项是否作了特殊标记而得到强调?是否注明变更日期和变更执行人员?软件配置项属性是否反映了变更? 5、是否遵循与变更有关的注释、记录及报告的软件配置管理规程 6、相关的软件配置项是否都得到了同步更新

    配置审核的种类:1、过程审核 2、功能审核 3、物理审核 4、质量系统审核 构件:指系统中可以明确辨识的构成分,可复用构件具有相对独立功能和可复用价值的附件

    版本控制工具:CVS(Free),SVN, Git Microsoft SourceSafe Borland StarTeam

    配置管理工具Merant PVCS ,Rational ClearCase

    在集成和测试期间的Build: 隔离(将集成分支上的所有用户锁定)稳定(由专人进行BUILD,不成功需要修改错误对BUILD结果进行测试,有问题进行修复)共享(生成基线提升老基线)!基线变更管理(变更贯穿于整个开发过程始终)已提交(不批准)→已批准→已分配→已执行→验证通过(验证不通过,则返回已分配状态)→已关闭


    软件项目的成分: 1基本构件,是特定于计算机系统的构成成分 2领域共性构件,是软件项目所属领域的共性构成成分 3应用专业构件,是每个软件项目的特有构成成分


    构件技术的研究内容 1、构件获取技术 2、构建模型技术 3、构建描述语言

    4构建分类与检索问题 5、构建组装技术 6、标准化问题

    大粒度的开发方法对版本管理提出新的要求 1应能有效的存储和管理构件演化历史
    2操作模型应有利于体现构件的整体性,降低系统开发的复杂程度
    3需要保证并行开发构件时的正确性,同时不减少项目组协同工作的灵活性


    以构件为粒度的版本管理的特点:1构件的抽象级别比文件高 2、构件的粒度可以比文件大很多 3、在构件的基础上,可以体现出系统的层次性,构造性等特征,同时构件版本管理也可以满足对文件版本的管理需求,使版本管理既有大粒度,又有灵活性


    基于构件的配置管理比传统配置管理的优越性: 1、构件是一个逻辑概念,它有明确的逻辑含义,记录和维护构件的版本更有实际意义 2、构件的粒度可以比较大,对大粒度的单位进行版本控制更适合现代大规模软件的开发 3、构件是有结构的,构件版本控制可以满足对文件的版本控制需求 4、构件组装时基于构件的软件开发的一个重要环节,基于构件的配置可直接支持构件组装

  • 相关阅读:
    CF1066E Binary Numbers AND Sum
    CF1063B Labyrinth
    CF1063A Oh Those Palindromes
    CF1066C Books Queries
    CF1060D Social Circles
    CF1059C Sequence Transformation
    CF1059B Forgery
    CF1060C Maximum Subrectangle
    【LYOI2016】EasyRound1
    【bzoj2242】计算器
  • 原文地址:https://www.cnblogs.com/hqutcy/p/7132455.html
Copyright © 2011-2022 走看看