系统架构设计师好代码教程(第4版)

第 1 章 计算机组成与体系结构 141 1计算机系统组成 141 1 1计算机硬件的组成 141 1 2计算机系统结构的分类 151 1 3复杂指令集系统与

第 1 章 计算机组成与体系结构 14
1.1计算机系统组成 14
1.1.1计算机硬件的组成 14
1.1.2计算机系统结构的分类 15
1.1.3复杂指令集系统与精简指令集系统 17
1.1.4 总线 18
1.2存储器系统 19
1.2.1主存储器 20
1.2.2辅助存储器 21
1.2.3Cache 存储器 22
1.3流水线 28
1.3.1流水线周期 28
1.3.2计算流水线执行时间 28
1.3.3流水线的吞吐率 29
1.3.4流水线的加速比 29
第 2 章 操作系统 30
2.1操作系统的类型与结构 30
2.1.1操作系统的定义 31
2.1.2操作系统分类 31
2.2操作系统基本原理 31
2.2.1进程管理 31
2.2.2存储管理 40
2.2.3设备管理 45
2.2.4文件管理 46
2.2.5作业管理 51
第 3 章 数据库系统 52
3.1数据库管理系统的类型 53
3.2数据库模式与范式 53
3.2.1数据库的结构与模式 53
3.2.2数据模型 55

3.2.2 关系代数 56
3.2.4数据的规范化 59
3.2.5反规范化 62
3.3数据库设计 63
3.3.1数据库设计的方法 64
3.3.2数据库设计的基本步骤 66
3.3.3需求分析 68
3.3.4概念结构设计 69
3.3.5逻辑结构设计 73
3.3.6物理结构设计 79
3.4事务管理 80
3.4.1并发控制 81
3.4.2故障与恢复 82
3.5备份与恢复 84
3.6分布式数据库系统 86
3.6.1分布式数据库的概念 86
3.6.2分布式数据库的架构 89
3.7数据仓库 94
3.7.1数据仓库的概念 94
3.7.2数据仓库的结构 96
3.7.3数据仓库的实现方法 98
3.8数据挖掘 100
3.8.1数据挖掘的概念 100
3.8.2数据挖掘的功能 102
3.8.3数据挖掘常用技术 103
3.8.4数据挖掘的流程 105
3.9NoSQL 106
3.10 大数据 108
第 4 章 计算机网络 109
4.1网络架构与协议 109

4.1.1网络互联模型 110
4.1.2常见的网络协议 112
4.1.3 IPv6 114
4.2局域网与广域网 117
4.2.1局域网基础知识 117
4.2.2无线局域网 118
4.2.3广域网技术 121
4.2.4网络接入技术 121
4.3网络互连与常用设备 123
4.4网络工程 126
4.4.1网络规划 126
4.4.2网络设计 128
4.4.3网络实施 130
4.5网络存储技术 131
4.6综合布线 134
第 5 章 系统性能评价 135
5.1性能指标 136
5.1.1 计算机 136
5.1.2 网络 139
5.1.3操作系统 140
5.1.4数据库管理系统 140
5.1.5Web 服务器 141
5.2性能计算 141
5.3性能设计 143
5.3.1阿姆达尔解决方案 143
5.3.2负载均衡 144
5.4性能评估 147
5.4.1基准测试程序 147
5.4.2Web 服务器的性能评估 148
5.4.3系统监视 149

第 6 章:开发方法 150
6.1软件生命周期 150
6.2软件开发模型 152
6.2.1瀑布模型 152
6.2.2演化模型 155
6.2.3螺旋模型 155
6.2.4增量模型 156
6.2.5构件组装模型 157
6.3统一过程 158
6.4敏捷方法 161
6.4.1极限编程 162
6.4.2特征驱动开发 166
6.4.3Scrum 168
6.4.4水晶方法 172
6.4.5其他敏捷方法 174
6.5软件重用 174
6.5.1软件重用 174
6.5.2构件技术 175
6.6基于架构的软件设计 176
6.6.1ABSD 方法与生命周期 176
6.6.2基于架构的软件开发模型 179
6.7形式化方法 185
第 7 章:系统规划 186
7.1项目的提出与选择 186
7.1.1项目的立项目标和动机 186
7.1.2项目的选择和确定 187
7.1.3项目提出和选择的结果 191
7.2可行性研究与效益分析 192
7.2.1可行性研究的内容 192
7.2.2成本效益分析 194

7.2.3可行性分析报告 195
7.3方案的制订和改进 196
7.4新旧系统的分析和比较 199
7.4.1遗留系统的评价方法 200
7.4.2遗留系统的演化策略 204
第 8 章:系统分析与设计方法 205
8.1定义问题与归结模型 206
8.1.1问题分析 206
8.1.2问题定义 209
8.2需求分析与软件设计 211
8.2.1需求分析的任务与过程 211
8.2.2如何进行系统设计 214
8.2.3软件设计的任务与活动 215
8.3结构化分析与设计 216
8.3.1结构化分析 216
8.3.2结构化设计 221
8.3.3模块设计 223
8.4面向对象的分析与设计 225
8.4.1面向对象的基本概念 225
8.4.2面向对象分析 228
8.4.3统一建模语言 229
8.5用户界面设计 243
8.5.1用户界面设计的原则 243
8.5.2用户界面设计过程 244
8.6工作流设计 245
8.6.1工作流设计概述 245
8.6.2工作流管理系统 247
8.7简单分布式计算机应用系统的设计 248
8.8系统运行环境的集成与设计 250
8.9系统过渡计划 251

