思步网

标题: 什么是软件配置管理? [打印本页]

作者: 一叶舟    时间: 2013-3-29 13:53
标题: 什么是软件配置管理?
作为软件配置管理工作者,差不多都有这样的经验:在认识新朋友时,当别人问起自己所从事的职业,自然回答到,“我从事软件配置管理工作”。接着,十有八九,会被问到下一个问题“什么是软件配置管理?”。总被问到相同的问题,倒还称不上是苦恼,真正的苦恼在于回答这个问题,因为软件配置管理真是不太容易说得清……解释了半天,结果往往是,“你这份工作好玄妙啊。隔行如隔山啊,我是搞不懂了。”

是的,软件配置管理,确实不太好解释。软件开发过程中的其它工作,似乎都比它容易理解。开发工程师在编写源代码;测试工程师在测试,挑毛病;需求分析师跟用户确定需求,并且用精确严谨的语言表达出来……虽说这样说未必严谨,但是至少能够得到一个大致的印象。但是,软件配置管理呢?软件配置管理是什么?

下面是软件配置管理的一个权威定义:

“A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements.”

“一套应用技术上和管理上的指导和监督的方法,用来:识别和记录配置项的功能特征和物理特征;控制这些特征的变更;记录和报告变更的处理和执行的状态;以及验证其符合特定的需求。”

如果你看得一头雾水,别担心,这不是你能力上的问题。大部分人和你的感受相同。这个定义,以及类似的权威定义,都高度抽象。用一两句话,确实很难把握好软件配置管理这个概念。需要更多的描述,才能把它说清楚。事实上,这一整本书,就是在认识和理解软件配置管理。而在这一章中,我们将用一些我们相对熟悉的概念来打比方,做对比,来讲解软件配置管理这个概念。通过这样一种方式,让大家对软件配置管理有一个初步的,但比较正确的认识。

1.1. 与图书管理作对比

软件配置管理,是关于软件资产的管理。什么是软件资产呢?源代码,设计文档,可以运行的程序,这些在软件研发过程中产生的有价值的东西,都是软件资产。软件配置管理就是关于这些内容的管理。那么,具体有什么要管理的呢?让我们把它和图书馆的图书管理做个对比。

它们有一些相似点。首先,图书管理管的是图书资产;软件配置管理管的是软件资产。这两种管理,管的都是信息资产。其次,图书管理,需要把图书进行分类,以便检索,需要将图书存放在合适的地方,以便存取,还要防止虫吃鼠咬;而软件配置管理也类似,需要把软件资产——主要是源代码,放在合适的目录结构里,放在合适的地方存储,防止丢失或者弄乱。再次,在图书馆,要记录谁借出了哪本书,还没还。这是为了保证,图书馆的书不会丢失; 而软件配置管理中也类似,需要记录谁“借”出了什么文件,什么时候“还”的。在这一“借”一“还”的过程中,程序员修改了它,而软件配置管理记录下了这些修改。那么,为什么要记录呢?

因为软件资产与图书资产不同,软件资产在不断变化,不断演进。项目初始的时候,可能只有一份简单的项目计划,而项目结束时,已是可以交付给用户的产品。如果缩小视野,单就某个源代码文件来看,也会看到,通常它会在项目的某个时刻,被某个程序员创建第一个版本,然后,可能有不同的程序员,不断修改它,产生新的版本。软件配置管理关心:是不是这个文件的各个历史版本应该被记录,以便今后翻阅?是不是各次修改的修改者、修改的原因应该被记录,以便将来可以理解当时的情形,理解为什么做出这样的改动?更扣人心弦的是,当两个人同时想要修改一个文件的时候,可能会导致其中一个人的改动丢失,也就是常说的版本覆盖。那么,是让他们一个改完了另一个再改呢,还是让他们同时改,在将来合并?等等。

所以说,软件配置管理是关于不断演进的软件资产的管理。

1.2. 为什么称作配置管理?

