未雨绸缪--理解软件配置管理
基本信息
- 作者: 董越 [作译者介绍]
- 出版社:电子工业出版社
- ISBN:9787121061301
- 上架时间:2008-5-30
- 出版日期:2008 年5月
- 开本:16开
- 页码:266
- 版次:1-1
- 所属分类:
计算机 > 软件工程及软件方法学 > 综合
编辑推荐
所有与软件研发有关的人士必读书籍.
什么是软件配置管理?为什么需要软件配置管理?如何进行关键配置管理?本书将为您详细解答。
内容简介回到顶部↑
软件配置管理为软件开发提供了基础性的支持环境,它与软件开发中的所有角色都有联系,因此本书是写给所有与软件开发有关的人士看的,而不仅是给软件配置管理人员。
本书分为两部分,第一部分详细介绍了软件配置管理的基本知识;第二部分主要讲述了软件配置管理的一些实际问题。本书的目标是让读者在很短的时间就能掌握软件配置管理的基础知识,在参与当代软件开发时,具备软件配置管理方面的基本素养。
本书的一大特色是作者用诙谐生动的语言来讲述专业的技术知识。文中充满睿智的调侃为读者营造出一种轻松的氛围,让原本比较沉闷的技术阅读成为一种愉悦的享受!
本书分为两部分,第一部分详细介绍了软件配置管理的基本知识;第二部分主要讲述了软件配置管理的一些实际问题。本书的目标是让读者在很短的时间就能掌握软件配置管理的基础知识,在参与当代软件开发时,具备软件配置管理方面的基本素养。
本书的一大特色是作者用诙谐生动的语言来讲述专业的技术知识。文中充满睿智的调侃为读者营造出一种轻松的氛围,让原本比较沉闷的技术阅读成为一种愉悦的享受!
作译者回到顶部↑
本书提供作译者介绍
董越,男,1977年生。
他目前的公开身份是索尼爱立信公司的SCM Strategist,而他的秘密身份是SCMLife这个组织的核心成员,代号为流水先生。他毕业于清华大学,拥有一个硕士学位和两个学士学位:
他曾工作于西门子、摩托罗拉和雅虎等公司,一直专注于软件配置管理:他曾发表软件配置管理相关的多篇文章;他曾NIBM Rational用户组等组织提供多次讲演、讲座和咨询:他曾领导Flooda、EasyCM等多个开源软
件项目。
最后,特别重要的,他目前单身。
<< 查看详细
他目前的公开身份是索尼爱立信公司的SCM Strategist,而他的秘密身份是SCMLife这个组织的核心成员,代号为流水先生。他毕业于清华大学,拥有一个硕士学位和两个学士学位:
他曾工作于西门子、摩托罗拉和雅虎等公司,一直专注于软件配置管理:他曾发表软件配置管理相关的多篇文章;他曾NIBM Rational用户组等组织提供多次讲演、讲座和咨询:他曾领导Flooda、EasyCM等多个开源软
件项目。
最后,特别重要的,他目前单身。
目录回到顶部↑
上篇:基本话题
第1章 恼人不休的问题:什么是软件配置管理
1.1 问题的引出
1.2 与图书管理作对比
1.3 为什么称作配置管理
1.4 其他一些比喻
第2章 基本的版本控制:记录版本,防止混乱
2.1 即使只有一个程序员
2.2 建立公共存储区
2.3 防止版本覆盖
2.4 行话
第3章 按任务单元组织工作
3.1 为什么
3.2 从创建到提交
3.3 适时更新工作空间
3.4 保证任务单元完成的质量
窘4章 产品的整体版本
4.1 记录源代码整体版本
4.2 保存安装包
4.3 开发-测试-发布
第1章 恼人不休的问题:什么是软件配置管理
1.1 问题的引出
1.2 与图书管理作对比
1.3 为什么称作配置管理
1.4 其他一些比喻
第2章 基本的版本控制:记录版本,防止混乱
2.1 即使只有一个程序员
2.2 建立公共存储区
2.3 防止版本覆盖
2.4 行话
第3章 按任务单元组织工作
3.1 为什么
3.2 从创建到提交
3.3 适时更新工作空间
3.4 保证任务单元完成的质量
窘4章 产品的整体版本
4.1 记录源代码整体版本
4.2 保存安装包
4.3 开发-测试-发布
前言回到顶部↑
据说我小的时候,吃西瓜就喜欢吃尖儿。一桌西瓜刚切好,大人一不留神,就有很多块儿已经没尖儿了。这说明的第一个问题是,打小我就不是个老实本分的孩子。这说明的第二个问题是,西瓜数尖儿最好吃,最甜。如果肚子容量不大的话,应该先吃它。.
我现在要做的事,就是和本书的读者们一起,去吃西瓜尖儿。软件配置管理(Software Configuration Management, SCM)可是个大西瓜,涉及很多方面,有很多细节在里面。广大读者,特别是并不以软件配置管理为生的读者,恐怕没这个闲心,钻研每一个方面的每一个细节,吃到西瓜露出青皮儿。这本书介绍的是软件配置管理的基本概念、基本思想、基本方法和基本要点。总之,是最核心的、框架性的内容。本书的目标是,让您用几个小时的时间,掌握软件配置管理的基础知识。
本书是写给所有与软件研发有关的人士的,而不仅仅是软件配置管理专业人员。原因在于软件配置管理的特殊性。软件配置管理与软件研发中的所有角色都有关系。开发人员集中精力于编写代码,但是需要版本控制来帮忙,以避免版本混乱,工作成果丢失;测试人员集中精力于测试,但是需要缺陷跟踪系统来帮忙,防止自己发现的缺陷程序员忘了改,最后连自己都忘记了。项目经理关心项目进度,这同样和软件配置管理有关:如果能正确地运用分支这个手段,让不同的工作(比如系统测试和程序员继续开发)并行起来,可以大大加快项目的进展速度。还有需求管理人员、系统架构师、用户文档编写人员、质量保证人员……每个人都要面对软件配置管理,学习使用它,并从它那里受益,因为软件配置管理为软件研发提供了基础性的支持环境。..
另一个理由是,在很多情况下,软件配置管理应该怎么做,深深地受当时特定情况的影响。而这特定的情况、特定的背景,往往是研发团队的其他成员要比软件配置管理工程师更清楚。就好像,衣服穿多了还是穿少了,要听本人的意见,冷暖自知。
对于正在从事或打算从事软件配置管理工作的读者,这本书也是颇有价值的。日常的工作,可能会让我们只见树木,不见森林。而通过这本书,可以概览软件配置管理的全貌,系统地了解我们要做的事情,了解我们的使命。另一方面,本书所给出的软件配置管理的基本原理和基本方法,来自于业界的最佳实践和已经形成的解决模式。这些对于解决特定研发背景下的具体问题,提供了很好的指导。我们需要做的是,考察具体问题、具体情况,融会贯通地运用软件配置管理的基础知识,产生优秀的具体解决方案,并付诸实施。
至于本书的书名,其中的“未雨绸缪”有如下三层含义。首先,记录历史,以供不时之需,这是软件配置管理的重要功能之一。其次,在软件研发中,随着软件研发规模的不断扩大,软件系统复杂性的不断增长,对软件配置管理的需求也会越来越强烈。因此,了解软件配置管理,是在为明天做准备。最后,本书帮助读者充实自己。谁不想成长呢?不论你现在专注于什么工作,不论你将来的理想是什么,只要与软件研发相关,相信本书都会有利于你的成长!
最后,关于本书的风格。就像这篇自序的风格一样,本书通俗易懂,偶尔还诙谐一下。希望读者在阅读时,能分享我写作时的愉悦。...
我现在要做的事,就是和本书的读者们一起,去吃西瓜尖儿。软件配置管理(Software Configuration Management, SCM)可是个大西瓜,涉及很多方面,有很多细节在里面。广大读者,特别是并不以软件配置管理为生的读者,恐怕没这个闲心,钻研每一个方面的每一个细节,吃到西瓜露出青皮儿。这本书介绍的是软件配置管理的基本概念、基本思想、基本方法和基本要点。总之,是最核心的、框架性的内容。本书的目标是,让您用几个小时的时间,掌握软件配置管理的基础知识。
本书是写给所有与软件研发有关的人士的,而不仅仅是软件配置管理专业人员。原因在于软件配置管理的特殊性。软件配置管理与软件研发中的所有角色都有关系。开发人员集中精力于编写代码,但是需要版本控制来帮忙,以避免版本混乱,工作成果丢失;测试人员集中精力于测试,但是需要缺陷跟踪系统来帮忙,防止自己发现的缺陷程序员忘了改,最后连自己都忘记了。项目经理关心项目进度,这同样和软件配置管理有关:如果能正确地运用分支这个手段,让不同的工作(比如系统测试和程序员继续开发)并行起来,可以大大加快项目的进展速度。还有需求管理人员、系统架构师、用户文档编写人员、质量保证人员……每个人都要面对软件配置管理,学习使用它,并从它那里受益,因为软件配置管理为软件研发提供了基础性的支持环境。..
另一个理由是,在很多情况下,软件配置管理应该怎么做,深深地受当时特定情况的影响。而这特定的情况、特定的背景,往往是研发团队的其他成员要比软件配置管理工程师更清楚。就好像,衣服穿多了还是穿少了,要听本人的意见,冷暖自知。
对于正在从事或打算从事软件配置管理工作的读者,这本书也是颇有价值的。日常的工作,可能会让我们只见树木,不见森林。而通过这本书,可以概览软件配置管理的全貌,系统地了解我们要做的事情,了解我们的使命。另一方面,本书所给出的软件配置管理的基本原理和基本方法,来自于业界的最佳实践和已经形成的解决模式。这些对于解决特定研发背景下的具体问题,提供了很好的指导。我们需要做的是,考察具体问题、具体情况,融会贯通地运用软件配置管理的基础知识,产生优秀的具体解决方案,并付诸实施。
至于本书的书名,其中的“未雨绸缪”有如下三层含义。首先,记录历史,以供不时之需,这是软件配置管理的重要功能之一。其次,在软件研发中,随着软件研发规模的不断扩大,软件系统复杂性的不断增长,对软件配置管理的需求也会越来越强烈。因此,了解软件配置管理,是在为明天做准备。最后,本书帮助读者充实自己。谁不想成长呢?不论你现在专注于什么工作,不论你将来的理想是什么,只要与软件研发相关,相信本书都会有利于你的成长!
最后,关于本书的风格。就像这篇自序的风格一样,本书通俗易懂,偶尔还诙谐一下。希望读者在阅读时,能分享我写作时的愉悦。...
序言回到顶部↑
许多工科学生都参加过一门称之为“金工实习”的课程,会在生产车间内真实地体会车、铣、刨、磨、钻、铸、锻、焊等诸多生产工艺,同时也会领略到流水线生产的高效和有序。实际上配置管理就是保证这些工艺过程按生产大纲的安排,并行而有序地开展,最终将原材料或毛坯变为成品的关键方法。但软件毕竟和制造业产品或硬件不同,软件是“软”的,灵活性高,而且易变。因此,如何理解软件配置管理,并进而把握软件配置管理的内在规律,真正使软件配置管理起到为软件交付保驾护航的作用,的确是值得业界仔细思考和研究的一个课题。.
从流程角度看,软件配置管理是整个软件开发生命周期中一个非常核心的管理过程。配置管理实际贯穿了从需求分析、架构设计、项目管理、开发、集成构建、测试,以及上线的全过程。在这一过程中不仅涉及宏观的项目进度控制、配置管理规范及计划、分布式开发规划等;也包括更细粒度的分支模型、构建及集成方式、变更处理流程;还包括微观的与开发人员直接相关的版本控制、差异比较与归并,等等。绝不夸张地讲软件配置管理是一门“八面玲珑”的技术或艺术,而读者可以从董越先生的《未雨绸缪——理解软件配置管理》中切实感受到这一点。当开发人员从配置管理工具的版本树中静静欣赏自己作品的成形轨迹时,当集成人员从组件基线树把握整个应用组件的里程碑脉络时,当项目管理人员面对缺陷发展趋势以判断产品发布时机时,当构建生产人员顺利将正确版本的源代码从版本库中取出、构建并在生产系统投产时,配置管理及相关工具不仅仅是这些人员的有力助手,而且随着时间的推移它带给大家更多的将是一份信任和感动!..
从人员角度看,软件配置管理人员在软件企业中起着非常重要的作用,绝不是许多人头脑中的文档管理员、档案管理员或者什么其他的人员。他们是软件企业中所有软件资产的管理员;是最洞悉软件整个开发及变更过程并参与其设计的关键人员;是能与项目经理/人员、质量保证经理/人员、软件分析/设计/开发/构建/测试人员充分沟通并与之打成一片的“公关”人员;是了解操作系统管理、网络管理、各类开发语言和环境、深谙软件过程改进理论和相关工具的技术人员。通过本书,读者可以加深对配置管理的理解,加强企业配置管理的相关工作,重视配置管理人员的培养和提高。
全书尽管只有二百余页,但却深入浅出地道出了与配置变更管理相关的多个基本概念,如版本控制、配置管理、缺陷跟踪与变更管理、构建、组件、集成、分支等。同时书中根据不同实际场景给出了业界的最佳实践,而且处处渗透了作者在软件配置管理方面的心得,例如对分支运用的分析、对组件复用的理解和实践、对于集成过程及集成责任的清晰阐述等。并且,本书结合工具(ClearCase、ClearQuest、Subversion、Bugzilla等)简单明了地指出了当前流行的配置工具是如何实现这些最佳实践的。可以看出,《未雨绸缪——理解软件配置管理》一书是作者多年专注于软件配置管理理论和实践的结晶,书中不少观点实际上也代表了包括我在内的很多软件配置管理相关从业人员的感受和心声,是值得所有软件开发从业人员仔细阅读、细细品味及随时参考的好书!
非常感谢董越先生在紧张工作之余为大家所做的切切实实的贡献!...
李纪华
2007年10月
从流程角度看,软件配置管理是整个软件开发生命周期中一个非常核心的管理过程。配置管理实际贯穿了从需求分析、架构设计、项目管理、开发、集成构建、测试,以及上线的全过程。在这一过程中不仅涉及宏观的项目进度控制、配置管理规范及计划、分布式开发规划等;也包括更细粒度的分支模型、构建及集成方式、变更处理流程;还包括微观的与开发人员直接相关的版本控制、差异比较与归并,等等。绝不夸张地讲软件配置管理是一门“八面玲珑”的技术或艺术,而读者可以从董越先生的《未雨绸缪——理解软件配置管理》中切实感受到这一点。当开发人员从配置管理工具的版本树中静静欣赏自己作品的成形轨迹时,当集成人员从组件基线树把握整个应用组件的里程碑脉络时,当项目管理人员面对缺陷发展趋势以判断产品发布时机时,当构建生产人员顺利将正确版本的源代码从版本库中取出、构建并在生产系统投产时,配置管理及相关工具不仅仅是这些人员的有力助手,而且随着时间的推移它带给大家更多的将是一份信任和感动!..
从人员角度看,软件配置管理人员在软件企业中起着非常重要的作用,绝不是许多人头脑中的文档管理员、档案管理员或者什么其他的人员。他们是软件企业中所有软件资产的管理员;是最洞悉软件整个开发及变更过程并参与其设计的关键人员;是能与项目经理/人员、质量保证经理/人员、软件分析/设计/开发/构建/测试人员充分沟通并与之打成一片的“公关”人员;是了解操作系统管理、网络管理、各类开发语言和环境、深谙软件过程改进理论和相关工具的技术人员。通过本书,读者可以加深对配置管理的理解,加强企业配置管理的相关工作,重视配置管理人员的培养和提高。
全书尽管只有二百余页,但却深入浅出地道出了与配置变更管理相关的多个基本概念,如版本控制、配置管理、缺陷跟踪与变更管理、构建、组件、集成、分支等。同时书中根据不同实际场景给出了业界的最佳实践,而且处处渗透了作者在软件配置管理方面的心得,例如对分支运用的分析、对组件复用的理解和实践、对于集成过程及集成责任的清晰阐述等。并且,本书结合工具(ClearCase、ClearQuest、Subversion、Bugzilla等)简单明了地指出了当前流行的配置工具是如何实现这些最佳实践的。可以看出,《未雨绸缪——理解软件配置管理》一书是作者多年专注于软件配置管理理论和实践的结晶,书中不少观点实际上也代表了包括我在内的很多软件配置管理相关从业人员的感受和心声,是值得所有软件开发从业人员仔细阅读、细细品味及随时参考的好书!
非常感谢董越先生在紧张工作之余为大家所做的切切实实的贡献!...
李纪华
2007年10月
书摘回到顶部↑
上篇:基本话题
第1章 恼人不休的问题:什么是软件配置管理
1.1问题的引出
作为软件配置管理工作者,差不多都有这样的经验:在认识新朋友时,当别人问起自己所从事的职业,自然会回答道:“我从事软件配置管理工作”。接着,十有八九,会被问到下一个问题:“什么是软件配置管理?”。总被问到相同的问题,倒还称不上是苦恼,真正的苦恼在于回答这个问题,因为软件配置管理真是不太容易说得清……解释了半天,结果往往是:“你这份工作好玄妙啊。隔行如隔山啊,我是搞不懂了。”
是的,软件配置管理,确实不太好解释。软件开发过程中的其他工作,似乎都比它容易理解。开发工程师在编写源代码;测试工程师在测试、挑毛病;需求分析师配合用户确定需求,并且用精确严谨的语言表达出来……虽然这样说未必严谨,但是至少能够得到一个大致的印象。但是,软件配置管理呢?软件配置管理是什么?
下面是软件配置管理的一个权威定义:
“A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical char’acteristics of a configuration item,control changes to those chin’acteristics,record and report change processing and.implementation status,and verify compliance with specified requirements.”
“一套应用技术上和管理上的指导和监督的方法,用来:识别和记录配置项的功能特征和物理特征;控制这些特征的变更;记录和报告变更的处理和执行的状态;以及验证其是否符合特定的需求。”
如果你看得一头雾水,别担心,这不是你能力上的问题。大部分人和你的感受相同。这个定义,以及类似的权威定义,都高度抽象。用一两句话,确实很难把握好软件配置管理这个概念。需要更多的描述,才能把它说清楚。事实上,这一整本书,就是在认识和理解软件配置管理。而在这一章中,我们将用一些我们相对熟悉的概念来打比方,做对比,来讲解软件配置管理这个概念。通过这样一种方式,让大家对软件配置管理有一个初步的,但比较正确的认识。
1.2与图书管理作对比
软件配置管理,是关于软件资产的管理。什么是软件资产呢?源代码、设计文档、可以运行的程序等在软件研发过程中产生的有价值的东西,都是软件资产。软件配置管理就是关于这些内容的管理。那么,具体有什么要管理的呢?让我们把它和图书馆的图书管理做个对比。
它们有一些相似点。首先,图书管理管的是图书资产;软件配置管理管的是软件资产。这两种管理,管的都是信息资产。其次,图书管理,需要把图书进行分类,以便检索;需要将图书存放在合适的地方,以便存取;还要防止虫吃鼠咬。而软件配置管理也类似,需要把软件资产——主要是源代码,放在合适的目录结构里,放在合适的地方存储,防止丢失或者弄乱。再次,在图书馆,要记录谁借出了哪本书,还没还。这是为了保证图书馆的书不会丢失;而在软件配置管理中也类似,需要记录谁“借”出了什么文件,什么时候“还”的。在这一“借”一“还”的过程中,如果程序员修改了它,软件配置管理就要记录下这些修改。那么,为什么要记录呢?
因为软件资产与图书资产不同,软件资产在不断变化,不断演进。项目初始的时候,可能只有一份简单的项目计划,而项目结束时,已是可以交付给用户的产品。
……
第1章 恼人不休的问题:什么是软件配置管理
1.1问题的引出
作为软件配置管理工作者,差不多都有这样的经验:在认识新朋友时,当别人问起自己所从事的职业,自然会回答道:“我从事软件配置管理工作”。接着,十有八九,会被问到下一个问题:“什么是软件配置管理?”。总被问到相同的问题,倒还称不上是苦恼,真正的苦恼在于回答这个问题,因为软件配置管理真是不太容易说得清……解释了半天,结果往往是:“你这份工作好玄妙啊。隔行如隔山啊,我是搞不懂了。”
是的,软件配置管理,确实不太好解释。软件开发过程中的其他工作,似乎都比它容易理解。开发工程师在编写源代码;测试工程师在测试、挑毛病;需求分析师配合用户确定需求,并且用精确严谨的语言表达出来……虽然这样说未必严谨,但是至少能够得到一个大致的印象。但是,软件配置管理呢?软件配置管理是什么?
下面是软件配置管理的一个权威定义:
“A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical char’acteristics of a configuration item,control changes to those chin’acteristics,record and report change processing and.implementation status,and verify compliance with specified requirements.”
“一套应用技术上和管理上的指导和监督的方法,用来:识别和记录配置项的功能特征和物理特征;控制这些特征的变更;记录和报告变更的处理和执行的状态;以及验证其是否符合特定的需求。”
如果你看得一头雾水,别担心,这不是你能力上的问题。大部分人和你的感受相同。这个定义,以及类似的权威定义,都高度抽象。用一两句话,确实很难把握好软件配置管理这个概念。需要更多的描述,才能把它说清楚。事实上,这一整本书,就是在认识和理解软件配置管理。而在这一章中,我们将用一些我们相对熟悉的概念来打比方,做对比,来讲解软件配置管理这个概念。通过这样一种方式,让大家对软件配置管理有一个初步的,但比较正确的认识。
1.2与图书管理作对比
软件配置管理,是关于软件资产的管理。什么是软件资产呢?源代码、设计文档、可以运行的程序等在软件研发过程中产生的有价值的东西,都是软件资产。软件配置管理就是关于这些内容的管理。那么,具体有什么要管理的呢?让我们把它和图书馆的图书管理做个对比。
它们有一些相似点。首先,图书管理管的是图书资产;软件配置管理管的是软件资产。这两种管理,管的都是信息资产。其次,图书管理,需要把图书进行分类,以便检索;需要将图书存放在合适的地方,以便存取;还要防止虫吃鼠咬。而软件配置管理也类似,需要把软件资产——主要是源代码,放在合适的目录结构里,放在合适的地方存储,防止丢失或者弄乱。再次,在图书馆,要记录谁借出了哪本书,还没还。这是为了保证图书馆的书不会丢失;而在软件配置管理中也类似,需要记录谁“借”出了什么文件,什么时候“还”的。在这一“借”一“还”的过程中,如果程序员修改了它,软件配置管理就要记录下这些修改。那么,为什么要记录呢?
因为软件资产与图书资产不同,软件资产在不断变化,不断演进。项目初始的时候,可能只有一份简单的项目计划,而项目结束时,已是可以交付给用户的产品。
……


点击看大图






加载中...