第15章 信息(文档)和配置管理

news2024/12/23 0:49:17

文章目录

  • 软件文档的分类
    • (1)开发文档:描述开发过程 本身
    • (2)产品文档:描述开发过程的 产物
    • (3)管理文档:记录项目管理的信息
  • 文档的质量可以分为四级
    • (1)最低限度文档(1级文档)
    • (2)内部文档(2级文档)
    • (3)工作文档(3级文档)
    • (4)正式文档(4级文档)
  • 15.2.1 配置管理 的概念 493
    • 1、配置项
    • 2、配置项状态(草稿、正式、修改)
    • 3、配置项版本号
    • 4、配置项版本管理
    • 5、配置基线
    • 6、配置库(开发、受控、产品 库)
    • 7、 配置库权限设置
    • 8、配置控制委员会(CCB)决策机构
    • 9、配置管理员(CMO)
    • 10、配置管理系统
  • 15.2.2 制定配置管理计划 498
  • 15.2.3 配置标识 498
  • 15.2.4 配置控制 499
  • 15.2.5 配置状态报告 501
  • 15.2.6 配置审计 501
    • 1、功能配置审计(一致性)
    • 2、物理配置审计(完整性)
  • 15.2.7 发布管理和交付 502
    • 1、存储
    • 2、复制
    • 3、打包
    • 4、交付
    • 5、重建
  • 各角色在配置管理活动中的权限

第15章 信息(文档)和配置管理 491
15.1 信息系统项目相关信息(文档)及其管理 491
15.1.1 信息系统项目相关信息(文档) 491

软件文档的分类

(1)开发文档:描述开发过程 本身

① 可行性研究报告和项目任务书
② 需求规格说明
③ 功能规格说明
④ 设计规格说明,包括程序和数据规格说明
⑤ 开发计划
⑥ 软件集成和测试计划
⑦ 质量保证计划
⑧ 安全和测试信息

(2)产品文档:描述开发过程的 产物

培训手册
参考手册和用户指南
软件支持手册
产品手册和信息广告

(3)管理文档:记录项目管理的信息

开发过程的每个阶段的进度和进度变更的记录
软件变更情况的记录
开发团队的职责定义

文档的质量可以分为四级

(1)最低限度文档(1级文档)

适合开发工作量低于一个人月的开发者自用程序。该文档应包含程序清单、开发记录、测试数据和程序简介。

(2)内部文档(2级文档)

可用于没有与其他用户共享资源的专用程序。除1级文档提供的信息外,2级文档还包括程序清单内足够的注释以帮助用户安装和使用程序。

(3)工作文档(3级文档)

适合于由同一单位内若干人联合开发的程序,或可被其他单位使用的程序。

(4)正式文档(4级文档)

适合那些要正式发行供普遍使用的软件产品。关键性程序具有重复管理应用性质(如工资计算)的程序需要4级文档。

15.1.2 信息系统项目相关信息(文档)管理的规则和方法 492
信息系统文档的规范化管理 主要体现在文档书写规范、图表编号规则、文档目录编写标准和文档管理制度等几个方面。

15.2 配置管理 493
配置管理定义:应用技术的和管理的指导和监控方法以标识和说明配置项的功能和物理特征,控制这些特征的变更,记录和报告变更处理和实现状态并验证与规定的需求的遵循性。
配置管理包括6个主要活动:制定配置管理计划、配置标识、配置控制、配置状态报告、配置审计、发布管理和交付
在这里插入图片描述

15.2.1 配置管理 的概念 493

1、配置项

典型配置项包括项目计划书、需求文档、设计文档、源代码、可执行代码、测试用例、运行软件所需的各种数据,它们经评审和检查通过后进入配置管理。
有些文档生成后不可修改的(如测量报告、会议纪要工作报告),就不能当做配置项。配置项是可以修改的

