本书介绍了基于组件开发的关键概念,要采用基于组件的软件开发模型,就需要理解这些概念。本书也解释了组织采用这种方式所带来的好处。它引导读者走过一个项目规划过程,列举了设计和组装组件时必须知道的一些事项。\r\n\r\n本书共四个部分,第一部分是基于组件开发的概述;第二部分提出一种项目规划的方法,可以极大地提高基于组件开发的有效性;第三部分介绍了组件构建与组装;第四部分是CBD案例研究。\r\n\r\n本书适合于软件项目经理、设计人员和开发人员阅读参考。\r\n
\r\n
第一部分 基于组件开发概述 1 \r\n\r\n 第1章 基于组件开发:尝试管理混沌 3 \r\n\r\n 1.1 软件开发的问题 3 \r\n\r\n 1.1.1 软件难以维护 3 \r\n\r\n 1.1.2 应用集成的需要 4 \r\n\r\n 1.1.3 表示方式的改变 7 \r\n\r\n 1.1.4 技术的变化 7 \r\n\r\n 1.1.5 重复不必要的工作 7 \r\n\r\n 1.2 改进软件开发方面的进展 8 \r\n\r\n 1.2.1 提高产能的工具 8 \r\n\r\n 1.2.2 复用 11 \r\n\r\n 1.2.3 灵活性 13 \r\n\r\n 1.2.4 企业范围的信息模型 13 \r\n\r\n 1.3 基于组件开发的承诺 14 \r\n\r\n 1.4 基于组件开发的可行性 15 \r\n\r\n 第2章 什么是组件 17 \r\n\r\n 2.1 定义组件 17 \r\n\r\n 2.1.1 组件是预先构建的 17 \r\n\r\n 2.1.2 组件是黑盒, 只能通过其接口访问 19 \r\n\r\n 2.1.3 组件是可分离的 19 \r\n\r\n 2.1.4 组件组装和部署 19 \r\n\r\n 2.1.5 组件上下文环境 20 \r\n\r\n 2.1.6 支持技术 20 \r\n\r\n 2.1.7 组件的定义 20 \r\n\r\n 2.2 组件粒度 20 \r\n\r\n 2.3 组件环境 22 \r\n\r\n 2.3.1 互操作性 22 \r\n\r\n 2.3.2 不同技术之间的互操作性 22 \r\n\r\n 2.3.3 组件模型 23 \r\n\r\n 2.3.4 包装现有的应用 24 \r\n\r\n 2.3.5 平台无关性 25 \r\n\r\n 2.3.6 服务提供 25 \r\n\r\n 2.4 组件和它们在整体中的位置 26 \r\n\r\n 2.5 部署组件 27 \r\n\r\n 2.5.1 定制和配置 27 \r\n\r\n 2.5.2 组装:把组件粘在一起 27 \r\n\r\n 2.5.3 处理改动 29 \r\n\r\n 2.6 组件模型 30 \r\n\r\n 2.6.1 COM和MTS 31 \r\n\r\n 2.6.2 CORBA 31 \r\n\r\n 2.6.3 Enterprise JavaBeans和JavaBeans 32 \r\n\r\n 2.7 组件规范 33 \r\n\r\n 第3章 从整体观点来看组件 35 \r\n\r\n 3.1 与基于模型开发的关系 36 \r\n\r\n 3.2 需求规格和设计复用 37 \r\n\r\n 3.3 与面向对象技术的关系 38 \r\n\r\n 3.4 软件基础设施和开发自动化 39 \r\n\r\n 3.5 区分不同类型组织的需求 39 \r\n\r\n 3.6 基于组件开发不适用之处 40 \r\n\r\n 3.7 基于组件开发的局限性 41 \r\n\r\n 第二部分 规划过程 43 \r\n\r\n 第4章 在组织中定位组件 45 \r\n\r\n 4.1 基于组件开发初始阶段的范围和负责人 45 \r\n\r\n 4.2 跨越组织部门协调软件 46 \r\n\r\n 4.2.1 使软件结构与组织相符 47 \r\n\r\n 4.2.2 变更管理 47 \r\n\r\n 4.2.3 使用公共的软件解决方案与复用组件 48 \r\n\r\n 4.3 内部市场模型 48 \r\n\r\n 4.3.1 为何与内部市场有关 49 \r\n\r\n 4.3.2 内部市场模型要关注的问题 50 \r\n\r\n 第5章 软件架构和基础设施 53 \r\n\r\n 5.1 架构考虑的两个方面 53 \r\n\r\n 5.1.1 技术架构 54 \r\n\r\n 5.1.2 应用架构 55 \r\n\r\n 5.2 技术环境问题 56 \r\n\r\n 5.2.1 可以互操作的组件的图景 57 \r\n\r\n 5.2.2 实际中的组件互操作 61 \r\n\r\n 5.3 软件基础设施问题 63 \r\n\r\n 5.4 应用架构问题 65 \r\n\r\n 5.4.1 可分离性与架构领域的定义 65 \r\n\r\n 5.4.2 不同领域的组件之间的交互 67 \r\n\r\n 5.4.3 分层的可选项 67 \r\n\r\n 5.4.4 使用事件来控制点到点的通信 68 \r\n\r\n 5.4.5 在实践中使用分层 70 \r\n\r\n 第6章 定义组件 71 \r\n\r\n 6.1 分层的架构 71 \r\n\r\n 6.1.1 业务逻辑层 72 \r\n\r\n 6.1.2 表示层 73 \r\n\r\n 6.1.3 数据访问层 74 \r\n\r\n 6.1.4 分层与工作流 74 \r\n\r\n 6.1.5 事务边界 77 \r\n\r\n 6.1.6 分布问题 77 \r\n\r\n 6.1.7 分层架构和J2EE 78 \r\n\r\n 6.2 组件类型 80 \r\n\r\n 6.2.1 业务组件 80 \r\n\r\n 6.2.2 应用组件 83 \r\n\r\n 6.2.3 数据访问组件 84 \r\n\r\n 6.2.4 工具组件 84 \r\n\r\n 6.3 包装与适配器 84 \r\n\r\n 6.3.1 包装 84 \r\n\r\n 6.3.2 适配器 86 \r\n\r\n 6.4 定义组件范围 87 \r\n\r\n 6.4.1 业务组件 87 \r\n\r\n 6.4.2 应用组件 92 \r\n\r\n 6.4.3 数据访问组件 94 \r\n\r\n 6.5 组件规格说明 94 \r\n\r\n 6.5.1 组件接口基础 95 \r\n\r\n 6.5.2 客户组件与组件组装 95 \r\n\r\n 6.5.3 组件规格说明 96 \r\n\r\n 6.5.4 定义服务 96 \r\n\r\n 第7章 实践基于组件开发 99 \r\n\r\n 7.1 定义基于组件开发初始阶段的范围和预期的好处 100 \r\n\r\n 7.1.1 采用基于组件方式的关键驱动力 100 \r\n\r\n 7.1.2 不要采用基于组件开发的情况 101 \r\n\r\n 7.1.3 采用组件的初始阶段的范围 101 \r\n\r\n 7.2 定义组件蓝图 101 \r\n\r\n 7.2.1 确定业务过程 102 \r\n\r\n 7.2.2 创建一个业务对象模型 102 \r\n\r\n 7.2.3 形成一个组件蓝图 103 \r\n\r\n 7.3 审查当前系统 107 \r\n\r\n 7.3.1 创建当前系统的详细目录 107 \r\n\r\n 7.3.2 评估组件化的恰当性 108 \r\n\r\n 7.4 建立一个架构框架 109 \r\n\r\n 7.4.1 技术环境 109 \r\n\r\n 7.4.2 软件基础设施和开发标准 111 \r\n\r\n 7.4.3 组件模型 112 \r\n\r\n 7.5 组织结构上的考虑 112 \r\n\r\n 7.6 项目规划 113 \r\n\r\n 第8章 项目规划的实用研究 115 \r\n\r\n 8.1 应用集成和更新 115 \r\n\r\n 8.1.1 为什么还要保留遗留应用 115 \r\n\r\n 8.1.2 如何管理遗留应用 116 \r\n\r\n 8.2 集成软件包 119 \r\n\r\n 8.3 外包 120 \r\n\r\n 第9章 基于组件开发的组织 121 \r\n\r\n 9.1 组织基于组件开发 121 \r\n\r\n 9.1.1 优点示范中心 121 \r\n\r\n 9.1.2 将组件开发与组装分离 122 \r\n\r\n 9.1.3 基于应用项目的组件开发 123 \r\n\r\n 9.1.4 技术架构和基础设施 124 \r\n\r\n 9.2 组织规划 124 \r\n\r\n 9.3 组织组件获取和组装 125 \r\n\r\n 第三部分 组件构建与组装 127 \r\n\r\n 第10章 获取组件 129 \r\n\r\n 10.1 筛选候选组件 130 \r\n\r\n 10.1.1 寻找组件 130 \r\n\r\n 10.1.2 初选候选组件 130 \r\n\r\n 10.1.3 正式评估 130 \r\n\r\n 10.1.4 拜访参考顾客 132 \r\n\r\n 10.1.5 选择一个候选对象 132 \r\n\r\n 10.2 评估符合程度并确定改动之处 133 \r\n\r\n 10.2.1 评估符合程度 133 \r\n\r\n 10.2.2 确定改动之处 135 \r\n\r\n 10.3 获取组件 136 \r\n\r\n 第11章 设计组件 139 \r\n\r\n 11.1 为复用而设计 140 \r\n\r\n 11.1.1 为复用而通用化 141 \r\n\r\n 11.1.2 影响复用的设计原则 142 \r\n\r\n 11.2 创建定制点 143 \r\n\r\n 11.2.1 委托 143 \r\n\r\n 11.2.2 参数化/扩展点 144 \r\n\r\n 11.2.3 继承 144 \r\n\r\n 11.3 处理更改 144 \r\n\r\n 11.4 包装已有的软件 145 \r\n\r\n 第12章 组装组件 147 \r\n\r\n 12.1 定制组件 148 \r\n\r\n 12.2 与可复用的组件接口 148 \r\n\r\n 12.3 强制实现组件限制条件 149 \r\n\r\n 12.3.1 不同的期望 149 \r\n\r\n 12.3.2 非直接依赖关系 150 \r\n\r\n 12.3.3 处理影响其他组件的事件 151 \r\n\r\n 12.4 处理功能和数据的不匹配 151 \r\n\r\n 12.4.1 冗余 152 \r\n\r\n 12.4.2 处理数据不匹配 152 \r\n\r\n 12.4.3 组件与数据库间的映射 153 \r\n\r\n 12.4.4 冗余数据 154 \r\n\r\n 12.4.5 重复的记录 155 \r\n\r\n 12.4.6 数据分布 155 \r\n\r\n 12.5 管理组件间的关系 156 \r\n\r\n 12.5.1 跨组件边界维护的关系的类型 156 \r\n\r\n 12.5.2 关系的表示 159 \r\n\r\n 12.5.3 标识有关系的对象 162 \r\n\r\n 12.5.4 管理有关系的对象的删除 163 \r\n\r\n 12.5.5 双向导航 164 \r\n\r\n 12.6 管理跨越组件边界的事务 165 \r\n\r\n 12.6.1 控制的位置 166 \r\n\r\n 12.6.2 对关键事务的设计方法 166 \r\n\r\n 第13章 测试. 认证并维护一个组件目录 169 \r\n\r\n 13.1 创建回归测试包 169 \r\n\r\n 13.2 组件认证 170 \r\n\r\n 13.3 维护一个组件目录 170 \r\n\r\n 13.3.1 组件目录的位置 171 \r\n\r\n 13.3.2 组件目录条目 171 \r\n\r\n 13.3.3 组件检索 171 \r\n\r\n 13.3.4 组件度量标准 172 \r\n\r\n 第四部分 案例研究 173 \r\n\r\n 第14章 使用组件管理混沌 175 \r\n\r\n 14.1 公司 175 \r\n\r\n 14.2 挑战 175 \r\n\r\n 14.3 为变更而组织 176 \r\n\r\n 14.4 建模的挑战 177 \r\n\r\n 14.5 第二次浪潮 177 \r\n\r\n 14.6 组件浪潮 178 \r\n\r\n 14.7 组件蓝图 179 \r\n\r\n 14.8 技术挑战 179 \r\n\r\n 14.9 管理软件变化 180 \r\n\r\n 14.10 结论 180 \r\n\r\n 词汇表 181 \r\n\r\n 参考文献 189 \r\n\r\n 索引 191 \r\n
\r\n
在知识经济时代, IT技术的每一次创新和发展总是带动着生产力巨大的进步和提高, 也吸引着大量的优秀人才不断投身技术革命. 作为IT行业从业者, 不管你是经理人还是普通的工程技术人员, 都需要敏锐的技术嗅觉. 灵活的创新精神和旺盛的学习能力, 以适应不断变化发展的技术趋势.
软件产业在IT产业中历来占有重要的地位, 进入21世纪, 这种地位继续得到巩固和凸现. 纵观软件产业的发展历史, 计算技术经历了“以机器为中心—以应用为中心—以企业为中心”的变化, 同时, 我们不难得出这样的结论:软件开发方法的进步有助于维持软件产品质量. 全寿命期. 生产成本的平衡.
以企业为中心的计算主要包括以下方面:
* 基于组件开发(component-based development)—将制造业中发展成熟的概念应用到软件开发中去.
* 设计模式(design patterns)—这也和制造业过程有共同之处.
* 中间件(middleware)—它在操作系统之上又迈出了提升计算平台抽象层次的一步.
* 说明性规约(declarative specification)—相对简单的说明取代了相对复杂的程序代码.
* 企业构架(enterprise architecture)—通过分离关注点来组织企业软件.
* 企业应用集成(enterprise application integration)—将孤立的遗产系统集成进企业系统的整体.
* 契约式设计(design by contract)—它有助于推动高质量的软件工程.
作为将这一系列新的趋势性技术整合到一起的开发方法, Model Driven Architecture(MDA)的出现, 为提高软件开发效率, 增强软件的可移植性. 协同工作能力和可维护性, 以及文档编制的便利性指明了解决之道. 也正因为如此, MDA被面向对象技术专家预言为未来两年里最重要的方法学.
面对这一系列新的技术名词, 你是否感到有些无所适从?或者你只是听说过, 也许你对它们还略知一二, 但相信大多数读者还没有系统地学习过相关的理论知识. 没关系, 只要具备前面提到的IT从业人员的优秀素质, 你肯定会对这些技术话题产生浓厚的兴趣, 那么, 你最需要的就是比较系统的技术书籍.
“IT Trend”系列图书是人民邮电出版社从Addison Wesley和John Wiley两大知名的国外专业出版公司引进. 精心策划和出版的一套高技术定位. 高制作品质的系列图书. 图书内容定位覆盖了我们前边提到的那些IT趋势性技术, 而且原书几乎都是全世界范围内第一本论述相关技术的专著.
这套图书的首批出版计划包括:
《IT体系结构与中间件—建设大型集成系统的策略》(IT Architectures and Middleware: Strategies for Building Large, Integrated Systems)
《应用MDA》(Model Driven Architecture:Applying MDA to Enterprise Computing)
《解析MDA》(MDA Explained:The Practice and Promise of The Model Driven Architecture )
《Design by Contract原则与实践》(Design by Contract by Example)
《基于组件开发》(Component-based Development:Principles and Planning for Business Systems)
我们希望这套新技术图书能够为广大读者打开一扇窗口. 提供一个机会, 以了解那些正在和将要对IT产业发展产生重大影响的技术趋势, 帮助你准确展望和把握行业的技术前景. 我们期待“IT Trend”系列图书“一步领先”的精彩, 能够带给你“步步领先”的收获.