内 容 简 介
本书以国家最新颁布的软件设计师考试大纲和教程为依据,以对考生进行综合指导、全面提高考生应试能力为原则,在深入研究考试真题基础上结合考前辅导班教师的实际教学经验编写而成。
全书共分13章,每章章节开始均设置有“考核说明”板块,简要概括考生需要了解和掌握的内容。书中精选历年真题穿插在知识点的讲解中,有利于考生理解知识点。每章结尾设置有“应试加油站”,该板块分为考频统计和解题技巧两部分,以引导考生掌握重点内容,提高解题能力和综合应用能力。同时每章还有过关习题,方便读者一点一练,巩固提高。书后附有两套模拟试卷并给以详细的分析与解答,可以让考生积累考试经验。
本书主要面向参加软件设计师考试的应试者,同时也可作为高等院校相关课程的辅导书,以及培训班的教材。
前 言
在信息技术和软件产业快速发展的推动下,计算机技术与软件专业技术资格(水平)考试(通常简称“软考”)已经成为我国国家级的IT专业人员从业资格考试。软考通过后颁发的资格证书不仅在全国范围内有效,部分级别的考试还可以与中日、中韩相应级别的考试互认。因此软考的权威性已得到社会和广大用人单位的认可。
软考不仅注重广度,也有一定的深度,因此难度大,考生平均通过率较低。为了更好地服务于考生,引导考生在较短的时间内掌握解题要领,并顺利通过考试,我们本着“标准、实用、严谨”的原则,组织多位一线教师和全国计算机技术与软件专业技术资格(水平)考试试题研究组的成员精心分析历年真题和考试大纲,去冗存精,推出这样一本切实为广大考生服务的软件设计师考试用书。全书突出以下特点。
(1) 紧扣国家最新考试大纲和教程,对大纲规定的知识点进行了细化和深化,精讲重点、难点。
(2) 结合教程、真题讲解和模拟试题三者为一体,达到“一本通”的效果,可为考生节省复习时间和花费。
(3) 精选历年真题穿插在知识点的讲解中,有利于考生理解知识点。真题是备考的最佳资料,是考生把握考试动态的最好途径,本书正文对最近3年考试的真题进行了分类解析。
(4) 每章均设有“应试加油站”,包括“考频统计”和“解题技巧”两个子板块,通过统计最近3年考试涉及的真题,突出考试重点,方便考生有所侧重;“解题技巧”精选已考真题,附有详尽解析,可以帮助考生掌握解题的各种技巧,熟练解题方法。
(5) 书后附有两套全真模拟试题,便于考生提前进行实战演练。试卷的命题风格、考点分布和难度水平与真题一致。
全书共13章,由何明、朱宏洁、秦立山、庄琪主编,参与本书资料收集和编写的还有何光明、王珊珊、毛幸甜、卢振侠、周海霞、吴婷、石雅琴、郑爱琴、曹冬梅、陈珍、陈凤、杨橙、陈莉萍等。本书在编写过程中,编者参考了许多相关的书籍和资料,在此对这些参考文献的作者表示感谢。
因编者水平有限,书中难免存在错漏和不妥之处,欢迎广大读者批评指正。
编 者
目 录
第1章 计算机系统知识 1
1.1 计算机系统的基础知识 2
1.1.1 计算机系统硬件 2
1.1.2 中央处理单元 2
1.1.3 数据表示 4
1.1.4 校验码 5
1.2 计算机体系结构 6
1.2.1 计算机体系结构的分类 7
1.2.2 指令系统 7
1.3 存储系统 10
1.3.1 存储器的层次结构与分类 10
1.3.2 高速缓存 11
1.3.3 相联存储器与虚拟存储器 12
1.3.4 外存储器 13
1.3.5 磁盘阵列技术 14
1.4 输入/输出技术 14
1.4.1 常见的内存与接口的
编址方式 14
1.4.2 CPU与外设之间的数据
传送方式 15
1.5 总线结构 16
1.6 计算机安全 16
1.6.1 计算机安全概述 17
1.6.2 网络攻击手段 17
1.6.3 病毒防护 19
1.6.4 防火墙、漏洞扫描与
入侵检测 20
1.6.5 加密技术和认证技术 22
1.7 可靠性与系统性能评测基础知识 25
1.7.1 计算机可靠性 25
1.7.2 计算机系统的性能评价 26
1.8 应试加油站 27
1.8.1 考频统计 27
1.8.2 解题技巧 27
1.9 过关习题 34
第2章 程序语言基础 39
2.1 程序语言概述 40
2.1.1 程序设计语言的基本概念 40
2.1.2 程序设计语言的基本成分 42
2.2 语言处理程序基础 44
2.2.1 汇编语言的基本原理 44
2.2.2 编译程序的基本原理 45
2.2.3 解释程序的基本原理 48
2.3 文法和有限自动机 48
2.3.1 文法和语言的形式描述 48
2.3.2 词法分析 49
2.3.3 正规式与有限自动机之间的
转换 52
2.3.4 词法分析器的构造 53
2.3.5 语法分析 53
2.4 应试加油站 54
2.4.1 考频统计 54
2.4.2 解题技巧 55
2.5 过关习题 59
第3章 操作系统 63
3.1 操作系统基础知识 64
3.2 处理机管理 65
3.2.1 基本概念 65
3.2.2 进程间的通信 67
3.2.3 进程调度 68
3.2.4 死锁 68
3.2.5 线程 69
3.3 存储管理 70
3.3.1 基本概念 70
3.3.2 分区存储管理 70
3.3.3 分页存储管理 71
3.3.4 分段存储管理 72
3.3.5 段页式存储管理 73
3.3.6 虚拟存储管理 74
3.4 设备管理 75
3.4.1 设备管理概述 75
3.4.2 I/O软件 76
3.4.3 设备管理采用的相关
缓冲技术 76
3.4.4 磁盘调度 77
3.5 文件管理 78
3.5.1 文件与文件系统 78
3.5.2 文件的结构和组织 79
3.5.3 文件目录 79
3.5.4 存取方法和存取空间的管理 81
3.5.5 文件的使用 81
3.5.6 文件的共享和保护 82
3.5.7 系统的安全 82
3.6 应试加油站 83
3.6.1 考频统计 83
3.6.2 解题技巧 83
3.7 过关习题 89
第4章 软件工程基础知识 93
4.1 软件工程概述 94
4.1.1 软件危机 94
4.1.2 计算机软件 94
4.1.3 软件工程基本原理 95
4.1.4 软件生存周期 95
4.1.5 软件过程 96
4.2 软件过程模型 98
4.2.1 瀑布模型 98
4.2.2 增量模型 99
4.2.3 演化模型 99
4.2.4 喷泉模型 100
4.2.5 基于构件的开发模型 101
4.2.6 形式化方法模型 101
4.3 软件开发方法 101
4.3.1 结构化方法 102
4.3.2 Jackson方法 102
4.3.3 原型方法 102
4.3.4 面向对象开发方法 102
4.3.5 敏捷方法 103
4.4 软件工具和软件开发环境 103
4.4.1 软件工具 104
4.4.2 软件开发环境 104
4.5 软件项目管理 104
4.5.1 软件项目管理的范围 104
4.5.2 软件项目估算 105
4.5.3 进度管理 106
4.5.4 软件项目的组织 108
4.5.5 软件质量管理 108
4.5.6 软件配置管理 111
4.6 风险管理 112
4.6.1 软件风险 112
4.6.2 风险识别 113
4.6.3 风险预测 113
4.6.4 风险评估 113
4.6.5 风险控制 114
4.7 软件度量 114
4.7.1 软件度量分类 114
4.7.2 软件复杂性度量 115
4.8 应试加油站 116
4.8.1 考频统计 116
4.8.2 解题技巧 117
4.9 过关习题 126
第5章 系统开发与运行 131
5.1 系统分析与设计概述 132
5.1.1 系统分析概述 132
5.1.2 系统设计的基本原理 132
5.1.3 系统设计的内容和步骤 134
5.1.4 系统总体结构设计 136
5.1.5 系统文档 137
5.2 需求分析与需求工程 138
5.3 结构化分析方法 139
5.4 结构化设计方法 148
5.4.1 结构化设计的步骤 148
5.4.2 数据流图到软件体系结构的
映射 148
5.5 Web应用系统分析与设计 149
5.5.1 WebApp的特性 149
5.5.2 Web应用系统分析模型 149
5.6 用户界面设计 150
5.7 测试基础知识 151
5.7.1 系统测试与调试 151
5.7.2 传统软件的测试策略 152
5.7.3 测试方法 154
5.7.4 调试 156
5.7.5 测试Web应用系统 156
5.8 系统运行和维护知识 156
5.8.1 系统转换 156
5.8.2 系统维护概述 157
5.8.3 系统评价 158
5.9 应试加油站 159
5.9.1 考频统计 159
5.9.2 解题技巧 160
5.10 过关习题 175
第6章 网络和多媒体基础知识 179
6.1 网络概述 180
6.1.1 计算机网络的分类 180
6.1.2 网络的拓扑结构 180
6.1.3 ISO/OSI网络体系结构 181
6.2 网络互连硬件 182
6.2.1 网络互连设备 182
6.2.2 网络的传输介质 184
6.2.3 组建网络 185
6.3 网络的协议与标准 185
6.3.1 网络的标准 185
6.3.2 局域网协议 186
6.3.3 广域网协议 187
6.3.4 TCP/IP协议簇 188
6.4 Internet及其应用 190
6.4.1 Internet地址 190
6.4.2 Internet服务 193
6.5 网络安全 195
6.5.1 网络的信息安全 195
6.5.2 防火墙技术 196
6.6 多媒体概述 196
6.6.1 多媒体的基本概念 197
6.6.2 虚拟现实的基本概念 198
6.6.3 声音 198
6.6.4 图形和图像 200
6.6.5 动画和视频 203
6.7 多媒体网络 205
6.7.1 超文本与超媒体 205
6.7.2 流媒体 206
6.8 多媒体计算机系统 206
6.8.1 多媒体计算机硬件系统 206
6.8.2 多媒体计算机软件系统 206
6.9 应试加油站 207
6.9.1 考频统计 207
6.9.2 解题技巧 208
6.10 过关习题 213
第7章 数据库技术 215
7.1 基本概念 216
7.1.1 数据库系统 216
7.1.2 数据库管理系统 216
7.1.3 数据库的三级模式结构 216
7.1.4 两级映像 216
7.2 数据模型 217
7.2.1 数据模型的基本概念 217
7.2.2 E-R模型 218
7.3 关系代数 219
7.3.1 关系数据库的基本概念 219
7.3.2 五种基本的关系代数运算 221
7.3.3 扩展的关系代数运算 222
7.4 关系数据库SQL简介 223
7.4.1 SQL数据库体系结构 224
7.4.2 SQL数据定义 224
7.4.3 SQL数据查询 225
7.4.4 SQL数据更新 229
7.4.5 SQL的访问控制 229
7.4.6 嵌入式SQL 230
7.5 关系数据库的规范化 231
7.5.1 函数依赖 231
7.5.2 规范化 232
7.5.3 模式分解及分解应具有的
特性 233
7.6 数据库的控制功能 234
7.6.1 事务管理 234
7.6.2 数据库的备份与恢复 234
7.6.3 并发控制 235
7.7 数据库的分析与设计 235
7.7.1 数据库设计的步骤 236
7.7.2 数据库设计的方法 236
7.8 应试加油站 242
7.8.1 考频统计 242
7.8.2 解题技巧 242
7.9 过关习题 256
第8章 数据结构 261
8.1 线性结构 262
8.1.1 线性表 262
8.1.2 栈和队列 264
8.1.3 串 266
8.2 数组、矩阵和广义表 268
8.2.1 数组 268
8.2.2 矩阵 269
8.2.3 广义表 269
8.3 树 270
8.3.1 树的定义 270
8.3.2 二叉树 271
8.4 图 274
8.4.1 图的定义 274
8.4.2 存储结构 276
8.4.3 图的遍历 276
8.4.4 生成树和最小生成树 277
8.4.5 拓扑排序和关键路径 277
8.4.6 最短路径 278
8.5 查找 278
8.5.1 查找的基本概念 278
8.5.2 静态查找表 279
8.5.3 动态查找表 280
8.5.4 哈希表及其查找 281
8.6 排序 282
8.6.1 排序的基本概念 282
8.6.2 简单排序 282
8.6.3 希尔排序 283
8.6.4 快速排序 283
8.6.5 堆排序 284
8.6.6 归并排序 284
8.6.7 基数排序 285
8.6.8 内部排序方法的比较和
选择 285
8.6.9 外部排序 286
8.7 应试加油站 286
8.7.1 考频统计 286
8.7.2 解题技巧 287
8.8 过关习题 293
第9章 算法与设计 297
9.1 算法设计与分析基础 298
9.1.1 算法 298
9.1.2 算法设计与分析 300
9.2 分治法 301
9.2.1 递归的概念 301
9.2.2 分治法的基本思想 301
9.2.3 典型应用:Hanoi塔问题 301
9.3 动态规划法 304
9.4 贪心法 307
9.5 回溯法 310
9.6 应试加油站 311
9.6.1 考频统计 311
9.6.2 解题技巧 312
9.7 过关习题 322
第10章 面向对象技术 325
10.1 面向对象的基本概念 326
10.2 面向对象程序设计 328
10.2.1 面向对象程序设计语言 328
10.2.2 面向对象程序设计语言中的OOP机制 329
10.3 面向对象开发技术 330
10.4 面向对象分析与设计 331
10.4.1 OOA和OOD法 331
10.4.2 Booch的OOD法 331
10.4.3 OMT法 332
10.5 UML概述 332
10.5.1 事物 332
10.5.2 关系 333
10.5.3 UML中的图 334
10.6 设计模式 343
10.6.1 设计模式的要素 343
10.6.2 创建型设计模式 344
10.6.3 结构型设计模式 344
10.6.4 行为设计模式 346
10.7 C++程序设计 346
10.7.1 类和对象 347
10.7.2 构造函数和析构函数 347
10.7.3 继承与派生 348
10.7.4 多态 349
10.8 Java程序设计 357
10.8.1 基本概念 357
10.8.2 基本语法 358
10.8.3 程序设计 359
10.9 应试加油站 367
10.9.1 考频统计 367
10.9.2 解题技巧 368
10.10 过关习题 399
第11章 标准化和软件知识
产权基础 409
11.1 标准化基础知识 410
11.1.1 标准化的基本概念 410
11.1.2 标准化组织 411
11.1.3 ISO9000标准简介 412
11.1.4 ISO/IEC15504过程评估
标准简介 412
11.2 知识产权基础知识 413
11.2.1 知识产权的基本概念 413
11.2.2 计算机软件著作权 414
11.2.3 计算机软件的商业秘密权 418
11.2.4 专利权 419
11.2.5 商标权 421
11.2.6 企业知识产权的保护 422
11.3 应试加油站 423
11.3.1 考频统计 423
11.3.2 解题技巧 423
11.4 过关习题 425
第12章 计算机专业英语 427
12.1 专业英语试题分析 428
12.1.1 软件工程专业词汇 428
12.1.2 专业英语试题分析 434
12.2 应试加油站 436
12.2.1 考频统计 436
12.2.2 解题技巧 437
12.3 过关习题 440
第13章 模拟试卷及参考答案 443
13.1 模拟试卷 444
13.1.1 模拟试卷一 444
13.1.2 模拟试卷二 462
13.2 模拟试卷参考答案 478
13.2.1 模拟试卷一参考答案 478
13.2.2 模拟试卷二参考答案 496
参考文献 512