软件设计师培训指南

一、考试说明

1.考试目标

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

2.考试要求

(1) 掌握计算机内的数据表示、算术和逻辑运算;

(2) 掌握相关的应用数学及离散数学基础知识;

(3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理;

(4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;

(5) 熟练掌握常用数据结构和常用算法;

(6) 熟悉数据库、网络和多媒体的基础知识;

(7) 掌握C程序设计语言,以及C++、Java中的一种程序设计语言;

(8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;

(9) 掌握软件设计的方法和技术;

(10) 了解信息化、常用信息技术标准、安全性,以及有关法律、法规的基础知识;

(11) 正确阅读和理解计算机领域的英文资料。

3.考试科目

(1) 计算机与软件工程知识,考试时间为150分钟,笔试,选择题;

(2) 软件设计,考试时间为150分钟,笔试,问答题。

二、考试内容

说明:

“I”、“II”和“III”表示掌握或熟悉的程度:

“I”是指对所列知识要理解其内容及含义(理解)。

“II” 指在有关问题中能直接使用(一般应用)。

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

考试科目1:计算机与软件工程知识

1. 计算机科学基础知识

1.1数制及其转换

l 二进制、八进制、十进制和十六进制等常用数制及其相互转换(Ⅱ)

1.2 计算机内数据的表示

l 数的表示

Ø 带符号定点数据(纯整数和纯小数)的原码、反码、补码和移码表示(Ⅱ)

Ø 浮点数(实数)的表示(Ⅱ)

Ø 溢出的概念(Ⅱ)

1.3算术运算和逻辑运算

l 计算机中的二进制数运算方法

Ø 补码表示下定点数的加、减、乘、除运算方法(I)

l 逻辑代数的基本运算

Ø 基本的逻辑运算:与、或、非、异或(Ⅱ)

1.4其他数学基础知识

l 常用数值计算

Ø 矩阵和行列式、近似求解、插值、数值积分、常微分方程等常用的数值运算方法及运算误差的概念(I)

l 排列组合,概率论应用,应用统计(数据的统计分析)(I)

l 编码基础(ASCⅡ码,汉字编码,奇偶校验,海明码,霍夫曼码、循环冗余码)

Ø 奇偶校验码、海明码、霍夫曼码、循环冗余码的编码方法及指定实例时校验码的计算(I)

l 命题逻辑、谓词逻辑、形式逻辑的基础知识 (I)

2. 计算机系统基础知识

2.1计算机硬件基础知识

2.1.1计算机系统的组成、体系结构分类及特性

l CPU、存储器的组成、性能和基本工作原理

Ø CPU的基本组成结构(I)

Ø 存储器的组成及特点:内存、外存、缓存Cache)、闪存(Ⅱ)

Ø 存储器的性能指标定义:存取周期、存储容量和可靠性(Ⅱ)

l 常用I/O设备、通信设备的性能以及基本工作原理(I)

l I/O接口的功能、类型和特性

Ø CPU在与I/O设备进行数据交换时存在的主要问题:速度不匹配、时序不匹配、信息格式不匹配、信息类型不匹配(I)

Ø CPU与外设之间的数据交换必须通过接口来完成,I/O接口的主要功能(Ⅱ)

Ø 接口的控制方式及特点:CPU通过接口对外设进行控制的方式程序查询方式、中断处理方式、DMA(直接存储器存取)传送方式(Ⅱ)

l CISC/RISC,流水线操作,多处理机,并行处理

Ø RISC(精简指令集计算机)和CISC(复杂指令集计算机)的定义和特点(I)

Ø 流水线的定义及操作特点(Ⅱ)

Ø 多处理机的概念(I)

Ø 单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令流单数据流(MISD)、多指令流多数据流(MIMD)的概念和特点(Ⅱ)

Ø 并行处理的基本概念(I)

2.1.2存储系统

l 虚拟存储器基本工作原理,多级存储体系

Ø 虚拟存储器的定义和管理方式(I)

Ø 多级存储体系的组成及特点(Ⅱ)

l RAID类型和特性

Ø RAID的定义和基本特点(I)

Ø RAID 0~RAID 7、RAID 10、RAID 53等规范的特征(I)

2.1.3可靠性与系统性能评测基础知识

l 诊断与容错

Ø 容错技术与容错控制(I)

l 系统可靠性分析评价

Ø 系统的可靠性定义(I)

Ø 串联系统特点及可靠性度量(Ⅱ)

Ø 并联系统特点及可靠性度量(Ⅱ)

Ø 模冗余系统等可靠性数学模型的特点(I)

l 计算机系统性能评测方法

Ø 平均无故障时间(MTBF)的定义 (I)

Ø 平均修复时间(MTRF)的定义(I)

Ø 可用性的定义(I)

2.2计算机软件基础知识

2.2.1数据结构与算法知识

l 数组

Ø 二维数组:按行存储和按列存储,数组元素存储位置的计算(Ⅱ)

Ø 特殊矩阵和稀疏矩阵的特点及压缩存储(Ⅱ)

Ø 静态数组(固定容量数组)(I)

Ø 动态数组(根据应用需要申请或扩充数组的容量)(I)

l 链表

Ø 线性表的定义和基本运算(I)

Ø 线性表的顺序存储和特点(I)

Ø 单向链表、双向链表和环形链表的运算特点(Ⅱ)

Ø 指针、结点、头指针和头结点的概念(Ⅱ)

l 队列和栈

Ø 队列的定义、运算和存储结构(Ⅱ)

Ø 栈的定义、运算和存储结构(Ⅱ)

l 树

Ø 二叉树的定义(Ⅱ)

Ø 满二叉树、完全二叉树的定义(Ⅱ)

Ø 二叉树的性质(Ⅱ)

Ø 二叉树的顺序存储和二叉链表存储(Ⅱ)

Ø 二叉树的遍历:先序、中序、后序和层序(Ⅱ)

Ø 最优二叉树的定义、特点和构造方法(Ⅱ)

Ø 二叉排序树的定义和运算(Ⅱ)

Ø 平衡二叉树、B-树、B+树的概念(I)

Ø 树与二叉排序树的相互转换(Ⅱ)

l 图

Ø 图结构的定义(I)

Ø 图的邻接矩阵存储和邻接表存储(I)

Ø 图的广度优先遍历和深度优先遍历操作(Ⅱ)

l 杂凑

Ø 哈希(杂凑)表的构造、冲突的处理和元素的查找,平均查找长度的计算(Ⅱ)

l 常用算法

Ø 插入排序、冒泡排序、选择排序算法(Ⅲ)

Ø 希尔排序、快速排序、堆排序、归并排序方法及特点(Ⅱ)

Ø 顺序查找、二分查找方法及特点(Ⅲ)

Ø 模式匹配算法(Ⅱ)

Ø 图的遍历算法、求最小生成树算法、拓扑排序算法、求最短路径算法、求关键路径算法的算法思想(Ⅱ)

Ø 递归算法的设计方法(Ⅱ)

l 算法描述和分析

Ø 算法的实现与数据结构的关系(Ⅱ)

Ø 算法的效率分析(Ⅱ)

Ø 算法的流程图、伪代码描述方式(Ⅱ)

Ø 算法的时间复杂性和空间复杂性概念(I)

2.2.2 操作系统知识

l 操作系统的内核

Ø 操作系统内核的功能和基本组成(I)

Ø 内核与用户程序的运行方式差别(I)

Ø 内核运行、中断控制的基本知识(I)

l 处理机管理

Ø 进程、线程等基本概念,程序顺序执行和并发执行的基本特征(I)

Ø 进程的基本组成,进程的基本状态及状态间的切换,三态模型与五态模型(II)

Ø 进程间的通信:同步与互斥、临界资源、临界区、信号量、PV操作(II)

Ø 管程的概念(I)

Ø 进程调度方式及常用的进程调度算法(II)

Ø 死锁的定义、产生死锁的原因、产生死锁的必要条件(II)

l 存储管理

Ø 虚拟地址、地址空间、存储空间、地址重定位的基本概念(I)

Ø 分页存储管理(II)

Ø 程序的局部性特点,虚拟存储器的实现方法(I)

Ø 页面置换算法:最佳置换算法、先进先出置换算法、最近最久未使用置换算法、最近未用置换算法(II)

l 设备管理

Ø 设备分类方法(I)

Ø 通道、DMA的概念及特点(I)

Ø Spooling(Simultaneous Peripheral Operations On Line)定义、组成和结构(I)

Ø 磁盘调度算法:先来先服务(First-Come First-Served,FCFS)、最短寻道时间优先SSTF(Shortest Seek Time First)、扫描算法(SCAN)、单向扫描调度算法(CSCAN)磁盘调度算法的基本思想(II)

l 文件管理

Ø 文件、文件系统、文件类型、文件组织结构的基本概念(I)

Ø 文件的物理结构:连续结构、链接结构、索引结构、多个物理块的索引表结构的基本概念(I)

Ø 目录,一级目录、二级目录、多级目录的基本概念(I)

Ø 文件的存取方法:顺序存取法、直接存取法、按键存取法的基本概念(I)

Ø 文件存储空间的管理:位示图、空闲区表、空闲块链、成组链接法基本思想(I)

l 作业管理

Ø 作业的状态(提交、后备、执行、完成)、作业控制块和作业后备队列的基本概念(I)

Ø 先来先服务、短作业优先、响应比高优先作业调度算法思想(II)

Ø 优先级调度算法思想(II)

l 网络操作系统和嵌入式操作系统基础知识

Ø 网络操作系统的特征和分类(I)

Ø 嵌入式操作系统的特点(I)

Ø 操作系统的配置(I)

2.2.3 程序设计语言和语言处理程序知识

l 汇编、编译、解释系统的基础知识和基本工作原理

Ø 语言翻译的基本概念(I)

Ø 汇编的基本方法(I)

Ø 编译的基本过程及编译各阶段的基本任务(I)

Ø 解释的基本过程(I)

Ø 有限自动机的定义及构造(Ⅱ)

Ø 正规表达式的定义、构造及特点(Ⅱ)

Ø 上下文无关文法的定义(I)

Ø 句子的推导(Ⅱ)

l 程序设计语言的基本成分:数据、运算、控制和传输,程序调用的实现机制

Ø 程序设计语言的数据、运算、控制及输入输出处理机制(I)

Ø 函数的参数传递机制:传值、传地址(Ⅱ)

l 各类程序设计语言的主要特点和适用情况

Ø 过程式程序语言、面向对象程序设计语言、函数式程序设计语言、逻辑程序设计语言的基本特点(I)

Ø 脚本语言的特点(I)

2.2.4 数据库知识

l 数据库模型(概念模式、外模式、内模式)

Ø 概念模式(模式)、外模式(用户模式或子模式)、内模式(物理模式)的基本概念(Ⅱ)

Ø 三级模式和两级映像(模式/内模式映像、外模式/模式映像)的基本概念(Ⅱ)

Ø 数据的独立性(数据的逻辑独立性、数据的物理独立性)的基本概念(Ⅱ)

l 数据模型,ER图,规范化

Ø 数据模型:层次模型、网状模型、关系模型、面向对象模型的基本概念(Ⅰ)关系模型的应用方法(Ⅱ)

Ø 数据模型的三要素(数据结构、数据操作、数据的约束条件)的含义(Ⅰ)

Ø E-R模型方面的基本概念(Ⅱ);E-R图(E-R模型)向关系模型的转换的基本方法(Ⅱ)

Ø 实体中主键、候选键、外键方面的基本概念(Ⅱ)

Ø 联系类型(一对多(1:1)、一对多(1:n)、多对多(m:n))的基础知识(Ⅱ)

Ø 属性(简单属性、复合属性、单值属性、多值属性、NULL属性、派生属性)的含义(Ⅰ)

Ø 关系模式规范化的程度:第一、第二、第三范式(Ⅰ)

l 数据操作

Ø 关系数据库、关系数据库模式的基本概念(Ⅱ)

Ø 关系模型的完整性规则:实体完整性、参照完整性、用户定义完整性的基本概念(Ⅰ)

Ø 5种基本的关系运算(并、差、笛卡尔积、投影、选择)的基本概念(Ⅰ);扩展的关系运算中选择、投影、连接运算方法(Ⅱ);扩展的关系运算中的除法、外联接方面的基本概念(Ⅰ)

l 数据库语言

Ø 数据定义语言(DDL):CREATE TABLE (创建表)使用方法(Ⅱ)

Ø 数据操纵语言(DML):SELECT(查询)、INSERT(插入)、DELETE(删除)和UPDATE(修改) 使用方法(Ⅱ)

Ø 完整性(integrity)定义:PRIMARY KEY、FOREIGN KEY REFERENCES使用方法(Ⅱ)

Ø 权限管理(authorization) :GRANT和REVORK使用方法(Ⅱ)

l 数据库管理系统的功能和特征

Ø 数据库管理系统的特征、功能与组成、文件系统的特征,文件系统与数据库管理系统的差异的基本概念(Ⅰ)

l 数据库的控制功能

Ø 事务的基本概念、事务的特性、故障的类型的基础知识(Ⅰ)

Ø 数据不一致性(丢失修改、不可重复读、读脏数据)的基础知识(Ⅰ)

Ø 并发控制中活锁/死锁、可串行性、两段锁协议的基本概念(Ⅰ)

Ø 安全控制(权限机制、视图机制、加密机制)的基本概念(Ⅰ)

Ø 事务、事务的特性、事务的状态、事务状态的转换的基本概念(Ⅰ)

Ø 故障的类型、故障的恢复技术、恢复策略的基础知识(Ⅰ)

Ø 并发控制后会产生丢失修改、不可重复读、读脏数据三类数据不一致性(Ⅰ),造成数据不一致性的原因(Ⅱ)

Ø 并发控制中事务的调度(串行调度、并行调度)、活锁/死锁、可串行性、两段锁协议的基础知识(Ⅰ)

Ø 安全控制(权限机制、视图机制、加密机制)的基本概念(Ⅰ)

l 数据仓库和分布式数据库基础知识

Ø 数据仓库(Data Warehouse,DW):基本特性、数据模式、体系结构的基本概念(Ⅰ)

Ø 数据仓库模型:企业仓库、数据集市和虚拟仓库的基本概念(Ⅰ)

Ø 分布式数据库的定义、体系结构、设计目标、分布数据独立的基本概念(Ⅰ)

2.3 计算机网络知识

l 网络体系结构

Ø 网络拓扑(Ⅱ)

Ø OSI/RM,TCP/IP(Ⅱ)

Ø 常用的网络协议(Ⅱ)

l 传输介质,传输技术,传输方法,传输控制(Ⅰ)

l 常用网络设备和各类通信设备的功能和特点(Ⅰ)

l Client-Server结构、Browser-Server结构的特点(Ⅰ)

l 局域网

Ø 拓扑结构 (Ⅱ)

Ø 存取控制 (Ⅰ)

Ø 网间互连 (Ⅰ)

l Internet 和Intranet 基础知识以及应用(Ⅱ)

l 网络软件(Ⅰ)

l 网络管理及网络性能分析(Ⅰ)

2.4 多媒体基础知识

l 多媒体系统基础知识

Ø 媒体分类:感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体的基本概念(Ⅰ)

Ø 多媒体、超媒体、流媒体的基本概念(Ⅰ)

Ø 色彩的三基色、彩色空间、三要素基本概念(Ⅰ)

Ø 图形和图像,图像分辨率与显示分辨率、像素深度、真/伪彩色,图像的压缩标准的基本概念(Ⅱ)

l 简单图形的绘制,图像文件的处理方法

Ø 图像的压缩编码:有损压缩和无损压缩方面的基本概念(Ⅰ)

Ø JPEG、MPEG和H.261等编码及压缩标准方面的基本概念(Ⅰ)

Ø 图像文件的处理方法的基础知识(Ⅰ)

l 音频和视频信息的应用

Ø 常见的声音文件格式(Ⅰ)

Ø 数字声音信号、波形声音的基本概念(Ⅰ)

Ø 声音信号的数字化,包括采样、量化、编码;了解数字语音的数据压缩方法:波形编码、参数编码、混合编码的基础知识(Ⅱ)

3.系统开发和运行知识

3.1 软件工程基础知识

l 软件生存周期与软件生存周期模型

Ø 瀑布模型、演化模型、螺旋模型、喷泉模型(Ⅱ)

l 软件开发方法

Ø 结构化方法、面向对象方法的基本概念(Ⅱ)

l 软件开发项目管理

Ø 成本估算、风险分析、进度管理(Gantt图、PERT图)、人员管理(Ⅰ)

l 软件工具与软件开发环境

Ø 分析工具、设计工具、编程工具、测试工具、维护工具、CASE(Ⅰ)

3.2 系统分析基础知识

l 系统分析的主要步骤(Ⅰ)

l 结构化分析方法

Ø 数据流图的基本构成、数据字典、加工逻辑的描述(结构化语言、决策表、决策树)(Ⅱ)

3.3 系统设计基础知识

l 概要设计与详细设计的基本任务 (Ⅰ)

l 系统设计的基本原理

Ø 抽象、模块化、信息隐蔽、模块独立(耦合、内聚)的基本概念(Ⅰ)

l 系统模块结构设计

Ø 模块的概念、模块结构图的构成与内涵(Ⅰ)

l 结构化设计方法(变换分析、事务分析的概念及基本步骤)(Ⅰ)

l 面向数据结构的设计方法(Jackson方法的设计步骤)(Ⅰ)

l 系统详细设计

Ø 代码设计的基本原则(Ⅰ)

Ø 输入/输出设计的基本原则(Ⅰ)

Ø 处理过程的设计(程序流程图、盒图、决策树、决策表)(Ⅰ)

Ø 用户界面设计的基本原则)(Ⅰ)

3.4 系统实施基础知识

l 系统实施的基本内容(Ⅰ)

l 程序设计方法

Ø 结构化程序设计方法、面向对象程序设计方法的基本概念(Ⅱ)

l 程序设计的基本模块(Ⅰ)

l 系统测试

Ø 系统测试的基本原则(Ⅰ)

Ø 用黑盒法设计测试用例(等价类划分、边界值划分、错误推测、因果图)(Ⅱ)

Ø 用白盒法设计测试用例(逻辑覆盖、循环覆盖、基本路径测试)(Ⅱ)

Ø 理解单元测试、集成测试、确认测试与系统测试的基本内容(Ⅱ)

l 系统转换

3.5 系统运行和维护基础知识

l 系统可维护性的概念(Ⅰ)

l 系统维护的类型

Ø 正确性维护、适应性维护、完善性维护、预防性维护的基本概念(Ⅱ)

l 系统评价的概念与类型(Ⅰ)

3.6 软件质量管理基础知识

l 软件质量特性(ISO/IEC 9126软件质量模型) (Ⅰ)

l 软件质量保证(Ⅰ)

l 软件复杂性的概念及度量方法(McCabe度量法)(Ⅰ)

l 软件评审(设计质量评审、程序质量评审)(Ⅰ)

l 软件容错技术

Ø 容错软件的定义、容错的一般方法(结构冗余、信息冗余、时间冗余、冗余附加技术)(Ⅰ)

3.7 软件过程改进基础知识

l 软件能力成熟度模型CMM(Ⅱ)

l 统一过程(UP)与极限编程(XP)的基本概念(Ⅱ)

4.面向对象基础知识

4.1 面向对象的基本概念

l 对象、消息、类、继承(单继承、多继承)、多态(动态绑定机制)(Ⅱ)

4.2 面向对象分析与设计知识

l 面向对象分析的基本活动

Ø 认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息(Ⅱ)

l 面向对象分析与设计方法

Ø Peter Coad和Edward Yourdon的OOA和OOD方法(Ⅰ)

Ø Booch的OOD方法(Ⅰ)

Ø OMT的分析与设计方法(Ⅰ)

Ø UML的基本概念及各种图形,能够熟练地使用UML的各种模型绘制面向对象分析与设计模型(Ⅱ)

l 面向对象测试的基本概念(Ⅰ)

4.3 分析模式与设计模式知识

l 设计模式的基本概念及其要素(Ⅰ)

l 创建型设计模式(Ⅱ)

l 结构型设计模式(Ⅱ)

l 行为型设计模式(Ⅱ)

4.4 面向对象程序设计知识

l 程序设计语言中的面向对象机制

Ø 类与对象、对象自身引用、无实例的类(Ⅱ)

Ø 继承与类层次结构(Ⅱ)

Ø 消息传递与方法(Ⅱ)

Ø 重置与重载(Ⅱ)

l 类库的概念(Ⅱ)

4.5 面向对象数据库、分布式对象基础知识(Ⅰ)

5. 信息安全知识

l 信息系统安全

Ø 计算机系统安全、网络安全、信息安全的基础知识(Ⅰ)

l 信息系统安全管理

Ø 防治计算机病毒、防范计算机犯罪、存取控制、防闯入、防灾(Ⅰ)

l 保障完整性与可用性的措施(Ⅰ)

l 加密与解密机制基础知识(Ⅱ)

l 风险管理(风险分析、风险类型、抗风险措施和内部控制)(Ⅰ)

l 计算机安全相关的法律、法规基础知识(Ⅰ)

6. 标准化、信息化和知识产权基础知识

6.1 标准化基础知识

l 标准化基础知识

Ø 标准化目的、意义、组织机构及内容方面的基本概念(Ⅰ)

Ø 标准化分类、代号与编号规定方面的基本概念(Ⅰ)

Ø 标准制订过程方面的基础知识(Ⅰ)

l 标准分类

Ø 国际标准、国家标准、行业标准、企业标准的表示方法(Ⅱ)

l 代码标准、文件格式标准、安全标准、软件开发规范和文档标准、互联网相关标准、软件开发规范和文档标准、基于构件的软件标准

Ø 代码标准、文件格式标准、安全标准方面的基本概念(Ⅰ)

Ø 软件开发规范和文档标准、互联网相关标准方面的基本概念、基于构件的软件标准(Ⅱ)

Ø 安全标准、互联网相关标准方面的基本概念(Ⅰ)

6.2 信息化基础知识

l 全球信息化趋势、国家信息化战略、企业信息化战略和策略(Ⅰ)

l 互联网关的法律、法规知识(Ⅰ)

l 个人信息保护规则(I)

l 远程教育、电子商务、电子政务等基础知识(Ⅰ)

l 企业信息资源管理基础知识(Ⅰ)

6.3 知识产权基础知识

l 保护知识产权有关的法律、法规

Ø 软件有关的法律、法规方面的基础知识(Ⅰ)

Ø 著作权法、软件保护条例及软件著作登记的基础知识(Ⅰ)

Ø 软件著作权主体与客体、权利内容、权利归属、侵权责任,分析侵权行为(Ⅱ)

Ø 专利法、商标法、商业秘密权对软件的保护(Ⅰ)

7. 计算机专业英语

l 具有工程师所要求的英语阅读水平(Ⅱ)

l 理解本领域常用英语术语(Ⅱ)

考试科目2:软件设计

1.外部设计

1.1 理解系统需求说明(ⅡⅡ)

1.2 准备进行系统开发

l 选择开发方法、准备开发环境、制订开发计划(I)

1.3 设计系统功能

l 选择系统结构(II)

l 设计各子系统的功能和接口(II)

l 设计安全性策略、需求和实现方法(II)

l 制订详细的工作流和数据流(II)

1.4 设计数据模型

l 设计ER模型及其他数据模型

Ø 掌握E-R模型、UML模型的表示方法和使用方法,关系模型的定义、相关知识以及符号化表示方法。(Ⅱ)

Ø 通过从数据库逻辑设计中如何构造一个好的数据库模式出发,掌握关系规范化的实际背景、理论及模式规范化的方法(Ⅱ)

Ø 掌握如何用关系数据库设计理论作指导,进行数据库逻辑设计,重点掌握E-R模型向关系模型转换的方法(Ⅲ)

1.5 编写外部设计文档

l 系统配置图、各子系统关系图(I)

l 系统流程图、系统功能说明书(I)

l 输入输出规格说明、数据规格说明、用户手册框架(I)

l 设计系统测试要求(I)

1.6 外部设计的评审(I)

2.内部设计

2.1 设计软件结构

l 按构件分解,确定构件功能、规格以及构件之间的接口(Ⅱ)

l 数据结构与算法设计

Ø 数据结构设计:线性表、查找表、树、图的顺序存储结构和链表存储结构的设计和实现(Ⅲ)

Ø 算法设计:迭代、穷举搜索、递推、递归、回溯、贪心、动态规划、分治等算法设计(Ⅲ)

l 采用中间件和工具(I)

2.2 设计输入输出

l 屏幕界面设计、输入输出格式设计(II)

l 分析数据特性,确认逻辑数据组织方式、存储介质,设计记录格式和处理方式(II)

l 将逻辑数据结构换成物理数据结构,计算容量,进行优化和检查信息(II)

2.3 设计物理数据(Ⅱ)

2.4 构件的创建和重用

l 创建构件、重用构件(I)

l 使用子程序库或类库

Ø AWT、Swing用户界面与事件处理机制(I)

Ø Java语言中流与文件的应用(Ⅲ)

Ø Java语言中的多线程的开发与应用(Ⅲ)

Ø Java语言中集合类库的应用(Ⅲ)

Ø Java语言中网络、数据库的开发与应用(Ⅲ)

Ø C++标准类库中容器库的应用(Ⅲ)

Ø C++标准类库中算法库的应用(Ⅲ)

Ø C++标准类库中的迭代器的应用(Ⅲ)

Ø C++标准类库中的字符串的应用(Ⅲ)

Ø C++标准类库中的流与文件的应用(Ⅲ)

Ø C语言标准函数库(Ⅲ)

2.5 编写内部设计文档

l 构件划分图、构件间的接口、构件处理说明(I)

l 屏幕界面设计文档、报表设计文档、文件设计文档、数据库设计文档(I)

2.6 内部设计的评审(I)

3.数据库应用分析与设计

l 设计关系模式

Ø 掌握给定一个实际的应用问题如何设计E-R模型,如何将E-R模型转换成关系模式,确定联系类型、主键、候选键、外键,判断关系模式规范化的程度(Ⅲ)

l 数据库语言(SQL)

Ø 掌握给定一个实际的应用问题如何用SQL进行数据定义(创建表、视图)、完整性定义及权限定义(Ⅲ)

l 数据库访问

Ø 掌握常用数据库的访问方法(Ⅱ)

4.程序设计

4.1 模块划分(原则、方法、标准)(Ⅱ)

4.2 编写程序设计文档

l 模块规格说明书(功能和接口说明,程序处理逻辑、输入输出数据格式的描述)(II)

l 测试要求说明书(测试类型和目标、测试用例、测试方法)(II)

4.3 程序设计评审(Ⅱ)

5.系统实施

5.1 配置计算机系统及环境(Ⅱ)

5.2 选择合适的程序设计语言(Ⅱ)

5.3 用C程序设计语言以及C++、Java中的任一种程序设计语言进行程序设计

l 用C语言实现常用的数据结构与算法及应用程序(Ⅲ)

l 用C++语言实现常见的设计模式及应用程序(Ⅲ)

l 用Java语言实现常见的设计模式及应用程序(Ⅲ)

5.4 系统测试

l 指导程序员进行模块测试,并进行验收(I)

l 准备系统集成测试环境和测试工具(I)

l 准备测试数据(I)

l 写出测试报告(I)

6. 软件工程应用

6.1 软件开发周期模型(瀑布模型、螺旋模型、喷泉模型)(Ⅱ)

6.2 需求分析

l 定义软件需求(系统化的目标、配置、功能、性能和约束,功能需求与非功能需求)(Ⅱ)

l 描述软件需求

Ø 使用面向数据流的模型和面向对象模型描述软件的功能需求和非功能需求(Ⅲ)

Ø 描述软件需求的功能层次模型、控制流模型、面向数据结构的模型(I)

l 定义软件需求的方法

Ø 使用结构化分析方法定义软件需求,能够根据具体问题,绘制相应的DFD模型,并定义数据字典,采用决策表或决策树的方式描述加工逻辑(Ⅲ)

Ø 使用面向对象分析方法定义软件需求,能够根据具体问题,创建符合UML标准的类图、用例图,并准确识别类中的关键属性和方法,以及类之间的关联(Ⅲ)

Ø 以UML状态图、活动图以及序列图所表达的软件需求(Ⅱ)

6.3软件设计

l 软件设计的基本原则

Ø 分析与集成、逐步求精、抽象、信息隐蔽、模块化(I)

l 软件设计的方法(结构化设计方法、Jackson方法、Warnier方法、面向对象设计方法)

Ø 结构化设计方法,并能够根据具体问题,在结构化分析的基础上,给出设计结果(Ⅱ)

Ø 面向对象的设计方法,并能够根据具体问题,给出相应的符合UML标准的设计模型(Ⅲ)

Ø Jackson方法的基本理念及基本步骤(I)

6.4软件测试的原则与方法(Ⅱ)

6.5软件质量(Ⅱ)

6.6软件过程(Ⅱ)

6.7软件开发环境和开发工具(分析工具、设计工具、编程工具、测试工具、维护工具、CASE)(Ⅱ)

6.8面向对象技术

l 面向构件技术(I)

l 统一建模语言(UML)

Ø UML的基本概念与作用(Ⅲ)

Ø 用例图的表示与应用(Ⅲ)

Ø 类图与对象图的表示与应用(Ⅲ)

Ø 序列图的表示与应用(Ⅲ)

Ø 活动图的表示与应用(Ⅲ)

Ø 通信图的表示与应用(Ⅲ)

Ø 组件图的表示与应用(Ⅲ)

Ø 部署图的表示与应用(Ⅲ)

Ø 状态图的表示与应用(Ⅲ)

6.9网络环境软件技术(I)

转载于:https://my.oschina.net/MyHeaven1987/blog/156716

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值