软件工程中的软件配置管理
什么是软件配置管理?
在软件工程中,软件配置管理 (SCM) 是一个在软件开发生命周期中系统地管理、组织和控制文档、代码和其他实体的变更的过程。主要目标是以最少的错误提高生产力。SCM 是跨学科配置管理领域的一部分,它可以准确确定谁进行了哪些修订。
为什么我们需要配置管理?
实施技术软件配置管理系统的主要原因包括:
- 有很多人在处理不断更新的软件
- 可能存在一个软件配置项目涉及多个版本、分支、作者,并且团队在地理上分散且同时工作的情况
- 需要适应用户需求、策略、预算、时间表的变更。
- 软件应能在各种机器和 操作系统 上运行
- 有助于在利益相关者之间建立协调
- SCM 流程也有利于控制在系统更改中涉及的成本
软件配置项的任何更改都会影响最终产品。因此,需要控制和管理对配置项的更改。
SCM 流程中的任务
- 配置标识
- 基线
- 变更控制
- 配置状态核算
- 配置审计和评审
配置标识
配置标识是确定软件系统范围的一种方法。有了这个步骤的帮助,即使您不知道它是什么,也可以管理或控制它。它是一个描述,其中包含 CSCI 类型(计算机软件配置项)、项目标识符和版本信息。
此过程中进行的活动
- 标识配置项,如源代码模块、测试用例和需求规格。
- 使用面向对象的方法,在 SCM 存储库中标识每个 CSCI
- 该过程从基本对象开始,这些对象被分组为聚合对象。详细说明了对测试所做的更改的什么、为什么、何时以及由谁进行
- 每个对象都有其自身的特征,这些特征会识别其名称,该名称与其他所有对象明确区分开来
- 所需的资源列表,如文档、文件、工具等。
示例
文件不应命名为 login.php,而应命名为 login_v1.2.php,其中 v1.2 代表文件的版本号
文件夹不应命名为“Code”,而应命名为“Code_D”,其中 D 代表代码应每天备份。
基线
基线是软件配置项的正式接受版本。在进行 SCM 流程时,它在特定时间被指定和固定。只能通过正式的变更控制程序进行更改。
此过程中进行的活动
- 促进各种应用程序版本的构建
- 定义和确定管理这些工作产品的各种版本的机制
- 功能基线对应于已评审的系统需求
- 广泛使用的基线包括功能基线、开发基线和产品基线
简单来说,基线意味着“可发布”。
变更控制
变更控制是一种程序性方法,可确保在对配置对象进行更改时保持质量和一致性。在此步骤中,将变更请求提交给软件配置管理器。
此过程中进行的活动
- 控制临时性变更以构建稳定的软件开发环境。将更改提交到存储库
- 将根据技术价值、可能的副作用和对其他配置对象的总体影响来检查请求。
- 它在软件生命周期中管理更改并使配置项可用
配置状态核算
配置状态核算在 SCM 过程中跟踪每个发布。此阶段涉及跟踪每个版本包含的内容以及导致该版本发生的更改。
此过程中进行的活动
- 保留从上一个基线到达到新基线的过程中所做的所有更改的记录
- 标识定义软件配置的所有项
- 监控变更请求的状态
- 自上次基线以来所有更改的完整列表
- 允许跟踪到下一个基线的进度
- 允许检查以前的版本/版本以供测试提取
配置审计和评审
软件配置审计验证所有软件产品是否满足基线需求。它确保构建的内容就是交付的内容。
此过程中进行的活动
- 配置审计由审计员进行,他们会检查是否遵循了定义的流程并确保 SCM 目标已得到满足。
- 验证是否符合配置控制标准。审计和报告所做的更改
- SCM 审计还确保在整个过程中保持可追溯性。
- 确保对基线所做的更改符合配置状态报告
- 验证完整性和一致性
SCM 流程的参与者
以下是 SCM 的关键参与者:
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 工具。