软件工程中的软件配置管理

什么是软件配置管理?

在软件工程中,软件配置管理 (SCM) 是一个在软件开发生命周期中系统地管理、组织和控制文档、代码和其他实体的变更的过程。主要目标是以最少的错误提高生产力。SCM 是跨学科配置管理领域的一部分,它可以准确确定谁进行了哪些修订。

为什么我们需要配置管理?

实施技术软件配置管理系统的主要原因包括:

  • 有很多人在处理不断更新的软件
  • 可能存在一个软件配置项目涉及多个版本、分支、作者,并且团队在地理上分散且同时工作的情况
  • 需要适应用户需求、策略、预算、时间表的变更。
  • 软件应能在各种机器和 操作系统 上运行
  • 有助于在利益相关者之间建立协调
  • SCM 流程也有利于控制在系统更改中涉及的成本

Need Configuration Management

软件配置项的任何更改都会影响最终产品。因此,需要控制和管理对配置项的更改。

SCM 流程中的任务

  • 配置标识
  • 基线
  • 变更控制
  • 配置状态核算
  • 配置审计和评审

配置标识

配置标识是确定软件系统范围的一种方法。有了这个步骤的帮助,即使您不知道它是什么,也可以管理或控制它。它是一个描述,其中包含 CSCI 类型(计算机软件配置项)、项目标识符和版本信息。

此过程中进行的活动

  • 标识配置项,如源代码模块、测试用例和需求规格。
  • 使用面向对象的方法,在 SCM 存储库中标识每个 CSCI
  • 该过程从基本对象开始,这些对象被分组为聚合对象。详细说明了对测试所做的更改的什么、为什么、何时以及由谁进行
  • 每个对象都有其自身的特征,这些特征会识别其名称,该名称与其他所有对象明确区分开来
  • 所需的资源列表,如文档、文件、工具等。

示例

文件不应命名为 login.php,而应命名为 login_v1.2.php,其中 v1.2 代表文件的版本号

文件夹不应命名为“Code”,而应命名为“Code_D”,其中 D 代表代码应每天备份。

基线

基线是软件配置项的正式接受版本。在进行 SCM 流程时,它在特定时间被指定和固定。只能通过正式的变更控制程序进行更改。

此过程中进行的活动

  • 促进各种应用程序版本的构建
  • 定义和确定管理这些工作产品的各种版本的机制
  • 功能基线对应于已评审的系统需求
  • 广泛使用的基线包括功能基线、开发基线和产品基线

简单来说,基线意味着“可发布”。

变更控制

变更控制是一种程序性方法,可确保在对配置对象进行更改时保持质量和一致性。在此步骤中,将变更请求提交给软件配置管理器。

此过程中进行的活动

  • 控制临时性变更以构建稳定的软件开发环境。将更改提交到存储库
  • 将根据技术价值、可能的副作用和对其他配置对象的总体影响来检查请求。
  • 它在软件生命周期中管理更改并使配置项可用

配置状态核算

配置状态核算在 SCM 过程中跟踪每个发布。此阶段涉及跟踪每个版本包含的内容以及导致该版本发生的更改。

此过程中进行的活动

  • 保留从上一个基线到达到新基线的过程中所做的所有更改的记录
  • 标识定义软件配置的所有项
  • 监控变更请求的状态
  • 自上次基线以来所有更改的完整列表
  • 允许跟踪到下一个基线的进度
  • 允许检查以前的版本/版本以供测试提取

配置审计和评审

软件配置审计验证所有软件产品是否满足基线需求。它确保构建的内容就是交付的内容。

此过程中进行的活动

  • 配置审计由审计员进行,他们会检查是否遵循了定义的流程并确保 SCM 目标已得到满足。
  • 验证是否符合配置控制标准。审计和报告所做的更改
  • SCM 审计还确保在整个过程中保持可追溯性。
  • 确保对基线所做的更改符合配置状态报告
  • 验证完整性和一致性

SCM 流程的参与者

以下是 SCM 的关键参与者:

Participant of SCM process

1. 配置经理

  • 配置经理是负责识别配置项的负责人。
  • CM 确保团队遵循 SCM 流程
  • 他/她需要批准或拒绝变更请求

2. 开发人员

  • 开发人员需要根据标准开发活动或变更请求来更改代码。他负责维护代码的配置。
  • 开发人员应检出更改并解决冲突

3. 审计员

  • 审计员负责 SCM 审计和评审。
  • 需要确保发布版本的完整性和一致性。

4. 项目经理

  • 确保产品在一定时间范围内开发完成
  • 监控开发进度并识别 SCM 流程中的问题
  • 生成关于软件系统状态的报告
  • 确保在创建、更改和测试方面遵循流程和策略

5. 用户

最终用户应理解关键的 SCM 术语,以确保他拥有最新版本的软件

软件配置管理计划

SCMP(软件配置管理规划)流程规划始于项目的早期编码阶段。规划阶段的成果是 SCM 计划,该计划可能会在项目期间扩展或修订。

  • SCMP 可以遵循公共标准,如 IEEE 828,或组织特定的标准
  • 它定义了要管理的文件类型和文件名。例如 Test_v1
  • SCMP 定义了谁将负责整个 SCM 流程和基线的创建。
  • 固定版本管理和变更控制的策略
  • 定义 SCM 过程中可使用的工具
  • 用于记录配置信息的配置管理数据库。

软件配置管理工具

任何变更管理软件都应具备以下 3 个关键功能:

并发管理

当两个或多个任务同时发生时,称为并发操作。SCM 中的并发意味着同一个文件被多个人同时编辑。

如果并发没有通过 SCM 工具得到妥善管理,则可能导致许多紧迫的问题。

版本控制

SCM 使用归档方法或保存对文件的每次更改。借助归档或保存功能,在出现问题时可以回滚到以前的版本。

同步

用户可以检出多个文件或整个存储库的副本。然后用户在所需文件上工作,并将更改检入回存储库。他们可以同步本地副本,以保持与其他团队成员所做更改的同步。

以下是一些流行工具

1. Git:Git 是一个免费开源工具,用于版本控制。它旨在快速高效地处理所有类型的项目。

下载链接: https://git-scm.cn/

2. Team Foundation Server:Team Foundation 是一个工具和技术组合,使团队能够协作和协调构建产品。

下载链接: https://azure.microsoft.com/en-us/services/devops/server/

3. Ansible:它是一个开源软件配置管理工具。除了配置管理,它还提供应用程序部署和任务自动化。

下载链接: https://ansible.org.cn/

查看更多 SW 配置工具: https://guru99.com.cn/software-configuration-management-tools.html

结论

  • 配置管理最佳实践帮助组织在 软件开发生命周期 中系统地管理、组织和控制文档、代码和其他实体的变更。
  • SCM 流程的主要目标是以最少的错误提高生产力
  • 配置管理过程的主要原因是,有很多人在处理不断更新的软件。SCM 有助于建立并发、同步和版本控制。
  • 基线是软件配置项的正式接受版本
  • 变更控制是一种程序性方法,可确保在对配置对象进行更改时保持质量和一致性。
  • 配置状态核算在 SCM 过程中跟踪每个发布
  • 软件配置审计验证所有软件产品是否满足基线需求
  • 项目经理、配置经理、开发人员、审计员和用户是 SCM 流程的参与者
  • SCM 过程规划始于项目的早期阶段。
  • Git、Team foundation Server 和 Ansible 是几个流行的 SCM 工具。