软考软件设计师考试大纲

合集下载

2023软考架构师考试大纲

2023软考架构师考试大纲

2023软考架构师考试大纲摘要:一、前言二、考试目标1.系统架构设计师2.软件架构师三、考试科目及内容1.计算机与网络知识2.信息系统知识3.系统设计与管理4.软件工程5.信息安全6.标准化与知识产权四、考试形式与时间五、参考资料正文:【前言】2023 年软考架构师考试大纲旨在为参加软件架构师和系统架构设计师考试的考生提供参考依据。

本大纲涵盖了计算机与网络知识、信息系统知识、系统设计与管理、软件工程、信息安全、标准化与知识产权等方面的内容。

【考试目标】2023 年软考架构师考试大纲分为两个层次:系统架构设计师和软件架构师。

系统架构设计师:具备计算机与网络知识、信息系统知识、系统设计与管理、软件工程、信息安全、标准化与知识产权等方面的综合能力,能够独立完成系统架构设计、评估和优化的专业人才。

软件架构师:具备计算机与网络知识、信息系统知识、软件工程、信息安全、标准化与知识产权等方面的综合能力,能够独立完成软件架构设计、评估和优化的专业人才。

【考试科目及内容】2023 年软考架构师考试大纲共包括六科内容:1.计算机与网络知识:涵盖计算机硬件、操作系统、计算机网络等方面的基础知识。

2.信息系统知识:涵盖信息系统的基本概念、系统集成、项目管理、企业应用等方面的知识。

3.系统设计与管理:涵盖系统设计原理、设计方法、系统评估与优化等方面的知识。

4.软件工程:涵盖软件开发过程、软件需求分析、软件设计、软件测试等方面的知识。

5.信息安全:涵盖信息安全的基本概念、安全策略、安全技术、安全管理等方面的知识。

6.标准化与知识产权:涵盖标准化知识、知识产权保护、知识产权管理等方面的知识。

【考试形式与时间】2023 年软考架构师考试采用闭卷、笔试形式进行,考试时间为120 分钟。

【参考资料】参加考试的考生可参考以下资料:1.《计算机与网络基础知识》2.《信息系统知识》3.《系统设计与管理》4.《软件工程》5.《信息安全》6.《标准化与知识产权》本考试大纲的解释权归我国相关部门所有。

2017年软考软件设计师考试培训指南与大纲

2017年软考软件设计师考试培训指南与大纲

2017年软考软件设计师考试培训指南与大纲考试内容说明:“(Ⅰ)”、“(Ⅱ)”和“(Ⅲ)”表示掌握或熟悉的程度。

“(Ⅰ)”是指对所列只是要理解其内容及含义理解。

“(Ⅱ)”是指在有关问题中能直接使用一般应用“(Ⅲ)”是指对所列知识要理解其确切含义及与其它知识的联系,能够进行叙述和解释,并能在实际问题的分析、综合、推理和判断等过程中运用综合应用。

