动态规划:
- 0-1背包问题: 时间复杂度和空间复杂度都是O(NW), N是物品数量,W是背包容量
- 最长公共序列
- 矩阵连乘: 时间复杂度是O(n^3), 空间复杂度是O(n^2)
甘特图:
-
并行;
-
任务所需时间分明;
-
不能看出任务之间的依赖关系
-
容易识别出关键的子任务
原型模型: 小规模
螺旋模型: 大规模+风险评估
瀑布模型
归并排序的递归式: T(n) = 2T (n/2) +O(n)
- 工厂单例建原型: 创建型模式, 工厂方法 (创建型类)
- 世代外接享组合: 结构性模式, 适配器模式 特殊: 既是结构型对象模式 ,也是结构型类模式
- 剩下的(其他的)都是行为型模式共11个 . 模板方法模式 (行为型类模式),解释器模式 (行为型类模式)
根据频率构建哈夫曼树,需要先排序
段页式存储,段号最多+页号最大+页内地址(具体,比如8K)组成
主动攻击
- 拒绝服务攻击
- 分布式拒绝服务(DDos)
- 信息篡改
- 资源使用
- 欺骗
- 伪装
- 重放
被动共计
- 流量分析
- 窃听/监听
- 嗅探
- 端口扫描
- 会话拦截/截获
二分查找
- 分支思想
- 时间复杂度 O(nlgn)
- 必须有序
- 查找成功和失败的平均查找长度不一样
风险管理
- 承认风险是客观存在的
- 风险不可能完全消除
- 风险管理应该贯穿整个项目
- 风险计划本身可能带来新的风险
- 不可能同时管理所有风险
- 风险是可以预测的,但是不能完全消除
- 风险是可以控制的
数据流图应该遵循 自上而下, 从抽象到具体. 可以回忆父图和子图的关系
对于n个数, 最坏情况下, 时间复杂度最低的是归并排序,而不是快速排序...
文档撰写:
- 测试分析报告在测试阶段编写
- 测试计划在需求分析阶段编写
- 需求规格书在需求分析阶段编写
- 概要设计说明书是在设计阶段编写
Python中的元组是不可变,有序,可以重复的. 可以理解成Java中的数组
数字证书进行身份认证,数字签名确保消息不可否认
软件详细设计阶段
- 对模块内的数据结构进行设计
- 对数据库进行物理设计
- 对每个模块进行详细的算法设计
- 代码设计、输入/输出设计、用户界面设计
概要设计阶段
软件系统总体结构设计
- 将系统划分为模块
- 确定每个模块的功能
- 确定模块之间的调用关系
- 确定模块之间的接口,即模块之间传递的信息
- 评价模块结构的质量
数据结构及数据库设计
流水线建立时间:第1条指令执行时间。
下午题特别注意
Java
- 特别注意,抽象类中的抽象方法, 千万别忘记abstract修饰词
线性表
顺序表
基于数组的数据结构实现
- 可以访问任意下标元素, 通过下标
- 插入和删除都需要移动元素,O(n)
链表
- 空间与表长成正比
- 插入和删除不需要移动元素, 修改相邻节点的指针即可.O(1)
- 无需预估存储空间的大小
单链表
双链表
循环链表
统一模型的四个阶段
- 起始:初步认识需求的范围,不细化.还没开始开发,相当于需求第一次评审会,留个印象,让大家明白这次需要大概要做个啥东西. 不需要细化
- 精化:核心需求分析,细化需求分析,技术可行性分析,架构演进找到合适的技术架构实现需求
- 构建:进入开发编码阶段,开始落地实现
- 移交:部署,系统测试,用户培训等开发完成后的事情收起
汇编语言
- 汇编程序不能直接被机器执行.计算机只能执行机器语言. 汇编语言也需要编译
- 汇编语言是低级的程序设计语言,使用与机器直接相关的指令集
- 与计算机体系紧密相关
最优解
- 贪心算法: 分数(部分)背包
- 动态规划: 0-1背包/最长公共子序列
- 暴力搜索: 旅行商
PERT ≠ 甘特图
- 能干啥
- 能看出每个任务的开始+结束时间
- 能看出子任务的衔接情况
- 能识别出关键子任务
- 不能干啥
- 不能直接反映项目的实际进度
甘特图
- 是一种项目进度管理工具
- 能看出每个子任务持续的时间
- 能看出项目的实际进度
- 看不出每个任务的衔接关系
系统总线
- 用于连接主存和外设
UML状态图 转换由事件触发,状态由转换改变
事件---触发--->转换---改变--->状态
入侵检测技术包括专家系统、模型检测、简单匹配;漏洞扫描不是入侵检测的内容。
配置管理包括:软件配置标识、变更管理、版本控制、系统建立、配置审核和配置状态报告
结构化开发方法,特别适合于数据处理领域的问题,但是不适合解决大规模的、特别复杂的项目,而且难以适应需求的变化
中间代码有后缀式、三元式、 四元式和树(图)等形式
过载多态是同一个名字在不同的上下文中所代表的含义
包含多态在许多语言中都存在,最常见的例子就是子类泛型化
序列图、通信图、交互概览图和时序图均被称为交互图
UML中有4种事物:
- 结构事物
- 是UML 模型中的名词,它们通常是模型的静态部分,描述概念或物理元素。结构事物包括类 (class)、接口(interface)、协作(collaboration)、主动类(activeclass)、构件(component)、制品(artifact)和结点(node)
- 行为事物
- 是UML模型的动态部分,它们是模型中的动词,描述了跨越时间和空间的行为。行为事物包括:交互(interaction)、 状态机(state machine)和活动(activity)。
- 分组事物是UML模型的组织部分,是一些由模型分解成的“盒子”。在所有的分组事物中最主要的分组事物是包(package)
- 注释事物是UML模型的解释部分。这些注释事物用来描述、说明和标注模型的任何元素。注解(note)是一种主要的注释事物。注解是一个依附于一个元素或者一组元素之上,对它进行约束或解释的简单符号
90H转二进制等于多少, 1位16禁止用4位2进制表示, 9 = 8+1, 9=1001,所以90H = 1001 0000 B,符号位是1,所以这个数表示负数
对于一个二叉树
- 第h层, 最多有2^h-1个节点
- n <= 2^h-1
具有n个结点的二叉树有 (2n)!/( (n+1)! * n! )