机器由零部件组成。例如,汽车一般由底盘、发动机、车身和电器设备四大部分组成。其中,汽车底盘一般包括传动系、转向系、制动系和行驶系。传动系主要由离合器、变速器、传动轴和减速器等部件组成。再往下,基本就是零件了。

机器由正确型号的零部件配置而成。每个零件都有型号、编号。零件组成的部件也有。一直到整个机器,一辆汽车。要保证制造出来的机器是正确的,就要保证选取了所有正确型号的零部件。那么,容易想到,应该有某种列表或文档,标明各零部件型号和组成关系,也就是说,标明配置信息。而当配置有变动的时候,要更新这样的列表或文档。并且,这种变动不能随随便便,是否应该先让总工程师批准?是否应该做相应的测试?这些都属于对配置的管理。

从软件配置管理的视角看,软件也是这么配置起来的。往小了说,各个源代码文件的正确版本配置在一起,编译产生了正确的可运行程序。往大了说,若干软件组件的特定版本,配置构成了特定的软件产品。而有些软件组件,可能参与了不止一个软件产品的配置构成。而当某个软件组件参与不止一个软件产品的配置构成的时候,可能是这个软件组件的同一个版本,也可能是不同版本。看,问题有多复杂!不管理怎么行!

软件配置管理,与对机械系统的配置的管理相比,是有一些自己的特点的。主要有两点:第一,软件更容易发生变化,向前演进。一个程序员,修改一个Bug,可能5分钟就搞定了,于是,5分钟前与5分钟后,已经是不同的版本了。更何况,不止一个程序员在工作。如此快速的、众多的变化,如果靠一个书记员手工记录相关信息,那恐怕比较累。所以需要某种自动化的工具,提供这方面的支持。

第二,软件的耦合性更高。当程序员为某个任务改动源代码的时候,经常要改动不止一个文件。在目录结构上,这些文件可能相距遥远。组件/模块间的接口,往往并不像把鼠标线插到USB口上那么简单。某个模块的变化,常会影响到相关模块 。这个特点,使得在软件领域,需要格外关心整体性。要尽可能早的、尽可能频繁的集成,保证产品作为整体,是可运行的。另一方面,一个模块、一个源文件,可能被几个程序员改动:出于不同的目的,改动不同的位置,甚至相同的位置。因此,版本更容易混乱,或相互覆盖。需要软件配置管理工具提供相应支持,提供便利,同时避免出现问题。

1.3. 其它一些比喻

保险柜

软件配置管理为软件开发提供了一个保险柜。保险柜里,存的都是值钱的东西。存进保险柜,是因为怕自己不小心弄丢,或者被偷走。软件资产也一样,甚至比金戒指之类的更值钱。软件资产也会丢失,特别是源代码。比如,一个软件项目完成后,如果没有进行存储/归档等工作,等再过几个月,想基于版本1.0开发版本2.0的时候,可能会发现1.0的源代码找不着了……无奈,只好从头写。这是自己不小心弄丢的情况。软件资产还有可能被窃取或泄漏。虎视眈眈的竞争对手,无孔不入的商业间谍……所以,一定要把软件资产放进类似保险柜的地方。

岩钉

这是来自攀岩者的经验。系上保险绳,每向上攀一小段,就在岩壁上打个岩钉。这样,即使偶尔失手,也不会从半山坠到谷底,只是向下滑一小段。软件开发也是一样,适当的保存历史版本,可以在失手的时候回退到上一个安全的地方。这里的版本,不仅仅指具体某个文件的版本,也指整个产品的版本。不仅指源文件,也包括需求、设计、测试用例……当我们关心软件产品的部署和运行情况时,版本还意味着,某个软件,上次安装的版本是多少?这次升级到哪个版本?如果升级失败,应该回退到上一个版本。

脚印

一步一个脚印。这有两个含义。首先,先走好这一步,踩实了,踩稳了,再走下一步。软件研发也是这样,需要里程碑;需要基线;需要每个迭代结束时,内部或外部的发布。这些是项目的脚印。在每个脚印处,我们要认真检查,是不是踩实踩稳了。这可能是通过相关人员的评审,领导的审批,可能是通过软件测试,也可能是通过某些检查。