第 9 章:软件架构设计 253
9.1软件架构概述 253
9.1.1软件架构的定义 253
9.1.2软件架构的重要性 255
9.1.3架构的模型 256
9.2架构需求与软件质量属性 258
9.2.1软件质量属性 258
9.2.26 个质量属性及实现 260
9.3软件架构风格 268
9.3.1软件架构风格分类 268
9.3.2数据流风格 269
9.3.3调用/返回风格 271
9.3.4独立构件风格 274
9.3.5虚拟机风格 275
9.3.6仓库风格 275
9.4层次系统架构风格 276
9.4.1二层及三层 C/S 架构风格 277
9.4.2B/S 架构风格 278
9.4.3MVC 架构风格 280
9.4.4MVP 架构风格 281
9.5面向服务的架构 282
9.5.1SOA 概述 283
9.5.2SOA 的关键技术 285
9.5.3SOA 的实现方法 287
9.5.4 微服务 291
9.6架构设计 295
9.7软件架构文档化 297
9.8软件架构评估 301
9.8.1软件架构评估的方法 301
9.8.2架构的权衡分析法 301

9.8.3成本效益分析法 303
9.9构件及其复用 304
9.9.1商用构件标准规范 305
9.9.2应用系统簇与构件系统 306
9.9.3基于复用开发的组织结构 307
9.10产品线及系统演化 308
9.10.1复用与产品线 308
9.10.2基于产品线的架构 309
9.10.3产品线的开发模型 310
9.10.4特定领域软件架构 311
9.10.5架构及系统演化 312
9.11软件架构视图 313
9.11.1软件视图的分类 313
9.11.2模块视图类型及其风格 314
9.11.3C&C 视图类型及其风格 316
9.11.4分配视图类型及其风格 318
9.11.5各视图类型间的映射关系 320
第 10 章:设计模式 320
10.1设计模式概述 320
10.1.1设计模式的概念 321
10.1.2设计模式的组成 321
10.1.3GoF 设计模式 322
10.1.4其他设计模式 324
10.1.5设计模式与软件架构 325
10.1.6设计模式分类 325
10.2设计模式及实现 326
10.2.1Abstract Factory 模式 326
10.2.2Singleton 模式 329
10.2.3Decorator 模式 330
10.2.4Facade/Session Facade 模式 332

10.2.5Mediator 模式 334
10.2.6Observer 模式 336
10.2.7Intercepting Filter 模式 339
10.3设计模式总结 342
第 11 章:测试评审方法 342
11.1测试方法 343
11.1.1软件测试阶段 343
11.1.2白盒测试和黑盒测试 345
11.1.3缺陷的分类和级别 348
11.1.4 调试 349
11.2评审方法 350
11.3验证与确认 352
11.4测试自动化 353
11.5面向对象的测试 354
第 12 章:嵌入式系统设计 356
12.1嵌入式系统概论 357
12.2嵌入式系统的组成 358
12.2.1硬件架构 358
12.2.2软件架构 364
12.3嵌入式开发平台与调试环境 365
12.3.1嵌入式系统软件开发平台 365
12.3.2嵌入式开发调试 367
12.4嵌入式网络系统 371
12.4.1现场总线网 371
12.4.2家庭信息网 372
11.4.3 无线数据通信网 372
12.4.4 嵌入式 Internet 373
12.5嵌入式数据库管理系统 374
12.5.1使用环境的特点 375
12.5.2系统组成与关键技术 375

12.6实时系统与嵌入式操作系统 379
12.6.1嵌入式系统的实时概念 379
12.6.2嵌入式操作系统概述 380
12.6.3实时嵌入式操作系统 382
12.6.4主流嵌入式操作系统介绍 385
12.7嵌入式系统开发设计 386
12.7.1嵌入式系统设计概述 386
12.7.2开发模型与设计流程 389
12.7.3嵌入式系统设计的核心技术 391
12.7.4嵌入式开发设计环境 394
12.7.5嵌入式软件设计模型 394
12.7.6需求分析 398
12.7.7系统设计 400
12.7.8系统集成与测试 407
第 13 章:开发管理 407
13.1项目的范围、时间与成本 408
13.1.1项目范围管理 408
13.1.2项目成本管理 409
13.1.3项目时间管理 410
13.2配置管理与文档管理 411
13.2.1软件配置管理的概念 411
13.2.2软件配置管理的解决方案 412
13.2.3软件文档管理 416
13.3软件需求管理 420
13.3.1需求变更 420
13.3.2需求跟踪 421
13.4软件开发的质量与风险 422
13.4.1软件质量管理 422
13.4.2项目风险管理 425
13.5人力资源管理 430

