《模型驱动软件开发:技术、工程与管理》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)斯多(Stahl,T.),(美)沃尔特(Volter,M.)等著,杨华,高猛译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302189145
  • 页数:381 页
图书介绍:本书主要介绍模型驱动软件开发方面的内容。目的是为了使开发人员了解到MDSD(模型驱动软件开发)是一种实用的方法,而且在许多情况下都要优于传统开发方法。

第Ⅰ部分 导论 3

第1章 绪论 3

1.1本书的主题 3

1.2目标读者 4

1.2.1软件体系结构 5

1.2.2软件程序员 5

1.2.3经理和项目主管 5

1.3本书的目标 5

1.4本书的范围 6

1.5本书的结构及读者指南 6

1.6关于作者 7

1.7关于封面 8

1.8致谢 8

第2章 MDSD的基本思想和术语 11

2.1挑战 11

2.1.1历史回顾 12

2.1.2现状 12

2.2 MDSD目标 13

2.3 MDSD方法 14

2.4基本术语 15

2.5以体系结构为中心的MDSD 20

2.5.1动机 21

2.5.2生成软件体系结构 21

2.5.3以体系结构为中心的设计 23

2.5.4开发过程 25

2.5.5以体系结构为中心的MDSD属性 26

第3章 一个典型的Web应用案例分析 29

3.1应用程序开发 29

3.1.1应用程序实例 30

3.1.2 MDSD工具 32

3.1.3例1:模型的简单变化 32

3.1.4例2:模型的变化和保护区 35

3.1.5例3:使用动态模型 37

3.1.6开发和体系结构之间的相互作用 39

3.1.7中间结果 39

3.2体系结构开发 39

3.2.1 UML配置文件 40

3.2.2变换 41

3.2.3 MDSD生成器的运行模式 46

3.2.4引导程序 47

3.2.5调整生成软件体系结构 47

3.2.6基架代码的边界 51

3.2.7结构化元程序 52

3.3结论和展望 52

第4章 概念形成 53

4.1 MDSD通用概念和术语 53

4.1.1建模 53

4.1.2平台 57

4.1.3变换 58

4.1.4软件系统族 59

4.2模型驱动体系结构 60

4.3以体系结构为中心的MDSD 61

4.4生成编程 62

4.5软件工厂 64

4.5.1软件工厂大纲 64

4.5.2软件工厂模板 65

4.5.3 DSL的作用以及它与MDSD的关系 65

4.6模型集成计算 66

4.7面向语言编程 66

4.8特定域建模 67

第5章 分类 69

5.1比较MDSD与CASE、4GL和向导 69

5.2比较MDSD与双向工程 70

5.3 MDSD和模式 71

5.3.1模式和变换 71

5.3.2模式和配置文件 72

5.3.3作为一种DSL源的模式语言 72

5.4 MDSD和域驱动设计 72

5.5 MDSD、数据驱动开发和解释程序 73

5.6 MDSD和敏捷软件开发 73

5.6.1敏捷宣言和MDSD 74

5.6.2敏捷技术 75

第Ⅱ部分 域体系结构 79

第6章 元建模 79

6.1元模型的定义 79

6.2比较元层和抽象层 82

6.3 MOF和UML 82

6.4扩展UML 83

6.4.1基于元模型扩展 83

6.4.2用UML 1.x的类别模板扩展 85

6.4.3用UML 2.0的配置文件扩展 86

6.5 UML配置文件 86

6.6元建模和OCL 89

6.7元建模:例1 90

6.8元建模:例2 92

6.9工具支持的模型验证 94

6.10元建模和行为 98

6.11一个更加复杂的例子 100

6.11.1基础 100

6.11.2值类型 101

6.11.3物理量 103

6.12元建模中的缺陷 105

6.12.1接口 105

6.12.2依赖性 106

6.12.3 ID 106

6.12.4基本键 107

6.12.5元层和Instanceof 108

第7章 可以使用MDSD的目标体系结构 111

7.1在MDSD背景下的软件体系结构 111

7.2什么是合理的体系结构 112

7.3如何获得一个合理的体系结构 113

7.4软件体系结构的基本构件 114

7.4.1架构 114

7.4.2中间件 115

7.4.3组件 115

7.5体系结构的参考模型 116

7.6衡量MDSD平台 117

7.6.1例子 118

7.6.2架构集成 119

7.7体系结构一致性 119

7.8 MDSD和CBD 121

7.8.1 3个方面 121

7.8.2方面之间的依赖关系 124

7.8.3侧重面模型 124

