1 计算机硬件(小概率考)

  1. 计算机的基本硬件系统
  2. 运算器、控制器(PC->IR->ID->AR)
  3. 码距、奇偶校验
  4. CRC 校验
  5. 指令寻址、指令操作数寻址方式
  6. 指令集(CISC/RISC)
  7. 流水线时间计算
  8. cache替换算法
  9. cache命中率及平均时间
  10. 磁盘结构和读取时间
  11. 磁盘调度算法计算
  12. 计算机与外设数据交互方式及响应时机
  13. 总线

2 操作系统知识(3-5分必考)

2.1 进程管理

2.2 存储管理

2.3 设备管理

2.4 文件管理

3 数据库技术基础(5、6分,必考)

3.1 基本概念

3.2 规范化和并发控制

3.3 数据库新技术

4 嵌入式技术(3-5分,偶尔考拓展)

4.1 嵌入式处理器

4.2 嵌入式软件

4.3 嵌入式系统

4.3.1 嵌入式软件设计

5 计算机网络(3-5分必考拓展)

5.1 IP地址表示

5.2 网络规划与设计

5.3 网络存储技术

5.4 其它考点

6 其他计算机系统基础知识(几乎不考)

7 系统配置与性能评价(偶尔1-2分)

7.1 性能指标

7.2 性能评价方法

7.3 阿姆达尔解决方法

8 信息系统基础知识(3分拓展)

8.1 概述

8.2 开发方法

8.3 电子政务

8.4 企业信息化

8.5 信息化战略体系

8.6 电子商务

9 信息安全基础(2-4分)

9.1 基础知识

9.2 信息安全技术

9.3 抗攻击技术

9.3.1 拒绝服务攻击(DOS)

9.3.2 ARP欺骗

通过IP请求MAC地址时错误的对象响应映射关系。

9.3.3 DNS欺骗

冒充域名服务器,把查询的IP地址设为攻击者的IP。

9.3.4 TCP/IP欺骗

  1. 使被冒充的B暂时瘫痪;
  2. C多次连接到A的端口来猜测ISN值和规律;
  3. C伪装源地址为B,发送SYN标志请求连接;
  4. A向B发送回复握手,无法接收;
  5. C分析得出正确ISN值,再次伪装并发送连接请求;
  6. 连接建立;

9.3.5 端口扫描

  1. 全TCP连接
  2. 半打开式连接(SYN扫描):只进行前两次握手
  3. FIN扫描(秘密扫描):发送结束信号量
  4. 第三方扫描

9.4 保证体系和评估方法

9.4.1 GB17859-999

  1. 用户自主保护级:自主访问控制
  2. 系统审计保护级:粒度更细的自主
  3. 安全标记保护级:强制访问控制
  4. 结构化保护级:扩展到所有主体和客体,全体范围强制访问控制
  5. 访问验证保护级:访问监控器

9.4.2 风险评估

9.4.3 风险计算

9.5 网络安全技术

9.5.1 防火墙

隔离内外网的大门。

9.5.2 入侵检测系统IDS

9.5.3 入侵防御系统IPS

9.5.4 杀毒软件

9.5.5 蜜罐

9.6 网络攻击和威胁

9.6.1 被动攻击

9.6.2 主动攻击

9.6.3 网络安全协议的防御

10 软件工程(12-15分,重点)

10.1 概述

10.1.1 软件开发生命周期

10.1.2 软件系统的文档

10.1.3 软件工程过程

10.1.4 软件系统工具

10.1.5 软件设计

10.2 能力成熟度模型CMM

  1. 初始级
  2. 可重复级
  3. 已定义级
  4. 已管理级
  5. 优化级

10.3 能力成熟度模型集成CMMI

若干过程模型的综合和改进。

  1. 阶段式模型
    1. 初始级
    2. 已管理级
    3. 已定义级
    4. 定量管理
    5. 优化级
  2. 连续式模型

10.4 软件过程模型

10.4.1 瀑布模型

10.4.2 螺旋模型

10.4.3 V模型

10.4.4 原型化模型

10.4.5 增量模型