考试科目1 计算机与软件工程知识1.计算机科学基础知识1.1.数制及其转换●二进制、八进制、十进制和十六进制等常用数制及其相互转换(Ⅱ)1.2.计算机内数据的表示●数的表示带符号定点数据(纯整数和纯小数)的原码、反码、补码和移码表示(Ⅱ)浮点数(实数)的表示(Ⅱ)溢出的概念(Ⅱ)●非数值表示(字符和汉字表示、声音表示、图像表示)(补充)1.3.算数运算和逻辑运算●计算机中的二进制数运算方法补码表示下定点数的加、减、乘、除运算方法(Ⅰ)●逻辑代数的基本运算基本的逻辑运算与、或、非、异或(Ⅱ)1.4.其他数学基础知识●常用数值计算矩阵和行列式、近似求解、插值、数值积分、常微分方程等常用的数值运算方法及运算误差的概念(Ⅰ)●排列组合概率论应用应用统计(数据的统计分析)(Ⅰ)●编码基础(ASCII码汉字编码奇偶校验海明码霍夫曼码、循环冗余码)奇偶校验码、海明码、霍夫曼码、循环冗余码的编码方法及指定实例时校验码的计算(Ⅰ)●命题逻辑、谓词逻辑、形式逻辑的基础知识(Ⅰ)●运筹基本方法(补充)2.计算机系统基础知识2.1.计算机硬件基础知识2.1.1.计算机系统的组成、体系结构分类及特性●CPU、存储器的组成、性能和基本工作原理CPU的基本组成结构(Ⅰ)存储器的组成及特点:内存、外存、缓存Cache、闪存(Ⅱ)存储器的性能指标定义:存取周期、存储容量和可靠性(Ⅱ)●常用I/O设备、通信设备的性能以及基本工作原理(Ⅰ)●I/O接口的功能、类型和特性CPU在与I/O设备进行数据交换时存在的主要问题:速度不匹配、时序不匹配、信息格式不匹配、信息类型不匹配(Ⅰ)CPU与外设之间的数据交换必须通过接口来完成,I/O接口的主要功能(Ⅱ)接口的控制方式及特点:CPU通过接口对外设进行控制的方式程序查询方式、中断处理方式、DMA(直接存储器存取)传送方式(Ⅱ)●CISC/RISC流水线操作多处理机并行处理RISC(精简指令集计算机)和CISC(复杂指令集计算机)的定义和特点(Ⅰ)流水线的定义及操作特点(Ⅱ)多处理机的概念(Ⅰ)单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令流单数据流(MISD)、多指令流多数据流(MIMD)的概念和特点(Ⅱ)并行处理的基本概念(Ⅰ)2.1.2.存储系统●虚拟存储器基本工作原理多级存储体系虚拟存储器的定义和管理方式(Ⅰ)多级存储体系的组成及特点(Ⅱ)●RAID类型和特性RAID的定义和基本特点RAID0、RAID7、RAID10、RAID53等规范的特征(Ⅰ)2.1.3.可靠性与系统系能评测基础知识●诊断与容错容错技术与容错控制(Ⅰ)●系统可靠性分析评价系统的可靠性定义(Ⅰ)串联系统特点及可靠性度量(Ⅱ)并联系统特点及可靠性度量(Ⅱ)模冗余系统等可靠性数学模型的特点(Ⅰ)●计算机系统性能评测方法平均无故障时间(MTBF)的定义(Ⅰ)平均修复时间(MTRF)的定义(Ⅰ)可用性的定义(Ⅰ)2.2.计算机软件基础知识2.2.1.数据结构与算法知识●数组二维数组:按行存储和按列存储,数据元素存储位置的计算(Ⅱ) 特殊矩阵和稀疏矩阵的特点及压缩存储(Ⅱ)静态数组(固定容量数组)(Ⅰ)动态数组(根据应用需要申请或扩充数组的容量)(Ⅰ)●链表线性表的定义和基本运算(Ⅰ)线性表的顺序存储和特点(Ⅰ)单向链表、双向链表和环形链表的运算特点(Ⅱ)指针、结点、头指针和头结点的概念(Ⅱ)●队列和栈队列的定义、运算和存储结构(Ⅱ)栈的定义、运算和存储结构(Ⅱ)●树二叉树的定义(Ⅱ)满二叉树、完全二叉树的定义(Ⅱ)二叉树的性质(Ⅱ)二叉树的顺序存储和二叉链表存储(Ⅱ)二叉树的遍历:先序、中序、后序和层序(Ⅱ)最有二叉树的定义、特点和构造方法(Ⅱ)二叉排序树的定义和运算(Ⅱ)平衡二叉树、B-树、B+树的概念(Ⅰ)树与二叉排序树的相互转换(Ⅱ)●图的定义、存储和基本操作图结构的定义(Ⅰ)图的邻接矩阵存储和邻接表存储(Ⅱ)图的广度优先遍历和深度优先遍历操作(Ⅱ)●杂凑(Hash表)哈希(杂凑)表的构造、冲突的处理和元素的查找,平均查找长度的计算(Ⅱ)●常用的排序算法(排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的关系算法)插入排序、冒泡排序、选择排序算法(Ⅲ)希尔排序、快速排序、堆排序、归并排序方法及特点(Ⅱ)顺序查找、二分查找方法及特点(Ⅲ)模式匹配算法(Ⅱ)图的遍历算法、求最小生成树算法、拓扑排序算法、求最短路径算法、求关键路径算法的算法思想(Ⅱ)递归算法的设计方法(Ⅱ)●算法描述和分析算法的实现与数据结构的关系(Ⅱ)算法的效率分析(Ⅱ)算法的流程图、伪代码描述方式(Ⅱ)算法的时间复杂性和空间复杂性概念(Ⅰ)2.2.2.操作系统知识●操作系统的内核(中断控制、进程、线程概念)操作系统内核的功能和基本组成(Ⅰ)内核与用户程序的运行方式差别(Ⅰ)内核运行、中断控制的基本知识(Ⅰ)●处理机管理(状态转换、共享与互斥、分时轮转、抢占、死锁)进程、线程等基本概念,程序顺序执行和并发执行的基本特征(Ⅰ)进程的基本组成,进程的基本状态及状态间的切换三态模型与五态模型(Ⅱ)进程间的通信:同步与互斥、临界资源、临界区、信号量、PV操作(Ⅱ)管程的概念(Ⅰ)进程调度方式及常用的进程调度算法(Ⅱ)死锁的定义、产生死锁的原因、产生死锁的必要条件(Ⅱ)●存储管理(主存保护、动态连接分配、分段、分页、虚存)虚拟地址、地址空间、存储空间、地址重定位的基本概念(Ⅰ)分页存储管理(Ⅱ)程序的局部性特点,虚拟存储器的实现方法(Ⅰ)页面置换算法:最佳置换算法、先进先出置换算法、最近最久未使用置换算法、最近未用置换算法(Ⅱ)●设备管理(I/O控制、假脱机)设备分类方法(Ⅰ)通道、DMA的概念及特点(Ⅰ)Spooling(SimultaneousPeripheralOperationsOnLine)定义、组成和结构(Ⅰ)磁盘调度算法:先来先服务(First-Come-First-Served,FCFS)、最短寻道时间优先SSTF (ShortestSeekTimeFirst)、扫描算法(SCAN)、单向扫描调度算法(CSCAN)、磁盘调度算法的基本思想(Ⅱ)●文件管理(文件目录、文件组织、存取方法、存取控制、恢复处理)文件、文件系统、文件类型、文件组织结构的基本概念(Ⅰ)文件的物理结构:连续结构、链接结构、索引结构、多个物理块的索引表结构的基本概念(Ⅰ)目录,一级目录、二级目录、多级目录的基本概念(Ⅰ)文件的存取方法:顺序存取法、直接存取法、按键存取法的基本概念(Ⅰ)文件存储空间的管理:位示图、空闲区表、空闲块链、成组链接法基本思想(Ⅰ)●作业管理(作业调度、作业控制语言(JCL)、多道程序设计)作业的状态(提交、后备、执行、完成)、作业控制块和作业后备队列的基本概念(Ⅰ) 先来先服务、短作业优先、响应比高优先作业调度算法思想(Ⅱ)优先级调度算法思想(Ⅱ)●网络操作系统和嵌入式操作系统基础知识网络操作系统的特征和分类(Ⅰ)嵌入式操作系统的特点(Ⅰ)操作系统的配置(Ⅰ)2.2.3.程序设计语言和语言处理程序知识●汇编、编译、解释系统的基础知识和基本工作原理语言翻译的基本概念(Ⅰ)汇编的基本方法(Ⅰ)编译的基本过程及编译各阶段的基本任务(Ⅰ)解释的基本过程(Ⅰ)有限自动机的定义及构造(Ⅱ)正规表达式的定义、构造及特点(Ⅱ)上下文无关文法的定义(Ⅰ)句子的推导(Ⅱ)●程序设计语言的基本成分(数据、运算、控制和传输),程序调用的实现机制程序设计语言的数据、运算、控制及输入输出处理机制(Ⅰ)函数的参数传递机制:传值、传地址(Ⅱ)●各类程序设计语言的主要特点和适用情况过程式程序语言、面向对象程序设计语言、函数式程序设计语言、逻辑程序设计语言的基本特点(Ⅰ)脚本语言的特点(Ⅰ)2.2.4.数据库知识●数据库模型(概念模式、外模式、内模式)概念模式(模式)、外模式(用户模式或子模式)、内模式(物理模式)的基本概念(Ⅱ) 三级模式和两级映像(模式/内模式映像、外模式/模式映像)的基本概念(Ⅱ)数据的独立性(数据的逻辑独立性、数据的物理独立性)的基本概念(Ⅱ)●数据模型ER图规范化数据模型:层次模型、网状模型、关系模型、面向对象模型的基本概念(Ⅰ);关系模型的应用方法(Ⅱ)数据模型的三要素(数据结构、数据操作、数据的约束条件)的含义(Ⅰ)E-R模型方面的基本概念(Ⅱ);E-R图E-R模型向关系模型的转换的基本方法(Ⅱ) 实体中主键、候选键、外键方面的基本概念(Ⅱ)联系类型(一对一1:1、一对多1:n、多对多m:n)的基础知识(Ⅱ)属性(简单属性、复合属性、单值属性、多值属性、NULL属性、派生属性)的含义(Ⅰ) 关系模式规范化的程度:第一范式、第二范式、第三范式(Ⅰ)●数据库操作(集合运算和关系运算)关系数据库、关系数据库模式的基本概念(Ⅱ)关系模型的完整性规则:实体完整性、参照完整性、用户定义完整性的基本概念(Ⅰ) 5种基本的关系运算(并、差、笛卡尔积、投影、选择)的基本概念(Ⅰ);扩展的关系运算中选择、投影、连接运算方法(Ⅱ);扩展的关系运算中的除法、外联接方面的基本概念(Ⅰ)●数据库语言(SQL)数据定义语言(DDL):CREATE TABLE(创建表)使用方法(Ⅱ)数据操纵语言(DML):SELECT(查询)、INSERT(插入)、DELETE(删除)和UPDATE(修改)使用方法(Ⅱ)完整性(integrity)定义:PRIMAR YKEY、FOREIGN KEY REFERENCES使用方法(Ⅱ)权限管理(authorization):GRANT和REVORK使用方法(Ⅱ)●数据库管理系统的功能和特征数据库管理系统的特征、功能与组成、文件系统的特征文件系统与数据库管理系统的差异的基本概念(Ⅰ)●数据库的控制功能(并发控制、恢复、安全性、完整性)事务的基本概念、事务的特性、故障的类型的基础知识(Ⅰ)数据不一致性(丢失修改、不可重复读、读脏数据)的基础知识(Ⅰ)并发控制中活锁/死锁、可串行性、两段锁协议的基本概念(Ⅰ)安全控制(权限机制、视图机制、加密机制)的基本概念(Ⅰ)事务、事务的特性、事务的状态、事务状态的转换的基本概念(Ⅰ)故障的类型、故障的恢复技术、恢复策略的基础知识(Ⅰ)并发控制后会产生丢失修改、不可重复读、读脏数据三类数据不一致性(Ⅰ),造成数据不一致性的原因(Ⅱ)并发控制中事务的调度(串行调度、并行调度)、活锁/死锁、可串行性、两段锁协议的基础知识(Ⅰ);造成数据不一致性的原因(Ⅰ)安全控制(权限机制、视图机制、加密机制)的基本概念(Ⅰ)●数据仓库和分布式数据库基础知识数据仓库(DataWarehouse,DW):基本特性、数据模式、体系结构的基本概念(Ⅰ) 数据仓库模型:企业仓库、数据集市和虚拟仓库的基本概念(Ⅰ)分布式数据库的定义、体系结构、设计目标、分布数据独立的基本概念(Ⅰ)2.3.计算机网络知识●网络体系结构(网络拓扑、OSI/RM、基本的网络协议)网络拓扑(Ⅱ)OSI/RM、TCP/IP(Ⅱ)常用的网络协议(Ⅱ)●传输介质传输技术传输方法传输控制(Ⅰ)●常用网络设备和各类通信设备的功能和特点(Ⅰ)●Client-Server结构、Browser-Server结构的特点(Ⅰ)●LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接(补充)●局域网拓扑结构(Ⅱ)存取控制(Ⅰ)网间互联(Ⅰ)●Internet和Intranet基础知识以及应用(Ⅱ)●网络软件(Ⅰ)●网络管理及网络性能分析(Ⅰ)2.4.多媒体基础知识●多媒体系统基础知识媒体分类:感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体的基本概念(Ⅰ) 多媒体、超媒体、流媒体的基本概念(Ⅰ)色彩的三基色、彩色空间、三要素基本概念(Ⅰ)图形和图像图像分辨率与显示分辨率、像素深度、真伪彩色图像的压缩标准的基本概念(Ⅱ)●简单图形的绘制图像文件的处理方法图像的压缩编码:有损压缩和无损压缩方面的基本概念(Ⅰ)JPEG、MPEG和H.261等编码及压缩标准方面的基本概念(Ⅰ)图像文件的处理方法的基础知识(Ⅰ)●音频和视频信息的应用常见的声音文件格式(Ⅰ)数字声音信号、波形声音的基本概念(Ⅰ)声音信号的数字化,包括采样、量化、编码;了解数字语音的数据压缩方法,波形编码、参数编码、混合编码的基础知识(Ⅱ)●多媒体应用开发过程(补充)3.系统开发和运行知识3.1.软件工程基础知识●软件生存周期与软件生存周期模型瀑布模型、演化模型、螺旋模型、喷泉模型(Ⅱ)●软件开发方法结构化方法、面向对象方法的基本概念(Ⅱ)●软件工具与软件开发环境分析工具、设计工具、编程工具、测试工具、维护工具、CASE(Ⅰ)●软件开发项目管理成本估算、风险分析、进度管理(Gantt图、PERT图)、人员管理(Ⅰ)3.2.系统分析基础知识●系统分析的主要步骤(Ⅰ)●结构化分析方法数据流图的基本构成、数据字典、加工逻辑的描述(结构化语言、决策表、决策树)(Ⅱ)3.3.系统设计基础知识●概要设计与详细设计的基本任务(Ⅰ)●系统设计的基本原理抽象、模块化、信息隐蔽、模块独立(耦合、内聚)的基本概念(Ⅰ)●系统模块结构设计模块的概念、模块结构图的构成与内涵(Ⅰ)●结构化设计方法(变换分析、事务分析的概念及基本步骤)(Ⅰ)●面向数据结构的设计方法(Jackson方法的设计步骤)(Ⅰ)●系统详细设计代码设计的基本原则(Ⅰ)输入/输出设计的基本原则(Ⅰ)处理过程的设计(程序流程图、盒图、决策树、决策表)(Ⅰ)用户界面设计的基本原则(Ⅰ)3.4.系统实施基础知识●系统实施的基本内容(Ⅰ)●程序设计方法结构化程序设计方法、面向对象程序设计方法的基本概念(Ⅱ)●程序设计的基本模块(Ⅰ)●系统测试系统测试的基本原则(Ⅰ)用黑盒法设计测试用例(等价类划分、边界值划分、错误推测、因果图)(Ⅱ) 用白盒法设计测试用例(逻辑覆盖、循环覆盖、基本路径测试)(Ⅱ)理解单元测试、集成测试、确认测试与系统测试的基本内容(Ⅱ)●系统转换3.5.系统运行和维护基础知识●系统可维护性的概念(Ⅰ)●系统维护的类型正确性维护、适应性维护、完善性维护、预防性维护的基本概念(Ⅱ)●系统评价的概念与类型(Ⅰ)3.6.软件质量管理基础知识●软件质量特性(ISO/IEC 9126 软件质量模型)(Ⅰ)●软件质量保证(Ⅰ)●软件复杂性的概念及度量方法(McCabe度量法)(Ⅰ)●软件评审(设计质量评审、程序质量评审)(Ⅰ)●软件容错技术容错软件的定义、容错的一般方法(结构冗余、信息冗余、时间冗余、冗余附加技术)(Ⅰ)3.7.软件过程改进基础知识软件能力成熟度模型CMM(Ⅱ)统一过程(UP)与极限编程(XP)的基本概念(Ⅱ)4.面向对象基础知识4.1.面向对象的基本概念●对象、消息、类、继承(单继承、多继承)、多态(动态绑定机制)(Ⅱ)4.2.面向对象分析与设计知识●面向对象分析的基本活动认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息(Ⅱ)●面向对象分析与设计方法PeterCoad和EdwardYourdon的OOA和OOD方法(Ⅰ)Booch的OOD方法(Ⅰ)OMT的分析与设计方法(Ⅰ)UML的基本概念及各种图形能够熟练地使用UML的各种模型绘制面向对象分析与设计模型(Ⅱ)面向对象测试的基本概念(Ⅰ)4.3.分析模式与设计模式知识设计模式的基本概念及其要素(Ⅰ)创建型设计模式(Ⅱ)结构型设计模式(Ⅱ)行为型设计模式(Ⅱ)4.4.面向对象程序设计知识●程序设计语言中的面向对象机制类与对象、对象自身引用、无实例的类(Ⅱ)继承与类层次结构(Ⅱ)消息传递与方法(Ⅱ)重置与重载(Ⅱ)●类库的概念(Ⅱ)4.5.面向对象数据库、分布式对象基础知识(Ⅰ)5.信息安全知识●信息系统安全基础知识计算机系统安全、网络安全、信息安全的基础知识(Ⅰ)●信息系统安全管理防治计算机病毒、防范计算机犯罪、存取控制、防闯入、防灾(Ⅰ)●保障完整性与可用性的措施(Ⅰ)●加密与解密机制基础知识(Ⅱ)●风险管理(风险分析、风险类型、抗风险措施和内部控制)(Ⅰ)●计算机安全相关的法律、法规基础知识(Ⅰ)6.标准化、信息化和知识产权基础知识6.1.标准化基础知识●标准化基础知识标准化目的、意义、组织机构及内容方面的基本概念(Ⅰ)标准化分类、代号与编号规定方面的基本概念(Ⅰ)标准制订过程方面的基础知识(Ⅰ)●标准分类国际标准、国家标准、行业标准、企业标准的表示方法(Ⅱ)●代码标准、文件格式标准、安全标准、软件开发规范和文档标准、互联网相关标准、软件开发规范和文档标准、基于构件的软件标准代码标准、文件格式标准、安全标准方面的基本概念(Ⅰ)软件开发规范和文档标准、互联网相关标准方面的基本概念、基于构件的软件标准(Ⅱ)安全标准、互联网相关标准方面的基本概念(Ⅰ)●标准化机构(补充)6.2.信息化基础知识●全球信息化趋势、国家信息化战略、企业信息化战略和策略(Ⅰ)●互联网关的法律、法规知识(Ⅰ)●个人信息保护规则(Ⅰ)●远程教育、电子商务、电子政务等基础知识(Ⅰ)●企业信息资源管理基础知识(Ⅰ)6.3.知识产权基础知识●保护知识产权有关的法律、法规软件有关的法律、法规方面的基础知识(Ⅰ)著作权法、软件保护条例及软件著作登记的基础知识(Ⅰ)软件著作权主体与客体、权力内容、权力归属、侵权责任分析侵权行为(Ⅱ)专利法、商标法、商业秘密权对软件的保护(Ⅰ)7.计算机专业英语具有工程师所要求的英语阅读水平(Ⅱ)理解本领域常用英语术语(Ⅱ)考试科目2 软件设计1.外部设计1.1.理解系统需求说明(Ⅱ)1.2.准备进行系统开发●选择开发方法、准备开发环境、制订开发计划(Ⅰ)1.3.设计系统功能●选择系统结构(Ⅱ)●设计各子系统的功能和接口(Ⅱ)●设计安全性策略、需求和实现方法(Ⅱ)●制订详细的工作流和数据流(Ⅱ)1.4.设计数据模型●设计ER模型及其他数据模型掌握E-R模型、UML模型的表示方法和使用方法,关系模型的定义、相关知识以及符号化表示方法(Ⅱ)通过从数据库逻辑设计中如何构造一个好的数据库模式出发,掌握关系规范化的实际背景、理论及模式规范化的方法(Ⅱ)掌握如何用关系数据库设计理论作指导,进行数据库逻辑设计,重点掌握E-R模型向关系模型转换的方法(Ⅲ)1.5.编写外部设计文档●系统配置图、各子系统关系图(Ⅰ)●系统流程图、系统功能说明书(Ⅰ)●输入输出规格说明、数据规格说明、用户手册框架(Ⅰ)●设计系统测试要求(Ⅰ)1.6.外部设计的评审(Ⅰ)2.内部设计2.1.设计软件结构●按构建分解,确定构建功能、规格以及构建之间的接口(Ⅱ)●数据结构与算法设计数据结构设计:线性表、查找表、树、图的顺序存储结构和链表存储结构的设计和实现(Ⅲ)算法设计:迭代、穷举搜索、递推、递归、回溯、贪心、动态规划、分治等算法设计(Ⅲ)●采用中间件和工具(Ⅰ)2.2.设计输入输出屏幕界面设计、输入输出格式设计(Ⅱ)分析数据特性,确认逻辑数据组织方式、存储介质设计记录格式和处理方式(Ⅱ) 将逻辑数据结构换成物理数据结构,计算容量,进行优化和检查信息(Ⅱ)2.3.设计物理数据(Ⅱ)2.4.构件的创建和重用●创建构件、重用构件(Ⅰ)●使用子程序库或类库AWT、Swing用户界面与事件处理机制(Ⅰ)Java语言中流与文件的应用(Ⅲ)Java语言中的多线程的开发与应用(Ⅲ)Java语言中集合类库的应用(Ⅲ)Java语言中网络、数据库的开发与应用(Ⅲ)C++标准类库中容器库的应用(Ⅲ)C++标准类库中算法库的应用(Ⅲ)C++标准类库中的迭代器的应用(Ⅲ)C++标准类库中的字符串的应用(Ⅲ)C++标准类库中的流与文件的应用(Ⅲ)C语言标准函数库(Ⅲ)2.5.编写内部设计文档●构件划分图、构件间的接口、构件处理说明(Ⅰ)●屏幕界面设计文档、报表设计文档、文件设计文档、数据库设计文档(Ⅰ)2.6.内部设计的评审(Ⅰ)3.数据库应用分析与设计●设计关系模式掌握给定一个实际的应用问题如何设计E-R模型,如何将E-R模型转换成关系模式, 确定联系类型、主键、候选键、外键判断关系模式规范化的程度(Ⅲ)●数据库语言SQL掌握给定一个实际的应用问题如何用SQL进行数据定义(创建表、视图)、完整性定义及权限定义(Ⅲ)●数据库访问掌握常用数据库的访问方法(Ⅱ)4.程序设计4.1.模块划分(原则、方法、标准)(Ⅱ)4.2.编写程序设计文档模块规格说明书(功能和接口说明,程序处理逻辑、输入输出数据格式的描述)(Ⅱ) 测试要求说明书(测试类型和目标、测试用例、测试方法)(Ⅱ)4.3.程序设计评审(Ⅱ)5.系统实施5.1.配置计算机系统及环境(Ⅱ)5.2.选择合适的程序设计语言(Ⅱ)5.3.用C程序设计语言以及C++、Java中的任一种程序设计语言进行程序设计用C语言实现常用的数据结构与算法及应用程序(Ⅲ)用C++语言实现常见的设计模式及应用程序(Ⅲ)用Java语言实现常见的设计模式及应用程序(Ⅲ)5.4.系统测试●指导程序员进行模块测试并进行验收(Ⅰ)●准备系统集成测试环境和测试工具(Ⅰ)●准备测试数据(Ⅰ)●写出测试报告(Ⅰ)6.软件工程应用6.1.软件开发周期模型(瀑布模型、螺旋模型、喷泉模型)(Ⅱ)6.2.需求分析●定义软件需求(系统化的目标、配置、功能、性能和约束功能需求与非功能需求)(Ⅱ) ●描述软件需求使用面向数据流的模型和面向对象模型描述软件的功能需求和非功能需求(Ⅲ) 描述软件需求的功能层次模型、控制流模型、面向数据结构的模型(Ⅰ)●定义软件需求的方法使用结构化分析方法定义软件需求,能够根据具体问题,绘制相应的DFD模型,并定义数据字典,采用决策表或决策树的方式描述加工逻辑(Ⅲ)使用面向对象分析方法定义软件需求,能够根据具体问题,创建符合UML标准的类图、用例图,并准确识别类中的关键属性和方法,以及类之间的关联(Ⅲ) 以UML状态图、活动图以及序列图所表达的软件需求(Ⅱ)6.3.软件设计●软件设计的基本原则分析与集成、逐步求精、抽象、信息隐蔽、模块化(Ⅰ)●软件设计方法(结构化设计方法、Jackson方法、Warnier方法、面向对象设计方法)结构化设计方法,并能够根据具体问题,在结构化分析的基础上给出设计结果(Ⅱ) 面向对象的设计方法,并能够根据具体问题,给出相应的符合UML标准的设计模型(Ⅲ)Jackson方法的基本理念及基本步骤(Ⅰ)●程序设计(补充)6.4.软件测试的原则与方法(Ⅱ)6.5.软件质量(软件质量特性、软件质量控制)(Ⅱ)6.6.软件过程(软件过程评估基本方法、软件能力成熟度评估基本方法)(Ⅱ)6.7.软件开发环境和开发工具(分析工具、设计工具、编程工具、测试工具、维护工具、CASE)(Ⅱ)6.8.面向对象技术●面向构件技术(Ⅰ)●统一建模语言UMLUML的基本概念与作用(Ⅲ)用例图的表示与应用(Ⅲ)类图与对象图的表示与应用(Ⅲ)序列图的表示与应用(Ⅲ)活动图的表示与应用(Ⅲ)通信图的表示与应用(Ⅲ)组件图的表示与应用(Ⅲ)部署图的表示与应用(Ⅲ)状态图的表示与应用(Ⅲ)●软件过程改进模型和方法(补充)6.9.网络环境软件技术(Ⅰ)。

