本书特色:
■详细介绍了OMG的战略性开发方法学——MDA。
■阐述了UML和MDA的关系,并介绍了MOF、XMI和CWM等与MDA相关的技术。
■分析MDA如何运用基于UML的技术,将基于组件开发、设计模式、中间件等一系列重要的趋势性技术整合到企业级计算中。
MDA是OMG在2002年初确定的战略方向,将会成为对未来IT技术产生重大影响的开发方法学。 本书深入描述了MDA的概念、关键技术和所有特性,包括MDA基础知识、MDA在企业计算中的地位和作用、UML和MDA的关系、与MDA相关的MOF和XMI、建模语言和建模方法、CWM建模变换,以及涉及到代码生成的话题。
本书适合软件架构工程师和面向对象软件工程师阅读,也可作为IT从业人员和软件工程研究者了解MDA的读物。
第一部分 MDA导论
第1章 压力与进步: 我们如何来到这里
1.1 软件产业面临的挑战
1.2 可行性变量
1.3 以机器为中心的计算
1.4 以应用为中心的计算
1.5 以企业为中心的计算
1.6 以企业为中心的计算所受的压力
1.7 小结
第2章 模型驱动的企业计算
2.1 将模型中心的思想引入中间层、EAI和B2Bi
2.2 语法抽象和语义抽象
2.3 B2Bi和MDA
2.4 选择抽象层次的灵活性
2.5 EAI和MDA
2.6 说明性规约的限制
2.7 元数据集成
2.8 MDA和基于组件开发
2.9 自动模式复制
2.10 抬高水线
2.11 模型驱动的企业构架
2.12 标准化的基于MDA的建模语言
2.13 多层间的同步
2.14 中间件和抽象沟壑
2.15 再议契约式设计
2.16 MDA和其他新型开发方法
2.17 小结
第二部分 MDA基础技术
第3章 UML在MDA中的角色
3.1 起源与发展
3.2 优点
3.3 缺点
3.4 未来的方向
3.5 及时建议
3.6 小结
第4章 基本类建模之外
4.1 契约式设计
4.2 行为建模
4.3 及时建议
4.4 小结
第5章 元对象设施
5.1 MDA的关键基础
5.2 基本假定
5.3 借自UML
5.4 MOF并不仅用于OO
5.5 抽象语法树
5.6 元层次
5.7 模型驱动的元数据管理
5.8 好处是什么
5.9 元数据管理方案
5.10 通用MOF代码
5.11 MOF并非基于CORBA
5.12 近看XMI
5.13 近看JMI
5.14 再看MOF自描述
5.15 其他应用
5.16 弱点
5.17 未来的方向
5.18 计算机业界的MOF
5.19 及时建议
5.20 小结
第6章 扩展和建立建模语言
6.1 通过profile扩展UML
6.2 构造型
6.3 通过MOF扩展UML
6.4 创建新的建模语言
6.5 UML工具和MDA工具
6.6 UML建模和MOF元建模
6.7 及时建议
6.8 小结
第7章 创建可编译的类模型
7.1 指导原则的范围
7.2 指导原则的目的
7.3 不要为属性定义访问和改写操作
7.4 明智地使用关联端可溯性
7.5 规定多值属性时要小心
7.6 正确地使用聚合
7.7 使用抽象类
7.8 区分感兴趣和不感兴趣的操作
7.9 为计算完整性而努力
7.10 对M1层模型的特殊关注
7.11 及时建议
7.12 小结
第8章 在不同抽象层次上建模
8.1 基本模型分类法
8.2 MDA角色
8.3 例子介绍
8.4 业务模型
8.5 需求模型
8.6 独立于平台的模型
8.7 平台相关模型(PSM)
8.8 参数化PIM-PSM映射
8.9 参数化PSM-代码映射
8.10 只读PSM的好处
8.11 PIM类型问题
8.12 多元参数化
8.13 语言定义策略
8.14 组件描述信息
8.15 同步模型和代码
8.16 物理模型和部署自动化
8.17 及时建议
8.18 小结
第三部分 高级话题
第9章 CWM建模变换
9.1 不仅是数据库元模型
9.2 实现策略
9.3 内部工作
9.4 作为源和目标的UML模型
9.5 元模型间的映射
9.6 MOF映射
9.7 完整的画面
9.8 局限性
9.9 及时建议
9.10 小结
第10章 其他高级话题
10.1 生成的代码: 说明性和指令性
10.2 全新和遗产
10.3 再看元数据管理
10.4 生成桥接器
10.5 可执行模型和虚拟机
10.6 再议提升平台抽象层次
10.7 MDA和系统工程
10.8 及时建议
10.9 小结
结语 现实检测
附录A 示例交易元模型
附录B 期权交易概念
参考资料
术语表
索引
计算机业界永远都在探索提高软件开发效率的方法, 当然这一方法对于所开发出来的软件能够提高质量和延长生存期. 面向对象. 基于组件开发. 模式. 分布式计算基础构架等新方法都为这一探索贡献了自己的力量.
模型驱动构架(Model Driven Architecture, MDA)同样会做出重大的贡献. MDA无意独领风骚而使得其他方法黯然失色, 相反, 它同其他方法相辅相成, 可以起到"功率放大器"的作用, 从而进一步改进我们开发软件的方式.
什么是模型驱动构架(MDA)
MDA就是把建模语言当编程语言来用, 而不只是当作设计语言来用. 用建模语言编程可以提高生产率, 改善质量, 并使软件产品生存期更长. 本书解释了为什么MDA会有这些优点, 并介绍了支撑MDA的技术.
谁在使用MDA
人们用MDA来生成实时及嵌入式系统已经有年头了, 虽然MDA这一术语是晚些时候才被创造出来的. 现在IBM. Oracle. Unisys. IONA以及其他开发商都在把基于MDA的技术融入到它们自己的企业级软件解决方案中去.
长期的过渡
在分布式对象计算的早期, CORBA的创始人之一Mike Guttman, 曾被邀请在一个业界聚会上作演讲, 将他对"技术的未来趋势"的远见同众人分享. 他用幻灯片作了演示, 告诉大家, 将来会有那么一天, 分布式对象基础构架和在这个基础构架上运行的组件库会成为主流.
听众中有人问他认为在什么时候这一切会发生, 得到的回答是, 他觉得这至少要过10到15年. 他紧接着补充说, 哪怕在过渡的早期阶段, 也能从中获得重大商业收益, 但看来主办者们对此并不感冒, 事实上他们还有些懊恼. 他们的评论是, Mike在暗示没有人应当为10年后才会带来收益的技术投资.
我把这本关于MDA的书展示给大家, 也冒了类似的风险. 毫无疑问, 现在MDA的原则可以很好地投入实践了. 我们已经有了一些基于MDA的特定技术, 在我写这本书的时候还有一些技术正在浮现. 使用模型将软件开发的某些方面自动化的工具至少形成了价值5亿美元的产业. 不过, 我依然要强调, MDA是一个尚处于萌芽阶段的技术, 要使之发挥全部潜能, 我们至少还需要经过几年的努力.
MDA和对象管理组织(OMG)
在2002年初, OMG宣告模型驱动构架(MDA)是它的战略方向. OMG尚处于定义这一进程的起步阶段, 而我本人深深卷入了这一努力之中. 我希望本书对这一起步阶段能起到一点指导作用, 但我不保证我的想法同OMG完全一致.
作为几种建模语言标准的"大管家", OMG处于支持这一新产业发展的关键地位. 但是其他标准团体, 比如JCPl. ebXML以及RosettaNet, 都在以各种技术在不同的应用领域制定应用MDA原则的规范. 随着产业界逐渐积累更多经验, 标准团体还会发布其他的基于MDA的标准. 本书为这些标准的发展提出了一些方向性的建议. 本书还指出了已经标准化的建模语言的一些缺陷. 为了完全实现MDA的设计方案, 必须改正这些缺陷.
本书的目的
虽然MDA在实时和嵌入式系统的世界中取得了许多成功, 但直到最近, 很少有人全面地将其应用于开发和整合客户. 收款账号. 供应链. 业务集成等事务管理的业务系统.
本书主要关心企业系统环境中的MDA. 我希望让企业系统的构建者们理解MDA目前的成就, 以及MDA所提供的改进软件开发的潜能. 我还希望帮助工具(未完待续)