软件工程师考试(中级)大纲
软件工程师考试大纲

一、考试说明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. 软件工程基础知识:掌握软件开发的基本过程、软件生命周期模型、软件项目管理等重要的软件工程基础知识。
2. 面向对象设计基础:掌握面向对象设计的思想和方法,熟悉UML图形符号,能够使用面向对象设计的方法进行软件设计。
3. 数据库设计基础:掌握数据库的基本知识,包括数据模型、数据库结构设计、SQL语言等,能够进行数据库设计和管理。
4. 软件体系结构设计:掌握软件体系结构的概念、原则和方法,能够进行软件体系结构的设计和优化。
5. 软件测试:掌握软件测试的基本原理、测试策略和测试方法,能够编写测试计划和设计测试用例,并进行软件测试。
6. 面向对象程序设计:具备面向对象程序设计能力,能够使用面向对象思想和相关技术进行软件开发,如Java、C#等。
7. 项目管理:了解项目管理的各个阶段、内容及其规划组织、统筹协调和控制等方面的知识,能够进行项目的计划、实施、监控和收尾工作。
8. 软件安全:掌握软件安全的相关知识,能够进行软件安全风险
评估和漏洞分析,并采取必要的措施进行安全保障。
9. 软件质量:掌握软件质量的相关知识,能够从软件需求、设计、编码、测试等方面进行质量控制,提高软件产品质量。
总之,软件设计师中级考纲要求考生具备较为系统、综合的软件
设计能力和专业知识,能够独立完成软件开发项目的设计、实施和管
理工作。
软件工程师考试大纲

软件工程师考试大纲第一篇:软件工程师考试大纲是指为了指导软件工程师在考试中的学习和备考,考试大纲明确了考试的内容和要求。
通过参考考试大纲,软件工程师可以更好地了解考试的范围和重点,有针对性地进行复习和准备,提高考试的通过率。
接下来,我们将详细介绍软件工程师考试大纲的相关内容。
软件工程师考试大纲主要包括以下几个方面:软件工程基础知识、需求分析与设计、软件构建、软件测试与维护、软件工程管理、软件工程实践等。
首先,软件工程基础知识是软件工程师考试的基础,它包括计算机基础知识、编程语言、数据结构与算法等。
这些基础知识是软件工程师必备的技能,能够帮助他们理解软件工程的概念和原理,应用到实际的工作中。
其次,需求分析与设计是软件工程师考试大纲中的重要内容之一。
需求分析与设计是软件开发过程中的关键步骤,它涉及到对用户需求的分析和理解,以及将需求转化为可执行的设计方案。
软件工程师需要掌握需求分析与设计的方法和技巧,能够高效地完成软件需求的分析和设计工作。
软件构建是考试大纲中的另一个重点内容。
软件构建是将需求分析和设计的结果转化为实际的可执行代码的过程,它包括编码、调试、单元测试等。
在软件构建过程中,软件工程师需要熟练掌握编程语言和开发工具,能够编写出高质量的代码。
另外,软件测试与维护也是考试大纲中需要关注的内容之一。
软件测试是确保软件质量的重要手段,它包括功能测试、性能测试、安全测试等。
软件维护是在软件交付后对其进行修复和改进的过程。
软件工程师需要了解测试方法和技术,以及维护的基本原则和方法。
此外,软件工程管理也是考试大纲中的重要内容之一。
软件工程管理涉及到项目管理、进度控制、团队协作等方面的知识和技能。
软件工程师需要具备良好的团队合作能力和项目管理能力,能够高效地组织和管理软件开发项目。
最后,考试大纲中还强调了软件工程实践的重要性。
软件工程实践是将软件工程的理论知识应用到实际项目中的过程,它包括软件工程的方法和过程。
软考中级软件设计师大纲

