《系统架构设计师教程(第4版)》由希赛教育软考学院组织编写,用以作为计算机技术与软件专业技术资格(水平)考试中的系统架构设计师级别的考试辅导指定教材。内容涵盖了最新的系统架构设计师考试大纲的所有知识点,对系统架构设计师所必须掌握的基础理论知识做了详细的介绍,重在培养系统架构设计师所必须具备的专业技能和方法。
《系统架构设计师教程(第4版)》内容既是对系统架构设计师考试的总体纲领性的要求,也是系统架构设计师职业生涯的知识与技能体系。准备参加考试的人员可通过阅读《系统架构设计师教程(第4版)》掌握考试大纲规定的知识,把握考试重点和难点。
《系统架构设计师教程(第4版)》可作为系统架构设计师和系统分析师的工作手册,也可作为软件设计师、数据库系统工程师和网络工程师进一步发展的学习用书,还可作为计算机专业教师的教学参考书。
目录
- 第1章 计算机组成与体系结构 1
- 1.1 计算机系统组成 1
- 1.1.1 计算机硬件的组成 1
- 1.1.2 计算机系统结构的分类 2
- 1.1.3 复杂指令集系统与精简指令集系统 3
- 1.1.4 总线 5
- 1.2 存储器系统 5
- 1.2.1 主存储器 6
- 1.2.2 辅助存储器 7
- 1.2.3 Cache存储器 8
- 1.3 流水线 13
- 1.3.1 流水线周期 13
- 1.3.2 计算流水线执行时间 13
- 1.3.3 流水线的吞吐率 14
- 1.3.4 流水线的加速比 14
- 第2章 操作系统 15
- 2.1 操作系统的类型与结构 15
- 2.1.1 操作系统的定义 15
- 2.1.2 操作系统分类 16
- 2.2 操作系统基本原理 16
- 2.2.1 进程管理 16
- 2.2.2 存储管理 23
- 2.2.3 设备管理 27
- 2.2.4 文件管理 28
- 2.2.5 作业管理 32
- 第3章 数据库系统 34
- 3.1 数据库管理系统的类型 34
- 3.2 数据库模式与范式 34
- 3.2.1 数据库的结构与模式 34
- 3.2.2 数据模型 37
- 3.2.3 关系代数 37
- 3.2.4 数据的规范化 40
- 3.2.5 反规范化 42
- 3.3 数据库设计 43
- 3.3.1 数据库设计的方法 43
- 3.3.2 数据库设计的基本步骤 45
- 3.3.3 需求分析 46
- 3.3.4 概念结构设计 47
- 3.3.5 逻辑结构设计 51
- 3.3.6 物理结构设计 56
- 3.4 事务管理 56
- 3.4.1 并发控制 57
- 3.4.2 故障与恢复 58
- 3.5 备份与恢复 60
- 3.6 分布式数据库系统 61
- 3.6.1 分布式数据库的概念 61
- 3.6.2 分布式数据库的架构 64
- 3.7 数据仓库 68
- 3.7.1 数据仓库的概念 69
- 3.7.2 数据仓库的结构 70
- 3.7.3 数据仓库的实现方法 72
- 3.8 数据挖掘 74
- 3.8.1 数据挖掘的概念 74
- 3.8.2 数据挖掘的功能 76
- 3.8.3 数据挖掘常用技术 76
- 3.8.4 数据挖掘的流程 78
- 3.9 NOSQL 79
- 3.10 大数据 81
- 第4章 计算机网络 83
- 4.1 网络架构与协议 83
- 4.1.1 网络互联模型 84
- 4.1.2 常见的网络协议 85
- 4.1.3 IPv6 87
- 4.2 局域网与广域网 89
- 4.2.1 局域网基础知识 89
- 4.2.2 无线局域网 91
- 4.2.3 广域网技术 93
- 4.2.4 网络接入技术 93
- 4.3 网络互连与常用设备 95
- 4.4 网络工程 97
- 4.4.1 网络规划 97
- 4.4.2 网络设计 99
- 4.4.3 网络实施 101
- 4.5 网络存储技术 102
- 4.6 综合布线 104
- 第5章 系统性能评价 106
- 5.1 性能指标 106
- 5.1.1 计算机 107
- 5.1.2 网络 109
- 5.1.3 操作系统 110
- 5.1.4 数据库管理系统 110
- 5.1.5 Web服务器 111
- 5.2 性能计算 111
- 5.3 性能设计 112
- 5.3.1 阿姆达尔解决方案 112
- 5.3.2 负载均衡 113
- 5.4 性能评估 116
- 5.4.1 基准测试程序 116
- 5.4.2 Web服务器的性能评估 117
- 5.4.3 系统监视 118
- 第6章 开发方法 120
- 6.1 软件生命周期 120
- 6.2 软件开发模型 121
- 6.2.1 瀑布模型 121
- 6.2.2 演化模型 124
- 6.2.3 螺旋模型 124
- 6.2.4 增量模型 125
- 6.2.5 构件组装模型 125
- 6.3 统一过程 126
- 6.4 敏捷方法 129
- 6.4.1 极限编程 129
- 6.4.2 特征驱动开发 133
- 6.4.3 Scrum 135
- 6.4.4 水晶方法 138
- 6.4.5 其他敏捷方法 139
- 6.5 软件重用 140
- 6.5.1 软件重用 140
- 6.5.2 构件技术 140
- 6.6 基于架构的软件设计 141
- 6.6.1 ABSD方法与生命周期 141
- 6.6.2 基于架构的软件开发模型 143
- 6.7 形式化方法 148
- 第7章 系统计划 150
- 7.1 项目的提出与选择 150
- 7.1.1 项目的立项目标和动机 150
- 7.1.2 项目的选择和确定 151
- 7.1.3 项目提出和选择的结果 154
- 7.2 可行性研究与效益分析 155
- 7.2.1 可行性研究的内容 156
- 7.2.2 成本效益分析 157
- 7.2.3 可行性分析报告 158
- 7.3 方案的制订和改进 159
- 7.4 新旧系统的分析和比较 161
- 7.4.1 遗留系统的评价方法 162
- 7.4.2 遗留系统的演化策略 165
- 第8章 系统分析与设计方法 167
- 8.1 定义问题与归结模型 167
- 8.1.1 问题分析 167
- 8.1.2 问题定义 170
- 8.2 需求分析与软件设计 172
- 8.2.1 需求分析的任务与过程 172
- 8.2.2 如何进行系统设计 174
- 8.2.3 软件设计的任务与活动 175
- 8.3 结构化分析与设计 176
- 8.3.1 结构化分析 176
- 8.3.2 结构化设计 180
- 8.3.3 模块设计 182
- 8.4 面向对象的分析与设计 184
- 8.4.1 面向对象的基本概念 184
- 8.4.2 面向对象分析 186
- 8.4.3 统一建模语言 188
- 8.5 用户界面设计 199
- 8.5.1 用户界面设计的原则 199
- 8.5.2 用户界面设计过程 200
- 8.6 工作流设计 200
- 8.6.1 工作流设计概述 201
- 8.6.2 工作流管理系统 202
- 8.7 简单分布式计算机应用系统的设计 203
- 8.8 系统运行环境的集成与设计 204
- 8.9 系统过渡计划 206
- 第9章 软件架构设计 208
- 9.1 软件架构概述 208
- 9.1.1 软件架构的定义 209
- 9.1.2 软件架构的重要性 210
- 9.1.3 架构的模型 211
- 9.2 架构需求与软件质量属性 213
- 9.2.1 软件质量属性 213
- 9.2.2 6个质量属性及实现 214
- 9.3 软件架构风格 221
- 9.3.1 软件架构风格分类 222
- 9.3.2 数据流风格 222
- 9.3.3 调用/返回风格 224
- 9.3.4 独立构件风格 226
- 9.3.5 虚拟机风格 227
- 9.3.6 仓库风格 228
- 9.4 层次系统架构风格 229
- 9.4.1 二层及三层C/S架构风格 229
- 9.4.2 B/S架构风格 230
- 9.4.3 MVC架构风格 231
- 9.4.4 MVP架构风格 233
- 9.5 面向服务的架构 234
- 9.5.1 SOA概述 234
- 9.5.2 SOA的关键技术 236
- 9.5.3 SOA的实现方法 238
- 9.5.4 微服务 241
- 9.6 架构设计 244
- 9.7 软件架构文档化 246
- 9.8 软件架构评估 250
- 9.8.1 软件架构评估的方法 250
- 9.8.2 架构的权衡分析法 250
- 9.8.3 成本效益分析法 252
- 9.9 构件及其复用 253
- 9.9.1 商用构件标准规范 253
- 9.9.2 应用系统簇与构件系统 255
- 9.9.3 基于复用开发的组织结构 255
- 9.10 产品线及系统演化 256
- 9.10.1 复用与产品线 256
- 9.10.2 基于产品线的架构 257
- 9.10.3 产品线的开发模型 258
- 9.10.4 特定领域软件架构 258
- 9.10.5 架构及系统演化 259
- 9.11 软件架构视图 260
- 9.11.1 软件视图的分类 260
- 9.11.2 模块视图类型及其风格 262
- 9.11.3 C&C视图类型及其风格 263
- 9.11.4 分配视图类型及其风格 265
- 9.11.5 各视图类型间的映射关系 267
- 第10章 设计模式 268
- 10.1 设计模式概述 268
- 10.1.1 设计模式的概念 268
- 10.1.2 设计模式的组成 269
- 10.1.3 GoF设计模式 269
- 10.1.4 其他设计模式 271
- 10.1.5 设计模式与软件架构 272
- 10.1.6 设计模式分类 272
- 10.2 设计模式及实现 273
- 10.2.1 Abstract Factory模式 273
- 10.2.2 Singleton模式 276
- 10.2.3 Decorator模式 277
- 10.2.4 Facade/Session Facade模式 279
- 10.2.5 Mediator模式 281
- 10.2.6 Observer模式 282
- 10.2.7 Intercepting Filter模式 284
- 10.3 设计模式总结 286
- 第11章 测试评审方法 288
- 11.1 测试方法 288
- 11.1.1 软件测试阶段 288
- 11.1.2 白盒测试和黑盒测试 290
- 11.1.3 缺陷的分类和级别 292
- 11.1.4 调试 293
- 11.2 评审方法 294
- 11.3 验证与确认 295
- 11.4 测试自动化 297
- 11.5 面向对象的测试 297
- 第12章 嵌入式系统设计 300
- 12.1 嵌入式系统概论 300
- 12.2 嵌入式系统的组成 301
- 12.2.1 硬件架构 301
- 12.2.2 软件架构 306
- 12.3 嵌入式开发平台与调试环境 307
- 12.3.1 嵌入式系统软件开发平台 307
- 12.3.2 嵌入式开发调试 309
- 12.4 嵌入式网络系统 312
- 12.4.1 现场总线网 312
- 12.4.2 家庭信息网 313
- 11.4.3 无线数据通信网 313
- 12.4.4 嵌入式Internet 314
- 12.5 嵌入式数据库管理系统 315
- 12.5.1 使用环境的特点 315
- 12.5.2 系统组成与关键技术 316
- 12.6 实时系统与嵌入式操作系统 319
- 12.6.1 嵌入式系统的实时概念 319
- 12.6.2 嵌入式操作系统概述 320
- 12.6.3 实时嵌入式操作系统 321
- 12.6.4 主流嵌入式操作系统介绍 324
- 12.7 嵌入式系统开发设计 325
- 12.7.1 嵌入式系统设计概述 325
- 12.7.2 开发模型与设计流程 327
- 12.7.3 嵌入式系统设计的核心技术 329
- 12.7.4 嵌入式开发设计环境 331
- 12.7.5 嵌入式软件设计模型 332
- 12.7.6 需求分析 335
- 12.7.7 系统设计 337
- 12.7.8 系统集成与测试 342
- 第13章 开发管理 344
- 13.1 项目的范围、时间与成本 344
- 13.1.1 项目范围管理 345
- 13.1.2 项目成本管理 345
- 13.1.3 项目时间管理 346
- 13.2 配置管理与文档管理 347
- 13.2.1 软件配置管理的概念 347
- 13.2.2 软件配置管理的解决方案 348
- 13.2.3 软件文档管理 351
- 13.3 软件需求管理 355
- 13.3.1 需求变更 355
- 13.3.2 需求跟踪 356
- 13.4 软件开发的质量与风险 356
- 13.4.1 软件质量管理 356
- 13.4.2 项目风险管理 359
- 13.5 人力资源管理 363
- 13.6 软件的运行与评价 368
- 13.7 软件过程改进 368
- 第14章 信息系统基础知识 371
- 14.1 信息系统概述 371
- 14.1.1 信息系统的组成 371
- 14.1.2 信息系统的生命周期 373
- 14.1.3 信息系统建设的原则 375
- 14.1.4 信息系统开发方法 376
- 14.2 信息系统工程 378
- 14.2.1 信息系统工程的概念 378
- 14.2.2 信息系统工程的内容 380
- 14.2.3 信息系统工程的总体规划 383
- 14.2.4 总体规划的方法论 389
- 14.3 政府信息化与电子政务 394
- 14.3.1 我国政府信息化的历程和策略 394
- 14.3.2 电子政务的内容 398
- 14.3.3 电子政务建设的过程模式和技术模式 399
- 14.4 企业信息化与电子商务 403
- 14.4.1 企业信息化概述 403
- 14.4.2 企业资源规划 406
- 14.4.3 客户关系管理 410
- 14.4.4 产品数据管理 413
- 14.4.5 企业门户 416
- 14.4.6 企业应用集成 418
- 14.4.7 供应链管理 421
- 14.4.8 电子商务概述 423
- 14.6 知识管理与商业智能 425
- 14.6.1 知识管理 425
- 14.6.2 商业智能 427
- 14.7 业务流程重组 427
- 第15章 基于中间件的开发 431
- 15.1 中间件技术 431
- 15.1.1 中间件的概念 432
- 15.1.2 中间件的分类 433
- 15.1.3 中间件产品介绍 434
- 15.2 应用服务器技术 435
- 15.2.1 应用服务器的概念 436
- 15.2.2 主要的应用服务器 438
- 15.3 J2EE 439
- 15.3.1 表示层 440
- 15.3.2 应用服务层 441
- 15.4 .NET 443
- 15.4.1 .NET平台 444
- 15.4.2 .NET框架 445
- 15.5 企业应用集成 450
- 15.6 轻量级架构和重量级架构 453
- 15.6.1 Struts框架 453
- 15.6.2 Spring框架 454
- 15.6.3 Hibernate框架 455
- 15.6.4 基于Struts、Spring和Hibernate的轻量级架构 456
- 15.6.5 轻量级架构和重量级架构的探讨 457
- 第16章 安全性和保密性设计 459
- 16.1 加密和解密 459
- 16.1.1 对称密钥加密算法 460
- 16.1.2 不对称密钥加密算法 461
- 16.2 数字签名与数字水印 463
- 16.2.1 数字签名 463
- 16.2.2 数字信封 465
- 16.3 数字证书与密钥管理 466
- 16.3.1 密钥分配中心 466
- 16.3.2 数字证书和公开密钥基础设施 467
- 16.4 安全协议 470
- 16.4.1 IPSec协议简述 471
- 16.4.2 SSL协议 474
- 16.4.3 PGP协议 477
- 16.5 计算机病毒与防治 480
- 16.5.1 计算机病毒概述 480
- 16.5.2 网络环境下的病毒发展新趋势 482
- 16.5.3 计算机病毒的检测与清除 483
- 16.5.4 计算机病毒的预防 485
- 16.6 身份认证与访问控制 486
- 16.6.1 身份认证技术 486
- 16.6.2 访问控制技术 492
- 16.7 网络安全体系 494
- 16.7.1 OSI安全架构 494
- 16.7.2 VPN在网络安全中的应用 496
- 16.8 系统的安全性设计 499
- 16.8.1 物理安全问题与设计 499
- 16.8.2 防火墙及其在系统安全中的应用 499
- 16.8.3 入侵检测系统 501
- 16.9 安全性规章 503
- 16.9.1 安全管理制度 503
- 16.9.2 计算机犯罪与相关法规 505
- 第17章 系统的可靠性分析与设计 508
- 17.1 可靠性概述 508
- 17.2 系统故障模型 509
- 17.2.1 故障的来源以及表现 509
- 17.2.2 几种常用的故障模型 510
- 17.3 系统配置方法 510
- 17.3.1 单机容错技术 511
- 17.3.2 双机热备份技术 511
- 17.3.3 服务器集群技术 512
- 17.4 系统可靠性模型 513
- 17.4.1 时间模型 513
- 17.4.2 故障植入模型 513
- 17.4.3 数据模型 514
- 17.5 系统的可靠性分析和可靠度计算 515
- 17.5.1 组合模型 515
- 17.5.2 马尔柯夫模型 517
- 17.6 提高系统可靠性的措施 519
- 17.6.1 硬件冗余 519
- 17.6.2 信息冗余 522
- 17.7 备份与恢复 523
- 第18章 软件的知识产权保护 525
- 18.1 著作权法及实施条例 525
- 18.1.1 著作权法客体 525
- 18.1.2 著作权法的主体 526
- 18.1.3 著作权 527
- 18.2 计算机软件保护条例 528
- 18.3 商标法及实施条例 529
- 18.4 专利法及实施细则 530
- 18.5 反不正当竞争法 532
- 第19章 标准化知识 534
- 19.1 标准化概论 534
- 19.2 标准分级与标准类型 534
- 19.2.1 标准分级 535
- 19.2.2 强制性标准与推荐性标准 536
- 第20章 应用数学 538
- 20.1 运筹方法 538
- 20.1.1 网络计划技术 538
- 20.1.2 线性规划 542
- 20.1.3 决策论 545
- 20.1.4 对策论 548
- 20.2 数学建模 549
- 第21章 虚拟化、云计算与物联网 551
- 21.1 虚拟化 551
- 21.1.1 虚拟化技术的分类 551
- 21.1.2 虚拟化的模式 553
- 21.2 云计算 554
- 21.2.1 云计算的特点 555
- 21.2.2 云计算的类型 556
- 21.2.3 云计算的应用 556
- 21.3 物联网 557
- 21.3.1 物联网的层次结构 558
- 21.3.2 物联网的相关领域与技术 559
- 21.3.3 物联网的应用 562