第1章 软件分析建模基础 1
1.1 软件分析建模概述 1
1.2 业务建模概述 2
1.3 数据建模概述 4
1.3.1 概念数据模型 4
1.3.2 物理数据模型中的物理图 6
1.3.3 物理数据模型中的多维图 7
1.3.4 XML模型 8
1.4 应用程序建模概述 11
1.4.1 用例图 12
1.4.2 类图、对象图、组合结构图和包图 13
1.4.3 时序图、通信图、状态图、活动图和交互纵览图 15
1.4.4 组件图和部署图 20
1.5 辅助建模工具概述 22
1.6 分析建模实例 24
1.6.1 学生上机系统的业务建模 24
1.6.2 学生上机系统的数据建模 26
1.7 最具影响的软件分析建模平台 29
1.7.1 Sybase公司的软件分析建模平台简介 29
1.7.2 IBM公司的软件分析建模平台简介 31
1.7.3 CA公司的软件分析建模平台简介 34
1.7.4 Microsoft公司的软件分析建模平台简介 34
第2章 PowerDesigner软件分析建模的基本概念 35
2.1 PowerDesigner概况 35
2.1.1 软件分析建模需要安装的软件 35
2.1.2 PowerDesigner能够完成的分析建模工作 36
2.1.3 PowerDesigner启动时的界面 36
2.1.4 PowerDesigner新建模型的步骤 37
2.1.5 模型类型的图标及扩展名 38
2.1.6 PowerDesigner的工具选项板 39
2.1.7 PowerDesigner模型对象的特性窗口 40
2.1.8 PowerDesigner模型对象的列表窗口 40
2.1.9 PowerDesigner检查模型的相关窗口 41
2.2 PowerDesigner的公共资源 42
2.3 模型间的生成和跟踪关系 43
2.3.1 模型、外部系统间的关系 43
2.3.2 各种模型与需求模型间的跟踪关系 44
2.4 模型对象的快捷方式 44
2.4.1 快捷方式的目标对象 45
2.4.2 产生快捷方式的方法 45
2.5 模型对象的复制品 46
2.5.1 复制品的源对象 46
2.5.2 产生复制品的方法 46
2.5.3 修改复制特性 47
2.6 模型的比较与合并 48
2.6.1 比较模型 48
2.6.2 合并模型 49
2.7 模型的影响分析 50
2.7.1 产生用户定义事件的方法 51
2.7.2 从企业知识库中提取模型的交叉依赖 52
2.7.3 改变影响传播的集合 52
2.8 模型对象的映射 53
2.8.1 模型对象映射的基本知识 53
2.8.2 启动映射编辑器的方法 56
2.8.3 映射编辑器界面 57
2.8.4 在映射编辑器窗口产生映射的方法 58
2.8.5 修改映射语法的方法 58
2.8.6 从对象特性窗口创建映射的方法 59
2.9 模型间生成的连接 60
第3章 PowerDesigner的基本操作 62
3.1 分析建模环境的设置 62
3.1.1 设置环境选项 62
3.1.2 通用工具条 68
3.1.3 预定义符号工具条 72
3.2 模型对象操作 72
3.2.1 模型对象的图形符号 72
3.2.2 修改模型对象的显示参数 77
3.2.3 模型图形的打印 78
3.2.4 模型图形的导入和导出 78
第4章 需求模型及PowerDesigner实现 80
4.1 建立RQM的方法 80
4.1.1 RQM中的包 82
4.1.2 设置RQM的环境 82
4.2 需求文档视图 85
4.2.1 需求特性窗口的General选项卡 85
4.2.2 需求特性窗口的Detail选项卡 85
4.2.3 需求特性窗口的Traceability Links选项卡 87
4.2.4 需求特性窗口的User Allocations选项卡 87
4.2.5 需求特性窗口的其他特性选项卡 87
4.3 追踪矩阵视图 88
4.4 用户分配矩阵视图 88
4.5 RQM的有效性检查 89
4.6 需求与设计对象的连接 91
4.6.1 在需求上连接设计对象 91
4.6.2 在设计对象上连接需求 92
4.7 需求与设计对象的导入与导出 93
4.7.1 把需求导出到设计模型中 94
4.7.2 把设计对象导入到RQM中 95
4.8 RQM与MS Word文档的信息交换 96
4.8.1 把Word文档导入到RQM中 96
4.8.2 把RQM导出到Word文档中 98
4.8.3 更新RQM或Word文档 100
4.8.4 断开RQM与Word文档之间的连接 101
第5章 业务流程模型及PowerDesigner实现 102
5.1 BPM的3种图形 103
5.1.1 业务流程图 103
5.1.2 流程层次图 106
5.1.3 流程服务图 106
5.2 BPM的建立方法 107
5.3 分析型BPM 108
5.3.1 基于Analysis业务流程语言的BPM 108
5.3.2 基于BPMN 1.0业务流程语言的BPM 109
5.3.3 基于Data Flow Diagram业务流程语言的BPM 112
5.4 执行型BPM 116
5.4.1 基于BPEL4WS 1.1业务流程语言的BPM 116
5.4.2 基于WSBPEL 2.0业务流程语言的BPM 117
5.4.3 基于Sybase Unwired Orchestrator 4.3业务流程语言的BPM 119
5.4.4 基于SWBP 1.x业务流程语言的BPM 120
5.4.5 基于SOA业务流程语言的BPM 121
5.5 协作型BPM 123
5.6 业务流程模型应用实例 129
5.6.1 订单业务流程模型的建立方法 129
5.6.2 订单业务流程模型的修改方法 130
5.6.3 Web服务的对象模型 131
第6章 概念数据模型及PowerDesigner实现 134
6.1 概念数据模型概述 134
6.1.1 新建CDM的方法 136
6.1.2 在CDM中定义包 136
6.2 CDM的主要概念 137
6.2.1 实体 137
6.2.2 属性 138
6.2.3 标识符 138
6.2.4 数据项 139
6.2.5 域 142
6.2.6 联系 142
6.2.7 继承联系 147
6.2.8 关联和关联连接 149
6.3 CDM的环境设置 153
6.3.1 CDM的模型选项 153
6.3.2 CDM的显示参数 156
6.4 CDM的有效性检查 157
6.4.1 业务规则检查 157
6.4.2 包检查 157
6.4.3 域检查 158
6.4.4 数据项检查 158
6.4.5 实体检查 158
6.4.6 实体标识符检查 159
6.4.7 联系检查 159
6.4.8 关联检查 159
6.4.9 继承联系检查 160
6.4.10 文件对象检查与复制检查 160
6.5 CDM模型间的转换 161
6.5.1 CDM生成新的CDM 161
6.5.2 CDM生成PDM 161
6.5.3 CDM生成OOM 164
6.6 CDM实体的规范化 165
6.6.1 问题的提出与解决方法 165
6.6.2 实体的规范化 168
6.7 CDM设计的重要问题 171
第7章 物理数据模型及PowerDesigner实现 174
7.1 PDM概述 174
7.1.1 PDM的分类及变换 175
7.1.2 新建PDM的方法 175
7.2 PDM物理图中的概念 177
7.2.1 业务规则 178
7.2.2 表 179
7.2.3 列 181
7.2.4 键 184
7.2.5 索引 185
7.2.6 默认值 186
7.2.7 域 187
7.2.8 序列 188
7.2.9 抽象数据类型 189
7.2.10 引用 192
7.2.11 视图 197
7.2.12 视图引用 201
7.2.13 物理选项 202
7.3 PDM多维图的概念 203
7.3.1 立方体及相关概念 205
7.3.2 维表 206
7.3.3 关联 207
7.4 PDM的环境设置 208
7.4.1 设置PDM当前的DBMS 208
7.4.2 设置PDM的模型选项 209
7.5 触发器、存储过程和函数 211
7.5.1 触发器、存储过程和函数的编辑工具 211
7.5.2 触发器 212
7.5.3 触发器模板 214
7.5.4 触发器模板项 216
7.5.5 存储过程和函数 218
7.5.6 存储过程模板 220
7.5.7 使用SQL/XML向导 221
7.6 构建数据库的访问结构 221
7.6.1 用户 221
7.6.2 用户组或角色 224
7.6.3 公共用户组 224
7.6.4 同义对象 224
7.7 构建Web服务 226
7.7.1 Web Service 226
7.7.2 Web操作 227
7.7.3 Web参数 229
7.7.4 Web Service的生成 230
7.8 PDM的反规范化 231
7.8.1 表的水平分割 231
7.8.2 表的垂直分割 232
7.8.3 表的合并 234
7.8.4 列的反规范化 234
7.9 PDM生成其他模型 236
7.9.1 从PDM生成新的PDM 236
7.9.2 从PDM生成CDM 238
7.9.3 从PDM生成OOM 239
7.9.4 从PDM生成XML模型 240
7.10 把PDM生成到数据库中 242
7.10.1 PDM与数据库的连接与断开 242
7.10.2 PDM生成数据库 243
7.10.3 在数据库中添加测试数据 246
7.10.4 估算数据库的大小 253
7.10.5 使用PDM修改数据库模式 255
7.10.6 PDM访问数据库 258
7.11 数据库的逆向工程 259
7.11.1 SQL文件的逆向工程 259
7.11.2 数据库的逆向工程 260
7.11.3 逆向工程选项 261
第8章 XML模型及PowerDesigner实现 262
8.1 XML概述 262
8.1.1 XML文档示例 262
8.1.2 XML文档的编写 263
8.2 XML文档的5种应用场合 267
8.3 XML的文档类型定义文件 268
8.3.1 XML文档与DTD的匹配 270
8.3.2 DTD的编写语法 272
8.4 XML的模式定义文件 283
8.4.1 Schema的基本结构和使用 284
8.4.2 命名空间 284
8.4.3 简单类型 287
8.4.4 复杂数据类型 293
8.5 XML的数据简化定义文件 302
8.6 XML的PowerDesigner实现方法 303
8.6.1 建立XML模型 303
8.6.2 XML的模型特性 304
8.6.3 XML的建模环境 306
8.6.4 XML图形基础 308
8.6.5 XML的元素 309
8.6.6 XML的Group Particle 313
8.6.7 XML元素的Any类型 314
8.6.8 XML中元素的属性 315
8.6.9 XML中元素的约束 317
8.6.10 XML的元素组 321
8.6.11 XML的Attribute Group 321
8.6.12 XML的简单类型 322
8.6.13 XML的复杂类型 322
8.6.14 XML的派生 323
8.6.15 XML的Annotation 327
8.6.16 XML的Notation 328
8.6.17 XML的Entity 329
8.6.18 XML的Import、Include和Redefine指令 329
第9章 面向对象模型及PowerDesigner实现 331
9.1 面向对象模型概述 331
9.1.1 UML的12种图形之间的相互关系 331
9.1.2 面向对象开发方法简介 332
9.1.3 面向对象设计原则 333
9.1.4 从设计原则到设计模式 334
9.2 面向对象的主要概念 337
9.2.1 类和对象 337
9.2.2 继承 337
9.2.3 封装和接口 337
9.2.4 多态性 338
9.2.5 消息传递 338
9.2.6 关联 338
9.2.7 聚合和组合 338
9.3 功能模型的设计 338
9.3.1 参与者和用例 339
9.3.2 模型对象之间的关系 339
9.4 结构模型的设计 340
9.4.1 类 342
9.4.2 包 345
9.4.3 接口 346
9.4.4 对象 346
9.4.5 部件 347
9.4.6 端口 347
9.4.7 属性 348
9.4.8 标识符 349
9.4.9 操作 349
9.4.10 关联 350
9.4.11 泛化 354
9.4.12 依赖 354
9.4.13 实现 355
9.4.14 需求链接 355
9.4.15 装配连接器和委托连接器 356
9.4.16 实例链接 356
9.4.17 注释 357
9.5 动态模型的设计 358
9.5.1 消息 363
9.5.2 激活期 368
9.5.3 交互引用和交互活动 370
9.5.4 交互片段 371
9.5.5 活动 372
9.5.6 流 375
9.5.7 转换 375
9.5.8 起始点与结束点 376
9.5.9 判断 376
9.5.10 同步 377
9.5.11 组织单元 377
9.5.12 对象节点 379
9.5.13 状态 380
9.5.14 事件 380
9.5.15 动作 381
9.5.16 状态结合点 381
9.6 实现模型的设计 382
9.6.1 组件 383
9.6.2 节点 383
9.6.3 组件实例 383
9.6.4 文件对象 384
第10章 面向对象模型的代码生成技术 385
10.1 代码生成机制 385
10.1.1 PowerDesigner对MDA的支持 385
10.1.2 PowerDesigner扩展OOM模型语义的方法 386
10.1.3 代码生成及逆向工程的原理 388
10.2 C# 2.0的代码生成 388
10.2.1 C# 2.0的程序集 388
10.2.2 C# 2.0的编译单元 389
10.2.3 C# 2.0命名空间 391
10.2.4 C# 2.0的类 391
10.2.5 C# 2.0的结构类 393
10.2.6 C# 2.0的委托类 393
10.2.7 C# 2.0的枚举类 394
10.2.8 C# 2.0类的字段 394
10.2.9 C# 2.0类的方法 394
10.2.10 C# 2.0的事件、索引和特性 396
10.2.11 生成C# 2.0代码 397
10.2.12 逆向工程C# 2.0代码 398
10.3 Java的代码生成 400
10.3.1 Java的public类 400
10.3.2 Java的枚举类 401
10.3.3 JavaDoc注释 403
10.3.4 Java 5的注解 405
10.3.5 Java的strictfp关键字 405
10.3.6 EJB 2.0规范 406
10.3.7 EJB 3.0规范 419
10.3.8 Java Servlet组件 424
10.3.9 JSP技术 429
10.3.10 生成Java代码 430
10.3.11 逆向Java代码 433
第11章 信息流模型及PowerDesigner实现 435
11.1 ILM基础 435
11.1.1 ILM的建立方法 435
11.1.2 复制处理 436
11.1.3 转换处理 440
11.1.4 ETL的概念 443
11.1.5 EII的概念 444
11.2 ILM的模型元素 445
11.2.1 数据库 445
11.2.2 服务器 446
11.2.3 XML文档 446
11.2.4 数据访问应用 447
11.2.5 概念数据 447
11.2.6 业务流程 447
11.2.7 平面文件 448
11.2.8 连接 448
11.2.9 复制处理中需要定义的对象 451
11.3 ILM中映射编辑器的作用 454
11.3.1 传统的映射编辑器 455
11.3.2 复制处理的映射编辑器 455
11.4 建立数据转换图 458
11.4.1 数据输入 458
11.4.2 动作 458
11.4.3 数据输出 460
11.4.4 数据流 461
11.4.5 数据结构列 461
11.4.6 数据结构映射编辑器 462
11.5 建立转换控制流图 462
11.6 生成新的ILM 463
11.7 ILM的有效性检查 464
11.8 生成目标代码 465
11.9 ILM的逆向工程 466
第12章 模型报告 467
12.1 建立单模型报告 467
12.1.1 使用报告模板建立单模型报告 467
12.1.2 使用报告向导建立单模型报告 468
12.1.3 使用报告编辑器建立单模型报告 470
12.2 建立多模型报告 472
12.3 建立列表报告 474
12.3.1 使用列表报告向导建立列表报告 474
12.3.2 列表报告的特性 476
12.3.3 建立列表报告的结果集 477
12.3.4 列表报告的输入与输出 477
12.4 报告编辑器 478
12.4.1 报告编辑器中的有效项目 479
12.4.2 在报告项目窗格中增加项目 480
12.4.3 在报告项目窗格中移动项目 481
12.4.4 在报告项目窗格中复制和删除项目 481
12.4.5 在报告项目窗格中修改项目标题 482
12.4.6 在报告项目窗格中修改报告项目集合 482
12.4.7 为报告选择对象 483
12.4.8 定义项目的格式 483
12.4.9 报告的节 484
12.4.10 报告的模板 485
12.4.11 报告的页面设置 486
12.5 报告语言编辑器 490
第13章 企业知识库 492
13.1 企业知识库入门 492
13.1.1 企业知识库简介 492
13.1.2 建立企业知识库 493
13.2 企业知识库的基本任务 498
13.2.1 在企业知识库中增加文档 498
13.2.2 从企业知识库中提取文档 501
13.2.3 浏览企业知识库中的内容 502
13.3 企业知识库的文档管理 504
13.3.1 版本管理 504
13.3.2 锁管理 506
13.3.3 分支管理 508
13.3.4 配置管理 509
13.4 企业知识库管理 510
13.4.1 升级和删除企业知识库 510
13.4.2 用户、用户组权限的控制 511
13.4.3 企业知识库中项目许可的控制 514
参考文献 518