计算机基础 #
冯诺依曼
输入、输出、存储器(中心)、运算器控制器(CPU)
硬件图
主机(运算器、控制器、主存)
存储器: 主存、辅存
I/O设备
CPU
指令: 操作码, 地址码
运算器
ALU: 算逻运算
PSW状态寄存器
ACC MQ X
加 被加数、和 加数
减 被减数、差 减数
乘 乘积高位 乘数、乘积低位 被乘数
除 被除数、余数 商 除数
控制器
CU: 控制单元
时序部件: 时钟控制
ID: 指令译码器
IR: 指令寄存器,即将执行的指令,查MAR
PC: 程序计数器,下条指令地址
存储体
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近时用
主存装入或替换
平均访问时间: 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个以上
总线
位置分类
内部
外部
功能分类
地址
数据
控制
数据线多少分类
并行: 速率高,近距离传输(内部部件系统总线)
串行: 速率不高,长距离传输
磁盘阵列
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结构
线性方式
链接方式
索引方式
前驱图: 有向无循环图
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协议
校验和: 不校验或校验头部
网络设计
接入层: 收集用户信息如Ip、MAC、访问日志。管理功能如MAC地址、计费管理
汇聚层: 网络访问策略控制,数据包处理、过滤、寻址
核心层: 双机冗余热备份
出口层
综合布线系统
工作区子系统: 插座
水平子系统: 楼层, 接入管理子系统
管理子系统
垂直(干线)子系统: 主设备间至各层管理间
设备间子系统: 连接跳线架及支撑硬件,防雷电,是中心单元
建筑群子系统: 楼间连线
域名和地址
DNS: UDP协议
结构
根: 用.表示
顶级域: com, edu, gov
二级域: baidu
子域: 最多63个字符
主机
域名
服务器
主域名服务器: 本区域名解析
辅助域名服务器: 备份
缓存域名服务器: 缓存查询结果
转发域名服务器: 非本地缓存中没有的,先查自身缓存,没有时转发到指定域名服务器
查询方式
递归
本服务器解析名字
迭代
问别的服务器
设备
中继器: 物理层,信号再生和发送,只直到扩展传输距离的作用,个数有限(以太网4个)
网桥: 数据链路层, 物理地址转发,只能连接相同MAC层的网络
路由器: 网络层
网关: 4-7层
集线器: 多端口中继器
二层交换机: 数据链路层,传统交换机,多端口网桥
三层交换机: 网络层,带路由功能的二层交换机
多层交换机: 4-7层,带协议转换
网络存储
DAS: 直接附加存储, 设备通过SCSI电缆直接连到服务器,无操作系统存储的操作依赖于服务器。也叫作SAS(服务器附加存储)
NAS: 网络附加存储, 不再通过I/O总线附属特定服务器,而是通过网络接口与网络直接相连,用户通过网络访问。专用的文件服务器,即插即用
SAN: 存储区域网络, 专用交换机连接磁盘阵列与服务器
数据库基础 #
结构
开发人员: 三级模式,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
超键: 主键和其它键组合
主键: 无多余属性
候选键: 无多余属性可成为主键的键
外键: 关联其它表主键
主属性非主属性: 主键中的属性是主属性
全码: 属性全是主键
规范化: 拆分表
1NF: 每个属性(列)不可再分
不满足后果
冗余大
插入入异常、删除异常、修改异常
2NF: 非主属性不完全依赖主键,即有对主键的部分依赖,不满足
3NF: 有非主属性的传递依赖不完全依赖主键(比如依赖其它非主键属性),不满足
BC范式: 主键包含依赖的所有决定性因素(所有主属性)
不满足后果
冗余大
插入异常、删除异常
修改复杂
4NF: 没有多值属性
5NF
无损连接, 函数依赖性
设计
规划阶段: 必要性、可行性
需求分析: 产出需求规格说明书、数据字典
调查重点是"数据"、"处理"
数据字典: 数据项、数据流、数据存储、数据加工(结构化语言、判定数、判定表)
概念设计: 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图)
步骤
定义概念类: 显而易见的类、明显无意义的类、不确定的类
发现类: 名词短语法
发现用例: 动词
确定类之间的关系: 形成领域模型
关联
聚合、组合、
依赖、泛化、实现
为类添加职责
建立交互图
设计
用例图表示需求
用例模型提炼领域模型,用例的实现用交互图
领域模型和用例图形成类图
包图和类图形成体系结构图
构件(组件)化开发: 装配式思想
RAD快速应用开发; 基于瀑布模型
步骤
规划
设计实现, 不断迭代
运行
不适合新技术, 因为适用性窄还好拆成熟构件
UP/RUP统一过程模型: 基于面向对象,比较重型
内容组织
核心工作过程
核心过程工作流
商业建模
需求
分析和设计
实现
支持工作过程
测试
部署
配置和变更管理
项目管理
环境
时间组织
阶段
初始: 明确项目规模、评估项目风险、制定项目计划、阶段技术评审
细化: 确定架构、制定构建阶段计划、建立支持环境、选择构件、阶段技术评审
构建: 详细设计,编码、测试、集成
交付: 全面测试、补充文档、产品移交用户
迭代: 每个步骤都有迭代
思想
用例驱动
以架构为中心
迭代
增量
4+1视图
逻辑视图: 类图、对象图、状态图、协作图
进程(过程)视图: 活动图
实现(开发)视图: 包图、组件图
物理视图
场景(用例视图)
连接件
构件和对象
构件: 包含对象可独立部署、是组装单元、没有外部可见状态
对象: 有唯一标志,具有外部可见状态,封装了自己的状态和行为
构件与类
构件不一定包含类,一个类只属于一个构件
构件间消息通过接口
面向服务: 构件化开发发展而来
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
基于度量
系统设计 #
分类
体系结构设计
数据设计
接口设计
过程设计
结构化设计
概要设计: 确定结构
模块: SC系统结构图
模块,模块间调用关系与通信,模块间层次结构
详细设计: 实现细节
流程设计
程序流程图
IPO图: 每个模块内部流程
N-S图:五种控制结构(顺序型,选择型,while循环型,until循环型,多分支选择型)
问题分析图PAD: 相对N-S图可以展示递归
过程设计语言PDL: 伪代码
判定表, 判定树
面向对象设计
面向对象
UML #
4种事务
结构: 名词
行为: 动词
分组: 包
注释: 注释
视图
用例图
参与者
用例: 基用例,子用例
边界
关系: 包含,扩展(基用例不一定执行子用例),泛化
类图
类:实体类(名词),控制类(执行),边界类(用户系统交互)
关系
依赖
泛化
多态
参数多态
包含多态: 用于子类型,需要运行时类型检查
强制多态: 编译时强行变类型
过载多态: 同名在不同上下文有不同类型
关联: 双向,单向,自关联,多重关联
组合,聚合
实现
对象图
交互图
序列图
通信图/协作图: 不强调时间
状态图
活动图
构件图/组件图
部署构件: dll
工作产品构件: 源代码
执行构件: 执行后得到的构件
组合结构图
部署图
包图
分类
静态模型: 用例图,类图,对象图,构件图,部署图
动态模型: 状态图,活动图,顺序图,协作图
设计模式: 类模式,对象模式
创建型
工厂方法(类)
抽象工厂
建造者
原型
单例模式
适配器
桥接: 抽象与实现分离
组合
装饰
外观
享元
代理
责任链
解释器
模板方法
命令
迭代器
中介者
备忘录
观察者/发布订阅
状态
策略
访问者
结构型
行为型
可靠性分析与设计 #
指标
平均无故障时间MTTF
平均故障修改时间MTTR
平均故障间隔时间MTBF=MTTF+MTTR
串联系统
关联系统
冗余
结构冗余: 硬件冗余,软件冗余
静态冗余: 三模冗余,多模冗余
奇数个,表决器
动态冗余: 检测到错误用备用模块替代
混合冗余:先静态后动态
信息冗余: 检错码,纠错码
时间冗余: 重复执行
冗余附加: 冗余资源
软件容错技术
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(种子化公钥)
通信与网络安全
防火墙
功能类型:包过滤型,电路级网关型,应用网关型,代理服务型,状态检测型,自适应代理型
实现模式:宿主机模式,屏蔽主机模式,屏蔽子网模式
安全协议
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
通用语言规范
企业应用集成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
人员
过程
技术
资源
软件工程
需求分析与定义
需求必须可以被验证
目标:检测和解决需求之间的冲突,发现系统的边界,详细描述系统需求
软件设计
软件测试
配置管理
权限: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%
停机
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相似的集群计算环境
云计算
特点:超大规模, 虚拟化, 高可靠,通用性,高可扩展性,按需服务,廉价,潜在危险性
三种服务类型
基础设施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,分布式锁