所有配置项都应按照相关规定统一编号,按照相应的模板生成,并在文档中的规定章节(部分)记录对象的标识信息。在引入配置管理工具进行管理后,这些配置项都应以一定的目录结构保存在配置库中。
在信息系统的开发流程中需加以控制的配置项可以分为基线配置项和非基线配置项两类,例如,基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括项目的各类计划和报告等。
所有配置项的操作权限应由CMO配置管理员)严格管理,基本原则是:基线配置项向开发人员开放读取的权限;非基线配置项向PM、CCB及相关人员开放。

2、配置项状态(草稿、正式、修改)

配置项的状态可分为“草稿” “正式”和“修改”三种。配置项刚建立时,其状态为“草稿”。配置项通过评审后,其状态变为“正式”。此后若更改配置项,则其状态变为“修改”。当配置项修改完毕并重新通过评审时,其状态又变为“正式”。
在这里插入图片描述

3、配置项版本号

配置项的版本号规则与配置项的状态相关。
(1)处于 “草稿” 状态的配置项的版本号格式为 0.YZ, YZ的数字范围为01〜99。 随着草稿的修正,YZ的取值应递增。YZ的初值和增幅由用户自己把握。
(2)处于 “正式” 状态的配置项的版本号格式为 X.Y,X为主版本号,取值范围为1〜9。Y为次版本号,取值范围为0〜9。配置项第一次成为“正式”文件时,版本号为1.0。
如果配置项升级幅度比较小,可以将变动部分制作成配置项的附件,附件版本依次为1.0,1.1,……。当附件的变动积累到一定程度时,配置项的Y值可适量增加,Y值增加一定程度时,X值将适量增加。当配置项升级幅度比较大时,才允许直接增大X值。
(3)处于 “修改” 状态的配置项的版本号格式为 X.YZ。配置项正在修改时,一般只增大Z值,X.Y值保持不变。当配置项修改完毕,状态成为“正式”时,将Z值设置为0,增加X.Y值。参见上述规则(2) 。

4、配置项版本管理

配置项的版本管理作用于多个配置管理活动之中,如配置标识、配置控制和配置审计、发布和交付等。在项目开发过程中,绝大部分的配置项都要经过多次的修改才能最终确定下来。对配置项的任何修改都将产生新的版本。由于我们不能保证新版本一定比旧版本“好”,所以不能抛弃旧版本。版本管理的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地査找到配置项的任何版本。

5、配置基线

信息系统的开发过程是一个不断变化着的过程,为了在不严重阻碍合理变化的情况下来控制变化,配置管理引入了“配置基线(Configuration Baseline)”这一概念。
配置基线(常简称为基线)由一组配置项组成,这些配置项构成一个相对稳定的逻辑实体。基线中的配置项被“冻结” 了,不能再被任何人随意修改。对基线的变更必须遵循正式的变更控制程序。
一组拥有唯一标识号的需求、设计、源代码文卷以及相应的可执行代码、构造文卷和用户文档构成一条基线。产品的一个测试版本(可能包括需求分析说明书、概要设计说明书、详细设计说明书、已编译的可执行代码、测试大纲、测试用例、使用手册等)是基线的一个例子。
基线通常对应于开发过程中的里程碑,—个产品可以有多个基线,也可以只有一个基线。交付给外部顾客的基线一般称为发行基线,内部开发使用的基线一般称为构造基线
建立基线还可以有如下好处:(1)基线为开发工作提供了一个定点和快照。(2)新项目可以在基线提供的定点上建立。新项目作为一个单独分支,将与随后对原始项目(在主要分支上)所进行的变更进行隔离。(3)当认为更新不稳定或不可信时,基线为团队提供一种取消变更的方法。(4)可以利用基线重新建立基于某个特定发布版本的配置,以重现已报告的错误。

6、配置库(开发、受控、产品 库)

