本书特点:
SCM的知识,对于软件工程师、软件开发人员、软件架构师和软件项目经理来说,它既不难,也不复杂。 最有价值的ROI过程——SCM。
8种SCM反模式。4种管理和过程反模式、4种需求和测试反模式以及3种过程模式,解决了过程、人员和工具问题。
本书是增强读者从业经验的一本专著,是畅销书《AntiPatterns》的作者的又一力作。书中描述的各种错误一定会使读者受益匪浅。从大量的令业界不爽的种种失败中引发出的思考,足以使读者认识到:你也能够,而且也必须掌握成功的软件工程的软件配置管理(SCM)。
在这本书中,作者介绍了涉及到最常见的SCM错误和陷阱的16种反模式,弥补了该领域中的空白。
作者还提供了已证实的解决方案策略,包括3种过程模式和其他严格测试过的方法。正如《AntiPatterns》一书一样,作者使用了同样有趣的、实用的并且是击中要害的方法讲解了每一种反模式和模式。
软件配置管理是软件开发过程中非常重要却又往往被忽视的重要过程。本书以生动有趣的语言,分析透彻的实例,结构清晰的写作方法,深入浅出地详细论述了软件配置管理中常见的主要模式和反模式。内容包括:模式和反模式的一般概念,软件配置管理模式和反模式,管理和过程模式与反模式,需求和测试模式与反模式,等等。
本书既可作为在校大学生、研究生学习软件工程技术的教材或参考书,亦可作为从事项目管理和软件开发的相关人员在实际工作中的参考资料。
译者序
前言
致谢
作者小传
引言
第一部分 模式和反模式引论
第0章 模式本质简介
模式和反模式概论
过程和管理模式模板
反模式模板
无名质量
第1章 没有章法:系统工程透视
软件配置管理
需求开发
测试
知难而进
第2章 所有管理反模式之父
Nil Desperandum反模式
第二部分 软件工程的反模式和模式
第3章 软件配置管理模式和反模式
"软件配置管理组织"模式
"银弹"反模式
"CM接管"反模式,
"开发人员-软件配置管理"反模式
"分散式配置管理"反模式
"不审计"反模式
"面向对象的配置管理"反模式
"软件配置管理专家"反模式
"事后计划"反模式
第4章 管理和过程模式与反模式
产模式
Detente反模式
"涅架"反模式
"企业系统神话"反模式
第5章 需求和测试模式与反模式
"需求危险"反模式
"信息完整性管理"模式
"媒体上是什么"反模式
"想当然"反模式
"大期望"反模式
第三部分 结论和资源
附录A 反模式和模式梗概
附录B 其他参考资料
当构建计算机软件时, 变化是不可避免的. 软件配置管理(SCM)是一组用于在计算机软件的整个生命期内管理变化的保护性活动. SCM是如此的重要, 但遗憾的是, 很多软件开发人员却对SCM的技术知之甚少. 软件开发过程中的许多错误的观念和行为都可以归结为没有正确地应用SCM的技术.
我们都知道经验的重要价值. 当我们用某种方法解决了一个问题时, 如果能把问题的细节和解决它的方法记录下来, 那我们以后就可以复用这种经验. 教训对于我们来说同样重要, 当我们因采用了错误的方式导致某项任务执行失败时, 如果能找到引起错误的根源, 并把它记录下来, 那以后就可以避免再犯同样的错误. 这也就是我们常说的, "吃一堑, 长一智".
模式已引起了广泛的关注. Christopher Alexander和他的同事们最先将模式语言应用于城市建筑领域, 他们的思想和其他人的贡献已经根植于面向对象软件界. 模式是一种命名的指导性见解的结晶, 它表达了在给定背景和多竞争因素下针对常见问题的解决方案的精华. 模式也是一种用于收集专家设计师的智慧和经验的文献格式. 简而言之, 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径.
反模式描述了不该做的事情, 或者用在错误背景下的解决方法. 反模式可以帮助我们更深入地理解原则. 有时反模式发生在强调了某一个原则而忽视了其他原则的情况下. 好的解决方法用在错误的情况下也可能发生反模式.
模式和反模式都是对不同学习方式的补充, 而且反模式在补充模式方面尤其具有价值.
本书三位作者都是长期从事系统工程和软件系统开发的资深工程师, 有丰富的项目开发经历, 目前正领导着分布式面向对象框架的开发或正进行着安全合作的环境的开发. WillamJ. Brown和Hays W. "Skip"McCormick III是第一本关于反模式的著作《AntiPatterns:Refactoring Software, Architectures and Projects in Crisis》(John Wiley & Sons, Inc., 1998)的合著者. 而本书是一本介绍在系统生命周期的软件开发过程中遇到的一系列模式和反模式的力作, 特别注重的准则是软件配置管理. 需求分析和测试. 它可能是国内第一本有关软件配置管理反模式和模式的正式译著.
本书针对SCM相关活动, 生动有趣. 击中要害地详细阐述了各种反模式和模式. 书中提供了涉及到最常见的SCM错误和陷阱的16种反模式, 其中有8种SCM反模式. 4种管理和过程反模式. 4种需求和测试反模式以及3种过程模式, 解决了过程. 人员和工具问题.
本书对高级主管. 项目经理和软件开发人员都有帮助. 它可以帮助从事软件开发的相关人员吸取成功的项目开发和管理的经验, 避免各种错误和陷阱.
本书可作为计算机专业高年级本科生. 研究生的软件工程教材或参考书, 亦可作为软件开发人员和项目管理人员的参考书.
本书的翻译工作得到了国家自然科学基金项目 (60373072)和国家"973"计划的项目(2002CB312001)的支持, 并得到了上海大学, 特别是计算机学院软件工程研究室的同事的支持和帮助, 在此表示感谢.
译 者
2004年5月
William J.Brown是《AntiPatterns》的作者之一, 也是反模式的倡导者之一.
Hays W."Skip"McCormick III是MITRE公司首席软件架构师. 他与Brown合作编写了备受赞誉的《AntiPatterns》一书.
Scott W.Thomas是MITRE公司信息技术部技术主管及首席工程师.
我们写作本书旨在帮助你管理你的软件开发. 经验表明, 现今从事软件开发的大部分人中, 对于真正的软件配置管理(Software Configuration Management, SCM)技术的理解只是有限的, 或者对此几乎没有任何经验. 我们认为, 这不是因为项目经理不想知晓这些原理, 而是因为软件配置管理看起来难于掌握, 更难于实现, 并且几乎不可能在实践中应用. 我们中的大多数人觉得软件配置管理就好像是某类神秘精妙的充满了"霸王条款"的黑色科学, 很可能会让我们陷入许多麻烦之中, 并吞噬我们大脑中创造性的火花.
如果你有这方面的顾虑, 即使是轻微的, 那么我们希望本书会打消这种顾虑.
不幸的是, 到目前为止, 大家所阅读到的关于软件配置管理方面的大多材料都过于乏味, 而且让人读起来昏昏欲睡. 在本书中, 我们力图使该主题闪耀出简洁性和易理解性的光芒, 而不是再提供一个非常有效的治疗失眠的方法. 我们的前一本关于反模式的著作的反馈意见表明, 反模式不仅读起来有趣, 而且是将许多软件人员所追求的智慧和知识系统化的一种行之有效的方法. 熟悉那本书的大多数人说道:"很有趣, 我有些喜欢它……"然后讲述了他们的个人经历如何恰好与其读过的许多反模式的部分相匹配. 很多人甚至阅读了全书!
这正是我们向你推荐此书的希望之所在. 我们希望你能阅读并使用它, 而且我们认为你将发现它也是活生生的资源. 此外, 你将发现该书具有很强的娱乐性, 因为你会发现关于软件配置管理的两个重要的事实:
1. SCM不是可怕的. 不可知的. 恶梦般的, 也不是魔鬼, 而是可理解的. 基于常识的.
2. 你能够成功地实现并维护一个SCM程序, 并且由此为防止你的工程项目可能失效提供强大的防护措施.
我们建议, 在你还不需要解决一个具体问题之前, 为获得全面的理解, 你最好立即通读全书(并且本书篇幅并不大). 实际上你需要一个特定的问题. 不过, 假如你的项目恰好有麻烦, 并且立即需要一些关于模式或反模式的参考资料, 我们建议你直接跳到"引言"并阅读附录A以快速确定和引用行之有效的模式或反模式. 在(合适地)解决了你的危机之后, 你可以再完成本书的阅读, 或者是将之放于一边, 当你下一次遇到危机时再阅读.
模式的概念有些复杂并且学术性较强, 因为它同面向对象软件开发相关. 不过, 在本书的写作过程中, 我们提升了这些概念, 强调了基于现实的. 在实践中实用的项目管理问题. 因此, 本书倾向于实践型的读者, 适用于正因为一个误用的模式(原理或关键过程领域)引起的危机而挣扎的项目领导. 配置经理和测试经理等. 本书将为之提供一个重构方案, 而无须先行全面理解面向对象开发原理或者模式原理.
全书分为三个部分. 第一部分:模式和反模式引论, 第二部分:软件工程的反模式和模式, 第三部分:结论和资源.
第一部分包括三章, 第0章和第1章解释了本书介绍的内容的重要性, 还包括一个所讨论的论题的导向指南. 另外, 给出了模式和反模式的概念的综述, 使读者对模式的原理概念得以基本了解. (我们估计许多实践型的读者对面向对象程序设计的模式可能并不熟悉, 而这样的理解并非绝对必要, 建议了解而已. )第2章旨在作为在本书中包含的所有其他反模式和模式的样板. 我们希望该章能为读者较早地了解其余部分打下基础. 第一部分只有反模式, 从第二部分开始, 则突破了此限.
第二部分是本书的主体, 包含由系统工程原理分解而成的三章. 具体说来, 第3章介绍软件配置管理模式和反模式, 第4章介绍管理和过程的模式与反模式, 第5章介绍需求分析和测试的模式与反模式. 以这种方式划分模式和反模式的目的是为了有利于读者快速确定由原理定位的模式和反模式位于何处. 本书可以以线性方式来阅读, 但也可用来作为不同情形和环境中读者的参考资料. 反模式和模式的结构的超越, 能够使读者在引用该书时, 迅速地辨别并发现自己感兴趣的主题. 每章的开头还提供了模式和反模式的总结性列表, 从而提供附加的快速引用.
第三部分给出了本书的结论和其他参考文献. 所谓"结论", 实际上是反模式和模式的列表, 为每一模式提供了梗概. 确定了相应的原则. 最后, 我们为读者提供了我们认为对实践型读者来说非常宝贵的参考资料, 包括专著. 期刊论文和直接相关主题的Web网站.