2023年软件评测师考试大纲

2023年软件评测师考试大纲

以下是2023年软件评测师考试大纲,希望对你有所帮助:
1. 考试要求:
- 熟悉计算机基础知识;
- 熟悉操作系统、数据库、中间件、程序设计语言基础知识;
- 熟悉计算机网络基础知识;
- 熟悉软件工程知识,理解软件开发方法及过程;
- 熟悉软件质量及软件质量管理基础知识;
- 熟悉软件测试标准;
- 掌握软件测试技术及方法;
- 掌握软件测试项目管理知识;
- 掌握C语言以及C++或Java语言程序设计技术;
- 了解信息化及信息安全基础知识;
- 熟悉知识产权相关法律、法规;
- 正确阅读并理解相关领域的英文资料。

2. 考试目的:通过本考试的合格人员能在掌握软件工程与软件测试知识的基础上,运用软件测试管理措施、软件测试方略、软件测试技术,独立承担软件测试项目;具有工程师的实际工作能力和业务水平。

3. 考试科目:包括软件工程与软件测试基础知识和软件测试应用技术,考试时间均为150分钟,笔试,题型分别为选择题和问答题。

2023软考软件设计师考试大纲

2023软考软件设计师考试大纲

软考软件设计师考试大纲详细介绍:一、考试目标:通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应文档,并能够对软件进行调试和测试,确保软件质量达到预期的标准。