10.4.6 路边模型

  1. 喷泉模型:适用于面向对象
  2. CBSD:预先包装的构件,复用性
  3. 形式化方法模型:严格数学基础

10.4.7 敏捷模型

敏捷开发方法
  1. 极限编程XP:近螺旋式,测试先行
  2. 水晶系列方法:以人为中心,每个过程都有独特的模式
  3. 并列争球法Scrum:一次迭代为一个冲刺
  4. 特性驱动开发FDD:人、过程、技术、

10.4.8 统一过程模型RUP

10.5 逆向工程

分析程序,在比源代码更高抽象层次上建立程序表示。

  1. 实现级
  2. 结构级
  3. 功能级
  4. 领域级

10.6 软件需求

10.6.1 过程

10.6.2 分类

10.7 流程设计

10.7.1 表示工具

10.7.2 业务流程重组BPR

根本性思考,彻底性再设计。

基本原则

10.7.3 业务流程管理BPM

优化改革。
三个层面:规范流程、优化流程、再造流程

10.8 系统设计

10.8.1 内聚和耦合

属于基本原理。
必考。

内聚
  1. 偶然内聚:无直接关系
  2. 逻辑内聚:逻辑相似,参数决定功能(如switch case)
  3. 时间内聚:同时执行的功能组成的模块
  4. 过程内聚:任务必须按指定过程顺序执行
  5. 通信内聚:在同一个数据结构上,或者输入输出相同
  6. 顺序内聚:各个处理元素顺序执行,输入为前一个元素的输出
  7. 功能内聚:所有元素共同作用
耦合
  1. 无直接耦合:无直接关系
  2. 数据耦合:模块间数据传值
  3. 标记耦合:传递数据结构
  4. 控制耦合:传递控制变量控制功能
  5. 外部耦合:通过软件外部环境联合
  6. 公共耦合:公共数据结构相互作用
  7. 内容耦合:内部关联

10.8.2 人机界面设计

三大黄金原则:

10.9 测试

10.9.1 静态测试和动态测试

10.9.2 测试阶段

  1. 单元测试:依据软件详细设计说明书
  2. 集成测试:依据软件概要设计文档
  3. 确认测试:依据需求文档
    1. 内部确认测试
    2. Alpha测试
    3. Beta测试
    4. 验收测试
  4. 系统测试:在确认测试之前
  5. 配置项测试
  6. 回归测试

10.9.3 测试策略

10.9.4 测试用例设计

黑盒测试用例
  1. 等价类划分:数据分类,每类里面选一个;每次设计新用例时尽可能多覆盖有效等价类,少覆盖无效等价类;
  2. 边界值划分:取边界值(边界值两端内外)
  3. 错误推测
  4. 因果图

10.9.5 白盒测试用例

按照覆盖级别从低到高

  1. 语句覆盖SC:所有语句执行一遍
  2. 判定覆盖DC:所有真假分支
  3. 条件覆盖CC:每一个真假判断里面的每一个独立条件执行一遍真和假(比真假更细)
  4. 条件判定组合覆盖CDC:同时满足两者
  5. 路径覆盖:覆盖所有可行路径

10.9.6 调试

蛮力法,回溯法、原因排除法

外部属性一般为性能指标,可直接测量,内部属性如可靠性间接测量

10.9.7 McCabe度量法(常考)

计算有向图的环路复杂度m-n+2。
有向边数m,节点数n。

10.10 系统转换

10.10.1 遗留系统

没法进行改革的系统。
根据业务价值和技术水平:

10.10.2 转换方式

  1. 直接转换:风险大
  2. 并行转换:并行工作一段时间
  3. 分段转换:分期分批逐步转换

数据转换:切换前工具迁移、手工录入,切换后通过新系统生成

10.11 系统维护

可维护性:维护人员理解、改正、改动、改进软件的难易程度
1. 易分析性:容易找出原因
2. 易改变性:好不好改
3. 稳定性:改完稳不稳定
4. 易测试性:能不能测试
5. 维护的依从性:不考

10.12 净室软件工程CSE

严格按照数学和统计学理论,强调预防
基于函数理论和抽样理论。