7.8.4变型形式 125

7.8.5组件实现 127

7.9 SOA、BPM和MDSD 128

7.9.1 SOA 128

7.9.2 BPM 130

7.9.3 SOA和BPM 131

第8章 构建域体系结构 133

8.1 DSL构造 133

8.1.1选择一种合适的DSL 133

8.1.2配置和构造——变型形式 134

8.1.3建模行为 137

8.1.4具体语法问题 138

8.1.5元模型的连续式验证 138

8.2一般变换的体系结构 139

8.2.1应该生成目标体系结构的哪个部分 139

8.2.2相信再生 139

8.2.3开发模型 140

8.2.4生成漂亮的代码——只要可能 141

8.2.5模型驱动集成 142

8.2.6分离生成的和非生成的代码 142

8.2.7模块变换 143

8.2.8层叠的模型驱动开发 146

8.3建立变换的技术方面 148

8.3.1生成的代码和手工实现部分的显式集成 148

8.3.2虚拟代码 152

8.3.3技术子域 154

8.3.4代理元素 155

8.3.5外部模型标记 156

8.3.6方面定位和MDSD 156

8.3.7描述性元对象 157

8.3.8生成的反射层 159

8.4解释程序的使用 160

8.4.1解释程序 161

8.4.2再次访问MDSD术语 162

8.4.3解释程序的非功能性属性 163

8.4.4在一个系统中集成解释程序 164

8.4.5解释程序和测试 165

第9章 代码生成技术 167

9.1代码生成——选择它的原因 167

9.1.1性能 167

9.1.2代码规模 167

9.1.3可分析性 168

9.1.4早期错误检测 168

9.1.5平台兼容性 168

9.1.6(编程)语言的限制 168

9.1.7模块单元 168

9.1.8自我测量 168

9.2分类 168

9.2.1元编程 169

9.2.2程序和元程序的分离/混合 169

9.2.3生成的和非生成的代码的隐式或显式集成 170

9.2.4关系 170

9.2.5程序和元程序混合的例子 170

9.3生成技术 171

9.3.1模板和滤波 172

9.3.2模板和元模型 174

9.3.3框架处理器 174

9.3.4基于API的生成器 176

9.3.5内联的生成 179

9.3.6代码品质 180

9.3.7代码交织 181

9.3.8组合不同的技术 183

9.3.9不同方法间的共同点和不同点 183

9.3.10其他系统 185

第10章 使用QVT进行模型转换 187

10.1历史 187

10.2 M2M语言需求 188

10.3整体的体系结构 190

10.4转换示例 192

10.4.1 QVT Relations语言中的示例 195

10.4.2 QVT Operational Mappings语言中的示例 199

10.5 OMG标准化过程和工具可用性 202

10.6评估 203

第11章 MDSD工具:角色、体系结构、选择标准和指南 205

11.1工具在开发过程中的角色 205

11.1.1建模 206

11.1.2模型验证和代码生成 206

11.1.3构建工具 207

11.1.4处方框架 208

11.1.5 IDE工具箱 208

11.2工具体系结构和选择标准 209

11.2.1实现元模型 209

11.2.2忽略具体语法 209

11.2.3模块化的转换 211

11.2.4模型转换的重要性 211

11.3指针 211

11.3.1 Eclipse的世界 211

11.3.2 UML工具的发展趋势 214

11.3.3 UML2复合结构图 214

11.3.4其他类型的编辑器 216

11.3.5集成的元建模IDE 216

第12章 MDA标准 221

12.1目标 221

12.2核心概念 222

12.2.1 UML2.0 222

12.2.2 MOF——元对象设施 223

12.2.3 XMI 224

12.2.4 PIM/PSM/PDM 224

12.2.5多个阶段的转换 225

12.2.6 动作语言 226

12.2.7核心模型 228

12.2.8 控制PIM到PSM的转换 229

12.2.9可执行的UML 231

第Ⅲ部分 过程和工程 235

第13章 MDSD过程构件和最佳实践 235

13.1简介 235

13.2应用程序和域体系结构开发的分离 236

13.2.1基本原理 236

13.2.2域体系结构开发线程 237

13.2.3应用程序开发线程 242

13.3双轨的迭代开发 243

13.4目标体系结构开发过程 244

13.4.1 3个阶段 245

13.4.2阶段1:详细描述 246

13.4.3阶段2:迭代 249

13.4.4阶段3:自动化 249

13.5产品线工程 251

13.5.1软件系统家族和产品线 251

13.5.2与MDSD过程的集成 251