二、考试内容:1.计算机基础知识:包括计算机科学基础知识、计算机内数据的表示、算术和逻辑运算、数学基础知识等。

2.计算机系统知识:包括计算机硬件基础知识、计算机系统的组成和体系结构、CPU、存储器、输入输出设备、总线等。

3.操作系统知识:包括操作系统的基本概念、功能、分类、进程管理、内存管理、文件系统、输入输出管理等。

4.程序设计语言基础知识:包括程序设计语言的基本概念、语法、数据类型、控制结构、函数、面向对象编程等。

5.数据结构和算法:包括常用的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、图算法等)。

6.软件工程:包括软件工程的基本概念、软件开发生命周期、软件需求分析、软件设计、编码、测试、维护、项目管理等。

7.数据库知识:包括数据库的基本概念、关系型数据库、SQL语言、数据库设计、事务处理、数据仓库等。

8.网络知识:包括网络的基本概念、网络体系结构、TCP/IP协议、网络编程、网络安全等。

9.软件设计方法和技术:包括软件设计的基本原则、设计模式、软件架构、组件化设计、软件性能优化等。

10.软件测试和调试:包括软件测试的基本概念、测试方法、测试用例设计、自动化测试、软件调试等。

11.项目管理:包括项目管理的基本概念、项目计划、进度控制、风险管理、团队管理等。