10.13 基于构件的软件工程CBSE

可复用构件;复用而非开发;
接口、实用信息、部署。

  1. 系统需求概览
  2. 识别候选构件
  3. 根据发现的构件修改需求
  4. 体系结构设计
  5. 构件定制与适配
  6. 组装构件创造系统
    特点:
    1. 早期需要完整的需求
    2. 根据可利用构件修改和细化需求
    3. 系统结构设计完成后进一步精化构件搜索和设计
    4. 开发就是将找到的构件组装的过程

10.13.1 构件组装

使用胶水代码整合。

组装方式:
- 顺序组装:按顺序调用
- 层次组装:两个构件之间接口匹配,直接调用
- 叠加组装:多个一起来创造一个新构件

问题:
1. 参数不兼容
2. 操作不兼容
3. 操作不完备

11 面向对象技术(3-5分)

11.1 基本概念

11.2 面向对象开发

11.2.1 需求分析

11.2.2 需求建模(UML初步)

11.3 面向对象设计

设计分析模型和实现相应源代码。

11.4 面向对象测试

  1. 算法层:测试类中每个方法(单元测试)
  2. 类层:测试类中所有方法与属性之间的相互作用
  3. 模板层:一组系统工作的类之间相互作用
  4. 系统层:子系统组装成完整系统中测试

11.5 统一建模语言UML

构造块(事物、关系、图)、规则、公共机制

11.5.1 事物

11.5.2 关系

记符号

  1. 关联关系:实线
  2. 依赖关系:虚线+实心箭头
  3. 泛化关系:实线+空心箭头
  4. 聚合关系:实线+空心菱形
  5. 组合关系:实线+实心菱形
  6. 实现关系:虚线+空心箭头

11.5.3 UML2.0图

  1. 类图:系统的静态设计图,一组对象接口等和它们之间的关系
  2. 对象图:类图的快照
  3. 用例图:静态图,展现用例、参与者和之间的关系(扩展、包含、泛化)
  4. 序列图(顺序图):动态图。时间顺序。同步消息、异步消息、返回消息三种箭头。
  5. 通信图(协作图):动态图。强调参加交互对象的组织,即消息传递,有编号。
  6. 状态图:动态图。强调单个对象在多个用例中的行为。实心圆点为起点和终点。
  7. 活动图:动态图。特殊的状态图。展现从一个活动到另一个活动的流程。牢记并发分岔、并发汇合、监护表达式、分支、流等含义。
  8. 构件图(组件图):静态图。系统静态实现视图,一组构件之间的组织和依赖。供接口和需接口。
  9. 部署图:静态图。物理模块的节点分布。

11.5.4 UML 4+1视图

可见 10.4.8 统一过程模型RUP。

  1. 逻辑视图:设计视图,架构方面。
  2. 实现视图:程序员,物理代码的文件和构件进行建模。
  3. 进程视图:系统集成人员,逻辑视图的执行实例,进程的并发和同步。
  4. 部署视图:系统工程师,软件到硬件物理节点的机构。
  5. 用例视图:分析、测试人员,系统的行为,最基本的需求分析模型。

11.6 设计模式(论文会用到)

考法:

  1. XXX属于哪种模式
  2. 给出定义或者场景,应该用哪种设计模式
  3. 设计模式的图形(较少)

11.6.1 创建型模式

  1. 抽象工厂模式
    提供一个抽象接口
  2. 构建器模式
    类和构造分离
  3. 工厂方法模式
    子类决定实例化
  4. 原型模式
    拷贝原型
  5. 单例模式Singleton
    一个类只有一个实例

11.6.2 结构型模式

  1. 适配器模式Adapter
    转换,兼容接口
  2. 桥接模式Bridge
    抽象和实现分离
  3. 组合模式Composite
    整体-部分,树形结构
  4. 装饰模式Decorator
    动态附加额外职责
  5. 外观模式Facade
    对外统一接口
  6. 享元模式Flyweight
    细粒度,共享
  7. 代理模式Proxy
    代理控制

