-
计算机基础
- 冯诺依曼
- 输入、输出、存储器(中心)、运算器控制器(CPU)
- 硬件图
- 主机(运算器、控制器、主存)
- 存储器: 主存、辅存
- I/O设备
- CPU
- 指令: 操作码, 地址码
- 运算器
- ALU: 算逻运算
- PSW状态寄存器
- ACC MQ X
- 加 被加数、和 加数
- 减 被减数、差 减数
- 乘 乘积高位 乘数、乘积低位 被乘数
- 除 被除数、余数 商 除数
- PSW状态寄存器
- ALU: 算逻运算
- 控制器
- CU: 控制单元
- 时序部件: 时钟控制
- ID: 指令译码器
- IR: 指令寄存器,即将执行的指令,查MAR
- PC: 程序计数器,下条指令地址
- CU: 控制单元
- 存储体
- MAR: 地址寄存器, 现在集成到了CPU
- MDR: 数据寄存器, 指令存到IR
- 主存
- 存储单元: 存1字节, 唯一地址用16进制数表示
- 总线
- 地址总线: 长度表示n位二进制数地址数
- 数据总线: 长度表示一次处理多少位,叫作1个字的长度
- 存储器
- 分类
- 位置
- 内存(主存)
- 外存(辅存)
- 材料
- 半导体
- 静态: 双稳态触发器
- 动态: 依靠电容上的电荷存储,主存
- 磁介质: 磁性材料的不同状态存储,外存
- 光: 利用光斑、晶像的变化表示信息,外存
- 半导体
- 工作方式
- 读/写RAM
- 只读
- 固定ROM: 用户不可写
- 可编程PROM: 用户写1次
- 可擦除可编程EPROM: 可多次编程,紫外线擦除
- 电擦除可编程EEPROM: 可多次编程,电擦除
- 闪存: 接近EEPROM
- 访问方式
- 按地址访问的
- 按内容访问的
- 寻址方式
- 随机RAM: 按地址访问任一单元,主存
- 顺序SAM: 访问时按顺序查找目标地址,磁带
- 直接DAM: 按照数据块所在位置访问,磁盘
- 相联:按照内容进行访问,Cache
- 位置
- 分类
- 校验码
- 类别
- 奇偶校验码
- 只能发现奇数个位出错
- 海明码
- 奇偶校验、分组校验
- n为数据位个数,求校验位个数k: 2^k >= n+k+1
- CRC循环冗余校验码
- 奇偶校验码
- 码距: 任意两个码字的最小距离
- 检测出e个误码,要求码距d>=e+1
- 纠正t个误码,要求码距d>=2t+1
- 类别
- 指令
- 指令周期
- 执行
- 顺序执行
- 重叠执行
- 流水线
- 建立时间: 第一条指令执行完毕时间
- 流水线周期: 部件(取指、分析、执行)执行时间最长的一段
- 全部执行完时间
- 理论公式: (t1+t2+…+tk) + (n-1)*t
- 实践公式: (k+n-1)*t
- 吞吐率: 指令条数/执行时间
- 最大吞吐率: 1/流水线周期时间
- 加速比: 不使用流水线时间/使用流水线时间
- 高速缓存
- 局部性原理
- 时间局部性: 经常使用
- 空间局部性: 相临空间内容
- 架构
- 地址总线、数据总线
- 地址映射、变换机构
- 直接映像: 放到cache第0页。简单,但不灵活,块冲突率高
- 离cpu近时用
- 全相联映像: 灵活但变换复杂
- 离cpu远时用
- 组相联映像: 组间直接映像, 主存区映射到cache页, 组内全相联映像。
- 离cpu近时用
- 直接映像: 放到cache第0页。简单,但不灵活,块冲突率高
- 主存装入或替换
- 平均访问时间: ta=Hctc+(1-HC)tm
- 写策略
- 写直达(write-through): 同步修改主存
- 写回法(write-back): cache被替换时写主存
- 标记法: 有效位1未修改,0时读主存
- 替换算法
- 随机算法
- 先进先出(FIFO)
- 近期最少使用(LRU)
- 最不经常使用(LFU): 有时间窗口的LRU
- 局部性原理
- 磁盘存储器
- 磁盘、磁头、磁道、扇区、数据块、柱面
- 存取时间: 寻道时间 + 等待时间 + 读/写时间(可忽略)
- 计算机系统结构分类
- Flynn分类法
- 指令流: 执行的指令序列
- 数据流: 指令流调用的数据序列, 包括输入数据和中间结果
- Flynn类别
- 单指令流单数据流(SISD)
- 单指令流多数据流(SIMD)
- 多指令流单数据流(MISD): 少见
- 多指令流多数据流(MIMD)
- 指令系统
- 复杂指令系统(CISC)
- 指令多, 大概100-250条
- 只有20%常用
- 寻址方式多(5-20种)
- 变长指令电路复杂
- 直接交互主存速度慢
- 用微程序而非硬布线逻辑电路控制
- 精简指令系统(RISC)
- 指令数量少
- 寻址方式少,通常只有寄存器寻址、立即数寻址、相对寻址
- 指令长度固定
- 硬布线逻辑控制为主
- 流水线技术
- 优化的编译器,编译简化
- 交互CPU寄存器, 一般32个以上
- 复杂指令系统(CISC)
- Flynn分类法
- 总线
- 位置分类
- 内部
- 外部
- 功能分类
- 地址
- 数据
- 控制
- 数据线多少分类
- 并行: 速率高,近距离传输(内部部件系统总线)
- 串行: 速率不高,长距离传输
- 位置分类
- 磁盘阵列
- RAID 0: 无冗余无校验, 存储性能最高
- RAID 1: 磁盘镜像阵列
- RAID 2: 海明码纪错, 增加3个校验盘提供单纠错和双验错。大量数据时I/O性能高,应用少
- RAID 3、4: 奇偶校验码, 3采用位交叉, 4采用块交叉。3适用大型文件且I/O需求不频繁, 4适用大型文件读取
- RAID 5: 无独立校验盘,校验信息分布在组内所有盘上,用户实际空间是N-1块盘。大批量和小批量数据的读写性能好了,适用I/O需求频繁的应用。应用多
- RAID 6: 独立数据盘+2个独立的分布式校验盘,用户实际空间是N-2块。效率一般,应用少
- RAID 7: 独立存储计算机,带操作系统和管理工具
- RAID 10: RAID 1+0结合。RAID 0下挂RAID 1, 应用多
- 冯诺依曼
-
操作系统基础
- 处理机管理
- 进程状态
- 三状态: 运行、就绪、阻塞
- 组成: 程序、数据、PCB(进程唯一标识)
- PCB结构
- 线性方式
- 链接方式
- 索引方式
- PCB结构
- 前驱图: 有向无循环图
- PV操作
- 加锁(P操作信号量-1, 可能锁别的进程), 信号量为0时产生临界区
- 解锁(V操作信号量+1, 发现信号量为负时唤醒别的进程)
- 同步问题
- 缓冲区满时不写空时不读,每个时刻只能一个操作(存或取)
- 关键操作前P,关键操作后V
- 两个信号量,加互斥信号量
- 进程状态
- 存储器管理
- 逻辑地址、物理地址
- 静态重定位: 绝对地址=相对地址+程序存放的内存起始地址
- 运行前确定映射关系
- 装入后不能移动
- 占用连续的内存空间
- 动态重定位: 绝对地址=重写位寄存器的值(BR)+逻辑地址寄存器的值(VR)。硬件加寄存器实现地址转换
- 程序占用的内存空间可动态变化
- 不要求连续的内存空间
- 便于多进程共享代码
- 静态重定位: 绝对地址=相对地址+程序存放的内存起始地址
- 存储管理
- 分区管理: 主存用户区划分区域,每个区域分配给一个用户,并限制用户只能在区域中
- 固定分区: 空间浪费
- 可变分区: 根据程序大小选择合适分区
- 首次适应算法
- 最佳适应算法
- 最差适应算法
- 可重定位分区
- 分页管理
- 逻辑地址
- 页号: 20位
- 页内地址: 12位
- 物理地址
- 块号
- 块内地址: 等于页内地址
- 页表
- 硬件生成
- 页起始地址、页长度
- 逻辑地址
- 分段管理
- 逻辑地址: 段号、段内地址
- 物理地址
- 段表: 基址、段长
- 段页式管理
- 逻辑地址: 段号、页号、页内地址
- 物理地址:
- 虚拟存储
- 请求分页
- 请求分段
- 请求段页式
- 分区管理: 主存用户区划分区域,每个区域分配给一个用户,并限制用户只能在区域中
- 逻辑地址、物理地址
- 设备管理: 输入输出控制方式
- 程序控制: 串行
- 无条件传送
- 程序查询
- 中断: 并行
- DMA(直接内存访问): 设备访问内存,CPU不能访问内存
- 程序控制: 串行
- 文件管理
- 文件索引
- 一个节点占4字节
- 直接索引: 检索范围小
- 间接索引
- 一级
- 二级
- 使用情况: bitmap标记
- 字长x字编号
- 文件索引
- 处理机管理
-
计算机网络基础
- OSI七层
- 应用层
- HTTP、Telnet、FTP、SMTP、NFS
- 表示层
- JPEG、ASCII、GIF、DES、MPEG
- 会话层
- RPC、SQL
- 传输层
- TCP、UDP、SPX
- 网络层
- IP、IPX、ICMP
- 链路层
- MAC(媒介访问层)、LLC(逻辑链路层)
- IEEE802.3/.2、HDLC、PPP、ATM
- 物理层
- RS232、V.35、RJ-45、FDDI
- 应用层
- IP协议
- IPV4: 32位
- A类: 0开头: 1-126
- B类: 10开头: 128-191
- C类: 110开头: 192-223
- D类: 1110开头: 224-239, 组播
- E类: 1110开头: 240-255, 保留
- 子网
- 三级IP地址: 子网号主机号中借出来
- 子网掩码
- A类地址的: 255.0.0.0
- B类地址的: 255.255.0.0
- C类地址的: 255.255.255.0
- IPV4数据报
- 版本
- 首部长度
- 区分服务
- 总长度: 2^16-1=65535字节
- 标识
- 标志: DF不分片, MF: 片未分完
- 片偏移
- 生存时间
- 协议
- 首部校验和
- 可选字段
- 填充: 达到4的倍数
- IPV6: 128位,共8段用:分开, 每段4个16进制数
- 支持单播/多播/组播/任播
- 支持自动配置
- IPV4过渡IPV6
- 双协议栈
- 遂道
- NAT-PT
- IPV6数据报
- 版本
- 流量分类: 相当于区分服务
- 流标签
- 有效负载长度: 除基本首部外的字节数
- 下一头部: 相当于协议
- 跳数限制: 相当于生存时间
- TCP/UDP
- TCP
- 数据报标记序号
- 确认、校验、定时器,重传
- 窗口机制流量调整
- TCP协议
- 校验和: 校验所有数据
- UDP
- 无连接
- 尽最大努力交付
- 面向报文
- 无拥塞控制
- 支持1对1、1对多、多对1通信
- 首部小,只有8字节。TCP20字节
- UDP协议
- 校验和: 不校验或校验头部
- TCP
- 网络设计
- 接入层: 收集用户信息如Ip、MAC、访问日志。管理功能如MAC地址、计费管理
- 汇聚层: 网络访问策略控制,数据包处理、过滤、寻址
- 核心层: 双机冗余热备份
- 出口层
- 综合布线系统
- 工作区子系统: 插座
- 水平子系统: 楼层, 接入管理子系统
- 管理子系统
- 垂直(干线)子系统: 主设备间至各层管理间
- 设备间子系统: 连接跳线架及支撑硬件,防雷电,是中心单元
- 建筑群子系统: 楼间连线
- IPV4: 32位
- 域名和地址
- DNS: UDP协议
- 结构
- 根: 用.表示
- 顶级域: com, edu, gov
- 二级域: baidu
- 子域: 最多63个字符
- 主机
- 结构
- DNS: UDP协议
- 域名
- 服务器
- 主域名服务器: 本区域名解析
- 辅助域名服务器: 备份
- 缓存域名服务器: 缓存查询结果
- 转发域名服务器: 非本地缓存中没有的,先查自身缓存,没有时转发到指定域名服务器
- 查询方式
- 递归
- 本服务器解析名字
- 迭代
- 问别的服务器
- 递归
- 设备
- 中继器: 物理层,信号再生和发送,只直到扩展传输距离的作用,个数有限(以太网4个)
- 网桥: 数据链路层, 物理地址转发,只能连接相同MAC层的网络
- 路由器: 网络层
- 网关: 4-7层
- 集线器: 多端口中继器
- 二层交换机: 数据链路层,传统交换机,多端口网桥
- 三层交换机: 网络层,带路由功能的二层交换机
- 多层交换机: 4-7层,带协议转换
- 网络存储
- DAS: 直接附加存储, 设备通过SCSI电缆直接连到服务器,无操作系统存储的操作依赖于服务器。也叫作SAS(服务器附加存储)
- NAS: 网络附加存储, 不再通过I/O总线附属特定服务器,而是通过网络接口与网络直接相连,用户通过网络访问。专用的文件服务器,即插即用
- SAN: 存储区域网络, 专用交换机连接磁盘阵列与服务器
- 服务器
- OSI七层
-
数据库基础
- 结构
- 开发人员: 三级模式,DBMS管理
- 内模式: 内部视图, 只有一个
- 概念模式: 概念视图, 公共视图, 只有一个
- 外模式: 外部视图, 可以多个
- 最终用户:
- 单用户
- 主从
- 分布式
- 客户-服务器
- 浏览器-应用服务器/数据库服务器
- 开发人员: 三级模式,DBMS管理
- 独立性
- 逻辑独立性: 数据的逻辑独立性
- 模式改变时,只改变映像
- 物理独立性
- 存储结构改变,只改变映像
- 逻辑独立性: 数据的逻辑独立性
- 数据模型
- 概念数据模型: E-R图
- 基本数据模型: 计算机的观点来建模,用于DBMS实现
- 分类
- 层次模型
- 网状模型
- 关系模型
- 面向对象模型
- 关注
- 数据结构
- 数据操作
- 数据约束条件
- 主属性非空
- 参照完整性: 外键,可以空但不能没有
- 用户定义完整性
- 分类
- 概念
- 关系: 表名
- 元组: 记录
- 属性: 列
- 域: 取值范围
- 关键字: 一组唯一标识元组的属性
- 关系模式: 表结构
- 关系代数
- U: 并
- : 差
- n: 交
- x: 笛卡尔积
- o: 选择, 取得符合条件的行
- π: 投影, 取得符合条件的列
-
<: 连接
- 等值连接: 笛卡尔积筛选属性相等的元组
- 自然连接: 等值连接去重复的列
- 外连接
- 左外连接
- 右外连接
- 完全外连接
- 函数依赖
- X→Y
- X函数确定Y
- Y函数依赖于X
- 平凡
- X→Y Y不包含于X,X→Y非平凡函数依赖
- X→Y Y包含于X,X→Y平凡函数依赖
- 完全
- 完全函数依赖: 条件都用上, 完全依赖于主键
- 部分函数依赖: 条件过剩, 对主键有传递依赖
- 传递依赖
- Armstrong公理
- 自反律: 内部包含的关系, Y属于X属于U,则X→Y
- 增广律: X→Y被F蕴含,则XZ→YZ被F蕴含
- 传递律: 推导, X→Y, Y→Z, 则X→Z
- 合并规则: X→Y, X→Z,则X→YZ
- 伪传递规则: X→Y, WY→Z,则WX→Z
- 分解规则: X→Y, Z属于Y, 则X→Z
- 超键: 主键和其它键组合
- 主键: 无多余属性
- 候选键: 无多余属性可成为主键的键
- 外键: 关联其它表主键
- 主属性非主属性: 主键中的属性是主属性
- 全码: 属性全是主键
- X→Y
- 规范化: 拆分表
- 1NF: 每个属性(列)不可再分
- 不满足后果
- 冗余大
- 插入入异常、删除异常、修改异常
- 不满足后果
- 2NF: 非主属性不完全依赖主键,即有对主键的部分依赖,不满足
- 3NF: 有非主属性的传递依赖不完全依赖主键(比如依赖其它非主键属性),不满足
- BC范式: 主键包含依赖的所有决定性因素(所有主属性)
- 不满足后果
- 冗余大
- 插入异常、删除异常
- 修改复杂
- 不满足后果
- 4NF: 没有多值属性
- 5NF
- 无损连接, 函数依赖性
- 1NF: 每个属性(列)不可再分
- 设计
- 规划阶段: 必要性、可行性
- 需求分析: 产出需求规格说明书、数据字典
- 调查重点是”数据”、“处理”
- 数据字典: 数据项、数据流、数据存储、数据加工(结构化语言、判定数、判定表)
- 概念设计: E-R图, 不依赖DBMS
- 局部E-R图,实体联系,消除冲突(属性冲突、结构冲突、命名冲突)成全局E-R图
- 逻辑设计: 逻辑模型,产出关系模式
- 实体→关系
- 属性→属性
- 复合属性、多值属性、派生属性、BLOB型属性、联系属性
- 关键字→关键字
- 物理设计: 建立物理模型, create table
- 反规范化
- 增加冗余列、派生列
- 重新组表
- 分割表: 水平分割、垂直分割
- 事务管理ACID
- 原子性Atomicity
- 一致性Consistency
- 隔离性Isolation
- 持久性Durability
- 并发控制
- 封锁
- 排他锁(X)
- 共享锁(S)
- 协议
- 一级: 加X锁
- 二级: 加S锁,读完后释放
- 三级: 加S锁,事务结束释放
- 两段: 封锁阶段(扩展)加锁,释放阶段(收缩) 解锁
- 可串行化,但可能死锁
- 封锁
- 分布式数据库
- 特点
- 分布性、统一性、透明性
- 相对集中式数据库优点
- 坚固性好
- 可扩充性好
- 可改善性能
- 自治性好
- 问题
- 异构数据库集成复杂
- 分布透明性
- 分片透明: 透明性的最高层次
- 位置透明: 用户需要了解分片,但不用了解存储场地
- 局部数据透明: 需要了解分片和存储场地,不必了解局部场地的数据类型
- 特点
- 故障恢复
- 事务故障: 系统扫描日志恢复
- 系统故障
- 正向扫描日志,已提交的redo, 未提交的undo
- 撤销队列的事务撤销
- 重做队列重做
- 介质故障: 装入新副本,redo
- 计算机病毒: 装入新副本,redo
- 检查点恢复
- 建立检查点时刻所有正在执行的事务清单
- 找到最后一个检查点, redo, undo
- 备份
- 物理备份: 冷备、热备
- 逻辑备份
- 备份类型
- 完全备份
- 增量备份: 需要恢复上次完全备份后的所有增量
- 差异备份: 每次备份上次完全备份的差异
- 数据仓库
- 特点
- 面向主题的、集成的、相对稳定的、反映历史变化的
- 数据库是面向即时的
- 建立
- 自顶向下
- 自底向上
- 混合法
- 特点
- 数据挖掘
- 流程
- 问题定义,建立数据挖掘库,分析数据,调整数据,模型化,评价和解释
- 方式
- 关联分析,序列分析,分类分析,聚类分析,预测,时间序列
- 流程
- NoSQL
- ACID
- CAP
- Consistency
- Availability
- Partition tolerance
- BASE
- Basically available
- Soft state
- Eventually consistent
- 类型
- 键值
- 列族: 关心的是属性列,适合分析
- 列族,列限定符,行键,时间戳
- 文档
- 图
- 结构
-
专业知识
-
软件工程
- 历史
- 1960年软件危机: 价格贵、质量差、不符合用户需求、文档不完整、可维护性差
- 1946-1956: 程序设计时代
- 1956-1968: 程序系统时代
- 1968: 软件工程时代
- 过程
- 需求分析: 效果图
- 用例图
- 软件设计
- 类图
- 活动图
- 状态图
- 软件实现
- 软件交付
- 需求分析: 效果图
- 生命周期
- 定义
- 定义问题、可行性研究、需求分析
- 开发
- 概要设计、详细设计、编码、测试
- 运维
- 更正性维护、适应性维护、预防性维护、完善性维护
- 消亡
- 报废
- 遗留系统
- 定义
- 开发方法
- 开发风范分类
- 自顶向下
- 自底向上
- 性质分类
- 形式化
- 基于数学,一般用于一致性检查、类型检查、有效性验证、行为预测、设计求精验证
- 包括: 有限状态机、Petri网、VDM语言、Z语言等
- 非形式化
- 结构化: 面向过程
- 结构化方法
- 设计
- 分析(SA, Structured Analysis)
- 适用面向过程、数据流
- 数据流图DFD: 功能
- 数据流
- 存储和实体, 实体实体间必须经过加工。看输入输出是否缺失
- 分类: 写、读、输入、输出
- 加工
- 实现: 结构化语言、判定表、判定树
- 分类: 黑洞、奇迹、灰洞
- 数据存储
- 外部实体: 人、物品、其它系统
- 数据流
- 状态转换图STD:
- 数据字典
- 条目: 数据流、数据项、数据存储、基本加工
- 程序设计
- 特点
- 目标清晰
- 工作阶段化
- 文档规范
- 设计方法结构化
- 缺点
- 串行开发周期长
- 要求需求明确, 难以适应变化
- 很少考虑数据结构
- 要向上回溯所以要文档齐全
- 结构化方法
- 面向对象
- 喷泉模型
- 面向对象方法
- 步骤: 分析、设计、实现、维护、演化
- 特点
- 过程节点无间隙
- 迭代
- V模型: 测试模型, 基准于瀑布模型
- 编码: 单元测试
- 详细设计: 集成测试
- 概要设计: 系统测试
- 需求分析: 验收测试
- 实现: 对象标识、对象属性、对象方法、对象消息
- 分类: 面向对象分析OOA, 面向对象设计OOD, 面向对象程序设计OOP
- 方法
- Coad/Yourdon: OOA,OOD, 不需要表示法的转换
- Booch
- 开发模型
- 静态模型: 逻辑模型(类图、对象图),物理模型(模块图、进程图)
- 动态模型: 状态图、顺序图
- 开发模型
- OMT: 建模的思想
- 对象模型(对象图),动态模型(状态图),功能模型(DFD)
- OOSE
- 用例取代了DFD
- 分析
- 功能模型: 用例图(取代DFD数据流图)
- 组成: 参与者、用例、通信关联
- 方法:
- 识别参与者(外部实体): 人、物、其它系统、时钟
- 合并需求获得用例
- 细化用例描述: 用例名称、简要说明、事件流(主事件流、备选事件流)、非功能性需求、前置条件、后置条件、扩展点、优先级
- 调整用例模型: 用例间关系调整
- 包含关系(属于依赖关系): 基用例指向子用例
- 扩展关系(属于依赖关系): 扩展用例指向基用例
- 泛化关系(继承关系): 子用例指向父用例
- 行为模型: 活动图、顺序图、状态图(取代状态转换图)
- 数据模型: 类图(取代ER图)
- 步骤
- 定义概念类: 显而易见的类、明显无意义的类、不确定的类
- 发现类: 名词短语法
- 发现用例: 动词
- 确定类之间的关系: 形成领域模型
- 关联
- 聚合、组合、
- 依赖、泛化、实现
- 为类添加职责
- 建立交互图
- 定义概念类: 显而易见的类、明显无意义的类、不确定的类
- 设计
- 用例图表示需求
- 用例模型提炼领域模型,用例的实现用交互图
- 领域模型和用例图形成类图
- 包图和类图形成体系结构图
- 步骤
- 功能模型: 用例图(取代DFD数据流图)
- 喷泉模型
- 构件(组件)化开发: 装配式思想
- RAD快速应用开发; 基于瀑布模型
- 步骤
- 规划
- 设计实现, 不断迭代
- 运行
- 不适合新技术, 因为适用性窄还好拆成熟构件
- 步骤
- UP/RUP统一过程模型: 基于面向对象,比较重型
- 内容组织
- 核心工作过程
- 核心过程工作流
- 商业建模
- 需求
- 分析和设计
- 实现
- 支持工作过程
- 测试
- 部署
- 配置和变更管理
- 项目管理
- 环境
- 核心工作过程
- 时间组织
- 阶段
- 初始: 明确项目规模、评估项目风险、制定项目计划、阶段技术评审
- 细化: 确定架构、制定构建阶段计划、建立支持环境、选择构件、阶段技术评审
- 构建: 详细设计,编码、测试、集成
- 交付: 全面测试、补充文档、产品移交用户
- 迭代: 每个步骤都有迭代
- 阶段
- 思想
- 用例驱动
- 以架构为中心
- 迭代
- 增量
- 4+1视图
- 逻辑视图: 类图、对象图、状态图、协作图
- 进程(过程)视图: 活动图
- 实现(开发)视图: 包图、组件图
- 物理视图
- 场景(用例视图)
- 内容组织
- 连接件
- 构件和对象
- 构件: 包含对象可独立部署、是组装单元、没有外部可见状态
- 对象: 有唯一标志,具有外部可见状态,封装了自己的状态和行为
- 构件与类
- 构件不一定包含类,一个类只属于一个构件
- 构件间消息通过接口
- RAD快速应用开发; 基于瀑布模型
- 面向服务: 构件化开发发展而来
- SOA: 可跨平台
- 组成: ESB
- SO方法
- 操作层
- 服务层: 操作分组
- 业务流程层: 服务编排
- 原型法: 需求不明确时
- 原型(演化)模型
- 原型→交流→快速计划、构建、交付
- 优点
- 引导出高质量产品要求
- 缺点
- 用户接触未稳定功能,对开发失去信心
- 螺旋模型
- 每一圈: 原型模型、瀑布模型
- 有风险: 适用大项目复杂项目, 需要风险分析
- 功能划分
- 水平原型: 行为原型,用于界面
- 垂直原型: 结构化原型,用于复杂算法
- 结果划分
- 抛弃式: 探索式,解决需求不确定性
- 演化式: 逐步演化,用于易于升级和优化的场合
- 原型(演化)模型
- 敏捷: 小和快
- 特点
- 以人为本
- 与用户协作
- 面对面沟通
- 尽早发布增量
- 小而自主的团队
- 规模小的项目
- 极限编程XP
- 特点
- 更短的周期,更早反馈
- 迭代的计划编制
- 测试先行, 自动测试来监控开发进度, 口头交流
- 团队紧密合作
- 特点
- 并列争求法Scrum
- product backlog → sprint backlog
- sprint周期4周
- daily meeting
- 燃尽图
- 评审会
- 特点
- 结构化: 面向过程
- 开发方法与开发模型
- 开发方法为指导思想, 可以多模型
- 开发模型为图形化表示,具体开发过程
- 形式化
- 适用范围分类
- 整体性方法
- 局部性方法
- 开发风范分类
- 过程管理
- 人员、技术设备、过程
- 能力成熟度模型CMM
- 初始级
- 可重复级: 有项目管理过程,对成、进度、功能跟踪
- 已定义级: 文档化、标准化,形成标准软件过程
- 已管理级: 可预测,软件过程和产品质量有度量标准
- 优化级: 持续改进
- 能力成熟度模型集成CMMI
- 初始级
- 已管理级: 有监督和控制
- 已定义级: 更严谨更积极的管理
- 已量化级: 可预测性高
- 持续优化级: 过程与技术改进,关注整体绩效
- 连续式模型
- CL0未完成级: 未执行
- CL1已执行级: 特定目标
- CL2已管理级: 管理过程制度化
- CL3已定义级: 已定义过程的制度化
- CL4定量管理级: 可定量管理的过程的制度化
- CL5优化级: 使用量化(统计学)
- 历史
-
系统分析
- 初始需求 → 逻辑模型,产出系统需求规格说明书
- 步骤
- 详细调查: 收集资料、开调查会、个别访问、书面调查、抽样调查、现场观摩、参加业务实践
- 现有系统分析: 获得物理模型,建立逻辑模型,建立新系统逻辑模型、推出新系统物理模型
- 组织结构分析: 组织结构图,组织结构调查
- 系统功能分析: 功能体系图,功能流程图
- 业务流程分析: 价值链分析法,客户关系分析,供应链分析法,基于ERP的分析法,业务流程重组
- 业务流程建模
- 建模方式
- 自顶向下: 企业任务目标出发
- 自底向上: 分析现有系统
- 描述方法
- 形式化描述: 严谨可读性差
- 图示化描述
- 建模方法
- 标杆瞄准
- IDEF
- DEMO: 交互模型、业务流程模型、事务模型、行为模型、事实模型、互约束模型
- Petri: 流程
- 业务流程建模语言(文本类和图元类): UML、BPEL(文本类)、BPML(文本类, BPMI补充了图元)、BPMN、XPDL(文本+图元)
- 基于服务的BPM
- 建模方式
- 数据与数据流程分析
- 收集数据,分类编码排放
- 按业务流程自顶向下整理
- 分类
- 确定类型
- 数据属性分析
- 静态分析: 类型、取值范围、业务量、哪些业务使用、重要程度紧急程度
- 动态分析:
- 动态特征: 固定值属性、固定个体变动属性、随机变动属性
- 存储分布
- 流程分析: 与组织结构无关
- 组成: 输入、输出、流动、传递、处理、存储
- 步骤
- 收集输入报表、存储介质
- 明确各处理过程的方法
- 调查数据制作单位、报送单位、存储单位、发生频率、发生的高峰时间和高峰量
- 数据类型、长度、取值范围
- 结构化开发(SA)方法: 使用DFD
- 面向对象(OO)方法: 使用对象交互,对象持久化
- 需求规格说明书
- 设计阶段依据, 验收标准之一
- 结构化方法
- 组成
- 结构化分析: 分解与抽象原则,数据流图, 系统逻辑模型
- 结构化设计: 模块独立性准则、软件结构优化准则
- 结构化程序设计:
- 特点
- 不适合大型项目
- 要求需求清晰
- 组成
- 结构化分析:数据流图,系统逻辑图、划清人机界限
- 数据流图平衡: 数据流条数一致
- 父图和子图
- 子图内部
- 数据字典
- 数据流图平衡: 数据流条数一致
- 结构化设计: 系统结构、接口、数据、过程
- 模块化
- 外部特性: 接口和功能定义
- 内部特性: 局部数据和程序代码
- 注意点
- 抽象化
- 过程
- 数据
- 控制
- 自顶向下
- 信息隐蔽: 可修改性、可测试、可移植性
- 模块独立
- 抽象化
- 模块原则
- 模块大小适中
- 扇入扇出要合理: 扇入大表示复用高,扇出大表示复杂高
- 深度和宽度适当: 层数和每层的模块数
- 内聚类型: 由高到低
- 功能: 单一功能
- 顺序: 元素相关顺序执行
- 通信: 元素集中在一个数据结构的区域上
- 过程: 元素相关,按次序执行
- 瞬时: 在同一时间间隔内执行(如初始化)
- 逻辑: 逻辑相关的一组任务
- 偶然: 没有关系或松散关系的任务
- 耦合类型: 由低到高
- 非直接: 没有直接联系
- 数据: 参数表传递简单数据
- 标记: 数据结构的一部分借助接口传递
- 控制: 传递的信息可以控制内部逻辑
- 外部: 与软件外环境相关
- 公共: 多模块引用同一全局数据区
- 内容: 访问另一模块内部数据、不通过正常入口转到另一模块内部、代码重叠、一个模块多个入口
- 模块化
-
软件架构设计
- 软件架构(体系结构)
- 接入层
- 网关层
- 业务服务层
- 支撑服务
- 平台服务
- 基础设施层
- 生命周期
- 需求分析: 需求模型,软件架构模型(可追踪到需求模型)
- 设计: 组成元素,体系结构描述语言ADL,4+1视图
- 实现: 项目组织结构,配置管理,中间件,程序设计语言,逐步细化
- 构件组装阶段、部署、后开发
- 基于架构的软件设计方法ABSD
- 商业,功能(视角视图),非功能(质量)
- 体系结构开发模型
- 需求: 需求获取,生成类图,对类进行分组,把类打包成构件,需求评审
- 设计: 提出体系结构模型,映射构件,分析构件的相互作用,产生体系结构,设计评审
- 文档化: 规格说明,质量设计说明书
- 复审
- 演化
- 三个基础
- 功能的分解
- 选择体系结构风格
- 软件模板的使用
- 结构风格
- 系统家族
- 一个词汇表: 构件,连接件类型
- 一组约束: 构件、连接件组合方式
- 反映领域中众多系统共有的结构、语义特性
- 数据流风格
- 流动: 自由流动、近线性流动、有限循环流动
- 类型
- 批处理风格: 粒度大,顺序执行,完整传输, 延迟高,无并发
- 管道过滤器风格(如编译器): 粒度小,增量传输, 实时, 可以并发
- 调用返回风格
- 类型
- 主程序子程序(开发语言)
- 面向对象
- 层次
- 类型
- 独立构件风格
- 进程通信: 点对点,异步同步,远程调用
- 事件驱动: 隐式调用,分离的交互,一对多,基于事件触发器,异步
- 虚拟机风格
- 解释器
- 基于规则的系统
- 仓库(数据共享)风格
- 数据库系统
- 黑板系统: 语音识别
- 超文本系统
- 闭环(过程)控制: 数据流风格
- 空调,巡航系统
- C2风格: 层次架构风格
- 构件顶部底部都是连接件
- 系统家族
- 特定领域软件体系结构DSSA
- 层次
- 领域开发环境(领域架构师)
- 领域特定应用开发环境(应用工程师)
- 应用执行环境(操作员)
- 过程
- 领域分析
- 领域设计
- 领域实现
- 参与角色: 领域专家, 领域分析人员,领域设计人员,领域实现人员
- 层次
- 二层及三层C/S架构风格
- 二层:客户机,服务器
- 三层: 表示层,功能层,数据层
- B/S
- J2EE
- 客户层:Applet
- Web层: Servlet
- 业务逻辑层:EJB(Entity, Session, Message)
- 持久层:ORM
- 多层架构优缺点
- 优点
- 可以只关注某层
- 容易替换成新实现
- 降低层与无尾熊依赖
- 利于标准化
- 利于各层逻辑复用
- 扩展性强,不同层负责不同的层面
- 安全性高,用户只能通过逻辑层访问
- 项目结构更清楚,分工更明确,有利于后期的维护和升级
- 缺点
- 严格的分层可能有性能问题
- 清晰的分层架构并不总容易
- MVP: View和Model没有交互,都通过Presenter
- MVVM: ViewModel双向绑定
- 优点
- SOA
- 实现
- 注册中心,服务者,消费者
- ESB
- 作用
- 服务连接整合
- 描述服务元数据,服务注册管理
- 服务请求者提供者间传递数据, 并进行数据转换: 支持同步、异步
- 发现、路由、匹配、选择。安全支持、服务质量、可管理性、负载均衡
- 技术
- SOAP: 简单对象访问协议
- WSDL: Web服务描述语言
- UDDI: 统一描述、发现和集成
- 作用
- 实现
- 微服务
- 分层
- 基础设施
- 平台服务
- 支撑服务
- 业务服务
- 网关层
- 接入层
- 分层
- 质量属性
- 特点
- 非功能性需求
- 不同的软件项目,关注不同的质量属性
- 质量属性之间可能 相互抑制
- 评价
- 性能:
- 刺激源,刺激,制品,环境,响应,响应度量指标
- 提升
- 资源需求
- 减少资源占用: 改进算法,减少计算开销
- 减少处理事件的数量: 控制事件到来的速率,控制采样频率
- 控制资源的使用: 限制执行时间,限制队列大小
- 资源管理
- 并发机制: 多核,多线程
- 增加资源
- 资源仲裁
- 先来先服务
- 固定优先级
- 动态优先:时限时间最早优先,轮转调度
- 资源需求
- 可靠性:容错,健壮性
- 可用性
- 安全性
- 提升
- 抵抗攻击
- 身份验证,授权,维护数据机密性,维护数据完整性, 限制暴露,限制访问
- 检测攻击: 入侵检测
- 恢复: 恢复状态,识别攻击者
- 抵抗攻击
- 提升
- 可修改性: 可维护性,可扩展性,结构重组,可移植性
- 提升
- 局部化修改: 高内聚低耦合,预测变更,模块通用
- 防止连锁反应: 信息隐藏,维持现有接口,限制通信路径, 使用中介(数据、服务(桥接,工厂,代理))
- 推迟绑定时间: 运行时注册, 多态, 配置文件
- 提升
- 功能性
- 可变性
- 互操作性
- 性能:
- 质量场景组成部分: 可用性
- 刺激源: 故障(系统内部或外部)
- 刺激: 出错,系统崩溃
- 制品: 计算、存储、网络
- 环境: 正常,降级
- 响应
- 响应度量指标
- 可用性提升
- 错误检测: 心跳, Ping/echo, 异常
- 错误恢复: 表决, 冗余, 检查点回滚, 下线, 事务
- 错误避免: 进程监控
- 辅助条件
- 敏感点
- 权衡点
- 风险点
- 架构评估
- 调查问卷/检查表
- 基于场景
- 架构权衡分析法ATAM: 对质量属性做评价和折中
- 质量效应树
- 评估参与者: 评估小组,项目决策者,项目干系人
- 步骤
- 描述介绍阶段: 描述ATAM方法,描述业务动机,描述架构
- 调查分析阶段: 确定架构方法,生成质量属性效用树,分析架构方法
- 测试阶段: 讨论场景和对场景分级,分析架构方法
- 报告阶段: 讨论场景和对场景分级
- 软件架构分析方法SAAM: 场景优先级分类
- 成本收益分析方法CBAM
- 架构权衡分析法ATAM: 对质量属性做评价和折中
- 基于度量
- 特点
- 软件架构(体系结构)
-
系统设计
- 分类
- 体系结构设计
- 数据设计
- 接口设计
- 过程设计
- 结构化设计
- 概要设计: 确定结构
- 模块: SC系统结构图
- 模块,模块间调用关系与通信,模块间层次结构
- 模块: SC系统结构图
- 详细设计: 实现细节
- 流程设计
- 程序流程图
- IPO图: 每个模块内部流程
- N-S图:五种控制结构(顺序型,选择型,while循环型,until循环型,多分支选择型)
- 问题分析图PAD: 相对N-S图可以展示递归
- 过程设计语言PDL: 伪代码
- 判定表, 判定树
- 面向对象设计
- 流程设计
- 概要设计: 确定结构
- 面向对象
- 分类
-
UML
- 4种事务
- 结构: 名词
- 行为: 动词
- 分组: 包
- 注释: 注释
- 视图
- 用例图
- 参与者
- 用例: 基用例,子用例
- 边界
- 关系: 包含,扩展(基用例不一定执行子用例),泛化
- 类图
- 类:实体类(名词),控制类(执行),边界类(用户系统交互)
- 关系
- 依赖
- 泛化
- 多态
- 参数多态
- 包含多态: 用于子类型,需要运行时类型检查
- 强制多态: 编译时强行变类型
- 过载多态: 同名在不同上下文有不同类型
- 多态
- 关联: 双向,单向,自关联,多重关联
- 组合,聚合
- 实现
- 对象图
- 交互图
- 序列图
- 通信图/协作图: 不强调时间
- 状态图
- 活动图
- 构件图/组件图
- 部署构件: dll
- 工作产品构件: 源代码
- 执行构件: 执行后得到的构件
- 组合结构图
- 部署图
- 包图
- 用例图
- 分类
- 静态模型: 用例图,类图,对象图,构件图,部署图
- 动态模型: 状态图,活动图,顺序图,协作图
- 设计模式: 类模式,对象模式
- 创建型
- 工厂方法(类)
- 抽象工厂
- 建造者
- 原型
- 单例模式
- 适配器
- 桥接: 抽象与实现分离
- 组合
- 装饰
- 外观
- 享元
- 代理
- 责任链
- 解释器
- 模板方法
- 命令
- 迭代器
- 中介者
- 备忘录
- 观察者/发布订阅
- 状态
- 策略
- 访问者
- 结构型
- 行为型
- 创建型
- 4种事务
-
可靠性分析与设计
- 指标
- 平均无故障时间MTTF
- 平均故障修改时间MTTR
- 平均故障间隔时间MTBF=MTTF+MTTR
- 串联系统
- 关联系统
- 冗余
- 结构冗余: 硬件冗余,软件冗余
- 静态冗余: 三模冗余,多模冗余
- 奇数个,表决器
- 动态冗余: 检测到错误用备用模块替代
- 混合冗余:先静态后动态
- 静态冗余: 三模冗余,多模冗余
- 信息冗余: 检错码,纠错码
- 时间冗余: 重复执行
- 冗余附加: 冗余资源
- 结构冗余: 硬件冗余,软件冗余
- 软件容错技术
- N版本程序设计:一种静态故障屏蔽,用前向恢复的策略
- 组,版本,表决器
- 恢复块方法
- 主块,备用块
- 防卫式程序设计
- N版本程序设计:一种静态故障屏蔽,用前向恢复的策略
- 双机容错技术
- 主设备,从设备, 故障切换
- 服务器两块网卡,一块对外服务,一块与另外服务器连接
- 方式
- 双机热备: 从设备不工作只监控
- 双机互备: 服务不同同时工作,可互相替代
- 双机双工: 服务相同集群方式工作
- 集群技术
- 服务器组,对外网络,心跳信号,磁盘阵列
- 类型
- 高性能计算集群
- 负载均衡集群: 集中式,分布式
- 高可用性集群
- 高并发下的高可用技术
- CDN
- 负载均衡
- HTTP: 重定向两次请求
- DNS: 基于地理位置返回不同IP, 但可能缓存导致访问失败
- NAT: 速度比反向代理快, 但大文件
- 反向代理
- 负载均衡算法
- 轮询法
- 优点:简单高效,易于水平扩展
- 缺点:木桶原理,集群性能瓶颈于性能差的服务器
- 随机法
- 源地址hash法
- 优点: 可干预请求方向
- 缺点: 容易负载不均衡
- 加权轮询法
- 加权随机法
- 键值范围法
- 优点:水平扩展容易
- 缺点:容易负载不均衡
- 动态负载均衡
- 最小连接数法
- 优点:根据节点状况实时变化
- 缺点:提高了复杂度
- 最快响应速度法
- 观察模式法
- 最小连接数法
- 轮询法
- 性能评价指标
- 计算机
- 主频/时钟频率
- 外频*倍频
- 主频的倒数: 脉冲/CPU时钟周期
- 机器周期: 若干时钟周期
- 指令周期:若干机器周期
- CPI: 指令平均时钟周期
- MIPS: 每秒百万条指令平均执行速度, 主频/CPI
- 阿姆达尔解决方案
- 主频/时钟频率
- 网络
- 操作系统
- 数据库管理系统
- Web服务器
- 计算机
- 性能评估方法
- 时钟频率法
- 指令执行速度法MIPS
- 等效指令速度法
- 数据处理速率法PDR
- 综合理论性能法
- 基准程序法
- 指标
-
软件测试
- 测试目的:发现错误
- 测试类型
- 动态
- 黑盒
- 等价类划分: 等价的数据合并
- 边值分析
- 错误猜测
- 因果图
- 功能图
- 白盒
- 基本路径
- 循环覆盖
- 单循环,嵌套循环
- 逻辑覆盖
- 语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,点覆盖,边覆盖,路径覆盖
- 灰盒: 表征性现象,判断内部运行状态
- 黑盒
- 静态
- 桌前检查
- 代码审查
- 代码走查
- 动态
- 测试阶段
- 单元测试
- 集成/组装/联合测试
- 概要设计阶段计划
- 自顶向下,自底向上,混合/三明治
- 冒烟/版本验证/提交测试
- 确认测试
- 有效性测试, 需求分析阶段计划
- 类型:内部确认测试,Alpha测试,Beta测试,验收测试
- 系统测试
- 软件,硬件,网络,外部支持硬件、软件、数据等系统元素结合
- 系统分析阶段(需求分析阶段)完成计划
- 包括:功能测试,健壮性测试,性能测试, 用户界面测试,安全性测试,安装与反安装测试
- 回归测试
- 性能测试
- 目的
- 评估系统的能力,识别体系中的弱点,系统调优,检测软件中的问题,验证稳定性和可靠性
- 分类
- 负载压力测试:超负荷情况
- 强度测试: 资源低的情况下运行情况
- 容量测试: 同时在线的最大用户数
- 指标: 客户端,网络,服务器
- 目的
- 第三方测试
- 面向对象测试
- 层次
- 算法层
- 类层
- 模板层
- 系统层
- 方案
- 逻辑覆盖
- 等价划分
- 边界值分析
- 错误推测
- 层次
- 软件维护
- 软件生命周期
- 规划
- 开发: 分析,设计,实施,验收
- 运维
- 解散/升级
- 类型
- 改正性维护
- 适应性维护
- 完善性维护
- 预防性维护
- 软件生命周期
-
安全性保密性设计
- 安全防范体系层次
- 物理层
- 系统层
- 网络层
- 应用层
- 安全管理
- 数据加密
- 对称加密: 分组密码,序列密码
- DES: 分组密码, 3DES
- IDEA: 明文密文64,密钥128
- 非对称加密
- RSA, 公私钥
- 认证技术
- 确保发送者接收者的真实性,报文的完整性
- 数字签名
- 非对称加密
- 杂凑算法: 摘要(MD5), 安全散列算法(SHA)
- 数字证书: X.509
- 身份认证: 口令,动态口令,生物特征
- 密钥管理体制
- KMI密钥管理基础设施
- 适用于
- 开放网的PKI(公钥基础设施)
- 规模化专用网的SPK(种子化公钥)
- 适用于
- KMI密钥管理基础设施
- 通信与网络安全
- 防火墙
- 功能类型:包过滤型,电路级网关型,应用网关型,代理服务型,状态检测型,自适应代理型
- 实现模式:宿主机模式,屏蔽主机模式,屏蔽子网模式
- 安全协议
- SSL
- HTTPS
- PGP: 邮件加密
- IPSec: 防止Sniffer、数据篡改、身份欺骗等应用层攻击、中间人攻击、拒绝服务攻击
- 入侵检测与入侵防护IDS
- 基于数据源分类:基于主机的IDS, 基于网络的IDS
- 基于检测方法:异常检测,误用检测
- 入侵防护系统IPS
- 访问控制
- 自主访问控制DAC:ACL, 不能组上间接访问
- 强制访问控制MAC
- 基于角色的访问控制RBAC
- 基于任务的访问控制TBAC
- 基于对象的访问控制OBAC
- 防火墙
- 对称加密: 分组密码,序列密码
- 安全防范体系层次
-
中间件
- 功能
- 客户机和之间的连接和通信
- 提供应用层不同服务之间的互操作机制, 以及应用层与数据库之间的连接和控制机制
- 提供多层架构的应用开发和运行平台,以及应用开发框架
- 屏蔽硬件、操作系统、网络和数据库的差异
- 负载均衡, 高可用
- 通用的服务,避免重复工作
- 类型
- 通信处理(消息)
- 事务处理(交易)
- 数据存取管理
- Web服务器
- 安全
- 跨平台和架构
- 专用平台
- 网络
- 应用服务器
- J2EE: 建立标准,控制构件生命周期
- 构件: 应用客户端、EJB、Servlets和JSP、Applet
- 构成:容器,组件,服务
- 分层
- 表示层
- 业务逻辑层(中间层、领域层)
- 实体Bean: 表映射到对象
- 会话Bean: 与客户端交互
- 有状态,无状态
- 消息驱动Bean
- 数据访问层
- .NET
- 分层
- 通用语言运行时CLR: 受控代码
- 基础类库
- ADO.NET: XML支持, 数据缓冲区
- ASP.NET
- 通用语言规范
- 分层
- J2EE: 建立标准,控制构件生命周期
- 企业应用集成EAI
- 分类
- 应用集成
- 业务过程集成
- 数据集成: 单一数据库
- Java企业应用框架
- MVC
- 分类
- 功能
-
进阶知识
-
信息系统基础
- 控制论:维纳
- 信息论:香农
- 认识论: 主观角度
- 质量属性:精确性,完整性,可靠性,及时性,经济性,可验证性,安全性
- 信息化
- 层次:产品,企业,产业,国民经济,社会生活
- 主体:全体社会成员
- 空域:政治、经济、文化、军事、社会生活一切领域
- 时域: 长期的过程
- 资源是核心,信息技术应用是龙头,信息网络是基础,信息技术和产业是国家信息化建设基础,人才是关键,政策法规和标准规范是保障
- 战略纲要
- 2017-2020:网信先行
- 2025: 技术先进,产业发达,应用领先,网络安全
- 21世纪中叶:网络强国,引领全球信息化发展
- 两化融合: 信息化和工业化
- 电子政务:
- G2G: 政府对政府
- G2B: 政府对企业
- G2C: 政府对公民
- G2E: 政府对公务员
- 电子商务
- 发展
- 原始电子商务
- 现代电子商务:使用了EDI(电子数据交换)
- 结构
- 网络
- 网络基础设施
- 多媒体内容和网络出版的基础设施
- FAX, E-mail, EDI, HTTP
- 报文和信息传播的基础设施
- 目录服务、安全、认证、电子付款
- 商业服务的基础设施
- 电子商务应用
- 类型
- 网络划分
- EDI(电子数据交换)商务
- Internet(互联网)商务
- Intranet(企业内部网)商务
- Extranet(企业外部网)商务
- 交易内容划分
- 直接电子商务
- 无形商品
- 各种服务
- 间接电子商务
- 有形商品
- 相关服务
- 直接电子商务
- 交易对象规划
- O2O: 线上购买线下
- C2C: 淘宝
- B2C: 京东
- B2B
- 阶段: 电子数据交换(EDI), 基本的电子商务,电子交易集市,协同商务
- 网络划分
- 基本原则
- 企业主体,政府推动。统筹兼顾,虚实结合。着力创新,注重实效。规范发展,保障安全。
- 支撑保障体系
- 发展
- 企业信息化
- 大吃小变为快吃慢
- 原则: 效益原则、一把手原则、中长期与短期建设相结合原则、规范化和标准化原则,以人为本原则
- “两网一站四库十二金”工程
- 政务内网(物理隔离),政务外网(逻辑隔离)
- 中华人民共和国政府网站
- 基础信息库:人口库,法人库,资源地理,宏观经济
- 办公业务资源系统,宏观经济管理系统,金税,金审,金财,金融监管,金关,金盾,金保,金农,金水,金质
- 信息系统
- 集成
- 生命周期
- 立项
- 开发: 分析、设计、实施、验收
- 运维: 纠错性维护,适应性维护,预防性维护,完善性维护
- 消亡
- IT服务管理ITSM
- 低成本高质量,以服务为中心, 以客户为中心提供服务, 可准确计价
- 原理:“二次转换”
- 梳理: 技术管理转化为流程管理
- 打包: 流程管理转化为服务管理
- 服务级别管理SLA
- 事件管理,问题管理
- 监理:四控三管一协调
- 质量控制、进度控制、投资控制、变更控制
- 安全管理、合同管理、信息管理
- 项目组织协调
- IT服务构成ITSS
- 四要素PPTR
- 人员
- 过程
- 技术
- 资源
- 四要素PPTR
- 软件工程
- 需求分析与定义
- 需求必须可以被验证
- 目标:检测和解决需求之间的冲突,发现系统的边界,详细描述系统需求
- 软件设计
- 软件测试
- 配置管理
- 权限:Read, Check, Add, Destroy
- 过程管理: 项目启动和范围定义,项目规划,项目实施、项目监控与评审、项目收发与关闭
- 软件开发工具
- 软件复用
- 面向对象系统分析与设计
- 对象:标识、状态、行为
- UML
- 5种视图: 用例视图,逻辑视图,实现视图,过程视图,部署视图
- 需求分析与定义
- 应用集成技术
- 数据仓库: 面向主题,集成的,相对稳定的,反映历史变化的
- WebService
- 不适合场景: 单机应用,局域网应用
- 适合场景: 跨防火墙,应用程序集成,B2B集成,软件重用
- 软件中间件
- 数据库访问: ODBC, JDBC
- 远程过程调用RPC
- 面向消息中间件MOM: IBM的MQSeries
- 分布式对象中间件: OMG的CORBA, Java的RMI/EJB, Microsoft的DCOM
- 事务中间件: IBM/BEA的Tuxedo, JavaEE的EJB
- 网络技术
- OSI七层协议
- TCP/IP体系的四层协议:网络接口层,网际层,传输层,应用层
- 网络分类
- 地理分类:局域网,城域网,广域网
- 链路传输控制技术:以太网(总线争用),令牌网,FDDI网,ATM网(异步传输模式), 帧中继网,ISDN(综合业务数据网)
- 拓扑结构:总线型,星型,树型,环型,网状
- 数据交换:电路交换,分组交换,ATM交换,全光交换,标记交换
- 接入:光纤,同轴电缆,铜线,无线
- 无线网络:无线个域网,无线局域网,无线城域网,蜂窝移动通信网
- 存储技术
- 与个人计算机差异:多用户多任务
- 技术:DAS, NAS, SAN
- 机房
- 综合布线系统
- 6个子系统
- 分区: 主机区,存储器区,数据输入区,数据输出区,通信区,监控调度区
- 供电:双回路供电,三相五线制
- 接地方式: 交流工作接地,安全工作接地,直流工作接地,防雷接地
- 温湿度
- 开机:
- A级机房
- 温度: 夏季23度, 冬季20度
- 湿度: 45%-65%
- A级机房
- 停机
- 开机:
- 综合布线系统
- RJ45接头需求量:m = nx4 + nx4x15%, m为总需求量,n为信息点总量,nx4x15%为富余量
- 信息模块需求量:m = n + nx3%, m为总需求量,n为信息点总量,nx3%为富余量
- 曲率半径
- 光缆30cm, 同轴粗电缆30cm, 同轴细电缆20cm
- 暗敷管路
- 应直线为主
- 弯曲时曲率半径不小于管外径的6倍(暗管外径大于50mm,不小于10倍)
- 转弯夹角不小于90度,不应有两个以上弯曲(应设在弯管段落两端,长度不超过15m, 段落内不应有S形弯或U形弯)
- 段长超过20m,应装接头箱(接头盒或过渡盒)
- 规划、设计和实施
- 局域网主要是交换以太网
- 拓扑结构考虑主要因素: 地理环境,传输介质,传输距离,可靠性
- 汇聚层是否存在,取决于网络规模的大小
- 网络通信设备选型:核心交换机选型,汇聚层/接入层交换机选型,远程接入与访问设备选型
- 安全
- 要素: 机密性,完整性,可用性,可控性,可审查性
- 工作:制定安全策略,用户验证,加密,访问控制,审计,管理
- 典型网络攻击步骤:信息收集,试探寻找突破口,实施攻击,消防记录,保留访问权限
- 安全的5个等级:用户自主保护级,系统审计保护级, 安全标记保护级, 结构化保护级,访问验证保护级
- 基本属性:完整性,可用性,保密性,可控性,可靠性
- 活动: 定义策略,定义范围,风险评估,确定管理目标和管理措施,准备适用性申明
- 等级保护(破坏后): 定级,备案,安全建设整改,等级评测,安全检查
- 风险保护:秘密,机密,绝密
- 大数据
- 特点5V: Volume(大量), Velocity(高速), Variety(多样), Value(价值), Veracity(真实性)
- 5个环节: 数据准备,存储,计算,分析,知识展现
- 关键技术: HDFS, HBase, MapReduce, Chukwa
- 云计算
- 分层
- 设施层:供电,制冷,布线
- 资源层
- 物理资源:服务器,存储设备,网络,数据库
- 虚拟资源:虚拟主机,虚拟块/对象存储,虚拟网络
- 资源控制层
- 分布式资源调度: 分布式算法,控制锁机制,消息队列
- 资源管理: 虚拟机管理,分布式文件系统,分布式数据库
- 服务层
- IaaS: VDC, VDL
- PaaS: 开发环境,运行环境
- SaaS: CRM, OA
- 分层
- 物联网
- 分层
- 感知层: 物物之间信息传输
- 网络层: 标准化程序最高
- 应用层
- 关键技术
- 感知层为关键
- 产品和传感器(条码、RFID,传感器)自动化识别技术
- 无线传输技术(WLAN, Bluetooth, ZigBee, UWB)
- 自组织组网技术
- 中间件技术
- 感知层为关键
- 分层
- 移动互联网: 移动通信网络+互联网内容和应用
- 特征:接入移动性,时间碎片性,生活相关性,终端多样性
- 关键技术: SOA Web2.0, HTML5, Android, iOS, Windows Phone
- 首席信息官CIO(IT行业可合并到CTO)
- 业务专家,IT专家,管理专家
- 职责
- 提供信息帮助企业决策
- 帮助企业制定中长期发展战略
- 有效管理IT部门
- 制定信息系统 发展规划
- 建立积极的IT文化
- 项目管理
- 组成:项目开发计划,范围管理,进度管理,成本管理,软件配置管理,质量管理,人力资源管理,风险管理,信息文档管理
- 制约因素: 范围,进度,成本,质量
- 本质:认识本质,找出规律,有效管理
- 生命周期: 概念阶段,开发阶段,实施阶段,结束阶段
- 目标:成果性目标,约束性目标
- 开发计划
- 作用:展望未来,实施依据,确定团队成员和责任范围,促进团队交流,明确奋斗目标
- 内容:工作计划,人员组织计划,设备采购和资源供应计划,配置管理计划,进度计划,成本计划,质量计划,风险计划,文档计划,支持计划
- 监控:
- 设置里程碑
- 正规和非正规
- 事前控制,事中控制,事后控制
- 直接控制,间接控制
- 编制:
- 指南:引言,项目概述,实施计划,支持条件,专题计划要点
- 过程:逐渐求精
- 范围管理
- 产品范围(产品需求),工作范围(工作计划)
- 范围管理计划4W1H
- 需求管理
- 收集需求
- 挖掘真实需求:显性利益,关系维护和交往,情感感受和信任
- 需求跟踪矩阵
- 从来源连接到可交付成果
- 用于验收
- 需求文件描述单一需求如何满足,用于生成范围说明书
- 收集需求
- 范围说明书
- 工作分解结构WBS
- 词典
- 结果
- 范围确认:确认可交付成果
- 范围控制
- 范围变更的压力
- 范围蔓延
- 进度管理
- 内容
- 1谋: 规划进度管理
- 4备:
- 备定义出清单: 活动清单,里程碑清单
- 备排序出路线: 排列活动顺序
- 备资源出参数: 项目资源管理-估算活动资源
- 备历时出长短: 活动持续时间
- 2反复:
- 反复进行进度计划编制更新
- 反复进行进度控制与优化
- 进度管理计划
- 活动定义
- 活动清单
- 里程碑清单
- 活动排序
- 提前量滞后量
- 四种依赖关系
- 强制性依赖: 工作中固有的依赖
- 选择性依赖: 经验和编好定义,无必然规律
- 外部依赖: 项目组与项目组外
- 内部依赖: 项目活动之间
- 活动时间估算
- 三点估算PERT
- 进度计划
- 总时差
- 自由时差
- 浮动时间
- 关键路线
- 赶工(时间压缩),快速跟进(改逻辑关系为并行)
- 资源平衡
- 资源平滑
- 进度控制
- 内容
- 成本管理
- 包含:规划成本管理, 成本估算,制定预算,成本控制
- 概念
- 储备:应急储备(已知的未知, 估算阶段),管理储备(无知, 预算阶段)
- 学习曲线
- 质量成本
- 成本估算
- 类比估算(自上而下)
- 自下而上
- 参数估算
- 成本预算
- 项目总预算 = 成本基线BAC(基础成本 + 应急储备金) + 管理储备
- 成本控制
- 挣值
- 实际成本(AC),计划值(PV),挣值(EV)
- 进度绩效, 成本绩效
- 挣值
- 配置管理
- CMMI: 9部分
- 配置标识
- 确定配置项: 配置项命名,配置项描述
- 基线(里程碑): 功能基线,指派基线,产品基线; 发行基线,构造基线
- 建立配置管理系统
- 配置库:开发库,受控库,产品库
- 变更控制
- 变更控制系统
- 变更控制委员会CCB
- 变更控制流程
- 利用配置库实现变更控制
- 版本控制
- 配置审核
- 配置状态报告
- 质量管理
- 基础
- 核心概念
- 客户发现缺陷:代价最大
- 趋势和新兴实践
- 客户满意,持续改进,管理层责任,与供应商互利合作
- 概述
- 遵从组织质量体系QS
- 制定质量计划QP
- 实施质量管理QM, 包含QA
- 落实质量控制QC
- 坚持持续改进QI
- ISO9000质量管理体系: 关注程序的高质量
- 八项原则
- 核心概念
- 规划质量管理
- 质量管理体系
- 质量成本
- 一致性成本: 预防成本,评估成本
- 不一致性成本: 内部失败成本,外部失败成本
- 管理质量
- 质量报告
- 亲和图,因果图,流程图,直方图,帕累托图,矩阵图,散点图
- 控制质量
- 控制图
- 基础
- 人力资源管理
- 规划资源管理
- 组织结构图和职位描述
- 责任分配矩阵RAM
- 估算活动资源
- 获取资源
- 资源日历
- 建设团队
- 一般成长规律BruceTuckmans模型:形成,震荡,规范,成熟,解散
- 权力类型:正式,惩罚,奖励,专家,参考
- 激励理论
- 马斯洛,需求层次5个:生理,安全,社会需求,尊重,自我实现
- 海兹伯格,激励理论:保健因素,激励因素
- 麦克格利格, X理论,Y理论
- 期望理论
- Z理论
- 成就动机理论
- 冲突管理
- 管理学原理
- 彼得原理: 组织中每个人都可能朝不适合他的岗位发展
- 光环效应:一个人某方面好,往往被认为其他方面也好
- 墨菲定律
- 帕金森定律:无论给多少时间,事情总是要拖到最后一刻才能完成
- 布鲁克斯定律:为一个延误的项目增加人员,将导致更多的延误
- 手表定律:有两块手表且走时不相同, 就不知道时间了
- KISS法则
- 黄金法则:你期望别人怎样对待你,你也要怎样对待别人
- 控制资源
- 风险管理
- 已知风险,未知风险
- 已知的已知风险:直接成本
- 已知的未知风险:应急储备
- 未知的未知风险:管理储备
- 概念
- 风险责任人,次生风险,残余风险,弹回计划,权变措施,风险承受力,风险临界值
- 概述
- 规则风险管理
- 识别风险: 风险登记册
- 实施定性风险分析: 优先级排序, 风险登记册
- 实施定量风险分析: 敏感性分析,龙卷风图,决策树分析,蒙特卡罗技术
- 规划风险应对
- 实施风险应对
- 监督风险
- 已知风险,未知风险
- 文档管理
- 质量等级
- 1级文档:最底限度文档
- 2级文档:内部文档
- 3级文档:工作文档
- 4级文档:正式文档
- 文档标准: 开发文档,产品文档,管理文档
- 测试报告
- 技术报告
- 开发总结报告
- 质量等级
- 项目管理网络图
- 单代号网络图(工作在节点上)
- 双代号网络图(工作在线上)
- 关键路线
- 紧前工作, 紧后工作,虚工作
- 时标网络图
- 计算
- 最早开始,最迟开始,最早结束,最迟结束
- 总时差:不影响总工期, ls-es, lf-ef
- 自由时差: 不影响紧后工作, es-ef
- 施工
- 依次施工, 平行施工, 流水施工
- 压缩
- 有充足备用资源的工作
- 对质量和安全影响不大的工作
- 所需增加成本最少的工作
-
嵌入式
- 微处理器体系
- 哈弗体系: 地址总线数据总线,每程序独立
- 冯诺依曼体系
- 硬件
- 核心
- 控制器
- 运算器
- 寄存器
- 微控制器MCU: CPU + 片内内存 + 片内外设
- 微处理器MPU: CPU
- 数字信号处理器DSP: 哈弗结构
- 片上系统SoC: 片内再编程
- 多核处理器
- 三种运行方式
- 非对称多处理AMP: 不同操作系统
- 对称多处理SMP: 一个操作系统
- 混合多处理BMP: 可指定某任务在某核运行
- 队列调度
- 全局队列
- 局部队列:每个CPU一个队列
- 三种运行方式
- 核心
- 嵌入式操作系统EOS
- 特点:微型化,代码质量高,专业化,实时性强,可裁减可配置
- 嵌入式实时操作系统RTOS
- 硬实时:规定时间必须完成
- 软实时:按优先级完成即可
- 系统设计
- 交叉编译
- 低功耗: 编译优化技术,软硬件协同设计,算法优化
- 软件
- 特点: 规模小,开发难度大,实时性和可靠性要求高,固化存储
- 层次:硬件抽象层,操作系统层,应用支撑层,应用层
- 板级支持包BSP
- 微处理器体系
-
应用数学
- 运筹学
- 最大流问题, 动态规划, 线性规划
- 运筹学
-
补充
-
技术
- 大数据
- 特点5A
- 大量Volume, 多样Variety, 价值Value, 高速Velocity, 真实性Veracity
- 架构: 采集,存储,计算,分析,展现
- 关键环节
- 采集: ETL
- 存储: 结构化SQL, 非结构化NoSQL
- 管理:分布式并行处理技术MapReduce
- 分析与挖掘
- 关键技术
- HDFS: 分布式文件系统
- HBase: 分布式面向列的开源数据库,非结构化存储
- MapReduce: 管理技术,不会并行编程的情况下,程序运行在分布式系统
- Chukwa: 分布式系统的数据收集系统
- Flume: 日志采集、聚合、传输
- Kafka: Producer, Consumer
- Spark: 与Hadoop相似的集群计算环境
- 特点5A
- 云计算
- 特点:超大规模, 虚拟化, 高可靠,通用性,高可扩展性,按需服务,廉价,潜在危险性
- 三种服务类型
- 基础设施IaaS: 处理,存储,网络,其它基本计算资源
- 平台PaaS: 操作系统,编程语言的运行环境,数据库,Web服务器
- 软件SaaS
- 核心
- 资源池
- 云操作系统
- 云平台接口
- 关键技术
- 网格计算: 子任务式计算, 基础技术Web Service基于SOA
- 虚拟化: 传统的集群计算和分区计算的结合。基础设施虚拟化,网络虚拟化,存储虚拟化
- 应用
- 公有云,私有云,混合云
- 物联网
- 两项关键技术:嵌入式,传感器
- 架构:
- 感知层: 信息采集和物物之间的信息传输
- 采集:传感器、条码、二维码、RFID、音视频
- 传输:远近距离数据传输,自组织组网,协同信息处理,信息采集中间件
- 网络层: 有线或无线,编码、认证,传输。标准化程序最高
- 应用层: 提供应用,是根本目标
- 感知层: 信息采集和物物之间的信息传输
- 移动互联网
- 网络是核心,内容和应用是根本
- 产业领域:关键应用服务平台,网络平台,移动智能终端软件平台、硬件平台、原材料元器件, 安全控制
- 关键技术
- SOA: 粗粒度松耦合
- Web2.0
- HTML5: 扩展了API使Web应用成为RIA可以在网页上调试和修改
- Android, iOS, Windows Phone
- 人工智能
- 国家规划
- 2020年与世界先进水平同步
- 2025年部分技术与应用达到世界领先水平
- 2030年总体领先,成为世界主要人工智能创新中心
- 主要成果
- 语音识别,计算机视觉,机器学习,机器人技术,自然语言处理, 自识别自学习,人机对弈,自动工程,知识工程
- 国家规划
- 区块链技术
- 分布式数据存储,点对点传输,共识机制,加密算法
- 特征:开放,共识,去中心化,去信任机制,交易透明,双方匿名,不可篡改,可追溯
- 技术应用
- 链式数据结构, 密码学分布式账本
- 解决“双花”问题
- 解决拜占庭将军问题
- 数值货币,智能合约
- 商品防伪、食品安全溯源,全生命周期记录
- 版权确权
- 核心技术
- 分布式账本/去中心化
- 哈希加密/防篡改
- 非对称加密/数字签名
- 共识算法(博弈论)/全民记账: 工作量证明POW
- 特点
- 去中心化
- 自治: 机器节点自治
- 集体维护
- 开放性
- 安全性
- 匿名性:机器节点间匿名
- 完全透明
- 互联网+: 行业间合力
- 六大特征: 跨界融合,创新驱动,重塑结构,尊重人性,开放生态,连接一切
- 2015.3李克强提出
- 两化融合的升级版本
- 工业化、信息化
- 战略融合,资源融合,虚实结合,信息技术与工业设备融合
- 制造业服务化:以制造为中心转向以服务为中心
- 《互联网+先进制造业指导意见》: 推动互联网由消费领域向生产领域拓展
- 两化融合的升级版本
- 智慧中国
- 借助虚拟化、云计算、物联网、SOA架构等技术,形成”智慧”中国
- 智慧城市:整合城市资源
- 概念
- 传感器或信息采集设备采集
- 网络将数据关联
- 共享与智能挖掘变成知识
- 结合信息技术知识应用到各行各业
- 五层: 物联感知层,通信网络层,计算与存储层,数据及服务支撑层,智慧应用层
- 三个支撑体系:安全保障,建设和运营管理,标准规范
- 概念
- 数据仓库
- ETL, 数据集市, OLAP服务,前端工具
- 特点
- 面向主题, 集成的,相对稳定的,反应历史变化的
- 数据挖掘分类
- 分类: 决策树(ID3、C4\5、K最近邻、贝叶斯、人工神经网络、支持向量机)
- 聚类: K-means, Apriori, DBSCAN
- 序列模式分析: 因果关系
- 关联分析: 隐藏关系
- 离群点分析: 异常检测
- 回归分析: 两种以上变量是否依赖
- 数据挖掘方法: 决策树,神经网络,遗传算法,关联规则挖掘算法
- 商业智能
- 商业分析和建模
- OLAP
- 存储方式
- ROLAP: 基于关系数据库
- MOLAP: 基于多维数据库
- HOLAP: 基于混合数据
- 存储方式
- 四阶段: 预处理,建立数据仓库,数据分析,数据展现
- 实现步骤:需求分析,数据仓库建模,数据抽取,建立商业智能分析报表,用户培训和数据模拟测试,系统改进和完善
- 虚拟化
- 5G
- 关键技术:超密集异构网络,自组织网络技术,内容分发网络,设备到设备通信D2D, M2M通信,信息中心网络ICN
- 大数据
-
项目管理网络图
- PERT图
-
标准化与知识产权
- 著作权
- 内容
- 著作权法: 计算机保护条例
- 不论是否发表
- 不适用具有司法性质的文件,及其官方正式译文
- 署名权,修改权,保护作品完整权的保护期不受限制
- 专利法: 专利法实施细则
- 商标法: 商标法实施细则
- 商业秘密权
- 著作权法: 计算机保护条例
- 特征:无体性,专有性,地域性,时间性
- 内容
- 计算机保护条例
- 权利:发表权,署名权,修改权,复制权,发行权,出租权,信息网络传播权,翻译权
- 专利权法
- 不授予专利权:科学发现,智力活动的规则和方法,疾病的诊断和治疗方法,动物和植物品种,用原子核变换方法获得的物质,印刷标识作用的设计
- 发明专利20年,设计专利10年,申请日开始算
- 商标法
- 需要商标:烟草制品, 没有人用药品了
- 不能用作商标的
- 国家标识,外国标识, 国际组织
- 县级以上行政区划的地名 或公众知晓的外国地名
- 公众熟知的商标,可请求驰名商标保护
- 协商不成,抽签决定
- 有效期,核准注册之日起计算10年
- 期满前12个月续展,6个月宽展期
- 必需用在核准使用的地方
- 商业秘密权
- 相比著作权
- 主体不专有
- 客体:技术信息和经营信息
- 保护期不具有确定性
- 无须国家审批,产生之日自动取得
- 相比著作权
- 知识产权
- 内容
- 著作权法: 计算机保护条例
- 不论是否发表
- 不适用具有司法性质的文件,及其官方正式译文
- 专利法: 专利法实施细则
- 商标法: 商标法实施细则
- 商业秘密权
- 著作权法: 计算机保护条例
- 特征:无体性,专有性,地域性,时间性
- 内容
- 著作权
-
论文背
- 论文结构
- 大纲
- 理论
- 实践
- 总结(10分钟)
- 架构风格
- 数据流
- 管理过滤器
- 批处理
- 调用返回
- 主子程序
- 面向对象
- 分层
- 虚拟机
- 解释器
- 规则
- 独立构件
- 进程通信
- 事件驱动
- 仓库
- 数据库系统
- 黑板
- 超文本系统
- 数据流
- 分布式
- 技术
- 服务治理: 服务拆分、调用、发现、依赖、关键度定义
- 架构软件管理: 架构版本管理,整体架构生命周期管理,服务编排、聚合、事务处理
- DevOps: 环境构建,持续集成,持续部署
- 自动化运维: 自动伸缩,故障迁移,配置管理,状态管理
- 资源调度管理: 云计算IaaS的计算、存储、网络等资源调度、隔离、管理
- 整体架构监控: 三层系统(应用层、中间件层、基础层)的监控
- 流量控制: 流量控制,负载均衡,服务路由,熔断,降级,限流,灰度发布功能
- 优势
- 可用性:冗余无单点
- 模块化: 提高模块重用度,系统扩展性提高
- 开发发布速度提高:模块拆分可以并行
- 技术
- 高并发
- 技术
- 负载均衡: 随机,轮询,加权轮询,一致性哈希,最小连接,自适应
- 分布式微服务
- 缓存机制
- 分布式关系型数据库: 垂直分表,水平分表,框架(Proxy模式,Client模式)
- 分布式消息队列
- CDN: 镜像+缓存+整体负载均衡
- 其它:分布式文件系统,大数据,NoSQL,NewSQL,分布式锁
- 技术
- 论文结构