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

什么是软件配置管理?

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

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

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

  • 有很多人在开发不断更新的软件
  • 可能存在这样的情况:一个软件配置项目涉及多个版本、分支、作者,并且团队分布在不同地区,并发工作
  • 需要适应用户需求、政策、预算、时间表的变化。
  • 软件应该能够在各种机器上运行,并且 Opera系统
  • 帮助利益相关者之间建立协调
  • SCM 流程还有利于控制系统变更所涉及的成本

需要配置管理

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

SCM流程中的任务

  • 配置标识
  • 基准线
  • 更改控制
  • 配置状态计费
  • 配置审计和 Rev尤斯

配置标识

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

在此过程中的活动:

  • 识别配置项,如源代码模块, 测试用例,以及需求规范。
  • 使用面向对象的方法识别 SCM 存储库中的每个 CSCI
  • 该过程从被分组为聚合对象的基本对象开始。测试中的更改内容、原因、时间和人员的详细信息
  • 每个对象都有自己的特征来识别其名称,该名称对所有其他对象来说都是明确的
  • 所需资源的列表,例如文档、文件、工具等。

计费示例:

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

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

底线

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

在此过程中的活动:

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

简而言之,基线意味着准备发布。

更改控制

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

在此过程中的活动:

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

配置状态计费

配置状态统计跟踪 SCM 过程中的每个版本。此阶段涉及跟踪每个版本的内容以及导致该版本的更改。

在此过程中的活动:

  • 记录对先前基线所做的所有更改以达到新的基线
  • 确定定义软件配置的所有项目
  • 监控变更请求的状态
  • 自上次基线以来所有更改的完整列表
  • 允许跟踪下一个基线的进度
  • 允许检查要提取用于测试的先前版本/版本

配置审计和 Rev尤斯

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

在此过程中的活动:

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

SCM流程参与者

以下是 SCM 的主要参与者

SCM流程参与者

1. 配置管理器

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

2。 开发人员

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

3。 核数师

  • 审核员负责 SCM 审核和审查。
  • 需要保证发布的一致性和完整性。

4. 项目经理:

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

5.用户

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

软件配置管理计划

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

  • SCMP 可以遵循 IEEE 828 等公共标准或组织特定标准
  • 它定义了要管理的文档类型和文档命名。示例测试_v1
  • SCMP 定义了负责整个 SCM 流程和基线创建的人员。
  • 修复版本管理和变更控制的策略
  • 定义可在 SCM 流程中使用的工具
  • 配置管理数据库,用于记录配置信息。

软件配置管理工具

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

并发管理:

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

如果没有使用 SCM 工具正确管理并发,则可能会产生许多紧迫的问题。

版本控制:

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

Sync时代化:

用户可以签出多个文件或存储库的整个副本。然后,用户处理所需的文件并将更改签入存储库。他们可以同步其本地副本,以随时更新其他团队成员所做的更改。

以下是流行的工具

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

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

2。 球队 Foundation 服务器: 车队 Foundation 是一组使团队能够协作和协调构建产品的工具和技术。

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

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

下载链接: https://www.ansible.com/

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

结语

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