其次,一个个的脚印,就构成了足迹。它告诉我们,我们是如何一路走来的,走的是哪条路。必要的时候,我们可能会回顾。还有可能,我们会回到半路,以便从那里再闯一条新路出去。对应到软件开发,我们就是要保存历史上的版本,已备将来的不时之需。

好了好了,据说所有的类比和比喻都是蹩脚的。软件配置管理是什么?软件配置管理就是软件配置管理。如果再多说几句,那就是:它是关于不断演进的软件资产的管理。这涉及到存储和安全;涉及到记录它演进的历史;涉及到让修改和变更井然有序,避免出现版本丢失、版本覆盖等混乱情况;涉及到保证软件代码集成在一起的质量……让我们以后,更细致地学习和研究吧!


作者: Bobactho    时间: 2013-4-20 17:00
顶不错 支持下
作者: paulonewman    时间: 2013-5-8 15:02
有空一起交流一下。
作者: Javiodiuloult    时间: 2013-5-22 22:26
很有见地的探讨,先收藏着~
作者: 江山    时间: 2014-2-16 10:34
以我的经验来看,楼主的想法是可以执行的~
作者: 三重门。    时间: 2014-5-7 09:17
很有借鉴意义,先收藏了,谢谢楼主。
作者: kobe菲菲    时间: 2014-7-17 15:57
看了LZ的帖子,我只想说一句很好很强大!
作者: ~婆花子    时间: 2014-8-8 22:42
没人回帖。。。我来个吧!
作者: 。分分合合    时间: 2014-8-11 17:40
我了个去,顶了
作者: 耶稣的愤怒    时间: 2014-8-13 07:31
还不错哦,如果再能多分享一些就perfect了!
作者: 若当年华非似锦    时间: 2014-9-18 08:15
非常好,顶一下占位编辑
作者: 努力吧    时间: 2014-10-8 11:28
还不错哦,如果再能多分享一些就perfect了!
作者: 丶Mx灬神话丶    时间: 2014-11-14 09:40
众里寻他千百度,蓦然回首在这里!
作者: 学酥@    时间: 2014-12-17 14:07
我了个去,顶了
作者: 水啊水    时间: 2014-12-26 11:53
很有借鉴意义,先收藏了,谢谢楼主。
作者: 后来呢i    时间: 2014-12-27 15:31
没人回帖。。。我来个吧!
作者: 暮色伊人。    时间: 2015-2-8 07:03
没人回帖。。。我来个吧!
作者: 晚安,陌生人    时间: 2015-5-19 14:39
顶不错 支持下
作者: 往事深处少年蓝    时间: 2015-6-7 18:32
打酱油的人拉,顺便赚点金币
作者: 橘虞初梦    时间: 2015-9-26 09:27
很有借鉴意义,先收藏了,谢谢楼主。
作者: 笑喘    时间: 2015-10-22 15:18
不错 支持一个了
作者: ゛ゞ奔    时间: 2015-11-18 11:28
好帖是需要鼓励的~
作者: メ零乱Oo    时间: 2015-11-22 10:49
有空一起交流一下。
作者: 梦想天空分外蓝    时间: 2015-11-22 17:21
路过的帮顶
作者: 终忘    时间: 2015-12-9 19:35
前排支持下了哦~
作者: 海℡永不湮灭    时间: 2016-3-12 09:46
路过 帮顶 嘿嘿
作者: 哈哈镜    时间: 2016-3-13 12:40
确实不错,顶先
作者: 晨敛清荷    时间: 2016-3-19 07:40
很有借鉴意义,先收藏了,谢谢楼主。
作者: 曖__昧〆圥玍    时间: 2016-3-23 18:11
向楼主学习
作者: 妖艳    时间: 2016-5-19 08:05
非常好,顶一下占位编辑
作者: ruggle    时间: 2016-9-3 20:41
very good.
作者: 劳资就是小清新    时间: 2016-9-24 10:32
很有借鉴意义,先收藏了,谢谢楼主。
作者: 沾香    时间: 2016-10-5 20:56
支持,赞一个
作者: 冷樱花    时间: 2016-11-7 11:25
看起来好像不错的样子
作者: 萌系    时间: 2017-4-27 20:20
看起来不错
作者: 昙花一现°    时间: 2017-5-25 11:58
我也来顶一下..
作者: 傲娇女神    时间: 2017-6-13 14:18
打酱油的人拉,顺便赚点金币
作者: 谁以娇颜    时间: 2017-10-16 15:38
以我的经验来看,楼主的想法是可以执行的~
作者: 过去╰格式化    时间: 2017-11-26 13:17
路过 帮顶 嘿嘿
作者: ↗唯吾独尊    时间: 2018-3-2 14:07
很有借鉴意义,先收藏了,谢谢楼主。
作者: 于坎坷    时间: 2018-3-12 14:08
前排支持下了哦~
作者: 卡西莫多    时间: 2018-4-17 11:50
看帖要回,回帖才健康,在踩踩,楼主辛苦了!
作者: 苦情歌    时间: 2018-7-12 15:13
很有借鉴意义,先收藏了,谢谢楼主。
作者: 花裙的少女    时间: 2018-8-1 17:17
打酱油的人拉,顺便赚点金币
作者: 零。1度空气    时间: 2018-8-8 07:03
很有借鉴意义,先收藏了,谢谢楼主。
作者: 奔跑的巧克力    时间: 2018-8-9 07:21
有空一起交流一下。
作者: 我词穷    时间: 2018-9-27 07:52
没人回帖。。。我来个吧!
作者: 夜流逝    时间: 2019-1-8 12:04
顶不错 支持下
作者: 沐晴つ    时间: 2019-1-12 15:51
向楼主学习
作者: 黑白天平    时间: 2019-4-17 18:40
打酱油的人拉,顺便赚点金币
作者: 勤学好问    时间: 2019-6-2 10:41
很有借鉴意义,先收藏了,谢谢楼主。
作者: lili88_sisi    时间: 2019-7-31 20:54
非常好,顶一下占位编辑
作者: 缘何来    时间: 2019-7-31 21:36
没人回帖。。。我来个吧!
作者: 此地无银三百两    时间: 2019-8-5 20:19
还不错哦,如果再能多分享一些就perfect了!
作者: 头发总也长不长    时间: 2019-8-12 12:37
很有借鉴意义,先收藏了,谢谢楼主。
作者: 唯憾、梦倾城    时间: 2019-9-2 08:02
我了个去,顶了
作者: 奈何缘浅    时间: 2019-11-4 20:22
very good.
作者: 若ㄈ此時つ    时间: 2019-11-7 22:53
very good.
作者: 她们.似懂非懂    时间: 2019-11-14 09:46
没人回帖。。。我来个吧!
作者: 沐戈。    时间: 2019-11-27 16:04
确实不错,顶先
作者: 多希望伱在。    时间: 2020-5-11 11:22
看起来不错
作者: 风和你    时间: 2020-5-29 22:54
打酱油的人拉,顺便赚点金币
作者: 格里高利圣咏    时间: 2020-6-19 08:31
好帖是需要鼓励的~
作者: 单身你好啊@    时间: 2020-7-25 14:02
路过的帮顶
作者: 雨来不躲    时间: 2020-10-17 19:38
路过的帮顶
作者: 眉头    时间: 2020-10-18 10:42
好帖是需要鼓励的~
作者: 我是定期发光i    时间: 2021-1-15 13:05
这么强,支持楼主,佩服
作者: _相守一世    时间: 2021-5-30 13:54
very good.
作者: 四面楚歌    时间: 2021-9-25 17:00
非常好,顶一下占位编辑




欢迎光临 思步网 (http://www.step365.com/) Powered by Discuz! X3.2