13.6软件的运行与评价 436
13.7软件过程改进 436
第 14 章:信息系统基础知识 439
14.1信息系统概述 439
14.1.1信息系统的组成 439
14.1.2信息系统的生命周期 441
14.1.3信息系统建设的原则 443
14.1.4信息系统开发方法 445
14.2信息系统工程 447
14.2.1信息系统工程的概念 447
14.2.2信息系统工程的内容 450
14.2.3信息系统工程的总体规划 453
14.2.4总体规划的方法论 460
14.3政府信息化与电子政务 465
14.3.1我国政府信息化的历程和策略 466
14.3.2电子政务的内容 470
14.3.3电子政务建设的过程模式和技术模式 472
14.4企业信息化与电子商务 476
14.4.1企业信息化概述 476
14.4.2企业资源规划 479
14.4.3客户关系管理 484
14.4.4产品数据管理 488
14.4.5企业门户 491
14.4.6企业应用集成 494
14.4.7供应链管理 497
14.4.8电子商务概述 500
14.6知识管理与商业智能 502
14.6.1知识管理 502
14.6.2商业智能 504
14.7业务流程重组 505

第 15 章:基于中间件的开发 508
15.1中间件技术 509
15.1.1中间件的概念 509
15.1.2中间件的分类 511
15.1.3中间件产品介绍 512
15.2应用服务器技术 513
15.2.1应用服务器的概念 514
15.2.2主要的应用服务器 516
15.3 J2EE 518
15.3.1 表示层 519
15.3.2 应用服务层 520
15.4 .NET 523
15.4.1.NET 平台 523
15.4.2.NET 框架 526
15.5企业应用集成 531
15.6轻量级架构和重量级架构 535
15.6.1Struts 框架 535
15.6.2Spring 框架 536
15.6.3Hibernate 框架 537
15.6.4基于 Struts、Spring 和 Hibernate 的轻量级架构 539
15.6.5轻量级架构和重量级架构的探讨 540
第 16 章:安全性和保密性设计 541
16.1加密和解密 542
16.1.1对称密钥加密算法 542
16.1.2不对称密钥加密算法 543
16.2数字签名与数字水印 545
16.2.1数字签名 546
16.2.2数字信封 548
16.3数字证书与密钥管理 549
16.3.1密钥分配中心 549

16.3.2数字证书和公开密钥基础设施 551
16.4安全协议 555
16.4.1IPSec 协议简述 555
16.4.2SSL 协议 560
16.4.3PGP 协议 563
16.5计算机病毒与防治 567
16.5.1计算机病毒概述 567
16.5.2网络环境下的病毒发展新趋势 569
16.5.3计算机病毒的检测与清除 570
16.5.4计算机病毒的预防 572
16.6身份认证与访问控制 573
16.6.1身份认证技术 574
16.6.2访问控制技术 580
16.7网络安全体系 582
16.7.1OSI 安全架构 583
16.7.2VPN 在网络安全中的应用 585
16.8系统的安全性设计 588
16.8.1物理安全问题与设计 588
16.8.2防火墙及其在系统安全中的应用 589
16.8.3入侵检测系统 591
16.9安全性规章 594
16.9.1安全管理制度 594
16.9.2计算机犯罪与相关法规 595
第 17 章:系统的可靠性分析与设计 598
17.1可靠性概述 598
17.2系统故障模型 599
17.2.1故障的来源以及表现 599
17.2.2几种常用的故障模型 600
17.3系统配置方法 601
17.3.1单机容错技术 601

17.3.2双机热备份技术 602
17.3.3服务器集群技术 603
17.4系统可靠性模型 603
17.4.1时间模型 604
17.4.2故障植入模型 604
17.4.3数据模型 606
17.5系统的可靠性分析和可靠度计算 606
17.5.1组合模型 607
17.5.2马尔柯夫模型 610
17.6提高系统可靠性的措施 612
17.6.1硬件冗余 613
17.6.2信息冗余 616
17.7备份与恢复 617
第 18 章:软件的知识产权保护 618
18.1著作权法及实施条例 619
18.1.1著作权法客体 619
18.1.2著作权法的主体 620
18.1.3 著作权 620
18.2计算机软件保护条例 622
18.3商标法及实施条例 623
18.4专利法及实施细则 625
18.5反不正当竞争法 626
第 19 章:标准化知识 628
19.1标准化概论 628
19.2标准分级与标准类型 628
19.2.1标准分级 628
19.2.2强制性标准与推荐性标准 630
第 20 章:应用数学 632
20.1运筹方法 632
20.1.1网络计划技术 632
20.1.2线性规划 636
20.1.3 决策论 639
20.1.4 对策论 643
20.2数学建模 644
第 21 章:虚拟化、云计算与物联网 646
21.1 虚拟化 646
21.1.1虚拟化技术的分类 646
21.1.2虚拟化的模式 649
21.2 云计算 650
21.2.1云计算的特点 650
21.2.2云计算的类型 651
21.2.3云计算的应用 652
21.3 物联网 653
21.3.1物联网的层次结构 654
21.3.2物联网的相关领域与技术 655
21.3.3物联网的应用 660