Chapter25:Configuration Management:《软件工程》笔记

Chapter25:Configuration Management

25.1 brief

  • Configuration management

    软件在开发、维护过程中,都有频繁变更的问题,会有一系列的版本出现,需要维护和管理这些版本。

    CM,采用策略、工具来完成:软件系统的的变更管理。

    当一个系统复杂一点,你就会经常修改软件系统。如果人再多起来,那么很有可能某一个人的最新版本没有分发到所有人的手上,因此集成的时候,就有可能形成了一个过时的,旧的总版本。

    配置管理的过程就是为了避免此类现象发生。

  • CM activities 配置管理 的4个活动
    Chapter25:Configuration Management:《软件工程》笔记
    1)Change Management:这是用来追踪变更的请求和实现的过程。

    2)Version Management:版本管理,负责跟踪系统组件的不同版本。确保不同开发者的组件变更不会引起混乱。

    3)System Building:系统构建。集成程序的组件,数据等,构成一个完整的可执行系统呢,【大家会说,这不就是程序开发的事情吗?那我们讲这个在配置管理的平台上来实现程序构建,目的是将构建的系统 纳入配置管理之下。因为每一次的构建都会产生一个系统的版本。】

    4)Release Management:发布版本的管理。也就是对已发布的软件版本的管理,那么已发布的版本实际上是面向客户的。也就是说,它是用户使用的版本。【所以Version Management管理的是开发过程中的版本,而release management管理的是用户使用的版本,即处于运行维护阶段的版本,用来追踪变更的请求、实现的过程】

25.2 Change management

  • Change management

    变更管理,旨在确保系统的发展是一个受管理的过程,并优先考虑最紧迫和具成本效益的更改。

    所以要对变更的成本、取得效益进行分析,如果值得变更,那就跟踪这个变更的组件。

  • process

    CR 是一个变更请求。当CR提交以后,客户支持团队来检验这个变更请求。如果是有效的话,就把它登记上。把它交给开发团队。开发团队进行实现分析。对变更的成本和影响的范围进行分析,提交分析给Product development(产品开发部门),由他们对分析结果进行评断。

    由于可能存在多项变更提交,那需要有一个变更的选择。被否定的变更会关闭。需实施的变更请求就会提交给开发团队,由他们来进行软件的修改测试。直至变更完成。
    Chapter25:Configuration Management:《软件工程》笔记

  • Change Request Form 变更申请表
    Chapter25:Configuration Management:《软件工程》笔记

25.3 Version management

  • Version management
    Chapter25:Configuration Management:《软件工程》笔记

  • Codelines and baselines

    1)Codelines 代码线

    代码线 是源代码的版本序列,后续的版本是在前面的版本基础上产生的。

    由于每个组件都有它自己的代码线。所以对构成系统的每一个组件来说,代码线可能就是不同的。

    2)Baselines 基线

    基线 定义了包含在系统中的组件版本,还包括了所使用的库,和其他的配置项。

  • 例子
    Chapter25:Configuration Management:《软件工程》笔记
    左边是ABC模块的代码线。对于A组件来讲,他经历了 A , A1.1 , A1.2 , A1.3 这样一个变更过程,形成了组件版本的变更序列,那这就是一个 代码线。

    基线 指定了组成一个系统的组件的版本号。图中,一个系统,它是由 组件A、B、C,库程序L1、L2,外部组件Ex1 组成。那么这个系统的 V1 版本就是由这些构成。也就是说基线制定了系统的版本构成。

    这个系统的V2版是由A1.3 , B1.2 , C1.2 , L1, L2 , Ex2组成。这个系统的变更版本线就是我们系统的 Mainline。

    可以看出,Codeline是一个序列。Baseline是一个阶段结束和开始的点。因为在这个点形成了一个完整的版本。从这个点开始,如果要有新的变更,就会形成另外一个版本。

  • Version management systems 版本管理系统

    版本管理系统,是配置管理的一部分。

    版本管理系统需要能进行:Version and release identification ,Storage management ,Change history recording ,Independent development ,Project support 【确定版本标号、存储不同版本的组件、变更历史记录、独立开发、项目支持】
    Chapter25:Configuration Management:《软件工程》笔记

  • 代码线的分支和合并Branching&Merging
    Chapter25:Configuration Management:《软件工程》笔记

25.4 System building

  • System building
    Chapter25:Configuration Management:《软件工程》笔记

25.5 Release management

  • Release management

    对分发给客户的软件版本的管理。对于某些有巨大市场的软件,通常可能会有不同的发布版本,比如 professional、home、enterprise 等,这里的 Release Management 就是对这种情况进行管理。
    Chapter25:Configuration Management:《软件工程》笔记

  • Release tracking

    版本的追踪(确保发布的版本记录在案)

    并且在今后要进行系统演化变更的时候,能发现它,并进行系统的重建。

  • Release reproduction

    记录下所有的源代码,数据文件,配置文件等。

    记录所有可执行代码、支持这个版本软件的 OS 环境、库、编译系统等其他的工具。