配置库(Configuration Library )存放配置项并记录与配置项相关的所有信息,是配置管理的有力工具,利用库中的信息可回答许多配置管理的问题。
配置库可以分为开发库、受控库、产品库3种类型
(1)开发库,也称为动态库、程序员库或工作库,用于保存开发人员当前正在开发的配置实体,如:新模块、文档、数据元素或进行修改的已有元素。动态中的配置项被置于版本管理之下。动态库是开发人员的个人工作区,由开发人员自行控制。库中的信息可能有较为频繁的修改,只要开发库的使用者认为有必要,无需对其进行配置控制,因为这通常不会影响到项目的其他部分。
(2)受控库,也称为主库,包含当前的基线加上对基线的变更。受控库中的配置项被置于完全的配置管理之下。在信息系统开发的某个阶段工作结束时,将当前的工作产品存入受控库。
(3)产品库,也称为静态库、发行库、软件仓库,包含已发布使用的各种基线的存档,被置于完全的配置管理之下。在开发的信息系统产品完成系统测试之后,作为最终产品存入产品库内,等待交付用户或现场安装。
在这里插入图片描述
配置库的建库模式有两种:按配置项类型建库和按任务建库。
(1)按配置项的 类型分类建库,适用于通用软件的开发组织。使用这样的库结构有利于对配置项的统一管理和控制,同时也能提高编译和发布的效率。但由于这样的库结构并不是面向各个开发团队的开发任务的,所以可能会造成开发人员的工作目录结构过于复杂,带来一些不必要的麻烦。
(2)按开发 任务建立相应的配置库,适用于专业软件的开发组织。在这样的组织内,使用的开发工具种类繁多,开发模式以线性发展为主,所以就没有必要把配置项严格地分类存储,人为增加目录的复杂性。对于研发性的软件组织来说,采用这种设置策略比较灵活。

7、 配置库权限设置

配置库的权限设置主要是解决库内存放的配置项什么人可以“看”、什么人可以,“取”、什么人可以“改”、什么人可以“销毁”等问题。
配置管理员负责为每个项目成员分配对配置库的操作权限。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8、配置控制委员会(CCB)决策机构

配置控制委员会(Configuration Control Board, CCB),负责对配置变更做出评估、审批以及监督已批准变更的实施。
CCB建立在项目级,其成员可以包括项目经理、用户代表、产品经理、开发工程师、测试工程师、质量控制人员、配置管理员等。CCB不必是常设机构,完全可以根据工作的需要组成,例如按变更内容和变更请求的不同,组成不同的CCB。小的项目CCB可以只有一个人,甚至只是兼职人员。
通常,CCB不只是控制配置变更,而是负有更多的配置管理任务,例如:配置管理计划审批、基线设立审批、产品发布审批等。

9、配置管理员(CMO)

配置管理员(Configuration Management Officer, CMO),负责在项目的整个生命周期中进行配置管理活动,具体有:
(1)编写配置管理计划
(2)建立和维护配置管理系统
(3)建立和维护配置库
(4)配置项识别
(5)建立和管理基线
(6)版本管理和配置控制
(7)配置状态报告
(8)配置审计
(9)发布管理和交付
(10)对项目成员进行配置管理培训

10、配置管理系统

配置管理系统是用来进行配置管理的软件系统,其目的是通过确定配置管理细则和提供规范的配置管理软件,加强信息系统开发过程的质量控制,增强信息系统开发过程的可控性,确保配置项(包括各种文档、数据和程序)的完备、清晰、一致和可追踪性,以及配置项状态的可控制性。

15.2.2 制定配置管理计划 498

配置管理计划是对如何开展项目配置管理工作的规划,是配置管理过程的基础,应该形成文件并在整个项目生命周期内处于受控状态。配置控制委员会负责审批该计划。
配置管理计划的主要内容为:(1)配置管理活动,覆盖的主要活动包括配置标识、配置控制、配置状态报告、配置审计、发布管理与交付;(2)实施这些活动的规范和流程;(3)实施这些活动的进度安排;(4)负责实施这些活动的人员或组织,以及他们和其他组织的关系。

15.2.3 配置标识 498

配置标识(Configuration Identification)也称配置识别,包括为系统选择配置项并在技术文档中记录配置项的功能和物理特征。配置标识是配置管理员的职能,基本步骤如下
(1)识别需要受控的配置项
(2)为每个配置项指定唯一性的标识号
(3)定义每个配置项的重要特征
(4)确定每个配置项的所有者及其责任
(5)确定配置项进入配置管理的时间和条件
(6)建立和控制基线
(7)维护文档和组件的修订与产品版本之间的关系