13.5.3方法学 252

13.5.4域建模 255

13.5.5更多的读物 255

第14章 测试 257

14.1测试类型 257

14.2模型驱动应用程序开发中的测试 258

14.2.1单元测试 259

14.2.2接受测试 264

14.2.3加载测试 265

14.2.4非功能性测试 266

14.2.5模型确认 266

14.3测试域体系结构 267

14.3.1测试引用实现和MDSD平台 267

14.3.2 DSL的接受测试 267

14.3.3 MDSD转换的测试 268

第15章 版本化 271

15.1版本化的概念 271

15.2项目和相关性 272

15.3应用程序项目的结构 272

15.4混合文件的版本管理和构建过程 273

15.5团队中的建模和部分模型的版本化 275

15.5.1分区与子域 275

15.5.2各种生成的软件体系结构 276

15.5.3 DSL的发展 276

15.5.4分区和集成 277

第16章 案例研究:嵌入式的组件基础结构 281

16.1概述 281

16.1.1简介和动机 282

16.1.2组件基础结构 282

16.1.3嵌入式系统的组件基础结构 282

16.1.4基本方法 283

16.2生产线工程 283

16.2.1域作用范围 283

16.2.2可变性分析和域结构化 284

16.2.3域设计 287

16.2.4域实现 289

16.3建模 289

16.3.1接口的定义 289

16.3.2组件和端口的定义 290

16.3.3系统的定义 291

16.3.4完整的模型 294

16.3.5处理 294

16.4组件的实现 295

16.5生成器改进 297

16.5.1解析文本语法 297

16.5.2解析系统定义XML 299

16.5.3解析和合并完整的模型 300

16.5.4伪声明的元模型实现 302

16.6代码生成 304

16.6.1引用 304

16.6.2多态性 307

16.6.3元模型中涉及内容的分离 309

16.6.4构建文件的生成 311

16.6.5使用AspectJ 312

第17章 案例研究:企业系统 315

17.1概述 315

17.2阶段1:详细描述 315

17.2.1技术无关的体系结构 315

17.2.2编程模型 316

17.2.3技术映射 317

17.2.4模拟平台 318

17.2.5垂直原型 318

17.3阶段2:迭代 318

17.4阶段3:自动化 319

17.4.1体系结构元模型 319

17.4.2粘接代码(glue code)生成 320

17.4.3基于DSL的编程模型 320

17.4.4基于模型的体系结构验证 327

17.5讨论 328

第Ⅳ部分 管理 331

第18章 决策支持 331

18.1业务潜力 331

18.2自动化和重用 332

18.3质量 336

18.3.1良好定义的体系结构 336

18.3.2保存的专家知识 336

18.3.3严格的编程模型 336

18.3.4更新的和可用的文档 337

18.3.5生成代码的质量 337

18.3.6测试工作和可能的错误来源 337

18.4重用 338

18.5可移植性、易变性 339

18.6投资和可能的收益 339

18.6.1体系结构中心的MDSD 339

18.6.2功能/专业MDSD域 343

18.7关键问题 344

18.8结论 347

18.9推荐读物 347

第19章 组织方面 349

19.1角色的分配 349

19.1.1域体系结构开发 349

19.1.2应用程序开发 352

19.2团队结构 352

19.2.1角色和人员配备需求的定义 353

19.2.2跨领域团队 354

19.2.3体系结构组的任务 354

19.3软件产品开发模型 356

19.3.1术语 356

19.3.2内部开发 356

19.3.3经典的外部采购 357

19.3.4离岸外包 357

19.3.5激进的离岸外包 358

19.3.6受控制的离岸外包 359

19.3.7与组件有关的决策 359

第20章 MDSD的改进策略 361

20.1预备知识 361

20.2开始学习——MDSD试验 361

20.2.1风险分析 362

20.2.2项目初始化 362

20.3已有系统的MDSD改进 363

20.4软件库存的分类 364

20.5构建、购买或开放源代码 366

20.6供应链的设计 366

20.7域体系结构的渐进发展 368

20.8风险管理 368

20.8.1风险:以工具为中心 368

20.8.2风险:开发工具链对MDSD起反作用 368

20.8.3风险:负担过重的域体系结构团队 369

20.8.4风险:瀑布过程模型、以数据库为中心的开发 369

20.8.5风险:脱离实际的个人 369

20.8.6 风险:没有分离应用程序和域体系结构 370

附录A 模型转换代码 371

A.1完整的QVT alma2db关系数据库示例 371

A.2完整的QVT操作映射alma2db示例 377