软考中级软件设计师大纲一、考试目的软考中级软件设计师考试是由我国教育部委托国家信息技术教育标准化委员会(以下简称中软委)组织的专业技术人员资格考试。
其考试目的是为了选拔和评价软件设计师的专业技能和能力,以保障我国软件行业的人才质量和水平。
二、考试对象具备相关软件设计与开发经验的软件工程师、软件开发人员、信息系统工程师等,以及一切对软件设计师职业感兴趣的人士。
三、考试内容软考中级软件设计师考试的内容主要包括软件设计基础知识、软件架构设计、软件过程管理、软件设计模式、软件测试与质量保障、软件需求分析与设计、软件工程项目管理等方面的知识。
3.1 软件设计基础知识主要包括计算机科学基础、数据结构与算法、软件工程基础、数据库系统原理、操作系统原理等方面的基础知识。
3.2 软件架构设计主要包括软件体系架构设计、分布式系统设计、系统集成设计、安全与可靠性设计等方面的知识。
3.3 软件过程管理主要包括软件开发过程管理、软件配置管理、软件项目管理、软件质量管理、软件度量与评估等方面的知识。
3.4 软件设计模式主要包括面向对象设计模式、基于组件的软件设计模式、面向服务的软件设计模式等方面的知识。
3.5 软件测试与质量保障主要包括软件测试方法与技术、质量保障体系与方法、软件性能测试与优化等方面的知识。
3.6 软件需求分析与设计主要包括需求工程与需求分析、软件设计方法与思想、软件界面设计、软件体系结构设计等方面的知识。
3.7 软件工程项目管理主要包括软件项目计划与进度管理、项目风险管理、软件过程改进与度量、项目组织与沟通管理等方面的知识。
四、考试形式软考中级软件设计师考试的形式主要包括笔试和机试两种。
4.1 笔试笔试主要考察考生对软件设计师职业所需的各种基础知识和理论知识的掌握程度,题型主要包括单选题、多选题、填空题、解答题等。
4.2 机试机试主要考察考生对软件设计师职业的实际工作能力,题型主要包括代码编程、软件结构设计、数据库设计等。
2023软考软件设计师考试大纲

软考软件设计师考试大纲详细介绍:一、考试目标:通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应文档,并能够对软件进行调试和测试,确保软件质量达到预期的标准。
二、考试内容:1.计算机基础知识:包括计算机科学基础知识、计算机内数据的表示、算术和逻辑运算、数学基础知识等。
2.计算机系统知识:包括计算机硬件基础知识、计算机系统的组成和体系结构、CPU、存储器、输入输出设备、总线等。
3.操作系统知识:包括操作系统的基本概念、功能、分类、进程管理、内存管理、文件系统、输入输出管理等。
4.程序设计语言基础知识:包括程序设计语言的基本概念、语法、数据类型、控制结构、函数、面向对象编程等。
5.数据结构和算法:包括常用的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、图算法等)。
6.软件工程:包括软件工程的基本概念、软件开发生命周期、软件需求分析、软件设计、编码、测试、维护、项目管理等。
7.数据库知识:包括数据库的基本概念、关系型数据库、SQL语言、数据库设计、事务处理、数据仓库等。
8.网络知识:包括网络的基本概念、网络体系结构、TCP/IP协议、网络编程、网络安全等。
9.软件设计方法和技术:包括软件设计的基本原则、设计模式、软件架构、组件化设计、软件性能优化等。
10.软件测试和调试:包括软件测试的基本概念、测试方法、测试用例设计、自动化测试、软件调试等。
11.项目管理:包括项目管理的基本概念、项目计划、进度控制、风险管理、团队管理等。
三、考试形式:1.考试采用笔试形式,分为上午和下午两个部分。
2.上午考试为基础知识,题型为客观选择题,共计75道选择题。
3.下午考试为应用技术,题型为问答题,共六道大题,包括必做题和选做题。
四、考试时间:根据过去的考试安排,上半年考试通常在5月底开始,而下半年考试通常在11月的第一个周末举行。
中级软考-信息系统管理工程师提纲(全而精)

