软件设计师(中级)考点复习

1、计算机系统知识

  1. 存储单元:主存、辅存     通用寄存器>Cache>内存>硬盘
  2. Cache与主存的地址映象:全相连映像、直接映像、组相连映像
  3. 指令的执行过程(比较常考的是流水线)
  4. 可靠性计算(MTBF平均无故障时间/(MTBF+MTRF平均修复时间))
  5. 校验码(前几年考的比较多的是海明码,奇偶校验码)
  6. 寻址方式(会有直接、一级、二级之分,还会有根据地址编码计算内存容量之类的题目)
  7. 逻辑运算 
  8. 总线线路:数据总线、地址总线、控制总线
  9. 海明码奇偶性校验中,数据位n和检验位k之间的关系为:2^{k} -1\geq n+k

 

2、程序语言基础知识

  1. 参数传递(传值还是传引用)
  2. 几种常用的中间代码表示形式为:后缀式、树形式、三元式(三地址码)、四元式  (没有队列和栈)
  3. 正规式与有穷自动机
  4. 编译程序:把用高级语言书写的源程序翻译成与之对应的目标程序,不参与用户程序的运行控制 ,其中中间代码的生成和代码优化是每个编译器必需的。
  5. 解释程序:参与用户程序的运行控制,直接执行源程序或源程序的内部形式,执行速度慢,且不产生目标程序和代码
  6. 移近-规约分析法是一种自底向上的分析方法。 自顶向下的语法分析方法有:递归下降分析法、预测分析法
  7. 大多数程序设计语言的语法规则用上下文无关文法描述
  8. 逻辑表达式
  9. 代码区:存放函数体的二进制代码                 栈区:由编译器自动分配释放,存放函数的参数值、局部变量等       堆区:由程序猿分配和释放      静态数据区:内存在程序启动时分配,所分配的内存在整个运行期间都存在,如全局变量和static变量

 

3、数据结构

  1. 线性表
  2. 链接表
  3. 有向图
  4. 数组
  5. 二叉树性质:1) 二叉树第i层上的节点数目最多为 2^{i-1}\left ( i\geq 1 \right )       2)深度为k的二叉树至多有2^{k}-1个节点    3)具有n个节点的完全二叉树的深度为 \log_{2}n+1
  6. 哈夫曼树(最优二叉树)
  7. 深度优先遍历和广度优先遍历
  8. 拓扑排序、关键路径和最短路径
  9. 哈希查找处理冲突的方法:开放地址法、链地址法、再哈希法、公共溢出区
  10. 内部排序方法的比较和选择

 

4、操作系统知识

  1. 进程通常由程序、数据及进程控制块(PCB)组成
  2. 进程调度算法:1)先来先服务(FCFS),有利于长作业、 2)时间片轮转,微观调度,提高资源利用率、 3)优先级调度,在进程创建时赋予优先级、 4)多级反馈调度,照顾短进程,提高系统吞吐量,缩短平均周转时间
  3. 死锁的4个必要条件:互斥条件、请求保持条件、不可剥夺条件、环路条件
  4. 死锁的处理:1)死锁的预防,预先静态分配和资源有序分配、2)死锁的避免,银行家算法,提高资源利用率  3)死锁的检测和解除
  5. 地址重定位是指程序的逻辑地址被转换为驻村的物理地址的过程
  6. 分页存储管理至少需要访问两次主存,第一次访问页表,第二次存取数据

 

 

 

5、软件工程基础知识

  1. 软件生存周期:可行性分析》》项目开发计划》》需求分析》》概要设计和详细设计》》程序编码》》软件测试》》维护
  2. 软件开发模型有:瀑布模型、增量模型、演化模型、螺旋模型(考虑风险)、喷泉模型、形式化方法模型
  3. 软件开发方法:结构化方法(自顶向下,不适合解决大规模和复杂项目)、原型化方法(适用于用户需求不清,系统规模不复杂 )、面向对象开发方法、敏捷方法(尽可能早地、持续地对有价值的软件的交付,主要方法有极限编程【由价值观、原则、实践和行为组成】、水晶法【每个不同项目需要不同的策略和方法论】、并列争球法【使用迭代的方法】、自适应软件开发等。)
  4. 内聚类型:1)过程内聚:一个模块完成多个任务,按指定的过程执行    2)时间内聚:一个模块中的功能因为时间因素关联在一起  3)通信内聚:一个模块中的多个功能依赖于相同公用数据,即同一数据文件     4)过程内聚:按特定的次序执行   5)偶然内聚:完成一组没有关系的任务    6)巧合内聚:也就是偶然内聚,与外部联系强,使得耦合度增加

 

6、面向对象技术

  1. 面向对象 = 对象(Object)+分类(Classification)+继承(Inherritance)+通过消息的通信
  2. 对象:面向对象系统中基本的运行实体,既包括数据(属性),也包括作用于数据的操作(行为),因此一个对象把属性和行为封装为一个整体
  3. 多态:不同的对象收到同一消息可以产生不同的结果,这一现象叫多态
  4. UML:统一建模语言,是面向对象软件的标准化建模语言
  5. UML的词汇表包含3中构造块:事物 (结构事物、行为事物、分组事物、注释事物)、 关系(依赖、关联、泛化、实现、聚合)、 图(类图、用例图、构件图、部署图、活动图、状态图)
  6. 设计模型分为三大类:

创建型设计模式:抽象工厂模式、原型模式、单例模式、构建器模式

结构性设计模型:组合模式、享元模式、外观模式、桥接模式、装饰器模式、代理模式、

行为设计模式:解释器模式、观察者模式、策略模式、状态模式、访问者模式、中介者模式、迭代器模式、命令模式、职责链模式

 

常考知识点:

  • 设备管理
  • 死锁
  • 进程管理(PV信号量)
  • 索引存储结构
  • 作业管理
  • 数据流图
  • 模块划分
  • 关键路径,项目里程碑和松弛时间
  • 软件开发模型
  • SEI能力成熟度模型
  • 路径测试和McCabe度量法
  • 数字证书
  • 公开私有秘钥的加密算法
  • 计算机病毒
  • IP协议
  • HTML网页设计
  • 子网划分
  • 视频信息
  • 图像文件格式
  • 信号数字化
  • 图像分辨率
  • 视图
  • SQL语句
  • 关系代数
  • 关系模式
  • 时间复杂度
  • 贪心算法
  • 算法的C语言实现
  • 动态规划
  • UML图(活动、通信、组件、状态...)
  • 设计模式(桥接、策略、生成器、观察者...)
  • 继承的概念
  • 多态

 

你可能感兴趣的:(学习笔记,数据结构,数据结构,java)