第1章 软件设计师考试概论 1
1.1 计算机技术与软件专业技术资格(水平)考试 1
1.2 软件设计师考试备考方法 2
1.2.1 软件设计师考试心得 2
1.2.2 上午的考试 3
1.2.3 下午的考试 3
小结 3
第2章 计算机科学基础 4
2.1 考试目标与要求 4
2.2 数制及其转换 5
2.2.1 数制概念 5
2.2.2 不同进位计数制的特点 5
2.2.3 十进制数转换成二进制数 6
2.2.4 十进制数转换成八进制数或十六进制数 6
2.2.5 其他进制数转换成十进制数 7
2.2.6 二进制数与八进制、十六进制数间的转换 7
2.3 数据的表示 8
2.3.1 数的表示 8
2.3.2 非数值表示 9
2.3.3 校验方法和校验码 11
2.4 算术运算和逻辑运算 12
2.5 数学基础知识 12
2.5.1 命题逻辑、谓词逻辑的基础知识 12
2.5.2 常用数值计算 15
2.5.3 概率统计 18
2.5.4 运筹基本方法 20
2.6 常用数据结构 22
2.6.1 数组(静态数组、动态数组) 22
2.6.2 线性表 22
2.6.3 链表 27
2.6.4 栈 29
2.6.5 队列 30
2.6.6 树型结构 31
2.6.7 图 40
2.6.8 Hash的储存地址计算及解决冲突的方法 47
2.7 常用算法 49
2.7.1 排序 49
2.7.2 查找 57
2.7.3 数值计算方法 61
2.7.4 字符串处理方法 61
2.7.5 常用的数据压缩技术 61
2.7.6 递归 63
2.7.7 算法与数据结构的关系 63
2.7.8 算法效率 64
2.7.9 算法设计 65
2.7.10 算法描述 66
例题分析 67
强化训练 79
强化训练答案 93
小结 96
第3章 计算机系统知识 97
3.1 考试目标与要求 97
3.2 硬件知识 99
3.2.1 计算机系统的组成、体系结构分类及特性 99
3.2.2 存储系统 108
3.2.3 安全性、可靠性与系统性能评测基础知识 112
3.3 软件知识 116
3.3.1 操作系统知识 116
3.3.2 程序设计语言和语言处理程序的知识 126
3.4 计算机网络知识 132
3.4.1 网络体系结构(网络拓扑,OSI/RM,基本的网络协议) 132
3.4.2 传输介质、数据通信技术、交换技术、通信方式 137
3.4.3 常用网络设备和各类通信设备 143
3.4.4 Client/Server结构、Browser/Server结构 143
3.4.5 LAN拓扑、LAN的组网、LAN间连接、LAN-WAN连接 148
3.4.6 Internet基础知识以及应用 154
3.4.7 网络软件 160
3.4.8 网络管理 163
3.4.9 网络性能分析 164
3.5 数据库知识 164
3.5.1 数据库管理系统的功能和特征 164
3.5.2 数据库模型 164
3.5.3 数据模型、ER图、第一范式、第二范式、第三范式 165
3.5.4 数据操作(集合运算和关系运算) 166
3.5.5 数据库语言(SQL) 169
3.5.6 数据库的控制功能(并发控制,恢复,安全性,完整性) 170
3.5.7 数据仓库和分布式数据库基础知识 173
3.6 多媒体知识 174
3.6.1 多媒体系统基础知识、多媒体设备的性能特性、常用多媒体文件格式 174
3.6.2 简单图像的绘制和图形文件的处理方法 184
3.6.3 音频和视频信息的应用 185
3.6.4 多媒体创作工具及发展方向 186
3.7 系统性能知识 188
3.7.1 性能指标和性能设计 188
3.7.2 性能测试和性能评估 188
3.7.3 可靠性指标及计算、可靠性设计 191
3.7.4 可靠性测试和可靠性评估 192
3.8 计算机应用基础知识 192
3.8.1 信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等基础知识 192
3.8.2 远程通信服务基础知识 193
3.8.3 常用应用系统 193
例题分析 194
强化训练 232
强化训练答案 243
小结 248
第4章 系统开发和运行知识 249
4.1 考试目标与要求 249
4.2 软件工程、软件过程改进和软件开发项目管理知识 250
4.2.1 软件工程知识 250
4.2.2 软件开发生命周期各阶段的目标和任务 251
4.2.3 软件开发项目管理基础知识 253
4.2.4 主要的软件开发方法 254
4.2.5 软件开发工具与环境知识 255
4.2.6 软件过程改进知识 256
4.2.7 软件质量管理知识 256
4.2.8 软件开发过程评估 256
4.3 系统分析基础知识 257
4.3.1 系统分析的目的和任务 257
4.3.2 结构化分析方法 257
4.3.3 统一建模语言(UML) 259
4.3.4 系统规格说明书 259
4.4 系统设计知识 260
4.4.1 系统设计的目的和任务 260
4.4.2 系统总体结构设计 260
4.4.3 系统详细设计 261
4.4.4 系统设计说明书 262
4.5 系统实施知识 265
4.5.1 系统实施的主要任务 265
4.5.2 结构化程序设计、面向对象程序设计、可视化程序设计 265
4.5.3 程序设计风格 266
4.5.4 程序设计语言的选择 266
4.5.5 系统测试的目的、类型和方法 267
4.5.6 系统转换基础知识 269
4.6 系统运行和维护知识 269
4.6.1 系统运行管理基础知识 269
4.6.2 系统维护基础知识 270
4.6.3 系统评价基础知识 271
4.7 面向对象开发方法 271
4.7.1 面向对象开发概念 271
4.7.2 面向对象开发方法的优越性以及有效领域 273
4.7.3 面向对象分析方法概念 273
4.7.4 面向对象程序设计语言 274
4.7.5 面向对象数据库概念 275
例题分析 275
强化训练 293
强化训练答案 297
小结 298
第5章 其他相关知识 299
5.1 考试目标与要求 299
5.2 安生性知识 299
5.2.1 安全性基本概念 299
5.2.2 防治计算机病毒,防范计算机犯罪 300
5.2.3 防火墙、安全管理措施 300
5.2.4 风险分析、风险类型、抗风险措施和内部控制 302
5.3 标准化知识 305
5.3.1 标准化意识,标准化的发展,标准制定过程 305
5.3.2 国际标准、国家标准、行业标准、企业标准基本知识 306
5.3.3 代码标准、文件格式标准、安全标准、软件开发规范和文档标准知识 307
5.3.4 标准化机构 310
5.4 信息化基础知识 311
5.4.1 信息化意识 311
5.4.2 全球信息化趋势,国家信息化战略,企业信息化战略和策略 311
5.4.3 有关的法律、法规 314
5.4.4 远程教育、电子商务、电子政务等基础知识 315
5.4.5 企业信息资源管理基础知识 316
5.5 计算机专业英语 317
例题分析 317
强化训练 322
强化训练答案 327
小结 329
第6章 软件设计部分 330
6.1 考试目标与要求 330
6.2 外部设计 331
6.2.1 理解系统需求说明 331
6.2.2 系统开发的准备 331
6.2.3 设计系统功能 333
6.2.4 设计数据模型 334
6.2.5 编写外部设计文档 335
6.3 程序设计 335
6.4 系统实施 336
6.4.1 选择合适的程序设计语言 336
6.4.2 系统测试报告 337
6.5 软件工程 337
6.5.1 软件生命周期和软件成本模型 337
6.5.2 定义软件需求的方法 338
6.5.3 软件设计 339
6.5.4 软件设计方法 340
6.5.5 程序设计 341
6.5.6 软件测试的原则与方法 341
6.5.7 软件质量 341
6.5.8 软件开发环境和开发工具 342
6.5.9 软件工程发展趋势 343
6.5.10 设计评审 346
6.6 软件开发规范化 347
6.7 下午试题解题的一般方法 352
6.7.1 软件设计题要点 352
6.7.2 答题注意事项 353
例题分析 353
强化训练 357
强化训练答案 384
小结 392
附录 软件设计师考试大纲(2004年新版) 393
A.1 考试说明 393
A.1.1 考试要求 393
A.1.2 考试目的 393
A.1.3 设置的科目 393
A.2 考试范围 393
A.2.1 考试科目1:计算机与软件工程知识 393
A.2.2 考试科目2:软件设计 397
参考文献 400