信息系统管理工程师复习提纲--第1章计算机硬件基础1、计算机基本组成是冯诺依曼型,即计算机硬件系统由运算器、控制器、存储器、输入和输出设备5部分组成。
其中运算器和控制器合称中央处理器。
内存储器和中央处理器称为主机。
不属于主机的设备者是外部设备(外设),包括输入、输入设备和外存储器。
2、运算器由算术逻辑部件(ALU)和寄存器组成,进行算术和逻辑运算。
3、控制器解释和执行指令,协调。
包括指令寄存器(存放指令)、程序计数器(存放指令地址)。
4、存储器,存放数据和程序,通过地址线和数据线与其他部件相连。
分为高速缓冲存储器(由双极型半导体组成,其速度接近CPU,临时存放数据和指令);主存器(由MOS半导体存储器构成,存放运行时的程序和数据);辅助存储器或外存储器(由磁表面存储器组成,容量大,存放大量程序数据,需要调入主存后被CPU访问)。
5、CPU直接访问的存储器为内存储器,包括高速缓存和主存,它们不断交换数据。
6、输入输出设备指既可输入信息也可输出信息,包括磁盘机、磁带、可读写光盘、CRT终端、通信设备(MODE)、数模、模数转换设备。
7、图像必须以50帧/秒-70帧/秒速度刷新,才不会闪烁。
8、分辨率640*480,回扫期是扫描期的20%,帧频为50时,行频为480÷80%*50=30KHZ,水平扫描期=1/30=33毫秒,读出时间=33*80%÷640=40-50毫秒。
9、并行性彿计算机可同时进行运算和操作的特性,包括同时性和并发性。
同时性指两个或多个事件在同一时刻发生,并发性指两个或多个事件在同一时间间隔发生。
10、计算机系统提高并行性措施有3条途径:时间重叠即时间并行技术(指多个处理过程在时间上相互错开,轮流重叠使用同一硬件设备);资源重复即空间并行技术(重复设置硬件资源,以数量取胜);资源共享(多个任务按时间顺序轮流使用同一硬件设备)。
11、计算机系统分为SISD(单指令流单数据流如单处理机)、SIMD(单指令流多数据流如并行处理机)、MISD(多指令流单数据流很少见)、MIMD(多指令流多数据流如多处理机)。
数据库软考中级大纲

5.数据库设计与规范化
-数据库设计的基本步骤与方法
-数据库规范化理论与方法
6.数据库安全与备份
-数据库安全与权限管理
-数据库的备份与恢复
7.数据库性能优化
-数据库性能优化的基本原则与方法
- SQL语句优化与索引设计
8.数据库应用系统开发
-数据库应用系统的生命周期
数据库软考中级大纲
数据库软考中级大纲大致如下:
1.数据库概述与发展历程
-数据库的基本概念
-数据库的发展Biblioteka 程与应用领域2.数据库系统结构
-数据库系统的组成及功能
-数据库管理系统(DBMS)的结构与特点
3.关系数据库理论
-关系数据模型与关系代数
-关系数据库的基本概念与操作
4.SQL语言
- SQL语言的基本语法与查询语句
-数据库应用系统的开发方法与工具
9.分布式数据库
-分布式数据库的基本概念与结构
-分布式数据库的管理与应用
10.数据仓库与数据挖掘
-数据仓库的基本概念与结构
-数据挖掘的基本理论与方法
以上是数据库软考中级的大纲大致内容,具体的考试大纲可以参考软考官方发布的相关信息。
软件工程师考试(中级)大纲

