系统架构设计师笔记

第1章 绪论
1.信息与信息系统
1)信息的功能
为认识世界提供依据。为改造世界提供指导。为有序的建立提供保证。为资源的开发提供条件。为知识的生产提供材料。
2)信息与数据。数据是结构化加工后的信息。
信息与知识。知识是经过加工的信息。
3)系统工程方法论
霍尔三维结构方法体系(硬系统方法论)/切克兰德的软系统方法论
霍尔三维结构方法体系分为逻辑维(解决问题)、时间维(工程进度)、知识维(专业知识)。
霍尔三维结构方法体系 逻辑维分析步骤
1)问题确定
2)目标确定 制定评价标准和指标
3)系统综合 提出多个候选方案
4)系统分析 构造模型,分析各方案
5)方案选择
6)评价决策
7)实施计划
霍尔三维结构方法体系 时间维分析步骤
规划阶段/制定阶段/研制阶段/生产阶段/安装阶段/运行阶段/更新阶段。
切克兰德的软系统方法论 分析步骤
1)问题现状说明
2)理清问题关联因素
3)建立概念模型
4)比较
5)实施
2.信息系统工程
1)信息系统的生命周期
系统规划、系统分析、系统设计、系统实现、系统运行与评价。
2)信息系统建设原则
高层管理人员介入原则/用户参与开发原则/自顶向下规划原则/工程化原则/其他(创新性原则、整体性原则、经济性原则、先进性原则、发展性原则等)
2.系统分析师
1)角色
IT专家/管理业务专家/IT人员和非IT人员的沟通者/对外谈判者/信息系统运行的指导者/信息系统建设项目的技术负责人。
2)知识体系
技术知识与技能、经营管理知识与技能、业务知识与技能、人文修养。
3.任务
1)信息化战略管理中的任务
2)信息化基础建设中的任务
3)信息化系统建设中的任务
a.系统规划阶段 编写可行性研究报告和系统开发计划。
b.系统分析阶段 建立企业业务模型,完成信息系统需求分析,构建出系统的逻辑模型。
c.系统设计阶段 辅助设计好系统架构,指导设计人员,对相关问题进行解释。
d.系统实施阶段 指导、提出意见、对系统实施效果进行评价等。
e.系统运行和维护阶段 主持制定运行和维护的规章制度,从技术和经济两方面评价运行效果等。
4)企业流程管理中的任务
a.在信息化过程中,要特别关注企业流程,研究分析有关企业流程的问题。
b.在信息系统建设过程中,要关注系统与流程的相互影响,将企业流程改进或重组作为信息系统修正、功能扩展和升级的主要影响因素。
c.关注并熟悉、研究和评价市场上流行的流程分析工具,当条件具备时,可选用适当的流程分析软件,辅助企业进行流程管理。
5)信息资源开发利用中的任务

-----------------------------------------------------------
-----------------------------------------------------------
第2章 经济管理与应用数学
要点:
1.最小生成树
2.最短路径
3.网络与最大流量
4.线性规划
5.博弈论 囚徒困境 4象限矩阵分析
6.状态转移矩阵
7.运筹方法_决策
包括:
决策者
可供选择的方案
衡量选择方案的准则
事件
每一事件的发生将会产生的某种结果
决策者的价值观
确定型决策/风险型决策/不确定型决策
不确定型决策包括:
乐观主义准则    maxmax原则,大中取大。
在决策表中各个方案对各个状态的结果中选出最大者,记在表的最右列,再从该列中选出最大者。
悲观主义准则    maxmin原则,小中取大。
在决策表中各个方案对各个状态的结果中选出最小者,记在表的最右列,再从该列中选出最大者。
折中主义准则    Harwicz准则,用折中系数α(0~1)来表示.α*max+α*(1-min),乐观主义准则与悲观主义准则分别是α=1,α=0。
等可能准则       Laplcae准则,将每个状态出现的概率定位1/n,然后求和比较
后悔值准则       Savage准则,决策的原则是最小最大后悔值。后悔值为最大收益与最小收益的差。
8.风险决策
决策树决策表与期望货币价值
9.数学建模
建模步骤(7步):
1)模型准备 了解问题背景
2)模型假设 简化问题
3)模型建立
4)模型求解
5)模型分析 对结果进行分析
6)模型检验
7)模型应用
建模方法:直接分析法、类比法、数据分析法、构想法。
一、企业组织结构模式
U型结构 直线职能制结构
M型结构 事业部制结构 战略决策与经营决策分离,使高层领导从日常经营业务中解脱出来。
矩阵制结构 组织结构上,既有按职能划分的垂直领导系统,又有按产品(项目)划分的横向领导关系。
H型结构 总公司、子公司体制。
模拟分权结构 介于U与M型结构之间
团队型结构 以自我管理团队SMT作为基本的构成单位。
网络型结构
二、业绩评价
1.成本中心的业绩评价
标准成本中心 所开发的产品稳定而明确
2.利润中心的业绩评价
3.投资中心的业绩评价
费用中心 产出物不能用财务指标来直接衡量,如:会计、人事、研发、广告、宣传等。
三、IT审计
1.主要内容:
IT审计程序、IT治理、系统和基础建设生命周期管理、IT服务的交付与支持、信息资产的保护、灾难恢复和业务连续性计划。
2.IT审计程序
审计准备阶段
审计合同及相关准备
IT审计计划
审计实施阶段
系统规划、分析阶段的审计
系统设计、实现阶段的审计
系统运行和维护阶段的审计
系统项目管理规范的审计
审计报告阶段
IT审计报告
IT审计跟踪
3.审计方法与工具
面谈、问卷调查、系统评审会
计算机辅助审计技术和工具
通用审计软件包
测试用例法
源代码和文档分析
4.IT审计重点环节
数据环节
内部控制环节
控制系统资源的存取。
控制系统资源的使用。
建立按用户职能分配资源的制度。
记录系统的使用情况。
确认处理过程的准确性。
管理人员对信息系统的修改。
保护信息系统免遭病毒和黑客攻击。
数据传输转移环节
四、概率统计应用
1.古典概率应用
2.随机变量及其分布
离散型随机变量、连续型随机变量、二维离散型随机变量、二维连续型随机变量
3.随机变量的数字特征
数学期望、方差
4.常用分布
0-1分布(伯努利分布)
二项分布 n重伯努利实验
几何分布
泊松分布
均匀分布
标准正态分布
5.常用统计分析方法
1)常用统计量
样本均值、样本方差、样本标准差、样本K阶原点矩、样本K阶中心距、次序统计量。
2)参数估计
点估计、区间估计
3)假设实验
4)回归分析
5)方差分析
6)正交实验法(正交表)
五、图论应用
最小生成树
求带权连通无向图的最小生成树算法有普里姆算法和克鲁斯卡尔算法。
最短路径
网络与最大流量
六、组合分析
排列和组合
抽屉原理和容斥原理
七、算法的选择和应用
1.非数值算法
1)查找算法
顺序查找
折半查找
分块查找 如索引
哈希查找
2)排序算法
插入排序、简单选择排序、冒泡排序、快速排序、希尔排序、堆排序、归并排序、外排序。
2.数值算法
误差分析
穷举搜索法
迭代法
递推法
递归法
递归法
分治法
回溯法
贪心法
动态规划法
随机模拟
八、运筹方法
确定目标、制定方案、建立模型、制订解法。
网络计划技术 关键路径、网络优化
线性规划
决策论
对策论/博弈论
排队论
存贮论
九、数学建模

-----------------------------------------------------------
-----------------------------------------------------------
第3章 操作系统基本原理
简要
1.进程
1)进程状态
进程有三态模型:就绪、运行、阻塞。
进程有五态模型:静止就绪、活跃就绪、运行、活跃阻塞、静止阻塞
静止是指进程被换到外存时的状态,不能直接调度。
活跃是指进程在内存中。
系统在运行态可以直接进入活跃阻塞状态、或通过挂起可以直接进入静止就绪状态。
挂起即调出内存。
阻塞状态需要先进入就绪状态,才能进入运行状态。
2)前趋图
描述一个程序的各部分(程序段或语句)间的依赖关系。通俗讲就是执行先后顺序。
3)PV操作
临界资源:如打印机,磁带机等
临界区:每个进程中访问临界资源的那段代码称为临界区。
信号量:一种特殊的变量
PV操作改变信号量的值。P操作对信号量减1,V操作对信号量加1。操作符即为P(S)/v(S)
互斥模型 在临界区前加P(S),后加V(S).
同步模型,在一个进程使用P(S),另一个进程使用V(S).
生产者/消费者PV原语
初始:S1=1,S2=0
生产者:
生产一个产品;
P(s1);
送到缓冲区;
V(S2);
消费者:
P(S2);
从缓冲区取出产品;
V(S1);
消费产品;
4)死锁问题
不会发生死锁的最少资源数,给所有进程分配其所需资源-1个资源,然后加1,即为不会发生死锁的资源数。
a.死锁产生的四个必要条件:互斥条件、请求与保持条件、不剥夺条件、环路条件。
b.死锁的解决办法:死锁预防(打破四大条件,资源剥夺、一次请求所有资源等)、死锁避免(安全序列,有序(顺序)资源分配法、银行家算法)、死锁的检测与解除。
3.存储管理
1)可变分区算法:首次适应算法,最佳适应算法,最坏适应算法,循环首次适应算法。
首次适应算法:从空闲区表的第一个表开始查找,把最先满足要求的空闲区分配给作业。不足:空闲区分割后会产生大量小碎片。
最佳适应算法:从空闲区表找出满足要求的且最小的空闲区,可以使碎片尽量小。
最坏适应算法:每次分配最大的空闲区,会过多分割空闲区。
循环首次适应算法:从上一次的分配位置,向下循环查找第一个足够大的空间。
2)页式存储、段式存储、段页式存储、快表。
页式存储碎片较少,但增加了系统开销,可能产生抖动现象。
段式存储的最大好处是可以充分实现共享和保护,便于动态申请内存,管理和使用统一化,便于动态链接;其缺点是有碎片问题。
3)页面置换算法
a.最优(Optimal,OPT)算法
b.随机(RAND)算法
c.先进先出(FIFO)算法,有可能会产生抖动。
d.最近最少使用(LRU)算法
4.文件
1)文件属性 R:只读文件 A:存档属性 S:系统文件 H:隐藏文件
2)文件名的组成 驱动器号/路径/文件名/扩展名
3)"/"根目录,"."当前目录,".."当前目录父目录。
5.空闲存储空间管理
常用的磁盘空闲区管理方法:空闲文件目录(空闲区表法)、空闲块链(空闲链表法)、位示图和成组链接法。
空闲块链(空闲链表法):将所有空闲空间链接成一个文件,空间的分配在链首进行。增加删除链块,效率低。
位示图:利用1bit位表示文件存储空间中1个块的使用情况。
成组链接法:是对空闲块链的改进,将空闲块分成若干组,再用指针将组和组连起来。
6.设备管理-数据传输控制方式(内存与外设间的数据传输)
程序控制方式 外设被动等待CPU询问传输情况。
程序中断方式 主动性强,外设可以主动发出完成信号。
DMA方式 直接内存存取,有专门的DMA控制器管理。
通道方式
输入输出处理机
7.设备管理-虚设备与SPOOLING技术
SPOOling技术将一台物理I/O设备虚拟为多台逻辑I/O设备,
通过在输入和输出之间增加了“输入井”和“输出井”的排队转储环节,实现设备虚拟。
实际就是通过缓冲区排队轮询使用设备。
8.微内核操作系统
有两种工作状态:核心态和用户态
微内核稳定性可靠性较高,适合分布式系统;核心态和用户态之间需要频繁切换,效率不如单体内核高。
-----------------------------------------------------------
1.概述
一个观点、两条线索:以资源管理的观点来定义操作系统,如何管理资源、如何控制程序运行。
1)操作系统主要功能:处理机管理(进程管理)、存储管理(主要是内存管理)、设备管理、文件管理、用户接口管理(程序接口/操作接口)。
2)操作系统结构
整体结构 模块组合结构或无序结构
层次结构 将操作系统分为内核和若干层级的模块
客户/服务器结构
也称微内核结构,有两种工作状态:核心态和用户态
面向对象结构
例如Windows Server中有执行体对象(进程、线程、文件、令牌)和内核对象(时钟、事件、信号)
2.进程管理
1)概念
以进程作为分配资源的基本单位。
进程的物理实体通常包括三部分:程序、数据集合、进程控制块(Process Control Block,PCB)
进程有三态模型:就绪、运行、阻塞。
进程有五态模型:静止就绪、活跃就绪、运行、活跃阻塞、静止阻塞
静止是指进程被换到外存时的状态,不能直接调度。
活跃是指进程在内存中。
2)信号量与PV操作
每次只允许一个进程访问的资源称为临界资源,进程中访问临界资源的程序段称为临界区,
进程进入临界区需要满足一定的条件。
信号量机制是一种有效的实现进程同步与互斥的工具。信号量的值通常表示系统中某类资源的数目,若它大于0,则表示当前可用资源的数量;若它小于0,表示系统中等待使用该资源的进程数目。
PV操作改变信号量的值。P操作对信号量减1,V操作对信号量加1。操作符即为P(S)/v(S)
互斥模型 在临界区前加P(S),后加V(S).
同步模型,在一个进程使用P(S),另一个进程使用V(S).
3)死锁问题
a.死锁产生的四个必要条件:互斥条件、不剥夺条件、请求与保持条件、环路条件。
b.死锁的解决办法:死锁预防(资源剥夺、一次请求所有资源等)、死锁避免(安全序列)、死锁的检测与解除。
死锁预防:破坏死锁产生的4个必要条件。
死锁预防:安全序列,如银行家算法
死锁的检测与解除:监测是否有循环等待。恢复方法有资源剥夺法,进程撤销法,进程回退法。
3)线程管理
a.线程的实现方式:
内核线程,依赖操作系统内核。
用户线程
轻权线程,操作系统支持的用户线程。
b.特点
线程基本不拥有系统资源,一个进程所拥有的资源可供它的所有线程共享。
进程间通信需要进程同步和互斥,以保证数据一致性。线程间可以通过共享数据段(如全局变量)来通信。
c.线程模型
大多数操作系统提供了用户和内核线程支持,主要有:
多对一模型 将多个用户线程映射到一个内核线程 如果一个线程阻塞了,整个进程就会阻塞。
一对一模型 将一个用户线程映射到一个内核线程 并发很高,系统所支持的最大线程数有限。
多对多模型
4)进程调度算法
a.先进先出
b.按优先级调度
c.轮转法,固定时间片轮转。
3.内存管理
系统中的内存一般分为两部分系统空间和用户空间。存储管理的目的是尽量提高内存利用效率。
1)地址变换
地址转换通常有两种方式,分别是静态重定位和动态重定位。
重定位公式:物理地址=起始物理地址+逻辑地址
静态重定位
静态地址转换是指在作业装入时一次性实现地址转换,他要求为每个程序分配一个连续的存储区,只需将程序中的逻辑地址加上分配的内存区的起始地址就得到了物理地址,无需增加硬件地址变换机构。但它要求分配一个连续的存储区,程序执行期间不能移动,且难以做到程序和数据的共享,其内存利用率低。
动态重定位
指在程序执行过程中,实现地址转换。常借助于物理重定位寄存器实现。当作业开始执行时,操作系统将该作业的内存起始地址送入重定位寄存器(基址寄存器),将程序中的逻辑地址加上重定位寄存器中的起始地址就得到了物理地址。动态重定位优点是内存移动后,只需修改重定位寄存器中的起始地址就可以了。
2)分区存储
a.存储管理演化:分区存储--->分页存储--->分段存储/虚拟存储
b.分区存储管理是支持多道程序运行的最简单的一种内存管理方式,主要有固定分区,可变分区,可重定位分区,多重分区4种方式。
c.固定分区
也称静态分区,系统运行前划分若干分区,系统运行期间不再重新划分。技术实现简单,由于每个分区只能存放一个作业,内存利用率不高,内部碎片较多。
d.可变分区
也称动态分区,在作业装入时,从可用内存中划出一块连续区域,形成新的分区;作业回收后,将内存回收,如果前后有空闲分区就合并,否则形成独立空闲分区。
可变分区算法:首次适应算法,最佳适应算法,最坏适应算法。
首次适应算法:从空闲区表的第一个表开始查找,把最先满足要求的空闲区分配给作业。不足:空闲区分割后会产生大量小碎片。
最佳适应算法:从空闲区表找出满足要求的且最小的空闲区,可以使碎片尽量小。
最坏适应算法:每次分配最大的空闲区,会过多分割空闲区。
循环首次适应算法:从上一次的分配位置,向下循环查找第一个足够大的空间。
实践中首次适应算法要好于最佳适应算法,最坏适应算法最差。
e.可重定位分区
目的是解决存储器碎片问题。基本思想是移动整理内存,合并空闲区,类似于JVM的标记整理。
f.多重分区
为一个作业分配多个分区,允许作业在运行中动态申请新空间。该分区方式一定要有动态重定位结构支持。
g.存储器保护
对作业的存储空间进行保护,常用的方法:有界地址保护和设置存储键保护。
有界地址保护又分为:界限寄存器、基址和限长寄存器两种保护方式。
界限寄存器方式:下界寄存器存放分区起始地址,上界寄存器存放下一个分区的起始地址。访问范围在下界寄存器~上界寄存器之间。
基址和限长寄存器方式:基址寄存器存放作业起始地址,限长寄存器存放作业最大偏移量。访问不能超过限长。
存储键保护方式:为同一作业的各页面所对应的内存块指定一个与其他作业不同的键,该键保存在快速寄存器和该作业的程序状态字中。程序只能访问自己的键对应的内存页。
3)段页式存储
分区管理要求把作业放在一片连续的区域中,会产生大量存储碎片,管理复杂。
段页式存储将作业的逻辑地址空间分成若干长度相等页,内存空间也分成若干与页长度相等的区域(页帧),页与页帧相对应。
a.页式存储管理
系统为每个作业建立一张页面映射表(页表),记录相应页对应的物理页帧号。
地址结构分成两部分,页号和页内位移(页内地址)。
地址变换原理:系统中设置页表寄存器,用来存放页表的起始地址和页表长度。每个进程对应的页表起始地址和长度存放在进程的PCB中,当程序被调度时,就将它们载入页表寄存器。
如果将页表存放在内存中,每次访问内存都要先访问内存中的页表,再根据形成的物理地址访问内存。为了提高地址变换效率,可以增设一个高速缓冲寄存器(称为联想存储器或块表),用以存放当前访问的页表项。
b.段式存储
按用户作业的自然段来划分逻辑空间,每个段占用连续的地址空间。
地址结构分成两部分,段号和段内地址。
段表包括:段号、段长、基址。
页是信息的物理单位,大小固定。段是信息的逻辑单位,长度不定。
c.段页式存储
将作业分成若干段,每个段包含若干页。
地址转换步骤:地址转换机构取出逻辑地址,根据页的大小将段内地址细分为页号和页内地址。
根据段号检索段表,找到该段的页表存放位置;根据页号查找页表,找出对应的页帧号;把页帧号和页内地址合并,得到物理地址。为获取数据,需要三次访问内存。
4)虚拟存储
a.程序执行的局部性原理,包括时间局部性和空间局部性,某条指令执行后,一段时间内可能还会执行;一旦程序访问量某个存储单元,其附近的存储单元也可能会被访问。
b.工作集是指在某段时间内,进程实际要访问的页面的集合。为使程序有效的运行,较少产生缺页与抖动,必须使程序的工作集全部在内存中。
c.页面置换算法
随机淘汰算法
轮转算法 按页号轮换
先进先出算法FIFO
最近最久未使用算法(Least Recently Used,LRU)
最近没有使用页面置换算法(No Used Recently,NUR)
最优置换算法 很难实现,理论算法
时钟页面替换算法(Clock) 按时钟顺序,清除时钟周期内未使用的页面
4.文件系统
1)文件逻辑结构
文件的逻辑结构分为无结构的流式文件和有结构的记录式文件。
流式文件基本单位是字节或字,适用于操作不多的文件,如源程序文件、目标代码文件等。
Unix中,所有文件都是流式文件。
记录式文件基本单位是逻辑记录,流式文件可视为记录式文件的特例,即每个记录只有1个字节。
记录式文件的三种形式:顺序存储,直接存储(索引顺序文件、用户对记录的存储不是顺序的,可以指定某一记录进行存储),
按键存取(索引文件、用户对文件的访问不是根据记录的编号或地址,而是根据记录的某项内容(关键字)来进行的)
直接文件,直接文件又称为Hash文件,常用于需要高速访问而且每次只访问一条记录的应用。
2)文件物理结构
常见的有:顺序结构、链接结构、索引结构。
顺序结构(连续结构):文件记录的插入或删除不便,只能在文件末尾进行。
链接结构(串联结构):信息存放在非连续的物理块中,类似链表。
索引结构(随机结构):为每个文件建立一个索引表,可以将文件索引表也作为一个文件(称为索引表文件)。
UNIX系统中,文件的物理结构采用直接、一级、二级、三级间接索引技术。
存取文件时需要访问两次磁盘,先访问索引表,再访问文件信息。
3)树形文件结构
UNIX和windows采用了多级树形目录结构。主文件目录称为根目录。
4)存储空间管理
常用的磁盘空闲区管理方法:空闲文件目录、空闲块链、位示图和成组链接法。
位示图:利用1bit位表示文件存储空间中1个块的使用情况。
成组链接法:是对空闲块链的改进,将一个空闲块分成若干组,再用指针将组和组连起来。
5)分布式文件系统(Distributed File System,DFS)
DFS系统中,文件的命名:
a.通过机器名+路径名来访问文件。
b.将远程文件系统安装到本机目录文件上。
c.让所有机器看起来有相同的单一名字空间。
5.作业管理
提交状态 作业由输入设备进入外存(输入井)
后备状态 作业信息全部进入外存后,系统为其创建作业控制块JCB。
执行状态
完成状态
6.设备管理
1)数据传输控制方式
设备管理的主要任务之一就是控制设备和内存或CPU之间的数据传输。
主要方式有:程序控制方式、中断方式、直接存储访问DMA方式、通道方式。
2)虚设备与SPOOLING(假脱机)技术
SPOOling技术将一台物理I/O设备虚拟为多台逻辑I/O设备,
通过在输入和输出之间增加了“输入井”和“输出井”的排队转储环节,实现设备虚拟。
实际就是通过缓冲区排队轮询使用设备。


-----------------------------------------------------------
-----------------------------------------------------------
第4章 计算机网络
摘要
1.OSI/RM七层模型
应用层 实现具体的应用功能
表示层 数据的格式与表达、加密、压缩
会话层 建立、管理、终止会话
传输层 端到端的连接 TCP、UDP
网络层 分组传输和路由选择 三层交换机路由器 ARP、RARP、IP、ICMP、IGMP
数据链路层 传送以帧为单位的信息 网桥、交换机、网卡  PPTP、L2TP、SLIP、PPP
物理层 二进制传输 中继器、集线器 以太网、令牌环、帧中继、ATM
2.网络技术标准与协议
1)基于TCP的协议:POP3,FTP,Telnet,HTTP,SMTP
基于UDP的协议:DHCP,SNMP,TFTP,DNS
基于TCP或UDP的协议:Samba,CIFS,NFS
2)DHCP协议
a.客户机/服务器模型
b.租约默认8天
c.租约过半时,客户机需要向DHCP服务器申请续租
d.当租约超过87.5%时,如果仍然没有和当初提供IP的DHCP服务器联系上,则开始联系其他DHCP服务器。
e.固定分配、动态分配和自动分配
f.169.254.X.X(Windows)和0.0.0.0(Linux)
3)DNS协议
递归查询:服务器必需回答目标IP与域名的映射关系。
迭代查询:服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其他DNS服务器的地址。
主机向本地域名服务器的查询采用递归查询。
本地域名服务器向根域名服务器的查询采用迭代查询。
3.网络拓扑结构
按分布范围分:局域网LAN、城域网MAN、广域网WAN、因特网。
按拓扑结构分:总线型、星型(单点故障)、环型。
4.网络管理
网络设备的管理
服务器的管理
资源的管理
用户的管理
常用网络命令:ping,ipconfig,nslookup(对DNS服务器进行检测和排错),tracert(列出每一步的延迟),netstat(当前端口占用情况),net user,net view
5.网络规划与设计
1)网络规划的原则:
实用性原则,开放性原则,先进性原则
2)网络设计原则:
可用性:指网络或网络设备可用于执行预期任务的时间占总时间的百分比。
可靠性:网络设备或计算机持续执行预定功能的可能性。
可恢复性:指网络从故障中恢复的难易程度和时间。
适应性:指在用户改变应用要求时,网络的应变能力。
可伸缩性:指网络技术或设备随着用户增长而扩充的能力。
3)网络实施原则:
可靠性原则、安全性原则、高效性原则、可扩展性原则
4)网络设计任务:
确定网络总体目标
确定总体设计目标
通信子网设计
资源子网设计
设备选型
网络操作系统与服务器资源设备
网络安全设计
5)网络实施步骤:
工程实施计划
网络设备到货验收
设备安装
系统测试
系统试运行
用户培训
系统转换
6)逻辑网络设计
利用需求分析和现有网络体系分析的结果来设计逻辑网络结构,得到逻辑网络设计文档。
输出内容:
逻辑网络设计图
IP地址方案
安全方案
具体的软硬件、广域网连接设备和基本服务
招聘和培训网络员工的具体说明
对软硬件、服务、员工和培训的费用初步估计
7)物理网络设计
物理网络设计是对逻辑网络设计的物理实现。
输出内容:
网络物理结构图和布线方案
设备和部件的详细列表清单
软硬件和安装费用的估算
安装日程表,详细说明服务的时间以及期限
安装后的测试计划
用户的培训计划
8)分层设计
核心层:数据交换
汇聚层:网路访问策略控制、数据包处理、过滤、寻址
接入层:向本地网段提供用户接入
6.数据交换方式
电路交换:分配固定带宽的通信线路,线路利用率低。如:电话线
报文交换:存储转发方式,用于报文短、实时性要求低的业务,如电报
分组交换:存储转发方式,在报文交换的基础上,分割分组,利用率高
ATM:异步传输模式,用于高速数据传输,价格高
IP电话技术:使用IP技术传送语音业务,使用H.323系列协议
软交换技术:将呼叫控制功能从媒体网关(传输层)中分离出来,通过软件实现基本呼叫控制功能
7.无线网
特点:移动性、灵活性、成本低、容易扩充
分类:
无线局域网WLAN 802.11 Wi-Fi
无线城域网WMAN 802.16 WiMax
无线广域网WWAN 3G/4G
无线个人网WPAN(10m以内) 802.15 Bluetooth
局域网接入方式:有接入点模式,无接入点模式(对等网络)
8.网络接入技术
有线接入:
公用交换电话网络(PSTN):电报,POS机网络
数字数据网(DDN):
综合业务数字网(ISDN):允许打电话的同时上网
非对称数字用户线路(ADSL):
同轴光纤技术(HFC):
无线接入:
IEEE 802.11(WiFi)
IEEE 802.15(蓝牙)
红外(IrDA)
WAPI
3G/4G:
WCDMA 中国联通
CDMA2000 中国电信 日韩
TD-SCDMA 中国移动
LTE-Advanced 包括TDD(时分,由TD-SCDMA发展而来)、FDD(频分,由WCDMA发展而来)
WirelessMAN-Advanced(802.16m)(WiMax)
9.网络存储技术
直连式存储DAS
网络附加存储NAS
存储区域网格SAN
IPSAN(iSCSI) SAN的低成本解决方案
10.RAID
RAID0(条块化):性能最高,并行处理,没有备份盘,损坏无法恢复。
RAID1(镜像结构):可用性和可修复性好,磁盘利用率50%
RAID3(奇偶校验并行传送):N+1模式,有固定的校验盘,坏一个盘可恢复
RAID5(分布式奇偶校验的独立磁盘):N+1模式,无固定的校验盘,坏一个盘可恢复
RAID6(两种存储的奇偶校验):N+2模式,无固定的校验盘,坏两个盘可恢复
RAID01:RAID0+RAID1
11.IPv6
a.IPv6地址长度为128位,地址空间增大了2^96倍。
b.灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPv4中可变长度的选项字段。
IPv6中选项部分的出现方式也有所变化,使路由器可以简单路过而不做任何处理,加快了报文处理速度。
c.IPv6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量。
d.提高安全性。身份认证和隐私权是IPv6的关键特性。
e.支持更多的服务类型。
f.允许协议继续演变,增加新的功能,使之适应未来技术的发展。

单播地址:用于单个接口的标识符。
任播地址:泛播地址。一组接口的标识符,相当于IPv4的广播地址。
组播地址:类似于IPv4的组播地址。
12.综合布线系统
工作区子系统
水平干线子系统
管理间子系统
垂直干线子系统
设备间子系统
建筑群子系统
13.物联网(The Internet of Things)
1)物联网的核心和基础仍然是互联网。
其用户端延伸和扩展到了任何物体与物体之间。
2)分层
感知层:识别物体、采集信息。如:二维码、RFID、摄像头、传感器。
网络层:传递信息和处理信息。通信网与互联网的融合网络、网络管理中心、信息中心和智能处理中心。
应用层:解决信息处理和人机交互问题。
3)RFID
射频识别技术(Radio Frequency Identification,RFID),又称电子标签,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。该技术是物联网的一项核心技术。
RFID的基本组成包括:标签、阅读器、天线。
4)二维码
常见的二维码,码制有:QRCode、Data Matrix、MAXI Code、Aztec、Vericode、PDF417,Ultracode、Code49、Code16K
PDF417:
若采用扩展的字母数字压缩格式,可容纳1850个字符。
若采用二进制/ASCII格式,可容纳1108个字节
若采用数字压缩格式,可容纳2710个数字。
5)M2M
M2M是将数据从一台终端传送到另一台终端,即机器对机器的对话。
广义上也可代表机器对机器、人对机器、机器对人、移动网络对机器。
6)两化融合 信息化/工业化的融合
14.云计算
狭义云计算:指IT基础设施的交付和使用模式,指通过网络以按需易扩展的方式获得所需资源。
广义云计算:指服务的交付和使用模式,指通过网络以按需以扩展的方式获得所需服务。
特点:
集合了大量计算机,规模达到成千上万。
多种软硬件技术相结合。
对客户端设备的要求低。
规模化效应。
应用:
存储服务,搜索,科学计算,安全应用,软件即服务
软件即服务SaaS
平台即服务PaaS
基础设施即服务IaaS
-----------------------------------------------------------
一、数据通信
1.信道
根据传输数据类型的不同,信道可分为数字信道和模拟信道。
逻辑信道可以是有连接的,也可以是无连接的。
1)信道的传输方式
按照数据传送的方向与时间不同,信道传输分为单工、半双工和全双工三种传输方式。
a.单工通信 也称单向通信,即只有一个通信方向,不能反方向传输。如:无线电广播/有线电广播/电视广播。
b.半双工通信 通信双方都可以发送信息,但不能同时发送,同时接收。如:对讲机。
c.全双工通信 能在两个方向上同时传输,如:电话系统,交换式以太网。
2)信道传输速率
a.模拟信号的带宽是指,该信号所包含的各种不同的频率成分所占据的频率范围,即:
信道带宽=最高频率-最低频率。通常电路制成了,信道的带宽也就决定了。
b.数字信号的带宽指,信道在一定时间内所能传输的比特数。
信道的传输速率可以用码元传输速率和信息传输速率表示。
b-1.码元传输速率
码元速率又称波特率,单位为波特/秒(Baud/s).
数字通信中,码元是数字信号的基本计量单位。一个码元就是一个数字脉冲,码元速率就是
单位时间内信号波形的变换次数。
b-2.数据传输速率
单位为比特/秒(b/s或bps)
c.计算信道传输速率有两种类型:无噪声的理想信道,有噪声干扰的实际信道。
c-1.无噪声的理想信道
奈奎斯特定理 码元速率B=2W(W带宽),数据速率(bps) R=BlogN (N:码元种类数)
c-2.有噪声干扰的实际信道
香农理论 极限数据速率C(bps)=Wlog(1+S/N) W:带宽,S:信号平均功率,N:噪声平均功率
信噪比(S/N)
分贝表示 dB=10*log(S/N)
3)时延
总时延=发送时延+传播时延+处理时延。
a.发送时延
又称传输时延,指数据帧从节点到传输媒介(信道)所需要的时间。
即从发送数据帧的第一个比特到最后一个比特发送完所需时间。
发送时延=数据帧长度(b)/信道带宽(bps)
b.传播时延
传播时延=信道长度(m)/电磁波在信道上的传输速率(m/s).
c.处理时延
节点收到信息后进行处理需要花费的时间。主要是数据在节点的缓存队列中的排队时延。
当网络通信量很大,会产生队列溢出,使分组丢失,相当于排队时延无穷大。
4)传输质量
传输质量指数字通信系统的可靠性,通常用误码率来表示。
误码率=发生错误的位数/传输总位数。一般要求误码率小于10^-6,即每1兆位允许错1位。
当误码率高于某一数值时,可采用差错控制方法进行检错和纠正。
2.数据传输技术
并行传输,串行传输。
并行传输:一次使用n条导线同时传输n个比特,速度快。
串行传输又分同步传输,异步传输。
异步传输不需要传输时钟脉冲,同步传输依赖时钟同步。
3.数据传输形式
基带传输,频带传输,宽带传输。
基带传输:信源将模拟信号编码为数字基带信号,不经过调制直接传输。
频带传输:将基带信号调制成模拟信号后,在模拟信道中传输。
宽带传输:将信道划分为多个子信道,实现多路复用,传输距离比基带远。
3.数据编码与调制
1)模拟信道传输模拟数据
调制方式:调幅(AM),调频(FM),调相(PM).实现信道复用。
2)数字信道传送模拟数据
需要将模拟信号转化为数字信号,这个过程称为数字化。
脉码调制PCM,是最常用的一种数字化技术。
脉码调制过程取样,量化,编码。
3)模拟信道传送数字数据
调制方法:幅移键控ASK,频移键控FSK,相移键控PSK。
4)数字信道传送数字数据
常见编码方法:归零性编码,双相码,极性编码,曼彻斯特编码,差分曼彻斯特编码。

二、网络体系与协议
1.OSI/RM模型
物理层 比特流传输
数据链路层 已帧为单位,流量控制和差错控制
网络层 实现路由选择、拥塞控制、多网络互连
传输层 是通信子网与资源子网的桥梁 提供端到端传输
会话层 管理数据交换过程
表示层 处理用户信息的表示问题,如格式、编码、压缩等
应用层
2.TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)模型
网络接口层(物理层、数据链路层)
网络互连层/网际层(网络层)
传输层(传输层)
应用层(会话层、表示层、应用层)
3.应用层协议
1)文件传输协议(File Transport Protocol,FTP)
FTP在客户机和服务器之间建立两条TCP链接,一条用于传送控制信息(端口21),
另一条用于传送文件内容(端口20)。FTP的传输模式包括Bin(二进制)和ASCII(文本文件)两种,
除了文本文件之外,都应该使用二进制模式传输。
2)简单文件传输协议(Trivial File Transfer Protocol,TFTP)
适合简单的小文件传输,TFTP建立在UDP之上,提供不可靠的传输服务,不提供存取授权和
认证机制,使用超时重传保证数据到达。
3)简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)
4)动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)
DHCP建立在UDP基础之上。
5)Telnet(远程登录协议)
Telnet建立在TCP之上。
6)简单网络管理协议(Simple Network Management Protocol,SNMP)
SNMP是一系列网络管理规范的集合,是网络管理领域的事实标准。
4.网络层协议
1)IP协议
IP所提供的服务是无连接不可靠的,它将差错检测和流量控制交给了其他协议管理。
提供了数据分块,数据重组,分组分发功能。
2)ICMP因特网控制报文协议(用于发送差错报文的协议),
IGMP因特网组管理协议(组播支持)
5.网络地址
1)IP地址
IPv4地址有32bit位,IPv6有128bit位。
IP地址由网络号和主机号两部分组成。
A类以0开头,高8位为网络号,后24位为主机号 1000万台。
B类以10开头,高16位为网络号,后16位为主机号 6万台。
C类以110开头,高24位为网络号,后面8位为主机号。
D类以1110开头,也称组播地址
E类以11110开头,保留地址,尚未使用。

不在公网使用的IP地址
A类 10.0.0.0~10.255.255.255 网络号10 网络数1
B类 172.16.0.0~172.31.255.255 网络号172.16~172.31 网络数16
C类 192.168.0.0~192.168.255.255 网络号192.168.0~192.168.255 网络数255
1-128-192-224-240
2)子网划分
将IP地址分为:网络号+子网号+主机号。
子网通过子网掩码进行标识。
判断两个IP是否属于同一个子网:将两个IP分别与子网掩码进行与运算,结果相等,则证明在同一个子网中。
3)超网
无分类域间路由(Classless InterDomain Routing,CIDR):
a.CIDR把32位的IP地址分为两部分,网络前缀+主机号。
eg:128.2.3.4/20 网络前缀为高20位,主机号为低12位
b.在路由表中利用CIDR地址块来查找目的网络,称为路由汇聚,也称超网。
5.IPv6
1)IPv6采用128位地址,16位为一段,共8段,每段用":"分隔。
2)表示方法
2001:da8:d001:1:0:0:0:1(前导0缺省)
2001:da8:d001:1::1(::缺省)
fe80::200:5efe:58.22.23.12(内嵌IPv4地址表示法)
3)IPv6支持单播、多播(组播)、泛播。
4)IPv6优势
IPv6具有更大的地址空间,128位。
IPv6一开始就支持路由汇聚原则,可以使用更小的路由表。
IPv6增加了增强的组播支持和对流的支持
IPv6加入了对自动配置的支持,是对DHCP协议的改进和扩展。
IPv6具有更高的安全性。
4)IPv4到IPv6的过渡技术
a.双协议栈技术。节点同时支持IPv4和Pv6协议栈
b.隧道技术。在IPv4网络中部署隧道,实现在IPv4网络上承载IPv6业务。
c.NAT-PT技术。通过NAT-PT网关连接IPv4和IPv6网络。

三、局域网LAN与广域网WAN
1.局域网技术
拓扑结构主要有:星型结构、总线结构、环型结构、网状结构。
2.以太网技术
1)以太网采用的存取方法:带冲突检测的载波监听多路访问(CSMA/CD)技术,它属于竞争式介质访问控制协议。
CSMA/CD基本原理:每个节点都共享网络传输信道,每个节点要发送数据之前,都会检测信道是否空闲,
如果空闲则发送,否则就等待;在发送出信息后,则对冲突进行检测,当发现冲突,取消发送。
2)载波监听算法
a.非坚持型监听算法 信道空闲时(立即发送)   信道忙时(等待N,再监听) 特点(减少冲突,信道利用率降低)
b.1-坚持型监听算法 信道空闲时(立即发送)   信道忙时(继续监听) 特点(提高信道利用率,增大了冲突)
c.P-坚持型监听算法 信道空闲时(以概率P送) 信道忙时(继续监听) 特点(有效平衡,但复杂)
注:非坚持型算法中N可取任意随机值,P-坚持型监听算法中,信道空闲将以概率(1-P)延迟一个时间单位(该时间单位为网络传输时延)
3)冲突检测
a.载波监听只能减少冲突概率,但无法完全避免冲突。为了高效的实现冲突检测,CSMA/CD中采用了“边发边听”的冲突检测方法。
b.边发边听原理:即发送者一边发送数据,一边自己接收回来,如果发现结果出现不同,马上停止发送;并发送冲突信号,这时所有节点都会收到
阻塞信息,并随机等待一段时间之后再重新监听。
c.采用边发边听,对于基带系统,检测冲突所需花费最长时间是网络传播延迟(最大段长/信号传播速度)的两倍;
对于宽带系统,需要网络传播延迟的4倍时间,这个时间也称为冲突窗口。
d.为保证在信息发送完成之前能够检测到冲突,发送的时间应该大于等于冲突窗口,
基带系统的最小帧长=2*(网络数据速率*最大段长/信号传播速率)
e.全双工以太网,不受上述CSMA/CD约束。
4)帧结构
a.IEEE 802.3MAC帧结构
前导码(7) 帧起始定界符SFD(1) 目的地址(6) 源地址(6) 长度(2) 帧头(8) 发送的数据(38-1492) 帧校检序列(4)
b.以太网帧结构
前导码(8) 目的地址(6) 源地址(6) 数据类型(2) 发送的数据(46-1500) 帧校检序列(4)
5)传输介质
常见的传输介质:同轴电缆、双绞线、光线。
命名样式:10Base-T
速率:10,100(快速以太网),1000(千兆以太网),10000(10G)
传输机制:Base(基带),Broad(宽带)
传输介质:T(非屏蔽双绞线),F(光线),C(屏蔽双绞线),LX(多模光纤),SX(单模光纤),数字(同轴、最大段长)
3.无线局域网技术
WLAN主要运用射频(Radio Frequency,RF)技术取代了线缆。
1)拓扑结构
无线局域网分为两大类:有接入点模式(基础设施网络)/无接入点模式(Ad hoc网络)
a.基础设施网络
通过接入点(Access Point,AP)互联连接,AP作用类似于网桥,负责将802.11与802.3的MAC协议互相转换。
无线路由(胖AP)=路由器+无线AP(瘦AP)
b.Ad hoc网络
通过无线网卡直接点对点连接。
2)IEEE 802.11标准
IEEE 802.11是无线局域网标准,包括802.11a、802.11b、802.11g等。
IEEE 802.11在MAC层采用载波侦听多路访问/冲突避免协议CSMA/CA,即采用主动避免碰撞而非被动侦测的方式解决冲突问题。
802.11h是802.11a的扩展、两者都运行频段为5GHZ。
802.11e可以满足Qos要求。
802.3以太网协议,采用CSMA/CD访问方式
3)3G无线标准
a.多址技术分为频分多址FDMA,时分多址TDMA,码分多址CDMA
FDMA将不同的频段分给不同的用户;
TDMA将不同的时间分给不同的用户;
CDMA所有用户在同一时间,同一频段上,根据不同的编码获得业务信道。
b.宽频CDMA(WCDMA)
能够架设在全球移动通讯系统(Global System for Mobile Communications,GSM)上,联通使用WCDMA制式的3G业务标准。
c.CDMA2000
高通提出,中国电信使用CDMA2000制式的3G业务标准。
d.TD-SCDMA
中国大唐电信提出,中国移动使用TD-SCDMA制式的3G业务标准。
4)4G无线标准
4G下载速度达到100Mbps,上传20MBps
4G标准包括两大方向LTE(Long Time Evolution)与WIMAX(无线城域网技术)
LTE又分为TD-LTE(时分双工)和FDD-LTE(频分双工)
TD-LTE采用OFDM(正交频分复用)技术,TD-SCDMA是CDMA(码分多址)技术,两者没有关系。
5)WiMAX
Worldwide Interoperability for Microwave Access全球微波互联接入。
WiMAX的另一个名字是802.16.
WiMAX在3G,4G都被纳入。
802.16工作的频段采用的是无需授权频段,范围在2GHZ~66GHZ。
WiMAX优点:对于已知干扰,窄的信道带宽有利于避开干扰,节省频谱资源。灵活的带宽调整能力,有利于运营商和用户协调频谱资源。
可以实现50公里的无线信号传输距离,只需少数基站即可以实现全城覆盖。
WiMAX不足:移动性先天缺陷,无法满足50Km/h下的网络无缝连接。
6)5G
5G或5G技术)是最新一代蜂窝移动通信技术,也是即4G(LTE-A、WiMax)、3G(UMTS、LTE)和2G(GSM)系统之后的延伸。
5G网络的主要优势在于,数据传输速率远远高于以前的蜂窝网络,最高可达10Gbit/s,比当前的有线互联网要快,比先前的4G LTE蜂窝网络快100倍。
另一个优点是较低的网络延迟(更快的响应时间),低于1毫秒,而4G为30-70毫秒。
4.广域网技术
包括:同步光纤网络,数字数据网,帧中继,异步传输模式技术等。
1)同步光纤网络
同步光纤网络(Synchronous Optical Network,SONET)和同步数字层级(synchronous Digital Hierarchy,SDH)是一组用于光纤信道上的同步数据传输标准协议。
目前广泛使用点对点协议(Point to Point Protocol,PPP)对IP数据包进行封装,并采用高级数据链路控制(High-Level Data Link Control,HDLC)的帧格式。PPP提供多协议封装、差错控制、链路初始化控制等功能。HDLC帧格式负责PPP封装的IP数据帧的定界。
2)数字数据网(Digital Data Network,DDN)
DDN采用交叉连接技术和时分复用技术。
3)帧中继
运行在OSI/RM的物理层和数据链路层,是一种数据包交换技术,是X.25网络的简化版。
帧中继不提供流量控制和纠错功能,采用虚电路技术。
4)异步传输模式(Asynchronous Transfer Mode,ATM)
ATM是以信元为基础的一种分组交换和复用技术。
信元不仅是传输的基本单位,也是交换的信息单位,是虚电路式分组交换的一个特例。
可应用于局域网和广域网。

四、网络互连与常用设备
1.常用设备
中继器:物理层,信号中继,扩展传输距离,使用个数有限(以太网中最多4个)
网桥:数据链路层,根据物理地址进行网络间地址转发。
路由器:网络层,根据ip地址进行转发。
网关:高层(4-7层),连接网络层以上执行不同协议的子网。
集线器:物理层,多端口中继器,平分带宽。
二层交换机:数据链路层,多端口网桥。
三层交换机:网络层,带路由功能的二层交换机。
多层交换机:高层(4-7层),带协议转换的交换机。
2.交换技术
通过采用交换技术,使通信传输线路为各个用户公用,提高设备利用率。
交换技术分类:电路交换,报文交换和分组交换。
电路交换:在数据传送之前必须设置一条通路。在线路释放之前,该通路将由一对用户独占。
报文交换:采用存储转发方式,传送报文时,同时只占用一段通道。在交换节点中需要缓冲存储,
报文需要排队。因此报文交换不能满足实时通信的要求。
分组交换:和报文交换方式类似,但报文被切分成若干分组传送,并规定了最大的分组长度。
数据报分组交换:目的地需要重新组装报文。
虚电路分组交换:数据传输之前必须通过虚呼叫设置一条虚电路。
场景:
对于交互式通信来说,报文交换是不适合的。
对于较轻和间歇式负载来说,电路交换是最适合的,可以通过电话拨号线路来实行通信。
对于较重和持续的负载来说,使用租用的线路以电路交换方式通信是合适的。
对于必须交换中等数据到大量的数据时,可用分组交换方法。
3.路由技术
工作在Internet上的路由器也称为IP网关。
1)路由协议分类:内部网关协议(Interior Gateway Protocol,IGP)、外部网关协议(Exterior Gateway Protocol,EGP)和
核心网关协议(Gateway Gateway Protocol,GGP)三大类。
a.内部网关协议。内部网关协议是指在一个自治系统(Autonomous System,AS)内运行的路由选择协议,包括:RIP(Routing
Information Protocol,路由信息协议)、OSPF(Open Shortest Path First,开放式最短路径优先)、
IGRP(Interior Gateway Routing Protocol,内部网关路由协议)和EIGRP(Enhanced IGRP,增强型IGRP)。
b.外部网关协议。在两个AS之间使用的路由选择协议,最重要的是BGP(Border Gateway Protocol,边界网关协议)。
c.核心网关协议。GGP
2)路由算法分类:
a.距离向量协议。如:RIP。
b.链路状态协议。如:OSPF。
c.平衡型协议。

五、网络工程
网络工程可以分为:网络规划,网络设计,网络实施三部分。
1.网络规划
网络规划应该以需求为基础,同时考虑技术和工程的可行性。
网络规划包括网络需求分析,可行性分析和对现有网络的分析与描述。
1)网络需求分析
功能需求、通信需求、性能需求、可靠性需求、安全需求、运行与维护需求、管理需求(用户管理,
资源管理,配置管理,性能管理,网络维护)。
2)对现有网络的分析与描述
包括:
服务器的数量和位置。
客户机的数量和位置。
同时访问的数量。
每天的用户数。
每次使用的时间。
每次数据传输的数据量。
网络拥塞的时间段。
采用的协议。
通信模式。
有效保护用户原始投资的措施:
不要推倒重来,要基于现有设备的基础上进行升级和改造。
将现有的设备降级使用(如:将原有核心层设备降级为分层级使用等).
2.网络设计
首先要确定网络总体目标和设计原则,然后设计网络的逻辑结构,再设计网络的物理结构。
1)网络设计的任务
a.确定网络总体目标
b.确定网络总体设计原则
c.通信子网设计
通信子网设计包括拓扑结构与网络总体规划、分层的设计,以及远程接入访问的设计。
其中拓扑结构与网络总体规划是整个网络设计的基础,通常从费用、灵活性、可靠性三方面综合考虑。
d.资源子网设计
资源子网设计主要考虑服务器的接入和子网连接的问题。
e.设备选型
f.网络操作系统与服务器资源设备
g.网络安全设计
基本原则:木桶原则、整体性原则、有效性与实用性原则、等级性原则、设计为本原则、
自主和可控性原则、安全有价原则等。
设计与实施步骤:确定面临的攻击和风险,明确安全策略,建立安全模型,选择并实现安全服务,
对安全产品的选型进行测试。
2)网络分层设计
分层设计中引入了三个关键层概念:核心层,汇聚层,接入层。
接入层允许终端用户连接到网络,接入层交换机特点:低成本高端口密度。
汇聚层 完成网络访问策略控制,数据包处理,过滤,寻址,及其他数据处理任务。
汇聚层交换机需要较高的性能,更少的接口和更高的交换速率。
纯粹的理论分层设计中,核心层只完成数据交换的特殊任务。
需要满足HA需求,通常采用双星(树)结构,即采用两台同样的交换机,与汇聚层交换机分别连接,
并使用链路聚合技术实现双机互联。
3.网络实施
步骤:
1)工程实施计划
2)网络设备到货验收
3)设备安装
4)系统测试
5)系统试运行
6)用户培训
7)系统转换 直接转换/并行转换/分段转换

-----------------------------------------------------------
-----------------------------------------------------------
第5章 数据库系统
概述
1.三级模式-两级映射
外模式-用户视图-用户级数据库
外模式与概念模式映射
概念模式-DBA视图-概念级数据库
概念模式与内模式映射
内模式-内部视图-物理级数据库
2.数据库设计过程
需求分析
输入:当前和未来应用的数据要求、数据处理要求
输出:数据流图、数据字典、需求说明书
概念结构设计
输入
输出:ER模型 用户的数据模型(即与DBMS无关的概念模型)
逻辑结构设计
输入:转换规则、规范化理论
输出:转化为关系模式 视图、完整性约束及应用处理说明书
物理设计
输入:DBMS特性、硬件、OS特性
3.E-R模型
1)矩形:实体,菱形:联系,椭圆:属性
1:1,1:N,M:N
2)集成的方法:
多个局部E-R图一次集成。
逐步集成,用累加的方式一次集成两个局部E-R。
3)集成产生的冲突及解决办法:
属性冲突:包括属性域冲突和属性取值冲突。
命名冲突:包括同名异义和异名同义。
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中
所包含的属性个数和属性排列次序不完全相同。
4.关系代数
并∪、交∩、差-、笛卡尔积X(不去掉重复列)
投影π(选列)、选择δ(查询)、连接(互连三角,join)(自然连接会去掉重复列)。
除法运算
设两个关系R和S的元数分别为r和s(r>s>0),那么R/S是一个(r-s)元的元组的集合。
R/S是满足下列条件的最大关系,其中每个元组t与S中每个元组u组成的新元素必在关系R中。
通俗解释:
1)有关系RS(学生名,课程名)与关系S(课程名)
2)除法的结果Z,应有1个属性,这个属性是学生名。
3)Z*S的所有记录,均在RS关系中。
实质,是获取选择了所有课程的学生名。
5.规范化理论
1)函数依赖
部分函数依赖(A+B→C)、传递函数依赖(A→B→C)
不属于任何候选键的属性称非主属性。
2)规范化的价值
非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常。
3)候选键
超键:唯一标识元组
候选键:消除多余属性的超键
主键:任选一个候选键
外键:其他关系的主键
候选键的计算:
a.用有向图表示函数依赖关系。
b.找出入度为0的属性,以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有节点,
则该属性集即为关系模式的候选键
c.若入度为0的属性集不能遍历图中所有节点,则尝试加入中间节点(即有入度也有出度)进行遍历.
4)范式
第一范式1NF:在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式
第二范式2NF:满足第一范式,且每一个非主属性完全依赖主键(即不存在部分依赖)时,则称R是第二范式。
第三范式3NF:满足1,2范式,且没有非主属性传递依赖于码时,则称R是第三范式。
BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
第二范式 消除非主属性对候选键的部分依赖。
第三范式 消除非主属性对候选键的传递依赖。
BCNF 消除主属性对候选键的传递依赖。
5)模式分解
保持函数依赖的分解/无损分解
代数法:如果R的分解为{R1,R2},则无损分解的必要条件为:
R1∩R2→(R1-R2)或R1∩R2→(R2-R1)
即:{R1(AB),R2(BC)}
R1∩R2=B, R1-R2=A, R2-R1=C
如果B能决定A或C,则是无损分解。
6.并发控制
事务ACID:原子性、一致性、隔离性、持续性。
存在问题:丢失更新、不可重复读、读脏数据
封锁协议:
一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改。
二级封锁协议。满足一级封锁协议,事务T在读数据R之前先对其加S锁,读完后即可释放S锁。
可防止丢失修改,还可防止读脏数据。
三级封锁协议。满足一级封锁协议,事务T在读数据R之前先对其加S锁,直到事务结束后才释放                      S锁。可防止丢失修改,防止读脏数据,防止不可重复读。
两段锁协议。可串行化的。防止发生死锁。
死锁问题:预防法、死锁的解除法。
7.数据库完整性约束
实体完整性约束 主键不能为空,不能重复。
参照完整性约束 外键完整性,允许为空,但外键必须存在。
用户自定义完整性约束 如年龄0~150
触发器:应对复杂的约束。
8.数据库安全
用户标识和鉴定 最外层的安全保护措施,可以使用用户账号、口令及随机数检验等方式。
存取控制 对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限。
密码存储和传输 对远程终端信息用密码加密传输。
视图的保护 对视图授权
审计 使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来。
9.数据备份
1)冷备份也称为静态备份,需要停止数据库。
热备份也称动态备份,不需要停止数据库。
完全备份:备份所有数据。
差量备份:仅备份上一次完全备份之后变化的数据。
增量备份:备份上一次备份之后变化的数据。
静态海量转储:在系统无运行事务时进行,每次存储全部数据库。
静态增量转储:在系统无运行事务时进行,每次只转储上一次转储后更新过的数据。
动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
动态增量转储:转储期间允许对数据库进行存取或修改,每次转储上一次转储后更新过的数据。
2)故障恢复
最常用的恢复方法是转储和登记日志文件。
故障关系                        故障原因                 解决方法
事务本身的可预期故障    本身逻辑                  在程序中预先设置rollback语句
事务本身的不可预期故障 算术溢出等               由DBMS的恢复子系统,撤销事务
系统故障                       系统停止运转            通常使用检查点法(不影响外存上的数据)
介质故障                       外存被破坏                一般使用日志重做业务
10.分布式数据库系统
层次:
全局外模式
全局概念模式
分片模式
分布模式
局部概念模式
局部内模式
局部数据库

全局DBMS
局部DBMS

分布透明性:分片透明、位置透明性、局部数据模型透明性
分片:水平分片、垂直分片、混合分片
分布式数据库管理系统组成:LDBMS、GDBMS、全局数据字典、通信管道CM
分布式数据库管理系统结构:全局控制集中的DDBMS、全局控制分散的DDBMS、
全局控制部分分散的DDBMS
11.数据库的优化
集中式数据库优化:
硬件系统:CPU、内存、I/O,网络
软件系统:参数,如进程优先级,CPU使用权,内存使用
数据库设计:表的规划 表的规划、建立物化视图
索引
SQL优化 以不相干子查询代替相干子查询、只查询需要的列、用IN代替OR、尽可能减少多表查询
应用软件:数据库连接池
对于分布式数据库,还应考虑通信代价的优化,包括:全局查询树的变换,多副本策略,查询树的分解,半连接与直接连接。
12.数据仓库
数据仓库是面向主题的,集成的,相对稳定的(非易失的),反映历史变化(随时间变化)。
数据挖掘方法:决策树、神经网络、遗传算法、关联规则挖掘算法
数据挖掘分类:
关联分析:挖掘出隐藏在数据间的相互关系。
序列模式分析:侧重点是分析数据间的前后关系(因果关系)。
分类分析:为每一个记录赋予一个标记再按标记分类。
聚类分析:分类分析法的逆过程。
13.联邦数据库FDBS
联邦数据库FDBS是一个彼此协作却又相互独立的成员数据库CDBS的集合。
特征:分布性、异构性、自治性、透明性。
分类:紧耦合、松耦合。
14.NoSQL(Not Only SQL)
关系数据库                          NoSQL数据库
并发支持       支持并发、效率低                并发性能高
存储与查询    关系表方式存储、SQL查询   海量数据存储、查询效率低
扩展方式       向上扩展                             向外扩展
索引方式       B树、哈希等                        键值索引
应用领域       面向通用领域                       特定应用领域
不足:
成熟度不够,大量关键特性有待实现。
开源数据库产品的支持力度有限。
数据挖掘与商务智能支持不足,现有的产品无法直接使用NoSQL数据库
NoSQL数据库专家较少,大部分都处于学习阶段。
15.反规范化技术
增加派生性冗余列(如总价)、增加冗余列、重新组表、分割表
16.大数据基本概念
大数据:PB级或以上、深度分析(关联分析、回归分析)、集群平台
大数据处理系统的特征:
高度可扩展性、高性能、高度容错、支持异构环境、较短的分析延迟、易用且开放的接口、
较低成本、向下兼容性。


一、数据库模式
1.三级模式
数据库系统由外模式、概念模式、内模式三级构成。
外模式也称为子模式或用户模式 用户级数据库 用户视图
概念模式也称为模式或逻辑模式 概念级数据库 DBA视图
内模式是数据物理结构和存储方式的描述。 物理级数据库 内部视图
2.两级独立性
物理独立性/逻辑独立性
物理独立性指当数据的物理存储改变时,不影响应用程序。物理独立性存在于内模式和概念模式之间的映射转换。
逻辑独立性指当数据的逻辑结构改变时,不影响应用程序。逻辑独立性存在于外模式和概念模式之间的映射转换。
二、数据模型
1.分类
数据模型包括:数据结构、数据操作、数据约束。
数据模型分为两大类:概念数据模型(实体联系模型,E-R图)和基本数据模型。
常见的基本数据模型有:层次模型、网状模型、关系模型、面向对象模型。
层次模型采用树形结构保存数据,已经淘汰。
网状模型采用有向图表示实体类型和实体间的关系;多对多查询效率高。
2.关系模式
关系模式通常记为R(A1,A2,...An),R为关系名,A1A2An为属性名。
1)关系运算
交、差、并、笛卡尔积、选择、投影、连接、除法运算。
a.投影:
(1)选择出指定的属性,形成一个可能含有重复行的表。
(2)删除重复行,形成新的关系。
b.选择:
选择符合关系的元组(行)
c.连接
用等号条件进行的连接,称为等值连接。
等值连接后去掉重复的属性(列),称为自然连接
d.除
广义笛卡儿积的逆运算。
2)元组演算

3.规范化理论
1)使用图示法求取侯选键
使用有向图表示属性间的依赖,如果从某个属性出发,能遍历整个图,则这个属性是侯选键。
2)范式(Normal Form,NF)
a.第一范式(1NF),所有属性都不可以在分。
b.第二范式(2NF),每个非键属性都完全依赖于候选键。
c.第三范式(3NF),没有非键属性传递依赖于候选键。
d.BCNF
三、数据库访问接口
常见的数据库访问接口有专用调用、开发数据库互连(Open DataBase Connectivity,ODBC)、
Java数据库连接(Java DataBase Connectivity,JDBC)等。
ODBC与JDBC都基于X/OPEN SQL

四、数据库控制功能
1.并发控制
1)事务的基本概念 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)
2)封锁协议
a.数据库的并发控制主要是采用封锁技术,主要有两种锁:X封锁和S封锁。
排他型封锁(X锁) 写锁
共享型封锁(S锁) 读锁
脏读:读取到尚未提交的数据。
b.常见的封锁协议
一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改。
二级封锁协议。满足一级封锁协议,事务T在读数据R之前先对其加S锁,读完后即可释放S锁。
可防止丢失修改,还可防止读脏数据。
三级封锁协议。满足一级封锁协议,事务T在读数据R之前先对其加S锁,直到事务结束后才释放                      S锁。可防止丢失修改,防止读脏数据,防止不可重复读。
两段锁协议。分两个阶段对数据进行加锁/解锁操作。
扩展阶段:对数据进行读、写之前,首先要获得锁。
收缩阶段:在释放一个锁后,事务不能再申请其他锁。
两段锁协议可能导致死锁。
如果所有事物都遵守两段锁协议,则这些事务是可串行化的。
死锁解决方法:预防法(顺序申请法、一次申请法)、解除法(包括死锁检测程序和解锁程序)
2.数据库性能优化
1)优化方面:硬件升级、数据库设计、检索策略、查询优化等。
2)数据库设计优化:逻辑设计优化、物理设计优化
3)查询优化:建立物化视图,以不相干子查询(M+N次)代替相干子查询(M*N)次。
3.数据库的完整性
数据库的完整性指数据库中数据的正确性与相容性。
数据库完整性由各种各样的完整性约束来保证。
1)完整性约束条件
静态约束包括静态属性级约束(对数据类型、数据格式、取值范围、空值等的约束)、
静态元组约束、静态关系约束(实体完整性约束、参照完整性约束、函数依赖约束、统计约束)。
动态约束包括动态属性级约束(修改属性定义、属性值时的约束)、动态元组约束、动态关系约束。
2)实体完整性
实体完整性要求主键不能为空,不能重复。
3)参照完整性
通过外键实现,外键的值必须是另一个表S中主键的值,不能是S中不存在的值。
删除关系:
级联删除:删除被参照关系的元组,参照的表也会删除。
受限删除:DBMS默认的删除方式。删除被参照关系的元组时,如果有其它外键引用了它,则不允许删除。
置空删除:删除被参照关系的元组,将相应的外键置空。
插入关系:
受限插入:外键的值必须是另一个表的主键才可以插入,不能插入其他值。
递归插入:先插入主键表,在插入外键表。
4)用户定义完整性
完整性规则的五元组表示(D,O,A,C,P)
D表示约束作用的数据对象
O表示触发完整性检查的数据库操作
A表示数据对象必须满足的断言或语义约束
C表示选择A作用的数据对象值的谓词
P表示违反完整性约束时触发的过程。
5)触发器
触发器提供了完整性和安全性保护功能。
4.数据库安全性
1)用户标识和鉴别
口令认证、强身份认证(数字证书、智能卡、指纹识别等)
2)数据授权
基于功能角色的操作权限控制。
对数据对象的访问控制(数据库级、关系级、元祖级、属性级)
3)视图
通过视图保护数据。
4)审计与跟踪
审计:将系统的运行状况和用户访问行为以日志形式记录下来,根据日志进行稽查。
跟踪:审计与跟踪的目的不同,跟踪是为了满足系统调试的需要。
根据审计对象不同分为用户审计和系统审计。
用户审计,审计用户对关系的访问行为。
系统审计,审计系统一级的命令和数据对象使用情况。
5.数据备份与恢复
按备份的实现方式分为:物理备份与逻辑备份。物理备份又分为冷备份与热备份。
按备份数据量分为:完全备份、增量备份、差异备份。差异备份指备份上一次<完全>备份后,变化的数据。
1)物理备份
在操作系统层面进行的备份,分为冷备份与热备份。
2)逻辑备份
逻辑备份指利用DBMS自带的工具软件进行的备份,如Oracle的exp/imp工具。
3)日志文件
先写日志文件,再写数据库。
4)数据恢复
6.数据中心建设
入手方面:
1)构建专用存储系统,集中存储数据。
2)构建统一的数据库集中运行平台,提高数据处理能力。
3)建立多种系统应用平台,提高集中运行平台的适应性。
4)整合优化现有计算机设备资源,提高集中管理和应用水平。
5)扩展数据备份系统,提高系统可靠性。
6)建立集中运行管理机制,实现设备和系统资源的统一管理。

五、数据库设计与建模
1.数据库设计
分为5个阶段:规划、需求分析、概念设计、逻辑设计、物理设计。
规划阶段,进行建立数据库的必要性和可行性分析。
需求分析,确认需求、分析收集数据、生成需求说明书,建立数据字典,设计元数据。
输入:当前和未来应用的数据要求、数据处理要求
输出:需求说明书
概念设计,建立数据概念模型,E-R图。
先设计局部视图(确定局部视图范围、识别实体及其标志、确定实体间联系)、再进行视图集成(同名异义、异名同义、同名不同层次、虽同名同义,但对象联系测度不同(1:1,1:N,N:N))
输入:当前和未来应用的数据要求、数据处理要求、需求说明书
输出:用户的数据模式(与DBMS无关的概念模型)
逻辑设计,将概念模型(E-R图),转换为逻辑模型(用所选的DBMS所支持的数据模型展示)。
包括一对一联系、一对多联系、多对多联系、多元联系、自联系(如parentID)、弱实体类转换(例如亲属关系依赖于员工关系)
逻辑模型的优化包括:改善数据库性能(减少连接运算、减少关系大小及数据量、使用快照)、节省存储空间(减少属性占用空间、采用假属性)
输入:用户的数据模式、转换规则、规范化理论、DBMS特性
输出:视图、概念模型及应用处理说明书
物理设计。了解应用要求,熟悉DBMS性能,了解外存设备特性。
输入:视图、概念模型及应用处理说明书、DBMS特性、硬件、OS特性
输出:存储模式

2.实体联系模型(E-R图)
E-R图包括三个要素:实体、属性、实体间的联系。
1)联系的类型
一对一联系、一对多联系、多对多联系。
2)概念模型设计中,一般先设计各个子系统的E-R图,再将其集成总的E-R图。
集成时,各个局部E-R图可能存在冲突,主要有三类:属性冲突、命名冲突、结构冲突。
3)E-R图向关系模式的转换

六、分布式数据库系统
1.分布式数据库的体系结构
全局外模式
全局概念模式
分片模式
分布模式
局部概念模式
局部内模式
2.数据分片
1)分片类型
水平分片 分片条件是本关系中的属性值
垂直分片
导出分片 也称导出水平分片,分片条件不是本关系中的属性值,而是其他关系的属性。
混合分片 水平分片+垂直分片
2)分布的透明性
分片透明性
位置透明性
局部数据模型透明性
3.分布式查询优化
具体方法有:全局查询树的变换、副本的选择与多副本的更新策略、查询树的分解、半连接与直接连接等。
4.优点:可靠容错、可扩充性好、可改善性能、自治性好
缺点:异构数据库集成难度大、数据分布设计不合理会影响性能。
5.分布式数据库系统目标
局部结点自治性
不依赖中心节点
能连续操作(分片动态插拔)
位置独立性
分片独立性
数据复制独立性
支持分布式事务(恢复控制、并发控制)
具有硬件独立性、操作系统独立性、网络独立性、DBMS独立性(支持异构)
支持分布式查询处理(局部查询、远程查询、全局查询) 局部查询和远程查询涉及单个节点、全局查询涉及多个节点。
6.分布式数据库管理系统DDBMS
包括LDBMS、GDBMS、全局数据字典、CM通信管理四部分。
7.分布式数据库与并行数据库区别
应用目标不同。并行数据库目标是充分发挥并行计算优势、提高整体性能。
实现方式不同。并行数据库各节点间采用高速通信网络互联,数据传输代价低。
各节点地位不同。并行数据库各节点没有全局应用与局部应用的概念。
七、数据仓库
数据仓库是面向主题的、集成的、相对稳定的、且随时间变化的数据集合,用于支持管理决策。
1.OLAP
1)OLAP操作
钻取、切片、切块、旋转。
钻取:分上钻(更粗粒度)、下钻(更详细的数据)
切片/切块:选取的数据只有两个维度,称为切片;有三个及以上维度的称为切块。
旋转:变换维度方向,如行列互换等。
2)实现方法
根据存储数据的方式不同、分为关系型OLAP(Relational OLAP,ROLAP)、多维型OLAP(MOLAP)和混合型OLAP(HOLAP).
ROLAP分为两类表:事实表和维表。事实表和维表通过主键外键连接在一起,形成星型结构。对于复杂的维,为避免冗余数据过多,可以拆分成多个表,形成雪花模型。
2.名词
1)ETL 抽取、转换、加载。
2)数据集市 分为独立数据集市和从属数据集市。独立数据集市数据直接来自于业务系统;从属数据集市数据来自中央数据仓库。
3)虚拟数据仓库 虚拟数据仓库是操作型数据库上视图的集合,并将汇总视图物化。但需要操作型数据库具有剩余的工作能力。
3.数据仓库的设计方法
自顶向下、自底向上、混合方法。
自顶向下:
先建立底层数据仓库,在建立各部门的数据集市。
投资大、周期长、需求难确定、开发人员要求高;但收益和目标清晰。
适用于技术成熟、商业目标清晰的情况。
自底向上:
先从企业最关键的部门开始,然后不断扩充,在多个独立的数据集市之上,形成企业级的数据仓库。投入少、收效高、回报快、风险小。
4.数据仓库的参考框架
a.数据仓库基本功能层
从数据源抽取、筛选、加载数据到数据仓库,设立数据集市,进行查询、决策分析和知识挖掘等。
包含数据源、数据准备区、数据仓库结构、数据集市/知识挖掘库、应用工具。
b.数据仓库管理层
由数据仓库的数据管理和数据仓库的元数据管理组成。
c.数据仓库环境支持层
由数据仓库传输层和数据仓库基础层组成。
5.数据仓库架构
数据源、数据存储与管理、OLAP服务器、前端工具(报表工具、查询工具、数据分析工具、数据挖掘工具、应用开发工具等)
八、数据挖掘
1.概述
数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识。
数据挖掘所得到的信息应具有先前未知、有效和可实用三个特征。
1)数据挖掘体系结构
a.数据访问接口
b.知识发现系统管理器
c.知识库 包括元数据、领域知识等
d.数据选择
e.知识发现引擎
f.发现评价
g.发现描述
2)数据挖掘流程
a.问题定义 了解背景知识、弄清用户需求、决定要做什么
b.建立数据挖掘库 独立数据库
c.分析数据
d.调整数据
e.模型化 运用神经网络、决策树、数理统计等方法建立知识模型
f.评价和解释
数据挖掘的实现需要业务分析人员、数据分析人员、数据管理人员的共同合作。
2.数据挖掘常用技术
1)决策树方法
2)分类方法 主要方法有基于统计学的贝叶斯方法、神经网络方法、决策树方法及支持向量机等
3)粗糙集(Rough Set)方法
基于分类,用上近似概念和下近似概念来表示不精确概念。
4)神经网络
5)关联规则
6)概念树方法
7)遗传算法
8)依赖性分析
9)公式发现
10)统计分析方法
11)模糊论方法
12)可视化分析
3.数据挖掘的分析方法
可分为:关联分析、序列分析、分类分析、聚类分析、预测方法、时间序列分析。
1)关联分析
关联分析主要用来发现不同事件之间的关联性,即一个事件发生时,另一个事件也经常发生。
在进行关联性分析时、需要计算两个参数,最小置信度(可信度)和最小支持度,
前者表示规则需满足的最低可靠度,用以过滤掉可能性过小的规则;后者用来表示规则在统计学意义上需满足的最小程度。
2)序列分析
用于发现一定时间间隔内接连发生的事件,这些事件构成一个序列。
序列分析时、也应计算置信度和支持度。
3)分类分析
通过分析具有类别的样本特点,得到分类的规则或方法。
主要方法有基于统计学的贝叶斯方法、神经网络方法、决策树方法等。
4)聚类分析
聚类分析是分类分析的逆过程,目的是根据一定规则,对没有类别的样本,合理分组。
5)预测方法
类似于分类分析,预测方法的常用技术是回归分析。
6)时间序列分析
分析随时间而变化的事件序列。
4.数据挖掘技术应用
1)空间数据挖掘(Spatial Data Mining,SDM)
2)多媒体数据挖掘(Multimedia Data Mining,MDM)
3)文本数据挖掘(Text Data Mining,TDM)
TDM可分为基于单文档的数据挖掘和基于文档集的数据挖掘。
基于单文档的数据挖掘技术有:文本摘要和信息提取;
基于文档集的数据挖掘技术有:文本分类、文本聚类、个性化文本过滤、文档作者归属和因素分析等。
TDM可分为三层:
底层包括:机器学习、数理统计、自然语言处理。
中层包括:文本信息抽取、文本分类、文本聚类、文本数据压缩、文本数据处理。
上层包括:信息访问技术和知识发现技术,知识发现包括数据分析和数据预测。
九、NOSQL(NOT ONLY SQL)
NOSQL数据库采用键值存储、易扩展、大数据量、高性能、数据模型灵活(不受固定字段限制)、高可用。
缺点:未形成一定标准、产品层出不穷,内部混乱、项目需要时间检验、缺乏相关专家技术的支持等。
十、大数据
Volume 数据量大PB级 EB ZB
Variety 数据类型繁多
Value 数据价值密度低
Velocity 处理速度快
数据量 GB或TB级 | PB级或以上
结构化程度 结构化或半结构化数据 | 所有类型数据
数据分析需求 现有数据的分析与检测 | 深度分析(关联分析、回归分析)
硬件平台 高端服务器 | 集群平台
-----------------------------------------------------------
-----------------------------------------------------------
第6章 系统配置与性能评价
概述
1.Flynn分类法
单指令单数据流SISD 单处理器系统
单指令多数据流SIMD 并行处理机、阵列处理机、超级向量处理机 数组运算
多指令单数据流MISD
多指令单数据流MIMD 多处理机系统,多计算机
2.CISC和RISC
CISC
复杂指令,数量多,使用频率差别大,可变长格式
支持多种寻址方式
微程序控制技术(微码)
研发周期长
RISC
精简指令,数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存
寻址方式支持方式少
增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线
优化编译,有效支持高级语言
3.流水线
理论公式:(t1+t2+...tk)+(n-1)δt
实践公式:(K+n-1)*δt
吞吐率TP=指令条数/流水线执行时间
加速比=不使用流水线时的时间/使用流水线时的时间
效率=实际有效使用的时空区/总使用的时空区
4.层次化存储结构
1)寄存器-->Cache(按内容存取,相联存取)-->主存-->辅存
2)Cache改善系统性能的依据是程序的局部性原理,
系统的平均存取周期t=h*t1+(1-h)*t2 h:命中率 (1-h)失效率 t1:cache的存取周期时间 t2:主存的存取周期时间
3)局部性原理
时间局部性、空间局部性
工作集理论:工作集是进程运行时被频繁访问的页面的集合。
4)Cache页面淘汰算法:先进先出算法、近期最少使用算法。
Cache的读写过程:写直达(同时写回Cache和主存)、写回(只写回Cahce,页置换时在写回主存)、标记法(直接写回内存,从Cache取值时,再从内存取新值)
5)地址映像
地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)。
全相联映射:
采用相联存储器最为Cache存储器。内存中的每一页可以映射到Cahce的任一块。
地址映射时,需要将主存页标记与所有Cache块比较,判断是否命中,效率很低。只适合小容量的Cache。
主存页标记+页内地址
直接映射:
采用随机存储器最为Cache存储器。一对多的关系,一个Cache块对应多个内存块。实现简单,空间利用率低。
将主存分为若干区,每个区与cache大小页数相同。
主存标记(区号)+Cache页号+页内地址
主存页号=主存标记(区号)+Cache页号
Cache地址=Cache页号+页内地址
组相联映射:
将直接映射与全相联映射进行了折中。将Cache中的块分为若干组,用直接映射确定组号,全相联映射找到块号。
组相联映射中主存中一个组的页数,与Cache的分组数相同。
Cache组号+组内页号+页内地址
主存页标记=Cache组号+组内页号
Cache地址=Cache组号+组内页号+页内地址
1024=10位
主存块数OR主存组数=主存/cahce组数OR块数
6)主存分类
随机存取存储器DRAM SRAM
只读存储器 MROM(掩模式ROM) PROM(一次可编程ROM) EPROM(可擦除PROM) 闪存存储器
7)主存编址

5.磁盘
1)工作原理
存取时间=寻道时间+等待时间
寻道时间:磁头移动到磁道所需时间
等待时间:等待读写的扇区转到磁头下方所需时间
2)校验码
码距:一个编码系统的码距是整个编码系统中任意两个码字的最小距离。
在一个码组内为了检测e个误码,要求的最小码距d应满足d>=e+1
在一个码组内为了纠正t个误码,要求的最小码距d应满足d>=2t+1
循环校验码CRC
可以用模2除法(异或)整除
海明校验码
2^r>=x+r+1 x信息位数 r校验位数 校验位是2^x位
6.系统配置与性能评价
1)性能指标
a.字长和数据通路宽度
b.主存容量和存取速度
c.运算速率
主频、CPU时钟周期、多核
CPI和IPC
MIPS和MFLOPS
MIPS=指令条数/(执行时间*10^6)=主频/CPI=主频*IPC
MFLOPS=浮点操作次数/(执行时间*10^6)
计算机性能的评价通常用峰值性能(peak performance)及持续性能(sustained performance)两个指标。MIPS指标和MFLOPS指标通常是峰值性能指标。
MIPS(每秒百万次指令数)适合衡量标量处理机的性能,MFLOPS(每秒百万次浮点运算数)适合衡量向量处理机的性能。
d.吞吐量与吞吐率
e.响应时间与完成时间
f.兼容性
2)阿姆达尔解决方案(Amdahl)
对系统中某组件采用某种更快的执行方式,所获得的系统性能的改变程度,取决于该组件被使用的频率,或所占总执行时间的比例。
加速比R=Tp/Ti=1/(1-Fe+Fe/Se)
Tp原来完成任务的时间 Ti改进后完成任务的时间
Fe改进比例,能改进的部分在总执行时间中所占的比例。
Se某一功能改进后加快多少倍。
3)性能评价方法
a.时钟频率法 片面
b.指令执行速度法 只衡量加法指令,片面 常用每秒百万次指令MIPS评估
c.等效指令速度法(吉普森混合法) 加减乘除都考虑,仍然只局限与计算能力
d.数据处理速率法(PDR) 考虑到了与主存的交换性能
e.综合理论性能法(CTP) 局限于CPU+主存 采用每秒百万次理论运算MTOPS
f.基准程序法 更加全面 跑分软件
Dhrystone基准程序
Linepack基准程序
Whetstone基准程序
SPEC基准程序
TPC基准程序
4)性能监测方法
软件监控:会消耗较多系统资源。
硬件监控:使用专用硬件监控,适用于高性能计算机。

-----------------------------------------------------------
一、层次结构
1.原始的冯·诺伊曼机在结构上是以运算器为中心的,现在计算机转向以存储器为中心。
2.层次结构
第6级 应用语言机器
第5级 高级语言机器
第4级 汇编语言
第3级 操作系统
第2级 机器指令 机器指令集
第1级 微指令 为指令集
第0级 硬联逻辑 由门、触发器等逻辑电路组成。
3.组成
控制器 包括程序计数器PC、指令寄存器IR、指令译码器ID、时序部件、微操作控制信号形成部件和中断机构。
运算器 算术逻辑单元(Arithmetic and Logic Unit,ALU),包括加法器/累加器AC、数据缓冲寄存器DR、状态寄存器PSW等。
主存储器 内存
辅助存储器
输入设备
输出设备
固件(firmware):指存储在硬件(如只读存储器)中的程序,是具有软件功能的硬件。
4.体系结构分类
1)冯·诺伊曼型(存储程序,5大部件)/非冯·诺伊曼型
2)Flynn分类
根据指令流、数据流的多倍性进行分类。多倍性指同时处于执行阶段的指令或数据的最大可能数。
包括
单指令流单数据流(Single Instruction stream and Single Data stream,SISD)
单指令流多数据流(SIMD)
多指令流单数据流(MISD)
多指令流多数据流(MIMD) 常见的有海量并行处理结构(Massive Parallel Processing,MPP),
对称多处理结构(symmetrical Multi-Processing,SMP)
二、存储器系统
1)传统存储器系统一般分为高速缓存存储器(Cache)、主存、辅存三级。
2)常用的存取方式有顺序存取、直接存取、随机存取、相联存取。
顺序存取,如磁带存储器。
直接存取,类似顺序存取,但对存储空间进行了分块,可以快速定位到某一块,如磁盘存储器。
随机存取,如主存储器(内存)
相联存取,类似随机存取,但选择某一单元进行读写是取决于其内容而不是其地址。
相联存取可以对所有存储单元的特定位进行比较,选择符合条件的单元进行访问。
为了提高地址映射的速度,Cache采用了相联存取。
3)存储系统的性能主要有:存取时间、存储器带宽、存储器周期和数据传输率等。
1.主存储器
1)分为随机存取存储器(Random Access Memory,RAM)和只读存储器(Read Only Memory,ROM)
RAM分为动态RAM(DRAM)和静态RAM(SRAM),DRAM的信息随着时间逐渐消失,需要定时对其刷新维持数据不丢失;
SRAM只要不断电,信息能够一致保存下去。DRAM存储密度大,更便宜;SRAM速度快,容量小,价格高。
2)ROM根据编程方法不同,分为:
a.掩模式ROM(Mask ROM,MROM):由半导体制造厂在芯片生产过程中直接写入的,不可再变的ROM
b.一次可编程ROM(Programmable ROM,PROM)
c.可擦除的PROM(EPROM,Erasable PROM) EPROM的编程次数是有限的,写入速度慢,不能取代RAM。
d.闪速存储器(Flash Memeory) 可以在不加电的情况下长期保存信息。
2.辅助存储器
1)磁带存储器
磁带存储器是一种顺序存取设备。
2)磁盘存储器
a.磁盘的信息分布层次:记录面、圆柱面、磁道、扇区。
一个盘片有两个记录面,在盘组中,相同磁道号的磁道组成一个柱面,在记录面上的一个同心圆称为磁道,
将一条磁道划分为若干段,每个段称为一个扇区或扇段,每个扇区存放一个定长数据块。
b.硬盘的寻址地址为:驱动器号、柱面(磁道)号、记录面(磁头)号、扇区号。
c.硬盘标称的容量是指格式化容量,即用户实际可以使用的存储容量;非格式化容量是指磁记录介质上全部的
磁化单元数,格式化容量一般为非格式化容量的60%~70%。
格式化存储容量计算公式:存储容量=n*t*s*b;
n:总记录面数,t:每面磁道数,s:每道的扇区数,b:每个扇区存储的字节数。
d.磁盘密度
道密度/位密度  道密度形容磁道数量密度;位密度指磁道上存储的二进制信息密度。
e.磁盘的数据传输速度
硬盘的存取时间包括三部分:
寻道时间(查找时间):磁头移动到目的磁道的时间。
等待时间:等待记录块旋转到磁头下方的等待时间。
信息读写操作时间:很快,可以忽略不记。
磁盘平均存取时间约等于平均寻道时间+平均等待时间。

分为内部数据传输速率和外部数据传输速率。内部数据传输速率指磁头和硬盘缓存之间的数据传输速率;
外部数据传输速率指硬盘缓存与系统总线之间的数据传输速率,外部传输速率与磁盘接口类型和缓存大小有关。
3)磁盘阵列
a.廉价磁盘冗余技术(Redundant Array od Inexpensive Disks,RAID)分为8级,
应用的主要技术有:分块技术、交叉技术、重聚技术。
单纯追求性能,可以选用RAID0,金融保险行业可以选用RAID5.
b.奇偶检验:奇偶校验是一种添加一个奇偶位用来指示之前的数据中包含有奇数还是偶数个1的检验方式。
如果在传输的过程中,有奇数个位发生了改变,那么这个错误将被检测出来;如果有偶数个位发生错误,
则不会检验出来。
海明码/汉明码:对奇偶检验修行了改进,通过在数据位后面增加一些比特,可以验证数据的有效性。
利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。
由于只有0,1两种状态,可以进行自动修复,但对于偶数个错误,不会检验出来。
海明码位数:
例如在一个7位的信息中,单个数据位出错有7种可能,因此3个错误控制位就足以确定是否出错及哪一位出错了。
2^P≥P+D+1,其中P代表汉明码的个数,D代表数据位的个数。
4位数据:3位汉明码
7位数据:4位汉明码
64位数据:7位汉明码
RAID奇偶检验,只允许磁盘阵列中的一个盘发生故障,通过对磁盘阵列的纵向位增加奇偶效验码,在一块磁盘故障后,
根据奇偶检验码,推算出故障磁盘对应位置的奇偶数。
c.RAID级别
RAID0级:无冗余和无校验的数据分块,关注性能。
RAID1级:磁盘镜像阵列,每个工作盘都有对应的镜像盘,最安全。
RAID2级:采用纠错海明码的磁盘阵列,通过增加校验盘来提供单纠错和双验错功能;对数据的访问涉及阵列中的每一个盘。
不利于小批量数据传输,实际很少使用。
RAID3级/RAID4级:采用奇偶效验码的磁盘阵列,把奇偶效验码存放在一个独立的校验盘上;写数据时要计算校验位,速度较慢。
RAID3级采用位交叉奇偶校验码,RAID4采用块交叉奇偶校验码。RAID3适用于大型文件,且I/O需求不频繁的应用,
RAID4适用于大型文件读取。
RAID5级:无独立校验盘的奇偶校验码磁盘阵列,类似RAID4,对于大批量和小批量数据的读写性能都很好。
RAID4与RAID5使用了独立存储技术,每个盘可以独立操作,并行I/O。RAID5适用于请求频繁的应用,不太适合大文件应用。
RAID6级:设置了一个专用的、可快速访问的异步校验盘。
RAID7级:对RAID6进行了改进,所有盘都有较高的传输速率。
RAID10: RAID0+1的组合。
4)光盘
分为CD-ROM(只读光盘)、CD-R(写一次光盘)、CD-RW(可反复读写)、DVD-ROM(类似CD-ROM,容量更大)四类。
3.Cache存储器
Cache通常采用相联存储器(Content Addressable Memory,CAM).CAM是一种基于数据内容进行访问的存储设备,比基于地址的访问快很多。
1)Cache的基本原理
Cache依据局部性原理改善系统性能。包括空间局部性和时间局部性。
系统平均存储周期t=t1*h+t2*(1-h)    t1表示Cache的周期时间,t2表示内存的周期时间,h是命中率。
2)映射机制
CPU发出访存请求后,存储器地址先被送到Cache控制器,判断是否命中,命中就直接访问Cache,这个过程称为
Cache的地址映射。
在Cache地址映射中,主存和Cache被均分成大小相等的若干页。
常见的映射方法:直接映射、全相联映射,组相联映射。
全相联映射:
采用相联存储器最为Cache存储器。内存中的每一页可以映射到Cahce的任一块。
地址映射时,需要将主存页标记与所有Cache块比较,判断是否命中,效率很低。只适合小容量的Cache。
直接映射:
采用随机存储器最为Cache存储器。一对多的关系,一个Cache块对应多个内存块。实现简单,空间利用率低。
Cache容量8MB,页面大小512KB。区数=1G/8M=128个区。每个区8MB/512KB=16个页。
组相联映射:
将直接映射与全相联映射进行了折中。将Cache中的块分为若干组,用直接映射确定组号,全相联映射找到块号。
组相联映射中主存中一个组的页数,与Cache的分组数相同。
分两组,每组8页
3)替换算法
当Cache访问未命中时,相应的数据直接读入CPU和Cache。
随机替换/先进先出FIFO/近期最少使用LRU
4)写操作
a.写直达(Write Through) 写cache时,数据同时写回主存。
b.写回(Write Back) 写cache时,不写主存,只修改标记位,当cache被淘汰时,才写回主存。
c.标记法 对Cache中每个数据都有一个有效位,当数据进入Cache,有效位为1;
修改后,有效位设为0,直接写回内存,不写Cache;当从Cache中取数据时,再从内存取入。
4.网络存储技术
主流的有三种:直接附加存储(Direct Attached Storage,DAS)、网络附加存储(Network Attached Storage,NAS)、
存储区域网格(Storage Area Network,SAN).
1)直接附加存储DAS
存储设备通过SCSI电缆直接连接到服务器,也称SAS(Server Attached Storage,服务器附加存储)
SCSI(Small Computer System Interface,小型计算机系统接口)
2)网络附加存储NAS
NAS支持多种TCP/IP网络协议,主要是网络文件系统(Net File System,NFS)和通用Internet文件系统(Common Internet File System,CIFS).
NAS特点是适合进行小文件的共享存储,支持即插即用,可在任一网络位置建立存储。
3)存储区域网络
SAN是通过专用交换机将磁盘阵列与服务器连接起来的高速专用子网。
SAN最大的特点是将存储设备从传统以太网中分离了出来,成为独立的存储区域网络。
SAN没有采用文件共享存取方式,而是采用块(block)级别存储。
根据数据传输过程中采用的协议,分为FCSAN、IPSAN、IBSAN。
FCSAN(Fiber Channel,光纤通道) 高速,热插拔;但成本高,实现复杂。
IPSAN成本低,技术简单;IP主要指iSCSI(Internet SCSI),iSCSI是通过TCP/IP协议对SCSI指令进行封装,使指令可以通过网络传输。
IBSAN(InfiniBand,无限带宽),通过中心机构(IB交换机)在远程存储器和服务器设备间建立单一连接链路。
IBSAN采用了层次结构,系统构成与接入设备的功能进行了分离。主机可以通过主机通道适配器(Host Channel Adapter,HCA)、
网络存储设备(RAID等)通过目标通道适配器(Target Channel Adapter,TCA)接入IB SAN。
IBSAN支持SCSI远程直接内存存取(Direct Memory Access,DMA)协议。
5.虚拟存储技术
1)虚拟存储分类
a.按照拓扑结构不同,分为对称式与非对称式。
对称式虚拟存储技术是指存储控制设备与存储软件、交换设备集成为一个整体,内嵌在网络数据传输路径中。
非对称式虚拟存储技术是指虚拟存储控制设备独立于数据传输路径之外。
b.按照实现原理不同,分为数据块虚拟与虚拟文件系统。
数据块虚拟着重解决数据传输过程中的冲突和延时问题,采用多端口并行技术,提供极高带宽。
虚拟文件系统着重于解决网络文件共享安全机制问题。
c.实际应用:
数据块虚拟存储方式以对称式拓扑结构为表现形式。
虚拟文件系统存储方式以非对称式拓扑结构为表现形式。
2)虚拟存储的实现方式
关键问题是实现逻辑卷与物理实体间的映射关系;可以在计算机层或存储设备层或存储网络层解决。
a.主机级的虚拟化    一般由纯软件方式实现,成本低,增加主机负担。
b.存储设备级的虚拟化    通过存储设备控制器实现虚拟化,效率高性能好,不同厂家的不同产品有隔离,不能解决异构环境的虚拟化问题。
c.网络级的虚拟化    由SAN专用设备实现虚拟化。
一般优先考虑主机级或存储设备级虚拟化,对于多个异构设备,可采用网络级的虚拟化。
3)虚拟存储特点
a.提供了大容量存储系统的集中管理手段
b.通过负载均衡等提高了存储系统整体访问带宽
c.为存储资源管理提供了更好的灵活性和兼容性
d.通过管理软件提供远程镜像和数据快照等有用功能
e.实现了计算机应用系统与存储设备的分离解耦。
三、输入输出系统
1.输入输出方式
I/O系统有5种不同的工作方式:程序控制方式、程序中断方式、DMA工作方式、通道方式、I/O处理机。
1)程序控制方式
由CPU执行I/O软件的方式,实现主机与外设之间的数据传输,可分为无条件传送和程序查询方式两种。
无条件传送方式,默认外设始终处于准备就绪状态,只适用于简单开关量的I/O控制。
程序查询方式,cpu在程序中查询外设就绪状态,未就绪,CPU就循环等待,严重影响CPU的利用率。
2)程序中断方式
中断机制提供了保护现象,恢复现场的功能。
分为5个阶段:中断请求、中断判优、中断响应、中断处理、中断返回。
常用的处理方法有:多中断信号线法、中断软件查询法、雏菊链法、总线仲裁法、中断向量表法。
菊花链式查询方式中,设备的先后连接顺序决定了其优先级。而计数器定时查询(轮询)方式及独立请求方式中,可以做到各个主设备得到总线使用权的机会基本相等。
CPU无需等待也无需查询I/O的状态,I/O系统完成数据传输后,以中断信号通知CPU。
3)DMA工作方式
使用DMA控制器(DMAC)来控制和管理数据传输。DMAC与CPU共享系统总线,具有独立访问存储器的能力。
DMAC获取总线的三种方式:
CPU停止访问主存法(暂停方式)、存储器分时法(共享方式)、周期挪用法(周期窃取方式)。
DMA特点:
a.使主存与CPU的固定联系脱钩,主存即可被CPU访问,也可被外设访问。
b.在数据块传送时,主存地址的确定、传送数据的计数等由硬件电路直接实现。
c.主存中要开辟专用缓冲区,及时供给和接收外设的数据。
d.DMA传送速度快,CPU和外设并行工作。
e.DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
4)通道方式
通道方式是DMA的发展,通道是实现外设和主存之间直接交换数据的控制器。
通道可分为字节多路通道、选择通道(高速通道)、数组多路通道三种。
字节多路通道:以字节交叉方式产生信息,分时共享总通道;
选择通道(高速通道):一段时间内只能选择一台设备,传输数据;
数组多路通道:有多个子通道,既可以使用字节多路通道,也可以使用选择通道。
5)I/O处理机
也称外围处理机,可以有自己独立的存储器,不使用主存,可以实现数据校验等高级功能。
2.总线
总线采用分时共享的机制传输信息。
1)总线分类
a.内部总线/外部总线
内部总线:寄存器和算术逻辑部件ALU与控制部件之间传输数据所用的总线。
外部总线:CPU与内存、输入输出设备接口间的总线。
b.地址总线/数据总线/控制总线
c.机内总线/机外总线
机外总线是指与外部设备接口相连的,外设的接口标准。如IDE,SCSI,USB,IEEE1394
d.局部总线/系统总线/通信总线
局部总线是指在传统的ISA总线和CPU总线之间增加的一级总线或管理层。
系统总线是计算机内部个部件(插板)之间进行连接的一组信号线。如:ISA,EISA,PCI、AGP等
通信总线是计算机系统之间或与其他系统进行通信的一组信号线。
e.并行总线/串行总线
并行总线适合近距离传输,大多数系统总线属于并行总线
串行总线适合远距离传输,大多数通信总线属于串行总线
2)总线标准
正式标准:IEEE等国际组织正式确定的标准。
工业标准:某个厂家提出后,得到广泛使用的事实标准。
3)总线的性能指标
总线宽度:总线的线数
总线带宽:总线的最大数据传输速率。总线带宽=总线宽度*总线频率
总线负载:连接在总线上的最大设备数
总线时分复用
总线猝发传输等
3.接口
1)I/O接口也称I/O控制器,主要功能是:
实现主机和外设的通信联络控制。
进行地址译码和设备选择。
实现数据缓冲。
数据格式的变换。
传递控制命令和状态信息。
2)接口分类
串行接口/并行接口 串行接口一次只能传送1位信息。
3)常见接口
a.IDE(Integrated Drive Electronics,电子集成驱动器) 磁盘接口
b.高级技术附件(Advanced Technology Attachment,ATA) 全球硬盘标准。
c.串行高级技术附件(Serial ATA,SATA) SATA支持热插拔、传输速度快、执行效率高。
外部串行高级技术附件eSATA
d.SCSI 是大容量存储设备、音频设备和CD-ROM驱动器的一种标准。SCSI设备可以互相交换数据,也可以和主机通信。
e.个人计算机内存卡国际联合会(Personal Computer Memory Card International Assocoation,PCMCIA) PC Card.
f.IEEE-1394
g.USB 是一种串行总线式的接口。
4.端口
I/O端口是指接口电路中可以被CPU直接访问的寄存器。若干端口加上控制电路组成接口。
端口编址分为:独立编址和统一编址。
四、指令系统
1.基本指令系统
在功能方面的基本要求时:完整性、规整性、高效性、兼容性。
基本指令包括:数据传送类指令、运算类指令、程序控制类指令、I/O指令、处理机控制和调试指令。
2.复杂指令系统(Complex Instruction Set Computer,CISC)
精简指令系统(Reduced Instruction Set Computer,RISC)
大多数RISC采用了Cache方案,使用Cache来提高指令的速度。有的采用两个Cache,一个指令Cache,一个数据Cache,取指令和取数据可同时进行。
五、流水线技术
要提高计算机系统的性能,增加并行性,可以从空间并行性和时间并行性入手。
空间并行性 多处理机系统。
时间并行性 流水线技术。
1.流水线工作原理
1)流水线技术把一项任务分解为若干项顺序执行的子任务,不同的子任务由不同的操作部件负责执行,这些部件可以同时并行工作。
2)描述流水线常使用时空图。
3)流水线特点
a.流水线中处理的必须是连续的任务,连续不断的任务才能发挥流水线的效率。
b.在流水线每个操作部件的后面,都要有一个缓冲寄存器,用于保存本阶段的执行结果。
c.流水线把一个大的任务分为多个小的任务。执行时间最长的任务将成为整个流水线的瓶颈。
4)流水线的分级
流水线可以分为操作部件级、指令级(处理机级)、处理机间级。
操作部件级也称运算操作流水线,如:将浮点加法操作分为求阶乘、对阶、尾数相加、结果规格化4个阶段。
指令级流水线,将指令分解,如分解成取值、分析、执行3个阶段
处理机间级也称宏流水线,将两个以上处理机通过存储器串联起来。
5)流水线分类
a.按功能分为:单功能流水线(只能实现一种固定功能)和多功能流水线。
b.按工作方式分为:静态流水线和动态流水线。动态流水线在同一时间内允许按多种不同运算的连接方式工作。单功能流水线必定是静态流水线;动态流水线必定是多功能的。
c.按连接方式分为:线性流水线与非线性流水线。非线性流水线存在反馈回路,常用于递归调用。
2.流水线性能分析
性能指标有:吞吐率、加速比、效率。
k段流水线完成n个连续任务所需时间=kt+(n-1)t
吞吐率(Yhough Put rate,TP) TP=n/Tk n:为任务数,Tk为所用时间。
加速比:顺序执行所需时间/流水线执行时间
效率E=S/k S:实际加速比 k:最大加速比
理论上增加段数k,吞吐率和加速比都会提高,k一般在2~10段之间。
8段以上的流水线称为超流水线,采用的处理机称为超流水线处理机。
3.局部相关与全局相关
局部相关与全局相关是指对流水线执行可能造成影响的因素。
局部相关 主要指数据相关,如:共享资源访问冲突
全局相关 主要指转移指令或中断处理。
4.流水线周期δt是流水线中耗时最长的子任务时间。
流水线吞吐率TP=n/Tn=n个任务/完成n个任务所需时间
最大吞吐率TPmax=1/δt
加速比S=T0/Tk=顺序所需时间/采用流水线所需时间
Smax=k(k为流水线段数)
六、多处理机系统
1.概述
1)多处理机结构属于MIMD,多指令流多数据流结构。
并行处理机结构属于SIMD,单指令多数据流结构。并行处理机只有一个控制器,但有多个处理单元。
并行处理机特别适合于矩阵(向量)计算,也称为矩阵处理机。
2)分类
多处理机访问内存有两种方式,共享式存储方式和分布式存储方式。
共享式存储方式,互联网络位于处理器层和存储器层之间,这类多处理机系统称为紧耦合系统或直接耦合系统。
存储器模块可采用流水工作方式,如SMP。按所用处理机类型是否全部相同及对称,又分为同构或异构、对称或非对称。
紧耦合系统处理机数目有限,扩充比较困难。
分布式存储方式,各处理机独占本地存储器,互联网络位于处理机层之上,这类多处理机系统称为松耦合系统或间接耦合系统。
如MPP海量并行处理结构。松耦合系统适合粗粒度的并行计算。
2.海量并行处理MPP
MPP采用分布存储方式,引入了虚拟共享存储器(Shared Virtual Memory,SVM)或共享分布存储器(Distributed Shared Memory,DSM)
SVM基本思想是,将各物理机上分散的LM,在逻辑上加上统一编址,形成统一的虚拟地址空间。
SVM可以兼具紧耦合系统和松耦合系统的优点。
SVM的实现途径主要有三种:硬件实现,操作系统实现,编译实现。一般采用前两种方式实现。
3.对称多处理机结构SMP
SMP也称为共享存储多处理机。SMP与MPP最大的区别在于存储系统。SMP有一个统一的共享SM,MPP则是每个处理器有自己的LM。
共享存储有三种模型:
均匀存储器存取模型(Uniform Memory Access,UMA)、非均匀存储器模型(Nouniform Memory Access,NUMA)、
只用高速缓存存储器结构模型(Cache Only Memory Architecture,COMA).
NUMA种访问存储器时,不同LM网络会有不同的延迟,如果全局地址在本机上,直接访问本机。
COMA是NUMA的特例,全部使用高速缓存。
传统SMP扩展有限,S2MP(Scalable Shared Memory Multi-Processing,可扩展共享存储多处理)改善了扩展和性能问题。
S2MP实际上是一种NUMA结构,通过硬件Cache对系统的共享和私有数据进行缓存,达到高性能目标。
4.互联网络
七、系统性能设计
1)性能设计包含两方面内容:作为未来系统应用和发展的参考与规划;对现有系统进行性能上的调整,以达到最优化。
2)对计算机评价的主要性能指标如下:
.时钟频率(主频)
.高速缓存
.运算速度
MIPS用于描述计算机的定点运算能力;MFLOPS则用来表示计算机的浮点运算能力。
.运算精度
.内存的存储容量
.存储器的存取
.数据处理速率PDR
PDR主要用来度量CPU和主存储器的速度,它没有涉及高速缓存和多功能等。因此,不能度量机器的整体速度。
.响应时间
.RASIS特性
RASIS特性是可靠性Reliability、可用性Availability、可维护性Serviceability、完整性Integraity、和安全性Security五者的统称。
可靠性是指计算机系统在规定的工作条件下和规定的工作时间内持续正确运行的概率。可靠性一般是用平均无故障时间(Mean Time To Failure,MTTF)或平均故障间隔时间(Mean Time Between Failure,MTBF)来衡量。
可维护性是指系统发生故障后能尽快修复的能力,一般用平均故障修复时间(Mean Time To Repair,MTTR)来衡量。
.平均故障响应时间TAT
即从出现故障到该故障得到确认修复前的这段时间。
.兼容性
3)对网络评价的主要性能指标如下:
设备级性能指标。信道容量、延迟、丢包率和转发速度等。
网络级性能指标。可达性、网络系统的吞吐量、传输速率、信道利用率等。
应用级性能指标。QOS、网络对语言应用的支持程度、网络对视频应用的支持程度、延迟服务质量的关系、丢包率服务质量的关系、延迟抖动服务质量的关系等。
用户级性能指标。可靠性和可用性。
吞吐量。在没有帧丢失的情况下,设备能够接受的最大速率。
4)对操作系统的主要性能指标如下:
系统的可靠性、系统的吞吐量、系统响应时间、系统资源利用率、可移植性。
5)对数据库管理系统的主要性能指标如下:
数据库描述功能、数据库管理功能、数据库的查询和操纵功能、数据库维护功能。
6)对Web服务器的主要性能指标如下:
Web服务器的主要性能指标包括最大并发连接数、响应延迟、吞吐量(每秒处理的请求数)、成功请求数、失败请求数、每秒点击次数、每秒成功点击次数、每秒失败点击次数、尝试连接数、用户连接数等。
常见的服务器性能评测方法有基准性能测试、压力测试和可靠性测试。
IxWeb公司的一个有关WEB性能测试的解决方案。
1)性能指标计算的主要方法有:定义法、公式法、程序检测法、仪器检测法。
定义法主要根据其定义直接获取其理想数据,
公式法则一般适用于根据基本定义所衍生出的复合性能指标的计算,
程序检测法和仪器检测法则是通过实际的测试来得到其实际值.
2)MIPS=指令条数/(执行时间*10^6)=IPC*Fz=Fz/CPI
理论峰值计算=CPU主频*每个时钟周期执行浮点运算的次数*CPU数
3)等效指令速度
通常加、减法指令占50%,乘法指令占15%,除法指令占5%,程序控制指令占15%,其他指令占15%。
4)阿姆达尔定律是这样的:系统中对某部件采用某种更快的执行方式,所获得的系统性能的改变程度,取决于这种方式被使用的频率,或所占总执行时间的比例。
5)负载均衡
基于特定服务器软件的负载均衡。
基于DNS的负载均衡。
反向代理负载均衡。
基于NAT的负载均衡。
扩展的负载均衡技术。
6)全域负载均衡有以下特点:
a.解决网络拥塞问题,服务就近提供,实现地理位置无关性;
b.对用户提供更好的访问质量;
c.提高服务器响应速度;
d.提高服务器及其他资源的利用效率;
e.避免了数据中心单点失效。
7)基准测试程序
整数测试程序:Dhrystone。
浮点测试程序:Linpack。主要是浮点加法和浮点乘法操作。
Whetstone基准测试程序。综合性测试程序。
SPEC基准测试程序。目前比较权威的综合测试程序。
TPC基准程序:用于评测计算机的事务处理、数据库处理、企业管理与决策支持等方面的性能。
TPC-A用于在线联机事务处理下更新密集的数据库环境下的性能测试。
TPC-B用于数据库系统及运行它的操作系统的核心性能测试。
TPC-C则用于在线联机事务处理测试。TPC-C是衡量OLTP系统的工业标准。
TPC-D用于决策支持系统测试。
TPC-E大型企业信息系统测试。
TPC-H是基于TPC-D基础上决策支持基准测试。
TPC-W是用于电子商务应用软件测试。
Linpack测试:Linpack是国际上最流行的用于测试高性能计算机系统浮点性能的测试。通过对高性能计算机采用高斯消元法求解一元次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。
Linpack测试包括三类,Linpack100、Linpack1000、HPL。
HPL(High Performance Linpack)也叫高度并行计算基准测试.


1.系统性能指标
包括两方面:
a.可靠性和可用性
b.处理能力或效率:吞吐率、响应时间、资源利用率。
1)字长和数据通路宽度
2)主存容量和存取速度
3)运算速度
主频和CPU时钟周期
CPI(Cycles Per Instruction,每条指令执行所用的时钟周期数)
IPC(Instructions Per Cycles,每个时钟周期内执行的指令条数)
MIPS(Million Instructions Per Second,每秒百万条指令)
MFLOPS(Million Floating-point Operations Per Second,每秒百万次浮点运算)
MIPS=指令条数/(执行时间*10^6)=主频/CPI=主频*IPC
4)吞吐量与吞吐率
5)响应时间与完成时间
5)兼容性
2.系统性能调整
一般性方法和步骤:
1)准备工作
识别约束、指定负载、设置性能目标
2)调整循环
性能调整是一个收集、分析、改进、测试的循环,直到系统性能符合所设置的目标。
3)阿姆达尔解决方案
对系统中某组件采用某种更快的执行方式,所获得的系统性能的改变程度,取决于该组件被使用的频率,或所占总执行时间的比例。
加速比R=Tp/Ti=1/(1-Fe+Fe/Se)
Tp原来完成任务的时间 Ti改进后完成任务的时间
Fe改进比例,能改进的部分在总执行时间中所占的比例。
Se某一功能改进后加快多少倍。
八、系统性能评估
1.评估体系分为两类:测量方法和模型方法。
测量方法:只适用于已经存在并运行的系统,而且比较费时间。例如:经典评估方法、基准程序法。
模型方法:既可用于已存在系统的性能评估、也可用于待开发系统的性能评估;工作量小,费用少。模型方法又可分为模拟方法(用程序模拟系统和负载)和分析方法(应用数学理论和方法研究和描述系统、负载)。
2.经典评估方法
常用方法有:时钟频率法、指令执行速度法、等效指令速度法、数据处理速度法、综合理论性能法CTP(Million Theoretical Operations Per Second,MTOPS,每秒百万次理论运算)。
对于CISC系统,等效指令速度法可能严重偏离实际。
3.基准程序法
把应用程序中用的最多、最频繁的那部分核心程序作为评估计算机系统性能的标准程序。
Dhrystone基准程序
Linpack基准程序 测试浮点性能 MFLOPS
Whetstone基准程序
SPEC 速度测试/吞吐率测试
TPC 评价事务处理等性能
-----------------------------------------------------------
-----------------------------------------------------------
第7章 企业信息化战略与实施
概述
1.信息系统的概念
系统是指由多个元素有机地结合在一起,执行特定的功能以达到特定目标的集合体。
信息系统是输入数据,通过加工处理,产生信息的系统。
信息系统不一定与计算机有关。
2.信息系统的类型
按数据环境分类:数据文件/应用数据库/主题数据库(面向业务主题、信息共享、一次一处输入系统、由基本表组成)/信息检索系统
应用层次分类:战略级(企业最高管理层)、战术级(企业中层经理及其管理部门)、操作级(服务型企业的业务部门)、事务级(企业的管理业务人员)
3.信息系统生命周期
1)全局
立项阶段(企业全局、形成概念、需求分析)
开发阶段(总体规划/系统分析/系统设计/系统实施/系统验收)
运维阶段(通过验收 移交之后)(排错性维护、适应性维护、完善性维护、预防性维护)
消亡阶段(更新改造 功能扩展 报废重建)
2)单个系统开发阶段
总体规划/系统分析/系统设计/系统实施/系统验收
3)信息系统建设原则
高层管理人员介入原则/用户参与开发原则/自顶向下规划原则/工程化原则/其他(创新性原则、整体性原则、经济性原则、先进性原则、发展性原则等)
4)信息系统开发方法
结构化方法/原型方法/面向对象方法/面向服务方法
5)信息系统工程的技术构成
软件工程和信息工程是信息系统工程的技术基础,因此,信息系统工程首要的任务是实施软件工程和信息工程。
软件工程3个要素:方法、工具和过程。
信息工程方法的主要特点:一是以数据为中心,进一步的工作是建立主题数据库;二是将工程的实施划分为对业务系统的实施和对技术系统的实施。
前者包含了软件的技术内容,而后者则包含了诸如硬件、网络等工程内容。实施信息工程就是将企业的业务系统与技术系统有机地结合起来。
6)信息系统工程的总体规划
总体规划主要步骤:对当前系统进行初步的调查、分析和确定系统目标、分析子系统的组成及基本功能、拟定系统的实施方案、进行系统的可行性研究、编写可行性报告。
信息系统工程总体规划实施成功与否的关键在于企业最高层领导的全力支持和高层管理干部的亲自参加。
总体规划目标的分析过程包括,确定组织的总体目标和确定信息系统工程规划的总体。

4.系统建模
现有系统-->物理系统(模型化)-->物理模型(抽象化)-->逻辑模型(调整优化)
-->逻辑模型(实例化)-->物理模型(具体化)-->物理系统-->新系统
5.信息系统战略规划
阶段一
以数据处理为核心,围绕职能部门需求
企业系统规划法BSP、关键成功因素法CSF、战略集合转化法SST、合称BCS
阶段二
以企业内部MIS为核心,围绕企业整体需求
战略数据规划法SDP(主题数据库,以BSP为基础)
信息工程法IE(以BSP为基础,融合SDP,将信息系统开发过程工程化)
战略栅栏法SG
阶段三
综合考虑企业内外环境,以集成为核心,围绕企业战略需求
价值链分析法VCA
战略一致性模型SAM
6.信息系统开发方法
1)结构化方法
用户至上
严格区分工作阶段,每阶段有任务与结果
强调系统开发过程的整体性和全局性
系统开发过程工程化,文档资料标准化
自顶向下,逐步分解(求精)
不灵活
2)原型法
适用于需求不明确的开发
包括抛弃式原型和演化式原型
3)面向对象方法
更好的复用性
关键在于建立一个全面、合理、统一的模型
分析、设计、实现三个阶段,界限不明确
4)面向服务方法
SO方法有三个主要的抽象级别:操作、服务、业务流程。
SOAD分为三个层次:基础设计层(底层服务构件)、应用结构层(服务之间的接口和服务协定)、业务组织层(业务流程建模和服务流程编排)
服务建模:分为服务发现、服务规约和服务实现三个阶段。
7.政府信息化与电子商务
政府办公自动化/公共政务办公/政务信息查询
G2G政府对政府
G2B政府对企业
G2C政府对公众
G2E政府对公务员
8.企业资源计划ERP
财会管理、物流管理、生产控制管理、人力资源管理。
9.客户关系管理CRM
市场管理和客户服务是CRM的支柱性功能。
客户服务与支持、客户群维系、商机管理;触发中心、挖掘中心。
10.供应链管理SCM
对计划、采购、制造、配送、退货进行管理;涉及供应商、制造商、分销商、零售商。
设计原则:
自顶向下和自底向上结合、简洁性原则、互补性原则、协调性原则、动态性原则、创新性原则、战略性原则。
11.商业智能BI
是对数据仓库、数据挖掘、OLAP的综合应用。
步骤:
需求分析、数据仓库建模、数据抽取、建立BI分析报表、用户培训和数据模拟测试、系统改进和完善。
12.决策支持系统DSS
适合半结构化和非结构化决策。
包括:数据库子系统、推理部分、模型库子系统。
数据库子系统:数据库、数据析取模块、数据字典、数据库管理系统、数据查询模块。
推理部分:知识库(方法库)、知识库管理系统、推理机。
模型库子系统:模型库、模型库管理系统。
13.电子数据交换EDI
EDI系统三要素:EDI软硬件、通信网络、数据标准化。
EDI特点:
EDI的使用对象是不同的组织之间,EDI传输的企业间的报文,是企业间信息交流的一种方式。
EDI所传送的资料是一般业务资料,如:发票、订单等,而不是指一般性的通知。
EDI传输的报文是格式化的,是符合国际标准的,这是计算机能够自动处理报文的基础。
EDI使用的数据通信网络一般是增值网、专用网。
EDI数据传输由收送双方的计算机系统直接传送、交换资料,不需要人工介入操作。
EDI与传真和电子邮件的区别是:传真和电子邮件需要人工的阅读判断处理才能进入计算机系统。EDI不需要再将有关资料人工重复录入系统。
14.知识管理
1)把隐性知识(个人经验)转化为显性知识。
2)企业实施知识管理的阶段:
认知阶段、规划阶段、试点阶段、推广和支持阶段、制度化阶段。
3)知识管理系统
知识生成模块。从海量的信息中抽取出针对某个应用领域的知识,包括确定某个应用领域,建立一个目标数据集,进行信息整理和预处理,对知识进行标记。
知识挖掘模块。按照一定的知识提取算法,从知识库中发现隐含的、有意义的知识,获取能改变对事物认识的知识。这些方法主要有关联分析、聚类、概念描述和偏差检测。
知识重组模块。结合具体的用户需求,形成特定用户系统化的知识。运用情报研究领域的方法(如层次分析法),将零散的知识转换为针对用户需求且让用户易于理解的知识。
知识应用模块。结合决策分析方法(如SWOT方法、SPACE方法等),将知识重组得到的系统化的知识运用到实际的生产运行过程中,从而形成新的知识,即决策备选方案或新的科技成果。
15.企业门户
企业网站、企业信息门户EIP、企业知识门户EKP、企业应用门户EAP、企业通用门户。
16.企业应用集成
表示集成(界面集成)/数据集成(中间件层)/控制集成(应用集成,API集成,应用逻辑集成)/业务流程集成(过程集成)
消息集成:适用于数据量小、但要求频繁的、立即的、异步的数据交换的场合
共享数据库:实时性强、可以频繁交互,数据的交换属于同步方式。
文件传输:适用于数据量大、交换频度小、即时性要求低的情况。
17.电子商务
四流:信息流(核心)、资金流、物流、商流
国际电子商务标准体系:
基础技术标准:总体通用、软件技术架构、描述技术、自动识别与标识技术、网络协议。
业务标准:信息分类编码、数据元、元数据、单证格式、流程与接口、注册维护。
支撑体系标准:在线支付、信用服务、现代物流、安全认证。
监督管理标准:服务质量、统计评价、符合性测试。
18.CIO职责
战略层面:挖掘资源、制定战略、合理布局、评估价值。
变革层面:重组流程、重建体系、完善标准、优化管理。
执行层面:整合资源、系统选型、收集信息、监理工程。
沟通层面:安排培训、协调关系、发现问题、打造团队。

提供信息帮助企业决策。
帮助企业制定长期发展战略。
制定信息系统发展规划。
有效管理IT部门。
建立积极的IT文化。

19.人工智能
1)判断机器是否具有同人的能力。
图灵测试(The Turing test),指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问,进行多次测试后,如果有超过30%的测试者不能确定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。
2)AI核心技术
语音识别技术:将人类的语音中的词汇内容转换为计算机可读的输入。
计算机视觉:从图像中识别物体、场景和活动的能力。
机器学习:研究计算机怎么模拟或实现人类的学习行为,以获取新的知识或技能。
机器人技术:将机器改造成能和人类一起工作,能在不同环境完成不同任务。
自然语言处理:计算机处理、理解及运用人类语言。
3)AI的应用
智能工厂:智能工厂由商业智能、运营智能、操作智能三个层次组成,由于自身的自动化水平较高,因此实施智能工厂相对比较容易。
智能机器人:
智能物流:具有数据智慧化、网络协同化和决策智慧化的特征。
智能家居:以住宅为平台,利用综合布线技术、网络通信技术、自动控制技术、音视频技术将家居有关的设施集成。
智能手机应用:拍照优化,相片按人物分组、人脸解锁。
-----------------------------------------------------------
一、企业信息化概述
企业信息化以业务流程的优化和重构为基础。
1.国家信息化体系的6要素:
信息资源/信息网路/信息技术应用
信息产业/信息化人才/信息化政策法规和标准规范
2.企业信息化方法
1)业务流程重组方法
2)核心业务应用方法
3)信息系统建设方法
4)主题数据库方法 业务主题
5)资源管理方法
二、企业信息化规划
1.企业信息化规划内容
融合企业战略、管理规划、业务流程重组等内容,”业务+管理+技术“的规划活动。
业务流程重组    理解关键的企业目标
业务流程重组    企业如何达到目标                      企业战略规划
业务流程重组    信息系统如何支撑目标               信息系统战略规划
业务流程重组    需要哪些技术支持信息系统        信息技术战略规划
信息资源规划    信息化建设具体项目的实施        信息资源规划
2.信息化规划的具体内容
明确发展目标和实施重点
成立领导机构
做好企业业务信息化需求分析
确定企业信息化不同发展阶段的投资预算
制定必要的促进企业信息化建设的规章制度。
3.信息技术战略规划(IT战略规划)主要步骤:
业务分析、分析评估现有系统与流程、识别机会、选择方案。
4.信息化规划与企业战略规划关系
1)信息化初级阶段,业务部门直接提出要求,IT部门按需求实施
2)信息化中级阶段,企业提出整体战略规划,业务部门根据规划,对流程和组织结构改进,IT部门实施。
3)信息化高级阶段,根据企业战略规划制定整体的信息化战略,统一规划,分步实施。
5.信息化战略与企业战略的集成
信息化战略从企业战略出发,服务于企业战略,影响促进企业战略。
主要集成方法:
业务与IT整合(Business-IT Alignment,BITA) 适用于业务与IT总有不一致的情况。
步骤:评估和分析企业当前业务和IT不一致的领域,整理出企业的业务远景和未来战略,建立业务模型,
提出达到未来目标的转变过程建议和初步计划,执行计划。
企业IT架构(Enterprise IT Architecture,EITA) 适用于现有系统和IT基础架构不一致、不兼容的情况。
三、信息系统开发方法
结构化方法/面向对象方法/面向服务方法/原型化方法
1.结构化方法
1)结构化方法也称为生命周期法,将系统的生命周期分为:系统规划、系统分析、系统设计、系统实施、系统维护等阶段。
精髓是自顶向下,逐步求精,模块化设计。信息隐蔽,模块独立。
由结构化分析SA,结构化设计SD,结构化程序设计SP组成。
2)结构化方法特点
开发目标清晰化、开发工作阶段化、开发文档规范化、设计方法结构化。
3)结构化方法缺点
开发周期长、难以适应需求变化、很少考虑数据结构。
4)结构化分析
SA采用数据流图DFD来建立系统的功能模型,手段主要有:DFD、数据字典DD、结构化语言、判定表和判断树等。
5)结构化设计
分为概要设计阶段和详细设计阶段,将DFD图转换为系统结构图(也称模块结构图或控制结构图)。
SD方法尤其适用于变换型结构和事物型结构的目标系统。
2.面向对象方法
1)OO方法主要包括:OMT方法(Object Model Technology,对象建模技术)、Coad/Yourdon方法、
OOSE方法(Object-Oriented Software Engineering,面向对象的软件工程)和Booch方法等。
OMT、OOSE、Booch已经统一为统一建模语言(United Model Language,UML).
2)OO过程包括OOA,OOD,OOP,此外还有面向对象测试OOT
OOA的任务(了解问题域所涉及的对象、对象间的关系和操作),然后构造问题的对象模型。
OOD对OOA的结果做进一步的规范化整理,设计各个对象、对象间的关系、通信方式等。
3)特点:符合人们的思维习惯,利于用户与开发人员交流,缩短开发周期,提高系统开发的正确性和效率。
但必须依靠一定的OO技术支持,在大型项目上具有一定局限性,不能涉足系统分析之前的开发环节。
4)OOSE提出了用例的概念,取代DFD来进行需求分析和建立功能模型。OOSE采用5类模型建立目标系统:
需求模型、分析模型、设计模型、实现模型和测试模型。
Booch认为系统开发是一个螺旋上升的过程,Booch开发模型包括静态模型和动态模型。
静态模型包括逻辑模型(类图、对象图)和物理模型(模块图、进程图)
动态模型包括状态图和顺序图。
OMT使用了建模思想,包括对象模型、动态模型和功能模型。
3.面向服务方法
面向服务(Service-Oriented,SO),有三个主要的抽象级别:操作、服务、业务流程。
面向服务的分析与设计(Service-Oriented Analysis and Design,SOAD)由OOA/OOD、企业架构EA、
BPM从基础设计层、应用结构层、业务组织层三个层次提供理论支持。
1)服务建模
服务发现 采用自上而下、自下而上、中间对齐的方式,得到候选服务。
自上而下:业务领域分解。
自下而上:已有资产分析。
中间对齐:业务目标建模。
服务规约 是否暴露服务,服务编排、服务库、服务总线等设计过程
服务实现
2)SO增加了系统灵活性、可复用性、可演化性等。
4.原型化方法
结构化开发方法和面向对象开发方法,需要在开发初期明确系统功能要求,确定系统边界。
但有时不能明确问题,可以使用快速原型法。
1)原型法开发过程
a.确定用户基本需求
b.设计系统初始原型 集成原则和最小系统原则。
c.试用和评价原型
d.修改和完善模型
e.整理原型、提供文档
2)特点
缩短系统开发周期,降低成本和风险,加快开发速度。
以用户为中心开发,用户参与度高,满意度高,成功率高。
用户参与全过程,有利于用户对功能和结构的理解与接受,便于系统移交、运行、维护。
但开发环境下要求高,人员,工具等;管理水平要求高。
四、信息系统战略规划方法
1.信息系统战略规划(Information System Strategic Planning,ISSP)分为三个阶段:
第一阶段:以数据处理为核心,围绕业务部门需求规划,
主要方法:企业系统规划法BSP、关键成功因素法CSF、战略集合转化法SST
第二阶段:以企业内部信息管理系统为核心,围绕企业整体需求规划,
主要方法:战略数据规划法、信息工程法、战略栅格法
第三阶段:以集成为核心,围绕企业战略需求进行规划,
主要方法:价值链分析法、战略一致性模型。
2.企业系统规划法(Business System Planning,BSP)
BSP是战略数据规划方法和信息工程方法的基础。BSP方法所得到的规划是随时间变化的,它只是某个时间段内对企业信息资源的最佳认识。BSP方法的真正价值在于创造一种环境和提出初步的行动计划,使企业能根据这个计划对将来的系统和优先级改变作出积极响应,不至于造成设计的重大失误。
1)BSP的原则
信息系统必须支持企业的战略目标。
信息系统的战略应当表达出企业各个管理层次的需求。
信息系统应该向整个企业提供一致的信息。
信息系统应该适应企业组织结构和管理体制的改变。
信息系统战略规划应当由总体信息系统结构中的子系统开始并实现。自顶向下规划,自下而上分步实现。
2)BSP方法的步骤
项目的确定
准备工作
开始阶段
定义企业过程
定义数据类
分析现有系统
确定管理部门对系统的要求
提出判断和结论
定义信息总体结构、确定优先顺序
评价信息资源管理工作
制定建议书和开发计划
成果报告
3)详细说明
a.前期准备工作内容:
确定系统规划的范围,成立系统规划组SPG、收集企业数据(业务、技术、系统,并评审),制定计划(划出计划的Pert图和甘特图)、开好介绍会。
b.定义企业工程:战略计划与管理控制过程、产品/服务过程、支持性资源过程。
过程/组织(Process/Organization,PO)矩阵
c.定义数据类
数据类型一般可分为存档类(库存类)、事务类、计划类、统计类(综合类)
定义数据类一般采用实体法和功能法分别进行,然后互相参照,归纳出数据类。
实体法使用资源/数据(Resource/Data,RD)矩阵
功能法也称过程法,可以用IPO(输入-处理-输出)图表示
最后使用CU(Create、Use)矩阵表示过程/数据类间的关系
d.制定建议书和开发计划
内容:信息结构、信息系统管理、分布信息系统规划、总体结构优先顺序。
3.关键成功因素法(Critical Success Factors,CSF)
1)找出实现目标所需要的关键信息集合,从而确定系统开发的优先次序。
企业战略描述企业期望的目标,CSF则提供达到目标的关键路径和所需的性能指标。
2)CSF的4种类型
内部CSF:针对企业内部活动,如:改善产品质量、提高工效等。
外部CSF:企业的对外CSF,满足客户的标准、获得对方信贷等。
监控型CSF:对现有业务流程等进行监控,如监控次品率等。
建设型CSF:适应企业未来变化的有关活动,如改善产品组合等。
3)CSF层次:行业CSF、企业CSF、部门CSF、、管理人员CSF。
4)CSF方法应用步骤:
确定企业目标:初步了解企业情况、对高层管理人员访谈、分析所得资料,确定企业目标。
识别CSF:识别实现目标的CSF、对CSF进行整合排序。
确定信息需求:确定描述CSF的性能指标、确定关键信息需求。
5)特点:
a.数据的汇总和分析过程比较随意,缺乏一种专门严格的方法将众多个人的CSF汇总成明确的企业CSF。
b.由于个人和企业的CSF往往并不一致,两者容易混淆,是企业CSF具有个人倾向性。
c.由于环境和管理经常迅速变化,可能无法适应环境变化。
d.CSF在较低的管理层次上,不容易找到对应的关键指标。
4.战略集合转化法(Strategy Set Transformation,SST)
1)SST方法将企业的战略集合(使命、目标、战略、其他企业属性)转化为
信息系统的战略集合(目标、环境约束、战略规划)
2)SST步骤
a.识别和阐明企业的战略集合。
描述出企业各类人员结构。
识别每类人员的目标。
对于每类人员识别其使命和战略。
验证企业战略集合。
b.将组织的战略集合转化为信息系统战略集合。
c.反复完善、修改,提交评审,选出一个最佳方案送主管领导审核。
3)与CSF区别
CSF能抓住主要矛盾,使目标的识别突出重点。SST从另一个角度识别管理目标,反映人的各种要求。SST保证目标比较全面,但突出重点方面不如CSF。
与BSP区别
BSP也首先强调目标,但没有明显的目标引出过程,而是通过PO矩阵,RD矩阵,CU矩阵等分析得到。
4)CSB
一般将CSF,BSP,SST三种方法结合使用,称为CSB方法。
先用CSF确定企业目标,然后用SST方法补充完善企业目标,并将这些目标转换为信息系统目标,然后用BSP方法校核两个目标,并确定信息系统结构。
5.战略数据规划法(Stragegy Data Planning,SDP)
1)SDP采用自顶向下进行全局规划,自底向上进行详细设计。
2)包括企业模型建立和主题数据库(面向业务主题、信息共享、一次一处输入系统、由基本表组成)
3)SDP区分了信息系统的4类数据环境:
文件环境(不使用数据管理系统)
应用数据库环境(使用数据库管理系统)
主题数据库环境(数据库的建立基本独立于具体应用)
信息检索系统环境
4)SDP的执行过程
企业的实体分析、实体活动分析、企业的重组、亲合度分析、分布数据规划。
信息工程方法(Information Engineering,IE)
信息工程方法的基础是BSP和SDP。
IE方法把信息系统开发过程分为4个实施阶段:信息战略规划阶段、业务领域分析阶段、系统设计阶段、
系统构建阶段。7个步骤:信息战略规划、业务领域分析、业务系统设计、技术系统设计、系统构建、
系统转换、系统运行。
信息战略规划应坚持以应用为中心原则,流程包括:评估企业的信息需求、建立企业总体信息结构、
建立企业业务系统结构、建立企业技术结构、提交信息战略规划。
战略栅格法(Strategic Grid,SG)
是一个2*2的矩阵,包括:
支持性:现有系统对战略影响低,规划中的系统对战略影响也低。投入较少资源支持。
工厂型:现有系统对战略影响高,规划中的系统对战略影响低。不需要高层人员参与。
转变型:现有系统对战略影响低,规划中的系统对战略影响高。
战略性:现有系统对战略影响高,规划中的系统对战略影响也高。
价值链分析法(Value Chain Analysis,VCA)
VCA方法就是对企业活动关键环节的辨识,即关注增值环节,也关注减值环节。
优先支持关键环节,可以产生极大的价值。
战略一致性模型(Strategy Alignment Model,SAM)
也称战略对应模型。
外部领域   企业经营战略                                       信息系统战略
企业目标、核心能力、管理制度         信息系统目标、信息系统能力、信息系统管理制度
内部领域   组织与业务流程                                   IT基础架构
企业基础设施、业务流程、组织技能  IT基础设施、IT流程、IT技能
保证业务流程与信息系统架构一致:BSP和SDP方法
保证企业战略与信息系统战略一致:SST、SG、CSF、VCA方法。
保证企业战略、业务流程和信息系统架构三者一致,IE方法。

五、企业资源规划(Enterprise Resource Planning,ERP)
1.主要功能
财会管理/物流管理/生产控制管理/人力资源管理
2.开发方法
二次开发和定制开发
3.ERP实施中存在的问题:
思想认识不足/企业管理思想陈旧,管理手段落后/企业业务流程不规范/基础数据不准确/
实施计划形同虚设/资金缺乏/高层领导不重视
ERP的实施步骤:
前期准备阶段
动员大会/基础数据准备/系统安装/程序演示和功能确认/初期数据的导入
试运行阶段
确定用户清单,划分用户权限/加强培训/业务流程重组/系统使用问题记录
交付收尾阶段
六、信息资源管理(Information Resource Management,IRM)
1.概述
1)IRM包括数据资源管理和信息处理管理,前者强调对数据的控制(维护和安全),后者关心企业管理人员如何
获取和处理信息(流程和方法)
2)IRM的基本内容包括三个主题:
资源的方向和控制/建立企业信息资源指导委员会/建立信息资源的组织机构。
可以从管理维度、信息来源维度、应用主题维度进行信息资源的分类。
2.规范与标准
1)IRM基础标准
数据元素标准、信息分类编码标准、用户视图标准、概念数据库标准、逻辑数据库标准。
2)制定和实施的原则
不能把例外当成正规。
管理部门必须支持并乐于帮助执行标准。
标准必须是从实际出发的、有生命力的、切实可行的。
标准不是绝对的,必须有某种灵活的余地。
标准不应迁就落后。
标准必须是容易执行的。
标准必须加以宣传推广。
关于标准的细节本身并不重要,重要的是制定了某些标准。
标准应该逐渐地制定出来,不要企图把所有的数据管理标准一次搞完。
数据管理的最重要标准是一致性标准,也就是数据命名、数据属性、数据设计和数据使用的一致性。
3.信息资源规划(Information Resource Planning,IRP)
1)主要过程:
业务主线和数据主线
征求业务和信息部门初步意见(定义职能域)
业务需求分析                   数据需求分析
职能域分析                      用户视图收集
业务域定义                      用户视图分组、分析
业务流程梳理                   数据元素分析
建立IRM基础标准
系统功能建模                   系统数据建模
子系统定义                       主题数据库定义
功能模块定义                   基本表定义
程序单元定义                   扩展表定义
建立关联模型(CU矩阵)
七、企业信息系统
1.客户关系管理CRM
1)CRM的功能
客户服务、市场营销、共享的客户资料库、分析能力。其中客户服务、市场营销是CRM的支柱性功能。
2)CRM解决方案要素:
a.畅通有效的客户交流渠道(触发中心)。
b.对所获信息进行有效分析(挖掘中心).
c.CRM必须能与ERP很好的集成。
3)CRM的实现过程
客户服务与支持,即通过控制服务品质以赢得顾客的忠诚度。
客户群维系,即通过与顾客的交流实现新的销售。
商机管理,即利用数据库开展销售。
2.供应链管理(Supply Chain Management,SCM)
1)SCM包括:计划、采购、制造、配送、退货五大基本内容。
2)SCM的关键问题
a.配送网络的重构.
b.配送战略问题 直接转运战略(中央仓库只是调节和转运,不保留库存)、经典配送战略(中央仓库保留库存)、
直接运输战略(不设中央仓库).
c.供应链集成于战略伙伴
d.库存控制问题
e.产品设计
f.信息技术和决策支持系统
g.顾客价值的衡量
3.产品数据管理(Priduct Data Management,PDM)
1)PDM的核心思想是设计数据的有序、设计过程的优化和资源共享。
2)PDM发展分为3个阶段:
第一阶段 配合CAD(Computer Aided Design,计算机辅助设计)使用
第二阶段 产品数据管理
第三阶段 产品协调商务(Collaborative Product Commerce,CPC)或PDM标准化。
3)PDM的核心功能
a.数据库和文档管理
b.产品结构与配置管理
c.生命周期管理和流程管理
d.集成开发接口
4.产品生命周期管理(Product Lifecycle Management,PLM)
PLM完全包含了PDM的全部内容,PDM是PLM的一个子集。
5.知识管理
知识分为显性知识与隐性知识。
知识管理工具分为知识生成工具、知识编码工具(标准形式展现)、知识转移工具(传播分享)。
6.商业智能BI
BI系统主要包括数据预处理、建立数据仓库、数据分析、数据展现4个主要阶段。
数据预处理包括抽取、转换、加载3个过程。
BI项目的实施步骤:
需求分析。
数据仓库建模。
数据抽取。
建立BI分析报表。
用户培训和数据模拟测试。
系统改进和完善。
7.企业门户(Enterprise Portal,EP)
1)企业门户分类:
企业网站
企业信息门户(Enterprise Information Portal,EIP)
企业知识门户(Enterprise Knowledge Portal,EKP)
企业应用门户(Enterprise Application Portal,EAP)
2)EP实施的关键问题
单点登录。
业务流程整合。
个性化配置。
与企业应用系统的集成。
知识转化。
8.电子商务(Electronic Commerce,EC)
9.决策支持系统(Decision Support System,DSS)
1)分类
结构化决策(有明确最优方案)、非结构化决策(无所谓最优解)、半结构化决策.
DSS是由模型驱动的
2)DSS的功能
管理并随时提供与决策问题有关的企业内部信息。
能以一定的方式存储和管理与决策问题有关的各种数学模型。
能灵活运用模型与方法对数据进行加工、汇总、分析、预测。
提供良好的数据通信功能,加工及响应速度。
3)DSS基本结构
数据库子系统、模型库子系统、推理部分和用户接口子系统。
推理部分包括知识库(方法库)、知识库管理系统和推理机组成。
4)DSS与MIS差别
DSS追求的目标是高性能,MIS追求高效益。
DSS着眼于决策,MIS着眼于信息。
DSS的设计思想是实现一个开发系统,MIS的设计思想是实现一个稳定而协调的工作系统。
DSS的设计原则强调发挥人的作用,MIS设计原则强调客观性。
DSS的设计方法是模型驱动的,MIS是数据驱动的。
DSS由用户接口系统、数据库系统、模型库系统、知识库系统组成;MIS由用户接口系统和数据库系统组成。
DSS能够帮助解决半结构化和非结构化的决策问题;MIS只能解决结构化的决策问题。
八、电子政务
1.电子政务建设对政府职能转变的影响
a.电子政务建设有助于促进政府职能重心由管制型向管理服务型转变。
b.电子政务建设有助于促进政府职能的内容形式由单一化向多元化发展。
c.电子政务建设有助于促进政府职能定位由全能型向有限型转变。
d.电子政务建设有助于促进政府经济职能的行使方式由微观、直接向宏观、间接转变。
e.电子政务建设有利于促进政府职能关系的改善。
2.电子政务建设对政府职能转变的需求
a.科学配置政府职能,整合组织结构。
b.改革行政审批制度,明确政府职能范围。
c.重组政务流程,改革职能运作模式。
电子政务建设促进政府职能转变的核心是政务流程重组。政府流程重组(Government Process Reengineering,GPR)是
基于原有政府管理模式,以提高行政效率和公共服务质量为目标,对政府业务流程进行优化和重组。
GRP是电子政务建设的前提条件,是政府必须提供的前提基础。
3.电子政务的模式
1)业务模型
政务信息查询/公共政务办公/政府办公自动化
2)应用模式
政府对政府G2G,政府对企业G2B,政府对公众G2C,政府对公务员G2E
4.电子政务实施存在的问题
a.公务员对电子政务的认识不足,重视程度仍然不够。
b.缺乏整体性规划和统一性标准。
c.政府流程重组远未到位。
d.电子政务整体应用水平还较低。
e.政府公务员素质有待提高。
f.电子政务立法滞后。
g.对电子政务安全问题缺乏正确认识。
5.电子政务安全体系
物理安全、网络安全、信息安全、安全管理等方面。常用做法是在内外网之间实行物理隔离,在部门内网
和政府专网间实行逻辑隔离。
6.指导思想和原则:统一规划,加强领导;需求主导,突出重点;整合资源,拉动产业;统一标准,安全保障。
九、业务流程重组BPR
1.BPR与信息系统规划的关系
信息系统规划要以BPR为前提,以业务流程为主线。
面向流程的信息系统规划驱动企业的BPR。
2.基于BPR的信息系统规划步骤:
战略规划
流程规划 选取核心业务流程,进行流程分析,识别关键业务流程,发现需要改进的流程,
提出改进后的业务流程图。
数据规划
功能规划
实施规划
十、企业应用集成(Enterprise Application Integration,EAI)
企业应用集成EAI将众多信息孤岛联系起来。
1.EAI是分层次的,包括表示集成、数据集成、控制集成、业务流程集成。
1)表示集成
也称界面集成,是一种黑盒集成。如屏幕截取、输入模拟技术。
2)数据集成
为了完成控制集成和业务流程集成,需要先解决数据和数据库集成问题。
数据集成是一种白盒集成,如批量文件传输,不同数据库间的ODBC标准接口,数据库访问中间件技术等。
3)控制集成
也称功能集成或应用集成,在业务逻辑层上对应用系统进行集成。
控制集成的集成点位于程序代码中,集成处可以通过简单的API访问,是一种黑盒集成
4)业务流程集成
也称过程集成。
5)企业间应用集成
2.事件驱动集成
1)事件驱动架构(Event-Driven Architecture,EDA)
事件驱动非常适合分布式异构系统之间的松耦合协作。
特点:异步、发布订阅的消息交互模式、发布者与订阅者解耦。
主要模块:异步消息机制、事件管理
2)事件驱动的EAI服务架构(5层):
a.核心服务层 单点登陆、权限控制
b.业务支持层 服务注册,服务管理,业务流程安排
c.企业服务总线(Enterprise Service Bus,ESB) 数据转换,消息传输,动态路由。
d.总线接入层 提供适配服务,支持多种接入协议。数据接口,应用程序接口。
e.应用服务层 需要集成的各个应用系统和数据库。
事件驱动的EAI框架基于面向服务技术。

-----------------------------------------------------------
-----------------------------------------------------------
第8章 软件过程
一 软件工程概要
IEEE对软件工程的定义:将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
软件工程由方法、工具、过程三个部分组成。
目的是提高软件生产率、提高软件质量、降低软件成本。
1.开发模型
1)瀑布模型SDLC 适用于需求明确
定义阶段[软件计划-->需求分析]
-->开发阶段[软件设计-->程序编码-->软件测试]
-->维护阶段[运行维护]
每个阶段结束后都会进行评审。
2)演化模型(变换模型) 适用于需求不明确    通过对原型的不断演化,形成最终产品
3)增量模型 在原型思想和瀑布模型的基础上演化而来 强调一块一块的做
4)螺旋模型 融合原型/瀑布/演化模型的特点 引入了风险分析
5)v模型 需求分析-->概要设计-->详细设计-->编码-->V-->单元测试-->集成测试-->系统测试-->验收测试
需求分析-->验收测试/系统测试计划做成
概要设计-->集成测试
详细设计-->单元测试
v模型强调尽早测试,全程测试。
6)喷泉模型 面向对象的模型 早期的都是面向结构化的模型 具有迭代/无间隙的特点。
7)CBSD构件组装模型 将组成部分构件化 提高了软件开发的复用性
需求分析和定义-->软件架构定义-->构件库的建立-->应用软件构建-->测试和发布
常见的构件标准 CORBA/COM-DCOM-COM+/EJB
8)RAD快速开发模型 由瀑布模型SDLC和CBSD构件化开发模型发展而来 例如C#组件拖拉
业务建模-->数据建模-->过程建模-->应用生成-->测试与交付
9)统一过程模型UP/RUP 可以应用于大型项目
特点:用例驱动/以架构为中心/迭代和增量
流程:初始-->细化-->构建-->交付-->初始
初始:1)明确项目规模 确定项目范围和边界
2)识别系统的关键用例
3)展示系统的候选架构
4)制定项目计划 估计项目费用和时间
5)评估项目风险
细化:1)分析系统问题领域
2)建立软件架构基础 确定架构/制定构建阶段计划/建立支持环境/选择构件
3)淘汰最高风险元素
构建:1)开发剩余的构件
2)构件组装与测试
移交交付:1)进行beta测试(在用户环境中进行的测试)
2)制作发布版本
3)用户文档定稿
4)确认新系统
5)用户培训、调整产品
10)敏捷开发方法 适合于小项目
a.代表方法
自适应开发/水晶方法/特征驱动方法/SCRUM/极限编程XP
b.基本原则
短平快的会议
小型版本发布
较少的文档
合作为重
客户直接参与
自动化测试
适应性计划调整
结对编程
测试驱动开发
持续集成
重构
c.XP极限编程
价值观:沟通/简单/反馈/勇气
5大原则:快速反馈/简单性假设/逐步修改/提倡更改/优质工作
最佳实践:
计划游戏/小型发布/隐喻/简单设计/测试先行/重构/结对编程/集体代码所有制
/持续集成/每周工作40h/现场客户/编码标准
强调小步快走的开发原则

*******************************
敏捷开发
)敏捷软件开发宣言:个体和交互胜过过程和工具,可工作的软件胜过大量文档,客户合作胜过合同谈判,响应变化胜过遵循计划。
1.XP极限编程
XP由价值观、原则、实践和行为四个部分组成
a.价值观:沟通、简单、反馈、勇气四大价值观。
b.5大原则 快速反馈/简单性假设/逐步修改/提倡更改/优质工作
c.最佳实践
计划游戏/小型发布/隐喻/简单设计/测试先行/重构/结对编程/集体代码所有制
/持续集成/每周工作40h/现场客户/编码标准
2.特征驱动开发FDD
FDD认为,有效的软件开发不可缺少的三个要素是:人、过程和技术。软件开发不
FDD定义了6种关键的项目角色:项目经理、首席架构设计师、开发经理、主程序员、
程序员、领域专家。
FDD有5个核心过程:开发整体对象模型---->构造特征列表---->计划特征开发---->
特征设计---->特征构建
FDD的最佳实践包括:领域对象建模、根据特征进行开发、类的个体所有、组成特征小组、
审查、定期构造、配置管理、结果的可见性。
3.Scrum
a.在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint。
在Scrum中,使用产品Backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通
常为用户故事。
b.Scrum主要包括5个活动:产品待办事项列表梳理、Sprint计划会议(做哪些、如何做、输出sprint待办事项列表)、每日Scrum会议、Sprint评审会议、Sprint回顾会议。
c.Scrum5大价值观
承诺-愿意对目标做出承诺。
专注-把你的心思和能力都用到你承诺的工作上去。
开放-把项目中的一切开放给每个人看。
尊重-每个人都有他独特的背景和经验。
勇气-有勇气做出承诺,履行承诺,接受别人的尊重。
4.水晶方法Crystal
Crystal,提倡机动性方法,对不同类型项目,采用不同方法。
每个方法包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践。
水晶方法中,使用频度最高的是透明水晶方法。
透明水晶方法有七大体系特征:经常交付、反思改进、渗透式交流、个人安全、焦点、
与专家用户建立方便的联系、配有自动化测试和持续集成的技术环境
5.开放式源码
开放源码,适合跨地域的团队。
开放源码的一个突出特点就是查错排障的高度并行性,任何人发现了错误都可将改正源码
的发给维护者。
6.ASD
ASD(Adaptive Software Development)自适应软件开发方法核心是三个非线性的、重叠的
开发阶段:猜测、合作与学习。
7.UP的生命周期
UP不是敏捷开发方法
UP的生命周期中共有4个人里程碑:
目标里程碑。目标里程碑对应着先启阶段的结束,当开发者可以明确软件系统的目标和范围时即达到了该里程碑。
架构里程碑。架构里程碑是UP生命周期中的第二个里程碑,在这个里程碑前,开发者需要确定稳定的系统架构。
能力里程碑。当系统已经足够的稳定和成熟并完成Alpha测试后,认为达到了第3个里程碑。
发布里程碑。在达到发布里程碑前,需要完成系统的测试、完成系统发布和用户培训等工作。
UP是一个二维码模型:横轴包括:初始、细化、构件、交付4个迭代的阶段。
纵轴包括:业务建模、需求、分析设计、实施、测试、部署、配置与变更管理、项目管理、环境称为UP的9个核心工作流。


1.端口
POP3:110端口,邮件收取。
SMTP:25端口,邮件发送。
FTP:20数据端口/21控制端口,文件传输协议。
DHCP:67端口,IP地址自动分配。
SNMP:161端口,简单网络管理协议。
DNS:53端口,域名解析协议,记录域名与IP的映射关系。
2.TCP连接状态
LISTEN:侦听来自远方的TCP端口的连接请求。
SYN-SENT:在发送连接请求后等待匹配的连接请求。
SYN-RECEIVED:在收到和发送一个连接请求后等待对方对连接请求的确认。
ESTABLISHED:代表一个打开的连接。
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认 。
FIN-WAIT-2:从远程TCP等待连接中断请求。
CLOSE-WAIT:等待从本地用户发来的连接中断请求。
CLOSING:等待远程TCP对连接中断的确认。
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认。
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认。
CLOSED:没有任何连接状态。
*******************************

2.逆向工程
现有系统-->逆向工程-->新需求-->正向工程-->新系统
现有系统-->再工程(重构)-->新系统
3.设计模型(实现级)
程序和数据结构信息(结构级)
对象模型、数据和控制流模型(功能级)
UML状态图和部署图(领域级)
4.净室软件过程
净室即无尘、洁净室。也就是一个受控污染级别的环境。
使用盒结构规约(或形式化方法)进行分析和设计建模,并且强调将正确性
验证,而不是测试,作为发现和消除错误的主要机制。
使用统计的测试来获取认证被交付软件的可靠性所必须的出错率信息。
5.新旧系统转换策略
直接转换策略/并行转换策略/分段转换策略
数据转换与迁移
旧数据库-->抽取-->转换-->装载-->新数据库
6.系统运行与维护
软件维护交付前的活动包括:交付后运行的计划和维护计划等;交付后的活动包括软件修改、培训、帮助资料等。
可维护性:易分析性/易改变性/稳定性/易测试性
维护类型:改正性(正确性)维护(25%)、适应性维护(20%)、完善性维护(50%)、预防性维护(5%)
7.CMMI 能力成熟度模型
阶段式(组织能力成熟度) 混乱级/已管理级(项目级)/已定义级(组织级)/定量管理级(量化管理)/优化级(持续优化)
连续式(软件过程能力)

二、软件生命周期
1.软件生存周期
5个基本过程/9个支持过程/7个组织过程。
每个过程分为一组活动,每一项活动进一步划分为一组任务。
基本过程分为:获取过程(需方)/供应过程(供方)/开发过程(开发方)/运作过程(使用方)/维护过程(维护方)
支持过程分为:文档编制过程/配置管理过程/质量保证过程/验证过程/确认过程/联合评审过程/审核过程/问题解决过程/易用性过程
组织过程分为:管理过程/基础设施过程/改进过程/人力资源过程/资产管理过程/重用大纲管理过程/领域工程过程
2.软件生命周期
共10个阶段:可行性研究/需求分析/概要设计/详细设计/实现/组装测试/确认测试/使用/维护/退役
可行性研究和项目开发计划:得出可行性研究报告/项目开发计划
需求分析:定义SRS(Software Requirements Specification,软件需求规格说明书)
概要设计:定义模块接口/设计全局数据库/规定设计约束/制定组装测试计划
详细设计:
实现:完成程序和单元测试
组装测试:
确认测试:验收
使用:收集发现的软件错误,撰写软件问题报告和软件修改报告
维护:
退役:

三、软件开发方法
1.分类
从开发风范上分为自顶向下开发和自底向上开发。
从性质上分为形式化方法和非形式化方法。
从适应范围上分为整体性方法和局部性方法。
2.形式化方法
1)形式化方法是具有坚实数学基础的方法。
2)形式化方法通过下面两个方面改善其实用性:
a.形式化方法与图形语言机制相结合。b.用CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具,支持形式化软件开发。
3)净室软件工程CSE(Cleanroom Software Engineering)
净室即无尘、洁净室。也就是一个受控污染级别的环境。
净室软件工程是软件开发的一种形式化方法。使用盒结构归约进行分析和建模,将正确性验证作为发现和排除错误的主要机制,
使用统计测试来获取认证软件可靠性所需的信息。
它对开发人员要求较高,正确性验证比较困难且耗时,不现实。
3..逆向工程
1)现有系统-->逆向工程-->新需求-->正向工程-->新系统
现有系统-->再工程(重构)-->新系统
2)完备性
逆向工程的完备性可以用在某一个抽象层次上提供信息的详细程度来描述。
抽象层次越高,完备性越低,与代码距离越远,逆向恢复难度越大。

四、软件开发模型
1.软件开发模型为软件工程管理提供了里程碑和进度表,为软件开发过程提供了原则和方法。
软件开发模型可以分为三类:
a.软件需求完全确定 如:瀑布模型;
b.在软件开发初始阶段只能提供基本需求 需要迭代式或渐进式开发模型 如:喷泉模型、螺旋模型、统一开发过程、敏捷方法等;
c.以形式化方法为基础的变换模型
2.常见模型
1)瀑布模型
将软件开发过程分为:软件计划、需求分析、软件设计、程序编码、软件测试、运行维护6个阶段。
定义阶段(软件计划、需求分析)、开发阶段(软件设计、程序编码、软件测试)、维护阶段(运行维护)
瀑布模型不能满足软件的演化特点,不能适应需求变化;风险往往到后期才会发现,风险控制能力较弱。
2)演化模型
演化模型在快速开发一个原型的基础上,对原型不断改进,演化为最终产品。
缺点是:如果不加控制的让用户接触不稳定的功能,可能会产生负面影响。
3)螺旋模型
螺旋模型将瀑布模型和演化模型相结合,并引入了风险分析。
螺旋模型每次迭代都包括:制定计划、风险分析、实施工程和客户评估4方面。
4)喷泉模型
是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。
5)变换模型
变换模型是基于形式化规格说明语言和程序变换的软件开发模型。
a.往往以形式化规格说明为基础,开发一个软件原型。开发人员可对形式化的规格说明进行一系列的程序变换,
直至生成计算机可以接受的目标代码。
b.程序变换是软件开发的另一种方法,其基本思想是把程序设计的过程分为生成阶段和改进阶段。
变换后程序的正确性由变换法则的正确性来保证。
变换模型的优点是解决了代码结构经多次修改而变坏的问题,减少了许多中间步骤(如:设计、编码、测试)。
变换模型的缺点是局限性较大,需要严格的数学理论和一整套开发环境的支持。
6)智能模型
也称基于知识的软件开发模型,它综合了上述若干模型,并与专家系统结合在了一起。
7)V模型
V模型是在快速应用开发模型基础上演变而来的。
需求分析-->概要设计-->详细设计-->编码-->V-->单元测试-->集成测试-->系统测试-->验收测试
需求分析-->验收测试/系统测试计划做成
概要设计-->集成测试
详细设计-->单元测试
3.快速应用开发模型
1)快速应用开发(Rapid Application Development,RAD)强调极短的开发周期。
RAD模型是瀑布模型的高速变种,通过使用基于构件的开发方法获得快速开发。如C#的拖拉拽。
2)RAD基本思想
a.让用户更主动的参与到系统分析,设计和构造活动中来。
b.将项目开发组织成一系列重点突出的研讨会,让各方一起参与。
c.通过一种迭代的构造方法,加速需求分析和设计阶段。
d.让用户提前看到一个可工作的系统。
3)RAD开发阶段
业务建模/数据建模/处理建模/应用生成/测试交付。
4)RAD特点
通过大量使用可复用构件,加快了开发速度。
局限性:RAD只适用于管理信息系统的开发,不适合技术风险很高的情况。
必须在较短的时间内完成需求分析,任何一方不配合,都可能导致项目失败。
RAD对模块化要求比较高,不适合于所有项目。
4.统一过程模型
1)统一过程(Unified Process,UP)是一个通用过程框架。
UP是基于构件的,在为软件系统建模时,使用的是UML。
UP的三个显著特点:用例驱动,以架构为中心,迭代和增量。
UP的目标是:在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。
2)RUP阶段划分:初始阶段,细化阶段,构建阶段,移交阶段。每个阶段都要安排一次技术评审。
通过循环迭代上面四个过程,生成最终产品。
初始阶段:明确项目规模/评估项目风险/制定项目计划/阶段技术评审
细化阶段:确定架构/制定构建阶段计划/建立支持环境/选择构件/阶段技术评审
构建阶段:
移交阶段:
3)RUP过于庞大和复杂,不能快速适应需求变更。对于较小的项目使用敏捷开发更合适。
5.敏捷开发
1)敏捷软件开发宣言:个体和交互胜过过程和工具,可工作的软件胜过大量文档,客户合作胜过合同谈判,响应变化胜过遵循计划。
2)主要的敏捷方法:极限编程XP,自适应软件开发ASD,水晶方法Crystal,特性驱动开发(FDD),动态系统开发方法(DSDM),测试驱动开发(TDD),
敏捷数据库技术AD和精益软件开发(Lean Software Development)等。
3)XP的四大价值观:沟通,简单,反馈,勇气。
4)敏捷的困难
a.客户参与往往依赖于客户参与的意愿和客户自身的代表性。
b.团体成员性格不适合激烈投入和高效沟通。
c.对系统的变更作出优先级排序可能是极端困难的。
d.维护系统的简洁性需要额外的工作,可能没有时间进行。
5)敏捷方法的适用场合
a.项目团队人数不能太多,适合规模较小的项目。
b.项目经常变更。
c.高风险项目。
d.从组织结构上看,文化、人员、沟通性注定了敏捷方法是否适用。
五、软件过程管理
1.软件能力成熟度模型(Capability Maturity Model,CMM)
1)CMM的5个成熟度等级:
初始级(混乱级)/可重复级(已建立基本的项目管理)/已定义级(整个组织标准管理)/已管理级(量化管理)/优化级(持续优化)
2)CMMI(能力成熟度模型集成)模型(24个过程域)
阶段式模型:初始级/可重复级/已定义级/已管理级/优化级
连续式模型:过程管理、项目管理、工程、支持。
2.软件过程评估
1)CMM评估
2)Trillum模型 主要用于嵌入式软件开发和支持的能力评估模型。以CMM为基础。
3)Bootstrap方法,改进了CMM的问卷表和成熟度计算方法。
4)ISO/IEC 15504标准
5)SJ/T 11234-2001标准
我国的行业标准,与CMMI类似,共22个过程域,分为4大类:过程管理类,项目管理类,工程化类,支持类。
6个评估等级:不完整级,已执行级,受管理级,已定义级,定量管理级,持续优化级。

-----------------------------------------------------------
-----------------------------------------------------------
第9章 系统规划
一、系统规划概要
系统规划是信息系统生命周期的第一阶段,任务是对企业企业环境、目标、现有系统状况进行初步调查,根据企业目标和发展战略,
确定信息系统发展战略,对建设新系统的需求做出分析和预测,同时考虑新系统所受的各种约束,研究建设新系统的必要性和可能性。
系统分析师要给出拟建系统的备选方案,对方案进行可行性分析,得出可行性研究报告,
评审报告,将新系统建设方案及实施计划编成系统设计任务书。
1.系统规划主要内容:项目的机会选择/可行性分析/成本效益分析
2.项目机会选择
1)立项目标和动机
进行基础研究/进行应用研发/提供技术服务/产品的使用者
市场需求/政策导向/技术发展
2)立项价值判断
3)项目选择和确定
选择有核心价值的项目/评估所选项目/项目优先级排序/评估项目的多钟实施方式/平衡的选择合适的方案
4)初步调查
初步需求分析/企业基本状况/管理方式和基础数据管理状况/现有系统状况
2.可行性分析
经济可行性/技术可行性/法律可行性(社会可行性)/用户使用可行性(管理可行性、运行可行性)
可行性研究步骤
候选系统方案矩阵/可行性评价矩阵(权重)
产出物:可行性分析报告
3.成本效益分析
1)分类
成本 固定成本/变动成本/混合成本    直接成本/间接成本
收益 有形收益/无形收益
工具软件许可证费用属于 固定成本
计算机使用开销 可变成本
人员工资 固定成本/混合成本
闪存光盘等 可变成本
2)净现值
利润=(销售单价-单位变动成本)*销售量-总固定成本
盈亏临界点销售量=总固定成本/(销售价格-单位变动成本)
盈亏临界点销售额=总固定成本/(1-总变动成本/销售收入 )
现值P/净现值NPV/净现值率NPVR
折现(贴现) 折现时所使用的银行利率称为折现率(贴现率)
净现值(Net Present Value,NPV)指项目周期内各年的净现金流量之和.CI-CO为当年的净现金流量。
现值P=F/(i+1)^n P为现值,n年份,i年利率,1/(1+i)^n称为折现系数(贴现因子)
净现值NPV=(sigema t[i]=0~n)[(CI-CO)[t]/(1+i)^t]
通常把NPV恰好等于0的折现率i称为内部报酬率。
净现值(NPVR) 净现值与项目投资总额现值P之比。
3)投资回收期计算
静态投资回收期/动态投资回收期(折成现值后,在计算回收期)
投资回收率 = 1/投资回收期*100%
投资回报率(ROI) = 运营期平均净收益/投资总额*100% (投资收益率)
现值指数 = 投资净收益/投资资本*100% = 100%+净现值率
内含报酬率 = 净现值等于0时的折现率

二、系统规划的步骤
1)对现有系统进行初步审查,站在管理层高度观察现状。
2)分析和确定系统目标
3)分析子系统的组成和功能 对系统进行细分细化。
4)拟定系统实施方案 确定子系统开发优先级
5)进行可行性研究 编写可行性研究报告
6)制定系统建设方案 根据系统建设方案及实施计划编写系统计划任务书。

三、项目的提出与选择
1)信息系统建设动机 进行基础研究/进行应用研发/提供技术服务/产品的使用者
2)项目立项的价值判断
3)项目的选择和确定
a.选择有核心价值的项目
b.评估所选择的项目
c.对项目优先级进行排序
d.评估项目的多种实施方式
e.平衡地选择合适的方案 平衡技术风险/用户锁定性/扩展性/目标偏离

四、初步调查
初步调查是可行性研究的基础。
主要包括:初步需求分析、企业基本情况、管理方式和基础数据管理情况、现有系统状况。

五、可行性研究
1.可行性包括必要性和可能性。是否有必要建设新系统,是否有可能实现新需求。
2.可行性可细分为经济可行性,技术可行性,法律可行性,用户可行性。其中经济可行性是项目的底线。
除了上述国家标准外,还应对项目进度可行性进行分析。
技术可行性不仅要考虑现有技术,还要考虑企业自身资源能否支持。
法律可行性也要考虑宗教/社会/道德因素。
用户可行性分管理可行性和运行可行性。企业领导是否支持,管理人员是否配合,用户有无it基础,有无运行系统的能力。
3.可行性研究步骤(8步)
1)复查系统目标和规模
2)分析现有系统
3)导出新系统的高层逻辑结构
a.系统上下文关系范围图(DFD0层图),系统与外界实体(用户,外部系统等)的关系(数据流,控制流)
b.E-R图 不需要完整的e-r图,找到主要实体及关系即可。
c.用例模型 说明用例/参与者的关系。
d.领域模型 说明系统中主要实体类和他们之间的关系。
e.IPO(Input/Process/Output,输入/处理/输出)图。
数据流图(Data Flow Diagram):简称DFD
4)用户复核
5)提出并评价解决方案 可以使用候选系统方案矩阵和可行性分析矩阵
6)确定最终解决方案 对最终方案进行更加详细的成本效益分析
7)草拟开发计划
8)编制和提交可行性研究报告
4.可行性研究报告
正文格式:
引言,引用文件,可行性研究前提(项目要求/目标/环境/限制/研究方法等),可选的方案,所建议的系统,经济可行性,技术可行性,
法律可行性,用户可行性,其它项目相关问题,注解(如词汇表),附录。

六、成本效益分析
1.成本
1)按投资时间分为:基础建设投资,其他一次性投资,非一次性投资。
基础建设投资:办公设备,工具软件,可以一次性也可以分期付款。
其他一次性投资:指一次性杂费,研究咨询成本,调研费,管理成本,培训费,差旅费等。
非一次性投资:指系统的运行与维护成本,设备租金,通信费,人员工资与奖金,房屋租金,设施维护。
2)按成本性态分为:固定成本,变动成本,混合成本。
固定成本:管理人员的工资,办公费,固定资产折旧,员工培训费等。
细分为:酌量性固定成本(广告费,培训费,技术开发费) 约束性固定成本(租金,管理人员工资等)
变动成本:直接材料费,产品包装费,外包费,开发奖金等
细分为:酌量性变动成本(开发奖金,外包费用等) 约束性变动成本(直接材料费等)
混合成本:水电费,电话费,员工工资(固定+绩效)等
2.收益
有形收益(经济收益)/无形收益(不可定量收益)
一次性经济收益/非一次性经济收益
3.盈亏临界分析
又称损益平衡分析,盈亏临界点也称盈亏平衡点,保本点。
利润=(销售单价-单位变动成本)*销售量-总固定成本
盈亏临界点销售量=总固定成本/(销售单价-单位变动成本)
盈亏临界点销售额=总固定成本/(1-总变动成本/销售收入)
4.净现值分析
折现(贴现) 折现时所使用的银行利率称为折现率(贴现率)
净现值(Net Present Value,NPV)指项目周期内各年的净现金流量之和.CI-CO为当年的净现金流量。
现值P=F/(i+1)^n P为现值,1/(1+i)^n称为折现系数(贴现因子)
净现值NPV=(sigema t[i]=0~n)[(CI-CO)[t]/(1+i)^t]
通常把NPV恰好等于0的折现率i称为内部报酬率。
净现值(NPVR) 净现值与项目投资总额现值P之比。
5.投资回收
投资回收期分为静态投资回收期(不考虑资金的时间价值)和动态投资回收期(考虑资金的时间价值)
投资回收率=1/动态投资回收期*100%
6.投资收益率(投资利润率)(现值指数)
指投资收益占投资成本的比率 投资收益率=投资收益/投资成本*100%

七、系统方案
1.候选方案矩阵/可行性分析矩阵
2.系统建议方案报告
系统方案可以单独做成文档(系统建议方案报告,系统方案说明书),也可以合并到可行性分析研究报告中。
当作为单独文档时,应包括:
前置部分(标题,目录,摘要),系统概述,候选方案及可行性分析,建议方案,结论,附录。

-----------------------------------------------------------
-----------------------------------------------------------
第10章 系统分析
系统分析和软件需求工程概述
1.概念
软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。
软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、
标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。

需求管理--支持-->需求开发
需求管理 变更控制/版本控制/需求跟踪/需求状态跟踪
需求开发 需求获取/需求分析/需求定义/需求验证

2.软件需求
1.软件需求分类:业务需求/用户需求/系统需求(功能需求/性能需求/设计约束)
QFD:基本需求/期望需求/兴奋需求
获取方法:
收集资料/联合需求计划/用户访谈/书面调查/情节串联板/现场观摩/参加业务实践/阅读历史文档/抽样调查
2.PIECES方法:
PIECES方法可以用来对非功能性需求进行分类。
性能(Preformance):用于描述企业当前的运行效率,可以分析当前业务的处理速度。
信息(Information):信息和数据指标用于描述业务数据的输入、输出以及处理方面存在的各种问题。
经济(Economics):经济指标主要从成本和效益的角度分析企业当前存在问题。
控制(Control):提高信息系统的安全和控制水平
效率(Efficiency):提高企业的人、财、物等的使用效率
服务(Service):提高企业对客户、供应商、合作伙伴、顾客等的服务质量。
3.SA结构化需求分析:
功能模型-数据流图DFD(四种元素:数据流、加工、数据存储、外部实体)
行为模型-状态转换图STD:状态(初态、终态)、事件
数据模型-E-R图(实体、联系)
数据字典(数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体)
4.OOA面向对象需求分析:
类(实体类、边界类、控制类)
1)UML
UML的结构包括构造块、规则、公共机制三部分。
构造块:UML有三种基本构造块,事物(thing)、关系(relationship)、图(diagram).图是多个相互关联的事物的集合。
事务分类:
结构事物、行为事物、分组事物、注释事物
关系分类:
依赖、关联、泛化、实现
图的分类:
结构图/静态图:类图/对象图/包图/组合结构图/构件图/部署图/制品图
行为图/动态图:用例图/顺序图(序列图)/通信图(协作图)/定时图/状态图/活动图/交互概览图
公共机制:
规格说明、修饰、公共分类、扩展机制
2)OOA建模:
a.主要模型用例模型/分析模型
b.用例模型建模过程:识别参与者、合并需求获取用例、细化用例描述、调整用例模板。
细化用例描述包括:用例名称、简要说明、事件流、非功能需求、前置条件、后置条件、扩展点、优先级
调整用例模板包括:包含关系、扩展关系、泛化关系
c.分析模型(类图模型)建模过程:定义概念类、识别类间关系、为类添加职责、建立交互图
类间关系有:依赖关系、关联关系、聚合关系、组合关系、泛化关系、实现关系。
关联(直线)、依赖(虚线实箭头)、共享聚集/聚合(车轮与汽车,实线空菱形)、
组合(类的部分与主体,实线实菱形)、泛化(父子,实线空箭头)、实现(接口与实现,虚线空箭头)
5.需求定义
严格定义法、原型法。
1)严格定义法要求:
所有需求都能够被预先定义;
开发人员与用户之间能否准确而清晰地交流;
采用图形/文字可以充分体现最终系统。
2)使用原型法的原因:
并非所有的需求都能在开发前被准确地说明;
项目参加者之间通常都存在交流上的困难;
需要实际的、可供用户参与的系统模型;
有合适的系统开发环境;
反复是完全需要和值得提倡的,需求一旦确定,就应该遵从严格的方法。
6.需求验证
需求评审/需求测试  正式评审/非正式评审
需求验证要有用户参与。
7.需求基线
被正式认可的需求,需求变更流程
8.需求跟踪矩阵
双向跟踪包括正向跟踪和反向跟踪。
正向跟踪:检查SRS中的每个需求是否都实现了。
逆向跟踪:检查设计文档、代码、测试用例等工作成果是否都能在SRS中找到出处。
原始需求(需求点)/用例(UC-1..n)
用例(UC-1..n)/元素(功能点、设计元素、代码元素、测试用例)
-------------------------------------------------------------

系统分析
系统分析阶段也称逻辑设计阶段,任务是根据系统设计任务书所确定的范围,对现有系统进行详细调查,描述现有系统的业务流程,
指出现有系统的局限性与不足,确定新系统的基本目标和逻辑功能要求,提出新系统的逻辑模型。
提出新系统“做什么”的逻辑模型。
系统分析阶段的工作成果体现在需求规格说明书中,是系统设计阶段的工作依据,也是将来系统验收的依据。
一.概述
系统分析阶段要明确做什么的问题,困难体现在3个方面:
系统分析师与用户对系统的理解不同。
系统分析师与用户沟通困难。
环境的不断变化。
二.详细调查
详细调查原则:自顶向下全面展开、用户参与、分析系统有无改进的可能、采用工程化的工作过方式、全面铺开与重点调查相结合、主动沟通和友善的工作方式。
详细调查内容:现有系统的运行环境和状况、组织结构、业务流程、系统功能、数据与数据流程、资源情况、约束条件、薄弱环节。
详细调查方法:收集资料、开调查会、个别访问、书面调查、抽样调查、现场观摩、参加业务实践、阅读历史文档。
三.现有系统分析
1)获得现有系统的物理模型
2)抽象出现有系统的逻辑模型
3)建立新系统的逻辑模型
4)建立新系统的物理模型
四.组织结构分析
组织结构图是一个以行政隶属关系为主体的树形图。
1)组织结构图
除上下级领导关系外、还应标明信息,物质,资金的流动关系
2)组织结构调查
切实了解各部门职责
明确企业边界 企业各部门之外的任何事物都被认为是环境,包括社会环境、经济环境、政治环境。
五.系统功能分析
功能体系图是一个完全以业务功能为主体的树形图。
六.业务流程分析
1)业务流程分析的具体步骤:通过调查掌握基本情况、描述现有业务流程、确认现有业务流程、对业务流程进行分析、发现问题并提出解决方案、提出优化后的业务流程。
业务流程的分析方法:价值链分析法、客户关系分析法、供应链分析法、基于ERP的分析法和业务流程重组等。
价值链分析法:找出或设计出那些能够使顾客满意,实现顾客价值最大化的业务流程。
客户关系分析法:把CRM用在业务流程分析上。CRM的目标是建立以客户为导向的组织结构。
供应链分析法:从企业内部外部供应链的角度分析企业的业务流程。
基于ERP的分析法:将企业的业务流程看做是一个紧密联系的供应链
业务流程重组:通过重新审视企业的价值链,从功能成本的比较分析中,确定企业在哪些环节具有比较优势。在此基础上,以客户满意为出发点进行价值链的分解与整合,改造原有的业务流程,实现业务流程的最优化。
业务流程分析工具:
业务流程图(Transaction Flow Diagram,TFD)、业务活动图示(Business Activity Mapping,BAM)和UML的活动图。目前许多项目已不再使用TFD,而用DFD、UML活动图代替。
2)业务流程图TFD
TFD有6种基本图形符号
圆圈(业务处理单位)、矩形框(业务处理)、报表符号、右开口方框(存储文件)、卡片符号(数据收集)、矢量连线(业务流向)
3)业务活动图示BAM
4)业务流程建模BPM
企业业务流程包含三个要素:实体、对象、活动。
BPM可分为三个层次:
第一个层次是模型的要素,即目标、知识和数据
第二个层次是模型的构造
第三个层析是对模型的可信性分析
描述业务流程模型的方法有形式化描述和图示化描述。图示化描述方法有:标杆瞄准、IDEF(Integration DEFinition method,集成定义方法)、Petri网、DEMO(Dynamic Essential Modeling of Organization,组织动态本质建模法)、业务流程建模语言等。
标杆瞄准:借鉴其他企业经验。
IDEF:IDEF0可以用来对业务流程进行建模
DEMO:DEMO定义了信息系统中行为角色之间的通信方式。
Petri网
业务流程建模语言
常见的有五种
业务流程建模语言Business Process Modeling Language,BPML)
业务流程执行语言(Business Process Execution Language,BPEL)
业务流程建模标注语言(Business Process Modeling Notation,BPMN)
XML流程定义语言(XML Process Definition Language,XPDL)
UML
七、数据与数据流程分析
数据与数据流程分析是建立数据库系统和设计功能模块处理过程的基础。
1.数据汇总分析
2.数据属性分析
数据静态分析、数据动态分析、数据存储分析
3.数据流程分析
SA是一种面向数据流的分析方法,在SA中,DFD是数据流程分析的主要工具之一。

八、系统需求规格说明书
也称系统分析报告,系统说明书。
1.系统需求规格说明书的组成
引言
引用文件
需求
合格性规定
需求可追踪性
非技术需求
尚未解决的问题
注解
附录
2.系统需求规格说明书是承建方与建设方之间的技术合同,是系统验收的标准之一。

-----------------------------------------------------------
-----------------------------------------------------------
第11章 需求工程
一、需求概述
1)软件需求过程是包括创建和维护软件需求文档所必须的一切活动的过程,分为需求开发和需求管理两大工作。
需求开发包括需求获取,需求分析,编写需求规格说没说(需求定义)和需求验证4个阶段。
需求管理包括定义需求基线,处理需求变更,需求跟踪。
需求开发是主线,是目标;需求管理是支持,是保障。
2)需求层次
需求层次包括业务需求、用户需求和系统需求
系统需求又包括功能需求,非功能需求(如:可维护性,效率等),设计约束(如国产数据库,linux系统等)
3)质量功能部署(Quality Function Deployment,QFD)
QFD是一种将用户要求转化为软件需求的技术,目的是最大限度的提升软件工程中用户的满意度。
QFD将软件需求分为三类:常规需求、期望需求、意外需求。
二.需求获取
1.获取方法:
1)用户访谈
事先准备好一系列问题,有针对的进行访谈,称为结构化用户访谈。
事先只列出粗略的想法,根据具体访谈情况发挥,称为非结构化用户访谈。
2)问卷调查
3)采样
样本大小=a*(可信度系数/错误率)^2 a称为启发式因子,一般取值0.25
可信度系数表示希望"种群数据包括了样本中的各种情况"有多大可信度。可信度系数可以通过查表获取。
eg:如果希望订单样本集包含了所有情况,具有90%的可信度,样本大小=0.25*(1.65/1-0.9)^2=68.0625.
对分析师个人的经验和能力较为依赖。
4)情节串联板
对用户比较友好,交互性强,但花费时间长,需求的获取速度慢。
5)联合需求计划(Joint Requirement Planning,JRP)
JRP是联合应用开发(Joint Appliaction Development,JAD)的一部分,使用小组工作会议,专题讨论会来代替大量独立访谈。
JRP是一种成本较高的需求获取方法,但十分有效。
6)需求记录技术
常用的需求记录工具有任务卡片,场景说明,用户故事,Volere白卡等。
任务卡片 任务指的是用户的业务活动。
Volere白卡 类似任务卡片,定位于最小需求项。
用户故事和Volere白卡定位于最小需求项,实际应用中会导致量比较大,一般在敏捷开发中使用。
三.需求分析
1.需求分析的工作内容(7方面)
a.绘制系统上下文范围关系图,定义系统与用户/外部系统的接口。
b.创建用户原型界面
c.分析需求可行性
d.确定需求优先级 可以参考满意度/不满意度指标
e.为需求建立模型 如:OOA中的用例模型/领域模型,SA中的DFD/E-R图等
f.创建数据字典
g.使用QFD
2.需求分析方法
SA方法,OOA方法,PDOA(面向问题域的分析,Problem Domain Oritented Analysis)方法
PDOA关注问题域,关注解系统(系统实现)的待求行为,什么问题,想怎么解决。
四、SA结构化分析方法
1.概念
SA方法的基本思想是自顶向下,逐层分解,将大问题分解为足够简单的小问题。
SA方法的核心是数据字典,围绕数据字典,有三个层次的模型:数据模型、功能模型、行为模型(状态模型)。
一般用E-R图表示数据模型,DFD表示功能模型,状态转换图(State Transform Diagram,STD)表示行为模型
2.DFD数据流图
结构化分析方法中,一般将DFD作为需求规格说明书的一个组成部分。
DFD通常有4种基本符号:数据流、加工、数据存储、外部实体(数据源及数据终点)。
DFD是自上而下的分层分析,第一层也称为DFD0层。
3.STD状态转换图
大多数业务系统是数据驱动的,所以适合DFD。实时系统主要是事件驱动的,因此,行为模式是有效的描述方式。
4.数据字典
a.数据字典一般包括6类条目:数据元素,数据结构,数据流,数据存储,加工逻辑和外部实体。
b.数据字典的作用 按照各种要求列表,相互参照便于修改,由描述内容检索名字,一致性检验和完整性检验。
c.数据字典的管理 为了保障数据的一致性,数据字典应由专人(数据管理员)维护。
五、面向对象分析方法OOA
1.统一建模语言UML
它的作用域不限于OOA和OOD,还支持从需求分析开始的软件开发全过程。
1)UML的结构包括构造块、规则、公共机制三部分。
构造块:UML有三种基本构造块,事物(thing)、关系(relationship)、图(diagram).图是多个相互关联的事物的集合。
公共机制:公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)、扩展机制4种。
2)UML将系统架构分为5个系统视图
逻辑视图
进程视图 描述并发与同步结构
实现视图
部署视图
用例视图
3)事物
UML中的事物也称为建模元素,包括结构事物、行为事物(动作事物)、分组事物、注释事物。这些事物是UML模型中最基本的OO构造块。
结构事物:UML有7种结构事物:类、接口、协作、用例、活动类、构件、节点。
行为事物:主要有两种行为事物:交互和状态机。
分组事物:UML只有一种分组事物:包。
注释事物:注释事物是UML模型的解释部分。
4)关系
依赖(dependency):
关联(association):
泛化(generalization):泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
实现(realization):
5)图
UML2.0包括14种图:
类图、对象图、构件图、组合结构图(描述结构化类的内部结构)、用例图、顺序图(序列图)、通信图、定时图、状态图、活动图、部署图、制品图、包图、交互概览图。
2.用例模型
OOA中,构建用例模型一般需要4和阶段:识别参与者、合并需求获得用例、细化用例描述、调整用例模型;其中前三个阶段是必需的。
1)用例图的元素 参与者 用例 通信关联
2)识别参与者 参与者可以使人,硬件,其他系统,系统时钟等。
3)合并需求获得用例
用例命名:应采用动词+名词的形式,如:开设课程。
4)细化用例描述
用例建模的主要工作是书写用例规约,而不是画图。
用例描述通常包括以下几个部分:
a.用例名字,并写上编号。
b.简要说明。
c.事件流。包括主事件流(基本事件流)、备选事件流(扩展事件流)。
d.非功能需求
e.前置条件和后置条件
f.扩展点
g.优先级 说明用户对该用例的期望值。可以采用满意度/不满意度指标进行说明,例如设置为1~5的数值。
5)调整用例模型
利用用例之间的关系来调整用例模型,包括包含(提取公共用例)、扩展(多场景分支下,将用例分为一个基本用例和多个扩展用例)、泛化(抽象出父用例)。
3.分析模型
1)分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型)、以及它们如何保持通信,实现系统行为(动态模型)。
为了使模型独立于具体的开发语言,系统分析师需要把注意力集中在概念性问题上而不是具体的软件技术问题上,这些技术的起点就是领域模型。
领域模型又称概念模型或域模型,内容是找到那些代表事物与概念的对象,即找到概念类。
2)建立分析模型的过程:定义概念类、确定类间关系、为类添加职责、建立交互图等,前三个步骤又统称为CRC建模(Class-Responsibity-Collaborator).
a.定义概念类:
发现类的方法最常用的是名词短语法,对相关文档和用例中的名词进行筛选,获取候选概念。
b.确定类间关系:
关联(直线)、依赖(虚线实箭头)、泛化(父子,实线空箭头)、共享聚集/聚合(车轮与汽车,实线空菱形)、组合(类的部分与主体,实线实菱形)、实现(接口与实现,虚线空箭头)
c.为类添加职责
类的职责包括两方面:
类所维护的知识:成员变量或属性
类能够执行的任务:成员方法或责任。
d.建立交互图
UML2.0提供的交互图有顺序图、交互概览图、通信图、定时图。
六、需求定义
1.需求定义的方法
需求定义的过程即形成需求规格说明书的过程,需求定义的两种方法:严格定义方法,原型方法。
1)严格定义方法
也称为预先定义,严格定义建立在以下假设之上:
所有需求都能够被预先定义,而多数场合不能推断出所有需求。
开发人员与用户能够准确清晰的交流。
采用图形或文字可以充分体现最终系统。
2)原型方法
2.软件需求规格说明书(Software Requirement Specification,SRS)
1)SRS的编写方法
文本型文档、图形化模型,形式化规格说明。
2)SRS的内容
范围
引用文件
需求
合格性规定
需求可追踪性
尚未解决的问题
注解
附录
七、需求验证
1.需求评审
对SRS进行评审,技术评审分为三种类型:评审、检查、走查。
正式评审的过程:计划、准备、进行评审、对评审结果采取行动。
如何做好需求评审:
分层次评审
正式评审与非正式评审相结合
分阶段评审
精心挑选评审人员
对评审人员进行培训
充分利用需求评审检查单
建立标准的评审流程
做好评审后的跟踪工作
充分准备评审
2.需求测试
通常概念测试用例来源于用户需求,重点反映用例(或功能需求条目)的描述。
整个需求开发过程中,需求获取、需求分析、需求定义、需求验证4个阶段不是瀑布式的发展,而应该是迭代式的演化过程。
八、需求管理
需求管理最基本的任务是明确需求,建立需求基线。
1.需求变更管理
经过评审后的项目视图和范围文档、用例文档、SRS等定义了开发工作的需求基线。
2.需求风险管理
1)带有风险的做法
无足够用户参与、忽略了用户分类、用户需求不断增加、模棱两可的需求、不必要的特性、过于精简的SRS、不准确的估算。
2)与需求有关的风险
4.需求跟踪
1)双向跟踪包括正向跟踪和反向跟踪。
正向跟踪:检查SRS中的每个需求是否都实现了。
逆向跟踪:检查设计文档、代码、测试用例等工作成果是否都能在SRS中找到出处。
2)需求跟踪的目的
审核
变更影响分析
维护
项目跟踪
再工程
重复利用
减小风险
测试
3)需求跟踪矩阵
用户原始需求到软件需求的跟踪矩阵。
软件需求到下游工作产品的跟踪矩阵。

-----------------------------------------------------------
-----------------------------------------------------------
第12章 软件架构设计
概述
软件架构设计位于需求分析之后,系统设计之前。
1.4+1视图
逻辑视图-->UML逻辑视图 最终用户
开发视图-->UML实现视图 软件管理人员
进程视图-->UML进程视图 系统集成人员,性能可扩充性、吞吐量等
物理视图-->UML部署视图 系统工程人员,系统拓扑、安装、通信等
场景视图-->UML用例视图
其中,逻辑视图和开发视图是静态结构。
进程视图和物理视图是动态结构(单纯UML部署图是静态?)。
2.软件架构风格
1)架构设计的一个核心问题是能否达到架构级的软件复用。
架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件
有效地组织成一个完整的系统。
架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。
2)五种常见的风格
数据流风格:批处理序列、管道-过滤器。
调用返回风格:主程序/子程序、面向对象、层次结构
独立构件风格:进程通信、事件驱动系统(隐式调用)
虚拟机风格:解释器(jvm)、基于规则的系统
仓库风格(以数据为中心的风格):数据库系统、超文本系统、黑板系统(信号处理、问题规划、编译器优化)

批处理序列:前一步全部处理完成后,下一步才能开始,强调数据必须是完整的,以整体方式传递。
管道-过滤器:每个构件都有一组输入输出和处理,处理构件称为过滤器、数据流传输的连接件就是管道,
管道-过滤器是流式处理。
面向对象:显示调用。
独立构件风格:构件是独立的过程,通过消息相互协作。
3)a.两层C/S风格(表示层、数据层)
开发成本较高/客户端程序设计复杂/信息内容和形式单一/用户界面风格不一/软件移植困难/
软件维护和升级困难/新技术不能轻易应用。
b.三层C/S风格(表示层、功能层、数据层)
各层在逻辑上保持相对独立,整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。
允许灵活有效的选用相应的平台和硬件系统,具有良好的可升级性和开放性
各层可以并行开发,各层也可以选择合适的开发语言
功能层有效的隔离表示层与数据层,为严格的安全管理奠定了坚实的基础;整个系统的管理层次也
更加合理和可控制。
c.三层B/S风格(表示层、功能层、数据层)
B/S架构的响应速度地域C/S架构
d.混合架构风格
内外有别模型(内部CS外部BS)
查改有别模型(查询BS修改CS)
4)富互联网应用RIA
RIA结合了C/S架构反应速度快、交互性强的优点,以及BS架构传播范围广及容易传播的特性。
RIA简化并改进了BS架构的用户交互。
数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器次数
更少的用户界面。
4-1)AJAX
AJAX(Asynchronous JavaScript And Xml)
基于XHTML和CSS标准的表示
使用DOM进行动态显示和交互
使用XML和XSLT进行数据交换及相关操作
使用XMLHttpRequest与服务器进行异步通信
使用js绑定一切
4-2)mushup 内容聚合
API/内容提供者(聚合来源)---->Mashup站点(聚合逻辑)---->客户机的Web浏览器(聚合逻辑和呈现)
RSS:一种用于对网站内容进行描述和同步的格式,是目前最广泛的web资源发布方式。
REST:从资源的角度看待整个网络,各处的资源由URI确定,客户端的应用通过URI获取资源的表示。
SOAP:一种基于XML的数据格式定义,用来进行Web服务调用过程中的参数调用和返回。
ATOM:一种基于XML的文档格式和基于HTTP的协议,用来聚合网络内容。
4-3)Flex Flex应用程序由MXML、ActionScript、Flex类库组成,翻译成swf格式的客户端应用程序,在
Flash player中运行。
5)基于服务的架构SOA
单个服务的内部结构
服务接口、逻辑层、数据访问层。
服务接口特点:共同的封装、共同的语言格式、共同的安全和容错处理
服务特色:松散耦合、粗粒度、标准化接口。
服务构件架构(Service Component Architecture,SCA)特点:
服务构件粒度粗,传统构件细粒度居多
服务构件的接口是标准的,主要是WSDL接口,传统构件常以具体API形式出现
服务构件的实现与语言无关,传统构件绑定某种特定语言。
服务构件可以通过构件容器提供Qos的服务,传统构件完全由程序代码直接控制。
5-2)SOA的实现方式WebService/ESB
WebService
发现服务 UDDI、DISCO
描述服务 WSDL、XML Schema
消息格式层 SOAP、REST
编码格式层 XML
传输协议层 HTTP、TCP/IP、SMTP等
没有注册中心UDDI、服务请求者与服务提供者直接绑定称为静态绑定。
5-3)ESB
提供位置透明的消息路由和寻址服务。
提供服务注册和命名的管理功能。
支持多种消息传递范型。
支持多种可以广泛使用的传输协议。
支持多种数据格式及其相互转换。
提供日志和监控功能。
3.软件架构评估
1)质量属性:
性能/可靠性(次数)/可用性(时间,一般写可用性)/安全性/可修改性/功能性/可变性/互操作性
性能是指系统的响应能力,要多长时间才能对某个事件作出响应,或某段时间内系统所能处理
的事件个数。性能测试经常需要使用基准测试程序。
可靠性:通常用平均失效等待时间/平均无故障时间MTTF(Mean Time To Failure)和
平均失效间隔时间MTBF(Mean Time Between Failure)来衡量。
安全性:可分为机密性、完整性、不可否认性、可控性等。
功能性:达到系统所期望的工作能力。
可变性:指体系结构经扩充或变更而成为新体系结构的能力。
互操作性:为外部功能提供接口。
2)软件架构评估方式:
a.主要3种方式:基于调查问卷(检查表)的方式、基于度量的方式、基于场景的方式。
评估方式                       调查问卷  检查表      场景         度量
通用性                           通用         特定领域  特定系统  通用或特定领域
评估者对架构了解程度 粗略了解  无限制      中等了解  精确了解
实施阶段                       早            中              中            中
客观性                          主观         主观          较主观     较客观
b.敏感点/权衡点/风险点/非风险点
敏感点:一个或多个构件的特性。输入或变化值很小,影响很大。
敏感点往往影响一个质量属性的特性。
权衡点:影响多个质量属性,这多个都是敏感点。
3)基于场景的方式:
确定应用领域的功能和软件架构的结构之间的映射。
设计用于体现待评估质量属性的场景。
分析软件架构对场景的支持程度。
基于场景的三种常用评估方法:架构权衡分析法(ATAM)、软件架构分析法(SAAM)、成本效益分析法(CBAM)
4)ATAM分析法

描述和介绍阶段(描述ATAM方法、描述业务动机、描述架构)
调查和分析阶段(确定架构方法、生成质量属性效用树、分析架构方法)
测试阶段(讨论场景和对场景分级、分析架构方法)
报告阶段(描述评估结果)
描述ATAM方法-->评估小组负责人:介绍评估方法
描述业务动机-->项目决策者:业务角度介绍
描述架构-->首席架构师:架构
确定架构方法-->架构设计师
生成质量属性效用树-->评估小组、设计小组、管理人员和客户代表
分析架构方法-->评估小组
讨论场景和对场景分级-->项目干系人:投票
分析架构方法-->架构设计师
描述评估结果-->评估小组负责人:评估方法
5)SAAM分析法
1.形成场景
2.描述架构
3.对场景分类和确定优先级
4.对场景进行单个评估
5.评估场景的相互作用
6.形成总体评价
4.软件产品线
1)软件产品线技术涵盖了软件架构、领域工程、DSSA(面向特定领域的软件体系结构)等知识。
软件产品线由两部分组成,核心资源和产品集合。
过程驱动/特定领域/技术支持/以架构为核心
2)双生命周期模型
现有系统需求-->领域工程(领域分析、领域设计、领域实现)
领域需求模型、领域架构、领域可复用构件
新系统需求-->应用工程(需求分析、系统设计、系统实现)-->新系统
3)SEI模型 核心资源开发、产品开发、管理
4)三生命周期模型
5)软件产品线的组织结构
设立独立的核心资源小组、不设立独立的核心资源小组、动态的组织结构。
6)要求
对该领域具备长期和深厚的经验;
一个用于构建产品的好的核心资源库;
好的产品线架构;
好的管理(软件资源、人员组织、过程)支持。
7)产品线的建立方式
开发人员可以划分为两组,分别负责核心资源和产品。
产品线建立的4种方式:
基于现有产品 演化方式 将现有产品演化为产品线
基于现有产品 革命方式 用软件产品线替代现有产品集
全新产品线 演化方式 全新软件产品线的演化
全新产品线 革命方式 全新软件产品线的开发
即:将现有产品演化为产品线、用软件产品线替代现有产品集、
全新的软件产品线的演化、全新的软件产品线的开发。
软件产品线的发展过程有三个阶段:开发阶段、配置分发阶段、演化阶段。
5.中间件
1)中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源。
2)功能:
负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制;
提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制;
提供多层架构的应用开发和运行的平台,以及应用开发框架,支持模块化的应用开发;
屏蔽硬件、操作系统、网络和数据库的差异;
提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性;
提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。
3)主要的中间件技术:
远程过程调用、对象请求代理、远程方法调用、面向消息的中间件、事务处理监控器。
4)Corba公共对象请求代理体系结构
在Client端有桩/存根,在服务器端有框架,实现远程调用。
6.常用开发语言
J2EE
会话Bean:短暂会话;实体Bean:持久化数据;消息驱动Bean:会话Bean+JMS
.NET体系结构
VB/C++/C#/JScript
通用语言规范
ASP.NET/windows应用    基于标准的程序设计模型
ADO.NET    提供了平台互用性和可伸缩的数据访问。
基础类库
通用语言运行环境(CLR虚拟机)
对比
JVM与CLR
对多层分布式应用的支持
安全性
应用程序的部署
可移植性 J2EE优于.NET
外部支持
7.MVC模式
1)图
主动MVC 模型Model主动将数据推给View。
被动MVC 模型Model被动等待View来获取数据。
2)Struts是一个基于J2EE平台的MVC框架,主要采用Servlet和JSP技术来实现。
在Struts中,M由实现业务逻辑的JavaBean构成,C由ActionServlet和Action来实现,V由一组JSP文件构成。
Spring通过RMI或WebService远程访问业务逻辑,允许自由选择和组装各部分功能,还提供和其它软件集成
的接口。Spring本身是个容器,管理构件的生命周期、构建的组态、依赖注入等,并可以控制构件在创建时
是以原型或单例模式来创建。
Hibernate是一个对象关系映射框架,提供了java对象到数据库表之间的直接映射,它对JDBC进行了非常轻
量级的对象封装,使得java程序员可以使用对象编程思维来操作数据库。在Hibernate中,ORM机制的核心
是一个XML文件,该文件描述了数据库模式是怎么与一组java类绑定在一起的。
8.MVP
1)MVP是MVC的变种。MVP实现了V与M之间的解耦(V不直接使用M,修改M不影响V)。
Controller---->Presenter。
MVP可以更好的支持单元测试(业务逻辑在P中,可以脱离V来测试这些逻辑;可以将一个P用于多个V,而不需要改变
P的逻辑)
MVP中V要处理界面事件,业务逻辑在P中,MVC中界面事件由C处理。
2)MVVC又称状态机制,View和ViewModel 是进行绑定的,改变ViewModel 就会直接作用到View视图上,
而View 会把事件传递给ViewModel,ViewModel去对Model进行操作并接受更新。
3)MVPVM
可以看到MVPVM 其实就是MVP的变种,加入了MVVM事件特性,增加了ViewModel,功能分类:
View:只做视图更新操作
Model: 只做数据处理,网络数据、本地数据
Presenter: 只做业务逻辑处理,View或者Model事件分发
ViewModel: 绑定View和Model,添加数据变更监视器
-----------------------------------------------
软件架构设计位于需求分析之后,系统设计之前。
软件架构的研究内容主要涉及软件架构描述、软件架构设计、软件架构风格、软件架构评价和软件架构的形成方法等。
一.构建与软件复用
1)软件复用的形式可分为垂直式复用和水平式复用。
水平式复用是复用不同应用领域中的软件元素,如数据结构、排序算法、人机界面构件、标准函数库等。
垂直式复用是在类似应用领域间复用软件构件,垂直式复用的主要关键点在于领域分析。
主流的构件标准有对象管理集团(Object Management Group,OMG)的CORBA、Microsoft的COM和DCOM、JAVA的EJB。
2)构件获取与管理
已有的构件分类方法有三大类:关键字分类法、刻面(facet)分类法、超文本组织方法(基于全文检索技术);关键字分类法和刻面分类法都是基于数据库的。
3)构件复用的方法
首先检索与提取构件,然后理解与评价构件,如果有必要则可以修改构件,最后将构件组装到新系统中。
检索构件的方法:基于关键字的检索、刻面检索法、超文本检索法。
4)构件的组装
基于功能的组装技术、基于数据的组装技术、面向对象的组装技术(生成相应子类,满足新系统需求)。
二.软件架构概述
软件架构的4个阶段:
无架构设计阶段。以汇编语言,小规模程序开发为代表。
萌芽阶段。出现了程序结构设计主题,以控制流图和数据流图为代表。
初级阶段。以UML为代表。
高级阶段。以4+1模型为代表。
架构的意义:
1)架构是项目干系人进行交流的手段,架构提供了一个共同语言。
2)架构是早期设计决策的体现
3)架构明确了对系统实现的约束条件
4)架构决定了开发和维护组织的组织结构
5)架构制约着系统的质量属性
6)架构使推理和控制更改更简单
7)架构有助于循序渐进的原型设计
8)架构有助于成本与进度估计
9)在较高层面实现软件复用。
10)架构对开发的指导与规范意义不容忽视。
11)架构可以作为培训的基础
12)架构是可传递和可复用的模型
三.软件架构建模
1)根据建模的侧重点不同,将软件架构模型分为5种。
结构模型 这种方法以架构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的
重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。
研究结构模型的核心是架构描述语言。
框架模型 框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。
框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。
动态模型 动态模型是对结构或框架模型的补充,研究系统大粒度的行为性质。
过程模型 过程模型研究构造系统的步骤和过程。
功能模型 该模型认为架构由一组功能构件按层次组成,且下层向上层提供服务。
它可以看作是一种特殊的框架模型。
2)4+1模型:
逻辑视图 最终用户 功能需求
开发视图 编程人员 软件管理    也称模块视图,UML中称为实现视图。
进程视图 系统集成人员 侧重于系统的运行特性,主要关注一些非功能性的需求,例如性能、可扩充性、吞吐量等
物理视图 系统工程人员 系统拓扑、安装、通信等  UML中称为部署视图。
场景视图 对应UML中的用例视图
逻辑视图和开发视图描述系统的静态结构  进程视图和物理视图描述系统的动态结构。
对于MIS来说,侧重从逻辑视图和开发视图来描述系统
对于实时控制系统来说,侧重于从进程视图和物理视图来描述系统。
三1、软件质量属性
架构的基本需求主要是在满足功能属性的前提下,关注软件质量属性。
1)可用性战术包括:错误检测、错误恢复、错误预防。
错误检测:命令/响应、心跳、异常处理。
错误恢复:表决、主动冗余、备件、状态再同步、检查点/回滚。
错误预防:从服务中删除、事务、进程监视器。
2)可修改性战术包括:局部化修改、防止连锁反应(【信息隐蔽、维持现有接口、限制通信路径】)、推迟
绑定时间(运行时注册、配置文件、多态、构件更换)。
3)性能战术包括:
影响性能的因素有资源消耗和闭锁时间。
4)安全性战术:包括抵抗攻击、检测攻击和从攻击中恢复。
5)可测试性战术包括:输入/输出(记录/回放、【接口与实现分类】、优化访问线路与接口)、内部监控
四.软件架构风格
软件架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。
1)经典架构风格
将软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格、仓库风格。
数据流风格 包括批处理序列和管道/过滤器两种风格。
调用/返回风格 包括主程序/子程序、数据抽象和面向对象(显示调用)、层次结构。
独立构件风格 包括进程通信和事件驱动(隐式调用)的系统
虚拟机风格 包括解释器和基于规则的系统
仓库风格 包括数据库系统、黑板系统和超文本系统。
黑板系统包括知识源、黑板和控制三部分。
2)层次架构风格
二层架构 客户端/服务器CS架构 胖客户端 瘦服务器
三层C/S架构 增加了应用服务器,只有表示层位于客户端,瘦客户端。
三层C/S架构将系统分成表示层、功能层、数据层三部分。
B/S架构
3)富互联网应用(Rich Internet Application,RIA)
富指的是:丰富的数据模型和丰富的用户界面。
支持RIA的平台或工具有:Flex、Bindows、java、Laszlo、XUL、Avalon。
异步JavaScript和XML(Asynchronous JavaScript And XML,AJAX).
AJAX基于XHTML(eXtensible HyperText Markup Language,可扩展超文本标识语言)、CSS(Cascading Style Sheets,层叠样式表)、DOM进行动态显示和交互。使用XML和
XSLT(eXtensible Stylesheet Language for Transformation,用于转换的可扩展样式表语言)
进行数据交换。使用XMLHTTPRequest与服务器进行异步通信。
AJAX可能会破坏浏览器的“后退”按钮的正常行为。
五.面向服务的架构(Service-Oriented Architecture,SOA)
1)SOA概述
SOA设计原则:
明确定义的接口
自包含和模块化
粗粒度
松耦合
互操作性、兼容和策略声明。
服务构件架构(Service Component Architecture,SCA)是基于SOA的思想描述服务之间组合和
协作的规范。
SCA服务构件与传统构件的主要区别在于,服务构件往往是粗粒度的,而传统构件以
细粒度居多;服务构件的接口是标准的,主要是服务描述语言接口,而传统构件常以具体API
形式出现;服务构件的实现与语言是无关的,而传统构件常绑定某种特定的语言;服务构件
可以通过构件容器提供QOS的服务,而传统构件完全由程序代码直接控制。
2.SOA相关技术
UDDI、WSDL、SOAP、REST等
1)UDDI提供服务发布、查找和定位功能。
包括:数据模型(用于描述业务组织和服务的XML Schema)
API(用于查找或发布UDDI数据)
注册服务
2)WSDL web服务描述语言,包括服务接口定义(绑定、端口类型、消息、类型)和服务
实现定义(服务、端口)。
3)SOAP(Simple Object Access Protocol,简单对象访问协议),使用XML来格式化消息。
SOAP主要包括4部分:封装、编码规则、RPC表示、绑定。
SOAP消息包括三部分:封装(信封)、SOAP头、SOAP体。
4)REST(Representationsql State Transfer,表述性状态转移)
GET查 POST增 PUT改 DELETE删
REST的简单性和缺少严格的配置文件的特性,使它与soap很好的隔离起来。
REST的设计概念和准则:
1)网络上的所有事物都被抽象为资源
2)每个资源对应唯一的资源表示
3)通过通用的连接件接口对资源进行操作
4)对资源的各种操作不会改变资源标识
5)所有操作都是无状态的
3.SOA的实现方法
1)SOA的主流实现方法由:WebService、企业服务总线ESB、服务注册表等。
2)webservice的角色:服务提供者、服务请求者、服务注册中心
webservice的操作:发布、查找、绑定
注册中心的功能:服务注册、服务位置查询、服务绑定。
采用webservice作为SOA实现技术时,应用系统可分为6个层次:
底层传输层(HTTP JMS SMTP等)、
服务通信协议层(SOAP REST等)、
服务描述层(WSDL等)、
服务层、
业务流程层、
服务注册层(UDDI等)。
3)ESB的优势:
扩展的基于标准的连接。
灵活的、服务导向的应用组合。
提高复用率、降低成本。
减少市场反应时间,提高生产率。
4.微服务
1)微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,每个服务都围绕着具体业务进行构建,
并可独立部署,去中心化部署机制。
每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP、 RESTful API
协议的)。
2)微服务的优势
技术异构型、弹性部署、易于扩展、简化部署、与组织结构相匹配、易于模块的升级替代。
3)微服务的挑战
分布式系统复杂性高、运维成本大、部署自动化技术要求高、Devops与组织结构挑战、服务间依赖测试困难、
服务间依赖管理难度大。
4)微服务与SOA
微服务                                                   SOA
团队级,自底向上开展实施                  企业级、自顶向下开展实施
一个系统拆分成多个服务,粒度细       服务由多个子系统组成,粒度粗
无集中式总线,松散的服务架构           企业服务总线,集中式的服务架构
集成方式简单HTTP/REST/JSON         集成方式复杂ESB/WS/SOAP
服务能独立部署                                    单块架构系统,相互依赖,部署复杂
纵向业务划分                                        水平分多层
由单一组织负责                                     按层级划分不同部门的组织负责
五1、补充
1.演变交付生命周期
架构设计是从初步的需求分析开始逐步循环迭代的。
演变交付生命周期模型中有两个循环,第一个循环是通过迭代的方式开发出软件架构,
第二个循环是在架构的基础上通过迭代的方式开发出交付的最终版本。
2.属性驱动设计法(Attribute-Driven Design,ADD)
该方法将分解过程建立在软件必须满足的质量属性之上。
ADD的输入为:功能需求(一般表示为用例)、限制条件和质量需求(一组特定于系统的质量场景)。
3.按架构组织开发团队
4.开发骨架系统
5.利用商用构件进行开发
六、软件架构评价
1.目前已有的软件架构评估技术,主要有3类:基于调查问卷(或检查表)的方式、基于场景的方式、基于度量的方式。
基于场景的方式主要应用在架构权衡分析法(Architecture Tradeoff Analysis Method,ATAM)、软件架构分析法(Software Architecture Analysis Method,SAAM)、成本效益分析法(Cost Benefit Analysis Method,CBAM)中。
基于度量的评估方式 如:代码行数、方法调用层数、构件个数等。
2.架构权衡分析法ATAM
ATAM希望揭示出架构满足特定质量目标的情况,使架构师清楚认识到质量目标之间的联系。
1)评估参与者
评估小组、项目决策者、其他项目干系人(开发人员测试人员 用户等)。
2)评估活动(9个活动)
描述ATAM方法
描述业务动机
描述架构
确定架构方法
生成质量属性效用树
分析架构方法
讨论场景和对场景分级
分析架构方法
描述评估结果(所发现的敏感点和权衡点等)
3)CBAM成本效益评估方法
CBAM用来对架构设计决策的成本和收益进行建模。
CBAM可以看做ATAM的补充,在ATAM评估结果上对架构的经济性进行评估。
CBAM协助项目关系人根据其投资回报ROI选择架构策略。CBAM在ATAM结束时开始,
它实际上使用了ATAM评估的结果。
CBAM评估步骤:
整理场景
对场景进行细化
确定场景的优先级
分配效用
确定期望的质量属性响应级别的效用
计算各架构策略的总收益
根据受成本限制影响的投资收益率选择架构策略
3.软件架构分析法SAAM
SAAM用来分析架构的可修改性。
1)评估步骤:
形成场景
描述架构
对场景分类和确定优先级
对场景进行单个评估
评估场景的相互作用
形成总体评估
七、软件产品线(Software Product Line)
软件产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足特定领域的特定需求。
1.软件产品线由两部分组成,核心资源和产品集合。
1)产品线的过程模型
软件产品线的过程模型主要有双生命周期模型、SEI模型和三生命周期模型。
双生命周期模型分成两个重叠的生命周期,分别是领域工程和应用工程。
领域工程阶段的主要任务有:领域分析、领域设计、领域实现。
2)SEI模型
SEI将产品线的基本活动分为3个部分,核心资源开发(即领域工程)、产品开发(即应用工程)、管理。
3)三生命周期模型
三生命周期模型是对双生命周期模型的改进,增加了企业工程流程。在领域模型中增加了产品线作为起始阶段。

企业工程(运作计划、市场计划、企业架构计划)
领域工程(产品线确认-->领域分析/市场分析-->架构开发-->基础设施开发)
应用工程(业务/市场分析与计划-->系统需求分析-->系统设计-->系统实现)
2.产品线的建立方式
开发人员可以划分为两组,分别负责核心资源和产品。
产品线建立的4种方式:
基于现有产品 演化方式 将现有产品演化为产品线
基于现有产品 革命方式 用软件产品线替代现有产品集
全新产品线 演化方式 全新软件产品线的演化
全新产品线 革命方式 全新软件产品线的开发
软件产品线的发展过程有三个阶段:开发阶段、配置分发阶段、演化阶段。
3.产品线的本质是复用资产,包括:类似需求、架构设计、元素、建模与分析、测试、项目规划、过程方法和工具、
人员、样本系统、缺陷消除等。
4.产品线架构较之单个产品架构,有如下三点特别之处:
产品线架构必须考虑一系列明确许可的变化;
产品线架构一定要文档化;
产品线架构必须提供产品创建者指南(开发指南),描述架构的实例化过程。
通常应考虑三个方面:
确定变化点;支持变化点;对产品线架构的适宜性进行评估。
5.特定领域软件架构(Domain Specific Software Architecture,DSSA)
1)架构的本质在于其抽象性。它包括两个方面的抽象:业务抽象和技术抽象。其中业务
抽象面向特定的应用领域。
2)DSSA包括:领域分析、领域设计、领域实现。
3)领域模型的主要作用:
领域模型为需求定义了领域知识和领域词汇,这较之单一的项目需求更有较好的大局观;
软件界面的设计往往和领域模型关系密切;
领域模型的合理性将严重影响软件系统的可扩展性;
在分层架构的指导下,领域模型精化后即成为业务层的骨架;
领域模型也是其数据模型的基础;
领域模型是团队交流的基础,定义了重要的领域词汇表。
6.架构(系统)演化过程
需求变动归类。
制订架构演化计划。
修改、增加或删除构件。
更新构件的相互作用。
构件组装与测试。
技术评审。
产生演化后的架构。
7.软件视图
1.软件视图通常分为3类:
模块视图类型、构件和连接件视图类型、分配视图类型。
模块视图类型:分解(部分关系)、使用(依赖关系)、分层(依赖关系的特化)、类或泛化(特化关系)。
构件和连接件视图类型:客户机-服务器风格、进程或通信进程风格、并发风格、管道-过滤器风格、
共享数据风格、发布订阅风格、对等连接风格。
分配视图类型:部署风格、实现风格、工作分配风格。
部置风格体现为构件和连接件视图的元素被分配到执行平台。
实现风格能将模块视图类型中的模块映射到开发基础结构。
工作任务风格将软件架构映射到由人组成的团队之中。
八、构件及其复用
1.商用构件标准规范
主流的商用构件标准规范有OMG(Object Management Group,对象管理组织)的CORBA、
SUN的J2EE、Microsoft的DNA。
CORBA(Common ObjectRequest Broker Architecture,公共对象请求代理架构)主要分为3个层次:
对象请求代理、公共对象服务和公共设施。
J2EE同时支持RMI(Remote Method Invocation,远程方法调用)和IIOP(Internet Inter-ORB Protocol,
互联网内部对象请求代理协议).EJB中的Bean可以分为会话Bean和实体Bean,前者负责维护会话,后者负责处理事务。
DNA2000提供ASP、COM、Cluster等的应用支持。
2.基于服用开发的组织结构
一种较平衡的组织结构可以有三类职能部门:一是构件系统开发部门,它开发可复用资产;二是应用系统项目开发
部(多个),它复用资产;三是支持部门,这个部门是可选的。
九、软件重用
1)软件重用的形式包括:源代码重用、应用框架重用(如spring)、架构重用、业务建模的重用、
文档及过程重用、软构件(软件构件)的重用、软件服务的重用(如SOA)。
2)构件技术
构件又称为组件,是一个自包容、可复用的程序集。首先,构件是一个程序集,其次,这个集合整体向外提供统一
的访问接口,构件外部只能通过接口来访问构件,而不能直接操作构件的内部。
自包容指的是构件的本身是一个功能完整的独立体,构件内部与外部的功能界限清晰明确,
常见的构架标准有CORBA、EJB、COM/DCOM等
十、基于架构的软件设计
1.概念
1)基于架构的软件设计(Architecture-Based Software Design,ABSD)是一种架构驱动方法。
2)ABSD方法是递归的,且迭代的每一个步骤都是清晰定义的。因此,不管设计是否完成,架构总是清晰的,
这有助于降低架构设计的随意性。
3)ABSD有3个基础:
a.功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术。
b.通过选择架构风格来实现质量和业务需求。
c.软件模板的使用。软件模板利用了一些软件系统的结构。
2.ABSD方法与生命周期
1)ABSD方法在生命周期中的位置
输入:业务用例、架构设计师的经验、遗留系统
需求分析

输入:功能需求(抽象、用例)、质量需求(抽象、质量因素、架构选项)、约束
ABSD方法
输出:抽象构件、软件模板(约束、需求)

实际构架设计
2)详细解释
抽象功能需求:包括变化的需求和通用的需求。
用例:在架构设计阶段只需要设计重要用例。
抽象的质量和业务需求:每个质量属性都包含一个特定的刺激,以及希望得到的响应。
质量因素:质量场景使质量需求具体化,我们需要对质量场景进行分组、设置优先级、只验证重要的质量场景。
架构选项:候选架构。
约束:约束可能来自业务目标、遗留系统等。如指定操作系统。
3.基于架构的软件开发模型
0)基于架构的软件开发模型(Architecture-Based Software Design Model,ABSDM)把基于架构的软件
过程划分为架构需求、设计、文档化、复审、实现、演化等6个子过程。
1)架构需求:需求过程主要是获取用户需求,标识系统中所要用到构件。
如果以前有类似的系统架构需求,可以从需求库中取出,加以修改和利用。
架构需求一般来自三个方面,分别是系统的质量目标、系统的业务目标和系统开发人员的业务目标。
架构需求的过程:需求获取、标识构件(生成类图、对类进行分组、把类打包成构件)、需求评审。
软件架构需求获取过程主要是定义开发人员必须实现的软件功能。与此同时,还要获得软件质量属性,
满足一些非功能需求。
需求获取-标识构件-需求评审是一个迭代的过程。
2)架构设计
架构设计过程:提出架构模型、映射构件、分析构件相互作用、产生架构、设计评审。
建立架构的初期,选择一个合适的架构风格是首要的。
把在架构需求阶段已标识的构件映射到架构中。
一旦设计了软件架构,我们必须邀请独立于系统开发的外部人员对架构进行评审。
3)架构文档化
架构文档化过程的主要输出结果是架构需求规格说明和测试架构需求的质量设计说明书。
在架构说明书中,已经定义了系统中构件与构件之间的关系。
文档要从使用者的角度进行编写,必须分发给所有与系统有关的开发人员,且必须保证开发者手上的文档是最新的。
4)架构复审
审的目的是标识潜在的风险,以及早发现架构设计中的缺陷和错误,应由外部人员(用户代表和领域专家)进行复审。
5)架构实现
架构实现过程是以复审后的文档化的架构说明书为基础的。
架构实现包括:分析与设计、构件实现、构件组装、系统测试。
6)架构演化
在构件开发过程中,最终用户的需求可能还有变动,架构需要演化。
架构演化包括:需求变化归类、制定架构演化计划、增加修改删除构件、更新构件的相互作用、构件组装与测试、
技术评审、产生演化后的新架构。

-----------------------------------------------------------
-----------------------------------------------------------
第13章 系统设计
概述
1.处理流程设计-业务流程重组BPR
1)BPR是对企业的业务流程进行根本性的再思考和彻底性的再设计,从而获得可以用诸如成本、质量
、服务和速度等方面的业绩来衡量的显著性的成就。
根本性、彻底性、显著性、流程是最重要的点。
2)步骤:
项目的启动
拟定变革计划
建立项目团队
分析目标流程
重新设计目标流程
设计评估
实施新的设计
持续改进
重新开始
3)基本原则:
以流程为中心原则
团队管理原则(以人为本)
以客户为导向的原则
4)基于BPR的系统规划步骤
战略规划、流程规划、数据规划、功能规划、系统实施
流程规划:选取核心业务流程,进行流程分析,识别关键业务流程,发现需要改进的流程,提出改进后的业务流程图。
2.处理流程设计-业务流程管理BPM
1)BPM是一种以规范化的构造端到端的卓越业务流程为中心,以持续性的提高组织业务绩效为目的的系统化方法。
2)PDCA闭环的管理流程:
明确业务流程所欲获取的成果。
开发和计划系统的方法,实现以上成果
系统地部署方法,确保全面实施
根据对业务的检查和分析以及持续的学习活动,评估和审查所执行的方法。并进一步提出计划和实施改进措施。
3)BPM与BPR管理思想最根本的不同就在于流程管理并不要求对所有的流程进行再造。构造卓越的业务流程并
不是流程再造,而是根据现有流程的具体情况,对流程进行规范化的设计。
4)流程管理包含三个方面:规范流程、优化流程和再造流程。
3.人机界面设计
置于用户的控制之下
减少用户的记忆负担
保持界面的一致性
4.结构化设计
1)主要包括:概要设计/详细设计
2)基本原则:自顶向下、逐步求精;信息隐蔽;模块独立(高内聚、低耦合、控制模块的复杂度)。
3)详细原则:
保持模块大小适中。
尽可能减少调用的深度。
多扇入(被上传模块调用),少扇出(调用下层模块)。
单入口,多出口。
模块的作用域应该在模块之内。
功能是可预测的。
4)内聚类型:功能内聚、顺序内聚、通信内聚、过程内聚、瞬时内聚(时间内聚)、逻辑内聚、偶然内聚(巧合内聚)
功能内聚的内聚度最高、偶然内聚内聚度最低。
耦合类型:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
内容耦合的耦合度最高、非直接耦合耦合度最低。
5)模块结构
变换型系统结构 传入 变换(变换控制、变换处理两个矩形) 传出
事务型系统结构
混合型系统结构
5.面向对象设计
1)设计原则
单一职责原则:设计目的单一的类。
开放-封闭原则:对扩展开放,对修改封闭。
里氏替换原则:子类可以替换父类。
依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
迪米特法则(最少知识原则):一个对象应当对其他对象有尽可能少的了解。
组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
2)设计模式
架构模式:软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件过程中所作的基本设计决策。
设计模式:中层决策,主要关注软件系统的设计,与具体的实现语言无关。
惯用法:是最底层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。
每种编程语言都有自己特定的模式,即语言的惯用法。
3)【设计模式】分类
创建型模式/结构型模式/行为型模式
创建型模式5:工厂方法模式,抽象工厂模式,原型模式,单例模式,构建器模式
结构型模式7:适配器模式(转换接口)、桥接模式(将抽象与实现分离,继承树拆分)、组合模式(整体-部分,树形目录结构)、
装饰模式(附加职责)、外观模式(对外统一接口)、享元模式、代理模式
行为型模式:职责链模式(传递职责)、命令模式(日志记录,可撤销)、解释器模式、迭代器模式、中介者模式(不直接引用)、
备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式
工厂方法模式/适配器模式/解释器模式/模板方法模式可以是类模式,也可以是对象模式,其他的只是对象模式。
-----------------------------------------------------------
一、概述
1.系统分析阶段解决做什么问题,系统设计阶段解决怎么做问题。
系统设计阶段也称物理设计阶段,任务是根据系统规格说明书的功能要求,设计实现的逻辑模型,即设计新系统的物理模型。
系统设计的主要内容包括概要设计和详细设计。
概要设计又称系统总体结构设计,主要任务是将系统的功能需求分配给软件模块,确定各模块的功能和调用关系,形成模块结构图,即系统结构图。
详细设计分为:网络设计、代码设计、输入输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。
输入设计的原则:输入数据最少原则、简单性原则、尽早验证原则、少转换原则。
用户界面设计原则(人机交互黄金三原则):置于用户控制之下(允许中断撤销等)、减轻用户记忆负担(傻瓜式操作、望文知意)、保持界面一致性
二、处理流程设计
1.概述
1)流程包括6个基本要素:输入资源、活动、活动的相互作用(结构)、输出结果、用户、价值
流程的概念包括流程定义和流程实例。
2)工作流
3)活动及其所有者
4)工作项 工作项代表流程实例中活动的参与者将要执行的工作。
2.工作流管理系统WFMS
工作流管理联盟(WorkFlow Management Coalition,WFMC)
工作流管理系统(WorkFlow Management System,WFMS)
a.WFMS基本功能:对工作流进行建模(定义工作流)、工作流执行、业务过程的管理和分析。
b.WFMS的组成
工作流参考模型(Workflow Reference Model,WRM)包括6个基本模块:工作流执行服务、工作流引擎、流程定义工具、客户端应用、调用应用和管理监控工具。
工作流执行服务:创建和管理流程定义,创建管理执行流程实例。
工作流引擎:为流程实例提供运行环境。
客户端应用:被客户端调用的工作流执行服务。
调用应用:被工作流执行服务调用的业务应用。
为了降低6个模块之间的耦合,可以通过5个接口进行交互。
工作流执行服务于工作流引擎位于中心位置。
工作流定义交换接口
工作流客户端应用接口
调用应用接口
WFMS互操作接口 用于不同工作流系统之间的互操作。
系统管理和监控接口
3.流程设计工具
流程设计工具可分为3类:图形工具、表格工具、语言工具。
图形工具:程序流程图、IPO图、盒图、问题分析图、判定树
表格工具:判定表
语言工具:过程设计语言
1)程序流程图(Program Flow Diagram,PFD)包括5种基本控制结构,顺序型、选择型、多分支选择型(switch)、当型(DO-WHILE)、直到型(DO-UNTIL)
2)IPO图
IPO图用来描述 每个 模块的输入、输出和数据加工。
3)N-S图(盒图) N-S图类似PFD
4)问题分析图(Problem Analysis Diagram,PAD)
类似PFD
5)过程设计语言(Process Design Language,PDL)
PDL也称结构化语言或伪代码。
6)判定表(Decision Table)
类似测试case矩阵
7)判定树(Decision Tree)
二1、用户界面设计
1.用户界面设计过程:用户、任务和环境分析;界面设计;实现;界面确认。
二2、工作流设计
1.工作流管理联盟(Workflow Management Coalition,WFMC)提出了包含六个基本模块的参考模型:
a.流程定义工具
b.工作流执行服务
c.其他工作流执行服务(不同工作流系统)
d.客户应用程序
e.被调用应用程序
f.管理和监控工具
二3、简单分布式系统设计
1.分布式系统可以由两种完全不同的方式来进行协同和合作,
第一种是基于实例的协作。通过远程过程调用实现。所以基于实例的协作适用于比较小范围内网络情况良好的环境中,这种环境常常被称为近连接。
另外一种方式是基于服务的协作,该方法试图解决基于实例的协作的困难。它只提供远程对象的接口,用户可以调用这些方法,却无法远程创建和销毁远程对象实例。
基于服务的协作适用于跨平台的网络,网络响应较慢的情况,这种环境常称为远连接。

三、结构化设计(Structured Design,SD)
1.模块结构
SD是一种面向数据流的方法,它以SRS(软件需求说明书)和SA阶段所产生数据流图和数据字典等文档为基础,是一个自顶向下、逐步细化和模块化的过程。
SD分为概要设计和详细设计两个阶段。
1)信息隐蔽与抽象
信息隐蔽原则要求采用封装技术,将程序模块的实现细节隐蔽起来。
抽象原则要求抽取事物最基本的特性和行为,抽象层次包括过程抽象、数据抽象、控制抽象。
2)模块化
在SD方法中,模块是实现功能的基本单位,一般具有功能(做什么)、逻辑(怎么做)和状态三个基本属性。
模块划分原则:
a.模块的大小要适中
b.模块的扇入和扇出要合理。
模块的扇出过大表示该模块直接调用的下级模块过多,应当增加中间层次模块。
扇出太小时,可以把下级模块进行细分或合并下级模块。
模块的[扇入]指调用该模块的上传模块个数,[越大表示模块的复用度越高]。
设计良好的软件结构通常顶层扇出比较大,中间扇出比较少,底层模块有大扇入。
系统的平均扇入和扇出系数为3或4,不应超过7,否则会增大出错概率。
c.深度和宽度适当
深度表示软件结构中模块的层数,宽度表示同一层次上的模块总数的最大值。
3)模块类型
在系统结构图中不能再分解的底层模块称为原子模块,如果一个系统的全部实际加工(数据计算)都由底层的原子模块来完成,
其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是完全因子分解系统。
一般包括4种类型的模块:传入模块、传出模块、变换模块(大多计算模块属于这一类)、协调模块(设计合理的结构中,应位于较高层次)。
2.系统结构图(Structure Chart,SC)
系统结构图SC又称为模块结构图,系统设计师可依据一定规则从DFD数据流图中导出初始的SC。
常用的SC主要有变换型、事务型、混合型三种。
1)SC组成
SC包括模块、模块之间的调用关系、模块之间的通信、辅助控制符号4部分。
模块:用矩形框表示,对于已定义或已开发的模块,可以用双纵边矩形框表示。
辅助控制符号:当A模块有条件调用B模块时,箭头连线的起点用菱形表示;当A模块反复调用C模块时,在连线上增加一个环状箭头表示。
2)变换型SC
变换模型由传入流程、变换中心(圆圈表示)、传出流程表示,这一类型的信息流称为变换流。
变换流可分解为输入、变换控制、变换、输出四个传统部分。
3)事务型SC
信息沿通道到达事务中心,事务中心根据输入信息在若干动作序列中选择一个序列执行,这种信息流称为事务流。
事务型系统一般由:事务层、操作层、细节层组成。
四、面向对象设计
1.设计类是OOD中最重要的组成部分,类可以分成三种类型:实体类、边界类、控制类。
边界类位于系统与外界的交接处,要寻找和定义边界类,可以检查用例模型,每个参与者和用例交互时,至少要有一个边界类。
常见的边界类有窗口、通信协议、打印机接口、各种接口、报表等。
2.持久化技术
对象/关系映射(Object/Relation Mapping,ORM)
CMP(Container-Managed Persistence,容器管理持久化)是EJB的持久化方案。
3.面向对象的设计原则
1)开闭原则
对扩展开发,对修改关闭。
2)里氏替换原则
基类可以替换为子类,但子类不一定可以替换成父类。
3)依赖倒置原则
指抽象不应该依赖于细节,细节应该依赖于抽象。即应该针对接口编程。
4)组合/聚合复用原则
为了降低耦合,应优先使用组合或聚合,然后在考虑继承。
如果两个类是Has-A关系应使用组合或聚合,如果是IS-A关系,可使用继承。
5)接口隔离原则
6)最少知识原则(迪米特法则)
一个实体应该尽可能少的与其他实体发生相互作用。
a.类之间的应该降低耦合度。
b.类应该尽量降低其属性和方法的访问权限
c.只要有可能,一个类应该设计成不变类
d.一个对象对其他对象的引用应该降到最低。
五、设计模式
设计模式包含:模式名称、问题(什么时候适用)、目的、解决方案、效果、实例代码、相关设计模式等基本要素。
设计模式可分为创建型模式、结构型模式、行为型模式三类。
创建型模式:工厂方法模式、抽象工厂方法模式、原型模式、单例模式、建造者模式等。
结构型模式:适配器模式Adapter、桥接模式Bridge、组合模式Composite、装饰模式Decorator、
外观模式Facade、享元模式Flyweight、代理模式proxy等。
行为型模式:职责链模式Chain of Responsibility、命令模式Command、解释器模式Interpreter、
迭代器模式Iterator、中介者模式Mediator、备忘录模式Memento、观察者模式Observer、状态模式state、
策略模式Strategy、模板方法模式Template、访问者模式Visitor等。
https://uc.educity.cn/jiaocheng/j73087.html
工厂方法模式:Factory Method模式提供了一种延迟创建类的方法,使用这个方法可以在运行期由子类
决定创建哪一个类的实例。
抽象工厂方法模式:Abstract Factory模式主要为解决复杂系统中对象创建的问题。抽象工厂模式提供了一个一致的对象创建接口
来创建一系列具有相似基类或相似接口的对象。
原型模式:Prototype模式通过深复制原型对象来创建新的对象。
单例模式:Singleton模式可以保证一个类仅有一个实例,从而可以提供一个单一的全局访问点。
建造者模式:Builder模式逐步地构造出一个复杂对象,并在最后返回对象的实例。
可以把复杂对象的创建与表示分离,使得同样的创建过程可以创建不同的表示。

-----------------------------------------------------------
-----------------------------------------------------------
第14章 系统实现与测试
概述
1.软件测试是软件质量保证的主要手段之一。
1.原则:
1)尽早、不断的进行测试
2)程序员避免测试自己设计的程序
3)即要选择有效、合理的数据,也要选择无效、不合理的数据
4)修改后应该进行回归测试
5)尚未发现的错误数量与该程序已发现的错误数量成正比
2.用例设计
动态测试(利用到计算机的测试)
黑盒测试/白盒测试/灰盒测试
黑盒测试(不了解内部细节) 等价类划分/边界值分析/错误推测/因果图
白盒测试(了解内部细节) 基本路径测试/循环覆盖测试/逻辑覆盖测试
逻辑覆盖测试 语句覆盖/判定覆盖/条件覆盖/路径覆盖等
静态测试(不利用计算机的测试)
桌前测试/代码走查/代码审查
3.测试阶段
冒烟测试-->单元测试/集成测试/确认测试-系统测试
冒烟测试-->有无明显故障
集成测试(一次性组装/增量式组装(一个一个模块增加进来测试))
增量集成测试时 可能需要调用外部软硬件接口,可以编写驱动模块和桩模块进行模拟测试。
增量式组装包括:自顶向下/自底向上/混合式
确认测试
内部确认测试/Alpha测试/Beta测试/验收测试
Alpha测试/Beta测试 是针对产品的测试  Alpha测试是在开发环境的测试 Beta测试是在用户环境的测试
系统测试
恢复测试/安全性测试/压力测试(极限值)/性能测试/可靠性测试/可用性测试/可维护性测试/安装测试
性能测试:负载测试/强度测试(在异常环境下能否正常处理,最高实际限度)/容量测试
4.面向对象的测试
算法层(单元测试):等价类划分测试/组合功能测试(基于判定表的测试)/递归函数测试/多态消息测试
类层(模块测试):包括不变式边界测试、模态类测试/非模态类测试
模板层/类树层(集成测试):包括多态服务测试和展平测试
系统层(系统测试):
5.测试管理
测试团队管理
测试计划管理
错误(缺陷)跟踪管理 错误植入法/并行测试法/错误报告率DRE(D用户发现的bug数 e测试发现的bug数)
DN=(A*B)/C
测试件管理
6.软件调试
蛮力法:暴力穷举,低效/耗时。
回溯法:从出错处,追踪到根源。
原因排除法:主要思想是演绎法和归纳,用二分法实现
调试是测试之后的活动。
---------------------------------------------------------
# 一.程序设计
## 1.分类
主要有:结构化的程序设计(SP)、面向对象的程序设计(OOP)、面向方面的程序设计(AOP)、可视化的程序设计(VP)。
#### 1)结构化的程序设计
SP采用自顶向下、逐步求精的设计方法和单入口、单出口的控制结构。应该先整体再局部、先抽象再具体细化。
任何单入口、单出口、没有死循环的程序,都可以用三种基本控制结构来构造。
这三种基本控制结构是:顺序结构、IF-ELSE-THEN分支结构(选择结构)、DO_WHILE型循环结构。
如果程序设计中只允许使用这三种基本的控制结构,称为经典SP;如果还允许使用DO\_CASE型分支结构和DO\_UNTIL型循环结构,称为扩展SP;
如果再加上允许LEAVE(BREAK)结构,则称为修正的SP。
#### 2)面向对象的程序设计
OOPL(面向对象程序设计语言)支持类、对象、集成、多态、消息通信等OO概念。
可以提高软件的可靠性、可维护性、可复用性。
OOPL如:java C++等
OOPL的主要特征有:封装性、多态性、继承性。
#### 3)面向方面的程序设计
AOP通过预编译方式和运行期动态代理方式,实现在不修改源代码的情况下,为程序动态、统一的添加功能。
#### 4)可视化的程序设计
利用可视化开发工具像积木一样快速搭建软件。
常用的工具有VisualBasic VisualC++ Delphi PowerBuilder等
VP是一种事件驱动程序、基本概念包括表单、部件、属性、事件、方法等。
事件就是对部件的操作、如鼠标单击按钮。
## 2.程序设计风格
好的程序设计风格可以提高程序的:可理解性、可复用性、可扩展性、健壮性。
可理解性:有意义的标识符、详细的注解、规范的数据说明等。
可复用性:提高内聚、接口与实现分离、利用集成机制等。
可扩展性:使用多态机制、避免多分枝语句、封装策略等。
健壮性:预防用户误操作、检验参数合法性、不预先确定限制条件等。
二、概述
1.自动化测试
自动化测试的主要实现方法有:代码的静态与动态分析、测试过程的捕获与回访、
测试脚本技术、虚拟用户技术和测试管理技术。
自动化测试优点:
提高测试执行速度。
提高工作效率。
保证测试结果的准确性。
可连续运行测试脚本。
可模拟现实环境下受约束的情况。
三、测试方法
1.静态测试
主要手段是桌前检查、代码审查(检查单、检查表)、代码走查等。
静态分析方法:控制流分析、数据流分析、接口分析、表达式分析。
2.动态测试
主要分白盒测试和黑河测试
1)白盒测试
也称为结构测试,主要用于软件单元测试阶段。
测试方法:控制流测试、数据流测试、程序变异测试、、、
程序变异测试是针对某类特定程序错误的测试,专门测试某类错误是否存在。
2)黑盒测试
也称为功能测试,主要用于集成测试、确认测试和系统测试阶段。
包括:功能分解、等价类划分、边界值分析、判定表、因果图、状态图、随机测试、错误推测、正交实验法
等价类就是一组输入值,根据一个等价类内的数据是否合法、分为有效等价类和无效等价类。

四、测试类型
单元测试、集成测试、配置项测试、系统测试、验收测试、回归测试。
1.单元测试
1)单元测试的技术依据是软件详细设计说明书。
2)测试策略
自顶向下的单元测试、自底向上的单元测试、孤立测试和综合测试策略
自顶向下可以避免编写驱动模块
自底向上可以避免编写桩模块
孤立测试需要为每个模块编写驱动模块和桩模块。
一般混合使用各种策略,进行综合测试。
3)测试分析
a.静态分析 代码审查等
b.动态分析 对模块接口的测试优于其他测试内容。
2.集成测试
集成测试的技术依据是软件概要设计文档
1)集成测试策略
包括:基于分解的集成策略、基于功能的集成策略、基于调用图的集成策略。
a.基于分解的集成策略
可分为非渐增式和渐增式 非渐增式集成测试也称大突击测试或一次性集成测试。
渐增式集成测试也可分为自顶向下集成测试、自低向上集成测试、混合式集成测试。
b.基于功能的集成策略
c.基于调用图的集成策略
模块调用图是一种有向图、边表示程序调用。
2)集成测试分析
包括对被测试软件本身的分析,对测试可行性和测试策略的分析等。
3.系统测试
1)主要测试内容:功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试。
a.核心是功能测试与性能测试。
b.性能测试主要包括:压力测试、负载测试、并发测试、可靠性测试。
c.性能测试通用模型PTMG 是性能测试过程的一个模型,主要步骤:测试前期的准备、引入测试工具、
制定测试计划、测试设计与开发、测试执行与管理、以及测试结果分析。
d.性能测试分析
包括性能下降曲线的分析和性能计数器的分析。
确定性能平坦区、性能轻微下降区、性能急剧下降区。
4.其他测试类型
1)配置项测试
检验软件配置项与SRS(软件需求规格说明书)的一致性。
2)确认测试
a.内部确认测试 由开发方内部按照SRS进行的测试。
b.Alpha测试和beta测试
Alpha测试由用户在开发环境下进行测试。beta测试由用户在生产环境下进行测试。
c.验收测试
3)回归测试
软件变更之后的测试。

五、面向对象的测试
1.面向对象测试方法
1)OO系统的测试策略与结构化系统的不同:a.测试焦点从模块移向了类 b.测试的视角扩大到了分析ooa和设计ood模型。
2)OO系统的测试分为:单元测试、集成测试、系统测试。单元测试、集成测试可以纳入OOP的测试活动,系统测试非OOP所独有。
部分文献将OO系统的测试分为:算法层、类层、模板层、系统层。算法层、类层大致于单元测试、模板层大致于集成测试。
3)OO方法将开发分为OOA、OOD、OOP三个过程,对应着OOA测试、OOD测试、OOP测试。
OOA测试:测试分析模型是否满足软件需求、测试分析模型是否符合OO方法的要求。
OOD测试:OOD对OOA进行了进一步的细化,如果分析设计模型完全是纸面的、测试主要以文档审查的方式进行,如果分析设计模型的部分或整体可以模拟运行,
测试还可以建立在模拟运行的基础上。
OOP测试:分为单元测试和集成测试。
2.单元测试
1)包括:方法层次的测试、类层次的测试、类树层次的测试。
2)方法层次的测试:等价类划分测试、组合功能测试(基于判定表的测试)、递归函数测试、多态消息测试等。
3)类层次的测试:
a.不变式边界测试:类属性的某些临界状态可能不会出现,成为类不变式
b.模态类测试:类在特定状态下的测试
c.非模态类测试:类在任何状态下的测试
4)类树层次的测试:
对类的父类和祖先类的影响进行测试。
包括:多态服务测试和展平测试(对继承和子类追加的方法进行测试)
3.集成测试
1)传统集成测试
a.大突击集成 先测试所有的类,然后把所有类集成到一起测试。
可以提高测试效率,难以充分测试,调试难度高。在整个软件的可靠性有了基本保障时,才可以使用大突击集成测试。
b.自底向上集成与自顶向下集成
自底向上时,由于下层类已测试过,可以不用编写测试桩代码。
自顶向下集成时,由于上层类已测试过,所以不用编写测试驱动代码。
c.夹层式集成 从上下层向中间层测试。
2)协作集成
将可以互相协作完成特定功能的类集成在一起进行测试。
可以减少测试驱动代码和测试桩代码的开发。不适用较大的集成体。
3)基于使用的集成
首先测试那些比较独立的类。优缺点类似自底向上的集成。
4)类之间连接的测试
包括多重性测试,受控异常测试,往返场景测试和模态机测试。

六、软件测试组织
1.组织方
1)单云测试 一般由供方或开发方组织 也可委托第三方
2)集成测试 一般由供方组织 测试人云与开发人员应该互相独立 也可委托第三方
3)软件配置项测试 软件配置项测试要保证独立性 一般由供方组织 如果要委托第三方,一般第三方测试机构应获得国家认可。
4)系统测试 按照合同规定执行 由需方或开发方组织 如果要委托第三方,一般第三方测试机构应获得国家认可。
5)验收测试 由需方组织 如果要委托第三方,一般第三方测试机构应获得国家认可。
6)回归测试 一般由响应测试阶段的组织方组织。
2.测试过程
包括:测试策划、测试设计、测试执行、测试总结。
1)测试策划 确定测试的内容/质量特征/充分性要求/基本测试方法/所需资源和技术
进行风险分析和评估,制定测试计划。
2)测试设计 设计测试用例/获取测试数据/搭建测试环境
进行测试就绪评审
3)测试执行
4)测试总结 完成测试报告、并通过测试评审
3.测试管理
包括:过程管理、配置管理、评审工作。
1)过程管理
包括测试活动管理和测试资源管理。
测试准入条件:具有测试合同或项目计划、具有测试所需各种文档、所提交的测试软件已经受控、软件源代码已经正确通过编译。
测试准出条件:已按要求完成了合同或项目计划所规定的测试任务等等。
2)配置管理
测试过程中产生的各种工作产品,应纳入配置管理,
如:全部测试工具、被测软件、评审结果等
3)评审
包括测试就绪评审和测试评审。
测试就绪评审 测试设计阶段完成后,对测试计划和说明进行评审
测试评审 测试总结阶段 对测试记录和测试报告进行评审。
-----------------------------------------------------------
-----------------------------------------------------------
第15章 系统运行与维护
概述
系统的运维工作包括对系统的运行进行持续的性能监测,检查系统的资源是否得到最佳利用(以便对资源进行必要的调配);
检查并记录系统运行的异常情况(以便进行维护维修);检查业务量的动态变化情况,对业务处理量的增长进行合理预测,以便及时采用有关的措施。
-----------------------------------------------------------
系统运行与维护阶段占整个系统生命周期的60%~80%。
一、遗留系统处理策略
遗留系统(Legacy System)指基本上不能进行修改和演化以满足新业务需求的系统。
遗留系统可以采用继续维护,重构或替代,联合使用等策略。
1.遗留系统评价
主要评价方法包括度量系统技术水准、商业价值、与之关联的企业特征。评价结果用来作为选择处理策略的基础。
评价活动包括:启动评价、业务价值评价、系统外部环境评价、应用软件评价、分析评价结果。
1)启动评价
开始评价前,需要了解的问题:
对企业来说,遗留系统是至关重要的。
企业目标是什么。
演化需求是什么。
所期望的系统生命周期是多长。
系统使用期限是多久。
系统的技术状态如何。
企业是否愿意改变。
企业是否有能力承受演化。
2)业务价值评价
业务价值评价目标是判断遗留系统对企业的重要性。
3)系统外部环境评价
系统的外部技术环境是指硬件、支撑软件、企业IT基础设施。
4)应用软件评价
5)分析评价结果
技术水平OR=(P1ORH+P2ORS+P3OAF+P4ORA)/4
ORH:硬件评价价值 ORS:支持软件评价价值 OAF:企业基础设施评价价值 ORA:应用软件评价价值
Pi:是权系数。
技术水平和业务价值组成了评价结果的四象限,不同象限采取不同的演化策略
高水平高价值:改造策略
高水平低价值:集成策略
低水平高价值:继承策略
低水平低价值:淘汰策略
二、系统转换与交接
1.新旧系统的转换策略
转化策略通常有三种:
直接转换策略
并行转换策略
分段转化策略
2.数据转换和迁移
1)数据迁移的主要方法:系统切换前通过工具迁移、系统切换前采用手工录入、系统切换后通过新系统生成。
2)数据迁移前的准备工作:
待迁移数据源的详细说明,包括存放方式、数据量、数据的时间跨度等。
建立新旧系统数据库的数据字典。
新旧系统代码数据的差异分析。
建立新旧数据库表的映射关系,对无法映射字段的处理方法。
开发或购买、部署ETL工具。
编写数据转换的测试计划和校验程序。
制定数据转换的应对措施。
3)数据转换与迁移:
抽取、转换、装载。
4)数据迁移后的校验:
对迁移后的数据进行质量分析,包括完整性检查、一致性检查、总分平衡检查、记录条数检查、特殊样本数据的检查。
新旧系统查询数据对比检查。
三、系统的扩展和集成
系统的扩展分为动态扩展和静态扩展。动态扩展是在系统的运行过程中,添加新的功能;静态扩展在添加新的功能时,需要先停止系统。
系统扩展与集成分别属于深度维护和广度维护。系统扩展的重点在设计阶段,系统集成的重点在分析阶段。
四、系统运行管理
1.系统运行成本管理:包括预算管理、IT服务计费、偏差分析。
2.系统用户管理:
统一用户管理好处:
通过SSO方便用户使用,安全控制力度得到加强,减轻管理人员负担。
身份认证方法:
用户名/密码方式,IC(Integrated Circuit,集成电路)卡认证,动态密码,USBKey认证。
用户安全审计:
用户安全审计报告包括:用户访问哪些资源,用户访问系统的时间分布特征等;用户登录系统的时间/地点记录;用户登录失败的记录。
3.网络资源管理
性能管理、故障管理、配置管理、计费管理、安全管理。
4.软件资源管理
软件构件管理,软件分发管理,文档管理。
五、系统故障管理
故障管理中描述故障的3个基本特征:影响度、紧迫性、优先级。
故障管理的5项基本活动:故障监视、故障调查、故障支持、恢复处理、故障终止。
故障调查包括:收集故障信息、确定故障位置、调查故障原因。
导致信息系统故障的原因大致可分为:
a.硬件、操作系统维护时引发的故障
b.应用性故障
c.人为操作故障
d.系统软件故障
e.系统硬件故障
f.相关设备故障
g.灾难和灾害
六、软件维护
1.概述
1)国家标准规定了可维护性的5个子特性:易分析性,易改变形,稳定性,易测试性,维护性的依从性(遵循与维护性有关的标准或规约的能力)。
2)可维护性的度量
可用MTTR来度量软件的可维护性,它指出处理一个有错的软件需要花费的平均时间。
可维护性指标M=1/(1+MTTR).
可以通过度量软件的复杂性来间接度量可维护性,包括:环路数、软件规模、其他因素(嵌套深度,用户数等)。
3)软件维护分类
改正性维护
适应性维护
完善性维护
预防性维护
2.软件维护的影响因素
业务因素、理解的局限性、对待维护的优先级问题、维护人员的积极性、测试的困难。
3.软件维护成本
M=P+K^(c-d)
M:维护的总工作量 P:生产性活动的工作量 K:经验常数 c:软件复杂度 d:维护人员对软件的熟悉程度
4.软件维护管理
1)软件维护工作流程:
用户提交维护申请报告
维护要求评价
编制维护报告
提交管理部门审批
制定维护计划
进行维护
测试
用户及管理部门审核
更新系统文档
交付使用
2)保存维护记录
3)评价维护活动
七、系统监理与评价
1.工程监理
1)主要内容:四控三管一协调,投资控制、进度控制、质量控制、变更控制、安全管理、信息管理、合同管理、沟通协调。
2)分类
信息系统工程监理分为三类:咨询式监理、里程碑式监理、全程式监理。
2.系统评价
系统评价是系统运行一段时间后的技术性能和经济效益等方面的评价,是对信息系统审计工作的延伸。评价的目的是检查系统是否达到了预期的目标,技术性能是否达到了设计的要求,系统的各项资源是否得到了充分利用,经济效益是否理想,并指出系统的长处与不足,为以后系统的改进和扩展提供依据。
1.评价的步骤
1)确定评价对象,下达评价通知书,组织成立评价工作组和专家咨询组。
2)拟定评价工作方案,收集基础资料。
3)评价工作组实施评价,撰写评价报告。
4)评价工作组将评价报告报送专家咨询组复核,向委托人送达评价报告和选择公布评价结果,建立评价项目档案。
评价工作开始前,评价工作组可以按照评价基本要求,组织企业人员进行自测。
2.评价指标
可分为系统性能评价、系统效益评价、系统建设评价。
系统性能评价包括:可靠性、系统效率、可维护性、可扩充性、可移植性、实用性、适应性、安全保密性等。
系统效益评价包括:系统的经济效益和社会效益。
3.评价报告
评价报告由正文和附录两部分组成。
正文的主要内容包括所评价信息系统的基本情况描述、主要各项指标对比分析、评价结论、评价依据、评价方法等。附录包括有关评价工作的基础文件和数据资料。

-----------------------------------------------------------
-----------------------------------------------------------
第18章 系统安全性分析与设计
1.安全属性
保密性:最小授权原则、防暴露、信息加密、物理保密
完整性:安全协议、校验码、密码校验、数字签名、公证
可用性:综合保障(IP过滤、业务流控制、路由选择控制、审计跟踪) 合法用户可以正常使用,DDOS等
不可抵赖性:数字签名
2.对称加密与非对称加密
1)常见的非对称秘钥加密算法:
RSA:512位或1024位秘钥
Elgamal:其基础是Diffie-Hellman秘钥交换算法
ECC:椭圆曲线算法
其它非对称算法:背包算法、Rabin、D-H
2)常见的对称秘钥加密算法:
DES:替换+移位、56位秘钥、8位校验位、64位数据块
3DES:三重DES、两个56位的秘钥K1、K2
K1加密K2解密K1加密    K1解加密K2加密K1解密
AES:高级加密标准Rijndael加密法,是美国联邦政府采用的一种区块加密标准。
这个标准用来替代原先的DES。要求是:“至少与3DES一样安全”
AES的区块长度固定为128位,密钥长度则可以是128,192或256位;
RC-5:RSA数据安全公司的很多产品使用了RC-5.
IDEA:128位秘钥、64位数据块,比DES加密性好,对计算机要求低
对称秘钥加密速度快,加密强度不高,密钥分发困难。
DES:Data Encryption Standard
AES:Advanced Encryption Standard
3.信息摘要
信息摘要采用【单向】散列函数(单向Hash函数)、产生【固定长度】的散列值。
常用的消息摘要算法有MD5,SHA等。MD5的散列值为128位,SHA的散列值为160位。
SHA采用的秘钥长度较长,安全性高于MD5。
4.数字签名
用私钥对摘要进行签名,用公钥验证签名。(加密、解密的说法不恰当)
5.数字信封与PGP
1)数字信封
发送方将原文用对称密钥加密传输,而将对称密钥用接收方公钥加密发送给对方。
接收方收到电子信封,用自己的私钥解密信封,取出对称密钥,解密原文。
2)PGP
PGP可用于电子邮件,也可用于文件存储。采用了杂合算法,包括IDEA、RSA、MD5、ZIP数据压缩算法。
PGP承认两种不同格式的证书:PGP证书和X.509证书。
6.PKI公钥体系
7.信息系统安全保障层次
身份认证:用户名+口令/数字证书/生物特征识别
访问控制:自主访问控制DAC(给人赋权限)、访问控制列表ACL(对每个资源设置可以访问者列表)、强制访问控制MAC(对主体客体分级)、基于角色的访问控制模型RBAC、基于任务的访问控制TBAC。
系统层次:PKI/CA体系
8.安全审计与安全系统设计原则
1)安全审计作用
震慑、警告
发现计算机的滥用情况
提供有效的追究证据
帮助发现系统入侵和漏洞
帮助发现系统性能上的不足
2)安全系统设计原则:
木桶原则、整体性原则、安全性评价与平衡原则、标准化与一致性原则、技术与管理相结合原则、统筹规划,分步实施原则、等级性原则、动态发展原则、易操作性原则。
9.各个网络层次的安全保障
物理层:隔离、屏蔽
数据链路层:链路加密、PPTP、L2TP
网络层:防火墙、IPSec
传输层:TLS、SET(面向电子商务的协议集)
应用层:PGP、HTTPS
SSL:传输层、会话层、表示层、应用层
10.网络威胁与攻击
重放攻击(ARP) 所截获的某次合法的通信数据拷贝,出于非法目的而重新发送,如:认证数据包
拒绝服务DOS
窃听
业务流分析 长期监听
信息泄露
破坏信息完整性
非授权访问
假冒
旁路控制 攻击者利用系统的安全缺陷或安全性上的脆弱之处获得非授权的权利或特权。
授权侵犯 也称内部攻击,被授权以某一目的的人,将此权限用于其他非授权的目的。
特洛伊木马
陷阱门 在某个系统或某个部件中设置了机关,当提供特殊的输入数据时,允许违反安全策略。
抵赖
11.DOS(拒绝服务)与DDOS攻击
DOS攻击破坏系统的可用性。
12.防火墙技术
网络级防火墙 包过滤、状态检测(状态检测包过滤的技术,是传统包过滤上的功能扩展)
应用级防火墙 双穴主机、屏蔽主机、屏蔽子网(DMZ非军事区)
防火墙不能防止内部攻击。
13.入侵检测
技术:特征检测、异常检测
方法:特征检测、统计检测、专家系统
产品分类:基于主机、基于网络
发展方向:分布式入侵检测、智能化入侵检测、全面安全防御。
组成部分:事件产生器、事件分析器、事件数据库、响应单元。
14.计算机病毒与木马
病毒:具有传染性、隐蔽性、潜伏性、破坏性、针对性、衍生性、寄生性、未知性。
病毒具有【自我复制】的特性。
木马:是一种后门程序,常被用作远程控制工具。
病毒分类:
系统引导型病毒、文件外壳型病毒、目录型病毒、
蠕虫病毒(熊猫烧香、罗密欧与朱丽叶、恶鹰、尼姆达、冲击波)、
木马:QQ消息尾巴木马、
宏病毒:美丽沙,台湾1号
代表性病毒 CIH(唯一可以破坏硬件的病毒)、红色代码:蠕虫病毒+木马

15.区块链
1.比特币是区块链技术的一个应用。
2.解决双花问题。防止数据重复消费。
解决拜占庭将军问题。没有中心权威机构,达成交易信任。
3.区块链是一个分布式账本,一种特殊的分布式数据库。
数据不一致时,采用少数服从多数的策略,要想伪造数据,至少要篡改51%的数据。
4.区块链采用区块+链式的存储结构。每个区块含有上一个区块的HASH信息,从而串联起来。
如果想篡改摸个块的信息,测需要将他后面的所有块都篡改掉,以保证HASH匹配。
5.区块链所用到的技术:
哈希加密/防篡改、P2P网络/去中心化、非对称加密/数字签名(账户)、共识算法(博弈论)/全民记账
6.区块链的特点
1)去中心化
2)集体维护(类似paxos)
3)开放性 除交易双方的私有信息被加密外,区块链的数据对所有人公开
4)自治性 采用基于协商的一致规范和协议使系统中的所有节点能在去信任的环境中自由安全的交换数据。
5)安全性(信息不可篡改)
6)匿名性(去信任) 由于数据交互是无需信任的,因此交易双方不需要公开自己的身份,让对方信任自己。
7)完全透明 整个系统的动作规则(算法),数据(账本)都是公开透明的,可即时审计的。
7.区块链的应用
数字货币
智能合约 类似触发器,达到规定条件自动触发后续程序,如中奖后,自动发奖金。
溯源(商品防伪溯源、食品安全) 记录30年茅台历史。
确权(版权保护、房产登记、文化艺术品登记) 将作品入链。
-----------------------------------------------------------
一、信息系统安全体系
信息系统安全威胁主要有如下方面:系统的稳定性和可靠性被破坏;大量信息设备的使用、维护、管理问题;
知识产品和内部机密材料等信息存储、使用和传输的保密性、完整性、可靠性。其中保密性存在的威胁最大。
1.信息安全的分类:
实体安全(环境安全、设备安全、媒体安全)
运行安全(系统风险管理、审计跟踪、备份与恢复、应急)
信息安全 确保信息的保密性、完整性、可用性、可控性。分为操作系统安全、数据库安全、网络安全、病毒防护、
访问控制、数据加密与认证(鉴别)7方面。
人员安全
2.系统安全体系结构:
物理层安全、系统层安全、网络层安全、应用层安全、安全管理。
3.安全保护等级
第一级 用户自主保护级 普通内联网用户 隔离用户与数据
第二级 系统审计保护级 需要保密的非重要单位 更新粒度的自主访问控制
第三级 安全标记保护级 地方政府、金融机构、电力、重点工程 提供安全策略模型,数据标记,主体对客体的强制访问控制等。
第四级 结构化保护级 中央机关、广播电视、重点科研、国防建设  建立在形式化安全模型之上。
第五级 访问验证保护级 国防关键部门  通过访问监控器仲裁主体对客体的全部访问。
4.如何建立一个完整的系统安全保障体系(系统):
1)建立统一的身份认证体系
2)建立统一的安全管理体系
3)建立规范的安全保密体系
4)建立完善的网络边界防护体系

二、数据安全与保护
1.数据加密技术
1)加密机制可以保护信息的机密性和完整性,传统的加密算法包括代换加密和置换加密两种。
代换加密通过密文字母表代替明文的字母或字母组,各个字母或字母组的相对位置不变,内容改变了。
置换加密将明文中的字母重新排列,字母本身不变,但其位置改变了。
2)对称加密算法
a.对称加密算法也称私钥加密算法,加密与解密密钥相同,或虽然不同但可以从一个推导出另一个。
对称加密算法有两种基本类型,分别是分组密码和序列密码。
分组密码是在明文分组和密文分组上进行运算,序列密码是对明文和密文数据流按位或字节进行运算。
b.常见的对称加密算法包括瑞士的国际数据加密算法(International Data Encryption Algorithm,IDEA)和
美国的数据加密标准(Data Encryption Standard,DES)
c.DES是一种迭代的分组密码,明文和密文都是64位,使用一个56位的密钥和8位奇偶校验位。攻击DES的主要技术是穷举法。
3DES采用112位密钥,即用两个56位的密钥K1和K2,发送方用K1加密,K2解密,K1再加密;接收方用K1解密,K2加密,K1解密,
其效果相当于密钥长度加倍。
d.IDEA是在DES基础上发展而来,类似3DES。IDEA的加密过程和解密过程是一样的,只不过使用不同的密钥。
它的密钥长度为128位,明文和密文的数据块大小为64位。
3)非对称加密算法
也称为公钥加密算法,最常见的是RSA算法,密钥长度为512位。
2.认证技术
1)数字签名
普通数字签名算法:RSA、EIGamal、Fiat-Shamir、Des/DSA、椭圆曲线数字签名算法、有限自动机数字签名算法。
特殊数字签名算法有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名。
美国政府基于有限域上的离散对数问题制定了自己的数字签名标准(Digital Signature Standard,DSS)
数字签名主要功能是保证数据完整性、鉴别发送者的身份、防止交易抵赖(不可否认)。
2)杂凑算法
杂凑算法是主要的数字签名算法,它利用散列函数(哈希函数、杂凑函数)进行数据加密。
a.消息摘要算法(Message Digest algorithm5,MD5),产生一个128位的消息摘要。
b.安全散列算法(Secure Hash Algorithm,SHA),它对长度不超过264位的消息产生160位的消息摘要。
SHA由美国国家安全局设计,常用于TLS(Transport Layer Security,传输层安全协议),SSL(Secure Socket Layer,安全套接字层)、
PGP、SSH、S/MIME、IPSec等。
3)数字证书
目前国际上对证书的格式和认证方法遵从X.509体系标准。
4)身份认证
口令认证、动态口令认证、生物特征识别。
3.密钥管理体制
1)主要有三种
KMI(Key Management Infrastructure,密钥管理基础设施),适用于封闭网络。
PKI(Public Key Infrastructure,公钥基础设施),适用于开放网络。
SPK(Seeded Public-Key,种子化公钥),适用于规模化专用网。
2)KMI机制
KMI设定了一个密钥分配中心(Key Distribution Center,KDC)来发放密钥。
KMI的密钥发放基于秘密信道进行。
3)PKI机制
PKI机制解决了分发密钥时对秘密信道的依赖问题。
4)SPK机制
SPK用来解决密钥的管理问题,SPK有两种实现方法:
a.多重公钥(Lapped Public Key,LPK),采用RSA算法实现。缺点是:将种子私钥以原码形式分发给署名用户;层次越多,运行时间越长。
b.组合公钥(Conbined Public Key,CPK),采用DLP或ECC实现。CPK克服了LPK的两个缺点,私钥是经组合以后的变量,不暴露种子,
公钥运算几乎不占时间。

三、通信与网络安全技术
1.防火墙
防火墙是一种隔离控制技术。
1)基本功能
访问控制功能
内容控制功能
全面的日志功能
集中管理功能
自身的安全和可用性
附加功能(流量控制、网络地址转换NAT、支持虚拟专用网VPN)
2)防火墙的分类
从总体上可分为网络级防火墙和应用级防火墙。
可细分为:包过滤型防火墙、电路级网关型防火墙、应用网关型防火墙、代理服务型防火墙、状态检测型防火墙、自适应代理型防火墙。
包过滤型防火墙:工作在网络层,包过滤的判别条件位于数据包的头部,由于IPv4的不安全性,可能被假冒;基于网络层的安全技术,
不能检测通过高层协议的攻击。
电路级网关型防火墙:具有一定的代理服务器作用,对连接会话的建立进行监控,会话建立后不在进行分析,安全性低。
应用网关型防火墙:工作在应用层。
代理服务型防火墙:内外部网络隔离,通常认为是最安全的防火墙。
状态检测型防火墙:工作在网络层
自适应代理型防火墙:兼备了代理技术的安全性和状态检测技术的高效率。
3)防火墙的体系结构
如:宿主机模式、屏蔽主机模式、屏蔽子网模式等。
双宿/多宿主机模式。通常由一台多网卡堡垒主机做防火墙,多网卡分别连接内部网、外部网。
屏蔽主机模式。防火墙由堡垒主机和包过滤路由器组成,堡垒主机位于内部网络上,通过在路由器上进行配置,
使堡垒主机成为外部网络唯一可直达的主机。屏蔽主机防火墙实现了网络层和应用层的安全。
屏蔽子网模式。屏蔽子网模式采用了两个包过滤路由器和一个堡垒主机,在内外网之间建立一个被隔离的子网,
称为非军事区(De-Militarized Zone,DMZ)或周边网。将堡垒主机、Web服务器、Mail服务器等公用服务器放在DMZ中。
4)防火墙的局限性
为了提高安全性,限制或关闭一些有风险的网络服务,给用户带来使用上的不便。
对来自网络内部的攻击无能为力。
不能防范不经过防火墙的攻击。如通过串行线路网际协议SLIP(Serial Line Internet Protocol)或
点对点PPP(Point to Point Protocol)直接进入internet.
防火墙对用户不完全透明,可能带来传输延迟、瓶颈、单点失效等。
防火墙不能完全防止病毒的传播。
2.虚拟专用网(Virtual Private Network,VPN)
1)VPN关键技术
VPN采用4项技术保证安全,分别是隧道技术、加解密技术、密钥管理技术、身份认证和访问控制技术。
隧道协议分为第二层隧道协议和第三层隧道协议。
第二层隧道协议工作在数据链路层,主要有L2F(Level 2 Forwarding,第二层转发)协议、
PPTP(Point to Point Tunneling Protocol,点对点隧道协议)、L2TP(Layer Two Tunneling Protocol,第二层通道协议)等。
第三层隧道协议工作在网络层,主要有VTP(VLAN Trunking Protocol,虚拟局域网干道协议)、IPSec等。
2)PPP会话过程
PPP拨号会话过程分为4个阶段:创建PPP链路、用户验证、PPP回叫控制、调用网络层协议。
在用户验证阶段,大多数PPP方案提供了有限的认证方式,包括:口令字认证协议(Password Authentication Protocol,PAP)、
挑战握手认证协议(Challenge Handshake Authentication Protocol,CHAP)
PAP以明文方式传输口令,很不安全。CHAP使用加密认证,动态口令。
3.安全协议
1)SSL
SSL是传输层安全协议。
2)HTTPS
HTTPS使用SSL作为应用层子层,使用443端口。HTTPS和SSL支持X.509数字认证。
3)PGP
PGP是一个基于RSA的邮件加密协议,还可用于文件存储的加密。PGP支持PGP证书和X.509证书。
4)IPSec
IPSec有两个基本目标,分别是保护IP数据包安全,为抵御网络攻击提高防护措施。
IPSec通过结合密码保护服务、安全协议组、动态密钥管理三者来实现目标。
网络传输中的路由器和计算机无须支持IPSec。
IPSec可以有效防范下述攻击:
Sniffer/数据篡改/身份欺骗、盗用口令、应用层攻击/中间人攻击/拒绝服务攻击。
4.单点登录技术
单点登录可以通过Kerberos机制和外壳脚本机制来实现。
1.一个理想的SSO产品应具备的功能:
常规特性(支持多种系统、设备、接口)
终端用户管理灵活性
应用管理灵活性
移动用户管理
加密和认证
访问控制
可靠性和性能
2.Kerberos机制是一种网络身份认证协议,建立在对称加密的基础上。
3.外壳脚本机制
四、病毒防治与防闯入
是否具有传染性是判断一个程序是否是计算机病毒的最重要条件。
1.病毒防护技术
常见的反病毒技术:特征码技术、校验和技术、启发式扫描技术、虚拟机技术、行为监控技术、主动防御技术等。
校验和技术:计算正常文件的内容和正常的系统扇区的校验和。
启发式扫描技术:基于代码反编译技术,分析文件中的可疑指令序列。
2.入侵检测技术
作为防火墙的合理补充,入侵检测技术被认为是防火墙后的第二道安全闸门。
入侵检测系统(Intrusion-detection system,IDS)至少包括数据提取、入侵分析、响应处理三大部分。
IDS基于检测数据源分为基于主机的IDS和基于网络的IDS
基于检测方法分为异常检测(基于行为的检测)和误用检测(基于特征的检测)
3.入侵防护技术
入侵防护系统(Intrusion Prevention System,IPS)部署在网络进出口处。
具有嵌入式运行,深入分析和控制,入侵特征库,高效处理能力等技术特征。
4.网络攻击与预防
常见的攻击手段:
1)数据链路层
MAC地址欺骗和ARP欺骗。
2)网络层
IP地址欺骗、泪滴攻击、ICMP攻击和RIP路由欺骗
泪滴攻击是指发送两段或多段数据包,并使偏移量出错,造成重叠现象,使目标主机计算时出现负值,从而崩溃。
ICMP攻击是指发送过大的ICMP数据包,大量的ping命令等,使对方带宽或资源耗尽。
RIP路由欺骗,声明自己所控制的路由可以尽快到达目标站点,在此基础上完成侦听和篡改。
3)传输层
传输层攻击主要有:TCP初始化序号预测、TCP端口扫描、Land攻击、TCP会话劫持、SYN flooding、RST和FIN攻击。
TCP初始化序号预测是通过预测初始序号来伪造TCP数据包;
Land攻击向目标主机发送一个特别伪造的SYN包,其源IP地址和目的IP地址都被设置成目的主机的IP地址,使目标自己攻击自己;
TCP会话劫持建立在IP欺骗和TCP序列号攻击的基础上;
SYN flooding阻止三次握手的完成;
RST和FIN攻击使被欺骗主机和目标主机之间的正常通信突然中断。
4)应用层
电子邮件攻击、DNS欺骗、缓冲区溢出攻击。
五、系统访问控制技术
1.概述
访问控制是策略(policy)和机制(mechanism)的集合,它允许对限定资源的授权访问。
1)访问三要素 主体(用户)/客体(资源)/控制策略
2.访问控制策略
包括:登录访问控制、操作权限控制、目录安全控制、属性安全控制、服务器安全控制等方面。
登录访问控制可分为3个步骤:用户名的识别与验证,用户口令的识别与验证,用户账号默认限制检查。
属性安全控制级别高于用户操作权限设置级别。
3.访问控制模型
1)Bell-LaPadula BLP模型
BLP模型是第一个正式的安全模型。基于上读下写规则,提供保密性。
2)Lattice模型
3)Biba模型 基于下读上写机制,提供数据完整性保证。
4.访问控制分类
1)自主访问控制(Discretionary Access Control,DAC)
大部分信息系统的自主访问控制模块借助了访问控制列表ACL。
特点是:控制自主,可以控制主体对客体的直接访问,但不能控制主体对客体的间接访问。
2)强访问控制MAC
MAC要求主题对客体的访问满足BLP模型的两个基本特性。
MAC和DAC可以为每个用户分配访问权限规则集,也可以通过组的形势进行授权。
3)基于角色的访问控制(Role-Based Access Control,RBAC)
基本模型RBAC0指明了用户、角色、访问权和会话之间的关系。
层次模型RBAC1中,上层角色可以继承下次角色的访问权。
约束模型RBAC2中,继承了RBAC0的所有基本特性,增加了对RBAC0的所有元素的约束检查,只有拥有有效值的元素才可以被接受。如:不能将互相冲突的角色分给同一个用户。
层次约束模型RBAC3,兼有RBAC1和RBAC2的特点。
安全原则:最小特权原则、责任分离原则和数据抽象原则。
4)基于任务的访问模型(Task-Based Access Control,TBAC)
TBAC模型由工作流、授权结构体、授权步、许可集4部分组成。
一个工作流由多个任务组成,每个任务对应一个授权结构体,每个授权结构体包括若干授权步。
在TBAC中前一个授权步的处理(通过/否定等)决定后续授权步的操作许可。
TBAC在工作流中广泛应用。
5)基于对象的访问控制(Object-Based Access Control,OBAC)
在OBAC模型中,将ACL与受控对象及其属性相关联,实现对对象及其属性的访问控制。
支持用户、组、角色、权限集合。
允许对策略和规则进行复用,继承和派生操作。
六、容灾与业务持续
1.灾难恢复技术
1)灾难恢复的技术指标
灾难恢复的指标主要与容灾系统的数据恢复能力有关。
灾难恢复的两个关键概念是恢复点目标(Recovery Point Objective,RPO)和恢复时间目标(Recovery Time Objective,RTO)
RPO描述企业能容忍的最大数据丢失量,RTO描述企业能容忍的恢复时间。
2)灾难恢复等级
GB/T 20988-2007中分为6个等级:1级基本支持、2级备用场地支持、3级电子传输和部分设备支持、
4级电子传输及完整设备支持、5级实时数据传输及完整设备支持、6级数据0丢失和远程集群支持
3)分类
从对系统的保护程度来分:数据容灾/应用容灾。
2.灾难恢复规划
灾难恢复规划是一个周而复始、持续改进的过程,包含灾难恢复需求的确定、灾难恢复策略的制定和实现、灾难恢复预案的制定、
落实和管理。
1)灾难恢复需求的确定
包括三方面工作:风险分析、业务影响评估、确定灾难恢复目标(RTO\RPO)
2)灾难恢复策略的制定
支持灾难恢复各个等级所需的资源可分为7个要素:数据备份系统、备用数据处理系统、备用网络系统、备用基础设施、
技术支持能力、运行维护管理能力和灾难恢复预案。
3)灾难恢复预案的实现
包括灾难备份系统技术方案的实现、灾难备份中心的选择和建设、技术支持能力的实现、运行维护管理能力的实现、灾难恢复预案的实现。
4)灾难恢复预案的制定、落实和管理
起草、评审、测试、修订、审核和批准。
3.业务持续性规划(Business Continuity Planning,BCP)
BCP可以帮助企业确认影响业务发展的关键因素及其可能面临的威胁,确定并减少风险可能带来的损失,有效地保障业务的持续性。
1)实施BCP的阶段
项目启动
风险评估与消减
业务影响分析
业务持续性策略
开发BCP
人员培训与训练
测试与演练
业务持续性计划维护及变更管理
2)BCP主体框架
BCP主体框架主要由以下4个部分组成:
灾难恢复规划(Disaster Recovery Planning,DRP)
业务恢复规划(Business Resumption Planning,BRP)
危机管理规划(Crisis Management Planning,CMP)
持续可用性(Continuous Availability,CA)
3)衡量BCP流程
可以使用BCP平衡记分卡,包括价值综述、价值计划、BCP风险度量标准、执行协议和有效方法。
七、安全管理措施
安全管理涉及方面:制定安全策略、风险评估、控制目标与方式选择、制定规范的操作流程、对人员进行安全培训等。
1.安全管理具体内容:
密码管理、网络管理、设备管理、人员管理
2.安全审计
安全审计对主体访问和使用客体的情况进行记录和审查,以保证安全规则被正确执行,并帮助分析安全事故产生的原因。
安全审计的基本要素:控制目标、安全漏洞、控制措施、控制测试。
CC(Common Criteria,通用准则)标准:由ISO提出,将安全审计分为6个部分,安全审计自动响应、安全审计数据生成、
安全审计分析、安全审计浏览、安全审计事件选择、安全审计事件存储。
3.私有信息的保护
1)造成个人信息泄漏的途径
利用操作系统和应用软件漏洞
网络系统设置
程序安全性
拦截数据包
假冒正常的商业网站
用户自身因素

-----------------------------------------------------------
-----------------------------------------------------------
第19章 系统可靠性分析与设计
概述
1.系统故障模型
表现形式:永久性、间歇性、瞬时性。
逻辑级的故障模型:短路故障、开路故障、桥接故障。
数据结构级的故障:独立差错、算术差错、单向差错。
软件故障和软件差错:非法转移、误转移、死循环、无理数据等。
系统级的故障模型
2.可靠性指标
平均无故障时间MTTF MTTF=1/x x为失效率
平均故障修复时间MTTR MTTR=1/x x为修复率
平均故障间隔时间MTBF MTBF=MTTR+MTTF
系统可用性=MTTF/(MTTR+MTTF)*100%
3.串联/并联系统可靠度计算
串联系统可靠度R=R1*R2...*Rn    失效率x约等于x1+x2+...x3
并联系统可靠度R=1-(1-R1)*(1-R2)...*(1-Rn)
模冗余系统
4.系统容错技术
1)避错技术/容错技术
2)容错技术包括:
结构冗余(硬件冗余、软件冗余)
信息冗余(校验码)
时间冗余(重复多次进行相同的计算)
冗余附加(为实现上述冗余技术所需的资源和技术)
3)结构冗余又分为:
静态冗余(屏蔽冗余、被动冗余;模冗余系统)
动态冗余(主动冗余;备份系统、集群系统)
混合冗余
4)集群系统提供故障检测、故障定位、故障恢复功能。
5)前向恢复,使当前的计算继续向下执行。
后向恢复,系统恢复到前一个正确状态,再继续执行。
5.软件容错技术
1)N版本程序设计
N版本程序设计增加了三个新的阶段:相异成份规范评审、相异性确认、背对背测试。
N版本程序设计 前向恢复,实时性好
表决算法:全等表决、非精确表决、Cosmetie表决。
2)恢复快方法 后向恢复,实时性差
3)防卫式程序设计 try catch
实现策略:错误检测、破坏估计、错误恢复。
6.双机容错与集群技术
1)双机容错模式
双机热备模式:主系统、备用系统
双机互备模式:同时提供不同的服务,心不跳则接管
双机双工模式:同时提供相同的服务,集群的一种
2)集群的特点
可伸缩性、高可用性、可管理性、高性价比、高用户透明性
3)负载均衡
基于特定软件的负载均衡
基于DNS的负载均衡
基于NAT的负载均衡
反向代理负载均衡
混合型负载均衡
静态算法:轮转算法、加权轮转算法、最小连接数算法、加权最小连接数算法、
源地址哈希散列算法、目标地址哈希散列算法、随机算法
动态算法:加权百分比算法
7.马尔柯夫模型
马尔柯夫模型的两个核心概念是状态和状态转移。
对于一个模块来说,从运行状态到失效状态的转移率就是失效率,从失效状态到运行状态的转移率就是修复率

-----------------------------------------------------------
系统可靠性分析与设计最重要的是建立可靠性模型,以及可靠性指标的预计与分配。
系统的可靠性包括成熟性、容错性、易恢复性、可靠性的依从性。
成熟性指系统避免因错误的发生而导致失效的能力;
容错性系统发生故障或违反指定接口的情况下,维持规定的性能级别的能力;
可靠性的依从性是指系统依附于与可靠性相关的标准、约定或规定的能力。
一、可靠性概述
1.系统可靠性指标
平均无故障时间、平均故障修复时间、平均故障间隔时间、系统可用性等。
平均无故障时间(Mean Time To Failure,MTTF)
失效率为系统在单位时间内的失效预期次数。
1000台计算机工作1000小时,出现10台故障。失效率为0.00001,MTTF=1/0.00001
平均故障修复时间(Mean Time To Fix,MTTR)
平均故障间隔时间(Mean Time Between Failure,MTBF) MTBF=MTTR+MTTF,实际MTTR很小可以省略。
系统可用性=MTTF/(MTTR+MTTF)*100%=MTTF/MTBF*100%
2.系统故障模型
逻辑级的故障 指硬件逻辑上出现的故障。
数据结构级的故障 独立差错、算术差错、单向差错。
软件故障和软件差错 软件故障在数据结构或程序输出中的表现称为软件差错。
系统级的故障 表现为功能错误,即系统输出与系统设计说明的不一致。
3.系统可靠性模型
常用的系统可靠性模型有:时间模型、故障植入模型、数据模型。
时间模型
Er=E0/(i-Ec) Er:剩余故障数 Ec:纠正的故障数 i:系统中的指令数 E0:总故障数
风险函数Zt=C*Er C为比例常数
可靠度=e^-c*Er
平均无故障时间MTBF=1/C*Er
故障植入模型
N=m*(n-k)/k N:错误总数 m:植入的错误数 n:发现的错误数 k:检测到的植入错误数
N=m*n/k N:错误总数 m:A发现的错误数 n:B发现的错误数 k:AB共同发现错误数
即把A当作错误植入数
数据模型
二、系统可靠性分析
1.串联系统
可靠性R=R1*R2*...Rn
2.并联系统
可靠性R=1-(1-R1)*(1-R2)*...(1-Rn)
3.模冗余系统
m模冗余系统由m(m=2n+1)个相同子系统和一个表决器组成,需要至少n+1个子系统正常工作。
三、冗余技术
提高系统可靠性的技术分为避错(排错)技术和容错技术。
避错是通过技术评审、系统测试和正确性证明等技术,在系统正式运行之前避免、发现和改正错误。
容错技术主要采用冗余方法来消除故障的影响。
1.冗余技术的分类
主要有:结构冗余(硬件冗余和软件冗余)、信息冗余、时间冗余和冗余附加4种。
1)结构冗余
静态冗余:又称为屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。静态冗余通过表决和比较来屏蔽系统中
出现的错误。三模冗余是对三个功能相同,但由不同的人开发的模块的运行结果进行表决,以多数结果作为最终结果。
动态冗余:又称为主动冗余,当系统检测到某个模块出现错误时,就用一个备用模块来顶替他。
混合冗余:成本很高。
2)信息冗余
如:检错码和纠错码,使用较为广泛的有奇偶校验码、汉明校验码、循环冗余校验码。
3)时间冗余
重复进行多次计算,如果出现结果不一致,就代表出现了故障。这种方法只能检测瞬时性故障,
不适合检测永久性故障。
4)冗余附加
冗余附加指为实现上述冗余技术所需的资源和技术,包括:程序、指令、数据等。
2.冗余系统
系统恢复策略一般有两种,前向恢复和后向恢复。
前向恢复:将当前的计算继续下去。
后向恢复:将系统恢复到前一个正确状态,再继续执行。
3.冗余系统恢复步骤
故障检测 联机检测/脱机检测
故障屏蔽
故障限制
复执 检测瞬时故障的有效措施。
故障诊断 在故障检测的基础上进行故障定位。
系统重配置
系统恢复
系统重启动
修复 联机修复/脱机修复
系统重组合
四、软件容错技术
软件容错技术主要有:N版本程序设计、恢复块方法、防卫式程序设计等。
1.N版本程序设计
N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略。
设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。
1)与通常软件开发过程的区别
N版本程序设计增加了三个新的阶段,分别是:相异成分规范评审(使用相同的SRS)、相异性确认(详细设计之后进行)、背对背测试。
N版本程序设计中,有三种常用表决算法:全等表决、非精确表决(允许偏差,达到一定数据量)、
Cosmetie表决(适用于字符串的表决)
2)N版本程序设计要注意哪些问题
N版本程序的同步
N版本程序间的通信
表决算法
一致性比较
数据相异性
2.恢复块方法
恢复块方法是一种动态的故障屏蔽技术,采用后向恢复的策略。
主块故障后使用后备块替换。
N版本程序设计     恢复块方法
硬件运行环境     多机                      单机
错误检测方法     表决法                  验证测试程序
恢复策略            前向恢复              后向恢复
实时性                高                         差
3.防卫式程序设计
设计思想是不使用冗余容错,通过在程序中包含错误检查代码和错误恢复代码,使发生错误后,
程序可以恢复到一个已知的正确状态中去。
实现策略包括错误检测、破坏估计、错误恢复三方面。
五、双机容错技术
1.工作原理
由两台服务器和一个共享磁盘阵列及相应的双机软件组成,共享磁盘阵列是可选的,可由RAID卡取代。
每台服务器至少有两块网卡,一块对外服务,一块用于心跳互连。
2.工作方式
3.双机软件
对虚拟IP和共享磁盘阵列进行控制。
六、集群技术
1.集群系统的特点:可伸缩性、高可用性、可管理性、高性价比、高透明性。
集群分类:高性能计算集群、负载均衡集群、高可用性集群。
高性能计算集群特点:
系统开发周期短。
用户投资风险小。
系统价格低。
节约系统资源 充分利用现有资源。
系统扩展性好。
用户编程方便。
2.负载均衡
1)根据负载均衡的位置不同,可以将负载均衡分为客户端负载均衡和服务器端负载均衡。
根据负载均衡的所在层次不同,可以将负载均衡分为应用层负载均衡、传输层负载均衡、网络层负载均衡、
数据链路层负载均衡。
2)负载均衡的含义有两方面:将大量的并发访问或数据流量分担到多个节点上;将单个重负载的运算分担到
多个节点上做并行处理,然后将结果汇总返回给用户。
3)调度算法
静态调度算法:轮转算法、加权轮转算法、最小连接数算法、加权最小连接数算法、源地址哈希散列算法、
目标地址哈希散列算法、随机算法。
动态调度算法:加权百分比算法。
基于局部性的最小连接数算法(Locality-Based Least Connections,LBLC)
在节点负载基本平衡的情况下,将相同目标IP地址的请求调度给同一个节点;若节点不存在或超载,
根据最小连接数原则分配给新节点。
带复制的基于局部性的最小连接数算法(Locality-Based Least Connections with Replication,LBLCR)
与LBLC的不同在于,它维护从一个目标ip地址到一组节点的映射,每次根据最小连接数原则从组中选取
节点,如果超载,再用最小连接数从集群选取,并将新节点加入集群。
实现技术:
基于特定软件的负载均衡、基于DNS的负载均衡、基于NAT的负载均衡、反向代理负载均衡、混合型负载均衡。
3.进程迁移技术
进程迁移的作用:负载共享、提高通信性能、可用性、重新配置、使用集群中某些节点的特殊能力。
进程迁移算法
主要有:贪婪复制算法、惰性复制算法、预复制算法、基于检查点的迁移算法等。
进程迁移的通信管理,包括迁移过程中的通信管理和迁移之后的通信管理。

----------------------------------------------------------------------
----------------------------------------------------------------------
第20章 项目管理
摘要
1.范围管理
1)范围管理工作步骤
a.范围计划编制
b.范围定义 产品范围/工作范围
c创建WBS WBS、WBS字典
d.范围确认 用户确认
e.范围控制
2)WBS层次
层次名称    层次编号    层次描述    层次目的
决策层         1              总项目      工作授权和解除
管理层         2              项目          预算编制
3              任务          进度计划编制
技术层         4             子任务        内部控制
5              工作包      内部控制
操作层         6              努力水平    内部控制
2.时间管理
1)时间管理步骤
a.活动定义
b.活动排序
c.活动资源估算
d.活动历时估算
e.制订进度计划
f.进度控制
2)活动历时估算方法
a.专家判断法
b.三点估算法 (最小估值+4*最可能估值+最大估值)/6
c.功能点估算法
d.自上而下的估算 从整体到具体
e.自下而上的估算 先完成WBS
3)制订进度计划
是否为关键活动 路径最长的
是关键活动
赶工、快速跟进(比如:需求未完成、提前开始设计)
不是关键活动
偏差是否大于总时差
偏差书否大于自由时差
4)前导图法(单代号网路图,PDM)
完成对开始FS:后一活动的开始要等到前一活动的完成。
完成对完成FF:后一活动的完成要等到前一活动的完成。
开始对开始SS:后一活动的开始要等到前一活动的开始。
开始对完成SF:后一活动的完成要等到前一活动的开始。 新老系统切换
5)关键路径法(双代号网络图)
关键路径法是在制定进度计划时使用的一种进度网络分析技术。
关键路径法沿着项目进度网络路线进行正向和反向分析,从而计算出所有计划活动理论上的最早开始与完成时间、最迟开始与完成时间,不考虑任何资源限制。
a.总时差(松弛时间):在不延误总工期的前提下,该活动的机动时间。
总时差=最迟开始(完成)时间-最早开始(完成)时间。
b.自由时差:在不影响紧后活动的最早开始时间前提下,该活动的机动时间。
活动的自由时差是总时差的一部分。
当延误时间<自由时差时不影响活动工期。
自由时差时<当延误时间<总时差时,虽然不影响总工期,但影响了紧后活动的最早开始时间。
当延误时间>总时差时,会影响总工期。
6)甘特图(Gantt)
优点:甘特图直观、简单、容易制作,便于理解,能很清晰地标识出每一项任务的起始与结束时间。一般适合小型项目,可用于WBS的任何层次、进度控制、资源优化、编制资源和费用计划。
缺点:不能系统的表达一个项目所包含的各项工作之间的复杂关系,难以进行定量的计算和分析,以及计划的优化等。
3.成本管理
1)步骤:
成本估算
自顶向下的估算
自顶向上的估算
差别估算法
成本预算
直接成本与间接成本(均摊)
管理储备(风险控制)
零基准预算
成本控制
挣值分析
4.挣值分析
1)挣值管理
计划工作量的预算成本PV
PV=计划工作量*预算定额
已完成工作量的实际成本AC
已完成工作量的预算成本EV
EV=已完成工作量*预算定额
完工预算BAC
BAC=完工时的PV总和
----------------------------
进度偏差:SV=EV-PV
成本偏差:CV-EV-AC
进度绩效偏差:SPI=EV/PV
成本绩效偏差:CPI-EV/AC
剩余工作量成本ETC=BAC-EV 非典型 不具代表性
剩余工作量成本ETC=(BAC-EV)/CPI 典型 具有代表性
完工估算EAC=AC+ETC
2)挣值曲线
5.质量管理
1)质量模型
过程                    过程质量(过程测度)
软件产品              内部质量属性(内部测度)
软件产品              外部质量属性(外部测度)
软件产品的效用     使用质量属性(使用质量测度)

外部和内部质量包括:
功能性:适合性、准确性、互操作性、安全保密性、功能性的依从性。
可靠性:成熟性、容错性、易恢复性、可靠性的依从性。
易用性:易理解性、易学性、易操作性、吸引性、易用性的依从性。
效率:时间特性、资源利用性、效率依从性。
维护性:易分析性、易改变形、稳定性、易测试性、维护性的依从性。
可移植性:适应性、易安装性、共存性、易替换性、可移植性的依从性。
2)质量管理过程
戴明环PDCA
Plan
DO
Check
Action
3)质量保证和质量控制
a.质量保证:一般每隔一段时间(如每个阶段末)进行,主要通过质量审计和过程分析来保证项目质量。
b.质量控制:是实时监控项目的具体结果,以判断它们是否符合相关的质量标准,制定具体方案,消除产生质量的原因,如测试。
c.一段时间内质量控制的结果也是质量保证的质量审计对象。质量保证的成果又可以指导下一阶段的质量工作,包括质量控制和质量改进。
4)质量保证工具
质量审计工具/过程分析工具 过程是否有问题、是否需要改进。
质量控制工具:
统计抽样/软件测试
核对表:检查表(识别)
帕累托分析(排列图):28定律(识别) 先解决小部分核心问题
因果分析:鱼骨图(识别+分析)
流程图:(识别+分析)
直方图:(分析)
散点图:(分析)
控制图:(分析)
5)质量管理三角形
质量的三条边:时间、成本、范围的平衡
6.配置管理
IEEE对配置项的定义为硬件、软件或二者兼有的集合,为配置管理指定的,在配置管理过程中作为一个单独的实体对待,可作为配置项管理的有:外部交付的软件产品和数据、指定的内部软件工作产品和数据、指定的用于创建或支持软件产品的支持工具、供方/供应商提供的软件和客户提供的设备/软件。
1)典型的配置项:项目计划书、需求文档、设计文档、源代码、可执行文件、测试用例、运行软件所需的各种数据,它们经过评审和检查后进入软件配置管理SCM。
2)配置项的主要属性:名称、标识符、文件状态、版本、作者和日期等。
所有配置项都被保存在配置库里。配置项及其历史记录反映了软件的演化过程。
3)配置库
开发库:动态库、程序库、工作库;动态系统、开发者系统、开发系统、工作空间。
受控库:主库、系统库;主系统、受控系统。修改受控、基线管理。
产品库:备份库、静态库、软件仓库;静态系统。不能修改
检查点:如周例会。
里程碑:阶段性工作的标志。
基线:基线一旦建立其变化需要受到控制。
4)变更控制
变更申请
变更评估
变更决策
变更实施
变更验证
沟通存档
工作状态--提交评审-->评审状态--检入-->受控状态
受控状态--变更申请-->评审状态--检出-->工作状态
5)版本控制
处于草稿阶段的版本号0.YZ
处于正式发布状态的版本X.Y
处于正在修改状态的版本X.YZ
7.风险管理
1)特点
关心未来、关心变化、关心选择。
风险存在的客观性和普遍性。
某一具体风险发生的偶然性和大量风险发生的必然性。
风险的可变性。
风险的多样性和多层次性。
基本属性:随机性和相对性。
风险承受能力的影响维度:收益、投入、地位/资源
2)分类
项目风险
潜在的预算、进度、人员、组织、资源、用户和需求问题。
项目复杂性、规模和结构的不确定性
技术风险
潜在的设计、实现、接口、测试和维护方面的问题。
规格说明的多义性、技术说明的不确定性、技术陈旧、最新技术不成熟。
商业风险
市场风险
策略风险 系统不再符合企业的信息系统战略。
销售风险
管理风险 由于重点转移或人员变动而失去上级支持
预算风险 开发过程没有得到预算或人员保证
3)风险曝光度:
风险曝光度=风险出现概率*风险可能造成损失。
8.项目管理工具
能做什么:项目管理相关的工作辅助
不能做什么:开发技术相关的工作辅助
----------------------------------------------------------------------
一、项目开发计划
项目的生命周期分为4个基本阶段:概念阶段(定义阶段)、开发阶段、实施阶段和结束阶段。
概念阶段和开发阶段的主要工作是形成项目开发计划,实施阶段和结束阶段的主要工作是根据
项目开发计划开展实际工作。
1.项目开发计划概述
项目开发计划是根据项目目标(包括成果性目标和约束性目标)的规定,对项目实施过程中进行的各项活动做出周密安排,
系统的确定项目的任务,安排任务进度,编制完成任务所需的资源、预算等,从而保证项目能够顺利完成。
1)项目计划的作用
预见未来可能发生的问题,减少项目实施过程中的不确定性。
计划是实施的依据和指南。
明确团队成员职责,减少风险。
促进沟通,增加项目干系人的满意度,促使工作协调一致。
使团队成员明确目标。
2)项目开发计划的内容(10个方面)
工作计划(实施计划)
人员组织计划    表达形式有框图式、职责分工说明式、混合式三种。
设备采购和资源供应计划
配置管理计划
进度安排计划
成本投资计划    包括各层次项目单元计划成本、时间-计划成本曲线和时间-累计计划成本曲线、
现金流量(包括支付计划和收入计划)、资金筹集(贷款)计划等
质量保证计划
风险管理计划    需要定义风险管理活动、风险级别、风险类型等内容
文档编制计划
支持计划    包括软件工具支持、培训支持和行政支持、项目考评等
3)项目开发计划的监督和控制
项目监督和控制的手段主要是通过里程碑控制。
项目控制可采取正规和非正规两种方式。
正规控制通过定期和不定期的进展情况汇报和检查,以及项目进展报告进行。
非正规控制式项目经理直接到项目管理现场,与项目团队交流,及时解决问题。
根据控制时间的先后,项目控制可分为事前控制、事中控制和事后控制。
根据控制对象不同,项目控制可分为直接控制和间接控制。
直接控制和间接控制有两方面含义:
一方面是指,直接控制着眼于产生偏差的根源,间接控制着眼于偏差本身。
项目的“一次性”特征常常迫使项目经理采取间接控制方式。
另一方面是指,项目经理直接对项目活动进行控制;不直接对项目进行控制,而对团队成员进行控制,
由团队成员具体控制。
2.项目开发计划的编制
项目开发计划是项目管理与监控的基本依据。
1)项目开发计划的内容
引言
项目概述(工作内容、主要参与人员、产品、验收标准、完成项目的最迟时间、
计划的批准者和批准日期)
实施计划(工作任务的分解与人员分工、接口人员、进度、预算、关键问题)
支持条件(计算机软硬件、用户承担的配合工作、外单位提供的条件等)
专题计划要点(对项目开发中的配套过程进行计划,包括分合同计划、开发人员培训计划、
测试计划、安全保密计划、质量保证计划、配置管理计划、用户培训计划、系统安装计划等)

进度安排常使用甘特图或PERT图等。
工作任务分解与分工常使用WBS(Work Breakdown Structure,工作分解结构)
2)项目计划编制过程
通常项目的可行性分析之后,项目开发计划的初稿就应该形成。

二、范围管理
范围管理即确定项目边界,防止需求蔓延。
它主要包括项目启动、范围计划编制、范围定义、范围核实和范围变更控制
1.范围计划的编制
产品范围/工作范围(项目范围),产品范围是工作范围的基础。
范围计划编制的成果就是范围管理计划。
范围管理计划与项目范围计划的不同:
范围计划描述的是项目的边界,范围管理计划描述的是项目组如何进行项目的范围管理。
范围计划的内容:
根据项目初步范围说明书,编制详细项目范围说明书。
能够根据详细的项目范围说明书制作WBS,并确定如何维持与批准该WBS的过程。
规定如何正式核实与验收项目已完成可交付成果的过程。
控制详细项目范围说明书变更请求处理方式的过程,该过程与整体变更控制过程有直接联系。
2.创建工作分解结构(Work Breakdown Structure,WBS)
1)WBS的目的
创建WBS的目的是详细规定项目的范围,建立范围基准。
2)WBS分层结构
a.WBS是面向可交付物的项目元素的层次分解,它组织并定义了整个项目范围。
b.常用结构:
层次名称    层次编号    层次描述    层次目的
决策层        1                总项目        工作授权和解除
管理层        2                项目           预算编制
3               任务            进度计划编制
技术层        4                子任务        内部控制
5                工作包        内部控制
操作层        6                努力水平    内部控制
WBS的上面三层通常由客户指定,不应该和具体的某个部门相联系,下面三层由项目组内部控制。
c.分层特点:
每层中的所有要素之和是下一层的工作之和。
每个工作要素应该具体指派一个层次,而不应该指派给多个项目。
WBS需要有投入工作的范围描述,这样才能使团队所有人员对要完成的工作有全面的了解。
d.在每个分解单元中,都存在可交付成果和里程碑。
最底层的工作单元称为工作包,它应该便于完整的分派给不同的人或组织。
努力水平(Level Of Effort,LOE)也称为投入水平,是指测量不容易用明显的成就来衡量的辅助性工作
(例如,与供应商或顾客的联系工作)的一种手段。这类工作的特点是在一段时间内以均匀的速度进行。
3)WBS词汇表(WBS字典),指WBS的配套文件,包括:账户编码、WBS组成部分的详细内容、
工作说明、负责人、进度里程碑清单等,还可能包括合同信息、质量要求、技术文献、计划活动、
资源和费用估计等。
3.范围确认和控制
1)范围确认
范围确认主要是确认项目的可交付成果是否满足项目干系人的要求。
项目干系人进行范围确认时,要检查:
可交付成果是否是确定的、可核实的。
每个交付成果是否有明确的里程碑。
是否有明确的质量标准。
审核和承诺是否有清晰的表达。
项目范围是否覆盖了所有活动,没有遗漏。
项目范围风险是否太高。
2)范围控制
原则:决不让步,除非交换。
范围变更需要通过范围变更控制系统。

三、进度管理
在与质量、成本目标协调的基础上,实现工期目标。必须处理好进度与质量的关系。
进度管理包括以下过程:
1)活动定义:
2)活动排序:
3)活动资源估算:
4)活动历史估算:
5)进度计划编制:
6)进度控制:

1.活动排序
1)前导图法(Precedence Diagramming Method,PDM)
PDM也称为单代号网路图法(Active on the Node,AON),在PDM中,每项活动都有唯一的活动号,
注明了预计工期。包括:最早开始时间(Early Start,ES)、最迟开始时间(Late Start,LS)、最早结束时间
(Early Finish,EF)、最迟结束时间(Late Finish,LF).
PDM包括4种依赖关系或先后关系:
完成对开始FS:后一活动的开始要等到前一活动的完成。
完成对完成FF:后一活动的完成要等到前一活动的完成。
开始对开始SS:后一活动的开始要等到前一活动的开始。
开始对完成SF:后一活动的完成要等到前一活动的开始。
2)箭线图法(Arrow Diagramming Method,ADM)
ADM也称双代号网络图法(Active On the Arrow,AOA),ADM中,给每个事件而不是每项活动指定
一个唯一的号码。活动的开始事件叫做该活动的紧前事件(Precede Event),活动的结束事件叫做该活
动的紧后事件(Successor Event).
ADM的三个基本原则:
a.每一个事件必须有唯一的一个代号,即ADM中不会有相同的代号。
b.任何两项活动的紧前事件和紧后事件代号至少有一个不相同,节点序号沿箭线方向越来越大。
c.流入(流出)同一事件的活动,均有共同的后继活动(或先行活动)。
ADM只使用FS关系,可能要使用虚活动才能正确地定义所有逻辑关系。
3)依赖关系
强依赖关系:也称硬逻辑关系、工艺关系。客观无法改变的关系。
可自由处理的依赖关系:也称软逻辑关系、组织关系、首选逻辑关系、优先逻辑关系,是人为确定的先后关系。
外部依赖关系:项目与非项目活动之间的关系。
平行关系/顺序关系(间隔顺序关系、紧前活动、紧后活动)/搭接关系(有部分时间是平行进行的)。
2.活动资源估算
估算方法:专家判断法、替换方案的确定、公开的估算数据、估算软件、自下而上的估算。
3.活动历时估算
1)软件项目的工作量
通常用代码行(Line Of Code,LOC)来衡量项目规模。
2)软件生产率
3)人员和时间的关系
Putnam模型 L=C*K^(1/3)*t^(4/3)
t是开发持续时间(以年计),K是软件开发与维护在内的整个生存期所花费的工作量(以人年计),
L是源代码行数,C是技术状态常数,它反映“妨碍程序员开发的限制”,因环境而异,取值在2000~28000之间。
4)德尔菲法
德尔菲法(Delphi)是当前比较流行的专家评估技术,该方法结合了专家判断法和三点估算法,
可在没有历史数据的情况下,对项目进行估算。
实施步骤:
a.组织者发给每位专家一份软件系统的规格说明书(略去名称和单位)和一张记录估算值的表格,请他们估算。
b.专家无记名填写表格,给出三个估算值和估算理由。
最小规模ai(最少源代码行数),最可能规模mi(最可能源代码行数),最大规模bi(最多源代码行数)
c.组织之计算各位专家的估算期望值Ei,和综合各位专家的期望值E,即三点估算法。
Ei=(ai+4mi+bi)/6
d.将各位专家的判断意见汇总,让专家修改自己的估算和判断。
e.重复上述过程,得到多数专家共识的软件规模(源代码行数).
f.与历史资料类比,推算出每行源代码所需成本。乘以源代码行数估算值,得到软件估算成本。
德尔菲法主要缺点:过程比较复杂,花费时间较长,缺乏讨论。宽带德尔菲法增加了讨论环节。
5)类比估算法
类比估算法往往要解决可复用代码的估算问题。
等价LOC=(重新设计%+重新编码%+重新测试%)/3*已有LOC
6)功能点(Function Point)估算法
FP估算法实在需求分析阶段基于系统功能的一种规模估计方法。
步骤:
计算输入、输出、查询、数据文件与接口的数目。
将这些数据进行加权乘。
根据对复杂度的判断,总数可以用复杂性调节因子进行调整。
7)COCOMO模型(Constructive Cost Model)
COCOMO模型根据总体类型可分为:组织型、嵌入型、半独立型。
按详细程度分为3级:基本COCOMO模型、中间COCOMO模型、详细COCOMO模型。
a.基本COCOMO模型是一个静态单变量模型。
组织型     M=2.4*KLOC^1.05    T=2.5*M^0.38
半独立型 M=3.0*KLOC^1.12    T=2.5*M^0.35
嵌入型     M=3.6*KLOC^1.20    T=2.5*M^0.32
KLOC=1000LOC;M表示开发工作量,单位人月;T表示开发进度,单位月。
b.中间COCOMO模型
增加了调整因子EAF,取值范围0.9~1.4之间。
在名义工作量的基础上,考虑了产品、硬件、人员、项目等影响因素。
组织型     M=2.4*KLOC^1.05*EAF    T=2.5*M^0.38
半独立型 M=3.0*KLOC^1.12*EAF    T=2.5*M^0.35
嵌入型     M=3.6*KLOC^1.20*EAF    T=2.5*M^0.32
c.详细COCOMO模型
考虑了软件工程中每一步的影响(分析、设计等)。
详细COCOMO模型的计算公式与中间COCOMO模型相同,但详细COCOMO模型分层次、分层次
(模块层、子系统层、系统层)给出了工作量因素分级表。
4.进度控制
项目进度更新包括两方面的工作:分析进度偏差的影响和进行项目计划的调整。
1)分析进度偏差的影响主要从三方面分析:分析产生进度偏差的活动是否为关键活动;分析进度偏差
是否大于总时差;分析进度偏差是否大于自由时差。
2)项目进度计划的调整包括:关键活动的调整;非关键活动的调整;增减工作项目;资源调整。
四、成本管理
项目成本管理包括资源计划编制、成本估算、成本预算和成本控制四个过程。
1.成本估算
成本估算主要靠分解和类推的手段进行,基本估算方法分为三类:自顶向下的估算、自底向上的估算、
差别估算法(综合自顶向下和自底向上方法)。编制费用估算书。
2.成本预算
将估算的成本分配到项目的各个工作包上,建立成本基准计划以衡量项目绩效。
1)成本预算的基本步骤:
分摊项目总成本到WBS的各个工作包中。
将每个工作包分配得到的成本,分配到工作包所包含的各项活动上。
确定各项成本预算支出的时间计划,编制项目成本预算计划。
2)需要考虑的间接成本与影响因素
a.非直接成本。租金、保险和其他管理费用。
b.隐没成本(沉没成本)。当前项目的以前尝试已经发生过的成本。
c.学习曲线。
d.项目完成时限(时间紧 加班费)
e.质量要求
f.预留成本 抗风险。
3)管理储备
预留的预算。管理储备不是项目成本基线的一部分,但包含在项目预算中。
管理储备未作为预算进行分配,因此不是挣值分析的一部分。
4)零基准预算
是指不以过去的相似的项目成本作为成本预算的基准。零基准预算的主要目标是减少浪费。
3.成本控制
1)挣值分析
项目成本控制,主要采用挣值分析方法。挣值分析是一种进度和成本测量技术,可用来估计和确定变更的程度和范围,也称偏差分析法。
挣值分析通过已完成工作的进度和费用,得到计划进度和费用的偏差。
2)基本参数
a.计划工作量的预算费用(Budgeted Cost for Work Scheduled,BCWS)
BCWS=计划工作量*预算定额
BCWS主要反映进度计划应当完成的工作量,而不是反映消耗的工时/费用。BCWS也称PV(Planned Value)
b.已完成工作量的实际费用(Actual Cost for Work Performed,ACWP)
ACWP主要反映项目执行的实际消耗指标,也称AC
c.已完成工作量的预算成本(Budgeted Cost for Work Performed,BCWP)
BCWP即挣值(Earned Value,EV).
BCWP=已完成工作量*预算定额
d.剩余工作成本(Estimate to Completion,ETC)
ETC用于预测项目完工所需花费的成本。
ETC=BCWS-BCWP=PV-EV
ETC=剩余工作量的PV*AV/EV
3)评价指标
a.进度偏差(Schedule Variance,SV)
SV =BCWP-BCWS=EV-PV
SV>0表示进度提前,SV<0表示进度延误
b.费用偏差(Cost Variance,CV)
CV=BCWP-ACWP=EV-AC
CV<0表示超支,CV>0表示节余
c.成本绩效指数(Cost Performance Index,CPI)
CPI=BCWP/ACWP=EV/AC=预算费用/实际费用
CPI>1低于预算,CPI<1超出预算
d.进度绩效指数(Schedul Performance Index,SPI)
SPI=BCWP/BCWS=EV/PV=挣值/计划
SPI>1进度提前,SPI<1进度延误
4)评价曲线
5)项目完成成本再预测
重新估算的成本称为最终估算成本(Estimate at Completion,EAC)或完工估算。
a.认为日后的工作效率,成本比率与之前的一样。
EAC=(ACWP/BCWP)*BAC=(AC/EV)*BAC=BAC/CPI=AC+(BAC-EV)/CPI
BAC是完成工作预算(Budget at Completion),即整个项目的总预算值。
b.仍然使用原来的预算值
EAC=ACWP+BAC-BCWP=AC+BAC-EV
c.对未完成的工作重新估算
EAC=ACWP+未完成工作新的成本估算值
五、软件配置管理(Software Configuration Management,SCM)
常用的软件配置管理工具,主要有如下产品:Rational ClearCase,Merant PVCS,Microsoft VSS,CVS
1.配置管理概述
软件配置管理SCM指通过执行版本控制、变更控制的规程,保证所有配置项的完整性和可跟踪性。
CMMI中配置管理的九大部分:制订配置管理计划、识别配置项、建立配置管理系统、创建或发行基线、跟踪变更、控制变更、建立配置管理记录、执行配置审核、版本控制。
2.配置标识
1)配置项的主要属性有:名称、标识符、状态、版本、作者、日期等。
2)确定配置项
识别配置项、配置项命名、配置项的描述。
配置项间的关系有整体和部分的关系、层级关系、关联关系。可以用MIL(Module Interconnection Language,模块内连接语言)表示配置项间的相互依赖关系。
3)基线/里程碑
功能基线:
系统分析和软件定义阶段结束时,经过正式评审和批准的系统规格说明。
指派基线(分配基线):
需求分析阶段结束时,指经过正式评审和批准的SRS。指派基线是最初批准的指派配置标志。
产品基线:
软件组装与系统测试阶段结束时的经过正式评审和批准的配置项。
4)建立配置管理系统步骤:
a.建立适用于多控制等级配置管理的管理机制。
b.存储和检索配置项。
c.共享和转换配置项。
d.存储和复原配置项的归档版本。
e.存储、更新和检索配置管理记录。
f.创建配置管理报告。
g.保护配置管理系统的数据。
h.权限分配。
5)配置库
开发库:动态库、程序库、工作库;动态系统、开发者系统、开发系统、工作空间。
受控库:主库、系统库;主系统、受控系统。修改受控、基线管理。
产品库:备份库、静态库、软件仓库;静态系统。不能修改
检查点:如周例会。
里程碑:阶段性工作的标志。
基线:基线一旦建立其变化需要受到控制。
3.变更控制
1)变更产生原因
项目外部环境发生变化。
项目总体设计、需求分析不够周密详细、有一定的错误或遗漏。
新技术的出现。
建设单位由于机构重组等原因造成业务流程变化。
2)变更控制委员会(Change Control Board,CCB)
也称配置控制委员会,通常包括:项目经理、用户代表、质量控制人员、配置控制人员。
3)变更控制流程
变更申请
变更评估
变更决策 CCB
变更实施
变更验证
沟通存档
变更申请书内容:变更描述、对变更的审批、变更实施信息。
变更状态:活动(正在实施变更)、完成状态(已完成变更)、未列入变更状态。
4)使用配置库实现变更控制
配置项可以有三种状态:工作状态、评审状态、受控状态。
工作状态--提交评审-->评审状态--检入-->受控状态
受控状态--变更申请-->评审状态--检出-->工作状态
4.版本控制
版本控制流程:
a.创建配置项
b.修改处于工作状态的配置项
c.技术评审或领导审批
d.正式发布
e.变更,修改版本号
5.配置审核
1)配置审核内容
a.对配置项的处理是否有背离初始的规格说明或已批准的变更请求的现象。
b.配置标识的准则是否得到了遵循。
c.变更控制规程是否已遵循,变更记录是否可供使用。
d.在规格说明、软件产品和变更请求之间是否保持了可追溯性。
2)配置审核时机
a.产品交付或是产品正式发行前。
b.开发的阶段工作结束之后。
c.在维护工作中,定期地进行。
3)配置审核步骤
a.由项目经理决定何时进行配置审核工作。
b.质量保证组或项目组的配置管理组指定该项目的配置审核人员。
c.项目经理和配置审核员决定审核范围。
d.配置审核员准备配置审核检查单。
e.配置审核员审核文档和记录。
f.配置审核员在审核中发现不符合现象并记录。
g.由项目经理消除不符合现象。
h.配置审核员验证所有发现的不符合现象,确保已得到解决。
6.配置状态报告
清楚、及时记载配置的变化。
发生了什么、为什么发生、谁做的、什么时候发生的、会有什么影响。
六、质量管理
1.软件质量模型
1)过程                    过程质量(过程测度)
软件产品              内部质量属性(内部测度)
软件产品              外部质量属性(外部测度)
软件产品的效用     使用质量属性(使用质量测度)
2)外部和内部质量包括:
功能性:适合性、准确性、互操作性、安全保密性、功能性的依从性。
可靠性:成熟性、容错性、易恢复性、可靠性的依从性。
易用性:易理解性、易学性、易操作性、吸引性、易用性的依从性。
效率:时间特性、资源利用性、效率依从性。
维护性:易分析性、易改变形、稳定性、易测试性、维护性的依从性。
可移植性:适应性、易安装性、共存性、易替换性、可移植性的依从性。
3)软件修改:可维护性、灵活性、可测试性
软件转移:可移植性、可复用性、互操作性
软件运行:正确性、完整性、可靠性、可用性、效率
2.质量管理计划
1)质量管理计划内容
引言、引用文件、管理、文档、标准/规程/约定、评审和检查、项目计划阶段的质量管理活动、评审和审核、软件配置管理、工具/技术/方法、媒体控制、对供货单位的控制、记录的收集/维护和保护、日程表、注解、附录。
2)戴明环PDCA
Plan 计划
DO 执行
Check 检查
Action 行动
3.质量保证和质量控制
1)概述
a.质量保证:一般每隔一段时间(如每个阶段末)进行,主要通过质量审计和过程分析来保证项目质量。
b.质量控制:是实时监控项目的具体结果,以判断它们是否符合相关的质量标准,制定具体方案,消除产生质量的原因,如测试。
c.一段时间内质量控制的结果也是质量保证的质量审计对象。质量保证的成果又可以指导下一阶段的质量工作,包括质量控制和质量改进。
2)软件质量保证SQA
a.制定SQA计划
b.参与开发该软件项目的软件过程描述
c.评审
d.审计
e.记录并处理偏差
f.报告
3)质量保证工具
质量审计工具/过程分析工具 过程是否有问题、是否需要改进。
质量控制工具:
统计抽样/软件测试
核对表:检查表(识别)
帕累托分析(排列图):28定律(识别) 先解决小部分核心问题
因果分析:鱼骨图(识别+分析)
流程图:(识别+分析)
直方图:(分析)
散点图:(分析)
控制图:(分析)
4)质量管理三角形
质量的三条边:时间、成本、范围的平衡
七、人力资源管理
人力资源管理的主要过程包括:编制人力资源计划、组建项目团队、项目团队建设、管理项目团队。
1.编制人力资源计划
1)工具主要有:层次结构图、矩阵图、文本格式的角色描述。
2)分配责任矩阵
组织分解结构(Organizational Breakdown Structure,OBS)
责任分配矩阵(Responsibility Assignment Matrix,RAM)
2.组建项目团队
人员获取方式:内部谈判获取、事先分派、外部招聘、虚拟团队
3.项目团队建设
1)项目发展过程:形成期、振荡期、正规期、表现期。
2)团队建设理论
需要层次理论:满足成员需求:生理需求、安全需求、社交需求、尊重、自我实现。
激励保健理论:
X理论和Y理论:X理论认为人们有消极的工作源动力;Y理论认为人们有积极的工作源动力。
4.管理项目团队
资源负荷和资源平衡
绩效考核
5.沟通管理
基本原则:沟通内外有别、非正式的沟通有助于关系的融洽、采用对方能接受的沟通风格、沟通的升级原则、扫除沟通的障碍。
解决冲突的基本策略:问题解决、妥协、圆滑、强迫、撤退。
6.组织结构
如果可供选择的人员中大多数人员是多面手,则往往需要采用垂直方案;同样,如果大多数人员是专家,则采用水平方案。
垂直团队组织。垂直团队由多面手组成。如,功能模块分配给了个人或小组,然后由他们从头至尾地实现该功能模块。
水平团队组织。水平团队由专家组成。此类团队同时处理多个功能模块,每个成员都从事功能模块中有关其自身的方面。
混合团队组织。
八、风险管理
1.风险定义
关心未来、关心变化、关心选择。
2.风险特点
风险存在的客观性和普遍性。
风险的基本属性:随机性和相对性。
风险承受能力的影响因素:收益、投入、项目活动主体的地位和拥有的资源
某一具体风险发生的偶然性和大量风险发生的必然性。
风险的可变性。
风险的多样性和多层次性。
3.分类
a.按风险后果:
纯粹风险:没有任何收益
投机风险:可能带来收益,也可能会亏损。
b.按风险来源:
自然风险:自然力的作用
人为风险:人力造成的
c.按可管理:
可管理风险:可预测的,可以采取措施预防的。
不可管理风险:不可预测的
d.影响范围:
局部风险、总体风险
e.可预测性:
已知风险、可预测风险、不可预测风险。
4.宏观分类
项目风险
潜在的预算、进度、人员、组织、资源、用户和需求问题。
项目复杂性、规模和结构的不确定性
技术风险
潜在的设计、实现、接口、测试和维护方面的问题。
规格说明的多义性、技术说明的不确定性、技术陈旧、最新技术不成熟。
商业风险
市场风险
策略风险 系统不再符合企业的信息系统战略。
销售风险
管理风险 由于重点转移或人员变动而失去上级支持
预算风险 开发过程没有得到预算或人员保证
5.风险管理基本过程:
风险管理计划编制
风险识别 风险识别的有效方法有很多,如:建立风险项目检查表、因果分析图、采访各种项目干系人等。
风险定性分析(风险可能性和影响分析、确定风险优先级、确定风险类型) 按其对项目目标的影响进行排序。
风险定量分析
风险应对计划编制
风险控制
6.风险曝光度:
风险曝光度=风险出现概率*风险可能造成损失。
7.
可以根据风险控制与项目事件发生的时间将风险管理划分为三个部分:
事前控制-风险管理规划,事中控制-风险管理方法,事后控制-风险管理报告。
项目风险按是否有可确定性划分为:已知风险、可预知风险、不可预知风险。
按风险管理的内容又可以划分为:内部技术风险、内部非技术风险、外部法律风险、外部非法律风险。
风险应对方法:规避、转移、减轻、接受。
九、信息(文档)管理
1.文档概述
1)文档作用
管理依据、任务之间联系的凭证、质量保证、培训与参考、软件维护支持、历史档案。
2)文档计划内容:
a.列出应编制文档的目录
b.提示编制文档应参考的标准
c.指定文档管理员
d.提供编制文档所需条件
e.明确保证文档质量方法
f.绘制进度表
3)文档编制的要求
针对性、无二义性、易读性、完整性、灵活性、可追溯性。
4)文档控制内容:
a.项目团队中设置专职文档管理员,应保管两套文档,一套借出,一套不可借出。
b.提交给文档管理员的文档需要编写人、审核人、批准人签字。
c.项目成员可以持有一些文档,但修改时需要先修改主文档。
d.文档被替代后,及时注销原文档。
e.项目临近结束时,收回团队成员的个人文档,并检查。
2.文档标准
1)分类:开发文档、产品文档、管理文档
2)文档等级:最低限度文档1级、内部文档2级、工作文档3级、正式文档4级
3)各阶段文档
可行性研究与计划阶段    可行性分析报告、项目开发计划
需求分析阶段                 软件需求规格说明书、数据要求说明、初步的用户手册
设计阶段                       概要设计说明、详细设计说明、测试计划初稿
实现阶段                       进度日报、进度周报、进度月报、用户手册、操作手册、测试计划
测试阶段                       测试分析报告、项目开发总结报告
运行与维护阶段              无具体规定
3.数据需求说明(数据要求规格说明书)
引言、引用文件、数据的逻辑描述、数据的采集、注解、附录。
4.软件测试计划
引言、引用文件、软件测试环境、计划、测试进度表、需求的可追踪性、评价、注解、附录。
5.软件测试报告
引言、引用文件、测试结果概述、详细的测试结果、测试记录、评价、测试活动总结、注解、附录。
6.技术报告
引言、项目解决的技术问题、系统的主要功能描述、在项目研发过程中遇到的技术问题和解决方法、系统目前达到的水平/现状/存在的问题及解决方案、项目总结、注解、附录。
7.项目开发总结报告
引言、引用文件、实际开发结果、开发工作评价、缺陷与处理、经验与教训、注解、附录。
8.软件文档管理
1)软件文档管理作用
管理依据、任务之间联系的凭证、质量保证、培训与参考、软件维护支持、历史档案、销售可能。
2)文档归类
开发文档 开发文档是描述软件开发过程,包括软件需求、软件设计、软件测试、保证软件质量的一类文档,开发文档也包括软件的详细技术描述(程序逻辑、程序间相互关系、数据格式和存储等)。
基本的开发文档包括:可行性研究和项目任务书;需求规格说明;概要设计说明;详细设计说明,包括程序和数据规格说明;项目开发计划;软件集成和测试计划;质量保证计划、标准、进度;安全和测试信息。
管理文档
它包括:项目开发计划、测试计划;开发过程的每个阶段的进度和进度变更的记录;软件变更情况的记录;相对于开发的判定记录;开发人员职责定义;测试报告、开发进度月报;项目开发总结等。
产品文档
基本的产品文档实物包括:培训手册;参考手册和用户指南;软件支持手册;产品手册和信息广告;维护修改建议等。
十、需求管理
需求变更、需求跟踪。
1.需求变更
进行需求变更控制的主要依据是项目计划、变更请求和反映项目执行状况的绩效报告。
1)项目启动阶段的变更预防。对于任何项目,变更都无可避免,也无从逃避,只能积极应对。
2)项目实施阶段的需求变更。成功项目和失败项目的区别就在于项目的整个过程是否是可控的。
2.需求跟踪
需求跟踪是指在软件需求管理的过程中
定义需求变更流程,分析需求变更影响,控制变化的版本(建立需求基准版本和需求控制版本文档),维护需求变更记录,跟踪每项需求状态。
十一、软件过程改进
软件过程改进(Software Process Improvement,SPI)用于帮助软件企业对其软件生产过程进行计划、过程诊断、改进方案的制订及实施等工作。
常见模型包括;CMM、CMMI5、ISO9000、ITIL等。
CMM软件能力成熟度模型:初始级、可重复级、定义级(标准化)、管理级(量化)、优化级(持续改进)
CMMI(Capability MaturityModel Integration)即能力成熟度模型集成。
CMMI是CMM模型的最新版本。CMMI有两种表示方法,一种是和软件一样的阶段式表现方法,另一种是连续式的表现方法。
连续式表现方法将CMMI中过程区域分为四大类:过程管理、项目管理、工程及支持。
ISO9000与CMM非常相似的是,两者都共同着眼于质量和过程管理,而且它们都是基于戴明博士的全面质量管理TMQ产生的。
ISO9000确定一个质量体系的最少需求,而CMM强调持续过程改进。
ITIL(信息技术基础设施库),企业参考ITIL来规划和制定其IT基础架构及服务管理,确保IT服务管理能为企业的业务运作提供更好的支持。
十二、软件的运行与评价
软件的稳定性和可靠性评价。软件是否满足了用户的需求。软件实施给用户带来的好处。

----------------------------------------------------------------------
----------------------------------------------------------------------
第21章 附加
多媒体技术
1.音频
1)声音的带宽
人耳:(次声波)20HZ~20kHz(超声波)
说话:300~3400Hz
乐器:20HZ~20kHz
2)采样
采样频率
采样精度
采样频率应为声音最高频率的2倍 (例如:电话采样8k,cd采样40Hz)
2.图像
亮度、色调(红、绿)、饱和度(色彩鲜艳程度)
彩色空间:RGB(红绿蓝)、YUV(电视,兼容)、CMY(CMYK,印刷行业)、HSV(HSB)艺术欣赏
3.媒体种类
感觉媒体:指人们接触信息的感觉形式。如:视觉、听觉、触觉、嗅觉、味觉等
表示媒体:指信息的表示形式。如:文字、图形、动画、音频和视频等
显示媒体(表现媒体):表现和获取信息的物理设备。如:输入显示媒体键盘、鼠标、麦克风;输出显示媒体:显示器、打印机、音箱等。
存储媒体:如磁盘、光盘、内存等
传输媒体:电缆、光缆、交换设备等
4.多媒体计算
1)图像容量计算
知道像素,位数
每个像素16位,图像为640*480像素
容量:640*480*16/8=614400B
知道像素,色数
图像为640*480像素,256色
容量:640*480*log(256)/8=307200B
2)音频容量计算
容量=采样频率(Hz)*量化/采样位数(位)*声道数/8
3)视频容量计算
容量=每帧图像容量(Byte)*每秒帧数*时间+音频容量*时间
5.常见多媒体标准
JPEG 有损 RGB转YUV 离散余弦
JPEG-2000 有损&无损 压缩比高 小波变换 医学图像应用
MPEG-1 离散余弦 VCD MP3
MPEG-2 离散余弦 Huffman DVD 有线/卫星电视 AAC
MPEG-4 网络应用/可视电话 无线通信 增强交互 数码权限管理 多媒体传输集成框架
MPEG-7 多媒体内容描述接口 具备描述功能 不是编码标准
MPEG-21 融合不同协议 制定新标准 标准集成
6.数据压缩技术基础
空间冗余(几何冗余)
时间冗余
视觉冗余 如清晰度
信息熵冗余 信息熵是指一组数据所携带的信息量。例如:1个英文字符编码7bit
结构冗余 例如花纹结构相似
知识冗余 可以推理出来
7.有损压缩与无损压缩
无损压缩也称冗余压缩或熵编码法
变长编码(huffman)、行程编码(是一种统计编码。主要技术是检测重复的比特或字符序列,并用它们的出现次数取而代之)、算术编码
有损压缩也称熵压缩法
预测编码(运动补偿预测、自适应预测、线型预测、非线型预测)
变换编码(KLT、DCT、ADCT、DWT)
基于模型编码(分形编码、轮廓编码、识别合成编码)
直接映射(矢量量化、神经网路)
--------------------------------------------------------
法律法规
保护期限、知识产权人确定、侵权判断
知识产权范围:
著作权、邻接权、专利权、工业产品外观设计权、商标权、地理标志权、集成电路布图设计权
一、保护期限
1.公民作品:署名权、修改权、保护作品完整权,没有时间限制;
发表权、使用权、获得报酬权,作者终生及其死后50年(到第50年的12月31日)
2.单位作品:发表权、使用权、获得报酬权,首次发表后的第50年12月31日,若期间未发表不保护。
3.公民软件产品:署名权、修改权,没有时间限制;
发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可、获得报酬
权、转让权。作者终生及其死后50年(到第50年的12月31日),合作开发以最后死亡者为准。
4.单位软件产品:发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可、获得报酬
权、转让权。作者终生及其死后50年(到第50年的12月31日),合作开发以最后死亡者
为准。首次发表后的第50年12月31日,若期间未发表不保护。
5.注册商标:有效期10年(若注册人死亡或倒闭1年后,未转移则可注销,期满6个月内必须续注。)
6.发明专利权:保护期为20年(从申请日开始)
7.实用新型和外观设计专利权:保护期为10年(从申请日开始),实用新型是在已有产品基础上进行的改进。
8.商业秘密:保护期限不确定,公开后公众可用。
二、知识产权人确定
1.职务作品:
1)职务作品:
利用单位的资源进行创作,并由单位承担责任的    除署名权外,其他著作权归单位。
有合同约定,著作权属于单位的    除署名权外,其他著作权归单位。
其他情况    作者拥有著作权,单位有权在业务范围内优先使用。并且在两年内,未经单位同意,作者不能够许可其他人、单位使用该作品。
2)职务软件作品:
本职工作中的开发作品,单位享有著作权
属于从事本职工作活动的结果,单位享有著作权
使用了单位的资源,并由单位承担责任的软件,单位享有著作权
3)职务作品专利权:
本职工作中的发明,单位享有专利
履行单位交付的本职工作之外的任务,所做出的的发明,单位享有专利
离职、退休或调动工作后1年内,与原单位工作相关的发明,单位享有专利
2.委托创作的软件
有合同约定的,著作权按照合同约定。
合同中未有约定的,著作权归创作方
合作开发的软件
只进行组织、提供咨询意见、物质条件或其他辅助工作的一方,不享有著作权。
共同创作的,共同享有著作权,按人头比例分配。成果可分割的,可分开申请。
3.商标
谁先申请谁拥有(除知名商标的非法抢注)
同时申请,根据谁先使用谁拥有(需提供证据)
无法提供证据的,协商归属,无法协商时,抽签决定。不可不确定归属。
4.专利
谁先申请谁拥有。
同时申请则协商归属,不能同时驳回双方的申请。
5.著作权
发表权:即决定作品是否公之于众的权利。
署名权:即表明作者身份,在作品上署名的权利。
修改权:即修改或者授权他人修改作品的权利。
保护作品完整权:即保护作品不受歪曲、篡改的权利。
使用权、使用许可权和获取报酬权、转让权。
三、侵权判定
1.中国公民、法人或其他组织的作品,不论是否发表,都享有著作权。
2.开发软件所用的思想、处理过程、操作方法或数据概念不受著作权保护,但可申请专利。
3.著作权法不适用于下列情形:
时事新闻
历法、通用数表、通用表格和格式
法律法规,行政文件,及其官方正式译文。个人的译文享有著作权,如果被吸纳为官方正式译文,则不受著作权保护。
如果是因为可供选用的表达方式有限,而造成与原来存在的软件相似,则不构成对原有软件著作权的侵犯。
4.常见情况
下述情况不侵权
a.个人学习、欣赏
b.适当引用
c.公开演讲
d.免费表演他人作品
e.将汉语作品翻译成少数民族作品或盲文出版。
下述情况构成侵权
四、标准分类
国际标准:ISO、IEC等国际标准化组织
国家标准:GB-中国、ANSI-美国、BS-英国、JIS-日本
区域标准:PASC-太平洋地区标准会议、CEN-欧洲标准委员会、ASAC-亚洲咨询标准委员会、ARSO-非洲地域标准化组织
行业标准:GJB-中国军用标准、MIT-S美国军用标准、IEEE-美国电气电子工程师协会。
地方标准、企业标准、项目规范。
标准编号:
国家标准:强制性标准代号为GB、推荐下标准代号为GB/T、指导性标准代号为GB/Z、实物标准代号GSB
行业标准代码:由汉语拼音大写字母组成(如电子行业SJ)
地方标准代码:由DB加上省级行政区划代码前两位
企业标准代号:由Q加上企业代号组成
--------------------------------------------------------
第22章 部分技术专题
一.中间件技术
1.中间件的功能
1)负责客户机与服务器、客户机与应用层之间的连接和通信。
2)提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。
3)提供一个多层架构的应用开发和运行平台,以及一个应用开发框架,支持模块化的应用开发。
4)屏蔽硬件、操作系统、网络、数据库的差异。
5)提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性。
6)提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。
2.特点
面向需求
业务分隔和包容性
设计与实现隔离
隔离复杂的系统资源
符合标准的交互模型
软件复用
提供对应用构件的管理
3.中间件分类
通信处理(消息)中间件。eLink、MQSeries、TongLINK等
事务处理(交易)中间件。Tuxedo。
数据存取管理中间件。
Web服务器中间件。SilverStream。
安全中间件。
跨平台和架构的中间件。CORBA、J2EE等
专用平台中间件。
网络中间件。
4.J2EE
1)J2EE注重两件事,一是建立标准,使web应用的部署与服务器无关;二是使服务器能控制构件的生命周期和其他
资源,以便能够处理扩展、并发、事务处理管理和安全性问题。
J2EE规范定义了以下几种构件:应用客户端构件、EJB构件、Servlets 和 JSP、Applet 构件。
2)EJB共有三种类型:EntityBean(实体Bean)、Session Bean(会话Bean)、 Message Driven Bean(消息驱动Bean)
实体Bean提供数据持久化和事务管理能力。
会话Bean提供会话管理,可以有状态、也可以无状态
消息驱动Bean可以处理从JMS消息队列接收到的异步消息。
JMS支持点对点和发布/订阅两种消息发布模式。
JNDI(Java Naming and Directory Interface,JAVA命名和目录接口)用于查找用户定义对象(如EJB)和环境实体。
JNDI提供统一的客户端API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。
3)事务处理
JTS是低级事务处理管理API,主要作用是将JAVA映射到对象管理组OMG的对象事务处理服务。
JTA是高级API,包括两部分:事务处理接口和XA资源接口。
5..Net体系结构
6.EAI(Enterprise ApplicationIntegration,企业应用集成)
EAI是指通过将业务流程,应用软件、硬件和各种标准联合起来,对企业中完成不同业务功能的应用系统进行无缝集成,
使它们像一个整体一样进行业务处理和信息共享,从而提高企业效率,为客户提供灵活的业务服务。
根据EAI集成的深度来划分可以分为应用集成、业务过程集成、数据集成。
7.Struts是一个典型的MVC框架
Struts的工作流程为:首先,JSPview发起一个以.do表示的请求;ActionForm封装用户请求数据,
同时提供验证数据的功能;ActionServlet根据struts-config.xml文件来得到处理这个请求的Action
对象,并将请求发送给这个Action对象;Action对象调用model去处理这个请求,将结果返回给ActionServlet;
ActionServlet决定将结果返回给对应的view;view得到结果,并将它显示给用户。
8.Spring
Spring核心本身是个容器,管理物件的生命周期、物件的组态、相依注入、作用域等。
它的核心概念是IOC(DI)和AOP。
9.Hibernate是一个对象-关系映射框架。
10.轻量级框架与重量级框架
轻量级框架可以使用Spring代替EJB中的无状态的会话Bean,可以使用Hibernate代替EJB中的实体Bean。
不管是轻量级还是重量级框架,基本解决的是两个问题,一个是事务控制,另一个是持久化控制。
重量级框架在大规模运行的时候会表现出非常优异的性能,劣势主要是开发效率较低,轻量级框架正好相反,
开发的时候非常迅速,但是在大规模运行的时候,性能与重量级框架相比还是有差异的。
11.CORBA
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,
通用对象请求代理体系结构)
CORBA体系的主要内容包括以下几部分。
(1)对象请求代理 (Object Request Broker,ORB)。负责对象在分布环境中透明地收发请求和响应,
它是构建分布对象应用、在异构或同构环境下实现应用间互操作的基础。
(2)对象服务(Object Services)。为使用和实现对象而提供的基本对象集合,这些服务应独立于应用领域。
主要的CORBA服务有:名录服务(Naming Service)、事件服务(Event Service)、生命周期服务(Life Cycle
Service)、关系服务(Relationship Service)以及事务服务(Transaction Service)等。这些服务几乎包括
分布系统和面向对象系统的各个方面,每个组成部分都非常复杂。
(3)公共设施(Common Facilitites)。向终端用户提供一组共享服务接口,例如系统管理、组合文档和
电子邮件等。
(4)应用接口(Application Interfaces)。由销售商提供的可控制其接口的产品,相应于传统的应用层表示,
处于参考模型的最高层。
(5)领域接口(Domain Interfaces)。为应用领域服务而提供的接口,如OMG组织为PDM系统制定的规范。
二、虚拟计算
虚拟计算的本质是资源共享,网络资源的聚合和协同是虚拟计算环境的核心。
1.P2P(Peer To Peer,对等网络)
1)需要解决三个问题:资源的存放、资源定位、资源获取。
2)P2P网络拓扑结构分为:集中式、分布式、混合式,分布式又分为非结构化和结构化两种。
a.集中式P2P,部署维护简单,查找效率高,可以进行模糊查询;依赖中心化的目录系统,易造成单点故障,可靠性和安全性低。
b.分布式非结构化P2P,采用随机图方式组织网络,避开了目录单点问题,采用泛洪式查询,网络可缩放性差,查询效率低。
c.分布式结构化P2P,选择性能较高的节点作为超级节点,发现算法只在超级节点间转发。节点仅存在局部视图,缺乏权威第三方的控制,不支持模糊查询。
d.混合结构模式,引入了网络分层思想。由于超级节点的脆弱性,可能导致其簇内普通节点处于孤立状态。
3)P2P关键技术
资源查找与定位技术
NAT网络地址转换技术
IP地址解析技术
安全技术
应用层上的数据描述和交换技术。
4)P2P应用方向:
共享和交换
内容搜索技术
对等计算
协同工作与在线交流
网络存储
P2P群集与VPN
远程监控和调试
流媒体直播与点播
IP层语音通信
网络游戏平台
5)P2P特点与优势
非集中化、可扩展性、健壮性、匿名与隐私保护、自组织、高性价比、安全、透明性、交互能力、负载均衡。
6)存在问题
标准问题、共享与版权问题、垃圾信息问题、网络流量带宽与负载均衡问题、安全性可靠性与管理问题。
7)
a.根据层面不同,虚拟化可分为平台虚拟化、资源虚拟化、应用程序虚拟化。
b.平台虚拟化包括:
全虚拟化(VMM、Microsoft Virtual PC、VMware Workstation、SUN Virtual Box、Parallels Desktop forMac、QEMU)。
超虚拟化 是一种修改Guest OS部分访问特权状态的代码以便直接与VMM交互的技术。如Xen、Denali。
硬件辅助虚拟化 Intel-VT和AMD-V是目前x86体系结构上可用的两种硬件辅助虚拟化技术。
部分虚拟化
操作系统级虚拟化。如:Solaris Container、FreeBSD Jail、OpenVZ。
c.常用的虚拟化技术
单一资源多个逻辑表示、多个资源单一逻辑表示(如虚拟存储)、在多个资源之间提供单一逻辑表示(如多容器负载)、单个资源单一逻辑表示、复合或分层虚拟。
2.云计算
1)解决问题:
短时间内的中、大规模计算需求。
零成本的前期投入,并且总体拥有成本TCO较优。
在充分相信云计算服务提供商的情况下,数据安全性需求。
没有足够的服务器运维人员。
在终端设备配置较差的情况下完成较复杂的应用。
2)特点
规模大、计算力强、成本低,多种软硬件技术相结合,对客户端设备要求低,规模化效应。
3)云计算架构层次
客户层、服务层、应用层、平台层、存储层、基础设施层。
4)
a.云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。
狭义云计算指基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;
广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是和软件、互联网相关,也可是其他服务。
b.特点
计算资源集成提高设备计算能力。
分布式数据中心保证系统容灾能力。
软硬件相互隔离减少设备依赖性。
平台模块化设计体现高可扩展性。
虚拟资源池为用户提供弹性服务。
按需付费降低使用成本。
3.SAAS软件即服务
特点:高度依赖Internet、软件几乎都基于BPS架构、TCO最优、多用户并行于一套系统、集中的系统管理与维护、安全隐患。
4.网格计算
1)根本特征是资源共享,而不是规模。
网格能协调非集中式控制的资源,能集成和协调资源与用户在不同控制域内的活动。
使用标准的、开放的、通用的协议和接口。
提供非常高的服务质量
2)分类
计算网格 这类网格中,大多数机器都是高性能计算机。
拾遗网格 常用于大量桌面系统
数据网格
3)应用
协同环境、智能设备、分布式并行计算、桌面超计算机、军事仿真。
4)特点
异构性、结构的不可预测性、可适应性、可扩展性、多级管理域。
5)网格体系结构
网格主要由6部分组成:网格节点、数据库、贵重网络设备、可视化设备、宽带主干网、网格软件。
a.五层沙漏模型:构造层、连接层、资源层、汇集层、应用层。
b.开发网格体系结构(Open Grid Service Architecture,OGSA),五层沙漏模型结合websevice技术。
OGSA最突出的思想,将一切对象看作服务。
c.计算池模式
5.普适计算
1)重要特征 间断连接、轻量计算
2)应用领域
智能环境感知技术、无缝的可移动性、普遍的信息访问、觉察上下文计算、可以穿戴的计算。
3)普适计算系统组成
新的嵌入式系统、系统软件、普适网络。
4)面临问题
发现、感知、分析关键因素、强壮性、微型化和可持久性。
三、多核技术
多核技术可以看成是对多个CPU的集成
超线程技术通过添加与物理线程并行的虚拟线程,实现单核处理器对两个线程的执行。
一般将多核技术与超线程技术结合使用。
多线程编程的主要原因之一是为了提高用户程序的运行效率,如提高I/O、网路等处理速度。
多核编程则是为了充分利用多个计算核心。
四、面向切面编程AOP
1.基本概念
方面 共用逻辑
连接点 在哪些地方通过AOP加入新逻辑
通知 在某个特定的连接点处所运行的代码
切入点 指通知的应用条件
引入 指向目标对象添加方法或字段的行为
代理 指AOP框架在将通知应用于目标对象后创建的对象
编织 将核心功能与方面组合在一起。可以在编译时完成,也可以在运行时完成。
2.AOP作用
解决代码混乱、代码分散、代码重用问题
模块化横切关注点
系统容易扩展
设计决定的迟邦定
更好的代码复用性
3.AOP代码开发过程
方面分解(提取出横切关注点和核心关注点)、关注点实现、方面的重新组合。
4.AOP问题
如何有效判断和识别系统中的横切关注点。
如何准确把握方面之间及其与核心类之间的相互关系。
如何进一步开发和丰富支持AOP的语言并保证其正确性。
如何利用现有的CASE工具为AOP系统建模。
如何开发有效的工具来满足从软件设计到维护各个阶段的需要。
5.关键技术
1)关注点分离
概念级分离和实现级分离。
要分离特定的关注点,有三种方法:元级编程、自适应编程、组合过滤器。
2)编织
静态编织和动态编织
编译时编织、载入时编织、运行时编织。
3)横切
动态横切
静态横切 静态横切不修改给定对象的执行行为。他通过引入附加的方法字段和属性来修改对象结构。静态横切在AOP中应用较少。
五、其他
1.Corba
对象管理组织(OMG)基于CORBA基础设施定义了四种构件标准。
实体(Entity)构件需要长期持久化并主要用于事务性行为,由容器管理其持久化。
加工(Process)构件同样需要容器管理其持久化,但没有客户端可访问的主键。
会话(Session)构件不需要容器管理其持久化,其状态信息必须由构件自己管理。
服务(Service)构件是无状态的。
2.闭环结构
采用闭环结构的软件通常由几个协作构件共同构成,且其中的主要构件彼此分开,能够进行替换与重用,
但闭环结构通常适用于处理简单任务(如机器装配等),并不适用于复杂任务。
分层结构的特点是通过引入抽象层,在较低层次不确定的实现细节在较高层次会变得确定,并能够组织层间构件的协作,系统结构更加清晰。
3.可修改性包括:可维护性、可扩展性、结构重组、可移植性。
4.架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。
ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置。
5.参与DSSA的人员可以划分为四种角色:领域专家(提供关于领域中系统的需求规约和实现的知识)、领域分析师、领域设计人员(架构)和领域实现人员。
6.领域分析的主要目的是为了获取领域模型、领域设计的主要目的是获取特定领域架构、领域实现主要目标是依据领域模型和DSSA开发和组织可重用信息。。
--------------------------------------------------------
补充
1.Armstrong公理系统
关系模式R 来说有以下的推理规则:
A1.自反律(Reflexivity):若Y 属于 X 属于 U,则X →Y为F所蕴含。
A2.增广律(Augmentation):若X→Y为F所蕴含,且Z 属于 U,则XZ→YZ为F所蕴含。
A3.传递律(Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。
根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:
合并规则:由X→Y,X→Z,有X→YZ。
(A2, A3)
伪传递规则:由X→Y,WY→Z,有XW→Z。
(A2, A3)
分解规则:由X→Y及 Z 属于 Y,有X→Z。
(A1, A3)
2.ACID
数据库设计中为了实现原子性和持久性的最为简单的策略:“影子拷贝”。
系统通常采用完整性约束检查机制保证单个事务的一致性。
两阶段锁协议是实现事务隔离性的常见方案,该协议通过定义锁的增长和收缩两个阶段约束事务的加锁和解锁过程,能够保证事务的串行化执行。
分布式数据库两阶段提交协议中的两个阶段是指表决阶段、执行阶段。
3.体系结构失配
体系结构失配问题由 David Garlan 等人在 1995 年提出。失配是指在软件复用的过程中,由于待复用构件对最终系统的体系结构和环境的假
设(assumption)与实际状况不同而导致的冲突。在构件组装阶段失配问题主要包括:
(1)由构件引起的失配,包括由于系统对构件基础设施、构件控制模型和构件数据模型的假设存在冲突引起的失配;
(2)由连接子引起的失配,包括由于系统对构件交互协议、连接子数据模型的假设存在冲突引起的失配;
(3)由于系统成分对全局体系结构的假设存在冲突引起的失配等。要解决失配问题,首先需要检测出失配问题,并在此基础上通过适当的手段
消除检测出的失配问题。
4.需求的变更是受严格管控的,其流程为:
问题分析和变更描述。变更分析和成本计算。变更实现。
5.架构风格
架构风格的最关键的四要素内容,即提供一个词汇表、定义一套配置规则、定义一套语义解释原则和定义对基于这种风格的系统所进行的分析。
架构风格格是描述某一特定应用领域中系统组织方式的惯用模式(idiomatic paradigm)。
架构风格定义了一个系统家族,即一个架构定义一个词汇表和一组约束。
词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
按这种方式理解,软件架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。
6.
过程控制又称闭环风格,该风格的最大特点是设定参数,并不断测量现有的实际数据,将实际值与设定值进行比较,以确定接下来的操作。

你可能感兴趣的:(系统架构)