标题：对象技术项目管理
图书信息
原书名： Mentoring Object Technology Projects  封面原出版社： PRENTICE HALL
作者： （加）Richard T.Due   
译者： 韩柯 
丛书名： 软件工程技术丛书 
出版社：机械工业出版社 
ISBN：71111331110
出版日期：2003 年12月
开本：16开
页码：194
作者简介
Richard T.Due是homsen Due公司的总裁。他制定并讲授有关对象技术项目管理、面向对象分析与设计和面向对象设计模式等课程，并为对象技术转换的机构提供咨询服务。他作为程序员、分析师、经理、顾问、教师和作家，有30多年的IT行业的经验，并经常在像TOOLS和OOPSLA这样的会议上发表主题演讲。
内容简介
本书介绍如何在项目管理中有效地应用对象技术来提高生产率和投资回报率。本书的主要内容包括：对象工程的基本知识，规划和组织对象技术项目，管理对象技术项目，对象工程方法论，对象工程工具等，书中还包含对象工程的实例以及在管理过程中需要的模板等以供读者参考。
本书主题
传统it项目管理方法不适用于基于对象环境的原因 
对象项目管理中的关键成功因素 
预测和监控对象技术项目特有的“经验法则” 
制定现实的项目进度计划 
当前领先的方法论(包括统一和open方法)的发展状况 
用于管理面向对象项目的模板和技巧 
目录
译者序 
前言 
第1章 对象工程：信息技术的一种 
新方法 1 
1.1 需要：信息技术的新方法 2 
1.2 需要：业务过程再工程的新方法 3 
1.3 探求新方法 3 
1.3.1 对象技术：一种新的范例 4 
1.3.2 基本定义 6 
1.4 很多方法论，但是只用于代码的 
分析与设计 9 
1.4.1 面向对象的程序设计语言 9 
1.4.2 轻型方法论 12 
1.5 面向对象的企业建模 14 
1.5.1 企业建模的工作流方法 15 
1.5.2 对象工程：将对象技术与工作 
流分析合并 16 
1.6 是银弹还是机构过程 18 
1.7 复习题 20 
参考文献 20 
.第2章 信息技术的生产率的挑战 23 
2.1 生产率悖论 24 
2.1.1 生产率悖论的真实性 24 
2.1.2 如何提高生产率 25 
2.1.3 信息技术作为生产力时出现的 
问题 25 
2.2 对象技术是否能解决问题 27 
2.3 遗留系统，遗留人员 30 
2.3.1 包装器、模型与管理信息系统 30 
2.3.2 管理信息系统的5个错误假设 32 
2.4 遗留人员 32 
2.5 思考题 33 
参考文献 33 
第3章 规划对象技术生产率 35 
3.1 哪个方面出了问题 37 
3.2 不稳定的趋势 38 
3.3 组件与模式：消极的技术 39 
3.4 从数据到对象和组件的迁移 40 
3.4.1 组件与模式的消极作用 40 
3.4.2 对消极作用的反应 41 
3.4.3 未来展望 41 
3.5 新方法的时代 41 
3.6 复习题 45 
参考文献 45 
第4章 管理对象技术项目 47 
4.1 项目管理策略 48 
4.2 面向过程与面向项目 50 
4.3 项目管理策略 51 
4.3.1 业务说明 51 
4.3.2 描述 52 
4.3.3 环境模型 52 
4.3.4 方法论 52 
4.3.5 项目资源估计与时间进度制定 53 
4.3.6 质量保证 59 
4.3.7 实现后的评审 60 
4.3.8 风险分析与意外事件计划 60 
4.4 项目历史手册 63 
4.5 监控项目的过程与进展 65 
4.6 复习题 67 
参考文献 67 
第5章 组织与指挥对象技术项目 69 
5.1 向新范例的迁移 70 
5.1.1 知识传递 72 
5.1.2 动力 73 
5.1.3 环境因素 74 
5.2 新的功能与角色 75 
5.2.1 模式和框架设计人员 75 
5.2.2 类开发人员 76 
5.2.3 业务分析人员 76 
5.2.4 企业建模人员 76 
5.3 评估与计酬的新方法 76 
5.4 三团队组织方法 79 
5.5 思考题 80 
参考文献 81 
第6章 业务过程再工程 83 
6.1 关键标准 87 
6.1.1 知识管理 87 
6.1.2 时间 88 
6.1.3 清理 89 
6.1.4 环境控制 89 
6.1.5 质量 90 
6.1.6 调节性库存储备 90 
6.1.7 标识核心竞争力 91 
6.1.8 融合 91 
6.1.9 全球化 91 
6.1.10 互操作 92 
6.1.11 汇聚 92 
6.1.12 乐趣 92 
6.1.13 价值流分析 92 
6.2 日本再工程失败的教训 93 
6.3 启动再工程 94 
6.4 再工程的前景 95 
6.5 “正好足够”方法入门 95 
6.5.1 框架 97 
6.5.2 模式 97 
6.5.3 需求复用 100 
6.5.4 分层类库 101 
6.5.5 形式化的规格说明语言 101 
6.5.6 需要新思维 102 
6.6 思考题 102 
参考文献 103 
第7章 对象工程方法论 105 
7.1 对象工程方法 106 
7.1.1 第一阶段：项目管理、策划和准备 
活动就绪程度评估 106 
7.1.2 第二阶段：类的实现 108 
7.1.3 第三阶段：确认 110 
7.1.4 第四阶段：交付与实现 110 
7.1.5 第五阶段：过程评估、改进计划 
与准备活动就绪程度评估 110 
7.2 最佳软件工程实践与对象工程 111 
7.2.1 评审与审查 111 
7.2.2 信息隐藏 111 
7.2.3 增量开发 111 
7.2.4 用户参与 111 
7.3 选择合适的系统开发方法论 111 
7.4 方法论框架 114 
7.5 使用case工具开发富有活力的模型 115 
7.6 复习题 116 
第8章 对象工程手段 117 
8.1 对象工程手段 118 
8.1.1 问题或机会陈述 118 
8.1.2 环境图 119 
8.1.3 用1小时头脑风暴开发用例图 119 
8.1.4 用例模型 120 
8.2 用例迁移问题 126 
8.3 主要经验教训 128 
8.4 任务脚本：用例的一种替代方法 128 
8.5 戏剧脚本模型 130 
8.6 类－责任－协同模型 131 
8.7 根据合同进行设计 133 
8.8 abbott文本分析 133 
8.9 复习题 134 
参考文献 134 
第9章 对象工程工具 137 
9.1 用于第一轮迭代的工具 138 
9.2 用于后续迭代的工具 140 
9.3 对象管理系统 140 
9.3.1 面向对象的数据库管理系统解 
决方案 141 
9.3.2 对象技术项目所使用的数据库 
类型 142 
9.4 自动化的组件组装工厂 143 
9.4.1 使用自动化的组件组装服务 143 
9.4.2 这对于我的机构意味着什么 145 
9.5 模式是基本工具 146 
9.5.1 早期的信息技术模式 146 
9.5.2 模式的生命周期 147 
9.5.3 未来的希望 148 
9.6 项目管理工具 148 
9.7 思考题 149 
参考文献 149 
第10章 对象工程示例 151 
10.1 案例研究：处方药品控制系统 152 
10.1.1 研讨会输出示例 153 
10.1.2 第一次研讨会：问题陈述 154 
10.1.3 第二次研讨会：环境图 154 
10.1.4 第三次研讨会：用例图 155 
10.1.5 第四次研讨会：编写用例 156 
10.1.6 第五次研讨会：abbott文本分析 157 
10.1.7 第六次研讨会：类－责任－协同 
手段 158 
10.1.8 第七次研讨会：类图 159 
10.1.9 第八次研讨会：对象交互图模型 160 
10.1.10 第九次研讨会：状态转换图 160 
10.1.11 第十次研讨会：类描述 160 
10.1.12 第十一次研讨会：非功能性 
需求 161 
10.1.13 第十二次研讨会：用户界面 161 
10.1.14 第十三次研讨会：设计类－责 
任－协同 162 
10.1.15 第十四次研讨会：设计对象交 
互图 164 
10.1.16 第十五次研讨会：设计类图 164 
10.1.17 第十六次研讨会：设计类规格 
说明 165 
10.2 误用的示例 165 
10.3 复习题 167 
第11章 入门：实现指南 169 
11.1 启动对象技术项目 170 
11.2 对象技术转型过程 172 
11.2.1 策划与项目开始前的阶段 172 
11.2.2 变更现有文化 172 
11.2.3 向客户推销面向对象软件工程 173 
11.2.4 组织软件开发团队 173 
11.2.5 面向对象技术插入阶段 173 
11.2.6 人员招募与组织 173 
11.2.7 项目管理阶段 174 
11.3 其他方法 174 
11.4 其他的实现方法 175 
11.4.1 基于组件开发的启发式方法 175 
11.4.2 意外收益 176 
11.5 向对象技术转型时遇到的问题 176 
11.6 复习题 178 
参考文献 179 
第12章 未来的发展 181 
12.1 未来趋势：近期 183 
12.1.1 osql、sql3和面向对象 
cobol 184 
12.1.2 对象－关系混合数据库 184 
12.1.3 指数增长曲线 185 
12.1.4 一点忠告 187 
12.2 未来趋势：中期 187 
12.3 未来趋势：远期 191 
12.3.1 面向代理的程序设计 192 
12.3.2 蜂群法 192 
12.4 小结 193 
12.5 复习题 193 
参考文献 194
译者序
本书是一本观点鲜明、新颖独特的专著。作者站在较高层次上，对传统的以数据为中心的信息系统和关注代码的软件工程实践做了深刻反思，围绕“正好足够”和“正好及时”思路，提出了对象工程思想，强调思维方式的转变。 
作者关注信息技术应用的一些长期需求，认为机构真正需要的是管理信息，而并不只是数据处理。管理信息是临时定制、主观、非正式、“模糊”和面向未来的。在面对这些长期挑战时，对象技术并不能自然而然地获得成功，最大的阻碍因素仍然是个人和机构对变更的消极态度。 
作者根据自己为多国企业和政府机构提供咨询的经验，论述了项目管理的各个方面，包括策划、估计、人员招募、组织、实现、动态监管等，提出了新颖的观点，相信会对关心信息技术发展和运用的经理、开发人员、用户大有裨益，对于将来有志成为信息系统经理、开发人员和用户的在校学生，也会有所帮助。 
在翻译过程中，我们力求忠实原文。书中关于莎士比亚作品的翻译，参考了朱生豪等人的译本。参加本书翻译、审校工作的还有：黄慧菊、屈健、刘芙蓉、王威、李津津、原小玲、韩文臣等。由于译者的知识水平和实际工作经验有限，不当之处在所难免，恳请读者批评指正。 
译 者
前言
面向对象：回到基础 
在过去的一年半中，我一直培训和指导来自军队、主要国防工程承包商、医疗保险公司、州政府、电力和电话设备公司以及世界级研究机构的经理、用户和开发人员。每当发现来自这些机构的人们仍然在努力理解面向对象的基本知识时，我都会很惊讶。这些来自“顶尖”机构的人看起来还并不清楚像“对象是什么”、“用例是什么”和“怎样管理面向对象项目”这样的问题。我原以为这些机构中的每个人都已经在10或12年前学习过面向对象的基本知识。 
我有意识地询问过我的几个顾问同事，他们都说最近有类似经历。从中我们可以发现一些普遍问题：主要机构中的大部分人还没有理解和运用对象技术。很多经理、用户和开发人员在过去的5～10年中，对Y2K、客户－服务器、关系数据库和数据仓库等项目过于关注，以至于忽略了面向对象领域。而且，大部分承包商和主要咨询公司中的顾问也不理解对象技术。很多机构都运用，甚至开发了面向对象的方法和工具，其中部分工具已经被机构中的一部分员工成功地应用在对象技术项目中，但是这并不意味着机构中的每个人都理解对象技术。一个有意思的现象是，在大型的跨国机构中，机构中欧洲分公司的员工看起来比北美同行对对象技术有更好的理解。 
机构现在已经把对象技术看作是解决生产率问题的有效方法，或是电子商务项目的必要组件。但是，在很多情况下，这些机构所做的只不过是采用C++或Java替代传统程序设计语言。面向对象中95%的成分是思考方式，只有5%的成分是技术。但是，这些机构还很少或没有接受培训以改变开发系统时的思考方式。他们只是采用了面向对象系统开发方法，例如RUP或OPEN，但还坚持使用其传统瀑布型开发方法，即面向过程系统的开发生命周期。这类不改变开发方法的例子包括： 
关注程序设计应用，而不关注构建能够用于搭建很多应用程序的可复用的领域模型。 
开发数以百计的所谓用例替代传统的需求采集，而不是运用迭代过程，先开发和实现3～5个能够用来快速检验所提出的体系结构、系统开发和项目管理方法的用例。 
将用例转换为代码模块，而不是将用例作为候选类的来源，并作为面向对象系统开发方法的输入。 
主要的对象技术项目在进度计划、预算和生产率上会遇到麻烦。他们不是在3～6个月的时间内，利用小型联合开发小组快速迭代开发，而是调集100个甚至更多开发人员花9个月的时间，只是将用户需求整理成文档。在大多数情况下，他们只是摒弃了传统的、在很多情况下口碑并不好的开发方法中的程序设计语言，这只能重蹈主要项目失败的覆辙。 
现在，很多机构认识到曾经一度过热的信息技术经济近几年不断缩水，大批职员跳槽，造成企业知识库规模下降。在很多情况下，用户并不真正理解要使用或要增强的系统。目前的信息技术开发人员和维护人员发现自己甚至都不能理解遗留代码，更不要说维护或增强这些遗留代码了。人们正在把对象技术用作捕捉用例、UML模型和类的共同知识的一种“银弹”。对象技术可以用作一种获取知识的重要方法，但是仅仅改变程序设计语言并不会自动产生这种效果。相反，创建出的还是难以理解、不可维护的老式代码，在很多情况下只
是偶然地创建了面向对象代码。 
实践证明，有关对象技术的大多数专著对于一般的开发人员来说还是难以理解的。但是，还没有开发出一种“傻瓜对象技术”。对象技术要求接受过培训、教育的人能够进行较高层次的抽象。分配去完成新对象技术项目的传统程序员和代码编写人员中，只有20%的人能够成功地迁移到新手段、方法和技术上。即使这部分少数的人，要掌握对象技术也需要6～12个月，而整个机构则需要3～4年才能掌握对象技术。我们肯定需要对象技术，但是这并不是一种现成的、无须付出代价的解决方案。 
机构必须理解，对象技术的核心原则是复用。应该组装领域模型，这些模型借助已得到实践验证的设计模式而生成，能够在项目内部、跨不同项目、最终在整个行业甚至经济体中得到复用。新代码的持续开发肯定会导致项目的不断失败。 
机构必须理解，对象技术不一定适合所有项目。使用Java语言构建批处理记账应用系统，是对象技术的一种完全错误的应用。对于批处理记账应用系统还有其他已得到实践验证的技术可以使用。但是，使用对象技术组装按需记账或流水记账系统是一种非常有意思且可行的方法。同样，所需要的是一种新的思考方式，并不只是新的程序设计语言。 
令人欣慰的是，经理和用户对用例技术很感兴趣。这是因为，只要运用恰当，用例还可以作为培训手册、测试验收标准、帮助屏幕、访问问卷调查、开发人员的候选类来源和用户界面（UI）小组工作计划等的基础。但是，用例手段最重要的优点是，能够支持用户和管理人员100%地参与到系统开发过程中。 
我认为，如果要成功地运用面向对象和基于组件的方法，就需要长达数年的基本培训、教育和指导。这种培训、教育和指导也可以通过合适的方式应用到今天的开发人员、用户和管理人员身上。但是，同样重要的是需要重新思考，并重新规划用于培养未来开发人员、用户和管理人员的大学、学院和技术学校的信息技术课程。 
本书是专为那些寻求策划、控制、组织、指导和协调其信息技术投资的新的高效方法的经理、公司计划人员、高级业务系统分析人员和信息建模人员而编写的。最为关注本书的应该是对象技术系统开发项目的经理。但是，有效运用本书描述的概念，应该会使开发小组的所有成员，包括项目投资方和用户受益，从而更好地理解对象技术方法。本书中的表单、模型和模板可以用作实际信息系统项目的实用实现指南，可以用来增强当前具有有效管理策略和手段的任何面向对象的分析和设计方法论。本书还可以用作大学的教材和培训课程的教材，特别适合在案例研究课程和讨论会上补充实用实现经验。本书还可以作为新对象技术信息系统的公司经理、项目经理、开发人员和用户的强化培训教材。 
使用本书的最佳方式是，首先阅读每一章的执行小结部分。这些部分归纳和列出每一章的关键学习点，然后直接阅读讨论自己最感兴趣或所遇到的问题的章节。 
管理信息系统的实际问题 
在过去的15年里，我曾经为来自25个国家的数以千计的经理、用户、供应商、分析员和程序员做过咨询、授课、指导和演讲。我多次发现，虽然很多人对于了解数据处理的新技术、手段或工具很感兴趣，但是我们需要解决的实际问题是： 
1）对自己机构的实际信息系统缺乏必要的理解。 
2）缺乏开发和维护这些系统所必需的基本管理技能和实践。 
.　　在大多数机构中，在信息技术中的投资都没有得到有效管理。例如，Howard Rubin估计，只有20%的机构知道本公司有多少个计算机程序。Capers Jones估计，不足5%的机构以恰当的方式对其信息技术投资的生产率进行度量。至少有1/3的机构还没有采用正式的系统
开发方法，有2/3的机构从来都没有采用过结构化的方法去分析、设计或编程其信息系统。难怪麻省理工学院的Ernst R. Berndt博士和Tufts大学的Catherine J. Morrison博士发现，美国制造业从1968年到1986年在计算机化方面的投资，每1美元的投入只有不足0.80美元的回报。 
对象工程 
我认为，在采用某种全新方法管理信息技术资源方面，我们已经迟了一步。我发现大多数机构仍然试图获取、存储、传播和提供更多的数据。这种策划、控制、组织、引导和协调信息技术投资新方法的理念来源于教学、咨询、参与标准开发委员会、在国际会议上演讲和主持电子公告板和电子邮件讨论等方面的经验。我把这一套思想叫作“对象工程”。 
对象工程是对象技术范例和企业建模、信息工程以及工作流分析方法的结合。对象工程的目标，就是组装和实现实际成为机构信息系统的动态模拟模型。这些现实世界的模拟模型可以令你深入理解机构及其信息资源。对象工程提供的是一种方法，使人们能够使用这些新的理解，提高机构的规划和控制的生产率，增强管理信息和数据处理系统的沟通功能并提高效率、经济性、有效性。对象工程是一种途径，人们可以通过这个途径进行机构业务过程的再工程。 
从本书可以学到什么 
有效地指导和管理对象技术项目必须具备的知识。 
对象工程是什么。 
怎么知道自己的机构已经能够采用对象技术。 
如何管理对象技术项目。 
怎样构建对象工程并改进企业建模、信息工程和工作流分析。 
如何使用对象工程实现业务过程再工程项目。 
如何开发机构的动态模型。 
如何识别和使用系统模式和模式语言生成并组装模型。 
如何提高信息工程和战略规划投资的回报。 
对象技术的前景如何。 
实现的实用方法 
本书最后给出一个实用管理决策的实现计划，以满足在你自己的机构中实现对象工程的需要。读者需要确定自己的机构是否有足够的技术、经费和文化能够做出决策并支持这些决策，必须确定自己对这种信息技术新方法的反应。我们的挑战是提高过去30年中在信息技术方面的1万亿美元投资的生产率。 
我的动力与目标 
撰写本书的灵感来自另两位作家Frederick Brooks和David Taylor。Frederick Brooks的《人月神话》（The Mythical Man-Month）是信息技术领域的一本真正的经典著作。虽然成书于20年前，但是直到今天，这本书仍然在大学管理信息系统和计算机科学课程中使用。这本书之所以具有这种独一无二的生命力，是因为Brooks能够简明地论述独立于技术的基本项目和变更管理问题。David Taylor的《面向对象技术：管理者指南》（Object-Oriented Technology: A Manager誷 Guide）是目前对象技术领域销售量最大的一本书。该书
之所以如此受欢迎，是因为Taylor能够以管理人员很容易理解的方式，简明地描述面向对象的理念和观点。 
我撰写本书的目标，是向必须理解、参与和管理对象技术项目的人员提供简明参考。要想成功地引入和管理新技术，就要了解项目所涉及人员的希望、担忧和动力。我们用来实现对象技术的工具、手段、表示法和方法，都取决于我们对人们理解和接受新方法的能力和态度的认识。 
戏剧脚本方法 
本书每一章的开头都会引用威廉·莎士比亚话剧中的一段话。请读一下这些有400年历史的话剧台词和诗歌，从中仍然能感受到剧中人物的喜怒哀乐。选择莎士比亚的作品，是为了突出本书的基本主题。与剧作家试图在舞台上捕获人物和事件的动态和基本模型一样，对象工程也试图创建这种模型。就像演员可以出现在不同场景中，或像不同演员可以在不同时间扮演同一个角色一样，构成机构及其产品和服务的对象行为，也可以在不同的环境下、通过不同的视点观察和解释。 
因特网连接 
本书还讨论了技术问题。一旦我们理解了对象技术和重要项目管理问题的哲学基础，就应该能够选择成功实现对象技术项目的合适方法、手段和工具。但是我编写这部分技术材料所面临的困难是，本书所列出和描述的工具和手段很快就要过时。对象技术是一个动态领域，只能靠动态媒体支持。对象技术领域几乎每天都发生变化，不断出现新方法、手段、语言、对象管理系统和CASE工具。有关对象技术的大多数专著、文章和技术方面的介绍到它们出版时已经过时，至少已经相当落后。本书设立网站的目的是： 
更新本书所包含的随时间变化的信息。 
使读者可以与作者沟通。 
使读者能够链接到其他对象技术资源。在理想情况下，我们会根据读者的提议增加其他新网站链接。 
这个网站包含一些使读者能够掌握对象技术、业务过程再工程和项目管理的最新发展动态的链接。浏览这些网站，可获取对方法论、手段、定义、产品、研讨会、咨询和培训服务以及其他书籍的最新论述。 
致谢 
我要感谢帮助我形成本书创作思路并整理材料的很多学生。我还要感谢很多付出大量宝贵时间与我一起讨论的对象技术方法论的学者和顾问。我要特别感谢ANSI任命的“X3数据库系统研究小组”和“X3H7对象信息管理系统标准委员会”的所有同事所提供的很多独到
见解。 
Richard T. Du