软件设计师(软设)软考
软件设计师是中国计算机技术职业资格考试(软考)中的一个中级资格考试
📱 想开始练习?微信搜索小程序「快练快考」,选择「软件设计师(软设)」即可开始刷题与模考。
章节目录
- 计算机系统基础 — 本章节涵盖:1) 计算机组成与体系结构——CPU组成(运算器、控制器)、指令系统与寻址方式、CISC与RISC、流水线技术(指令流水线、性能计算如吞吐率与加速比);2) 数据表示与运算——数制及转换、机器数编码(原码、反码、补码、移码)、浮点数表示与运算(IEEE 754)、校验码(奇偶校验、海明码、CRC);3) 存储系统——层次化存储结构、Cache的工作原理、映射方式(直接、全相联、组相联)与替换算法、主存储器编址、虚拟存储器的页式/段式/段页式管理、磁盘阵列(RAID 0~5等)等级与特性;4) 输入输出与总线——常见I/O控制方式(程序查询、中断、DMA、通道)、总线分类(数据/地址/控制,内/外/系统总线)与标准(PCI、USB等)、I/O端口编址方式;5) 系统可靠性与性能评价——可靠性指标与计算(MTTF/MTBF/MTTR)、串联与并联系统的可靠性模型、容错技术(冗余、表决)、系统性能指标(主频、MIPS、MFLOPS)。
- 操作系统基础 — 本章节涵盖:1) 操作系统类型与结构——操作系统的功能与特征(并发、共享、虚拟、异步)、批处理与分时及实时操作系统、嵌入式操作系统特点、内核态与用户态;2) 进程管理——进程概念与五态模型转换、进程控制块(PCB)、进程同步与互斥、信号量机制及PV操作、管程、进程通信(共享内存、消息传递、管道);3) 死锁——死锁产生的原因与必要条件、死锁预防与避免(银行家算法)、死锁检测与解除、资源分配图;4) 线程——线程模型(用户级/内核级)、多线程的并发与同步、线程与进程的比较;5) 处理机调度——三级调度的层次、常见调度算法(FCFS、SJF/SPF、优先级、时间片轮转、多级反馈队列);6) 存储管理——分区分配与内存碎片、分页与分段机制及段页式、虚拟存储器原理、页面置换算法(FIFO、LRU、OPT、CLOCK)、工作集模型与抖动消除;7) 设备管理——I/O软件层次、SPOOLing技术(假脱机)、磁盘调度算法(FCFS、SSTF、SCAN、CSCAN);8) 文件系统——文件逻辑结构与物理结构(连续、链接、索引)、目录结构、空闲空间管理(位图法、空闲链表)、文件共享与保护、权限控制。
- 数据库系统基础 — 本章节涵盖:1) 数据库系统基本概念——数据管理技术的发展、数据库系统的三级模式结构与两级映像、数据库管理系统(DBMS)功能、常见数据库模型(层次、网状、关系、面向对象);2) 关系数据库理论——关系模型及其核心概念(域、元组、属性、键、实体/参照/用户定义完整性约束)、关系代数(选择、投影、连接、除等)与元组关系演算;3) SQL语言——数据定义语言(DDL:CREATE、ALTER、DROP)、数据操作语言(DML:INSERT、UPDATE、DELETE)、数据查询语言(SELECT及其各种子句、连接查询、子查询、聚合函数、集合操作)、视图与索引的定义与作用、触发器、权限管理(GRANT/REVOKE);4) 关系数据库规范化——函数依赖、部分函数依赖、传递函数依赖、候选码与主属性,范式理论(1NF、2NF、3NF、BCNF)及其判定与分解,无损连接分解与保持函数依赖、Armstrong公理系统;5) 数据库设计——需求分析、概念结构设计(E-R模型、实体、联系、属性及E-R图绘制与集成)、逻辑结构设计(E-R图向关系模式的转换规则、关系模式优化)、物理设计;6) 事务管理——事务的ACID特性、并发控制带来的问题(丢失更新、不可重复读、读“脏”数据)、封锁协议(X锁、S锁、两段锁协议)与死锁处理、数据库恢复技术(日志、检查点、冗余);7) 分布式数据库与数据仓库基本概念——分布式数据库透明性、分片与复制,数据仓库的特征与OLAP、OLTP对比、数据挖掘概念。
- 计算机网络与信息安全 — 本章节涵盖:1) 计算机网络体系结构——OSI参考模型与TCP/IP协议模型各层功能、协议与接口;2) 物理层与数据链路层——常见传输介质、信道复用技术(FDM/TDM/CDM)、差错控制(CRC校验、海明码)、HDLC与PPP协议、CSMA/CD协议及MAC地址、以太网帧结构;3) 网络层——IPv4协议与IP地址分类、子网划分与CIDR、IPv6简介、ARP与RARP、ICMP协议,路由协议(RIP、OSPF、BGP)及路由表构成;4) 传输层——TCP协议(三次握手与四次挥手、流量控制与拥塞控制)、UDP协议特点与应用场景、常见端口号;5) 应用层——DNS域名解析协议、HTTP与HTTPS协议、FTP、SMTP/POP3、DHCP、Telnet等常见应用协议;6) 网络设备与组网——中继器、集线器、网桥、交换机、路由器、网关的工作原理与应用层次;7) 信息安全基础——信息安全要素(保密性、完整性、可用性)、对称加密与非对称加密体制(DES、AES、RSA等)、数字签名与数字证书、数字信封、认证协议(Kerberos、PKI);8) 网络安全技术——防火墙技术与安全策略(包过滤/状态检测/应用网关)、入侵检测与防护系统(IDS/IPS)、VPN(IPSec/SSL)、常见网络攻击与防护措施(拒绝服务、SQL注入、跨站脚本、钓鱼等)。
- 程序设计语言与编译原理 — 本章节涵盖:1) 程序语言基本概念——语言分类(命令式、函数式、逻辑式、面向对象)、语言的主要成分(数据类型、控制结构、函数)、后缀表达式;2) 语言处理程序——汇编程序、编译程序与解释程序的工作原理与区别、编译过程各阶段概述;3) 编译原理基础——文法分类(0/1/2/3型文法)、词法分析(正规式、有限自动机NFA/DFA及转换)、语法分析(上下文无关文法、推导与规约、语法树、LR分析法)、语义分析、中间代码生成(三元式、四元式、逆波兰式)、代码优化与目标代码生成;4) 程序运行时环境——参数传递方式(值传递、引用传递、传名/传结果)、作用域规则(静态作用域与动态作用域)、存储管理(静态分配、栈分配、堆分配及垃圾回收)。
- 数据结构与算法 — 本章节涵盖:1) 线性结构——线性表顺序与链式存储、单链表、双链表、循环链表基本操作,栈与队列的定义、存储结构及应用(如表达式求值、循环队列),串的匹配算法(朴素匹配、KMP);2) 数组与广义表——数组的存储地址计算、特殊矩阵压缩存储(对称、三角、三对角)、稀疏矩阵、广义表基本概念与操作;3) 树与二叉树——二叉树性质与存储、遍历方法(先序/中序/后序/层次)、线索二叉树、最优二叉树(哈夫曼树)及编码、树与森林的转换、平衡二叉树(AVL)、B树与B+树的基本概念及特性、红黑树概念;4) 图——图的邻接矩阵与邻接表存储、深度优先与广度优先遍历、最小生成树(Prim、Kruskal)、最短路径(Dijkstra、Floyd)、拓扑排序与关键路径(AOE网/AOV网);5) 查找——顺序查找、二分查找、分块查找、二叉排序树与平衡二叉树查找、散列函数构造与冲突处理(开放定址法、链地址法)、查找性能分析(ASL);6) 排序——插入排序(直接插入、希尔排序)、交换排序(冒泡、快速排序)、选择排序(简单选择、堆排序)、归并排序、基数排序的特点、时间复杂度与稳定性比较;7) 算法设计与分析——递归与分治策略、动态规划、贪心算法、回溯法、分支限界法,算法时间复杂度与空间复杂度分析,NP完全性概念。
- 软件工程与项目管理 — 本章节涵盖:1) 软件工程概述——软件危机及其原因、软件生命周期定义及各个阶段、过程模型(瀑布模型、V模型、增量模型、螺旋模型、喷泉模型、敏捷开发(Scrum、XP))、统一过程(RUP);2) 需求工程——需求获取与分析技术、需求分类、需求规格说明书(SRS)的编写、需求验证与变更管理、需求追踪;3) 软件测试——测试目标与原则、白盒测试(逻辑覆盖准则、基本路径测试、循环测试)、黑盒测试(等价类划分、边界值分析、决策表、因果图)、测试策略(单元测试、集成测试、确认测试、系统测试、回归测试、验收测试)、自动化测试与性能测试概念;4) 软件维护——软件维护的分类(改正性、适应性、完善性、预防性)、维护过程与逆向工程与重构;5) 项目管理——项目估算方法(代码行LOC、功能点FP、COCOMO模型)、进度管理(Gantt图、关键路径法CPM、PERT图)、风险管理过程(识别、分析、响应、监控)、软件配置管理(版本控制、变更控制、基线、配置库)、质量管理(CMMI、ISO/IEC 90003、评审与审计);6) 软件度量——软件质量模型(McCall、ISO/IEC 25010)、规模度量、复杂性度量(McCabe环路复杂度)。
- 软件分析与设计方法 — 本章节涵盖:1) 结构化分析方法——自顶向下、逐步求精思想,数据流图(DFD)的基本符号、层次化绘制(顶层图、0层图、子图)及父图与子图平衡原则,数据字典的构成,加工说明的描述工具(结构化语言、判定表、判定树);2) 结构化设计方法——变换分析与事务分析方法将DFD映射为模块结构图,模块结构图的表示,高内聚低耦合设计原则;3) 详细设计工具——程序流程图、N-S盒图、PAD图、伪代码的表示与使用;4) 面向对象基本概念——对象、类、封装、消息、继承与多态(重载、覆盖)的含义与实现,面向对象与结构化方法的比较;5) UML建模——用例图(参与者、用例及关系)、类图(类、接口、抽象类、关联、聚合、组合、依赖、泛化)、对象图、顺序图与通信图(协作图)、状态图与活动图、构件图与部署图的基本表示与应用场景;6) 面向对象设计原则——单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、组合复用原则、迪米特法则;7) 设计模式——创建型模式(单例、工厂方法、抽象工厂、建造者、原型)、结构型模式(适配器、桥接、组合、装饰、外观、享元、代理)、行为型模式(职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者)的基本意图、适用场景与典型结构;8) 面向对象分析与设计过程——分析模型与设计模型构建,基于UML的软件设计流程;9) 数据流图综合分析——根据系统说明补充缺失的数据流、外部实体、处理逻辑或数据存储,检查数据流图中常见错误(黑洞、奇迹、命名不一致等);10) 结构化方法中的数据库设计——结合结构化分析进行实体关系分析、初步E-R图绘制及向关系模式的转换。
- 多媒体基础 — 本章节涵盖:1) 多媒体基本概念——媒体分类(感觉、表示、显示、存储、传输媒体),多媒体技术特性(多样性、集成性、交互性、实时性);2) 音频技术——声音信号数字化原理(采样、量化、编码)、奈奎斯特采样定理,常见音频文件格式(WAV、MP3、MIDI),语音合成与语音识别概念,音频数据量计算;3) 图形与图像——色彩空间(RGB/CMYK/YUV)、分辨率(屏幕、图像)、颜色深度与图像数据量计算、图像文件格式(BMP、GIF、PNG、JPEG),图像压缩标准(JPEG、JPEG2000);4) 视频与动画——视频压缩标准(MPEG-1/2/4、H.264/AVC、H.265/HEVC),常见视频文件格式(AVI、MP4),动画原理与基本技术;5) 多媒体网络应用——流媒体技术基本原理、多媒体通信的QoS需求,超媒体与超文本概念。
- 标准化、知识产权与专业英语 — 本章节涵盖:1) 标准化基本知识——标准化的概念与分类(国际标准、国家标准、行业标准、企业标准),标准编号规则与常见标准化组织(ISO、IEC、ITU、IEEE、国家标准GB等);2) 知识产权法律法规——著作权法与软件著作权(保护期限、侵权判定、职务作品归属)、专利法(专利权主体、客体、授权条件、期限)、商标法(注册商标与保护期)、商业秘密及其保护、计算机软件保护条例的核心内容、常见开源协议(GPL、LGPL、MIT等);3) 专业英语——计算机与软件工程领域常见英文术语、缩写,简单英文技术文档阅读理解,英译中基本语句翻译。
- 软件设计综合实践 — 本章节涵盖:1) 数据流图综合分析与设计——根据功能描述补充完善分层数据流图中的缺失元素(外部实体、数据流、处理过程、数据存储),分析数据流图的一致性与完整性(平衡原则);2) 数据库逻辑设计实践——根据业务需求绘制或完善实体-联系图(E-R图),将E-R图向关系模式转换,确定主键和外键,应用范式理论进行模式规范化,进行复杂SQL查询与操作设计;3) UML建模与设计模式应用——绘制或补全给定场景的用例图、类图、顺序图、状态图等UML图形,识别并说明场景中所应用的设计模式及其代码实现要点;4) 算法与数据结构编程——阅读并完善C/C++/Java语言实现的典型算法代码(填空),理解并说明算法的设计思想(如动态规划状态转移方程、贪心策略)、数据结构使用、运行过程及时间/空间复杂度;5) 面向对象程序设计——基于C++或Java语言的代码补充与调试,重点涵盖类与对象的定义、继承与多态的实现以及常用设计模式的代码实现,掌握常见语法错误的排查。