第1章 系统思想 1
1.1系统的概念 1
1.2系统的特性 2
1.3系统及其环境 4
1.3.1技术现状与系统需求 4
1.3.2分析与设计的本质 7
1.3.3系统环境 7
1.4系统模型 8
1.4.1上下文模型 8
1.4.2行为模型 9
1.4.3数据模型 10
1.4.4对象模型 10
1.5系统思想的发展 11
小结 12
习题一 12
第2章 系统分析员 13
2.1软件的生命周期 13
2.1.1软件工程过程 13
2.1.2软件生存周期 14
2.1.3软件生存周期的四个阶段 17
2.2可行性研究任务与步骤 19
2.2.1研究任务 20
2.2.2研究步骤 23
2.2.3可行性研究的文档 24
2.3系统分析 26
2.3.1系统分析员 26
2.3.2面临的问题域 27
2.3.3通信技术 28
2.4分析原理 30
2.4.1信息域 30
2.4.2建立模型 31
2.4.3分解 32
2.5系统模型与模拟 32
2.5.1系统模型 32
2.5.2系统建模和模拟 34
2.6成本-效益分析 35
2.7项目开发计划 37
2.7.1方案选择 37
2.7.2制定项目开发计划 37
小结 38
习题二 38
第3章 系统建设 40
3.1系统建设是复杂的社会过程 40
3.1.1系统建设的复杂性 40
3.1.2系统开发是一个社会过程 40
3.2系统开发方法 42
3.2.1结构化方法 43
3.2.2Jackson方法 43
3.2.3维也纳开发方法 44
3.2.4面向对象的开发方法 44
3.3软件开发工具 45
3.3.1Visual C+++ 46
3.3.2Visual Basic 47
3.3.3Delphi 48
3.3.4PowerBuilder 48
3.4系统发展的阶段理论 51
3.4.1诺兰模型 51
3.4.2西诺特模型 52
3.4.3米切模型 53
小结 53
习题三 54
第4章 系统规划 55
4.1系统规划的任务与特点 55
4.1.1系统规划的任务 55
4.1.2系统规划的原则 58
4.2系统的战略规划 58
4.2.1系统战略规划的内容 58
4.2.2系统战略规划的方法 59
4.2.3建立企业模型 61
4.3数据规划过程 65
4.3.1系统的方法论 65
4.3.2自顶向下战略规划基本过程 66
4.4企业系统规划法 67
4.4.1系统总体规划的研究步骤 69
4.4.2定义总体规划的目标 71
4.4.3定义数据类 72
4.4.4分析现行系统关系 74
4.4.5定义信息结构 80
4.4.6定义企业过程 85
4.4.7确定系统的优先顺序 89
4.4.8信息资源管理 92
4.4.9制定建议书和开发计划 92
4.4.10成果报告 93
小结 94
习题四 94
第5章 结构化分析方法 96
5.1需求分析 96
5.1.1需求分析的特点 96
5.1.2需求分析的原则 97
5.1.3需求分析的任务 98
5.1.4需求分析的方法 99
5.2结构化分析 100
5.2.1自顶向下逐层分解 101
5.2.2结构化分析步骤 102
5.3系统流程图 103
5.4数据流图 104
5.4.1基本图形符号 105
5.4.2画数据流图 106
5.4.3结构化分析方法的应用 110
5.5数据字典 114
5.5.1内容及格式 115
5.5.2数据字典的实现 117
5.6数据仓库与数据挖掘 117
5.6.1数据仓库分析工具 117
5.6.2数据挖掘 118
5.7新系统逻辑模型的提出 122
5.8系统说明书 123
5.8.1系统说明书的内容 123
5.8.2系统说明书的示例 124
5.8.3系统说明书的审议 126
小结 127
习题五 127
第6章 面向对象分析方法 128
6.1对象、主动对象以及它们的类 128
6.2研究问题域和用户需求 130
6.2.1研究用户需求,明确系统责任 130
6.2.2研究问题域 131
6.2.3确定系统边界 132
6.3发现对象 133
6.3.1正确地运用抽象原则 133
6.3.2策略与启发 134
6.3.3审查和筛选 136
6.3.4识别主动对象 137
6.4对象的发现和标识 138
6.4.1动机 138
6.4.2方法 139
6.4.3三视图模型 139
6.4.4语言信息分析 140
6.5对象分类,建立类图的对象层 142
6.5.1异常情况的检查和调整 142
6.5.2类的命名 143
6.5.3建立类图的对象层 144
6.6对象的属性和服务 144
6.7定义属性 145
6.7.1策略与启发 145
6.7.2审查与筛选 146
6.7.3推迟到OOD考虑的问题 148
6.7.4属性的命名和定位 149
6.7.5属性的详细说明 149
6.8定义服务 150
6.8.1对象的状态与状态转换图 150
6.8.2行为分类 152
6.8.3发现服务的策略与启发 152
6.8.4审查与调整 153
6.8.5认识对象的主动行为 154
6.8.6服务的命名和定位 154
6.8.7服务的详细说明 154
6.9应用实例 155
6.9.1功能需求 156
6.9.2发现对象 156
6.9.3对象层表示 157
6.9.4电梯系统的属性描述 157
6.9.5电梯系统的服务定义 159
6.9.6电梯系统的特征层 164
小结 165
习题六 166
第7章 对象结构分析 167
7.1整体-部分结构 167
7.1.1整体-部分结构及其用途 167
7.1.2表示法 169
7.1.3如何发现整体-部分结构 170
7.1.4审查与筛选 171
7.1.5简化对象的定义 172
7.1.6支持软件复用 172
7.1.7整体-部分结构的进一步运用 173
7.1.8调整对象层和属性层 174
7.2一般-特殊结构 174
7.2.1一般-特殊结构及其用途 174
7.2.2表示法 176
7.2.3如何发现一般-特殊结构 176
7.2.4审查与调整 177
7.2.5多继承及多态性问题 178
7.2.6一般-特殊结构的简化 180
7.2.7调整对象层和特征层 181
7.3实例连接 181
7.3.1简单的实例连接 181
7.3.2复杂的实例连接及其表示 182
7.3.3三元关联问题 184
7.3.4如何建立实例连接 185
7.3.5对象层、特征层的增补及实例连接说明 186
7.4消息连接 186
7.4.1消息的定义 186
7.4.2顺序系统中的消息 187
7.4.3并发系统中的消息 188
7.4.4消息对OOA的意义 190
7.4.5OOA对消息的表示——消息连接 190
7.5如何建立消息连接 192
7.5.1建立控制线程内部的消息连接 192
7.5.2建立控制线程之间的消息连接 193
7.5.3对象分布问题及其消息的影响 193
7.6消息的详细说明 194
7.7电梯例子 194
7.7.1一般-特殊关系 195
7.7.2整体-部分关系 195
7.7.3连接 195
7.7.4电梯控制系统的关系层 195
小结 196
习题七 196
第8章 模型 198
8.1统一建模语言 198
8.1.1模型的建立 200
8.1.2UML的基本图标 200
8.1.3UML语义 203
8.1.4UML的基本元素 206
8.1.5UML的词别 206
8.2UML的评价 206
8.2.1UML成功的因素 206
8.2.2UML能够起到的积极作用 207
8.2.3UML不能起到的作用 208
8.2.4UML存在的缺点与问题 209
8.2.5从U2P提案看UML的未来 214
8.3对象模型 215
8.3.1表示方法 216
8.3.2表示结构 217
8.3.3例子 218
8.4动态模型 219
8.4.1事件和状态 219
8.4.2操作 224
8.4.3嵌套状态图 225
8.4.4实践技巧 228
8.5功能模型 229
8.5.1数据流图 229
8.5.2指定的操作 230
8.5.3约束 231
8.5.4功能模型的实例(飞行模拟机装置) 232
8.5.5功能模型与对象模型和动态模型的关系 234
小结 235
习题八 236
第9章 需求与软件体系结构 237
9.1从需求到体系结构的设计 237
9.2RTRSM的基本元素 241
9.2.1状态转换图 242
9.2.2模板 243
9.2.3规则集 244
9.3RTRSM同Statecharts的比较 244
9.4实例说明 245
9.5RTRSM到体系结构的转换步骤 247
9.5.1描述系统的功能单元,即组件 247
9.5.2描述连接件 249
9.5.3描述软件的配置 250
9.6基于软件体系结构的软件开发方法 250
9.6.1软件体系结构的开发过程 250
9.6.2分布式对象技术 250
9.6.3体系结构与分布式对象结合开发方法 251
9.7软件体系结构求精方法 253
9.7.1行为替代的体系结构求精方法 254
9.7.2基于风格的体系结构求精方法 255
9.7.3构件体系结构求精方法 255
9.7.4形式化方法与Z语言 256
9.7.5UML和Z结合的求精方法 259
9.8一种新的软件体系结构设计方法 263
9.8.1体系结构需求和软件体系结构 263
9.8.2新的软件体系结构设计过程 265
小结 267
习题九 267
第10章 结构化设计方法 269
10.1系统设计的任务要求 269
10.1.1评价信息系统的标准 269
10.1.2系统设计的目标 269
10.1.3系统设计的内容 270
10.2结构化设计的基本概念 272
10.2.1模块 272
10.2.2结构图 274
10.2.3模块的设计准则 275
10.2.4模块间的耦合 276
10.2.5模块的内聚 278
10.2.6作用范围与控制范围 280
10.2.7模块的扇入与扇出 281
10.3从数据流程图导出结构图 282
10.3.1变换分析 282
10.3.2事务分析 284
10.3.3数据流程图层次的转换 285
10.3.4表达处理逻辑的工具 286
10.4数据存储设计 288
10.5代码设计 289
10.5.1代码的作用 289
10.5.2代码的种类 289
10.5.3代码校验方法 292
10.5.4代码设计的原则 293
10.5.5代码设计的步骤 293
10.6输出设计 294
10.7输入设计 296
10.7.1输入设计的原则 296
10.7.2输入设计的内容 296
10.7.3数据记录格式设计 298
10.7.4输人数据的校验方法 298
10.8人机对话设计 298
10.8.1人机对话设计的原则 298
10.8.2人机对话的方法 299
10.8.3图形用户界面设计 302
10.9计算机处理过程的设计 305
10.10计算机系统安全控制设计 306
10.11系统设计说明书 306
小结 310
习题十 310
第11章 面向对象设计 312
11.1对象设计综述 312
11.1.1从分析和系统结构着手 312
11.1.2对象设计的步骤 313
11.1.3对象模型工具 313
11.2组合三种模型 314
11.3设计算法 315
11.3.1选择算法 315
11.3.2选择数据结构 316
11.3.3定义内部类和操作 317
11.3.4指定操作的职责 317
11.4设计优化 318
11.4.1添加冗余关联获取有效访问 318
11.4.2重新安排执行次序以获得效率 319
11.4.3保存导出属性避免重复计算 320
11.5控制实现 321
11.5.1在程序内进行状态设置 321
11.5.2状态机器引擎 321
11.5.3控制作为并发任务 322
11.6继承的调整 322
11.6.1重新安排类和操作 322
11.6.2抽象出公共的行为 323
11.6.3使用授权共享实现 324
11.7关联设计 325
11.7.1分析关联遍历 325
11.7.2单向关联 325
11.7.3双向关联 326
11.7.4链接属性 326
11.8对象的表示 326
11.9物理打包 327
11.9.1信息隐藏 327
11.9.2实体的相关性 328
11.9.3构造模块 329
11.10设计决策文档 329
11.11什么是控制驱动部分 329
11.12相关技术问题 330
11.12.1系统总体方案 330
11.12.2软件体系结构 331
11.12.3分布式系统的体系结构风格 332
11.12.4系统的并发性 335
11.13如何设计控制驱动部分 338
11.13.1选择软件体系结构风格 338
11.13.2确定系统分布方案 338
11.13.3识别控制流 342
11.13.4用主动对象表示控制流 344
11.13.5把控制驱动部分看做一个主题 346
小结 346
习题十一 347
第12章 数据库技术 349
12.1数据库基本概念 349
12.1.1数据、信息与数据处理 349
12.1.2数据库、数据库管理系统、数据库系统 350
12.1.3数据库系统结构 352
12.2关系数据模型 353
12.2.1数据模型概述 353
12.2.2关系模型的数据结构 354
12.2.3关系操作集合 356
12.2.4关系的完整性约束 362
12.3数据库设计方法和步骤 364
12.3.1什么是“不好”的关系模式 364
12.3.2函数依赖 366
12.3.3关系模式的规范化 368
12.3.4数据库设计的内容、方法和步骤 372
12.3.5需求分析 373
12.3.6概念结构设计 375
12.3.7逻辑结构设计 377
12.3.8物理设计 378
12.3.9实现和维护 379
12.4数据库管理系统 380
12.4.1数据库管理系统的功能 380
12.4.2数据库管理系统的组成模块和体系结构 381
12.4.3数据库管理系统的运行过程示例 382
12.4.4应用需求对数据库管理系统的选择 382
12.5数据库开发工具 385
12.5.1PowerBuilder 385
12.5.2Oracle Developer 386
12.6数据库技术发展 388
小结 389
习题十二 389
第13章 网络环境下的系统设计 391
13.1网络环境下系统建设的原则和过程 391
13.1.1网络系统建设的原则 391
13.1.2网络系统建设的过程 392
13.2网络环境下系统的开发应用环境 393
13.2.1网络服务器 393
13.2.2网络工作站 394
13.2.3网络传输介质 395
13.2.4网络连接设备 395
13.3网络环境下系统的开发应用环境 397
13.3.1网络操作系统 397
13.3.2关系型数据库软件 399
13.3.3Web服务器软件 402
13.3.4开发工具 406
13.4网络环境下系统的体系结构 412
13.4.1网络环境下系统的体系结构的发展 413
13.4.2客户机/服务器结构 414
13.5网络环境下的程序设计 415
13.5.1利用Visual C+++进行网络程序设计 415
13.5.2利用Visual Basic进行网络程序设计 416
13.6信息与系统的安全性 417
13.6.1信息与系统安全性的主要威胁 417
13.6.2信息与系统安全性技术 418
13.6.3信息与系统安全性技术的综合利用 422
小结 422
习题十三 422
第14章 系统实施与维护 424
14.1系统实施阶段的任务 424
14.1.1实施阶段的主要活动 424
14.1.2系统实施阶段的步骤 425
14.2自顶向下的实现方法 425
14.3编程方法 426
14.3.1好程序的标准 426
14.3.2结构化程序设计 426
14.3.3面向对象的程序设计 431
14.3.4可视化编程技术 433
14.3.5程序的内部文档与编程风格 434
14.4系统的可靠性与安全性 436
14.4.1系统的可靠性 436
14.4.2系统的安全性 444
14.5系统测试 446
14.5.1测试的概念 446
14.5.2测试的原则 447
14.5.3测试用例设计 447
14.5.4调试 457
14.6系统维护 458
14.6.1维护的内容 458
14.6.2维护的类型 459
14.6.3系统维护的管理 460
小结 463
习题十四 463
参考答案 466
参考文献 479