本书以独特的视角讨论了软件开发中的一项革命性技术,即使得模型规约可以被完全、高效地转换成为代码的技术。读者将学会如何使用影响广泛的软件建模语言UML,基于OMG的模型驱动的体系结构来建立强壮的软件规约。作者还描述了把可执行UML(xUML)模型转换成任意的平台相关实现时所需要的步骤。这个方法的好处不仅能减少或者消除编码阶段,它还保证了平台无关性,使模型免于过时(程序设计语言可能改变,但是模型不会),并且,允许通过在一个支持测试-排错的xUML环境中执行模型而对模型进行完全的验证。本书的作者们都是书中描述的技术和过程的富有经验的实践者。他们曾经在各种行业中参与了这些实践,这些行业包括国防、航天、汽车、电信、政府、医疗保健、保险、过程控制等。他们见证了面向对象、可执行建模和模型驱动的体系结构的各种各样的能力。他们曾经和客户一起把可执行建模和代码生成技术应用到各种系统中去。从多年的第一手经验中他们认识到,可执行建模和代码生成非常有用。他们也了解如何充分使用这些技术,以及需要注意的问题。本书正是用这些实践经验描绘了技术细节。对于那些正在思考大中型项目软件开发技术未来发展方向的人,本书是一个非常好的参考。 第1章引论11.1为什么需要读这本书11.2从本书将会学到什么11.3我们为什么写关于MDA和UML的书31.4什么是模型驱动体系结构51.5OMG简介71.6软件方法的历史,通往MDA之路71.7什么是可执行UML(xUML)101.8本书结构131.9怎样阅读本书15第2章可执行模型驱动体系结构172.1概述172.2MDA背景—软件工程和过程172.3模型驱动体系结构192.4可执行UML222.5过程改进的需要222.6使用可执行模型的MDA方法的原则232.7模型映射352.8MDA过程总结362.9详述域372.10集成PIM382.11建立PIM392.12验证PIM422.13详述系统构建过程432.14结论44第3章MDA在典型项目中的应用453.1概述453.2初始阶段463.3营造阶段503.4构建阶段663.5移交阶段673.6需求变更的影响683.7变更对设计决策的影响683.8MDA和其他生命周期过程68第4章用例建模704.1用例介绍704.2目标704.3识别参与者和用例704.4用例图714.5建立用例文档724.6管理大的或者复杂的用例模型744.7用例建模的有效使用804.8具体和抽象用例804.9用例层次804.10详述性能814.11获取其他类型的需求824.12结论83第5章使用域进行平台无关建模845.1概述845.2系统分解的可选策略845.3域图875.4域的类型885.5组织域图915.6寻找域的技术925.7MDA过程:总结975.8如何进行坏域的分解995.9结论100第6章对域中的类建模1016.1概述1016.2类图概览1016.3类图的生命周期1026.4类1036.5属性1046.6类的图形表示1056.7类的表格表示1056.8马铃薯图1066.9关联1066.10对象标识1216.11指引属性1226.12冗余属性1236.13规范化1236.14静态和动态类1256.15改善模型效率1256.16属性可见性1256.17对象闪电战1266.18不成熟划分的危险1316.19结论132第7章类的行为和交互1337.1状态无关行为和状态相关行为1337.2操作与状态1347.3对象和类的交互1367.4类协作模型上的域接口1397.5动态建模过程1417.6获取和表达状态相关行为和状态无关行为145第8章操作建模1468.1操作1468.2类操作和对象操作1478.3域操作1498.4桥操作1508.5操作属于哪里1508.6多态操作1508.7操作的域外部可见性1518.8总结152第9章动态建模1539.1概述1539.2定义1539.3状态图1549.4状态转换表1599.5非存在状态1629.6执行语义1629.7控制状态机的复杂度1679.8如何建立不良状态机1699.9UML中其他形式的状态建模1709.10结论170第10章动作规约17110.1我们在什么地方17110.2动作规约语言ASL17110.3ASL的关键特征17410.4一个ASL例子17810.5ASL和平台无关性17810.6为UML而设计的动作语言的使用以及好处18210.7动作语言的更多好处19410.8好的ASL实践指南19710.9其他动作语言19910.10如何建立坏模型19910.11结论200第11章用于建模的模式20111.1概述20111.2规格模式20311.3特性值模式20411.4关联时间帧模式20611.5多值关联模式20811.6兼容性模式21011.7多重分类21411.8动态分类21611.9排序项21811.10资源请求者模式21911.11分配者模式22111.12层次结构模式22211.13实例删除模式22311.14实例创建模式22511.15无序操作22511.16日志模式22811.17设备控制模式23111.18反模式23211.19结论235第12章域的集成23612.1域的接口23612.2契约类型23612.3所需服务23812.4可用服务24012.5简单桥24112.6高级桥24912.7怎样管理域集成—构建集25912.8结论261第13章系统生成26313.1概述26313.2系统实现的传统方法26313.3转换驱动开发26713.4设计流程27213.5对实例化的xUML2模型的转换—设计27413.6代码生成器的生成28313.7测试体系结构28313.8使体系结构多样化—标记28513.9体系结构优化28713.10设计模型的角色28913.11转换方法的开发生命周期29013.12定义体系结构—工具支持29213.13结论292第14章实例研究29414.1概述29414.2系统需求概要29414.3用例29514.4系统中的域29614.5模型的特性30014.6构建集30314.7察看实例的模型30414.8执行实例模型304光盘安装向导307术语表308缩写表311索引313