三、考试形式:1.考试采用笔试形式,分为上午和下午两个部分。

2.上午考试为基础知识,题型为客观选择题,共计75道选择题。

3.下午考试为应用技术,题型为问答题,共六道大题,包括必做题和选做题。

四、考试时间:根据过去的考试安排,上半年考试通常在5月底开始,而下半年考试通常在11月的第一个周末举行。

软件设计师软考资料 PPT课件

软件设计师软考资料  PPT课件

软件设计师
程序设计的基础模块 系统测试 系统转换 1.5 系统运行和维护基础知识 系统可维护性概念 系统评价的概念和类型
ppt课件 PPT PPT 课件 课件
9
软件设计师
历年考试对本章内容的考查情况
2004 考次 2005 2006 2007 2008 2009
5月
分值 21
14%
11月
22
14.7%
5月
36
24%
11月
11
7.3%
5月
24
16%
11月
41
5月
53
11月
39
26%
5月
26
17.3%
11月
27
18%
5月
26
17.3%
比重
27.3% 35.3%
本章的重点程度:★★★★★
ppt课件 PPT PPT 课件 课件 10
软件设计师
1.1 软件工程基础知识
软件生命周期 软件的生存期划分为制定计划、需求分析、设
软件设计师
1.系统开发与运行知识
大纲要求: 1.1 软件工程基础知识 软件生命周期与软件生命周期模型 软件开发方法 软件开发项目管理 软件开发工具与软件开发环境 软件过程管理 软件质量管理和质量保证 1.2 系统分析基础知识 系统分析步骤 结构化分析方法——数据流图
软件设计师培训
ppt课件 PPT PPT 课件 课件
1
软件设计师
软件设计师考试说明
考试要求: (1)掌握数据表示、算术和逻辑运算; (2)掌握相关的应用数学、离散数学的基础知识; (3)掌握计算机体系结构以及各主要部件的性能和 基本工作原理; (4)掌握操作系统、程序设计语言的基础知识,了 解编译程序的基本知识; (5)熟练掌握常用数据结构和常用算法; (6)熟悉数据库、网络和多媒体的基础知识;

计算机软考考试大纲 项目管理软考

计算机软考考试大纲 项目管理软考

计算机软考中的项目管理软考考试大纲主要涵盖以下内容:
项目管理概述:包括项目管理的定义、目标和重要性,项目管理的基本原则和特点,项目管理的基本流程和方法。

项目集与项目组合管理:包括项目集的定义和特点,项目集管理的基本流程和方法,项目组合的定义和特点,项目组合管理的基本流程和方法。

项目发起与策划:包括项目发起的原因和过程,项目策划的定义和重要性,项目策划的基本流程和方法。

项目组织结构与角色:包括常见的项目组织结构形式,如直线式、职能式、矩阵式等,项目角色分配和职责划分。

项目范围管理:包括项目范围的定义和确定,项目范围管理的流程和方法,如WBS的制定、范围变更管理等。

项目时间管理:包括项目时间的定义和计算,项目时间管理的流程和方法,如时间表制定、进度控制等。

项目成本管理:包括项目成本的定义和计算,项目成本管理的流程和方法,如成本估算、成本控制等。

项目质量管理:包括项目质量的定义和保证,项目质量管理的流程和方法,如质量计划、质量控制等。