15.2.4 配置控制 499

配置控制即配置项和基线的变更控制,包括下述任务:标识和记录变更申请,分析和评价变更,批准或否决申请,实现、验证和发布已修改的配置项。
1、变更申请
2、变更评估
CCB负责组织对变更申请进行评估并确定以下内容。
(1)变更对项目的影响。
(2)变更的内容是否必要。
(3)变更的范围是否考虑周全。
(4)变更的实施方案是否可行。
(5)变更工作量估计是否合理。
3、通告评估结果
4、变更实施
5、变更验证与确认
6、变更的发布
7、基于配置库的变更控制
现以某软件产品升级为例,简述其流程。(1)将待升级的基线(假设版本号为V2.1)从产品库中取出,放入受控库。(2)程序员将欲修改的代码段从受控库中检出(Check out),放入自己的开发库中进行修改。代码被Check out后即被“锁定”,以保证同一段代码只能同时被一个程序员修改,如果甲正对其修改,乙就无法Check out。(3)程序员将开发库中修改好的代码段检入(Check in)受控库。Check in后,代码的“锁定”被解除,其他程序员可以Check out该段代码了。(4)软件产品的升级修改工作全部完成后,将受控库中的新基线存入产品库中(软件产品的版本号更新为V2.2, 旧的V2.1版并不删除,继续在产品库中保存)。
在这里插入图片描述

15.2.5 配置状态报告 501

配置状态报告(Configuration Status Reporting)也称配置状态统计(Configuration Status Accounting),其任务是有效地记录和报告管理配置所需要的信息,目的是及时、准确地给出配置项的当前状况,供相关人员了解,以加强配置管理工作。
配置状态报告应该包含以下内容
(1)每个受控配置项的标识和状态。一旦配置项被置于配置控制下,就应该记录和保存它的每个后继进展的版本和状态。
(2)每个变更申请的状态和已批准的修改的实施状态。
(3)每个基线的当前和过去版本的状态以及各版本的比较。
(4)其他配置管理过程活动的记录。
配置状态报告应着重反映当前基线配置项的状态,以向管理者报告系统开发活动的进展情况。配置状态报告应定期进行,并尽量通过CASE工具自动生成。

15.2.6 配置审计 501

配置审计(Configuration Audit)也称为配置审核配置评价,包括功能配置审计和物理配置审计,分别用以验证当前配置项的一致性和完整性。
配置审计的实施是为了确保项目配置管理的有效性,体现了配置管理的最根本要求——不允许出现任何混乱现象,例如:
(1)防止向用户提交不适合的产品,如交付了用户手册的不正确版本;
(2)发现不完善的实现,如开发出不符合初始规格说明或未按变更请求实施变更;
(3)找出各配置项间不匹配或不相容的现象;
(4)确认配置项己在所要求的质量控制审核之后纳入基线并入库保存;
(5)确认记录和文档保持着可追溯性。

1、功能配置审计(一致性)

功能配置审计是审计配置项的一致性(配置项的实际功效是否与其需求一致),具体验证以下几个方面。
(1)配置项的开发已圆满完成。
(2)配置项已达到配置标识中规定的性能和功能特征。
(3)配置项的操作和支持文档已完成并且是符合要求的。

2、物理配置审计(完整性)

物理配置审计是审计配置项的完整性(配置项的物理存在是否与预期一致),具体验证如下几个方面。
(1)要交付的配置项是否存在。
(2)配置项中是否包含了所有必需的项目。

15.2.7 发布管理和交付 502

发布管理和交付活动的主要任务是:有效控制软件产品和文档的发行和交付,在软件产品的生存期内妥善保存代码和文档的母拷贝。

1、存储

应通过下述方式确保存储的配置项的完整性:
(1)选择存储介质使再生查错或损坏降至最低限度
(2)根据媒体的存储器,以一定频次运行或刷新已存档的配置项
(3)将副本存储在不同的受控场所,以减少丢失的风险

