系统集成项目管理工程师 笔记(第15章 信息(文档)和配置管理)

news2024/11/25 22:56:39

文章目录

  • 软件文档的分类
    • (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/475854.html

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

相关文章

03_Uboot网络命令与MMC和文件操作命令

目录 网络操作命令 ping命令 nfs 命令 tftp 命令 EMMC和SD卡操作命令 mmc info命令 mmc rescan命令 mmc list 命令 mmc dev 命令 mmc part命令 mmc read 命令 mmc write 命令 mmc erase 命令 FAT 格式文件系统操作命令 fatinfo 命令 fatls 命令 fstype 命令 …

好的代码风格,如同书法,让你的代码更加漂亮

很多初学者的代码其实都不够“漂亮”,那是因为没有养成好的编码习惯。本篇博客以C语言为例,总结一些好习惯。其实,很多习惯都是肌肉记忆,举个例子:请你写一个程序,输入2个整数并输出它们的和。有些朋友可能…

java中的\t说明

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!! 文章目录 阅读前请看一下:我是…

SQLIntegrityConstraintViolationException: Column ‘create_time‘ cannot be null

概述 在使用MySQL MyBatis时遇到的问题,记录一下。 问题 在测试环境里,往MySQL数据表里插入数据时报错:SQLIntegrityConstraintViolationException: Column create_time cannot be null 表结构字段定义: create_time dateti…

【Canvas入门】从零开始在Canvas上绘制简单的动画

这篇文章是观看HTML5 Canvas Tutorials for Beginners教程做的记录,所以代码和最后的效果比较相似,教程的内容主要关于这四个部分: 创建并设置尺寸添加元素让元素动起来与元素交互 设置Canvas的大小 获取到canvas并设置尺寸为当前窗口的大…

Lesson13 IP协议

IP: 提供一种能力,将数据从A主机送到B主机的能力,但不一定会成功 主机 : 配有 IP 地址 , 但是不进行路由控制的设备 ; 路由器: 即配有 IP 地址 , 又能进行路由控制 ; 节点 : 主机和路由器的统称; 协议头格式 如何封装和解包: 定长报头 自描述字段 如何交付(分用) : 8…

Linux驱动之input输入子系统

输入子系统用于实现Linux系统输入设备(鼠标 键盘 触摸屏 游戏杆)驱动的一种框架。Linux内核将其中的固定部分放入内核,驱动开发时只需要实现其中的不固定部分(主要还是和硬件相关的部分),这和platform设备…

离散数学下--- 代数系统

代数系统 定义: 代数系统是用代数运算构造数学模型的方法。 • 通过构造手段生成,所以也称代数结构 • 代数运算:在集合上建立满足一定规则的运算系统 (一)二元运算 二元运算的定义 二元运算需要满足的两个条件&a…

【P1】Jmeter 准备工作

文章目录 一、Jmeter 介绍1.1、Jmeter 有什么样功能1.2、Jmeter 与 LoadRunner 比较1.3、常用性能测试工具1.4、性能测试工具如何选型1.5、学习 Jmeter 对 Java 编程的要求 二、Jmeter 软件安装2.1、官网介绍2.2、JDK 安装及环境配置2.3、Jmeter 三种模式2.4、主要配置介绍2.4.…

数据结构——二叉树层序遍历

数据结构——二叉树层序遍历 107. 二叉树的层序遍历 II199. 二叉树的右视图思路: 637. 二叉树的层平均值 107. 二叉树的层序遍历 II 107. 二叉树的层序遍历 II 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节…

心血管疾病预测--逻辑回归实现二分类

一、实现效果 实现心血管疾病的预测准确率70%以上 二、数据集介绍 数据共计70000条,其中心血管疾病患者人数为34979,未患病人数为35021。数据特征属性12个分别为如下所示:生理指标(性别、年龄、体重、身高等)、 医疗检测指标(血压、血糖、胆固醇水平等)…

【社区图书馆】PyTorch高级机器学习实战 读书感想

《PyTorch高级机器学习实战》十大特点 1. 深入全面的内容覆盖: 本书的内容深入而全面,涵盖了深度学习中的多个领域,包括自然语言处理、计算机视觉、强化学习等,并介绍了各种不同的神经网络结构和优化算法。 2. 理论和实践并重&am…

scratch拆礼物游戏 中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析2023年3月

目录 scratch拆礼物游戏 一、题目要求 1、准备工作 2、功能实现 二、案例分析 <

java spring 实现 下载hls(m3u8+ts)实时流并进行合并mp4和压缩

参考连接 链接: java下载m3u8视频&#xff0c;解密并合并ts&#xff08;三&#xff09; 链接: Java 下载 HLS (m3u8) 视频 首先需要了解什么是HLS 链接: HTTP Live Streaming (HLS) - 概念 链接: M3U8是什么 简单理解就是, m3u8文件存放着可供客户端播放TS 片段 简单一点…

吴恩达 Chatgpt prompt 工程--1.Guidelines

Setup #安装 !pip install openai#设置key !export OPENAI_API_KEYsk-... # or #import openai #openai.api_key "sk-..."import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv())openai.api_key os.getenv(OPENAI_A…

Graph Theory(图论)

一、图的定义 图是通过一组边相互连接的顶点的集合。 In this graph, V { A , B , C , D , E } E { AB , AC , BD , CD , DE } 二、图的类型 2.1 Finite Graph A graph consisting of finite number of vertices and edges is called as a finite graph. Null Graph Tri…

github workflow使用docker部署springboot并推送到阿里云镜像仓库

文章目录 1. 建立你的actions2. 工作流脚本2.1 触发事件2.2 密文和执行参数2.3 deploy.sh执行脚本2.4 Dockerfile 3. 阿里云镜像仓库设置 最近想通过github的workflow部署springboot项目&#xff08;CI&#xff09;&#xff0c;网上看了很多文章&#xff0c;都是有这样那样的问…

Design_transformer

磁性元件设计 思路 滤波电感设计 磁芯不要饱和&#xff08;开气隙&#xff09; 考虑铜损大于铁损 谐振电感设计 磁芯不要饱和&#xff08;开气隙&#xff09; 考虑铁损大于铜损 变压器设计 磁芯不要饱和&#xff08;开气隙&#xff09; 励磁电流产生磁场 开气隙 增加了…

1.rabbitMQ介绍

0.思考 我们以前为什么要学习java直接的框架代码,而不是用springboot整合的框架,在学习完MQ后,我的答案是,可以直接写成更灵活的MQ代码(其他框架也是,SSM我们为什么要学,在于灵活度更高,以后可能会遇到SSM的代码我就可以看得懂),springboot整合虽然完成了大多数功能,但是我要其…

SpringBoot+MyBatis搭建迷你微信小程序

课程链接&#xff1a;https://www.imooc.com/learn/945 标签组件 view view类似于HTML中的div标签是最基础的UI组件 https://blog.csdn.net/wushibo750/article/details/113802928 https://developers.weixin.qq.com/miniprogram/dev/component/view.html block flex ht…