11.6.3 行为型模式

  1. 职责链模式Chain of Responsibility
    传递请求、职责、链接
  2. 命令模式Command
    日志记录、可撤销
  3. 解释器模式Interpreter
    虚拟机,自定义文法
  4. 迭代器模式Iterator
    顺序访问,不暴露内部细节
  5. 中介者模式Mediator
    不直接引用
  6. 备忘录模式Memento
    保存&恢复
  7. 观察者模式Observer
    一对多关系、所有依赖会自动更新。(订阅者模式)
  8. 状态模式State
    改变状态,行为随之改变
  9. 策略模式Strategy
    算法封装替换
  10. 模板方法模式Template Method
    模板
  11. 访问者模式Visitor
    数据和操作分离

12 项目管理

13 系统架构设计(最重要,20分以上,案例、论文必考)

13.1 软件架构概述

13.2 软件架构设计与生命周期

  1. 需求分析阶段
  2. 设计阶段
  3. 实现阶段
  4. 构件组装阶段
  5. 部署阶段
  6. 后开发阶段

13.3 构件

13.3.1 构件标准

  1. EJB
    1. 会话Bean
    2. 实体Bean
    3. 消息驱动Bean
  2. COM
  3. CORBA
    1. 对象请求代理ORB:分布对象中的软总线
    2. 公共对象服务
    3. 公共设施:定义了组件框架

13.4 软件架构风格

定义要考。

理解

13.4.1 五大类

  1. 数据流风格
    • 批处理、管道-过滤器
  2. 调用/返回风格
    • 主程序/子程序:主子程序为构件,过程调用为连接件
    • 面向对象:对象为构件,对象间交互方式为连接件
    • 层次结构:构件组成层次结构,连接件为层间交互协议
  3. 独立构件风格
    • 进程通信:独立的进程为构件,消息传递为连接件
    • 事件驱动(隐式调用):匿名的过程为构件,过程间的隐式调用为连接件
  4. 虚拟机风格
    • 解释器
    • 规则系统
  5. 仓库风格
    • 数据库系统
    • 黑板系统
    • 超文本系统
  6. 闭环控制
  7. C2

13.5 层次架构风格(案例分析较多)

13.6 软件架构复用

13.7 特定领域软件架构DSSA

13.7.1 DSSA的基本活动(常考)

  1. 领域分析:识别信息源,建立领域模型
  2. 领域设计:获得DSSA
  3. 领域实现:开发和组织可重用信息

13.7.2 角色人员(常考)

  1. 领域专家:有经验的技术和业务专家
  2. 领域分析人员:系统分析员
  3. 领域设计人员:软件设计人员
  4. 领域实现人员:程序设计人员

13.7.3 建立DSSA过程

  1. 定义领域范围
  2. 定义领域特定的元素
  3. 定于领域特定的设计和实现需求的约束
  4. 定义领域模型和架构
  5. 产生、搜集可复用的产品单元

13.7.4 三层次模型

  1. 领域开发环境
  2. 领域特定的应用开发环境
  3. 应用执行环境

13.8 基于架构的软件开发ABSD(考六个过程)

13.8.1 基于架构的软件开发过程

  1. 体系结构需求
    • 标识构件的三步:生成类图、分组类、类打包成构件
  2. 体系结构设计
    • 标识构件映射成构件,产生架构
  3. 体系结构文档化
    1. 架构(体系结构)规格说明
    2. 测试架构(体系结构)需求的质量设计说明书
  4. 体系结构复审
    • 外部人员进行复审
  5. 体系结构实现
    • 实现构件,构件组装成系统
  6. 体系结构演化
    • 按需求增删构件,使架构可复用

13.9 软件系统的质量属性

13.10 软件架构评估

