软件配置管理并不是那么简单(1)

发表于:2022-11-09 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:尿床草    来源:今日头条

  引言
  如果你从事软件开发相关工作,一定听说过软件配置管理
  而对于多数人来说,软件配置管理也可能只是听说过,感觉就在身边,却又让人摸不到,也说不清楚。而有些即使在从事软件配置管理的工作,也不能很好地理解它的作用和意义,有些也是在僵硬固化地模仿着做,不清楚软件配置管理的真正内涵。
  本文就试图揭开软件配置管理神秘的层层面纱,一探其究竟。
  缺失配置管理带来的问题
  在了解什么是软件配置管理之前,先让我们看一下没有它,或者没有做好它的时候,软件开发过程会发生哪些事情。
  你一定听说过或者经历过以下问题:
  ·找不到最新的开发计划文档
  · 使用了旧版本的需求文档
  · 在错误的代码版本上进行开发
  · 代码分支混乱,无所适从
  · 依赖了错误版本的软件包
  · 已经解决过的缺陷再次出现
  · 发布了错误的软件版本
  · 软件无法正确安装,或者安装后不能正常工作
软件配置管理不足带来的问题
  类似的问题还有很多,这些软件开发过程的混乱和无序,都是软件配置管理工作缺失或没有做好所导致的。
  软件配置管理的意义
  我们已经知道缺失软件配置管理后,软件开发活动是多么混乱和无序,这是因为根据软件项目的特点,软件必须进行配置管理。
  软件项目日趋庞杂,需要很多人协作,需要在多种平台上运行,需要支持若干版本,又处于不断演化和变更状态,容易拷贝,等等这些特点,决定了软件配置管理的必要性。
软件项目特点要求软件进行配置管理
  什么是软件配置管理
  配置管理最初来自于制造行业,用于规范设备的设计与制造,始终交付有效的产品。
  之所以叫“配置管理“,是因为成品基本都是由具备不同功能特性的零件配置起来的,随着成品的革新,零件也可能升级换代,配置管理需要把它们的版本和关系清楚记录和管控。
  为了便于理解,可以举个比较生活化的例子。就拿餐馆来说,为了让每位客人最终享用到满意的饭菜,避免发生做错菜、上错菜等错误,就需要将备料、点菜、加菜、制作、留样、上菜、退菜等环节中的影响菜品制成的要素有效地管控起来,如菜品对原料要求,客人对菜品的口味要求等,做好记录和管控。
餐厅菜品配置管理示意(局部)
  我们将以上场景平移到软件开发过程中,客户点的菜品就相当于软件需求,客户加菜、退菜相当于需求的变更,厨房做菜的过程就相当于设计、编码,做成的菜品就是最终编译打包后的软件产品,整个过程如果没有有效地记录和控制,可想而知是多么的混乱、无序和错漏百出,结果也绝不会令人满意。
  所以,我们也可以把软件也看成是逐步演化和装配起来的,软件开发也需要一种可以将形成和影响软件中间或最终形态的各种“成份”加以识别,并管控其版本和变更,实现软件每个状态的可追溯,使整个过程能够有条不紊地进行,而这就是所谓的软件配置管理。
  软件配置管理的原理
  我们知道,软件是一个形成和演化的过程,在其生命周期中,它的形态和组成不断地变化。最初,它的形态表现为业务需求文档,接着又演化为系统需求的形态,进而被描述为概要设计和详细设计,再接下来表现为代码、依赖包、测试代码等,后来又演变为部署包和安装文档,再后来是运行的产品和用户手册。
软件形态演进简单示意
  可以将软件演进比作一棵小树逐渐成长为大树的过程,这棵树就是我们的软件,树的树根、树干、枝条、树叶、花、果实等就是形成软件的文档、代码等,我们只要完整记录树根、枝条、树叶等的每次变化,就能随时“还原”出树在某个时刻的模样。我们再对枝条修剪、果实采摘等行为进行规范管理,就可以使这棵树按照预定的目标健康有序成长。
  所以,软件配置管理的原理就是:通过对软件的各配置项各版本进行有效记录,并对它们的变更进行管控,来维护软件的完整性、正确性和可追溯性,最终实现软件的有序和高效演进。配置管理的核心就是对版本和变更的管理,就是在管理变化。
  由此,我们也可以从另一个角度认识软件配置:
  软件配置是软件产品在生命周期各阶段的不同形式和不同版本的程序、文档和数据的集合,集合中的每个元素就是一个配置项。
  下图描述了包含阶梯式、变更集、变化跟踪、并行开发等多个配置管理的方法论,用于协调问题跟踪和变更管理(见于徐晓春、李高健编写的《软件配置管理》)。
配置管理的若干方法论
  软件配置管理的目标
  软件配置管理应实现配置管理的计划性、配置项的完整识别、配置项获取和变更的受控、软件状态便于了解等目标和效果。
软件配置管理的目标
  为了做好软件配置管理,达到其应有效果,除了做好对配置项的标识、版本管理、变更控制等核心任务外,还需要做好计划、培训、审计、报告等辅助工作。
软件配置管理工作任务
配置管理工作任务顺序关系
  也可以将软件配置管理活动划分为版本控制、变更控制和过程控制三个方面。
软件配置管理的三个方面
  下图体现了主要配置管理活动的层次关系。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号