项目沟通管理:包括项目沟通的定义和重要性,项目沟通管理的流程和方法,如沟通计划、信息发布等。

项目风险管理:包括项目风险的定义和识别,项目风险管理的流程和方法,如风险评估、风险应对等。

项目采购管理:包括项目采购的定义和过程,项目采购管理的流程和方法,如采购计划、供应商管理等。

项目干系人管理:包括项目干系人的定义和识别,项目干系人管理的流程和方法,如干系人沟通、干系人满意度管理等。

需要注意的是,不同等级的项目管理软考考试大纲内容也会有所不同,以上内容仅供参考。

具体的考试大纲和要求还需根据相关考试机构的规定来确定。

软考 软件设计师 考试内容

软考 软件设计师 考试内容

软考软件设计师考试内容软考中的软件设计师考试内容主要包括计算机科学基础知识、计算机系统知识和计算机软件知识。

具体来说,包括以下知识点:1. 计算机科学基础知识:包括数制及其转换(二进制、八进制、十进制和十六进制等常用数制及其相互转换)、计算机内数据的表示(数的表示、非数值表示)、算术运算和逻辑运算(计算机中的二进制数运算方法、逻辑代数的基本运算)、其他数学基础知识(常用数值计算、排列组合、概率论应用、应用统计等)。

2. 计算机系统知识:包括计算机硬件基础知识(计算机系统的组成、体系结构分类及特性、CPU、存储器的组成、性能和基本工作原理、常用I/O设备、通信设备的性能以及基本工作原理、I/O接口的功能、类型和特性等)和存储系统(虚拟存储器基本工作原理、多级存储体系、RAID类型和特性等)。

还包括可靠性与系统性能评测基础知识(诊断与容错、系统可靠性分析评价、计算机系统性能评测方法)。

3. 计算机软件知识:包括数据结构与算法知识(数组、链表、队列、栈、树、图的定义、存储和基本操作、杂凑等)、操作系统知识(操作系统的内核、处理机管理、存储管理、设备管理、文件管理、作业管理、网络操作系统和嵌入式操作系统基础知识等)、程序设计语言和语言处理程序知识(汇编、编译、解释系统的基础知识和基本工作原理等)、数据库知识(数据库模型、数据模型、ER图、规范化等)。

此外,软件设计师考试还会涉及C程序设计语言,以及C++、Java中的一种程序设计语言。

同时,要求考生熟悉软件工程、软件过程改进和软件开发项目管理的基础知识,掌握软件设计的方法和技术。

还需要了解信息化、常用信息技术标准、安全性,以及有关法律、法规的基础知识,并能正确阅读和理解计算机领域的英文资料。

以上信息仅供参考,考试大纲可能会随时间有所变化,请考生查阅软考官网了解最新信息。

软件工程师考试大纲

软件工程师考试大纲

