第3部分 软件工程基础 419
第32章 软件神话与软件工程 419
32.1 软件神话 419
32.2 软件工程与软件创新 420
32.3 软件组织与CMM 421
32.4 软件工程师的任务 422
思考与练习 422
第33章 软件过程与项目管理 423
33.1 软件过程与成熟度等级 423
33.1.1 CMM 1级(初始级) 423
33.1.2 CMM 2级(可重复级) 424
33.1.3 CMM 3级(已定义级) 424
33.1.4 CMM 4级(已管理级) 425
33.1.5 CMM 5级(优化级) 425
33.2.1 线性顺序模型 426
33.2 软件工程模型 426
33.2.2 原型模型 427
33.2.3 形式化方法模型 427
33.2.4 面向对象技术与建模 428
33.3 项目管理 428
33.3.1 4P管理 428
33.3.2 软件开发小组与小组软件开发过程 429
33.3.3 项目计划 430
33.3.4 进度及其跟踪 431
33.3.5 质量控制 433
33.4 风险分析与风险控制 434
33.4.1 风险标识 434
33.4.2 风险预测与风险评估 435
33.4.3 风险管理 435
33.5 配置管理与版本控制 436
33.5.1 软件配置项与标识 436
33.5.3 软件变更控制 437
33.6 实例HIS的过程和产品 437
33.5.2 软件版本控制 437
思考与练习 438
第34章 统一建模语言(UML) 439
34.1 概要介绍 439
34.1.1 UML的特点 439
34.1.2 UML的基本模型元素 440
34.1.3 UML的图 441
34.1.4 UML的模型与视图 442
34.2.1 模型元素之间的关系 443
34.1.5 建模工具Rational Rose 443
34.2 静态建模 443
34.2.2 用例图与用例模型 445
34.2.3 类图、对象图与结构模型 447
34.2.4 组件图与实现模型 450
34.2.5 配置图与系统环境模型 450
34.3 动态建模 451
34.3.1 行为模型元素之间的消息传递 451
34.3.2 状态图与行为模型 452
34.3.3 序列图与行为模型 453
34.3.4 协作图与行为模型 455
34.3.5 活动图与行为模型 455
34.4 系统架构 455
思考与练习 456
第35章 可行性论证 457
35.1 可行性论证的内容 457
35.2 可行性论证的步骤 458
36.1.1 用户需求分析的方法 459
第36章 用户需求分析 459
36.1 用户需求调研 459
36.1.2 功能、性能及其描述 460
36.1.3 数据与数据字典 461
36.2 编写文档:用户需求书 461
36.2.1 文档封面 461
36.2.2 用户需求说明书 462
思考与练习 464
36.3 用户需求评审 464
第37章 面向对象软件分析 465
37.1 OO基本原则 465
37.2 OOA过程与建模 466
37.2.1 用例分析与用例建模 466
37.2.2 对象分析与结构建模 467
37.2.3 对象行为与对象行为建模 468
37.3 分析评审 468
思考与练习 468
第38章 面向对象软件设计 469
38.1 OOD目标和软件系统的体系结构 469
38.2 OOD过程与建模 469
38.2.1 问题域子系统设计 469
38.2.2 用户界面子系统设计 470
38.2.3 数据管理子系统设计 470
38.2.4 任务管理子系统设计 472
38.3 编写文档:软件分析设计书 473
38.2.5 系统配置子系统设计 473
38.4 设计评审与优化 474
思考与练习 474
第39章 软件实现与测试 475
39.1 软件实现 475
39.2 软件测试 475
39.2.1 测试基本原则 475
39.2.2 黑盒测试、白盒测试 476
39.2.3 测试过程 477
思考与练习 478
第4部分 C++Builder开发环境 479
第40章 C++Builder集成开发环境介绍 479
40.1 C++Builder 6界面 479
40.1.1 组件面板 480
40.1.2 窗体设计窗口 480
40.1.3 代码编辑窗口 480
40.1.6 对象属性编辑器 481
40.1.5 对象树显示窗口 481
40.1.4 类浏览器 481
40.1.7 工程项目管理器 482
40.1.8 To-Do List窗口 482
40.1.9 桌面方案 483
40.2 应用程序及应用程序窗体 483
40.3 实例:开发一个简单的应用程序 483
思考与练习 484
第41章 常用组件介绍 485
41.1 VCL继承结构 485
41.2 组件与控件 486
41.3 创建组件对象 486
41.4 组件及其属性、方法、事件 486
41.4.1 组件属性与属性设置 487
41.4.2 组件方法 488
41.4.3 组件事件与事件响应 489
41.5.1 窗体(Form) 490
41.5 常用组件介绍 490
41.5.2 容器 492
41.5.3 输入、输出类组件 493
41.5.4 按钮 496
41.5.5 图形、图像 497
41.5.6 标准对话框 498
41.5.7 信息提示对话框 499
41.5.8 菜单组件、创建菜单 500
41.5.9 动作列表组件(ActionList) 502
41.5.10 时钟(Timer) 503
41.6 其他常用类介绍 503
41.6.1 字符串类TStrings与TStringList 503
41.6.2 字符串类AnsiString 504
41.6.3 日期、时间类 505
41.7 实例:创建工具栏、菜单及动作列表对象的使用 505
思考与练习 511
42.2 数据库相关组件介绍 512
第42章 基于数据库的应用 512
42.1 BCB 6中的数据库开发技术架构 512
42.2.1 数据控制组件 513
42.2.2 TDataSource数据源组件 514
42.2.3 数据集组件 514
42.3 SQL简介 517
42.3.1 select语句 518
42.3.2 其他SQL语句 519
42.3.3 SQL编程 520
42.4 创建数据库 521
42.4.1 数据库与数据库别名 521
42.4.2 使用Database Desktop创建数据库与数据表 521
42.5 使用数据库向导自动生成基于数据库的窗体框架 524
42.5.1 生成单一数据表窗体 525
42.5.2 生成主-从表窗体 527
思考与练习 528
43.2 画布(TCanvas)对象 529
第43章 图形与多媒体 529
43.1 图形、图像组件 529
43.3 媒体播放器(TMediaPlayer)组件 532
43.4 动画(TAnimate)组件 533
43.5 例题 534
43.5.1 动画制作 534
43.5.2 媒体播放 537
思考与练习 539
第44章 多线程 540
44.1 进程与线程 540
44.2 线程类(TThread)与创建线程 541
44.2.1 TThread类 541
44.2.2 声明线程与创建线程 542
44.3 多线程的同步控制 543
44.3.1 多线程中的问题 543
44.3.2 同步控制 545
44.4.1 线程的挂起、恢复及线程调试 547
44.4 例题 547
44.4.2 多线程间的同步控制 552
思考与练习 556
第45章 其他应用软件开发技术 557
45.1 使用剪贴板进行数据交换 557
45.1.1 使用组件本身具有的方法 557
45.1.2 利用TClipboard类 557
45.1.3 剪贴板使用实例 558
45.2 消息及消息响应 559
45.2.1 Windows系统消息及其响应 560
45.2.2 自定义消息及其响应 562
45.3 动态链接库(DLL) 564
45.3.1 创建DLL 564
45.3.2 使用DLL 566
45.4 异常处理 567
45.4.1 关键字_except和_finally 567
45.4.2 实例:自定义异常及异常处理 568
45.5 编写Windows风格的联机帮助(Help) 571
45.5.1 应用程序的帮助系统 571
45.5.2 主题页之间进行切换的实现方法 573
45.5.3 编辑并生成RTF文件 573
45.5.4 使用Help Workshop工具创建HLP帮助文件 574
45.5.5 实例:创建HIS帮助系统 576
45.6 制作应用程序的启动界面 582
45.7.1 包(Package)与发布 584
45.7 发布应用 584
45.7.2 编制专业化的安装程序(Setup) 586
思考与练习 586
第5部分 HIS实例开发 587
第46章 HIS分析 587
46.1 上册实现的HIS存在的主要问题 587
46.2 HIS用例分析与用例建模 588
46.2.1 标识HIS的角色和用例 588
46.2.2 用例描述 588
46.2.3 用例建模 590
46.3.1 对象分析与标识类 591
46.3 HIS对象分析与类的标识 591
46.3.2 动作分析与归类 592
46.3.3 创建类图 592
46.4 包与子系统 596
46.5 对象之间的关系与对象结构建模 596
46.6.1 HIS“病人门急诊就医”子系统的状态图 598
46.6.2 功能操作的序列图 598
46.6 HIS对象行为与对象行为建模 598
46.7 组件图及实现模型 602
46.8 分析模型、分析评审 603
思考与练习 603
第47章 HIS设计 604
47.1 类与对象设计 604
47.1.1 对象描述 604
47.1.2 数据结构与算法设计 605
47.3.1 输入用户名、口令界面(PassWordForm)设计 608
47.2 组件与实现模型 608
47.3 用户界面设计 608
47.3.2 挂号员工作界面(RegisteForm)设计 609
47.3.3 医生工作界面(DoctorWorkForm)设计 611
47.3.4 收费员工作界面(RecipePayForm)设计 614
47.3.5 药剂师工作界面(DispensaryManageForm)设计 614
47.3.6 系统管理员工作界面(SysManageForm)设计 617
47.4 数据管理子系统设计 618
47.4.1 数据库设计 618
47.4.2 数据操作功能设计 621
47.5 编写软件设计书 621
思考与练习 621
第48章 HIS实现 622
48.1 准备工作 622
48.2 HIS类的声明和成员函数定义 622
48.2.1 创建并编辑Chain.hpp文件 622
48.2.2 创建并编辑Chain.cpp文件 623
48.2.3 创建并编辑User.hpp文件 626
48.2.4 创建并编辑User.cpp文件 626
48.2.5 创建并编辑BaseClass.hpp文件 627
48.2.6 创建并编辑BaseClass.cpp文件 629
48.2.7 创建并编辑Hospitalize.hpp文件 630
48.2.8 创建并编辑Hospitalize.cpp文件 634
48.2.9 编译 638
48.3 创建数据库 638
48.3.1 建立HIS数据库别名 638
48.3.2 创建数据表 638
48.4 制作Help 641
48.5 为HIS应用程序指定Help 641
48.6 创建HIS应用程序 641
48.6.1 创建应用程序及窗口 641
48.6.2 设置工程窗体特性 656
48.6.3 实现用户登录窗口的功能 656
48.6.4 实现挂号员工作窗口的功能 659
48.6.5 实现挂号员“门诊科信息查询”窗口的功能 665
48.6.6 实现挂号员“当前病人详细信息查询”窗口的功能 665
48.6.7 实现医生工作窗口的功能 666
48.6.8 实现医生“药库信息查询”窗口的功能 678
48.6.9 实现医生“症状术语查询、维护”窗口的功能 678
48.6.10 实现收费员工作窗口的功能 678
48.6.11 实现药剂师工作窗口的功能 681
48.6.12 实现药剂师“药库盘点”窗口的功能 687
48.6.13 实现药剂师“药品调价”窗口的功能 688
48.6.14 实现系统管理员工作窗口的功能 690
48.7 集成、调试和发布 695
48.7.1 软件集成与测试 695
48.7.2 试运行与软件调试 696
48.7.3 软件发布 696
思考与练习 696
参考文献 697