2、复制

复制是用拷贝方式制造软件的阶段。应建立规程以确保复制的一致性和完整性。应确保发布用的介质不含无关项(如软件病毒或不适合演示的测试数据)。应使用适合的介质以确保软件产品符合复制要求,确保其在整个交付期中内容的完整性。

3、打包

应确保按批准的规程制备交付的介质。
应在需方容易辨认的地方清楚地标出发布标识。

4、交付

供方应按合同中的规定交付产品或服务。

5、重建

应能重建软件环境,以确保发布的配置项在所保留的先前版本要求的未来一段时间里是可重新配置的。

文档管理、配置管理工具:SVN、CC、GIT。

各角色在配置管理活动中的权限

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/484241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二十五章 刚体Rigidbody

在物理学中,静止和匀速直线运动是物体的平衡状态,如果给该物体施加某一个力的话,物体的平衡状态就会改变,当然这个真理的前提是理想状态。我们知道在现实世界中,由于重力和摩擦力的存在,任何一个物体都不可…

【SQL篇】窗口函数和公共表达式

1077 项目员工 III # Write your MySQL query statement below select project_id, employee_id from (select project_id, e.employee_id, rank() over(partition by project_id order by experience_years desc) as rkfrom Employee ejoin Project pon e.employee_id p.empl…

【Fluent】接着上一次计算的结果继续计算,利用计算过程中得到的物理场(温度、速度、压力等)插值Interpolate文件初始化模型的方法

一、问题背景 因为fluent中支持的初始化无非三种类型。 1、Standard initialization 标准初始化 2、Hybridinitialization 混合初始化 3、FMG initialization FMG初始化 另外,还可以用UDF通过坐标判断的方式予以初始化。 但是这些初始化方法都没办法利用以前计算过…

通关MyBatis(上)

作者:~小明学编程 文章专栏:spring框架 格言:热爱编程的,终将被编程所厚爱。 目录 什么是MyBatis 如何使用Mybatis 添加依赖 创建数据库 配置数据库连接字符串 MyBatis的操作流程 数据持久层 配置mybatis的xml文件 mapp…

Windows自动虚拟机WSL和VMware虚拟机兼容问题(此平台不支持虚拟化的 Intel VT-x/EPT)

问题背景与原因分析 在安装了WSL2之后,忽然发现VMware Workstation无法正常启动了。就是在开启虚拟机时遇到了这种情况: “ 此平台不支持虚拟化的 Intel VT-x/EPT” 问题描述:出现以上问题,发现WSL2和 VMware Workstation 是不兼…

idea使用git遇到的小问题

idea使用git遇到的小问题 前置说明颜色含义中文插件修改提交的用户名 前置说明 idea版本为2022专业版 github需要自己会科学上网 颜色含义 在idea中使用github后,会发现项目中会有各种各样的颜色,如图所示文件全为绿色 这颜色含义分别为:…

函数-函数递归及练习

目录 1、什么是递归? 2、递归的两个必要条件 3、递归的练习 3.1 接受一个整型值(无符号),按照顺序打印它的每一位 3.2 编写函数不允许创建临时变量,求字符串的长度 3.3 求第n个斐波那契数 3.4 字符串逆序&…

UG NX二次开发(C++)-建模-修改NXObject或者Feature的颜色(二)

文章目录 1、前言2、在UG NX中修改Body的颜色操作3、采用NXOpen(C)实现3.1 创建修改对象颜色的方法3.2 在do_it()中添加调用的代码3.3 测试效果 1、前言 在UG NX中,改变NXObject和Feature的操作是不相同的,所以其二次开发的代码也不一样,我们…

企业级信息系统开发讲课笔记4.1 Spring Boot入门程序

文章目录 零、学习目标一、Spring Boot框架概述(一)由Spring到Spring Boot(二)Spring Boot框架的核心功能(三)Spring Boot框架的应用 二、使用Maven方式构建Spring Boot项目(一)创建…

二维字符数组的三种输入方式浅析(scanf()、gets()和fgets())

