目录 3
第1部分 PowerBuilder 9.0与软件工程 3
第1章 PowerBuilder 9.0与软件工程基础 3
1.1 利用PowerBuilder 9.0进行系统开发 4
1.1.1 PowerBuilder 9.0开发环境 4
1.1.2 PowerBuilder 9.0基础知识 6
1.1.3 PowerBuilder 9.0面向对象的特性 9
1.1.4 PowerBuilder 9.0进行系统开发的优点 11
1.1.5 PowerBuilder 9.0进行系统开发的缺点 14
1.2 数据库技术 15
1.2.1 数据库基本概念 15
1.2.2 SQL语言 17
1.2.3 常用数据库产品介绍 23
1.2.4 数据库的安装、设置和连接 29
1.2.5 数据库移植 31
1.3 PowerBuilder 9.0与软件工程的结合 34
1.3.1 软件与软件危机 34
1.3.2 软件工程与软件生命周期 35
1.4 软件开发技术与软件工程管理 37
1.4.1 软件开发技术 37
1.4.2 软件工程管理 38
1.5 软件工程的目标和原则 38
1.5.1 软件工程项目的基本目标 38
1.5.2 软件工程的原则 39
第2章 软件需求分析 41
2.2 需求分析的过程 42
2.1 软件需求分析的目标和任务 42
2.2.1 问题定义 43
2.2.2 分析与综合 43
2.2.3 编制需求分析阶段的文档 43
2.2.4 需求分析评审 43
2.3 需求获取 44
2.4 可行性研究和可行性研究报告 44
2.4.1 行性研究 44
2.4.2 行性研究报告 46
2.5 需求分析 46
2.6.1 数据流图 47
2.6 结构化分析方法 47
2.6.2 数据流图的绘制 48
2.6.3 数据字典 51
2.6.4 结构化分析方法的特点 55
2.7 需求分析的快速原型化方法 55
2.7.1 原型的分类 55
2.7.2 原型类型的选择 56
2.7.3 原型生存期 57
2.7.4 原型开发技术 58
2.8 软件需求规格说明和需求评审 59
2.8.1 软件需求说明书的内容 60
2.8.3 初步的用户手册 61
2.8.4 需求规格说明的评审和复审 61
2.8.2 软件需求说明书的作用 61
第3章 软件设计 63
3.1 软件设计的过程和原则 64
3.1.1 软件设计的过程 64
3.1.2 软件设计的原则 65
3.2 总体设计 69
3.2.1 总体设计的任务与步骤 69
3.2.2 软件的结构、过程和模块 70
3.2.3 总体设计中用到的图形工具 77
3.2.4 面向数据流的设计方法 78
3.2.5 设计文档及复审 80
3.3.1 详细设计的任务 81
3.3 详细设计 81
3.3.2 软件详细设计方法 82
3.3.3 程序代码设计 103
3.4 PFC基础类库分析和应用 112
3.4.1 PFC简介 112
3.4.2 PFC组件及服务 113
3.4.3 PFC的面向对象特性 118
3.4.4 PFC的体系结构 119
3.4.5 继承和扩展PFC 121
3.4.6 利用PFC开发标准应用程序 125
第4章 系统实现 137
4.1 编程标准和规范 138
4.1.1 库文件命名及对象存放 138
4.1.2 命名规范化 140
4.1.3 注释规范化 148
4.1.4 使用规范化 153
4.1.5 变更规范化 155
4.1.6 界面规范化 157
4.2 版本管理 158
4.2.1 版本管理的必要性 158
4.2.2 版本管理的作用 159
4.2.3 PowerBuilder 9.0中的源码控制PB Native 160
4.2.4 版本管理工具Visual SourceSafe 6.0 167
4.2.5 小结 190
第5章 软件测试 193
5.1.1 软件测试与评审 194
5.1 软件测试的基本概念 194
5.1.2 软件测试基本方法 195
5.1.3 程序错误分类 196
5.2 软件测试的过程与策略 199
5.2.1 单元测试 199
5.2.2 集成测试 201
5.2.3 确认测试 202
5.2.4 系统测试 204
5.3 测试用例设计 204
5.3.1 测试方法概述 204
5.3.2 逻辑覆盖 206
5.3.3 控制结构测试 207
5.3.4 基本路径测试 210
5.3.5 等价类划分 212
5.3.7 因果图 213
5.3.6 边界值分析 213
5.3.8 错误推测法 215
5.3.9 测试方法选择的综合策略 216
5.4 测试中的可靠性分析 217
5.5 调试 219
5.5.1 调试的步骤 220
5.5.2 调试的方法 220
5.5.3 调试的原则 221
5.6 PowerBuilder 9.0调试工具Debugger 222
5.6.1 Debugger调试工具 222
5.6.2 调试器工作界面 223
5.6.3 设置断点 224
5.6.4 进入调试模式的其他手段 227
5.6.5 调试运行 228
5.7 PBDebug跟踪工具 231
5.7.1 在开发环境下使用PBDebug 231
5.7.2 在编译后的可执行文件中使用PBDebug 232
5.8 数据库访问追踪工具 235
5.9 PowerBuilder 9.0的其他调试技术 238
5.9.1 使用SQLPreview事件查看发送到数据库的SQL语句 238
5.9.2 使用DBError事件捕获数据库访问错误 239
5.10 PowerBuilder 9.0的系统错误处理编程 240
5.11 第三方工具测试Rational TeamTest 243
5.11.1 Rational TeamTest组件 244
5.11.2 自动化测试工具Rational Robot 244
5.11.3 PowerBuilder 9.0+Rational Robot测试实例 245
5.11.4 使用数据池管理测试数据 254
第6章 软件维护 263
6.1 软件维护的基本概念 264
6.1.1 软件维护的定义 264
6.1.2 软件维护的策略 265
6.1.3 维护成本 266
6.1.4 影响维护工作量的因素 266
6.1.5 软件维护活动 268
6.2 PowerBuilder 9.0程序维护及维护的副作用 269
6.2.1 分析和理解PowerBuilder 9.0程序 269
6.2.2 修改PowerBuilder 9.0程序 269
6.2.4 重新验证程序 271
6.2.3 修改程序的副作用 271
6.3 软件可维护性度量 272
6.3.1 软件可维护性的定义 272
6.3.2 可维护性的度量 272
6.3.3 提高可维护性的方法 276
第7章 软件管理 281
7.1 软件管理的职能 282
7.2 进度安排 283
7.3 标准化 284
7.4 软件配置 286
7.5 软件产权保护 287
7.6 软件能力成熟度模型CMM 288
7.6.1 CMM的提出 288
7.6.2 CMM的一些基本概念 288
7.6.3 软件能力成熟度CMM模型简介 289
7.6.4 CMM等级构成及其基本原理 292
7.6.5 CMM和ISO9000的比较 297
7.6.6 CMM的应用及发展 297
7.7 个体软件过程和团队软件过程 298
7.7.1 PSP个体软件过程 298
7.7.2 TSP团队软件过程 300
7.7.3 CMM/TSP/PSP体系 301
第8章 软件质量 303
8.1 软件质量度量 304
8.2 软件质量保证 305
8.2.1 软件质量保证的概念 305
8.2.3 质量保证与检验 306
8.2.2 软件质量保证活动 306
8.2.4 正式技术评审 307
8.3 软件质量保证体系 310
8.3.1 软件质量保证体系 310
8.3.2 质量保证体系的实施 313
第2部分 PowerDesigner 9.0基础 317
第9章 UML与PowerDesigner 9.0 317
9.1 UML历史 318
9.2 UML目标与概念 321
9.2.1 UML简述 321
9.2.2 UML目标 322
9.2.3 UML主要特点 323
9.2.4 UML应用领域 323
9.2.5 UML概念范围 324
9.2.6 UML的内容 325
9.3 UML相关产品介绍 327
9.4 PowerDesigner版本沿革 333
9.4.1 S-Designer 5 333
9.4.2 PowerDesigner 6 335
9.4.3 PowerDesigner 7 336
9.4.4 PowerDesigner 8 338
9.4.5 PowerDesigner 9 338
9.5 PowerDesigner 9.0安装 340
9.5.1 PowerDesigner 9.0的产品线 340
9.5.2 安装选项 340
9.5.3 最小系统要求 340
9.5.4 安装PowerDesigner 9.0模块 341
9.5.5 安装数据库 346
第10章 PowerDesigner 9.0开发环境与应用基础 349
10.1 PowerDesigner 9.0基础概念 350
10.1.1 PowerDesigner 9.0界面 350
10.1.2 PowerDesigner 9.0建模环境 351
10.1.3 PowerDesigner 9.0资源 352
10.2 使用PowerDesigner 9.0界面 353
10.2.1 管理Docking窗口 353
10.2.2 工具面板 354
10.2.3 管理属性表 355
10.2.4 使用对象列表窗口 356
10.2.5 使用浏览器窗口 357
10.2.6 定义全局选项 358
10.3.1 Workspace包含的信息 359
10.3 管理Workspace 359
10.3.2 操作Workspace 360
10.4 管理文件夹 360
10.4.1 文件夹包含的信息 360
10.4.2 操作文件夹 360
10.5 管理模型 361
10.5.1 模型和模型的属性 361
10.5.2 模型的操作 361
10.6 管理快捷方式 363
10.6.1 什么是快捷方式 363
10.6.2 创建快捷方式 363
10.6.4 快捷方式的生成问题 364
10.6.3 快捷方式的显示 364
10.7 比较和合并模型 365
10.7.1 比较模型 365
10.7.2 合并模型 366
10.8 资源编辑器 367
10.8.1 什么是资源编辑器 367
10.8.2 管理资源文件 367
10.9 模型图形 368
10.9.1 模型显示界面 368
10.9.2 更改符号显示 369
10.10 PowerDesigner快捷键 370
第11章 概念数据模型 373
11.1.3 CDM定义 374
11.1.2 CDM中的对象 374
11.1.1 什么是CDM 374
11.1 CDM基础 374
11.1.4 在CDM中定义包 379
11.2 在CDM中使用业务规则 379
11.2.1 什么是业务规则 379
11.2.2 在CDM中定义业务规则 380
11.2.3 在CDM中运用业务规则 382
11.3 创建CDM 382
11.3.1 定义数据项 382
11.3.2 在CDM定义域 385
11.3.3 定义实体 387
11.3.4 定义实体特性 391
11.3.5 定义标识符 394
11.3.6 定义关系 395
11.3.7 在CDM中定义关联 403
11.3.8 定义继承 408
11.4 操作CDM 412
11.4.1 输入ERwin到CDM模型中 412
11.4.2 在CDM中打开PAM 412
11.5 从CDM生成PDM 413
11.5.1 生成PDM对象 413
11.5.2 从CDM到PDM的数据类型转换 415
11.5.3 从CDM生成PDM 417
11.6 从CDM生成OOM 419
11.6.1 生成OOM对象 419
11.6.2 从CDM生成OOM 420
第12章 物理数据模型 423
12.1 PDM基础 424
12.1.1 什么是PDM 424
12.1.2 PDM中的对象 425
12.1.3 定义PDM 426
12.1.4 定义PDM的包 431
12.2 建立物理图 431
12.2.1 物理图基础 431
12.2.2 定义表 432
12.2.3 在PDM定义域 435
12.2.4 使用抽象数据类型 438
12.2.5 定义列 439
12.2.6 定义键 442
12.2.7 定义引用 443
12.2.8 定义索引 447
12.2.9 视图 449
12.3 建立多维图 453
12.3.1 多维图基础 453
12.3.2 定义维 454
12.3.3 定义维特性 456
12.3.4 定义层次 456
12.3.5 定义Cube 457
12.3.6 定义Fact 459
12.3.7 定义Measure 459
12.3.8 定义Cube维关联 460
12.4.1 管理用户和所有者 462
12.4 PDM操作 462
12.4.2 检查PDM 463
12.4.3 在PDM中映射对象 464
12.4.4 读取多维对象 466
12.4.5 重建Cubes 466
12.4.6 生成分解脚本 467
12.4.7 生成Cube数据 468
12.4.8 从PD6数据仓库迁移 469
12.4.9 使用PowerBuilder扩展特性 470
12.5 触发器和存储过程 471
12.5.1 触发器 471
12.5.2 创建触发器 472
12.5.3 使用触发器模板 472
12.5.4 定义存储进程和函数 474
12.5.5 生成触发器和存储进程 475
12.6 逆向工程 476
12.6.1 逆向工程的重建选项 476
12.6.2 逆向工程的选项 476
12.6.3 逆向工程到新的PDM 477
12.6.4 逆向工程到原有的PDM 478
12.7 从PDM生成CDM 478
12.7.1 生成CDM对象 478
12.7.2 从PDM生成新CDM 479
12.7.3 更新原有的CDM 480
12.8 从PDM生成OOM 480
12.8.1 生成OOM对象 480
12.8.2 从PDM生成新OOM 480
12.8.3 更新原有的OOM 481
第13章 面向对象模型 483
13.1 OOM基础 484
13.1.1 什么是OOM 484
13.1.2 图与对象的创建 484
13.1.3 OOM的创建 485
13.1.4 定义模型属性 486
13.1.5 定义OOM选项 486
13.2 如何设置用例图 487
13.2.1 创建用例图的对象 488
13.2.2 创建对象间的关联 488
13.2.3 创建对象间的依赖 489
13.2.4 使用实现类的特性 490
13.3 如何设计顺序图 491
13.3.1 创建顺序图 492
13.3.2 创建顺序图中的对象 492
13.3.3 创建对象间的信息 492
13.3.4 拖放对象设计另一个顺序图 493
13.3.5 使用类实例 493
13.3.6 使用相关图的特性 494
13.4 类图与PDM生成OOM 494
13.4.1 什么是类图 494
13.4.2 从PDM生成OOM 495
13.4.3 添加结构到类 496
13.4.4 添加操作到类 496
13.5 如何设计组件图 496
13.5.1 组件图概念 496
13.5.2 使用向导创建EJB 497
13.6 如何设计活动图 498
13.6.1 创建活动图 498
13.6.2 分解活动 499
第14章 业务过程模型 501
14.1 BPM基础 502
14.1.1 功能预览 502
14.1.2 什么是BPM 502
14.1.3 BPM的对象 503
14.1.4 定义BPM 503
14.1.5 在BPM中定义包 504
14.2 创建BPM 505
14.2.1 业务过程图 505
14.2.2 定义开始点 506
14.2.3 过程 507
14.2.4 定义组织单位 508
14.2.5 定义流 509
14.2.6 定义信息格式 510
14.2.7 定义资源 512
14.2.8 定义资源流 512
14.2.9 定义决定 514
14.2.10 定义同步 515
14.2.11 定义结束点 515
14.3 操作BPM 516
14.3.1 检查BPM 516
14.3.2 BPM对象有效性检查 517
14.3.4 打PowerDesigner6的PAM 520
14.3.3 比较和合并BPM模型 520
第15章 PowerDesigner9.0的报表管理 523
15.1 介绍报表 524
15.1.1 什么是报表 524
15.1.2 报表设计功能 524
15.2 使用报表编辑器 525
15.2.1 介绍报表编辑器 525
15.2.2 使用报表模板编辑器 526
15.2.3 报表的报表区 527
15.2.4 使用报表编辑器 529
15.2.5 使用报表语言编辑器 532
15.3.2 创建模型报表 534
15.3.1 为单模型报表使用报表模板 534
15.3 管理单模型报表 534
15.3.3 输出单模型报表 535
15.3.4 更新单模型报表 535
15.4 管理多模型报表 535
15.4.1 为多模型报表使用报表模板 535
15.4.2 创建多模型报表 535
第16章 PowerDesigner 9.0知识库 537
16.1 介绍知识库 538
16.2 连接到知识库 538
16.2.1 知识库的工作环境与设置 538
16.2.2 管理知识库定义 539
16.2.3 连接到知识库 540
16.3.1 理解知识库中用户权限 542
16.3 管理知识库用户 542
16.3.2 定义知识库用户 543
16.3.3 定义知识库组 546
16.4 管理知识库文档 548
16.4.1 浏览知识库内容 548
16.4.2 使用知识库文件夹 549
16.4.3 分析文档和对象属性 551
16.4.4 定义访问许可 551
16.4.5 在知识库中临时保护文档 554
16.4.6 选择模型比较 554
16.5 提取文档 555
16.5.1 定义提取参数 555
16.4.7 定义知识库通用选项 555
16.5.2 从知识库提取文档 556
16.5.3 提取模型 558
16.6 提交文档 559
16.6.1 介绍 559
16.6.2 定义提交参数 560
16.6.3 理解提交冲突 561
16.6.4 提交文档 561
16.7 在知识库管理文档版本 563
16.7.1 管理知识库版本 563
16.7.2 文档锁定 565
16.7.3 管理知识库分支 567
16.7.4 管理知识库配置 570
参考文献 573