相关图书推荐 |
|
 |
|
|
最近热书 |
|
 |
|
|
|
| 原出版社:Pearson Education |
| 出版日期:2004年7月 |
| 版别版次:2004年7月北京第一版第一次印刷 |
本书勘误:有(0)条勘误 |
|
| 字数 :236千字 印张:11 |
| 印数 : 页数:149 |
| 附带物 :
无附带物 |
|
|
前言
|
软件配置管理不是我的工作。我不是软件配置管理人员。我不是搞组织工作的人。然而,我早些时候发现,作为软件开发人员,理解组织、软件体系结构和软件配置管理对做好我的工作是必不可少的。我还发现,从这个角度看待软件工程很有意义。我构造软件系统,而配置管理是构造软件系统时非常重要却常被忽视的组成部分。在本书中,我希望能说明如何避免我遇到过的一些问题,使你和你的项目组能更有效地构造系统。 我大概应该解释一下,我所谓的软件配置管理(SCM)人员与构造软件系统的人员是什么...
软件配置管理不是我的工作。我不是软件配置管理人员。我不是搞组织工作的人。然而,我早些时候发现,作为软件开发人员,理解组织、软件体系结构和软件配置管理对做好我的工作是必不可少的。我还发现,从这个角度看待软件工程很有意义。我构造软件系统,而配置管理是构造软件系统时非常重要却常被忽视的组成部分。在本书中,我希望能说明如何避免我遇到过的一些问题,使你和你的项目组能更有效地构造系统。 我大概应该解释一下,我所谓的软件配置管理(SCM)人员与构造软件系统的人员是什么意思。按照公式化形象,配置管理人员和工具与控制有关。他们保守,喜欢缓慢的、可预见的进展。与组织中占“多数”的开发者相比,他们是“少数”。软件工程师(同样按照公式化形象)则不拘小节。他们要赶快构造东西,并且自信在任何情况下都能按他们的方式编码。这些都是极端公式化的形象,而且,根据我的体验,优秀的软件工程师和优秀的版本/质量保证/配置管理人员有共同的目标:致力于交付优质系统,并尽量避免浪费精力。 良好的配置管理实践不是按时构造系统的银弹,也不是模式、极限编程(Extreme Programming,XP)、统一过程(Unified Process)或你也许听说过的其他任何东西。然而,它是被大多数人由于害怕“过程”——往往是由于过去的痛苦经验(Weigers 2002)——而忽略的工具箱的组成部分。 本书描述一些常见的软件配置管理实践。本书对那些在小项目组工作,觉得不能尽其所能有效地使用软件配置管理的软件开发者特别有意义。我们描述的技法(technique)与具体的工具无关。正像采用任何一组模式或最佳实践一样,能否自如地运用这些模式也许与你所使用的工具是否明确地支持它们有关。 为什么我写这本书 我的软件开发生涯是在波士顿地区的一个研发小组开始的。在工作中,除了遇到许多有趣的技术问题之外,还有个新的进展:与母公司所在地(纽约州Rochester市)的小组搞联合开发项目。这种体验使我刚参加工作就认识到,软件开发不仅涉及良好的设计与良好的编码实践,而且涉及同一小组,甚至不同城市的不同小组的成员之间的协调。我们组牵头设置如何共享代码及开发过程的其他人工制品的机制。我们使用通常的东西使合作比较轻松,例如开会、远程会议和电子邮件发送清单等。我们设置本地小组(和远程小组)共享代码的软件配置管理系统的方式,在使协作比较轻松方面起了很大的作用。 为波士顿小组设置SCM过程的人,使用似乎一直在他们的职业生涯中屡试不爽的技法。当我转到其他组织时,我惊异地发现,有那么多地方还在为同一些常见的问题——我们早就知道有很好的解决方法的问题——而拼搏。因为我过去一直在几家刚创办不久的,我刚去时只有一两年历史的公司工作,所以情况更是如此。在新创办的公司,一两年往往是正在招募足够的人员,却很难达到协调与共识的阶段。 工作几年后,我发现了模式。当时,Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides刚完成了他们的著作《Design Patterns》(Gamma等 1995),而Hillside集团正在筹备第一届PLoP会议。模式的想法有很大的力量,因为它致力于在正确的时间,用正确的方法解决问题;而且,因为模式是跨学科的:它们不是只关注具体领域或具体语言的编码技法,而是从各个角度(从编码到项目组)看待如何构造软件的问题。我在PLoP会议的各种研讨会上发表了许多论文,论述在设计、编码与配置管理交会之处的模式(Berczuk 1995,1996a,1996b;Appleton等1998;Cabrera等 1999;Berczuk和Appleton 2000)。 在一次PLoP会议上,我遇到了Brad Appleton,他是比我更强的SCM专家。我们合写了一篇关于分支模式的论文(Appleton等1998),论述了SCM的一个方面。在同行们大力鼓励之下,我们开始写作本书。我希望本书能帮助你避免一些常见的错误。或者让你知道有这些途径;或者给你提供文档,使你能用来把你已经知道的途径向你们组织内的其他人进行解释。 谁应该阅读本书 我希望每个构造软件和使用配置管理系统的人都能从本书获益。配置管理问题的细节因你所构造的系统类型、项目组人员多少和你的工作环境而异。因为不大可能写出针对每个人的需要和使每个人感兴趣的书,所以我不得不仔细地选择我的话题。本书对那些在没有很多已定义过程的中小型组织中构造软件或管理软件项目的人最有价值。如果你在小公司、新创办的公司或大型组织中的小项目组工作,你就会从本书受益最多。即使你们组织已经有明确定义的、似乎妨碍工作进展的繁复的过程,你也可以用本书的模式更好地致力于某些关键的SCM任务。 如何阅读本书 “引言”部分介绍软件配置管理的一些基本概念和软件配置管理图使用的记法。第一部分提供与SCM和模式有关的背景信息。第1章介绍本书所有的软件配置管理概念。第2章论述影响你决定使用哪一类SCM环境的一些因素。第3章介绍模式的概念、本书的模式及它们之间的联系。第二部分介绍各种模式,说明SCM面临的问题和解决常见的SCM问题的方法。第1章和第2章还定义了本书针对的总的问题。要了解模式如何互相配合,应阅读第3章,以便对模式语言有个总的认识。 读过前三章以后,就可以浏览第二部分的模式,可以先阅读你认为有兴趣的模式,然后再阅读与你的问题有关的模式。也可以依次阅读各个模式,搞清它们之间的互相联系。 每章的导言和章末的“未解决的问题”节可能包含对本书出现的其他模式的参考,用“活动开发线(第5章)”这样的形式表示。 由于涉及领域很广,所以有些上下文和“未解决的问题”不包含对本书或其他地方的其他模式的参考,原因是在编写本书时尚未在文献上见到它们。在这种情况下,你会看到可能涉及什么模式的说明。 材料来源 本书的许多材料来源于我、Brad Appleton、Ralph Cabrera和Robert Orenstein为历届PLoP会议撰写的论文。这些模式已作过很大的修改,但还是应该提到这些论文,以感谢他们为这一成果所做的贡献:《Streamed Lines:Branching Patterns for Parallel Software Development》(Appleton等1998)、《Software Reconstruction:Patterns for Reproducing the Build》(Cabrera等1999)、《Configuration Management Patterns》(Berczuk 1996b)。 关于照片 每章开头的照片均来自美国国会图书馆。所有的照片都是在20世纪上半叶拍摄的。只有两幅照片(第5章“活动开发线”和第8章“私用系统构造”的照片)例外,它们分别来自《大萧条时代至第二次世界大战》和《由大萧条至第二次世界大战的美国》这两组收藏品。选择这些照片的原因,是想给模式提供直观的类比。软件是抽象的概念,但我们解决的许多问题,特别是有关项目组的问题,是与现实世界的问题类似的。而且,我对照片和历史一直有浓厚的兴趣。 ——Steve Berczuk, Arlington,Massachusetts,June 2002 steve@berczuk.com http://www.berczuk.com
合作者前言 为什么我和Steve合写这本书 1987年,为了付最后一年的大学学费,我作为兼职软件工具开发者,开始了软件开发生涯。不知道什么缘故,从此结下“不解之缘”,因为自那时起,我一直在做某种形式的工具开发(尤其是SCM工具),即使有时它不是我的主要工作。我甚至为商品SCM工具供应商工作过(时间不长),当时,我的部分工作是保持在竞争中的领先地位。所以,我尽可能多地搜罗市场上其他SCM工具的有关知识。即使更换工作之后,我还在继续追踪SCM,并经常在Internet上参加各种工具的兴趣小组。 有一度,我渴望提高SCM环境的最高技术水平,赶上所有的最新研究成果。很快,就因为“最高技术水平”与“最高实践水平”之间的巨大鸿沟而灰心。我认定,最好是帮助提高实践水平,使现有的工具得到更好的利用。此后不久,我发现了软件模式和模式社区。显然,这些人对广为传播的、反复出现的软件设计最佳实践中,哪些是中肯的分析、哪些是无稽之谈已经有了重大的发现。 当时,在设计模式社区中,几乎没有任何人尝试编写SCM模式。毕竟,对许多程序员来说,如果把软件开发比作“建筑工程”,则SCM只是其中的“管道敷设”:每个人都承认需要它,但谁也不想不由自主地涉足过深,以免难以自拔。他们只要它起作用,而不愿被迫受它更多的打扰。 没有过多长时间,我就和Steve Berczuk联络上了。我们(还有Ralph Cabrera)一起写了几篇关于SCM模式的论文,作为我的ACME项目的一部分(http://acme.bradapp.net/),后来又决定写这本书。我们希望这本虽然很薄,但紧紧围绕有关集成与合作的核心模式的书,能帮助心诚的开发者兼项目领导,在成功地领导与协调项目组的通力合作及把工作成果集成为优质软件的过程中节节胜利、不断进步。 感谢我妻子Maria的无限深情与支持(及我们的女儿Kaeley)。感谢我父母的鼓励。同时感谢我以前的经理Arbela的鼓励、支持与友谊。 ——Brad Appleton Arlington Heights,Illinois,June 2002 brad@bradapp.net http://www.bradapp.net
<<
显示前言详情
|
|
内容简介
|
·Amazon五星图书,清晰讲解配置管理软件·透彻说明中小型开发团队中的SCM应用·针对实际软件开发,强调相关重点和难点·讨论常见SCM工具并解释实现本书模式过程 有效地软件配置管理(SCM)战略促进健康的、面向协作的文化,有利于生产出更好的软件。阅读本书,可以缓解软件工程师对软件配置管理最常见的担心——觉得它僵化,过分强调过程。 通过模式的使用,作者阐明,适当管理的工作流可以防止任务延期、士气低落和费用超支。模式法表明,SCM完全可以轻松地、成功地应用于中小型组织。理...
·Amazon五星图书,清晰讲解配置管理软件 ·透彻说明中小型开发团队中的SCM应用 ·针对实际软件开发,强调相关重点和难点 ·讨论常见SCM工具并解释实现本书模式过程 有效地软件配置管理(SCM)战略促进健康的、面向协作的文化,有利于生产出更好的软件。阅读本书,可以缓解软件工程师对软件配置管理最常见的担心——觉得它僵化,过分强调过程。 通过模式的使用,作者阐明,适当管理的工作流可以防止任务延期、士气低落和费用超支。模式法表明,SCM完全可以轻松地、成功地应用于中小型组织。理清模式之间的相互联系,读者就可以避免那些常见的令开发者灰心和令生产率降低的错误。 本书重点讲述: 如何在解决当前软件问题的同时,开发下一版产品? ·如何和其他开发者并行地开发代码?如何跟上码线的当前状态? ·如何识别进入特定组件的是哪个版本的代码? ·如何分析在组件开发历史上什么地方有过变更? ·如何更有效地使用当前的工具?如何决定何时使用手工过程? ·如何把行之有效的实践逐步引入各工作区和整个组织? ·如何识别软件过程的关键方面,使小组的项目顺利进行? ·如何建立和培育致力于形成优秀集体和产出优质软件的开发环境? 本书附录还详细讨论了常见的SCM工具,并逐一解释如何用它们实现本书讨论的模式。这些业已证明确有成效的技法,能帮助读者改进过程,并激发工作人员在制作更高质量软件的过程中通力协作。
<<
显示内容简介详情
|
|
译者序
|
感谢汪亚文先生,在本书出版的第一时间,在本书的书名还没有在Amazon网站露面的时候,就把它介绍到中国来,使中国读者能在第一时间一睹《软件配置管理模式》的风采。 这本书来得很及时。 随着经济迅速发展,随着信息化步伐加快,计算机应用越来越广、越来越深,应用项目越来越多、越来越大、越来越复杂、越来越灵活、越来越交叉。奋战在信息化第一线的开发人员和管理人员迫切期望跟上新的变化。 本书能把你一步带到前沿。 请注意,本书不是...
感谢汪亚文先生,在本书出版的第一时间,在本书的书名还没有在Amazon网站露面的时候,就把它介绍到中国来,使中国读者能在第一时间一睹《软件配置管理模式》的风采。 这本书来得很及时。 随着经济迅速发展,随着信息化步伐加快,计算机应用越来越广、越来越深,应用项目越来越多、越来越大、越来越复杂、越来越灵活、越来越交叉。奋战在信息化第一线的开发人员和管理人员迫切期望跟上新的变化。 本书能把你一步带到前沿。 请注意,本书不是“软件配置管理”,而是“软件配置管理模式”。 其实,本书不仅是“软件模式”,而且是真正的“软件模式语言”。 这很可能是介绍到我国的第一部完整的软件模式语言著作。 关于模式和模式语言,你大概早己耳熟能详。不过,即使第一次接触,也不必担心。 本书第3章有一段简短而精彩的介绍,从Alexander的《Pattern Language》到Gamma等4位作者的《Design Patterns:Elements of Reuseable Object-Oriented Software》,到本书的模式语言,一看就知道了。 从软件工程到软件模式,从软件模式到软件模式语言,是信息时代人类认识的又一尝试、又一探索。 Hunt Andrew和David Thomas在《The Pragmatic Programmer:From Journeyman to Master》中写道: 人们常把软件开发比作建筑工程。用建筑作比喻蕴涵着下面几个步骤: (1)建筑师绘出蓝图。 (2)承建方挖掘基础,建设地上结构,布线布管并进行最后装修。 (3)房客高高兴兴地搬进去住。如果发现问题,就叫维修人员来修。 但是,软件完全不是这样。软件不像建筑,而更像园艺——比混凝土有活力。你按照最初的计划和条件,在花园里种了很多花木。有些茁壮成长,有些注定变为堆肥。你可以变更苗木的相对位置,以充分利用光和影、风和雨的交相辉映。簇叶过密的枝条可以分栽或修剪;不协调的花色可以移到更具审美情趣的地方。你拔除杂草,给需要特殊照顾的植株施肥。你不断地关注花园的生机与健康,并根据需要,对土壤、植物品种和布局进行调整。 Hunt Andrew和David Thomas又写到: 从结构化程序设计,历经主程序员项目组、CASE工具、瀑布模型、螺旋模型、Jackson、实体关系图、Booch Clouds、OMT、对象库和Cood/Yourdon,到今天的UML,计算机应用从来不缺少打算使编程更像工程的方法。每一种方法都聚集一批追随者,而且每一种方法都会流行一段时问。接着,每一种又被下一种取代。在所有这些方法中,也许只有第一种——结构化程序设计——存在的时间最长。 有些开发者,在淹没了许多项目的大海里漂流,依然紧抱着最新的时尚,就像失事船只的受害者紧抓着漂来的木块。每当有新东西漂过时,他们都费力地游过去,希望比现在的更好。可是,不管漂过的东西从各方面看有多么好,开发者仍在无目的地漂流。 动态的世界,动态的需求,动态的开发,动态的管理。信息化已经取得的辉煌成就和信息化更加壮丽的诱人前景都在催人奋进,都在促使人们改变思想方式,不再是苦苦追寻一种公认的、放之四海而皆准的最佳软件开发方法论,而是脚踏实地、深入细致地分析与研究软件开发活动和与软件开发活动有关的其他活动的种种模式以及这些模式的相互联系,以便针对具体的项目,根据具体的环境、条件、资源、要求,动态地选择、动态地调整、动态地创造在此时此地最适宜的最佳方案,流畅地谱写具体项目成功与胜利的篇章,并为今后更多的成功与胜利打好可持续发展的基础,这也许就是软件模式与模式语言的真谛。 Robert L.Glass在《Facts and Fallacies of Software Engineering》中列举了关于软件工程的55个“事实”和5加5个“谬见”。赫然列在第一条的是: 软件工作中最重要的因素是程序员的质量。 第二条则更加语出惊人: 最好的程序员比最差的程序员最多强28倍。 可见,所有的最佳实践都应该以人为本。让最好的程序员充分发挥他28倍的强势与潜力,让最差的程序员也能在流畅的环境超常发挥,实现5倍、10倍或28倍的飞跃。 这也许就是本书的副题“有效的合作、实用的集成”所蕴涵的精髓。 感谢中国电力出版社,使我有机会担任本书的翻译。本书内容新颖,很多名词术语尚未见到经过国家权威审定或民间约定俗成的规范泽法。为了避免混淆,下面列出几个最没有把握的术语: active codeline活动码线 active development活动开发 agile software development敏捷软件开发 branch支线 branching分支 build构造 code base码基 codefine码线 codeline policy码线策略 codeline retire码线退体 configuration status accounting配置状态会计 configuration audit配置审计 glacial developmen冰河开发 include/exclude approach包含/排除法 mainline主线 maintenance release维护版 merge ancestry归并世系 named stable base命名稳定基 peopleware人件 precheck-in预检入 real version实版 refactoring重构 release engineering发布工程 release line版本线 release-prep code line发布准备线 rework重做 survival rule生活经验 tip of codeline码线末端 transaction-oriented面向事务 virtual version虚版 其中不妥或书中误译、漏译之处,请各位老师和朋友们指正。 谢谢! 黄明成 2004年5月1日
<<
显示译者序详情
|
|
目录
|
第一部分 背景
第1章 把系统作为整体
稳定性和工作进展的平衡 SCM在敏捷软件开发中的作用 上下文中的SCM SCM对小组工作的支持 什么是软件配置管理 工具的作用 更大的整体 本书的讨论方式 未解决的问题 进一步的阅读材料
第2章 软件环境
总原则 软件是怎么回事 开发工作区 体系结构 · · · · · ·
第一部分 背景
第1章 把系统作为整体
稳定性和工作进展的平衡 SCM在敏捷软件开发中的作用 上下文中的SCM SCM对小组工作的支持 什么是软件配置管理 工具的作用 更大的整体 本书的讨论方式 未解决的问题 进一步的阅读材料
第2章 软件环境
总原则 软件是怎么回事 开发工作区 体系结构 组织 大局景 进一步的阅读材料
第3章 模式
模式和模式语言 软件中的模式 配置管理模式 本书中模式的结构 模式语言 语言概述 未解决的问题 进一步的阅读材料
第二部分 模式
第4章 主线
简化分支模型 未解决的问题 进一步的阅读材料
第5章 活动开发线
定义你的目标 未解决的问题 进一步的阅读材料
第6章 私用工作区
以隔离工作的方法控制变更 未解决的问题 进一步的阅读材料
第7章 储存库
一站式购物 未解决的问题 进一步的阅读材料
第8章 私用系统构造
通过本地构造实现全局考虑 未解决的问题 进一步的阅读材料
第9章 集成构造
进行集中式构造 未解决的问题 进一步的阅读材料
第10章 第三方码线
使用已有的工具 未解决的问题 进一步的阅读材料
第11章 任务级提交
每一项小粒度任务做一次提交 未解决的问题
第12章 码线策略
制定交通规则 未解决的问题 进一步的阅读材料
第13章 冒烟测试
验证基本功能性 未解决的问题 进一步的阅读材料
第14章 单元测试
测试合同 未解决的问题 进一步的阅读材料
第15章 回归测试
对修改进行测试 进一步的阅读材料
第16章 私用版本
私用历史
第17章 版本线
发布前分支 进一步的阅读材料
第18章 版本预备线
分支而不是冻结 未解决的问题
第19章 任务分支
处理长期任务 用分支进行隔离
第20章 参考模式
命名稳定基 日常构造与冒烟测试
附录A SCM网上资源 附录B 工具对SCM模式的支持 参考文献
<<
显示目录详情
|
|
- 全部评论(0)
- 力荐(0)
- 推荐(0)
- 还行(0)
- 较差(0)
- 很差(0)
|
前5位评价用户: 发表评价即可获得华元,前五位评价用户可获得多倍华元!
 目前还没有评论
|