二维字符数组的输入 目录 二维字符数组的输入1.scanf函数知识点scanf()关于回车的问题: 2.gets函数3.fgets函数参考链接 1.scanf函数 知识点 按照常规输入数组的办法,通过 for 循环实现 将整个字符串输入时,在数组名前不加&&#xff0…

Java 基础进阶篇(二)—— static 静态关键字与单例模式

文章目录 一、static 静态关键字1.1 静态成员变量与实例成员变量1.2 静态成员方法与实例成员方法1.3 static 访问注意事项1.4 内存使用情况 二、工具类三、代码块四、单例模式4.1 饿汉单例4.2 懒汉单例 一、static 静态关键字 static:代表静态的意思,可…

Java 基础进阶篇(六)—— 接口详解

文章目录 一、接口概述二、接口的基本使用三、接口从 JDK 8 开始新增的方法四、接口的注意事项(了解)补充:接口与接口的关系 一、接口概述 规范的基本特征是约束和公开。 接口就是一种规范,其约束别人必须干什么事情。 所以&…

【五一创作】Matlab 绘制风速、风向统计玫瑰花图【优化】

在之前,有个博客专门讲matlab 绘制风速、风向统计玫瑰花图;这里面存在不少细节问题,目前对该部分代码做了优化。以前的博客链接见下: Matlab 绘制风速、风向统计玫瑰花图 最近接了一个任务,需要绘制风速、风向的统计玫…

Java 基础进阶篇(五)—— 抽象类与模板方法设计模式

文章目录 一、抽象类、抽象方法概述二、抽象类的特征三、模板方法设计模式3.1使用场景3.2 实现步骤3.3 写作文案例 补充:final 和 abstract 是什么关系? 一、抽象类、抽象方法概述 在 Java 中 abstract 是抽象的意思,可以修饰类、成员方法。 abstract …

Java 基础进阶篇(七)—— 面向对象三大特征之三:多态

文章目录 一、多态的概述二、多态中成员访问特点 ★三、多态的优势与劣势四、多态下的类型转换4.2 自动类型转换(从子到父)4.2 强制类型转换(从父到子)4.3 instanceof 关键字 一、多态的概述 多态:是指执行同一个行为…

Java 基础进阶篇(四)—— 权限修饰符、final 关键字与枚举

文章目录 一、权限修饰符二、final 关键字2.1 final 作用2.2 final 修饰变量举例2.3 常量 三、枚举3.1 枚举的格式3.2 枚举的特征3.3 枚举的应用 一、权限修饰符 权限修饰符 用于约束成员变量、构造器、方法等的访问范围。 权限修饰符: 有四种作用范围由小到大 (p…

Java 基础进阶篇(三)—— 面向对象的三大特征之二:继承

文章目录 一、继承概述二、内存运行原理 ★三、继承的特点四、继承后:成员变量和方法的访问特点五、继承后:方法重写六、继承后:子类构造器的特点七、继承后:子类构造器访问父类有参构造器八、this、super 总结 一、继承概述 Jav…

机器学习之利用SMO算法求解支持向量机—基于python

大家好,我是带我去滑雪! 本期将讨论支持向量机的实现问题,我们知道支持向量机的学习问题可以化为求解凸二次规划问题。这样的凸二次规划问题具有全局最优解,并且有许多最优化算法可以用于这一问题的求解。但是当训练样本容量很大…

【C++】 探索程序 详细解读程序在运行过程中都发生了什么

目录 头文件-源代码 头文件重复包含 问题 解决方案 程序生成过程 预处理Preprocessi 编译Compilation 汇编Assembly 链接Linking 编译期-运行期 编译期确定 运行期确定 编译期错误 运行期错误 类和对象 宏 宏的其他用法 inline内联 头文件-源代码 头文件&…

Vue简介和常用指令

概述: MVVM思想:视图层数据和数据模型里面的数据发生变化都会影响到另一边的数据,通过ViewModel自动实现。 Vue入门案例 步骤: 上面提到了数据模型和试图层的数据是关联的,此处数据模型里面el的值就是选择了哪一个视…