13.10.1 质量属性(重要,10+送分,背)

  1. 性能
    • 定义:系统的响应能力
    • 指标:响应时间、吞吐量
    • 设计策略:优先级队列、增加计算资源、减少资源开销、引入并发机制、采用资源调度
  2. 可靠性
    • 出错时维持软件系统功能特性的能力
    • MTTF、MTBF、MTTR(平均无故障时间、平均故障间隔时间、平均故障修复时间)
    • 心跳、Ping/Echo、冗余、选举
  3. 可用性
    • 系统能够正常运行的时间比例
    • 与可靠性相同
    • 与可靠性相同
  4. 安全性
    • 向合法用户提供服务同时阻止非授权用户使用的企图或拒绝服务的能力。
    • 保密性、完整性、不可抵赖性、可控性
    • 入侵检测、用户认证、用户授权、追踪审计
  5. 可修改性
    • 较高性价比变更系统
    • 接口-实现分类、抽象、信息隐藏(各种结构设计原则)
  6. 功能性
    • 完成所期望工作的能力
  7. 可变性
    • 体系结构经扩充或变更成为新体系结构的能力
  8. 互操作性
    • 系统组成部分的软件不独立存在,经常与其他系统或自身环境相互作用
    • 精心设计的软件入口

13.10.2 质量属性场景

  1. 刺激源:用户、开发等
  2. 刺激:增删改...
  3. 环境:设计时、编译时、构件时、运行时
  4. 制品:操作的对象,界面、平台、系统...
  5. 响应:修改、动作
  6. 响应度量:修改是否成功,成本,对其他部分的影响...

13.10.3 软件架构评估

评估方式
  1. 基于调查问卷(检查表)
  2. 基于度量:定量的指标
  3. 基于场景
    1. 确定功能
    2. 设计对应场景:刺激、环境、响应
    3. 分析软件架构对于场景的支持程度
基于场景的架构评估方法SAAM
架构权衡分析法ATAM
  1. 描述和介绍阶段
    1. 描述ATAM方法
    2. 描述业务动机
    3. 描述架构
  2. 调查和分析阶段
    1. 确定架构方法
    2. 生成质量属性效用树
    3. 分析架构方法
  3. 测试阶段
    1. 讨论场景和对场景分级
    2. 分析架构方法
  4. 报告阶段
    1. 描述评估结果
成本效应分析法CBAM
其他方法

SAEM SAABNet SACMM SASAM ALRRA AHP COSMIC+UML

13.11 中间件

13.11.1 典型中间件

  1. 数据库访问中间件:JDBC
  2. 远程过程调用RPC:
  3. 面向消息中间件MOM:IBM的MQSeries
  4. 分布式对象中间件:COBRA,EJB,DCOM
  5. 事务中间件,事务处理监控器(TPM),完成负载均衡、失效恢复等

13.11.2 典型架构

J2EE
  1. 客户层
  2. Web层
    JSP Servlet
  3. 业务层
    EJB
  4. 信息系统层
    数据库

14 软件可靠性基础

15 软件架构演化维护

16 未来信息综合技术

17 知识产权

  1. 普通作品
  2. 软件产品
  3. 商标
  4. 专利
  5. 商业秘密

18 数学与经济管理

18.1 最小生成树

n个节点用n-1条边联通,同时不生成环路。

解法:一次找出最短的边连起来。

可能连法不唯一。

18.2 最短路径

A-F最短路径=A-B+B-F||.......||A-E+E-F||A-F

18.3 网络与最大流量

运输能力由短板决定。

并发运输,可以同时走多条路,后面流量需要相应减少

18.4 线性规划

18.5 动态规划

18.6 伏格尔法

  1. 得出每一行和列最小和次小的差值
  2. 选出最大差值,该行/列用最优,差值相同的看具体值,具体值还相同就任取
  3. 供应/需求完成的行/列划掉
  4. 重复1-4

18.7 博弈论

18.8 状态转移矩阵

18.9 排队论

放水出水问题

18.10 决策论

  1. 确定型决策
  2. 风险决策
  3. 不确定型决策

18.10.1 不确定型决策方案

  1. 悲观主义准则: 最差可能中最大值
  2. 乐观主义准则:最好可能中最大
  3. 折中主义准则
    折中系数a,每个方案最大收益a+最小收益(1-a)
  4. 等可能性准则
  5. 后悔值准则
    不同环境中,获得的最大收益-当前收益=后悔值,选择每个方案最大后悔值中最小的

18.11 决策树

18.12 数学建模