一、考试说明1.考试要求:(1) 掌握数据表示、算术和逻辑运算;(2) 掌握相关的应用数学、离散数学的基础知识;(3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理;(4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;(5) 熟练掌握常用数据结构和常用算法;(6) 熟悉数据库、网络和多媒体的基础知识;(7) 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual C++中的一种程序设计语言;(8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;(9) 熟悉掌握软件设计的方法和技术;(10) 掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;(11) 了解信息化、计算机应用的基础知识;(12) 正确阅读和理解计算机领域的英文资料。

2.通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程的实际工作能力和业务水平。

3.本考试设置的科目包括:(1) 计算机与软件工程知识,考试时间为150分钟,笔试;(2) 软件设计,考试时间为150分钟,笔试。

二、考试范围考试科目1.计算机科学基础1.1 数制及其转换? 二进制、十进制和十六进制等常用制数制及其相互转换1.2 数据的表示? 数的表示(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出)? 非数值表示(字符和汉字表示、声音表示、图像表示)? 校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码)1.3 算术运算和逻辑运算? 计算机中的二进制数运算方法? 逻辑代数的基本运算和逻辑表达式的化简1.4 数学基础知识? 命题逻辑、谓词逻辑、形式逻辑的基础知识? 常用数值计算(误差、矩阵和行列式、近似求解方程、插值、数值积分)? 排列组合、概率论应用、应用统计(数据的统计分析)? 运算基本方法(预测与决策、线性规划、网络图、模拟)1.5 常用数据结构? 数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树、平衡树、线索树、线索树、堆)、图等的定义、存储和操作? Hash(存储地址计算,冲突处理)1.6 常用算法? 排序算法、查找算法、数值计算方法、字符串处理方法、数据压缩算法、递归算法、图的相关算法? 算法与数据结构的关系、算法效率、算法设计、算法描述(流程图、伪代码、决策表)、算法的复杂性2.计算机系统知识2.1 硬件知识2.1.1 计算机系统的组成、体系结构分类及特性? CPU和存储器的组成、性能和基本工作原理? 常用I/O设备、通信设备的性能,以及基本工作原理? I/O接口的功能、类型和特性? I/O控制方式(中断系统、DMA、I/O处理机方式)? CISC/RISC,流水线操作,多处理机,并行处理2.1.2 存储系统? 主存-Cache存储系统的工作原理? 虚拟存储器基本工作原理,多级存储体系的性能价格? RAID类型和特性2.1.3 安全性、可靠性与系统性能评测基础知识? 诊断与容错? 系统可靠性分析评价? 计算机系统性能评测方式2.2 软件知识2.2.1 操作系统知识? 操作系统的内核(中断控制)、进程、线程概念? 处理机管理(状态转换、共享与互斥、分时轮转、抢占、死锁)? 存储管理(主存保护、动态连接分配、分段、分页、虚存)? 设备管理(I/O控制、假脱机)? 文件管理(文件目录、文件组织、存取方法、存取控制、恢复处理)? 作业管理(作业调度、作业控制语言(JCL)、多道程序设计)? 汉字处理,多媒体处理,人机界面? 网络操作系统和嵌入式操作系统基础知识? 操作系统的配置2.2.2 程序设计语言和语言处理程序的知识? 汇编、编译、解释系统的基础知识和基本工作原理? 程序设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用? 各类程序设计语言主要特点和适用情况2.3 计算机网络知识? 网络体系结构(网络拓扑、OSI/RM、基本的网络协议)? 传输介质、传输技术、传输方法、传输控制? 常用网络设备和各类通信设备? Client/Server结构、Browser/Server结构? LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接? 因特网基础知识以及应用? 网络软件? 网络管理? 网络性能分析2.4 数据库知识? 数据库管理系统的功能和特征? 数据库模型(概念模式、外模式、内模式)? 数据模型,ER图,第一范式、第二范式、第三范式? 数据操作(集合运算和关系运算)? 数据库语言(SQL)? 数据库的控制功能(并发控制、恢复、安全性、完整性)? 数据仓库和分布式数据库基础知识2.5 多媒体知识? 多媒体系统基础知识,多媒体设备的性能特性,常用多媒体文件格式? 简单图形的绘制,图像文件的处理方法? 音频和视频信息的应用? 多媒体应用开发过程2.6 系统性能知识? 性能指标(响应时间、吞吐量、周转时间)和性能设计? 性能测试和性能评估? 可靠性指标及计算、可靠性设计? 可靠性测试和可靠性评估2.7 计算机应用基础知识?信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等基础知识? 远程通信服务基础知识? 常用应用系统3.系统开发和运行知识3.1 软件工程、软件过程改进和软件开发项目管理知识? 软件工程知识? 软件开发生命周期各阶段的目标和任务? 软件开发项目管理基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具? 主要的软件开发方法(生命周期法、原型法、面向对象法、CASE)? 软件开发工具与环境知识? 软件过程改进知识? 软件质量管理知识? 软件开发过程评估、软件能力成熟评估基础知识3.2 系统分析基础知识? 系统分析的目的和任务?结构化分析方法(数据流图(DFD)、数据字典(DD)、实体关系图(ERD)、描述加工处理的结构化语言)? 统一建模语言(UML)? 系统规格说明书3.3 系统设计知识? 系统设计的目的和任务? 结构化设计方法和工具(系统流程图、HIPO图、控制流程图)? 系统总体结构设计(总体布局、设计原则、模块结构设计、数据存储设计、系统配置方案)? 系统详细设计(代码设计、数据库设计、用户界面设计、处理过程设计)? 系统设计说明书3.4 系统实施知识? 系统实施的主要任务? 结构化程序设计、面向对象程序设计、可视化程序设计? 程序设计风格? 程序设计语言的选择? 系统测试的目的、类型,系统测试方法(黑盒测试、白盒测试、灰盒测试)? 测试设计和管理(错误曲线、错误排除、收敛、注入故障、测试用例设计、系统测试报告)? 系统转换基础知识3.5 系统运行和维护知识? 系统运行管理基础知识? 系统维护基础知识? 系统评价基础知识3.6 面向对象开发方法? 面向对象开发概念(类、对象、属性、封装性、继承性、多态性、对象之间的引用)? 面向对象开发方法的优越性以及有效领域? 面向对象设计方法(体系结构、类的设计、用户接口设计)? 面向对象实现方法(选择程序设计语言、类的实现、方法的实现、用户接口的实现、准备测试数据)? 面向对象程序设计语言(如C++、Java、Visual、Bsasic、Visual C++)的基本机制? 面向对象数据库、分布式对象的概念4.安全性知识? 安全性基本概念? 防治计算机病毒、防范计算机犯罪? 存取控制、防闯入、安全管理措施? 加密与解密机制?风险分析、风险类型、抗风险措施和内部控制5.标准化知识? 标准化意识、标准化的发展、标准制订过程? 国际标准、国家标准、行业标准、企业标准基本知识? 代码标准、文件格式标准、安全标准、软件开发规范和文档标准知识? 标准化机构6.信息化基础知识? 信息化意识? 全球信息化趋势、国家信息化战略、企业信息化战略和策略? 有关的法律、法规? 远程教育、电子商务、电子政务等基础知识? 企业信息资源管理基础知识7.计算机专业英语? 掌握计算机技术的基本词汇? 能正确阅读和理解计算机领域的英文资料1.外部设计1.1 理解系统需求说明1.2 系统开发的准备? 选择开发方法、准备开发环境、制订开发计划1.3 设计系统功能? 选择系统结构,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制订详细的工作流和数据流1.4 设计数据模型? 设计ER模型、数据模型1.5 编写外部设计文档? 系统配置图、各子系统关系图、系统流程图、系统功能说明书、输入输出规格说明、数据规格说明、用户手册框架? 设计系统测试要求1.6 设计评审2.内部设计2.1 设计软件结构?按构件分解,确定构件功能规格以及构件之间的接口? 采用中间件和工具2.2 设计输入输出? 屏幕界面设计、设计输入输出检查方法和检查信息2.3 设计物理数据? 分析数据特性,确定逻辑数据组织方式、存储介质,设计记录格式和处理方式? 将逻辑数据结构换成物理数据结构,计算容量,进行优化2.4 构件的创建和重用? 创建、重用构件的概念? 使用子程序库或类库2.5 编写内部设计文档? 构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、文件设计文档、数据库设计文档2.6 设计评审3.程序设计3.1 模块划分(原则、方法、标准)3.2 编写程序设计文档? 模块规格说明书(功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述)? 测试要求说明书(测试类型和目标、测试用例、测试方法)3.3 程序设计评审4.系统实施4.1 配置计算机系统及其环境4.2 选择合适的程序设计语言4.3 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual C++中任一种程序设计语言,以便能指导程序员进行编程和测试,并进行必要的优化4.4 系统测试? 指导程序员进行模块测试,并进行验收? 准备系统集成测试环境和测试工具? 准备测试数据? 写出测试报告5.软件工程? 软件生存期模型(瀑布模型、螺旋模型、喷泉模型)和软件成本模型? 定义软件需求(系统化的目标、配置、功能、性能和约束)? 描述软件需求的方法(功能层次模型、数据流模型、控制流模型、面向数据的模型、面向对象的模型等)? 定义软件需求的方法(结构化分析方法、面向对象分析方法)? 软件设计(分析与集成、逐步求精、抽象、信息隐蔽)? 软件设计方法(结构化设计方法、Jackson方法、Warnier方法、面向对象设计方法)? 程序设计(结构化程序设计、面向对象程序设计)? 软件测试的原则与方法? 软件质量(软件质量特性、软件质量控制)? 软件过程评估基本方法、软件能力成熟度评估基本方法? 软件开发环境和开发工具(分析工具、设计工具、编程工具、测试工具、维护工具、CASE)? 软件工程发展趋势(面向构件,统一建模语言(UML))。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件设计师考试大纲
一、考试说明
1.考试目标
通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件; 具有工程师的实际工作能力和业务水平。

2.考试要求
(1)掌握计算机内的数据表示、算术和逻辑运算方法;
(2)掌握相关的应用数学及离散数学基础知识;
(3)掌握计算机体系结构以及各主要部件的性能和基本工作原理;
(4)掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;
(5)熟练掌握常用数据结构和常用算法;
(6)熟悉数据库、网络和多媒体的基础知识;
(7)掌握C 程序设计语言,以及C++、Java 中的一种程序设计语言;
(8)熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;
(9)掌握软件设计的方法和技术;
(10)了解信息化、常用信息技术标准、安全性,以及有关法律、法规的基础知识;
(11)正确阅读和理解计算机领域的英文资料。

3.考试科目
(1) 计算机与软件工程知识,考试时间为150 分钟,笔试,选择题;
(2) 软件设计,考试时间为150 分钟,笔试,问答题。

二、考试范围
考试科目1:计算机与软件工程知识
1.计算机科学基础知识
1.1数制及其转换
☆ 二进制、八进制、十进制和十六进制等常用数制及其相互转换
1.2计算机内数据的表示
☆ 数的表示(补码表示,整数和实数的表示,精度和溢出)
☆ 非数值表示(字符和汉字表示,声音表示、图像表示)
1.3算术运算和逻辑运算
☆ 计算机中的二进制数运算方法
☆ 逻辑代数的基本运算
1.4其他数学基础知识
☆ 常用数值计算
☆ 排列组合,概率论应用,应用统计(数据的统计分析)
☆编码基础
☆ 命题逻辑、谓词逻辑、形式逻辑的基础知识
☆ 运筹基本方法
2.计算机系统知识
2.1计算机硬件基础知识
2.1.1计算机系统的组成、体系结构分类及特性
☆CPU、存储器的组成、性能和基本工作原理
☆常用I/O 设备、通信设备的性能以及基本工作原理
☆I/O 接口的功能、类型和特性
☆CISC/RISC ,流水线操作,多处理机,并行处理
2.1.2存储系统
☆虚拟存储器基本工作原理,多级存储体系
☆RAID 类型和特性
2.1.3可靠性与系统性能评测基础知识
☆诊断与容错
☆系统可靠性分析评价
☆计算机系统性能评测方法
2.2计算机软件知识
2.2.1数据结构与算法知识
☆数组
☆链表
☆ 队列、栈
☆树
☆ 图的定义、存储和基本操作
☆ 杂凑(Hash 表)
☆ 常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、
图的相关算法
☆ 算法描述和分析
2.2.2操作系统知识
☆ 操作系统的内核
☆ 处理机管理
☆ 存储管理
☆ 设备管理
☆ 文件管理
☆ 作业管理
☆ 网络操作系统和嵌入式操作系统基础知识
☆ 操作系统的配置
2.2.3程序设计语言和语言处理程序知识
☆ 汇编、编译、解释系统的基础知识和基本工作原理
☆ 程序设计语言的基本成分(数据、运算、控制和传输),程序调用的实现机

☆ 各类程序设计语言的主要特点和适用情况
2.2.4数据库知识
☆ 数据库模型(概念模式、外模式、内模式)
☆ 数据模型,ER 图,规范化
☆ 数据操作
☆ 数据库语言
☆ 数据库管理系统的功能和特征
☆ 数据库的控制功能
☆ 数据仓库和分布式数据库基础知识
2.3计算机网络知识
☆ 网络体系结构☆ 传输介质,传输技术,传输方法,传输控制
☆ 常用网络设备和各类通信设备的特点
☆ Client-Server 结构,Browser-Server 结构
☆ LAN(拓扑,存取控制,组网,网间互连)
☆ Internet 和Intranet 基础知识以及应用
☆ 网络软件
☆ 网络管理,网络性能分析
2.4多媒体基础知识
☆ 多媒体系统基础知识
☆ 简单图形的绘制,图像文件的处理方法
☆ 音频和视频信息的应用
☆ 多媒体应用开发过程
3.系统开发和运行知识
3.1软件工程知识
☆ 软件生存周期与软件生存周期模型
☆ 软件开发方法
☆ 软件开发项目管理
☆ 软件开发工具与软件开发环境
3.2系统分析基础知识
☆ 系统分析的主要步骤
☆ 机构化分析方法
3.3系统设计基础知识
☆ 概要设计与详细设计的基本任务
☆ 系统设计的基本原理
☆ 系统模块结构设计
☆ 结构化设计方法\
☆ 面向数据结构的设计方法
☆ 系统详细设计
3.4系统实施基础知识
☆ 系统实施的基本内容
☆ 程序设计方法
☆ 程序设计的基本模块
☆ 系统测试
☆ 系统转换
3.5系统运行和维护基础知识
☆ 系统可维护性的概念
☆ 系统维护的类型
☆ 系统评价的概念和类型
3.6软件质量管理基础知识
☆ 软件质量特性(ISO/IEC 9126 软件质量模型)
☆ 软件质量保证
☆ 软件复杂性的概念及度量方法(McCabe 度量法)
☆ 软件评审(设计质量评审、程序质量评审)
☆ 软件容错技术
3.7软件过程改进基础知识
☆ 软件能力成熟度模型CMM
☆ 统一过程(UP)与极限编程(XP)的基本概念4.面向对象基础知识
☆ 面向对象的基本概念
☆ 面向对象分析与设计知识
☆ 分析模式与设计模式知识
☆ 面向对象程序设计知识
☆ 面向对象数据库、分布式对象基础知识
5. 信息安全知识\
☆ 信息系统安全基础知识
☆ 信息系统安全管理
☆ 保障完整性与可用性的措施
☆ 加密与解密机制基础知识
☆ 风险管理(风险分析、风险类型、抗风险措施和内部控制)
☆ 计算机安全相关的法律、法规基础知识
6. 标准化、信息化和知识产权基础知识
6.1标准化基础知识
☆ 标准化意识,标准化组织机构,标准的内容、分类、代号与编号规定,标准制
订过程
☆ 国际标准、国家标准、行业标准、企业标准
☆ 代码标准、文件格式标准、安全标准、互联网相关标准、软件开发规范和文档
标准、基于构件的软件标准
6.2信息化基础知识
☆ 全球信息化趋势、国家信息化战略、企业信息化战略和策略
☆ 互联网相关的法律、法规
☆ 个人信息保护规则
☆ 远程教育、电子商务、电子政务等基础知识
☆ 企业信息资源管理基础知识
6.3知识产权基础知识
☆ 保护知识产权有关的法律、法规
7. 计算机专业英语
☆ 具有工程师所要求的英语阅读水平
☆ 理解本领域的英语术语
考试科目2:软件设计
1.外部设计
1.1理解系统需求说明
1.2准备进行系统开发
☆ 选择开发方法、准备开发环境、制订开发计划
1.3设计系统功能
☆ 选择系统结构
☆ 设计各子系统的功能和接口
☆ 设计安全性策略、需求和实现方法
☆ 制订详细的工作流和数据流
1.4设计数据模型
☆ 设计ER 模型及其他数据模型
1.5编写外部设计文档
☆ 系统配置图、各子系统关系图
☆ 系统流程图、系统功能说明书
☆ 输入输出规格说明、数据规格说明、用户手册框架
☆ 设计系统测试要求
1.6外部设计的评审
2.内部设计
2.1设计软件结构
☆ 按构件分解,确定构件功能、规格以及构件之间的接口
☆ 数据结构与算法设计
☆ 采用中间件和工具
2.2设计输入输出
2.3设计物理数据
2.4构件的创建和重用
☆ 创建构件、重用构件
☆ 使用子程序库或类库
2.5编写内部设计文档
☆ 构件划分图、构件间的接口、构件处理说明
☆ 屏幕界面设计文档、报表设计文档、文件设计文档、数据库设计文档
2.6内部设计的评审
3.数据库应用分析与设计
☆ 设计关系模式
☆ 数据库语言(SQL)
☆ 数据库访问
4.程序设计
4.1模块划分
4.2编写程序设计文档
4.3程序设计评审
5.系统实施
5.1配置计算机系统及环境
5.2选择合适的程序设计语言
5.3用C 程序设计语言以及C++、Java 中的任一种程序设计语言进行程序设计
5.4系统测试
☆ 指导程序员进行模块测试,并进行验收
☆ 准备系统集成测试环境和测试工具
☆ 准备测试数据
☆写出测试报告
6.软件工程应用
6.1 软件开发周期模型
6.2需求分析
6.3软件设计
☆ 软件设计的基本原则
☆ 软件设计方法
☆ 程序设计(结构化程序设计、面向对象程序设计)
6.4软件测试的原则与方法
6.5软件质量(软件质量特性、软件质量控制)
6.6软件过程评估基本方法、软件能力成熟度评估基本方法
6.7软件开发环境和开发工具
6.8面向对象技术
☆ 面向构件技术
☆ 统一建模语言(UML)
☆ 软件过程改进模型和方法
6.9网络环境软件技术。

相关文档
最新文档