一、考试说明1.考试要求:(1)掌握常见数据结构的特性;(2)掌握基本数据运算算法;(3)理解软件生存期的概念;(4)掌握快速原型开发方法;(5)掌握面向对象的开发技术;(6)掌握结构化分析和结构化设计方法;(7)掌握c++语言的程序设计技术。
2.通过本级水平考试的合格人员具有从事软件开发与管理的软件工程师的实际工作能力和业务水平。
3.本级水平范围包括三个模块,即模块1、模块2和模块3。
题型为单项选择题十多项选择题。
每个模块考试时间为90分钟。
二、考试范围模块1:c++与面向对象程序设计1.1.面向对象程序设计方法和C++1.1.1面向对象程序设计的基本思想和基本概念1.1.2C++语言的发展历史1.2.C++的数据类型1.2.1一种处理问题的方法1.2.2C++语言程序1.2.3对输入/输出的初步认识1.2.4注释1.2.5预处理1.2.6数据类型初步1.2.7常量1.2.8变量1.2.9指针类型1.2.10引用类型1.2.11常量类型1.2.12枚举类型1.2.13数组类型1.2.14类与继承1.2.15自定义类型名1.3.表达式与语句1.3.1表达式1.3.2类型转换1.3.3语句1.3.4if语句1.3.5switch语句1.3.6循环语句1.3.7跳转语句1.4类1.4.1成员变量和成员函数1.4.2构造函数和析构函数1.4.3静态成员变量和静态成员函数1.4.4内联函数1.4.5友元1.4.6对象和动态对象1.4.7类属性1.5结构、联合和枚举1.5.1结构1.5.2联合1.5.3枚举型1.6函数与函数重载1.6.1函数1.6.2动态空间分配1.7继承性与派生类1,7.1类的层次概念1.7.2单继承1.7.3多继承1.8多态性1.8.1函数重载1.8.2运算符重载1.8.3虚函数1.9C++的I/O流库1.9.1输出与重载运算符“<<”1.9.2输入与重载运算符“>>”1.9.3文件的输入/输出1.9.4状态函数1.9.5格式状态符1.9.6字符串输出格式1.10面向对象的程序设计环境1.10.1面向对象的软件开发环境1.10.2类库1.10.3BorlandC十十类库1.11C++的应用1.11.1OOP与结构化程序设计1.11.2与汇编语言的接口1.11.3基于C++的良好OOP风格1.11.4面向对象的弹出式窗口模块2:算法和数据结构2.1基本概念2.1.1什么是数据结构2.1.2抽象数据类型及面向对象概念2.1、3数据结构的抽象层次2.1.4算法定义2.1.5模板2.1.6性能分析与度量2.2数组2.2.1作为抽象数据类型的数组2.2.2顺序表2.2.3多项式2.2.4稀疏矩阵2.2.5字符串2.3链表2.3.1单链表2.3.2循环链表2.3.3多项式及其相加2.3.4双向链表2.3.5稀疏矩阵2.4栈和队列2.4.1栈2.4.2表达式的计算2,4.3队列2.4.4优先级队列2.5递归2.5.1递归的概念2.5.2递归过程与递归工作栈2.5.3广义表2.6树与森林2.6,1树和森林的概念2.6.2二叉树2.6.3二叉树的表示2.6.4二叉树遍历2.6.5穿线二叉树2.6.6堆2.6.7树与森林2.6.8二叉树的计数2.6.9霍夫曼树2.7图2.7.1图的基本概念2.7.2图的存储表示2.7.3图的遍历与连通性2.7.4最小生成树2.7.5最短路径2.7,6活动网络2.8集合与搜索2.8.1集合及其表示2.8.2等价类及并查集2.8.3静态搜索及静态搜索树2.9索引与散列2.9.1静态索引表2.9.2动态索引表2.9.3B——树与B+树2.9.4散列表2.10排序2.10.1基本概念2.10.2插入排序2.10.3交换排序2.10.4选择排序2.10.5归并排序2.10.6基数排序2.10.7磁盘排序模块3:软件工程方法3.1软件工程基本概念3.1.1软件的概念、特点和分类3.1.2软件的发展和软件危机3.1.3软件工程过程和软件生存期3.1.4软件生存期模型3.1.5软件工程的基本目标3.2系统分析3.2.1基于计算机的系统3.2.2计算机系统工程3.2.3系统需求识别3.2.4可行性研究3.2.5系统结构的模型化3.3面向过程的需求分析3.3.1软件需求分析的任务3.3.2基本符号3.3.3构造数据流模型3.3.4数据词典3.3.5加工逻辑说明3.3.6行为描述3.4原型化方法3.4.1为什么使用原型化方法3.4.2软件原型的分类3.4.3快速原型开发模型3.4.4原型开发技术概述3.4.5可执行的规格说明3.5数据及数据库需求分析3.5.1有关数据库的基本概念3.5.2E——R方法3.5.3数据结构的规范化3.5.4数据库分析的过程3.6面向过程的软件设计方法3.6.1软件设计的目标和任务3.6.2软件设计基础3.6.3模块设计3.6.4数据设计及文件设计3.6.5软件体系结构设计3.6.6结构化设计方法3.7用户界面设计3.7.1用户界面应具备的特性3.7.2用户界面设计的任务分析3.7.3用户界面任务和工作设计3.7.4界面设计的基本类型3,7.5数据输入界面设计3.7.6数据显示界面设计3.7.7控制界面的设计3.8软件测试3.8.1软件测试的概念3.8.2软件测试策略3.8.3设计测试用例3.9面向对象技术3.9.1面向对象的概念3.9.2面向对象方法的开发过程3.9.3面向对象建模3.9.4对象模型化技术OMT 3.10面向对象分析3.10.1需求陈述3.10.2发现和标识类和对象3.10.3标识类和对象层一应用分析3.10.4标识结构层3.10.5划分主题层3.10.6标识属性层3.10.7标识实例关系3.10.8标识服务和消息3.11面向对象设计3.11.1基本概念3.11.2设计模型中关系的类型3.11.3设计问题论域部分3.11.4定义用户界面部分3.11.5设计任务管理部分3.11.6设计数据库3.12类的设计3.12.1类设计的目标3.12.2通过复用设计类3.12.3类设计方针3.13面向对象实现与测试3.13.1程序设计风格3.13.2基于规格说明的测试3.13.3基于程序的测试,3.13.4组装测试3.13.5针对子类的分层增殖式测试3.13.6测试计划。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程师考试(中级)大纲
一、考试说明
1.考试要求:
(1)掌握常见数据结构的特性;
(2)掌握基本数据运算算法;
(3)理解软件生存期的概念;
(4)掌握快速原型开发方法;
(5)掌握面向对象的开发技术;
(6)掌握结构化分析和结构化设计方法;
(7)掌握c++语言的程序设计技术。
2.通过本级水平考试的合格人员具有从事软件开发与管理的软件工程师的实际工作能力和业务水平。
3.本级水平范围包括三个模块,即模块1、模块2和模块3。
题型为单项选择题十多项选择题。
每个模块考试时间为90分钟。
二、考试范围
模块1:c++与面向对象程序设计
1.1.面向对象程序设计方法和C++
1.1.1面向对象程序设计的基本思想和基本概念
1.1.2C++语言的发展历史
1.2.C++的数据类型
1.2.1一种处理问题的方法
1.2.2C++语言程序
1.2.3对输入/输出的初步认识
1.4.2构造函数和析构函数1.4.3静态成员变量和静态成员函数1.4.4内联函数
1.4.5友元
1.4.6对象和动态对象
1.4.7类属性
1.5结构、联合和枚举
1.5.1结构
1.5.2联合
1.5.3枚举型
1.6函数与函数重载
1.6.1函数
1.6.2动态空间分配
1.7继承性与派生类
1,7.1类的层次概念
1.7.2单继承
1.7.3多继承
1.8多态性
1.8.1函数重载
1.8.2运算符重载
1.8.3虚函数
1.9C++的I/O流库
1.9.1输出与重载运算符“<<”1.9.2输入与重载运算符“>>”1.9.3文件的输入/输出
1.9.4状态函数
1.9.5格式状态符
1.9.6字符串输出格式
1.10面向对象的程序设计环境
1.10.1面向对象的软件开发环境1.10.2类库
1.10.3BorlandC十十类库
1.11C++的应用
1.11.1OOP与结构化程序设计1.11.2与汇编语言的接口1.11.3基于C++的良好OOP风格1.11.4面向对象的弹出式窗口
模块2:算法和数据结构
2.1基本概念
2.1.1什么是数据结构
2.1.2抽象数据类型及面向对象概念2.1、3数据结构的抽象层次2.1.4算法定义
2.1.5模板
2.1.6性能分析与度量
2.2数组
2.2.1作为抽象数据类型的数组2.2.2顺序表
2.2.3多项式
2.2.4稀疏矩阵
2.2.5字符串
2.3链表
2.3.1单链表
2.3.2循环链表
2.3.3多项式及其相加2.3.4双向链表
2.3.5稀疏矩阵
2.4栈和队列
2.4.1栈
2.4.2表达式的计算
2,4.3队列
2.4.4优先级队列
2.5递归
2.5.1递归的概念
2.5.2递归过程与递归工作栈2.5.3广义表
2.6树与森林
2.6,1树和森林的概念2.6.2二叉树
2.6.3二叉树的表示2.6.4二叉树遍历
2.6.5穿线二叉树
2.6.6堆
2.6.7树与森林
2.6.8二叉树的计数2.6.9霍夫曼树
2.7图
2.7.1图的基本概念
2.7.2图的存储表示2.7.3图的遍历与连通性2.7.4最小生成树
2.7.5最短路径
2.7,6活动网络
2.8集合与搜索
2.8.1集合及其表示2.8.2等价类及并查集2.8.3静态搜索及静态搜索树2.9索引与散列
2.9.1静态索引表
2.9.2动态索引表
2.9.3B——树与B+树2.9.4散列表
2.10排序
2.10.1基本概念
2.10.2插入排序
2.10.3交换排序
2.10.4选择排序
2.10.5归并排序
2.10.6基数排序
2.10.7磁盘排序
模块3:软件工程方法
3.1软件工程基本概念
3.1.1软件的概念、特点和分类3.1.2软件的发展和软件危机3.1.3软件工程过程和软件生存期3.1.4软件生存期模型3.1.5软件工程的基本目标3.2系统分析
3.2.1基于计算机的系统3.2.2计算机系统工程
3.2.3系统需求识别3.2.4可行性研究
3.2.5系统结构的模型化3.3面向过程的需求分析3.3.1软件需求分析的任务3.3.2基本符号
3.3.3构造数据流模型3.3.4数据词典
3.3.5加工逻辑说明
3.3.6行为描述
3.4原型化方法
3.4.1为什么使用原型化方法3.4.2软件原型的分类
3.4.3快速原型开发模型3.4.4原型开发技术概述3.4.5可执行的规格说明3.5数据及数据库需求分析3.5.1有关数据库的基本概念3.5.2E——R方法
3.5.3数据结构的规范化3.5.4数据库分析的过程3.6面向过程的软件设计方法
3.6.1软件设计的目标和任务3.6.2软件设计基础
3.6.3模块设计
3.6.4数据设计及文件设计3.6.5软件体系结构设计3.6.6结构化设计方法
3.7用户界面设计
3.7.1用户界面应具备的特性3.7.2用户界面设计的任务分析3.7.3用户界面任务和工作设计3.7.4界面设计的基本类型
3,7.5数据输入界面设计3.7.6数据显示界面设计3.7.7控制界面的设计
3.8软件测试
3.8.1软件测试的概念
3.8.2软件测试策略
3.8.3设计测试用例
3.9面向对象技术
3.9.1面向对象的概念3.9.2面向对象方法的开发过程3.9.3面向对象建模
3.9.4对象模型化技术OMT 3.10面向对象分析
3.10.1需求陈述
3.10.2发现和标识类和对象3.10.3标识类和对象层一应用分析3.10.4标识结构层
3.10.5划分主题层
3.10.6标识属性层
3.10.7标识实例关系
3.10.8标识服务和消息
3.11面向对象设计
3.11.1基本概念
3.11.2设计模型中关系的类型3.11.3设计问题论域部分3.11.4定义用户界面部分3.11.5设计任务管理部分3.11.6设计数据库
3.12类的设计
3.12.1类设计的目标
3.12.2通过复用设计类
3.12.3类设计方针
3.13面向对象实现与测试
3.13.1程序设计风格
3.13.2基于规格说明的测试3.13.3基于程序的测试,3.13.4组装测试
3.13.5针对子类的分层增殖式测试3.13.6测试计划。