动态规划:

  • 0-1背包问题: 时间复杂度和空间复杂度都是O(NW), N是物品数量,W是背包容量
  • 最长公共序列
  • 矩阵连乘: 时间复杂度是O(n^3), 空间复杂度是O(n^2)

甘特图:

  1. 并行;

  2. 任务所需时间分明;

  3. 不能看出任务之间的依赖关系

  4. 容易识别出关键的子任务


原型模型: 小规模

螺旋模型: 大规模+风险评估

瀑布模型

归并排序的递归式: T(n) = 2T (n/2) +O(n)


  • 工厂单例建原型: 创建型模式, 工厂方法 (创建型类)
  • 世代外接享组合: 结构性模式, 适配器模式 特殊: 既是结构型对象模式 ,也是结构型类模式
  • 剩下的(其他的)都是行为型模式共11个 . 模板方法模式 (行为型类模式),解释器模式 (行为型类模式)

根据频率构建哈夫曼树,需要先排序

段页式存储,段号最多+页号最大+页内地址(具体,比如8K)组成

主动攻击

  1. 拒绝服务攻击
  2. 分布式拒绝服务(DDos)
  3. 信息篡改
  4. 资源使用
  5. 欺骗
  6. 伪装
  7. 重放

被动共计

  1. 流量分析
  2. 窃听/监听
  3. 嗅探
  4. 端口扫描
  5. 会话拦截/截获

二分查找

  1. 分支思想
  2. 时间复杂度 O(nlgn)
  3. 必须有序
  4. 查找成功和失败的平均查找长度不一样

风险管理

  1. 承认风险是客观存在的
  2. 风险不可能完全消除
  3. 风险管理应该贯穿整个项目
  4. 风险计划本身可能带来新的风险
  5. 不可能同时管理所有风险
  6. 风险是可以预测的,但是不能完全消除
  7. 风险是可以控制的

数据流图应该遵循 自上而下, 从抽象到具体. 可以回忆父图和子图的关系


对于n个数, 最坏情况下, 时间复杂度最低的是归并排序,而不是快速排序...


文档撰写:

  1. 测试分析报告在测试阶段编写
  2. 测试计划在需求分析阶段编写
  3. 需求规格书在需求分析阶段编写
  4. 概要设计说明书是在设计阶段编写

Python中的元组是不可变,有序,可以重复的. 可以理解成Java中的数组


数字证书进行身份认证,数字签名确保消息不可否认


软件详细设计阶段

  • 模块内数据结构进行设计
  • 对数据库进行物理设计
  • 对每个模块进行详细的算法设计
  • 代码设计、输入/输出设计、用户界面设计

概要设计阶段

软件系统总体结构设计
  1. 将系统划分为模块
  2. 确定每个模块的功能
  3. 确定模块之间的调用关系
  4. 确定模块之间的接口,即模块之间传递的信息
  5. 评价模块结构的质量
数据结构及数据库设计

流水线建立时间:第1条指令执行时间。


下午题特别注意

Java
  1. 特别注意,抽象类中的抽象方法, 千万别忘记abstract修饰词

线性表

顺序表

基于数组的数据结构实现

  1. 可以访问任意下标元素, 通过下标
  2. 插入和删除都需要移动元素,O(n)

链表

  1. 空间与表长成正比
  2. 插入和删除不需要移动元素, 修改相邻节点的指针即可.O(1)
  3. 无需预估存储空间的大小
单链表
双链表
循环链表

统一模型的四个阶段

  1. 起始:初步认识需求的范围,不细化.还没开始开发,相当于需求第一次评审会,留个印象,让大家明白这次需要大概要做个啥东西. 不需要细化
  2. 精化:核心需求分析细化需求分析,技术可行性分析,架构演进找到合适的技术架构实现需求
  3. 构建:进入开发编码阶段,开始落地实现
  4. 移交:部署,系统测试,用户培训等开发完成后的事情收起

汇编语言

  1. 汇编程序不能直接被机器执行.计算机只能执行机器语言. 汇编语言也需要编译
  2. 汇编语言是低级的程序设计语言,使用与机器直接相关的指令集
  3. 与计算机体系紧密相关

最优解

  1. 贪心算法: 分数(部分)背包
  2. 动态规划: 0-1背包/最长公共子序列
  3. 暴力搜索: 旅行商

PERT ≠ 甘特图

  • 能干啥
    • 能看出每个任务的开始+结束时间
    • 能看出子任务的衔接情况
    • 能识别出关键子任务
  • 不能干啥
    • 不能直接反映项目的实际进度

image-20250503112229538


甘特图

  1. 是一种项目进度管理工具
  2. 能看出每个子任务持续的时间
  3. 能看出项目的实际进度
  4. 看不出每个任务的衔接关系

系统总线

  1. 用于连接主存和外设

UML状态图 转换由事件触发,状态由转换改变

事件---触发--->转换---改变--->状态


入侵检测技术包括专家系统、模型检测、简单匹配;漏洞扫描不是入侵检测的内容。


配置管理包括:软件配置标识、变更管理、版本控制、系统建立、配置审核和配置状态报告


结构化开发方法,特别适合于数据处理领域的问题,但是不适合解决大规模的、特别复杂的项目,而且难以适应需求的变化


中间代码有后缀式、三元式、 四元式和树(图)等形式


过载多态是同一个名字在不同的上下文中所代表的含义

包含多态在许多语言中都存在,最常见的例子就是子类泛型化


序列图、通信图、交互概览图和时序图均被称为交互图


UML中有4种事物:

  1. 结构事物
    1. 是UML 模型中的名词,它们通常是模型的静态部分,描述概念或物理元素。结构事物包括类 (class)、接口(interface)、协作(collaboration)、主动类(activeclass)、构件(component)、制品(artifact)和结点(node)
  2. 行为事物
    1. 是UML模型的动态部分,它们是模型中的动词,描述了跨越时间和空间的行为。行为事物包括:交互(interaction)、 状态机(state machine)和活动(activity)。
  3. 分组事物是UML模型的组织部分,是一些由模型分解成的“盒子”。在所有的分组事物中最主要的分组事物是包(package)
  4. 注释事物是UML模型的解释部分。这些注释事物用来描述、说明和标注模型的任何元素。注解(note)是一种主要的注释事物。注解是一个依附于一个元素或者一组元素之上,对它进行约束或解释的简单符号

90H转二进制等于多少, 1位16禁止用4位2进制表示, 9 = 8+1, 9=1001,所以90H = 1001 0000 B,符号位是1,所以这个数表示负数


对于一个二叉树

  1. 第h层, 最多有2^h-1个节点
  2. n <= 2^h-1

具有n个结点的二叉树有 (2n)!/( (n+1)! * n! )