架构师PPT大纲

架构师PPT大纲

架构师PPT大纲

我每天花八小时练琴,他们却用“天才”一词埋没了我所有努力    

计算机系统基础

计算机组成

                                    中央处理器(运算器、控制器)
                            主机    内部存储器(随机存储器、只读存储器)
                                    I/O设备接口
                硬件系统
                                        外部存储器(磁盘、硬盘)
                            外部设备    输入设备(鼠标、键盘、扫描仪)
                                        输出设备(显示器、绘图仪、打印机)
    计算机系统
                                        
                            系统软件(操作系统、语言处理程序、网络通讯管理程序)
                软件系统    
                            应用软件(office办公软件、游戏软件)

CPU的功能

(1)程序控制功能。CPU通过执行指令来控制程序的执行顺序。
(2)操作控制。
(3)时间控制。
(4)数据处理。CPU最根本的任务。

运算器。

运算器也称为算术逻辑单元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各种算术运算和逻辑运算。
运算器的组成包含如下。
① 算术逻辑单元ALU:数据的算术运算和逻辑运算;
② 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据;
③ 数据缓冲寄存器DR:写内存时,暂存指令或数据;
④ 状态条件寄存器PSW:存状态标志与控制标志

控制器。

控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依据的是机器指令。
控制器的组成包含如下。
① 程序计数器PC:存储下一条要执行指令的地址;
② 指令寄存器IR:存储即将执行的指令;
③ 指令译码器ID:对指令中的操作码字段进行分析解释;
④ 地址寄存器AR:用来保存当前CPU所访问的内存单元的地址。
⑤时序部件:提供时序控制信号。

计算机系统结构的分类

  1. 1966年,Michael.J.Flynn 提出根据指令流、数据流的多倍性特征对计算机系统进行分类(通常称为 Flynn 分类法),有关定义如下。
    (1). 指令流:指机器执行的指令序列;
    (2)数据流:指由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出数据。
  2. Flynn根据不同的指令流-数据流组织方式,把计算机系统分成以下四类
    (1)单指令流单数据流(Single Instruction stream and Single Data stream,SISD):
    SISD 其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。
    (2)单指令流多数据流(Single Instruction stream and Multiple Data stream,SIMD):SIMD 以并行处理机(矩阵处理机)为代表,并行处理机包括多个重复的处理单元,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同数据
    (3)多指令流单数据流(Multiple Instruction stream and Single Data stream,MISD):
    MISD 具有n个处理单元,按 n 条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。这类系统实际上很少见到。
    (4)多指令流多数据流(Multiple Instruction stream and Multiple Data stream,MIMD):
    MIMD 是指能实现作业、任务、指令等各级全面并行的多机系统。如多核处理器、多处理机属于 MIMD

指令系统

  1. 复杂指令系统CISC的特点
    (1)指令数量众多。指令系统拥有大量的指令,通常有 100~250 条。
    (2)指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的20%,但在程序中出现的频率却占80%。
    而大部分复杂指令却很少使用。
    (3)支持很多种寻址方式。支持的寻址方式通常为 5~20 种。
    (4)变长的指令。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。
    (5)指令可以对主存单元中的数据直接进行处理。典型的 CISC 通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较慢。
    (6)以微程序控制为主。CISC 的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实现控制器,通常采用微程序控制。
  2. 精简指令系统RISC的特点
    (1)指令数量少。优先选取使用频率最高的一些简单指令和一些常用指令,避免使用复杂指令。只提供了 LOAD(从存储器中读数)和 STORE(把数据写入存储器)两条指令对存储器操作,其余所有的操作都在 CPU 的寄存器之间进行。
    (2)指令的寻址方式少。通常只支持寄存器寻址方式、立即数寻址方式和相对寻址方式。
    (3)指令长度固定,指令格式种类少。因为 RISC 指令数量少、格式少、相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易。
    (4)以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合逻辑)来构建控制器。
    (5)单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技术,使得大部分指令都能在一个机器周期内完成
    (6)优化的编译器:RISC 的精简指令集使编译工作简单化。
    (7)CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个。

校验码

  • 码距和误码:
  1. 在一个码组内为了检测e个误码,要求最小码距应该满足:d>=e+1 
    2.在一个码组内为了纠正t个误码,要求最小码距应该满足:d>=2t+1 
    3、同时纠错检错:d>=e+t+1
  • 奇偶校验
    只能检测代码中奇数位出错的编码,但不能发现偶数位出错的情况。
  • 海明码
    海明码是一种纠错码,其方法是为需要校验的数据位增加若干校验位,使得校验位的值决定于某些被校位的数据,当被校数据出错时,可根据校验位的值的变化找到出错位,从而纠正错误
    海明码的校验码的位置必须是在2n位置(n从0 开始,分别代表从左边数起分别是第1、2、4、8、16……)
    设数据位是n位,校验位是K位,则n和k必须满足以下关系:2k≥n+k+1

指令控制方式

(1)顺序方式。各条机器指令之间顺序串行地执行,执行完一条指令后才取下一条指令。缺点是速度慢,机器各部件利用率低
(2)重叠方式。在解释第K条指令的操作完成之前就可以开始解释第K+1条指令,T=(2n+1)*t
(3)流水方式
流水线的吞吐率:TP=指令条数/流水线执行时间
最大吞吐率:TP=1/△t
流水线加速比:S=不适用流水线执行时间/流水线执行时间
流水线周期:执行时间最长的一段
公式:① 理论公式:(t1+t2+…+tk)+(n-1)*△t
② 实践公式:(k+n-1)*△t

存储系统

  1. 内存编址
    存储器由一块块的空间(存储单元)组成,为了方便寻找到每一块空间,我们需要对每一个空间进行标识——内存编址。
  2. 芯片
    存储器由若干个芯片构成。
  3. 内存容量
    存储器的大小。内存容量=每个芯片容量芯片个数。每个芯片的容量=一个地址代表的容量编址总数
  4. 数据总线
    计算机一次处理n位的数据,则数据总线的长度为n。注意的是:数据总线的长度,并不一定代表一个地址的长度。

  5. 和数据总线紧密相关。数据总线有几位,则一个字就由多少位组成。如64位计算机,表示一次可以处理64位数据,则1个字就是64位。
  6. 地址总线
    假如需要n位二进制数来表示所有的地址,则地址总线的个数为n
  7. Cache:
    在CPU的所有操作中,访问内存是最频繁的操作。由于一般微机中的主存储器的工作速度比CPU低一个数量级,加上CPU的所有访问都要通过总线这个瓶颈,所以,缩短存储器的访问时间是提高计算机速度的关键,采用在CPU和内存之间加进高速缓冲存储器cache的办法较好地解决了这一问题。
    简单来说cache是为了解决高速运行的cpu与主存储器之间速度不匹配的问题。
    cache的地址映像方法:
    (1)直接映像
    (2)全相连映像
    (3)组相联映像
  8. 因为cache的内容是部分主存内容的副本,应该与主存内容保持一致。而CPU对cache的写入更改了cache内容,如何与主存内容保持一致就有几种写操作工作方式可供选择,统称为写策略
    (1)写回法(write–back)
    当CPU对cache写命中时,只修改cache的内容不立即写入主存,只当此行被换出时才写回主存。这种策略使cache在CPU-主存之间,不仅在读方向而且在写方向上都起到高速缓存作用
    (2)写直达法(write–through)
    又称全写法,写透。是当cache写命中时,cache与主存同时发生写修改
    (3)标记法
    数据进入cache后,有效位置1,当cpu对该数据修改时,数据只写入主存并将该有效位置0。要从cache中读取数据时要测试其有效位,若为1则直接从cache中取数,否则从主存中取数
  9. 磁盘存储器

总线

  1. 总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线。按照总线相对应cpu或其他芯片的位置可分为
    (1)内部总线
    寄存器之间和算数逻辑部件ALU与控制部件之间传输数据所用的总线。
    (2)外部总线
    cpu与内存和I/O设备接口之间通讯
  2. 按照总线功能划分:
    (1)地址总线——传送地址信息
    (2)数据总线——传送数据信息
    (3)控制总线——传送控制信号和时序信号
  3. 按总线在微机中的位置,可以分为机内总线和机外总线两种。
  4. 按总线功能划分,可以分为局部总线、系统总线、通信总线三种。
  5. 按照总线中数据线的多少,可以分为并行总线和串行总线

真题知识点:
Cache的地址映像方式中,发生块冲突次数最小的是 (全相连映像) 。

操作系统基础知识

操作系统功能

    (1)处理机管理(2)存储器管理(3)设备管理(4)文件管理(5)用户接口

操作系统类型

  1. 单用户系统 一台处理机只支持一个用户程序
  2. 批处理系统 用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。人机不交互。
  3. 分时操作系统 把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。
  4. 网络操作系统 一种在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。
  5. 分布式操作系统 以计算机网络为基础的,将物理上分布的具有自治功能的数据处理系统或计算机系统互联起来的操作系统。
  6. 嵌入式操作系统 运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。

进程

进行资源分配和调度的基本单位。
进程通常由程序、数据集合、进程控制块 PCB 组成。
为了描述和控制进程的运行,系统为每个进程定义了一个数据结构——进程控制块(PCB)。 它是进程重要的组成部分,它记录了操作系统所需的、 用于描述进程的当前状态和控制进程的全部信息。
操作系统就是根据进程的PCB来感知进程的存在,并依此对进程进行管理和控制。 PCB是进程存在的唯一标识。

PV操作

P操作:①将信号量S的值减1,即S=S-1;②如果S>=0,则该进程继续执行;否则该进程置为等待状态。
V操作:①将信号量S的值加1,即S=S+1;②如果S>0该进程继续执行;否则说明有等待队列中有等待进程,需要唤醒等待进程。

存储管理

  1. 逻辑地址:CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一
    物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。
  2. 静态重定位是在程序执行之前进行重定位,它根据装配模块将要装入的内存起始位置,直接修改装配模块中的有关使用地址的指令,静态重定位有着无需硬件支持的优点,但存在着如下的缺点:一是程序重定位之后就不能在内存中搬动了;二是要求程序的存储空间是连续的,不能把程序放在若干个不连续的区域内。
  3. 动态重定位是指,不是在程序执行之前而是在程序执行过程中进行地址重定位。更确切地说,是在CPU每次访问内存单元前才进行地址变换。需硬件支持。优点是:
    (1)程序占用的内存空间动态可变,不必连续存放在一处。
    (2)比较容易实现几个进程对同一程序副本的共享使用。
    缺点是:需要附加的硬件支持,增加了机器成本,而且实现存储管理的软件算法比较复杂

分区管理

固定分区 静态分区,作业装入之前划分,大小固定,内存利用率不高。
可变分区 动态分区,碎片多。首次适应算法、最佳适应算法、最坏适应算法。
可重定位分区 合并零散空间。

分页管理

  1. 需要注意页地址(逻辑页、物理页)编号是从0开始,还是从1开始,包括字的编号从0开始,还是从1开始
  2. 还要注意物理页地址的大小,它代表着物理页能存多少个数据!!!

分段存储管理

段页式存储管理

段号 页号 页内地址

设备管理

在计算机中,I/O系统可以有5种不同的工作方式,分别是程序控制方式、程序中断方式、DMA工作方式、通道方式、I/O处理机

  1. 程序控制方式
    分为无条件查询和程序查询方式。
    ① 无条件传送方式,I/O端口总是准备好接受主机的输出数据,或是总是准备好向主机输入数据,而cpu在需要时,随时直接利用I/O指令访问相应的I/O端口,实现与外设的数据交换。优点是软、硬件结构简单,缺点是对时序要求高,只适用于简单的I/O控制
    ② 程序查询方式
    程序查询方式也称为程序轮询方式,该方式采用用户程序直接控制主机与外部设备之间输入/输出操作。CPU必须不停地循环测试I/O设备的状态端口,当发现设备处于准备好(Ready)状态时,CPU就可以与I/O设备进行数据存取操作。
    这种方式下的CPU与I/O设备是串行工作的
  2. 中断方式
    当I/O设备结束(完成、特殊或异常)时,就会向CPU发出中断请求信号,CPU收到信号就可以采取相应措施。当某个进程要启动某个设备时,CPU就向相应的设备控制器发出一条设备I/O启动指令,然后CPU又返回做原来的工作。CPU与I/O设备可以并行工作,与程序查询方式相比,大大提高了CPU的利用率
  3. DMA(直接内存存取)方式
    DMA方式也称为直接主存存取方式,其思想是:允许主存储器和I/O设备之间通过“DMA控制器(DMAC)”直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无须CPU的干预
  4. 通道控制方式
    在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多地免去了cpu的接入,使主机和外设并行工作程度更高
  5. I/O处理机
    指专门负责输入/输出的处理机。可以有独立的存储器、运算部件和指令控制部件

文件管理

  1. 文件的逻辑组织是为了方便用户使用。一般文件的逻辑结构可以分为两种:无结构的字符流文件和有结构的记录文件
  2. 记录文件有顺序文件、索引顺序文件、索引文件和直接文件
  3. 文件的物理结构
    文件的物理结构是指文件在存储设备上的存放方法。文件的物理结构侧重于提高存储器的利用效率和降低存取时间
    (1)顺序分配(连续分配)。
    (2)链接分配(串联分配)。
    (3)索引分配。这是另一种对文件存储不连续分配的方法。采用索引分配方法的系统,为每一个文件建立一张索引表,
    索引表中每一表项指出文件信息所在的逻辑块号和与之对应的物理块号
    直接地址索引、一级间接地址索引、二级间接地址索引
    地址项大小为4字节,磁盘索引块为4KB 则地址页的大小为4KB/4B=1024

文件存储设备管理

位示图法:系统中字长、物理块数量、字数=物理块数量/字长

真题知识点:

  1. 死锁的产生条件不包括(剥夺)
    剥夺,环路等待、互斥、保持和等待
  2. 逻辑地址的结构是:逻辑页号+页内地址
  3. 进程通常由程序、数据集合、进程控制块FCB 组成。注意是PCB 不是FCB!!!!!

计算机网络基础

网络互联模型

  1. 开放系统互联参考模型OSI/RM 构造了由下到上的七层模型,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
    口诀:“巫术忘传会飚鹰”
  2. 互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。
    它常被通称为TCP(Transmission Control Protocol 传输控制协议)/IP协议族,简称TCP/IP

常见的网络协议

  1. 应用层协议
    这些协议主要有 FTP、TFTP、HTTP、SMTP、DHCP、Telnet、DNS 和 SNMP 等
    (1)FTP(File TransportProtocol,文件传输协议)是网络上两台计算机传送文件的协议,运行在 TCP 之上,是通过 Internet 将文件从一台计算机传输到另一台计算机的一种途径。FTP 在客户机和服务器之间需建立两条 TCP 连接,一条用于传送控制信息(使用 21 号端口),另一条用于传送文件内容(使用 20 号端口)
    (2)TFTP(Trivial FileTransfer Protocol,简单文件传输协议)是用来在客户机与服务器之间进行简单文件传输的协议,
    提供不复杂、开销不大的文件传输服务。TFTP 建立在 UDP之上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达
    (3)HTTP(Hypertext TransferProtocol,超文本传输协议)是用于从 WWW 服务器传输超文本到本地浏览器的传送协议。
    它可以使浏览器更加高效,使网络传输减少。HTTP 建立在 TCP 之上
    (4)SMTP(Simple Mail TransferProtocol,简单邮件传输协议)建立在 TCP 之上,是一种提供可靠且有效的电子邮件传输的协议
    (5)DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)建立在 UDP 之上,是基于客户机/服务器模型设计的DHCP 通过租约(默认为 8 天)的概念,有效且动态地分配客户端的 TCP/IP 设定。当租约过半时,客户机需要向 DHCP 服务器申请续租;当租约超过 87.5%时,如果仍然没有和当初提供 IP 的 DHCP 服务器联系上,则开始联系其他的 DHCP 服务器。DHCP 分配的 IP 地址可以分为三种方式,分别是固定分配、动态分配和自动分配
    (6)Telnet(远程登录协议)是登录和仿真程序,建立在 TCP 之上,它的基本功能是允许用户登录进入远程计算机系统
    (7)DNS(Domain NameSystem,域名系统)在 Internet 上域名与 IP 地址之间是一一对应的,域名虽然便于人们记忆,
    但机器之间只能互相识别 IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,
    DNS 就是进行域名解析的服务器
    (8)SNMP(Simple NetworkManagement Protocol,简单网络管理协议)是为了解决 Internet 上的路由器管理问题而提出的,SNMP 已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于 SNMP 的
  2. 传输层协议
    传输层主要有两个传输协议,分别是 TCP 和 UDP(User Datagram Protocol,用户数据报协议),这些协议负责提供流量控制、错误校验和排序服务
    (1)TCP 为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。TCP 协议一般用于传输数据量比较少,且对可靠性要求高的场合
    (2)UDP 是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信,与 TCP 相比,UDP 是一种无连接的协议,它的错误检测功能要弱得多。可以这样说,TCP 有助于提供可靠性,而 UDP 则有助于提高传输速率。
    UDP 协议一般用于传输数据量大,对可靠性要求不是很高,但要求速度快的场合
  3. 网络层协议
    网络层中的协议主要有 IP、ICMP(Internet Control Message Protocol,网际控制报文协议)、IGMP(Internet Group Management Protocol,网际组管理协议)、ARP(Address Resolution Protocol,地址解析协议)和
    RARP(Reverse Address Resolution Protocol,反向地址解析协议)等,这些协议处理信息的路由和主机地址解析
    (1)IP 所提供的服务通常被认为是无连接的和不可靠的,它将差错检测和流量控制之类的服务授权给了其他的各层协议,
    这正是 TCP/IP 能够高效率工作的一个重要保证
    (2)ARP 用于动态地完成 IP 地址向物理地址的转换。物理地址通常是指计算机的网卡地址,也称为 MAC(Media Access Control,媒体访问控制)地址,每块网卡都有唯一的地址;RARP 用于动态完成物理地址向 IP 地址的转换
    (3) ICMP 是一个专门用于发送差错报文的协议,由于 IP 协议是一种尽力传送的通信协议,即传送的数据可能丢失、重复、延迟或乱序传递,所以需要一种尽量避免差错并能在发生差错时报告的机制,这就是 ICMP 的功能
    (4)IGMP 允许 Internet 中的计算机参加多播,是计算机用作向相邻多目路由器报告多目组成员的协议。多目路由器是支持组播的路由器,它向本地网络发送 IGMP 查询,计算机通过发送 IGMP 报告来应答查询

IPv6

共128位,以16位为一段,共为8段,每段的16位转换为一个4位的十六进制数,没段之间用“:”分开

  1. 与IPv4比,IPv6的优势
    IPv6有更大的地址空间
    IPv6使用更小的路由表
    IPv6增加了组播支持与对流支持
    IPv6加入了自动配置的支持
    IPv6具有更高的安全性
  2. IPv4/IPv6 过渡技术有
    (1)双协议栈技术:双栈技术通过节点对 IPv4 和 IPv6 双协议栈的支持,从而支持两种业务的共存
    (2)隧道技术:隧道技术通过在 IPv4 网络中部署隧道,实现在 IPv4 网络上对 IPv6 业务的承载,保证业务的共存和过渡
    (3)NAT-PT 技术:NAT - PT 使用网关设备连接 IPv6 和 IPv4 网络。当 IPv4 和 IPv6节点互相访问时,NAT - PT 网关实现两种协议的转换翻译和地址的映射

交换技术

  1. 在计算机网络中,当用户较多而传输的距离较远时,通常不采用两点固定连接的专用线路,而是采用交换技术,使通信传输线路为各个用户公用,以提高传输设备的利用率,降低系统费用
  2. 按照实际的数据传送技术,交换技术又可分为电路交换、报文交换和分组交换
    (1)电路交换。在数据传送之前必须先设置一条通路。在线路释放之前,该通路将由一对用户独占。
    (2)报文交换。报文从源点传送到目的地采用存储转发的方式,在传送报文时,同时只占用一段通道。在交换节点中需要缓冲存储,报文需要排队。因此,报文交换不能满足实时通信的要求
    (3)分组交换。交换方式和报文交换方式类似,但报文被分成分组传送,并规定了最大的分组长度。在数据报分组交换中,目的地需要重新组装报文;在虚电路分组交换中,在数据传送之前必须通过虚呼叫设置一条虚电路。分组交换技术是在数据网络中使用最广泛的一种交换技术

根据各自的特点,不同的交换技术适用于不同的场合。例如,对于交互式通信来说,报文交换肯定是不适合的;对于较轻和间歇式负载来说,电路交换是最合适的,因此,可以通过电话拨号线路来实行通信;
对于较重或持续的负载来说,使用租用的线路以电路交换方式通信是合适的;
对必须交换中等数据到大量的数据时,可用分组交换方法。

路由技术

  1. 路由器是工作在网络层的重要网络互连设备,构成了基于 TCP/IP 协议的 Internet 的主体脉络,工作在 Internet 上的路由器也称为 IP 网关,路由器的主要功能就是进行路由选择
  2. 根据路由选择协议的应用范围,可以将其分为内部网关协议( Interior Gateway Protocol,IGP)、外部网关协议(Exterior Gateway Protocol,EGP)和核心网关协议(Gateway Gateway Protocol,GGP)三大类
    (1)内部网关协议。内部网关协议是指在一个自治系统(Autonomous System,AS)内运行的路由选择协议,
    主要包括 RIP(Routing Information Protocol,路由信息协议)、 OSPF(Open Shortest Path First,开放式最短路径先先)
    、IGRP(Interior Gateway Routing Protocol,内部网关路由协议)和 EIGRP(Enhanced IGRP,增强型 IGRP)等。
    其中 AS 是指同构型的网关连接的互连网络,通常是由一个网络管理中心控制的
    (2)外部网关协议。外部网关协议是指在两个 AS 之间使用的路由选择协议,最新的EGP 主要有 BGP(Border Gateway Protocol,边界网关协议),其主要功能是控制路由策略
    (3)核心网关协议。Internet 中有个主干网,所有的 AS 都连接到主干网上,主干网中的网关称为核心网关,
    核心网关之间交换路由信息时使用的是 GGP
  3. 从路由协议使用的算法来看,所有的路由协议可以分为以下三类
    (1)距离向量协议。计算网络中所有链路的矢量和距离,并以此为依据来确定最佳路径。这类协议会定期向相邻的路由器发送全部或部分路由表
    (2)链路状态协议。使用为每个路由器创建的拓扑数据库来创建路由表,通过计算最短路径来形成路由表。
    这类协议会定期向相邻路由器发送网络链路状态信息
    (3)平衡型协议。结合了距离向量协议和链路状态协议的优点

网络存储技术

目前,主流的网络存储技术主要有三种,分别是直接附加存储(Direct Attached Storage, DAS)、网络附加存储(Network Attached Storage,NAS)和存储区域网络(Storage Area Network,SAN)
(1)直接附加存储
DAS 是将存储设备通过 SCSI(Small Computer System Interface,小型计算机系统接口)电缆直接连到服务器,其本身是硬件的堆叠,存储操作依赖于服务器,不带有任何存储操作系统。因此,有些文献也把 DAS 称为 SAS(Server Attached Storage,服务器附加存储)由于 DAS 直接将存储设备连接到服务器上,这导致它在传递距离、连接数量、传输速率等方面都受到限制。因此,当存储容量增加时,DAS 方式很难扩展,这对存储容量的升级是一个巨大的瓶颈;另一方面,由于数据的读取都要通过服务器来处理,必然导致服务器的处理压力增加,数据处理和传输能力将大大降低;
此外,当服务器出现宕机等异常状况时,也会波及存储数据,使其无法使用。目前 DAS 基本被 NAS 所代替
(2).网络附加存储
采用 NAS 技术的存储设备不再通过 I/O 总线附属于某个特定的服务器,而是通过网络接口与网络直接相连,由用户通过网络访问NAS 存储设备类似于一个专用的文件服务器,它去掉了通用服务器的大多数计算功能,而仅仅提供文件系统功能,从而降低了设备的成本。并且为方便存储设备到网络之间能以最有效的方式发送数据,它专门优化了系统硬件与软件架构。NAS 以数据为中心,将存储设备与服务器分离,其存储设备在功能上完全独立于网络中的主服务器,客户机与存储设备之间的数据访问不再需要文件服务器的干预,同时它允许客户机与存储设备之间进行直接的数据访问,所以不仅响应速度快,而且数据传输速率也很高,NAS 存储支持即插即用,可以在网络的任一位置建立存储。基于 Web 管理,从而使设备的安装、使用和管理更加容易。
NAS 可以很经济地解决存储容量不足的问题,但难以获得满意的性能
(3)存储区域网络
SAN 是通过专用交换机将磁盘阵列与服务器连接起来的高速专用子网,其最大特点是将存储设备从传统的以太网中分离出来,成为独立的存储区域网络

网络系统建设

网络设计的原则:
(1)采用先进,成熟的技术(2)遵循国际标准,坚持开放性原则(3)网络的可管理性(4)系统的安全性(5)灵活性和扩充性(6)系统的稳定性和可靠性(7)经济性(8)实用性

代理服务器

代理服务器是介于浏览器和Web服务器之间的一台服务器,当用户通过代理服务器上网浏览时,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息并传送给用户的浏览器代理服务器的作用主要体现在以下5个方面:
(1)提高访问速度(2)可以起到防火墙的作用(3)通过代理服务器访问一些不能直接访问的网站(4)安全性得到提高(5)共享IP地址

网络管理工具

常见的网络监视器
(1)Ethereal:提供了对TCP,UDP,SMB,telnet,ftp等常用协议的支持,覆盖了大部分应用需求
(2)NetXRay:主要是用做以太网络上的网管软件,能够对IP,NetBEUI,TCP/UDP等协议进行详细分析
(3)Sniffer:它是使网络接口处于混杂模式,以截获网络内容。它是最完善、应用最广泛的一种网络监视器
在操作系统中常用的网络管理工具
(4)ping命令:基于ICMP协议,用于把一个测试数据包发送到规定的地址
(5)tracert:检查到达的目标 IP 地址的路径并记录结果。tracert 命令显示用于将数据包从计算机传递到目标位置的一组 IP 路由器,以及每个跃点所需的时间。如果数据包不能传递到目标,tracert 命令将显示成功转发数据包的最后一个路由器
(6)netstat:用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况
(7)IPConfig:显示当前的TCP/IP配置。这些信息一般用来检验人工配置的TCP/IP设置是否正确

真题知识点:

  1. 交换机又被称为多端口网桥
  2. 根域名服务器采用迭代查询,中介域名服务器采用递归查询
  3. TCP与UDP的区别如下
    ① TCP是面向连接的(在客户端和服务器之间传输数据之前要先建立连接),UDP是无连接的(发送数据之前不需要先建立连接)
    ② TCP提供可靠的服务(通过TCP传输的数据。无差错,不丢失,不重复,且按序到达);UDP提供面向事务的简单的不可靠的传输。
    ③ UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性比较高的通讯或广播通信。随着网速的提高,UDP使用越来越多。
    ④ 每一条TCP连接只能是点到点的,UDP支持一对一,一对多和多对多的交互通信。
    ⑤ TCP对系统资源要求比较多,UDP对系统资源要求比较少
    ⑥ UDP程序结构更加简单
    ⑦ TCP是流模式,UDP是数据报模式
    连接管理、差错校验和重传、流量控制均是TCP的特点,只有端口寻址才是两者的共性。
  4. 网络接口层(物理层、数据链路层)——互联网层——传输层——应用层(会话层、表示层、应用层)
  5. 5G网络是第五代移动通信网络,其峰值理可达下行10Gbps。根据各地试点表明,目前试用阶段一般在下行1Gbps左右,
    未来5G网络的传输速率可达下行10Gbps。
  6. 域名解析流程:
    ①客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
    ②当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
    ③如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
    ④ 本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
    ⑤ 重复第四步,直到找到正确的纪录。
    ⑥ 本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
  7. 127.0.0.1是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),
    即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,
    协议软件立即返回,不进行任何网络传输。
  8. 某公司内部使用wb.xyz.com.cn作为访问某服务器的地址,其中wb是(是主机名)。
  9. 使用ping命令可以进行网络检测,在进行一系列检测时,按照由近及远原则,首先执行的是( )。
    ping默认网关 ping本地IP ping127.0.0.1 ping远程主机
    检查错误时,使用由近及远的原则意味着先要确认本机协议栈有没有问题,所以可以用ping127.0.0.1来检查本机TCP/IP协议栈,能PING通,说明本机协议栈无问题。
    10.半双工(Half Duplex)数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。
    例如,在一个局域网上使用具有半双工传输的技术,一个工作站可以在线上发送数据,然后立即在线上接收数据,
    这些数据来自数据刚刚传输的方向。像全双工传输一样,半双工包含一个双向线路(线路可以在两个方向上传递数据)。
    全双工(Full Duplex)是通讯传输的一个术语。通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。
    全双工指可以同时(瞬时)进行信号的双向传输(A→B且B→A)。指A→B的同时B→A,是瞬时同步的。

数据库技术基础

数据库系统DBS

(1)数据库DB
(2)硬件
(3)软件
(4)人员

数据库管理系统的功能

(1)数据定义
(2)数据库操作
(3)数据库运行管理
(4)数据的组织、存储和管理
(5)数据库的建立和维护
(6)其他功能

DBMS的分类

(1)关系数据库系统RDBS
(2)面向对象的数据库系统OODBS
(3)对象关系数据库系统ORDBS

数据库的模式

数据库系统划分为三个抽象级:用户级、概念级、物理级
数据库系统的三级模式为外模式、概念模式、内模式
(1)概念模式。概念模式(模式、逻辑模式)用以描述整个数据库中数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架,通常还包含有访问控制、保密定义、完整性检查等方面的内容,以及概念/物理之间的映射
概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个概念模式
(2)外模式。外模式(子模式、用户模式)用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件
(3)内模式
内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。内模式定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织
内模式、模式和外模式之间的关系如下:
(1)模式是数据库的中心与关键;
(2)内模式依赖于模式,独立于外模式和存储设备;
(3)外模式面向具体的应用,独立于内模式和存储设备;
(4)应用程序依赖于外模式,独立于模式和内模式
数据库系统两级独立性是指物理独立性和逻辑独立性。三个抽象级间通过两级映射(外模式—模式映射,模式—内模式映射)进行相互转换,使得数据库的三级形成一个统一的整体
视图-外模式,存储文件-内模式,基本表-模式

数据模型

  1. 数据模型主要有两大类,分别是概念数据模型(实体—联系模型)和基本数据模型(结构数据模型)
  2. 概念数据模型是按照用户的观点来对数据和信息建模,主要用于数据库设计。概念模型主要用实体—联系方法
    (Entity-Relationship Approach)表示,所以也称 E-R 模型
  3. 基本数据模型是按照计算机系统的观点来对数据和信息建模,主要用于 DBMS 的实现。基本数据模型是数据库系统的核心和基础。基本数据模型通常由数据结构、数据操作和数据的约束条件三部分组成。其中数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,完整性约束是一组完整性规则的集合,数据的约束包括实体完整性、参照完整性以及用户定义完整性的约束。
    实体完整性:实体完整性是指实体的主属性不能取空值
    参照完整性:在关系数据库中主要是指得外键参照的完整性
    用户定义完整性:用户定义完整性是针对某一个具体关系的约束条件,例如,某些属性必须取唯一值,某些值的范围为0-100等
  4. 基本数据模型
    常用的基本数据模型有层次模型、网状模型、关系模型和面向对象模型
    (1)层次模型用树形结构表示实体类型及实体间的联系。层次模型的优点是记录之间的联系通过指针来实现,查询效率较高。层次模型的缺点是只能表示 1:n 联系,虽然有多种辅助手段实现 m:n 联系,但比较复杂,用户不易掌握
    (2)网状模型用有向图表示实体类型及实体间的联系。网状模型的优点是记录之间的联系通过指针实现,m:n 联系也容易实现,查询效率高。其缺点是编写应用程序的过程比较复杂,程序员必须熟悉数据库的逻辑结构
    (3)关系模型用表格结构表达实体集,用外键表示实体间的联系。其优点有:
    (1)建立在严格的数学概念基础上;
    (2)概念(关系)单一,结构简单、清晰,用户易懂易用;
    (3)存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作

关系代数

并、差、交、笛卡尔积、选择、投影、连接、外连接(左外连接、右外连接、完全外连接)

关系数据库规范化

函数依赖、完全函数依赖、部分函数依赖、传递依赖、超键、候选键、主键、外键、主属性和非主属性
无损连接,并保持函数依赖的

关系数据库规范化

1NF(第一范式)。若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式
2NF(第二范式)。若关系模式R∈1NF,且每一个非主属性完全依赖主键时,则关系式R是2NF
3NF(第三范式)。即当2NF消除了非主属性对码的传递函数依赖,则称为3NF

事务管理

数据库系统运行的基本工作单位是事务,事务相当于操作系统中的进程
(1)原子性(Atomicity):数据库的逻辑工作单位。
(2)一致性(Consistency):使数据库从一个一致性状态变到另一个一致性状态。
(3)隔离性(Isolation):不能被其他事务干扰。
(4)持续性(永久性)(Durability):一旦提交,改变就是永久性的。

并发控制

处理并发控制的主要方法是采用封锁技术。它有两种类型:排他型封锁(X 封锁)和共享型封锁

故障与恢复

  1. 数据库的故障可用事务的故障来表示,主要分为四类
    (1)事务故障。事务在运行过程中由于种种原因,如输入数据的错误、运算溢出、违反了某些完整性限制、某些应用程序的错误,以及并发事务发生死锁等,使事务未运行至正常终止点就被撤销
    (2)系统故障。系统故障是指系统在运行过程中,由于某种原因(如操作系统或数据库管理系统代码错误、操作员操作失误、特定类型的硬件错误(如 CPU 故障)、突然停电等造成系统停止运行),致使事务在执行过程中以非正常方式终止,
    这时内存中的信息丢失,但存储在外存储设备上的数据不会受影响
    (3)介质故障。系统在运行过程中,由于某种硬件故障,如磁盘损坏、磁头碰撞或由于操作系统的某种潜在的错误、瞬时强磁场干扰,使存储在外存上的数据部分损失或全部损失,称为“介质故障”,这类故障比前两类故障的可能性虽然小得多,但破坏性却最大
    (4)计算机病毒。计算机病毒是一种人为破坏计算机正常工作的特殊程序
  2. 故障的恢复
    (1)事务故障的恢复。事务故障是指事务未运行至正常终止点前被撤销,这时恢复子系统应对此事务做撤销处理。
    事务故障的恢复是由系统自动完成的,不需要用户干预,步骤如下:
    反向扫描文件日志,查找该事务的更新操作。
    对该事务的更新操作执行逆操作。
    继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
    如此处理下去,直至读到此事务的开始标记,事务故障恢复完成
    (2)系统故障的恢复。系统故障发生时,造成数据库不一致状态的原因有两个:一是由于一些未完成事务对数据库的更新已写入数据库;
    二是由于一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库。系统故障的恢复是在重新启动时自动完成的,
    不需要用户干预,步骤如下
    正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入重做(Redo)队列。
    同时找出故障发生时尚未完成的事务,将其事务标识记入撤销(Undo)队列。
    对撤销队列中的各个事务进行撤销处理:反向扫描日志文件,对每个 Undo 事务的更新操作执行逆操作。
    对重做队列中的各个事务进行重做处理:正向扫描日志文件,对每个 Redo 事务重新执行日志文件登记的操作

备份

按照备份内容分为物理备份和逻辑备份两类

  1. 物理备份是在操作系统层面上对数据库的数据文件进行备份,物理备份分为冷备份和热备份两种
    (1)冷备份是将数据库正常关闭
    (2)热备份也分为两种,一种是不关闭数据库,另外一种方式是利用备份软件在数据库正常运行的状态下,将数据库中的数据文件备份出来
    为了提高物理备份的效率,通常将完全、增量、差异三种备份方式相组合
    (1)完全备份是将数据库的内容全部备份
    不足之处在于,各个全备份磁带中的备份数据存在大量的重复信息;另外,由于每次需要备份的数据量相当大,因此备份所需时间较长
    (2)增量备份是只备份上次完全、增量或差异备份以来修改的数据,因此备份的数据量不大,备份所需的时间很短,但增量备份的数据恢复,是比较麻烦的,必须具有上一次全备份和所有增量备份磁带(一旦丢失或损坏其中的一盘磁带,就会造成恢复的失败)
    (3)差异备份是备份自上次完全备份后发生变化的所有数据
    差异备份在避免了另外两种备份策略缺陷的同时,又具备了它们各自的优点。首先,它具有了增量备份需要时间短、
    节省磁盘空间的优势;其次,它又具有了全量备份恢复所需磁带少、恢复时间短的特点
  2. 逻辑备份是指利用各数据库系统自带的工具软件备份和恢复数据库的内容

反规范化

(1)增加冗余列(2)增加派生列(3)重新组表(4)分割表

数据库设计

数据库设计过程通常是一个反复修改、反复设计的迭代过程

  1. 数据库设计采用 分步设计法,即遵循自顶向下、逐步求精的原则,将数据库设计过程分解为若干相互独立又相互依存的阶段,每一阶段采用不同的技术与工具,解决不同的问题,从而将问题局部化,减少了局部问题对整体设计的影响
  2. 在分步设计法中,通常将数据库的设计分为需求分析、概念结构设计、逻辑结构设计和数据库物理设计 4 个阶段
    (1).需求分析
    其目标是通过调查研究,了解用户的数据要求和处理要求,并按一定格式整理形成需求说明书。
    需求说明书是需求分析阶段的成果,也是今后设计的依据,它包括数据库所涉及的数据、数据的特征、使用频率和数据量的估计,如数据名、属性及其类型、主关键字属性、保密要求、完整性约束条件、更改要求、使用频率、数据量估计等。这些关于数据的数据称为元数据。
    在设计大型数据库时,这些数据通常由数据字典来管理。用数据字典管理元数据有利于避免数据的重复或重名,以保持数据的一致性及提供各种统计数据,因而有利于提高数据库设计的质量,同时可以减轻设计者的负担
    (2).概念结构设计
    其目标是对需求说明书提供的所有数据和处理要求进行抽象与综合处理,按一定的方法构造反映用户环境的数据及其相互联系的概念模型,即用户的数据模型或企业数据模型。这种概念数据模型与 DBMS 无关,是面向现实世界的、极易为用户所理解的数据模型
    (3).逻辑结构设计
    目标是把上一阶段得到的与 DBMS 无关的概念数据模型转换成等价的,并为某个特定的 DBMS 所接受的逻辑模型所表示的概念模式,同时将概念设计阶段得到的应用视图转换成外部模式,即特定 DBMS 下的应用视图
    (4).数据库物理设计
    任务是把逻辑设计阶段得到的满足用户需求的已确定的逻辑模型在物理上加以实现,其主要内容是根据 DBMS 提供的各种手段,设计数据的存储形式和存取路径,如文件结构、索引设计等,即设计数据库的内模式或存储模式
    3.各局部E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突

分布式数据库

  1. 分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力,成为场地自治,它可以执行局部应用,同时,每个结点也能通过网络通信子系统执行全局应用
    分布式数据库系统有以下几个特点:
    (1)数据的分布性。分布式数据库中的数据分布于网络中的各个结点
    (2)统一性。主要表现在数据在逻辑上的统一性和数据在管理上的统一性两个方面。
    (3)透明性。用户在使用分布式数据库时,与使用集中式数据库一样,无须知道其所关心的数据存放在哪里,存储了几次
  2. 与集中式数据库相比,分布式数据库具有下列优点:
    (1)坚固性好。
    (2)可扩充性好。可根据发展的需要增减结点,或对系统重新配置,这比用一个更大的系统代替一个已有的集中式数据库要容易得多
    (3)可改善性能。在分布式数据库中可按就近分布,合理地冗余的原则来分布各结点上的数据,构造分布式数据库,使大部分数据可以就近访问,避免了集中式数据库中的瓶颈问题,减少了系统的响应时间,提高了系统的效率,而且也降低了通信费用。
    (4)自治性好。数据可以分散管理,统一协调,即系统中各结点的数据操纵和相互作用是高度自治的,不存在主从控制,因此,分布式数据库较好地满足了一个单位中各部门希望拥有自己的数据,管理自己的数据,同时又想共享其他部门有关数据的要求。
  3. 存在的问题
    虽然分布式数据库系统与集中式数据库相比有不少优点,但同时也需要解决一些集中式数据库所没有的问题。
    首先,异构数据库的集成问题是一项比较复杂的技术问题,目前还很难用一个通用的分布式数据库管理系统来解决这一问题。
    其次,如果数据库设计得不好,数据分布不合理,以致远距离访问过多,尤其是分布连接操作过多,不但不能改善性能,反而会使性能降低

分布式数据库的架构

  1. 分布式数据库的模式结构从整体上可以分为两大部分:
    下半部分是集中式数据库的模式结构,代表了各局部场地上局部数据库系统的基本结构;上半部分是分布式数据库系统增加的模式级别
  2. 分布式数据库系统的模式结构有六个层次
    (1)全局外模式。它们是全局应用的用户视图,是全局概念模式的子集
    (2)全局概念模式。它定义分布式数据库中数据的整体逻辑结构,数据就如同根本没有分布一样,可用传统的集中式数据库中所采用的方法定义
    (3)分片模式。每一个全局关系可以划分为若干不相交的部分,每一部分称为一个片段,即“数据分片”。分片模式就是定义片段及全局关系到片段的映像
    (4)分布模式。由数据分片得到的片断仍然是 DDB 的全局数据,是全局关系的逻辑部分,每一个片段在物理上可以分配到网络的一个或多个不同结点上。分布模式定义片段的存放结点。
    (5)局部概念模式。一个全局关系经逻辑划分成一个或多个逻辑片断,每个逻辑片断被分配在一个或多个场地上,称为该逻辑片断在某场地上的物理映像或物理片断。一个场地上的局部概念模式是该场地上所有全局概念模式在该场地上物理映像的集合
    (6)局部内模式。局部内模式是 DDB 中关于物理数据库的描述,类似于集中式 DB 中的内模式,但其描述的内容不仅包含局部本场地的数据的存储描述,还包括全局数据在本场地的存储描述
    在六层模式结构中,全局概念模式、分片模式和分布模式是与场地特征无关的,是全局的,因此它们不依赖于局部 DBMS 的数据模型
  3. 分布透明性指用户不必关心数据的逻辑分片,不必关心数据存储的物理位置分配细节,也不必关心局部场地上数据库的数据模型
    分布透明性包括:分片透明性、位置透明性和局部数据模型透明性
    (1)分片透明性是分布透明性的最高层次。所谓分片透明性是指用户或应用程序只对全局关系进行操作而不必考虑数据的分片
    (2)位置透明性是分布透明性的下一层次。所谓位置透明性是指,用户或应用程序应当了解分片情况,但不必了解片段的存储场地
    (3)局部数据模型(逻辑透明)透明性是指用户或应用程序应当了解分片及各片断存储的场地,但不必了解局部场地上使用的是何种数据模型

数据仓库

  1. 数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策
  2. 数据仓库结构
    (1)数据源。是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。
    内部信息包括存放于 RDBMS(关系型 DBMS)中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等
    (2)数据的存储与管理。是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理,数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)
    (3)OLAP 服务器。对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势
    (4)前端工具。主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具及各种基于数据仓库或数据集市的应用开发工具。
    其中数据分析工具主要针对 OLAP 服务器,报表工具、数据挖掘工具主要针对数据仓库。
  3. 数据仓库的实现方法
    (1)自顶向下法
    首先应找出数据仓库解决方案所要满足的商业需求,把商业需求视为实现数据仓库的首要任务,但是要确定所有需求是很难的,所以比较耗时
    (2).自底向上法
    自底向上可以使一个单位在发展时用尽可能少的经费和时间,就可以在做出有效的投入之前评估技术的收益情况。在数据仓库领域,自底向上方法是快速实现数据集市、部门级数据仓库的有效手段
    (3).混合法
    拥有以上两种方法的优点。适合数据仓库技术的快速试运行,并且保留了建立长远的决策方案的机会

数据挖掘

数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识。
数据挖掘所得到的信息应具有先知,有效和可实用三个特征

系统开发基础知识

软件生命周期

软件定义时期:(1)问题定义(2)可行性研究(3)需求分析.
软件开发时期:(1)概要设计(2)详细设计(3)编码
运行和维护:

开发生命周期模型

  1. 瀑布模型
    瀑布模型也称为生命周期法,是生命周期法中最常用的开发模型,它把软件开发的过程分为软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落.
    瀑布模型的本质是“一次通过”,即每个活动只做一次,最后得到软件产品
    其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容,给出该项活动的工作成果,作为输出传给下一项活动;对该项活动实施的工作进行评审,若其工作得到确认,则继续下一项活动,否则返回前项,甚至更前项的活动进行返工
    优点:
    瀑布模型有利于大型软件开发过程中人员的组织与管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。
    缺陷:
    (1)由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果。这样,软件与用户见面的时间间隔较长,也增加了一定的风险。
    (2)在软件开发前期未发现的错误传到后面的开发活动中时,可能会扩散,进而可能导致整个软件项目开发失败。
    (3)在软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以说是不太可能的
  2. 变换模型
    变换模型(演化模型)是在快速开发一个原型的基础上,根据用户在调用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化成最终的软件产品
  3. 螺旋模型
    螺旋模型将瀑布模型和变换模型相结合,它综合了两者的优点,并增加了风险分析。它以原型为基础,沿着螺线自内向外旋转,每旋转一圈都要经过制订计划、风险分析、实施工程、客户评价等活动,并开发原型的一个新版本。经过若干次螺旋上升的过程,得到最终的系统
  4. 喷泉模型
    喷泉模型对软件复用和生命周期中多项开发活动的集成提供了支持,主要支持面向对象的开发方法。"喷泉"一词本身体现了迭代和无间隙特性。系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。所谓无间隙是指在开发活动中,分析、设计和编码之间不存在明显的边界
  5. V模型
    在开发模型中,测试常常作为亡羊补牢的事后行为,但也有以测试为中心的开发模型,那就是V模型。V模型只得到软件业内比较模糊的认可。
    V模型宣称测试并不是一个事后弥补行为,而是一个同开发过程同样重要的过程
    V模型的价值在于它非常明确地表明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系:
    (1)单元测试的主要目的是针对编码过程中可能存在的各种错误。例如:用户输入验证过程中的边界值的错误。
    (2)集成测试的主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其他程序部分之间的接口上可能存在的错误。
    (3)系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行。例如:在产品设置中是否达到了预期的高性能。
    (4)验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要
  6. 增量模型
    增量模型融合了瀑布模型的基本成分(重复的应用)和原型实现的迭代特征
    当使用增量模型时,第一个增量往往是核心的产品,也就是说第一个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估,都作为下一个增量发布的新特征和功能。这个过程在每一个增量发布后不断重复,直到产生最终的完善产品。
    增量模型强调每一个增量均发布一个可操作的产品
    增量模型像原型实现模型和其他演化方法一样,本质上是迭代的,增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。
    增量模型将功能细化、分别开发的方法适用于需求经常改变的软件开发过程
    优点:
    (1)人员分配灵活,刚开始不用投入大量人力资源,如果核心产品很受欢迎,则可以增加人力实现下一个增量
    (2)当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用
    (3)增量能够有计划地管理技术风险
    缺点:
    增量模型的缺点是如果增量包之间存在相交的情况且不能很好地处理,就必须做全盘的系统分析
  7. RAD模型
    快速应用开发(Rapid Application Development,RAD)模型是一个增量型的软件开发过程模型,强调极短的开发周期。
    RAD模型是瀑布模型的一个“高速”变种,通过大量使用可复用构件,采用基于构件的建造方法赢得快速开发
    RAD模型各个活动期所要完成的任务如下
    (1)业务建模:以什么信息驱动业务过程运作?要生成什么信息?谁生成它?信息流的去向是哪里?由谁处理?可以辅之以数据流图
    (2)数据建模:为支持业务过程的数据流,找数据对象集合,定义数据对象属性,与其他数据对象的关系构成数据模型,可辅之以E-R图
    (3)过程建模:使数据对象在信息流中完成各业务功能。创建过程以描述数据对象的增加、修改、删除、查找,即细化数据流图中的处理框
    (4)应用程序生成:利用第四代语言(4GL)写出处理程序,重用已有构件或创建新的可重用构件,利用环境提供的工具自动生成并构造出整个应用系统
    (5)测试与交付,由于大量重用,一般只做总体测试,但新创建的构件还是要测试的
    与瀑布模型相比,RAD模型不采用传统的第三代程序设计语言来创建软件,而是采用基于构件的开发方法,复用已有的程序结构(如果可能的话)
    或使用可复用构件,或创建可复用的构件(如果需要的话)
    RAD模型通过大量使用可复用构件加快了开发速度,对信息系统的开发特别有效。但是像所有其他软件过程模型一样,RAD方法也有其缺陷
    (1)并非所有应用都适合RAD.RAD模型对模块化要求比较高,如果有哪一项功能不能被模块化,那么建造RAD所需要的构件就会有问题;如果高性能是一个指标,且该指标必须通过调整接口使其适应系统构件才能赢得,RAD方法也有可能不能奏效。
    (2)开发者和客户必须在很短的时间完成一系列的需求分析,任何一方配合不当都会导致RAD项目失败。
    (3)RAD只能用于信息系统开发,不适合技术风险很高的情况。当一个新应用要采用很多新技术或当新软件要求与已有的计算机程序有较高的互操作性时,这种情况就会发生。
  8. 基于构件的模型
    构件(Component,组件)是一个具有可重用价值的、功能相对独立的软件单元。基于构件的软件开发(Component Based Software Development,CBSD)
    模型是利用模块化方法,将整个系统模块化,并在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。
    基于构件的开发模型融合了螺旋模型的许多特征,本质上是演化型的,开发过程是迭代的。基于构件的开发模型由软件的需求分析和定义、体系结构设计、构件库建立、应用软件构建、测试和发布5个阶段组成
    构件作为重要的软件技术和工具得到了极大的发展,这些新技术和工具有Microsoft的DCOM,Sun的EJB,OMG的CORBA等
  9. 原型方法
    软件原型是所提出的新产品的部分实现,建立原型的主要目的是为了解决在产品开发的早期阶段的需求不确定的问题,其目的是明确并完善需求、探索设计选择方案、发展为最终的产品。
    原型法适合于用户没有肯定其需求的明确内容的时候。它是先根据已给的和分析的需求,建立一个原始模型,这是一个可以修改的模型(在生命周期法中,需求分析成文档后一般不再多修改),这种原型法成败的关键及效率的高低在于模型的建立及建模的速度
  10. XP方法
    XP是一种轻量(敏捷)、高效、低风险、柔性、可预测、科学而且充满乐趣的软件开发方式。与其他方法论相比,其最大的不同在于:
    (1)在更短的周期内,更早地提供具体、持续的反馈信息。
    (2)迭代地进行计划编制,首先在最开始迅速生成一个总体计划,然后在整个项目开发过程中不断地发展它。
    (3)依赖于自动测试程序来监控开发进度,并及早地捕获缺陷。
    (4)依赖于口头交流、测试和源程序进行沟通。
    (5)倡导持续的演化式的设计。
    (6)依赖于开发团队内部的紧密协作。
    (7)尽可能达到程序员短期利益和项目长期利益的平衡。
    如图所示,XP由价值观、原则、实践和行为四个部分组成,它们彼此相互依赖、关联,并通过行为贯穿于整个生命周期
    XP的核心是其总结的4大价值观,即沟通、简单、反馈和勇气。它们是XP的基础,也是XP的灵魂。XP的5个原则是快速反馈、简单性假设、逐步修改、提倡更改和优质工作。而在XP方法论中,贯彻的是"小步快走"的开发原则,因此工作质量决不可打折扣,通常采用测试先行的编码方式来提供支持
  11. RUP方法
    RUP(Rational Unified Process)是一个统一的软件开发过程,是一个通用过程框架,可以应付种类广泛的软件系统、不同的应用领域、不同的组织类型、不同的性能水平和不同的项目规模。RUP是基于构件的,这意味着利用它开发的软件系统是由构件构成的,构件之间通过定义良好的接口相互联系。在准备软件系统所有蓝图的时候,RUP使用的是统一建模语言UML.
    与其他软件过程相比,RUP具有三个显著的特点:用例驱动、以基本架构为中心、迭代和增量。
    RUP中的软件过程在时间上被分解为四个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经满足。如果评审结果令人满意,就可以允许项目进入下一个阶段
    RUP的工作流程分为两部分:核心工作流程与核心支持工作流程。
    核心工作流程(在项目中的流程)包括业务需求建模、分析设计、实施、测试、部署;
    核心支持工作流程(在组织中的流程)包括环境、项目管理、配置与变更管理

系统开发方法论

系统的开发方法主要包括结构化分析与设计、面向数据结构的设计、面向对象分析与设计以及构件化方法四种

  1. 结构化分析与设计
    这种方法采用结构化技术来完成软件开发的各项任务。该方法把软件生命周期的全过程依次划分为若干阶段,然后顺序地完成每个阶段的任务,与瀑布模型有很好的结合度,是与其最相适应的开发方法。结构化方法的核心思想是"自顶向下,逐步分解".
  2. 面向数据结构的设计
    数据的输入、存储都涉及不同的数据结构,面向数据结构设计方法的基本思想是根据数据结构导出程序结构。典型的面向数据结构的设计方法包括Jackson方法和Warnier方法
  3. 面向对象分析与设计
    这种方法引入了"对象"的概念,将数据和方法封装在一起,提高了模块的聚合度,降低了耦合度,更大程度上支持软件复用。面向对象方法是现在最流行和最具有发展前景的软件开发方法
  4. 构件化开发
    为了降低开发费用、提高生产率,以及在快速的技术演化面前提供受控的系统升级的开发方式,就催生了基于构件的软件开发(Component-Based Software Development,CBSD)。它通过有计划地集成现有的软件部分来进行软件开发。
    它可以有效地遏制复杂性、缩短发布时间、提高一致性,更有效地利用本领域的最佳方法、提高生产率、增加项目进度的可视性、支持并行和分布式的开发、减少维护费用

敏捷方法

(1)自适应非预设性
(2)面向人(对象)而非面向过程
极限编程:四大价值观 沟通、简单、反馈、勇气
十二个最佳实践:
计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作 40 小时、现场客户、编码标准

  1. 驱动开发方法FDD:(1)开发整体对象模型(2)构造特征列表(3)计划特征开发(4)特征设计(5)特征构建
    人员分成两类:首席和类程序员
  2. 并列争求法:Scrum:(1)产品待办事项列表梳理(2)Sprint 计划会议(3)每日 Scrum 会议(4)Sprint 评审会议(5)Sprint 回顾会议等五个活动
  3. 水晶方法: (1)经常交付 (2)反思改进 (3)渗透式交流 (4)个人安全 (5)焦点 (6)与专家用户建立方便的联系
    (7)配有自动测试、配置管理和经常集成功能的技术环境
  4. 开放式源码:
    (1)程序开发人员在地域上分布很广。
    (2)开放源码的一个突出特点就是查错排障(debug)的高度并行性,任何人发现了错误都可将改正源码的“补丁”文件发给维护者。然后由维护者将这些“补丁”或是新增的代码并入源码库
  5. ASD方法:其核心是三个非线性的、重叠的开发阶段:猜测、合作与学习
  6. 快速应用开发RAD
    ①并非所有应用都适合RAD
    ②开发者和客户必须在很短的时间完成一系列的需求分析,任何一方配合不当,都会导致RAD项目失败。
    ③RAD只能用于管理信息系统的开发,不适合技术风险很高的情况。

形式化方法

形式化方法包括形式化描述和基于形式化描述的形式化验证两部分内容。
形式化描述就是用形式化语言进行描绘,建立软件需求和特性,即解决软件“做什么”的问题。
形式化验证指的是验证已有的程序是否满足形式化描述的定义

需求管理

(1)控制对需求基线的变动
(2)保持项目计划与需求一致
(3)控制单个需求和需求文档的版本情况
(4)管理需求和联系链,或者管理单个需求和其他项目可交付产品之间的依赖关系
(5)跟踪基线中的需求状态
范围管理
配置管理
质量管理

真题知识点:

–敏捷方法是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。敏捷方法的核心思想主要有以下三点。
①敏捷方法是“适应性”而非“预设性”的。传统方法试图对一个软件开发项目在很长的时间跨度内做出详细的计划,然后依计划进行开发。
这类方法在计划制定完成后拒绝变化。而敏捷方法则欢迎变化,其实它的目的就是成为适应变化的过程,甚至能允许改变自身来适应变化。
②敏捷方法是以人为本,而不是以过程为本。传统方法以过程为本,强调充分发挥人的特性,不去限制它,
并且软件开发在无过程控制和过于严格繁琐的过程控制中取得一种平衡,以保证软件的质量。
③迭代增量式的开发过程。敏捷方法以原型开发思想为基础,采用迭代增量式开发,发行版本小型化。RUP相比,敏捷方法的周期可能更短。
敏捷方法在几周或者几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度写作。
–统一过程(UP)的基本特征是以用例和风险驱动,以架构为中心,受控的迭代式的增量开发。定义了四个阶段:
起始阶段:该阶段的主要目的是建立项目的范围和版本,确定项目目标的可行性和稳定性,提交结果包括需求和用例。
精化阶段:该阶段的目的是对问题域进行分析,建立系统需求和架构,确定实现的可行性和稳定性,提交结果包括系统架构、问题领域、修改后的需求及项目开发计划等相关文档。
构建阶段:增量式开发可以交付给用户的软件产品。
移交阶段:目的是将软件产品交付给用户。

系统分析

系统分析阶段

也称为逻辑设计阶段,其任务是根据系统设计任务书所确定的范围,对现有系统进行详细调查,描述现有系统的业务流程,指出现有系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。
在系统分析阶段,系统分析师要和用户一起细致地进行调查分析,把用户的初始需求具体化、明确化,最终转换成关于新系统“做什么”的逻辑模型。
系统分析是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别之所在。系统分析阶段的工作成果体现在系统需求规格说明书中,这是系统建设的必备文件,是系统设计阶段的工作依据,也是将来系统验收的依据

详细调查

  1. 在系统规划阶段,通过初步调查,系统分析师已经对企业的组织结构、系统功能等有了大致的了解,但是,对具体的业务处理过程和方法仍然不十分清楚,需要作进一步的详细调查,深入了解系统的处理流程,确定用户需求。
  2. 详细调查与初步调查不同,其目的是深入了解企业管理工作中信息处理的全部具体情况和存在的具体问题,为提出新系统的逻辑模型提供可靠的依据,因此,其细微程度要比初步调查高得多,工作量也要大得多
  3. 详细调查的主要方法有收集资料、开调查会、个别访问、书面调查、抽样调查、现场观摩、参加业务实践和阅读历史文档等。
    另外,为了便于系统分析师和用户之间进行业务交流和分析问题,在调查过程中应尽量使用各种形象、直观的图表工具。图表工具的种类很多,例如,用组织结构图描述企业的组织结构,用业务流程图描述业务状况,用数据流程图描述和分析数据、数据流程及各项功能,用判定树和决策表等描述处理功能和决策模型

现有系统分析

(1)获得现有系统的物理模型(2)抽象出现有系统的逻辑模型(3)建立新系统的逻辑模型(4)建立新系统的物理模型

组织结构分析

组织结构图是一种类树结构,树的分枝是根据上下级和行政隶属关系绘制的通过组织结构调查,系统分析师可以掌握企业组织结构的现状和存在的问题

系统功能分析

  1. 在掌握企业组织结构的基础上,以组织结构为线索,层层了解各个部门的职责、工作内容和内部分工,就可以掌握系统的功能体系,并用功能体系图来表示
  2. 功能体系图是一个完全以业务功能为主体的树形图,其目的在于描述企业内部各部门的业务和功能
  3. 确定了系统的所有功能后,还需要分析各功能之间的关系和流程,一般使用功能流程图来描述。功能流程图可以检验是否识别出所有的功能,判定系统分析师是否理解了系统功能,也是以后进行系统设计的基础

业务流程分析

  1. 业务流程分析的目的是了解各个业务流程的过程,明确各个部门之间的业务关系和每个业务处理的意义,为业务流程的合理化改造提供建议,为系统的数据流程变化提供依据。业务流程分析可以帮助系统分析师了解业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,修改和删除现有系统的不合理部分,在现有系统基础上优化业务处理流程。
  2. 业务流程分析的主要方法有价值链分析法、客户关系分析法、供应链分析法、基于ERP的分析法和业务流程重组等
    (1)价值链分析法。价值链分析法找出或设计出那些能够使顾客满意,实现顾客价值最大化的业务流程
    (2)客户关系分析法。客户关系分析法就是把CRM用在业务流程的分析上。CRM的目标是建立真正以客户为导向的组织结构,以最佳的价值定位瞄准最具吸引力的客户,最大化地提高运营效率,建立有效的合作伙伴关系
    (3)供应链分析法。供应链分析法是从企业供应链的角度分析企业的业务流程,它源于SCM。供应链是指用一个整体的网络用来传送产品和服务,从原材料开始一直到最终客户(消费者),它凭借一个设计好的信息流、物流和资金流来完成。
    供应链分析法主要从企业内部供应链和外部供应链两个角度来分析企业的业务流程,分析哪些流程处于供应链的核心环节
    (4)基于ERP的分析法。ERP的基本思想是将企业的业务流程看作是一个紧密联接的供应链,将供应商和企业内部的采购、生产、销售,以及客户紧密联系起来,对供应链上的所有环节进行有效管理,实现对企业的动态控制和各种资源的集成和优化,从而提升企业基础管理水平,追求企业资源的合理、高效利用
    (5)业务流程重组。通过重新审视企业的价值链,从功能成本的比较分析中,确定企业在哪些环节具有比较优势。在此基础上,以顾客满意为出发点进行价值链的分解与整合,改造原有的业务流程,实现业务流程的最优化

业务流程建模

  1. 业务流程建模可以采取两种方式,分别是自顶向下和的自底向上。自顶向下的方法从企业任务目标出发,根据流程上的价值链来确定最基本的流程,逐层分析业务目标直至底层。此过程涉及到将业务需求细化为系统需求,再将系统需求细化为功能。
  2. 自底向上的方法分析现有系统,从已有业务流程活动及其联系出发,用于明确业务细节问题
  3. 描述业务流程模型最常见的方法是形式化描述和图示化描述
    (1)标杆瞄准
    标杆瞄准是一个连续、系统化地对外部领先企业进行评价的过程,通过分析和评价,确定出代表最佳实践的经营过程和工作过程,以便合理地确定本企业的业务流程
    (2) IDEF
    IDEF是一系列建模、分析和仿真方法的统称
    (3)DEMO
    通过六种模型来描述信息系统的构成,包括交互模型、业务流程模型、事务模型、行为模型、事实模型和互约束模型
    (4)Petri
    Petri网作为一种从流程的角度出发描述和分析复杂系统的模型工具,适用于多种系统的图形化、数学化建模工具,为描述和研究具有并行、异步、分布式和随机性等特征的信息系统提供了强有力的手段
    (5)业务流程建模语言
    主流的业务流程建模语言标准有BPEL(Business Process Execution Language,业务流程执行语言)、BPML(Business Process Modeling Language,业务流程建模语言)、BPMN(Business Process Modeling Notation,业务流程建模标注)、
    XPDL(XML Process Definition Language,XML流程定义语言)和UML五种
    语言的表现形式上来说,可以将它们划归为两大类,分别是文本类和图元类
    ①BPEL 它是一种使用XML编写,用于自动化业务流程的形式规约语言
    ②BPML。BPML与BPEL的设计理念非常相似,也用XML这种结构化的方式对流程和流程执行的语义进行描述,在语法上也有循环和分支等控制结构, 同时也是一种可执行的建模语言
    ③ XPDL 定义的一套流程建模标准,用来在支持BPM的各种工具和引擎间交换流程设计的定义
    ④同为BPMI的标准之一,BPMN是BPML的有力补充。作为一个图形化的流程建模语言,它能够弥补BPML等文本类建模语言在图形表示上的先天不足。 BPMN的用途更多在于其图形化的直观表示
    ⑤UML。UML常被看作是系统建模和设计活动中的“瑞士军刀”,它所囊括的十多种图形化表示方案,可以用来捕获系统动态或静态的各个方面。但就业务流程管理领域而言,UML的作用不是很明显。在UML中,主要使用活动图来对业务流程进行建模
    (6)基于服务的BPM
    基于服务的流程建模是把BPM技术和服务的思想结合在一起,更加便于业务流程的分析、设计与优化

数据与数据流程分析

数据与数据流程分析是以后建立数据库系统和设计功能模块处理过程的基础

  1. 数据汇总分析
    (1)将系统调查中所收集到的数据资料,按业务流程进行分类编码,按处理过程的顺序排放在一起。
    (2)按业务流程自顶向下地对数据项进行整理
    (3)将所有原始数据和最终输出数据分类整理出来
    (4)确定数据的字长和精度
  2. 数据属性分析
    数据的属性分析主要包括静态分析和动态分析
    数据的静态分析是指分析数据的静态特性
    (1)类型和长度(2)取值范围(3)发生的业务量(4)哪些业务使用这些数据(5)重要程度和保密程度
    数据动态分析:数据的动态特性有三种,分别是固定值属性、固定个体变动属性和随机变动属性。具有固定值属性的数据,其值一般不随时间而改变
  3. 数据的存储分布
    区分数据动态特性的目的是为了确定数据和数据库表(或文件)的关系,也就是确定哪些数据存储在哪种数据文件中。
    例如,一般将具有固定属性的数据存放在基本表(或主文件)中,将具有随机变动属性的数据存放在视图(或处理文件)中
  4. 数据流程分析
    数据流程是指在系统中产生、传输、加工处理、使用、存储的过程,数据流程分析把数据在企业内部的流动情况抽象地独立出来,舍去了具体的企业组织结构、信息载体、物质、材料等,单从数据流动过程来考查实际业务的数据处理模式
    数据流程分析的目的是要发现和解决数据流通中的问题,例如,数据流程不畅、前后数据不匹配、数据处理过程不合理、输入输出不平衡等
    数据流程分析主要包括对数据的输入、输出、流动、传递、处理和存储的分析
    SA是一种面向数据流的分析方法,在SA中,DFD是数据流程分析所使用的主要工具之一

系统需求规格说明书

系统需求规格说明书也称为系统分析报告,或简称为系统说明书,它是系统分析阶段的技术文档,也是系统分析阶段的工作成果,一旦通过评审,系统需求规格说明书将成为系统开发中的权威性文件,是系统设计阶段的主要依据。
同时,系统需求规格说明书也是承建方与建设方之间的技术合同,是将来对系统进行验收的标准之一

结构化开发方法

结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作
结构化方法的核心思想是"自顶向下,逐步分解"。特别适合于数据处理领域的问题,但是不适合解决大规模的、特别复杂的项目,且难以适应需求的变化

结构化分析

(1)研究“物质环境”。首先,应画出当前系统(可能是非计算机系统,或是半计算机系统)的数据流图,说明系统的输入、输出数据流,说明系统的数据流情况,以及经历了哪些处理过程
(2)建立系统逻辑模型。当物理模型建立完成之后,接下来的工作就是画出相对于真实系统的等价逻辑数据流图。
在前一步骤建立的数据流图的基础上,将所有自然数据流都转成等价的逻辑流,例如,将现实世界的报表存储在计算机系统中的文件里;又如将现实世界中“送往总经理办公室”改为“报送报表”
(3)划清人机界限。最后,确定在系统逻辑模型中,哪些将采用自动化完成,哪些仍然保留手工操作

  1. 结构化分析与面向对象分析方法之间的最大差别是:结构化分析方法把系统看作一个过程的集合体,包括人完成的和电脑完成的;
    而面向对象方法则把系统看成一个相互影响的对象集
  2. 结构化分析一般包括以下工具:数据流图(Data Flow Diagram,DFD)、数据字典(Data Dictionary,DD)、结构化语言、判定表、判定树
    3.结构化方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料

数据流图

元素: 数据流、加工、数据存储、外部实体,以及他们的图形表示

数据字典

数据字典有以下4类条目:数据流、数据项、数据存储和基本加工

结构化设计

  1. 结构化设计包括体系结构设计、接口设计、数据设计和过程设计等任务。它是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、逐步求精和模块化的过程
  2. 在结构化方法中,模块化是一个很重要的概念,它将一个待开发的软件分解成为若干个小的简单部分–模块,每个模块可以独立地开发、测试
  3. 结构化设计方法
    (1).抽象化
    对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使问题所处环境的语言描述问题的解法。而在较低的抽象层次上,则采用过程化的方法。抽象化包括对过程的抽象、对数据的抽象和对控制的抽象
    (2)自顶向下,逐步细化
    (3)信息隐蔽
    信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,并且尽可能少地暴露其内部的处理,通过信息隐蔽可以提高软件的可修改性、可测试性和可移植性,它也是现代软件设计的一个关键性原则
    (4)模块独立
    模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系最简单。保持模块的高度独立性,也是在设计时的一个很重要的原则
  4. 在结构化设计中,系统由多个逻辑上相对独立的模块组成,在模块划分时需要遵循如下原则
    (1)模块的大小要适中(2)模块的扇入和扇出要合理(3)深度和宽度适当
  5. 模块的内聚类型通常可以分为7种,根据内聚度从高到低排序
    功能内聚–>顺序内聚–>通信内聚–>过程内聚–>瞬时内聚–>逻辑内聚–>偶然内聚
    功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。
    顺序内聚:处理元素相关,而且必须顺序执行。
    通信内聚:所有处理元素集中在一个数据结构的区域上。
    过程内聚:处理元素相关,而且必须按特定的次序执行。
    瞬时内聚:所包含的任务必须在同一时间间隔内执行(如初始化模块)。
    逻辑内聚:完成逻辑上相关的一组任务。
    偶然内聚:完成一组没有关系或松散关系的任务
  6. 模块的耦合类型通常也分为7种,根据耦合度从低到高排序
    非直接耦合–>数据耦合–>标记耦合–>控制耦合–>外部耦合–>公共耦合–>内容耦合
    非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
    数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
    标记耦合 :这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;
    控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合
    外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
    公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
    内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合
    (1) 一个模块直接访问另一个模块的内部数据;
    (2) 一个模块不通过正常入口转到另一模块内部;
    (3) 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
    (4) 一个模块有多个入口

真题知识点:

1.模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息
2.巧合内聚就是偶然内聚。偶然内聚由于内容都是不相关的,所以必然导致它与外界多个模块有关联,这也使得模块间的耦合度增加

系统设计

系统设计是系统分析的延伸与拓展。系统分析阶段解决“做什么”的问题,而系统设计阶段解决“怎么做”的问题。同时,它也是系统实施的基础,为系统实施工作做好铺垫。合理的系统设计方案既可以保证系统的质量,也可以提高开发效率,确保系统实施工作的顺利进行
系统设计的主要内容包括概要设计和详细设计。概要设计又称为系统总体结构设计,它是系统开发过程中很关键的一步,其主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。在概要设计中,将系统开发的总任务分解成许多个基本的、具体的任务,为每个具体任务选择适当的技术手段和处理方法的过程称为详细设计。
根据任务的不同,详细设计又可分为多种,例如,网络设计、代码设计、输入/输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等

  1. 网络设计
    网络设计的主要任务是,根据系统的要求选择网络结构,按照系统结构的划分,安排网络和设备的分布,然后根据物理位置考虑网络布线和设备的部署,还要根据实际业务的要求划定各网络节点的权限、级别和管理方式等,选择相应的系统软件和管理软件
  2. 代码设计
    代码是用数字或字符来表示各种客观实体。在系统开发过程中,进行代码设计的主要目的是确保代码的唯一化、规范化和系统化
  3. 输入/输出设计
    输入设计的目的是确保向系统输入的数据的完整性、正确性和一致性,其主要内容包括确定输入数据的内容、输入方式设计、输入格式设计和检验方式的设计;输出设计的目的是确保系统输出数据的完整性、正确性和一致性,
    其主要内容包括确定输出的内容、选择输出设备与介质,以及确定输出格式等
    输入设计需要遵循以下原则:
    (1)输入数据最少原则(2)简单性原则(3)尽早验证原则(4)少转换原则
  4. 处理流程设计
    处理流程设计是系统详细设计的重要组成部分,它的主要目的是确定各个系统模块的内部结构,即内部执行过程,包括局部数据组织和控制流,以及每个具体加工过程和实施细节
  5. 数据存储设计
    数据存储设计主要是根据数据处理要求、处理方式、存储的信息量大小、数据使用的频率和所能提供的设备条件等,选择数据存储的方式、存储介质、数据组织方式和记录格式,并估算数据的容量
  6. 用户界面设计
    (1)置于用户控制之下(2)减轻用户的记忆负担(3)保持界面一致性
    以上三条原则由着名用户界面设计专家Theo Mandel博士所创造,通常称之为人机交互的“黄金三原则”
  7. 安全性和可靠性设计
    安全性和可靠性设计的目的是确保系统的安全性和可靠性,对系统的运行环境和数据处理进行有效的控制,保证系统安全、有效地运行。
    其主要内容包括系统运行环境安全性分析和控制

流程设计

为了更清晰地表达过程规则说明,陆续出现了一些用于表示处理流程的工具,这些工具包括三类,分别是图形工具、表格工具和语言工具。
其中常见的图形工具包括程序流程图、IPO图、盒图、问题分析图、判定树,表格工具包括判定表,语言工具包括过程设计语言等

  1. 程序流程图 2. IPO图 3. N-S图 4. 问题分析图 5. 过程设计语言 6. 判定表 7. 判定树
    程序流程图(Program HowDiagram,PFD)用一些图框表示各种操作,它独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。
    流程图中只能包括5种基本控制结构:顺序型、选择型、WHILE循环型(当型循环)、UNTIL循环型(直到型循环)和多分支选择型。
    IPO图是由IBM公司发起并逐步完善的一种流程描述工具,其主体是处理过程说明,可以采用流程图、判定树、判定表、盒图、问题分析图或过程设计语言来进行描述。IPO图中的输入、输出与功能模块、文件及系统外部项都需要通过数据字典来描述,同时需要为其中的某些元素添加注释。
    N-S图与PFD类似,也包括5种控制结构,分别是顺序型、选择型、WHILE循环型(当型循环)、UNTIL循环型(直到型循环)和多分支选择型,任何一个N-S图都是这5种基本控制结构相互组合与嵌套的结果。在N-S图中,过程的作用域明确;它没有箭头,不能随意转移控制;而且容易表示嵌套关系和层次关系;并具有强烈的结构化特征。但是当问题很复杂时,N-S图可能很大。
    问题分析图(Problem AnalysisDiagram,PAD)是继PFD和N-S图之后,又一种描述详细设计的工具。PAD也包含5种基本控制结构,并允许递归使用。
    过程设计语言(Process DesignLanguage,PDL)也称为结构化语言或伪代码(pseudocode),它是一种混合语言,采用自然语言的词汇和结构化程序设计语言的语法,用于描述处理过程怎么做,类似于编程语言。
    过程设计语言用于描述模块中算法和加工逻辑的具体细节,以便在开发人员之间比较精确地进行交流。
    对于具有多个互相联系的条件和可能产生多种结果的问题,用结构化语言描述则显得不够直观和紧凑,这时可以用以清楚、
    简明为特征的判定表(DecisionTable)来描述。判定表采用表格形式来表达逻辑判断问题,表格分成4个部分,左上部分为条件说明,
    左下部分为行动说明,右上部分为各种条件的组合说明,右下部分为各条件组合下相应的行动。
    判定树(DecisionTree)也是用来表示逻辑判断问题的一种常用的图形工具,它用树来表达不同条件下的不同处理流程,比语言、表格的方式更为直观。
    判定树的左侧(称为树根)为加工名,中间是各种条件,所有的行动都列于最右侧。

结构化设计

1.是一种面向数据流的方法,它以SRS和SA阶段所产生的数据流图和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程
2.在SD中,这种功能分解就是将系统划分为模块,模块是组成系统的基本单位,它的特点是可以自由组合、分解和变换,系统中任何一个处理功能都可以看成一个模块
3.一个模块应具备以下四个要素
(1)输入和输出
(2)处理功能。指模块把输入转换成输出所做的工作
(3)内部数据。指仅供该模块本身引用的数据
(4)程序代码。指用来实现模块功能的程序。前两个要素是模块的外部特性,即反映了模块的外貌;后两个要素是模块的内部特性
4.一般而言,在SC中存在四种类型的模块
(1)传入模块。传入模块从下属模块中获取数据,经过某些处理,再将其传送给上级模块
(2)传出模块。传出模块从上级模块中获取数据,进行某些处理,再将其传送给下属模块
(3)变换模块。变换模块也称为加工模块,它从上级模块获取数据,进行特定的处理,然后转换成其他形式,再传送回上级模块,
大多数计算模块(原子模块)都属于这一类
(4)协调模块。协调模块是对所有下属模块进行协调和管理的模块
5.系统结构图(Structure Chart,SC)又称为模块结构图,它是软件概要设计阶段的工具,反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,即反映了系统的总体结构
SC包括模块、模块之间的调用关系、模块之间的通信和辅助控制符号等四个部分

真题知识点:

–软件概要设计包括设计软件的结构、确定系统功能模块及其相互关系,主要采用( )描述程序的结构。
1、需求分析阶段:数据流图。
2、概要设计阶段:模块结构图、层次图和HIPO图。
3、详细设计阶段:程序流程图、伪代码、盒图。
–软件设计包括了四个既独立又相互联系的活动:高质量的( )将改善程序结构和模块划分,降低过程复杂性;( )的主要目标是开发一个模块化的程序结构,并表示出模块间的控制关系;(请作答此空)描述了软件与用户之间的交互关系。
软件设计包括体系结构设计、接口设计、数据设计和过程设计。
结构设计:定义软件系统各主要部件之间的关系。
数据设计:将模型转换成数据结构的定义。好的数据设计将改善程序结构和模块划分,降低过程复杂性。
接口设计(人机界面设计):软件内部,软件和操作系统间以及软件和人之间如何通信。
过程设计:系统结构部件转换成软件的过程描述。

软件设计

  1. 软件设计概念、软件架构概念
  2. 软件的建模 4+1视图、动态架构及静态架构
    ①逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。
    ②过程视图(Process View),捕捉设计的并发和同步特征。
    ③物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。
    ④开发视图(Development View),描述了在开发环境中软件的静态组织结构。
    ⑤架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(Use Cases)或场景(Scenarios)来说明,从而形成了第五个视图。
  3. 软件的风格
    软件体系架构风格是描述某一特定应用领域中系统组织方式的惯用模式。定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。
    词汇表中包含一些构件和连接件类型。
    约束指出系统是如何将这些构件和连接件组合起来的。
    体系架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
    数据流(批处理、管道/过滤器)、调用/返回(主程序/子程序、面向对象、层次)、独立构件(进程通信、事件驱动的系统)、
    虚拟机(解释器、基于规则)、仓库(数据库系统、黑板系统、超文本系统)
  4. 层次架构风格 二层、三层架构 B/S架构
  5. 面向服务的架构,技术(UDDI、WSDL、SOAP、REST)、方法(WebService、服务注册、数据总线)
  6. 软件架构概述
    (1)架构是项目干系人进行交流的手段
    (2)架构是设计决策的体现
    (3)架构明确了对系统实现的约束条件
    (4)架构决定了开发和维护组织的组织结构
    (5)架构制约着系统的质量属性
    (6)架构使推理和控制更改更简单
    (7)架构有助于循序渐进的原型设计
    (8)架构可以作为培训的基础
    架构是可传递和可复用的模型
  7. 特定领域软件体系结构
    DSSA的必备特征
    (1)领域性
    (2)普遍性
    (3)抽象性
    (4)可复用性
    特定领域软件架构(Domain Specific Software Architecture,DSSA)以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,其目标是支持一个特定领域中多个应用的生成。
    DSSA的基本活动包括领域分析、领域设计和领域实现。
    其中领域分析的主要目的是获得领域模型,领域模型描述领域中系统之间共同的需求,即领域需求;领域设计的主要目标是获得DSSA,DSSA描述领域模型中表示需求的解决方案;领域实现的主要目标是依据领域模型和DSSA开发和组织可重用信息,并对基础软件架构进行实现。
  8. 参与DSSA的人员
    参与人员:领域专家、领域分析师、领域设计人员和领域实现人员。
  9. DSSA的建立过程
    DSSA过程是并发的、递归的、反复的螺旋模型,分为5个阶段:
    (1)定义领域范围
    (2)定义领域特定元素
    (3)定义领域特定的设计和实现约束
    (4)定义领域模型和体系结构
    (5)产生,搜集可重用的单元

系统架构的评估

  1. 质量属性
    属性 子属性 作用及要点
    性能 效率指标:处理任务所需时间或单位时间内的处理量
    可靠性 容错 出现错误后仍能保证系统争取运行,且自行修正错误
    健壮性 错误不对系统产生影响,按既定程序忽略错误
    可用性 正常运行的时间比例
    安全性 系统向合法用户提供服务并阻止非法用户的能力
    可修改性
    可维护性 局部修复使故障对架构的负面影响最小化
    可拓展性 因松散耦合更易实现新特性/功能,不影响架构
    结构重组 不影响主体进行的灵活配置
    可移植性 适用于多样的环境(硬件平台、语言、操作系统等)
    功能性 需求的满足程度
    可变性 总体架构可变
    互操作性 通过可视化或接口方式提供更好的交互操作体验
  2. 设计策略
    性能 设计策略
    可用性 心跳、Ping/Echo、冗余、进程监视器
    可修改性 抽象、信息隐藏、限制通信路径、运行时注册
    性能 优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。
    安全性 用户认证,用户授权,追踪审计,限制
  3. 架构评估的主要概念
    敏感点:为了实现某种特定的质量属性,一个或多个系统组件所具有的特性
    权衡点:影响多个质量属性的特性,是多个质量属性的敏感点。
    风险点:不以标准术语出现。风险点:某些做法有一些隐患可能导致一些问题。非风险点:某些做法是可行的、可接受的。
  4. 架构评估方法
    业界已开发出多种软件架构评估的方法,按基于的技术手段来看,可以分为三类:基于调查问卷或检查表的方式、
    基于场景的方式和基于度量的方式。
    1)基于调查问卷或检查表的方式:该方式的关键是要设计好问卷或检查表,它充分利用系统相关人员的经验和知识,获得对架构的评估。其缺点是在很大程度上依赖于评估员的主观推断。
    2)基于场景的方式:基于场景的方式由 SEI 首先提出并应用在架构权衡分析法(Architecture Tradeoff Analysis Method,ATAM)和软件架构分析方法(Software ArchiteAnalysis Method,SAAM)中。
    它是通过分析软件架构对场景(也就是对系统的使用或修活动)的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。
    3)基于度量的方式:制定一些定量值来度量架构,如代码行数等。要制定质量属性和度量结果之间的映射
    场景设计:刺激(事件)、环境(事件发生的环境)、响应(架构响应刺激的过程
  5. 主要评估方法
    1)架构权衡分析法ATAM是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、 可修改性和安全性等质量属性进行评价和折中。
    ATAM可以分为4个主要的活动阶段,包括需求收集、架构试图描述、属性模型构造和分析、架构决策与折中 ,整个评估过程强调以属性作为架构评估的核心概念
    2)SAAM是卡耐基梅隆大学软件工程研究所的Kazman等人于1983年提出的一种非功能质量属性的架构分析分析方法,是最早形成文档并得到广泛应用的软件架构分析方法。SAAM的主要输入是问题描述、需求说明和架构描述,其分析过程主要包括场景开发、
    架构描述、单个场景评估、场景交互和总体评估。

基于架构的软件设计方法ABSD

ABSD方法是体系结构驱动,即指构成体系结构的商业、质量和功能需求的组合驱动的。在基于体系结构的软件设计方法中,采用视角与视图来描述软件架构,采用用例但来描述功能需求,采用质量场景来描述质量需求。
ABSD方法有三个基础:
第一个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术。
第二个基础是通过选择体系结构风格来实现质量和商业需求。
第三个基础是软件模板的使用。软件模板利用了一些软件系统的结构
体系结构文档化过程的主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书这两个文档。
体系结构复审是一个迭代过程。目的是标识出潜在的风险尽早发现体系结构设计中的缺陷和错误。
从这个方面来说,在一个主版本的软件体系结构分析之后,要安排一次由外部人员(用户代表和领域专家)参加的复审。

试题考点:

–软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。
–机器人需要根据自身状态的外界环境进行自动调整,这是一个典型的根据外部事件进行响应的场景。比较4个候选项,规则系统比较适合根据外部事件,以自身状态为基础自动进行处理和动作的场景。
–轿车巡航定速系统是一个十分典型的控制系统,其特点是不断采集系统当前状态,与系统中的设定状态进行对比,并通过将当前状态与设定状态进行对比从而进行控制
–该软件系统特别强调用户定义系统中对象的关系和行为这一特性,这需要在软件架构层面提供一种运行时的系统行为定义与改变的能力,根据常见架构风格的特点和适用环境,可以知道最合适的架构设计风格应该是解释器风格
–某公司拟为某种新型可编程机器人开发相应的编译器。该编译过程包括词法分析、语法分析、语义分析和代码生成四个阶段,每个阶段产生的结果作为下一个阶段的输入,且需独立存储。针对上述描述,该集成开发环境应采用(管道—过滤器)
–软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。
软件架构设计能够满足系统的性能、安全性、可维护性等品质;
软件架构设计能够帮助项目干系人(Stakeholder)更好地理解软件结构;
软件架构设计能够有效地管理系统的复杂性,并降低系统维护费用;
软件架构设计对系统开发具有指导性;
软件架构设计为系统复用奠定的基础;软件架构设计能够支持冲突分析。需要注意的是,软件架构设计与系统需求是直交的,两者并无必然联系。
–体系结构文档化有助于辅助系统分析人员和程序员去实现体系结构。体系结构文档化过程的主要输出包括体系结构规格说明、测试体系结构需求的质量设计说明书
–软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的(结构和语义)
–软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。软件架构设计需满足系统的(质量属性),如性能、安全性和可修改性等,并能够指导设计人员和实现人员的工作。

REST架构

  1. 特点(资源、URI、统一接口、无状态)
  2. REST的设计概念和准则
    (1)网络上的所有事物都被抽象为资源。
    (2)每个资源对应一个唯一的资源标识。
    (3)通过通用的连接件接口对资源进行操作。
    (4)对资源的各种操作不会改变资源标识。
    (5)所有的操作都是无状态的。
  3. REST克服传统架构的缺陷
    ①设计API工作量减少,因为功能需求一旦出来,需要操作的资源、操作的方式立刻就能分析出来,因此资源URL和API的使用方式(GET, POST…)都很容易得到。
    ②没有了操作之间的依赖。资源之间虽然可能有关联,但是小得多。
    ③对资源的操作也就那么几种(获取、新建、修改、删除),API的一致性、自我描述性很强,不需要过多解释。
    ④对于GET请求,我们都可以考虑使用缓存,因为在RESTful的架构中,GET请求代表获取数据,必须是安全、幂等的。

UML与设计模式

UML的四种类型图特点及对应的视图

(1)用例图:从外部用户角度描述系统功能,并指出功能执行者。
(2)静态图:显示了系统的静态结构,特别是存在事物的种类的内部结构相互之间的关系,静态图包括类图、对象图、包图。
(3)行为图:描述系统的动态模型和组成对象间的交互关系,包括交互图、状态图、活动图。
(4)实现图:描述软件实现系统的组成和分布状况。包括构件图、部署图

  1. 面向对象=对象+分类+继承+通过消息的通信
    对象、类的概念、继承、类的定义(访问指明符、静态成员和动态成员)、多态性(参数多态、包含多态、过载多态、强制多态)
    (1)参数多态:应用广泛、最纯的多态。
    (2)包含多态:同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。
    (3)强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。
    (4)过载多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型
  2. 统一建模语言UML
    UML中的四种事务(结构事务、行为事务、分组事务、注释事务)
    用例图概念(是由参与者、用例、边界和它们之间的关系构成用于描述系统功能的视图),处于哪个阶段使用,用例之间的关系(包含、依赖)
    3.类图
    类图的图形、类图的概念(展示了一组对象、接口、协作和它们之间的关系)
    类图的分类(实体类、控制类、边界类(接口类))
    (1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类
    (2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度
    (3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等
    类图和用例图都是静态视图、类图之间的关系(依赖、泛化、关联(聚合和组合)、实现)
    (1)依赖(Dependency):是一种使用的关系, 即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖,在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方
    (2)泛化(Generalization)关系:也就是继承关系的反关系,用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。
    (3)聚合(Aggregation):他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,在UML中,聚合关系用带空心菱形的直线表示
    (4)组合(Composition):他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的
    在UML中,组合关系用带实心菱形的直线表示
    (3)实现关系(Implementation):是用来规定接口和实现接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务
    在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示
  3. 对象图
    展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。
  4. 交互图
    序列图、通信图(协作图)、交互概览图和计时图。用于动态建模。
    序列图强调消息时间顺序的交互
    通信图强调接收和发送信息的对象的结构组织的交互
    交互概览图强调控制流的交互图
    计时图适合嵌入式系统建模的交互图
    给出一种图需要知道 是什么图
  5. 状态图
    用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。用于对系统的动态方面建模
  6. 活动图
    将进程或其他计算的结构展示为计算内部一步步的控制流和数据流,主要用来描述系统的动态视图。活动图在本质上是一种流程图

活动图和状态图的区别
状态图是用来描述行为的结果,活动图主要描述行为的动作

  1. 构件图(组件图)
    使用构件图的思想是复用。构建的类型(部署构件、工作产品构件、执行构件)
  2. 组合结构图
  3. 部署图
    用来显示系统中软件和硬件的物理架构
  4. 包图
    包图的作用:包图可以描述需求,设计的高阶概况;包图通过合理规划自身功能反应系统的高层架构,在逻辑上将系统进行模块化分解;包图最终是组织源码的方式
    UML的分类:
    静态图:用例图、类图、对象图、构件图、部署图、组合结构图,描述系统结构
    动态图:协作图、状态图、活动图、顺序图,用来描述系统行为
  5. UML软件开发过程
    初启——规划、可行性分析
    细化——初步的需求分析、初步的高层设计、部分的详细设计、部分的原型构造
    构建——优先安排业务价值大、风险高的用例
    部署
    在细化阶段可能需要的uml语言机制包括描述用户需求的用例及用例图、表示领域概念模型的类图、表示业务流程处理的活动图、表示系统高层结构的包图和表示用例内部实现的交互图
  6. 基于UML进行需求分析
    从业务需求描述出发获取执行者和场景,对场景进行汇总、分类、抽象,形成用例,确定执行者与用例、用例与用例之间的关系,生成用例图
  7. 面向对象的设计
    设计用例步骤:1)提取边界类、实体类和控制类;2)构造交互图;3)根据交互图精化类图
  8. 系统架构文档化
  9. 设计模式
    设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
    使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。
    设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
    总结:
    创建型模式 用于创建对象 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。共五种。口诀:单抽元件(建)厂
    工厂方法模式:创建一个汽车
    抽象工厂模式:创建一系列汽车
    建造者模式:肯德基选套餐,指挥者director
    原型模式:clone
    结构型模式 处理类或对象的组合 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。共七种。
    口诀:外侨(桥)组员(元)戴(代)配饰。
    适配器模式:使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。如:电源适配器
    桥接模式:抽象和实现相分离,图形和颜色 具体实现进行组合
    组合模式:Composite使得客户对单个对象和复合对象的使用具有一致性,描述了如何将容器对象和叶子对象进行递归组合,Leaf,吃水果
    装饰器模式:动态地给一个对象添加一些额外的职责。就扩展功能而言,Decorator模式比生成子类方式更为灵活。是在不改变原类文
    件和使用继承的情况下,动态地扩展一个对象的功能
    外观模式:为子系统中的一组接口提供一个一致的界面,外观模式通过提供一个高层接口,隔离了外部系统与子系统间复杂的交互过程,
    使得复杂系统的子系统更易使用,举例:到医院看病,各种手续,直接找一个人代办
    享元模式:享元模式通过共享技术实现相同或相似对象的重用,围棋的黑白棋子,而不是创建一个个的黑色和白色棋子,内衣模特
    代理模式:代理模式和适配器模式应该说很相像,但是他们的区别也很明显,代理模式和被代理者的接口是同一个,
    只是使用中客户访问不到被代理者,所以利用代理间接的访问,而适配器模式,是因为接口不同

行为型模式 描述类与对象怎样交互、怎样分配职责 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、
备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
共十一种。口诀:观摩(模)对(迭)策,责令解放(访),戒(介)忘台(态)。
责任链模式:让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。申报经费流程、工作流
解释器模式:这个解释器使用该表示来解释语言中的句子。数学运算
模板方法模式:定义一个整体的框架、骨架,细节有子类完成。比如说银行的办理业务的流程步骤框架
命令模式:遥控电视机,word撤销
迭代器模式:电视频道切换
中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
比如系统和各个硬件,系统作为中介者,各个硬件作为同事者,硬件发生变化告知中介者,由中介者告知其他硬件
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态,word撤销
观察者模式:定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新,
也叫发布订阅模式,交通灯
状态模式:对于对象内部的状态,允许其在不同的状态下,拥有不同的行为,对状态单独封装成类,订单四个状态,每个状态都对应相应的行为
策略模式:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
例如:从上海到北京旅行,有骑自行车、开汽车、坐火车、坐飞机四种算法或方式到达,方法之间都可以替换,结果都是可以到达的
访问者模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用与这些元素的新操作。
即对于某个对象或者一组对象,不同的访问者,产生的结果不同,执行操作也不同。
例如:医院开了一张单子,流转到不同的工作人员这里,都会对这个单子进行操作,输出不同的结果

真题知识点:

1.关于用例图中的参与者说法正确的是(B)
A.参与者是与系统交互的事物,都是由人来承担
B.当系统需要定时触发时,时钟就是一个参与者
C.参与者可以在系统外部,也可能在系统内部
D.系统某项特定功能只有一个参与者
参与者是与系统交互的所有事物,该角色不仅可以由人承担,还可以是其他系统和硬件设备,甚至是系统时钟。
2.UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。
具体来说,就是指以下5个系统视图:
①逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
②进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
③实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。
④部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
⑤用例视图。用例视图是最基本的需求分析模型。
3.当采用面向对象的设计方法描述对象模型时,通常使用类图表达类的内部属性和行为,以及类集合之间的交互关系;采用状态图定义对象的内部行为。
4.在实际工作中,一般使用E-R图表示数据模型,用DFD表示功能模型,用状态转换图表示行为模型
5.根据定义,基于软件架构的开发(Architecture Based Software Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。
它强调采用(视角和视图)来描述软件架构,采用(用例和质量属性)场景来描述需求。
6.面向对象的分析模型主要由顶层架构图、用例与用例图和领域概念模型构成;
设计模型则包含以包图表示的软件体系机构图、以交互图表示的用例实现图、完整精确的类图、描述复杂对象的状态图和用以描述流程化处理过程的活动图等。

软件测试

测试的目的

软件测试是软件质量保证的主要手段之一,也是在将软件交付给客户之前所必须完成的步骤,软件测试可以验证软件是否满足软件需求规格说明和软件设计所规定的功能、性能及其软件质量特性的要求,为软件质量的评价提供依据。

测试的类型

分别为动态测试和静态测试
动态测试指通过运行程序发现错误,分为黑盒测试法、白盒测试法和灰盒测试法

  1. 黑盒测试法,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。常用的黑盒测试用例的设计方法有等价类划分(有效、无效等价类)、边值分析、错误猜测、因果图(判定表)和功能图等
  2. 白盒法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。 由于白盒测试是结构测试,所以被测对象基本上是源程序,
    以程序的内部逻辑为基础设计测试用例。常用的白盒测试用例设计方法有基本路径测试、循环覆盖测试、逻辑覆盖测试(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖【比判定覆盖要强,因为对环路也要经过一次,但不能代替条件覆盖和条件组合覆盖】)
  3. 灰盒测试是一种介于白盒测试与黑盒测试之间的测试,它关注输出对于输入的正确性。
  4. 静态测试指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态分析中进行人工测试的主要方法有桌前检查(Desk Checking)、代码审查和代码走查
    一个完整的测试用例应该包括输入数据和期望的输出结果

测试的阶段

根据测试的目的、阶段的不同,可以把测试分为单元测试、集成测试、确认测试、系统测试等种类

  1. 单元测试根据详细设计说明书,包括模块接口测试、局部数据结构测试、路径测试、错误处理测试和边界测试,单元测试通常由开发人员自己负责。
    而由于通常程序模块不是单独存在的,因此常常要借助驱动模块(相当于用于测试模拟的主程序)和桩模块(子模块)完成。
    单元测试的计划通常是在软件详细设计阶段完成的
  2. 集成测试也称为组装测试、联合测试(对于子系统而言,则称为部件测试)。它主要是将已通过单元测试的模块集成在一起,主要测试模块之间的协作性。
    集成测试计划通常在软件概要设计阶段完成。
    从组装策略而言,可以分为一次性组装和增量式组装,增量式组装又包括自顶向下、自底向上、混合式三种,其中混合式组装又称为三明治测试
  3. 确认测试也称为有效性测试,主要验证软件的功能、性能及其他特性是否与用户要求(需求)一致。确认测试计划通常在需求分析阶段完成.
    根据用户的参与程度,通常包括4种类型(内部确认测试、Alpha测试、Beta测试、验收测试)
  4. 系统测试的主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试等。

性能测试

  1. 性能测试的概念、负载测试、压力测试
  2. 性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
    包括哪几个方面(评估系统的能力、识别体系中的弱点、系统调优、检测软件中的问题、验证稳定性和可靠性)
  3. 性能测试的类型
    性能测试类型包括负载测试,强度测试,容量测试等
  4. 负载压力测试
    负载压力测试的目的如下:
    (1)在真实环境下检测系统性能,评估系统性能是否可以满足系统的性能设计要求。
    (2)预见系统负载压力承受力,对系统的预期性能进行评估。
    (3)进行系统瓶颈分析、优化系统。
    在网络应用系统中,负载压力测试应重点关注客户端、网络、服务器(包括应用服务器和数据库服务器)的性能。应获取的关键测试指标如下:
    (1)客户端:并发用户数、响应时间、交易通过率以及吞吐量等。
    (2)网络:带宽利用率、网络负载、延迟以及网络传输和应用错误等。
    (3)服务器:操作系统的CPU占用率、内存使用、硬盘I/O等;数据库服务器的会话执行情况、SQL执行情况、资源争用以及死锁等;应用服务器的并发连接数、
    请求响应时间等

面向对象测试基础

面向对象测试是与采用面向对象开发相对应的测试技术,它通常包括4个测试层次,从低到高排列分别是算法层、类层、模板层(主题层)和系统层

软件维护

在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下4种:改正性维护、适应性维护、完善性维护、预防性维护
在实际维护工作中,改正性维护大约占20%的工作量,适应性维护大约占25%的工作量,完善性维护大约占50%的工作量

真题知识点:

–软件测试类别
1.软件测试可分为单元测试、集成测试、配置项测试、系统测试、验收测试和回归测试等类别。
单元测试也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或面向对象软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。
单元测试的技术依据是软件详细设计说明书。
2.集成测试的目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。
集成测试的技术依据是软件概要设计文档。
3.配置项测试的对象是软件配置项,配置项测试的目的是检验软件配置项与软件需求规格说明的一致性。
4.确认测试主要验证软件的功能、性能和其他特性是否与用户需求一致。
5.验收测试是指针对软件需求规格说明,在交付前以用户为主进行的测试。
6.回归测试的目的是测试软件变更之后,变更部分的正确性和对变更需求的复合型,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。
–驱动模块和桩模块
1.测试一个模块时,可能需要为该模块编写一个驱动模块和若干个桩模块。
2.驱动模块用来调用被测模块,它接收测试者提供的测试数据,并把这些数据传送给被测模块,然后从被测模块接收测试结果,
并以某种可见的方式将测试结果返回给测试人员;
3.桩模块用来模拟被测模块所调用的子模块,它接受被测模块的调用,检验调用参数,并以尽可能简单的操作模拟被调用的子程序模块功能,把结果送回被测模块。上层模块测试时不需要驱动模块,底层模块测试时不要桩模块。
①自顶向下的单元测试先测试上层模块,再测试下层模块。测试下层模块时由于它的上层模块已测试过,所以不必另外编写驱动模块。
②自底向上的单元测试。自底向上的单元测试先测试下层模块,再测试上层模块。测试上层模块由于它的下层模块已经测试过,所以不必另外编写桩模块。
③孤立测试不需要考虑每个模块与其他模块之间的关系,逐一完成所有模块的测试。由于各模块之间不存在依赖性,单元测试可以并行进行,
但因为需要为每个模块单独设计驱动模块和桩模块,增加了额外的测试成本。
④综合测试。上述三种单元测试策略各有利弊,实际测试时可以根据软件特点和进度安排情况,将几种测试方法混合使用

项目开发计划

项目的定义和特点

目的是为创建某一独特产品、服务或成果而临时进行的一次性努力或工作
特点:临时性、独特性、渐进明细
项目是人与人之间综合行为的处置过程

项目管理的定义

项目管理就是将(知识、技能、工具与技术)应用于项目活动,以满足项目的要求。项目管理通过(合理运用与整合特定项目)所需的项目管理过程得以实现。
项目管理使组织能够(有效且高效)地开展项目。
制约项目成功的四个因素:范围、进度、成本、质量
项目管理就是在复杂多变环境中如何做好一件事

项目开发计划

项目的生命周期可划分为4个基本阶段:概念阶段(定义阶段)、开发阶段、实施阶段和结束阶段(收尾阶段)

范围管理

–确认项目范围对项目管理的意义:
项目范围定义不清往往是导致项目失败的首要原因
项目范围管理是项目各项计划、控制的基础
项目范围管理确定了项目的具体工作任务,有助于清楚的责任划分和任务分派
清楚了项目的工作具体范围和具体内容,为提高成本、进度和资源估算的准确性打下基础

–项目产品范围 表示产品或服务的特性和功能,如产品的需求规格说明书
项目工作范围 为了完成具有所规定特征和功能的产品和服务必须完成的工作
产品范围面向客户,项目范围面向团队内部。项目范围服务产品范围。

项目范围是为了达到项目目标,为了交付具有某种特制的产品和服务,项目所规定要做的。
在信息系统项目中,产品范围是指信息系统产品或者服务所应该包含的功能,
项目范围是指为了能够交付信息系统项目所必须做的工作。产品范围是项目范围的基础,产品的范围定义是信息系统要求的度量,
而项目范围的定义是生产项目计划的基础。产品范围描述是项目范围说明书的重要组成部分。

文档管理

软件文档可以分为三类(开发文档、产品文档、管理文档)

项目网络图

计算工期<计划工期<合同工期<要求工期(客户要求)
关键路径是耗时最长的一条路径

双代号网络图

箭头尾部的节点编号要比前面的大,不一定连续

单代

Max

| ES | 工期 | EF |
-----—-------------------—
| 工作编号 |
-----—-------------------—
| LS | 总时差 | LF |
-----—-------------------—
Min
关键路径上的时间 从左到右和从右到左是一致的,
总时差:不影响总工期=LS-ES,关键路径上的总时差是0
自由时差:不影响紧后工作=紧后ES-本EF

单代号和双代号网络图只能有一个起点和终点

时标网络图(时间标注网络图)

总时差 = 当前任务的自由时差 + 紧后工作中最小的总时差
总时差 = 线路上的自由时差之和

工期压缩的原则(关键路线):

有充足备用资源的工作、对安全和质量影响不大的工作、所需增加成本最少的工作
5.依次施工:T=编号个数*(编号内工期=编号内施工过程个数单个施工过程的工期) = 3(35)
平行施工:T=编号内工期 = 3
5
流水施工:T=(编号个数-1)单个施工过程的工期 + 编号内施工过程个数单个施工过程的工期 = (3-1)5 + (35)

信息系统基础

信息的基本概念

(1)控制论的创始人维纳认为:信息就是信息,它既不是物质,也不是能量。
(2)信息论的奠基者香农认为:信息是能够用来消除不确定性的东西。
(3)信息的概念存在两个基本的层次,即本体论层次和认识论层次
人工智能之父图灵

信息的定量描述

信息公式的解释:H(X)表示X的信息熵,pi是事件出现第i种状态的概率,在二进制的情况下,对数的底是2,这是信息熵可以作为信息的度量,称为信息量,单位是比特(bit)

信息的传输模型

信源–编码–信道–解码–信箱 噪声是在信道中产生的

信息质量属性

精完可及经验安(精确性、完整性、可靠性、及时性、经济性、可验证性、安全性)

信息化

信息化从小到大分为5个层次,如表1-2所示。速记词:产企业国社(产品信息化、企业信息化、产业信息化、国民经济信息化、社会生活信息化)。
信息化的主体是全体社会成员,包括政府、企业、事业、团体和个人。空域是政治、经济、文化、军事和社会生活的一切领域。时域是一个长期的过程。

信息化体系六要素

信息资源是核心、信息技术应用是龙头、信息网络是基础、信息技术和产业是国家信息化建设基础、信息化人才是关键、信息化政策法规和标准规范是保障。那张图也要记住!!

国家信息化发展战略纲要

第1步 2017—2020 围绕全面建成小康社会的奋斗目标,服务重大战略布局,促使信息化成为驱动现代化建设的先导力量,网信事业在践行新发展理念上先行一步
第2步 2020—2025 紧紧围绕网络强国建设目标,实现技术先进、产业发达、应用领先、网络安全坚不可摧
第3步 2025—21世纪中叶 信息化全面支撑富强民主文明和谐的社会主义现代化国家建设,网络强国地位日益巩固,引领全球信息化发展

两化融合的含义

(1)是指信息化与工业化发展战略的融合。
(2)是指信息资源与材料、能源等工业资源的融合。
(3)是指虚拟经济与工业实体经济融合。
(4)是指信息技术与工业技术、IT设备与工业装备的融合。

电子政务

电子政务主要包括4个方面:G2G、G2B、G2C、G2E

电子商务

(1)凡使用了诸如电报、电话、广播、电视、传真以及计算机、计算机网络等手段、工具和技术进行商务活动,都可以称之为电子商务。
(2)EDI(电子数据交换)是连接原始电子商务和现代电子商务的手段。
(3)电子商务的基本特征。普遍性 便利性 整体性 安全性 协调性
电子商务分五个方面,即电子商情广告、电子选购与交易、电子交易凭证的交换、电子支付与结算,以及网上售后服务等。
参与电子商务的实体有4类:客户(个人消费者或集团购买)、商户(包括销售商、制造商和储运商)、银行(包括发行和收单行)及认证中心。

电子商务系统的结构

网络基础设施(远程通信网、有线电视网、无线电通信网和Internet)、多媒体内容和网络出版的基础设施(HTML、Java、全球Web)、报文和信息传播的基础设施(FAX、E-mail、EDI、HTTP)、商业服务的基础设施(目录服务、安全、认证、电子付款)
电子商务应用(在线营销与广告、在线购物、采购和购买、远程金融服务、供应链管理、其他应用)

电子商务的类型

电子商务发展的支撑保障体系

法标安信在现技服运
法律法规体系 标准规范体系 安全认证体系 信用体系 在线支付体系 现代物流体系 技术装备体系 服务体系 运行监控体系

企业信息化

企业信息化发展过程应遵循如下原则:
效益原则
一把手原则
中长期与短期建设相结合的原则
规范化和标准化原则
以人为本的原则

两网一站四库十二金工程

政务内网、政务外网
中国政府网
资源地理基础信息库、法人单位基础信息库、人口基础信息库、宏观经济信息库
金盾、金审、金财、金融监管、金保、金农、金水、金质、金关、金税、宏观晋级管理、办公业务资源

信息系统的生命周期

信息系统生命周期包括:
立项(系统规划)、开发(系统分析、系统设计、系统实施、系统验收)、运维和消亡4个阶段

信息系统开发方法

结构化方法 原型化方法 面向对象方法 面向服务的方法

IT服务管理

ITSM是一种IT管理,与传统的IT管理不同,它是一种以服务为中心的IT管理。
实施ITSM的根本目标有3个:以客户为中心提供IT服务,提供高质量、低成本的服务,提供的服务是可准确计价
ITSM的主要任务是管理客户和用户的IT需求。
技术管理中的服务级别管理(SLA,主要指服务质量) 事件管理 问题管理

信息系统监理的内容

四控三管一协调
质量控制\进度控制\投资控制\变更控制
安全管理\合同管理\信息管理
项目组织协调

IT服务构成 ITSS

四要素:P人员、P过程、技术、R资源

软件需求分析与定义

需求必须可以被验证。
需求分析的目标:检测和解决需求之间的冲突、发现系统的边界、详细描述出系统需求

软件设计、测试与维护

软件质量保证及质量评价

软件配置管理(有可能会出案例题)

(1)软件配置管理活动包括:软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。
(2)配置库的权限设置。
配置管理员负责为项目成员分配权限
Read 可以读取文件内容,但不能对文件进行变更
Check 可使用[check in]等命令,对文件内容进行变更
Add 可使用[文件追加]、[文件重命名]、[删除]等命令
Destroy 有权进行文件不可逆毁坏、清除、[rollback]等命令
(3)受控库的权限设置(图表)
(4)产品库的权限设置(图表)

软件过程管理

包括如下五个方面:项目启动与范围定义、项目规划、项目实施、项目监控与评审、项目收尾与关闭。

软件开发工具

软件开发工具是用于辅助软件生命周期过程的基于计算机的工具。例如:软件需求工具包括需求建模工具和需求追踪工具

软件复用

软件复用的主要思想是:将软件看成是由不同功能的“组件”组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具

面向对象系统分析与设计

对象的三个基本要素分别为:对象标识、对象状态、对象行为

统一建模语言与可视化建模UML
面向对象系统分析

即运用面向对象方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。

面向对象系统设计

基于系统分析得出的问题域模型,用面向对象的方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。

应用集成技术

数据库与数据仓库技术
(1)数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
(2)数据仓库系统结构

Web Service技术

适用于Web Service的情况:跨越防火墙、应用程序集成、B2B集成、软件重用
不适用于Web Service的情况:单机应用程序,局域网上的同构应用程序

软件中间件

①数据库访问中间件,典型技术Windows平台的ODBC和Java平台的JDBC。
②远程过程调用中间件(RPC),从效果上来看和执行本地调用相同。
③面向消息中间件(MOM),进行平台无关的数据传递,典型如IBM的MQSeries。
④分布式对象中间件,典型OMG的CORBA、Java的RMI/EJB、Microsoft的DCOM等。
⑤事务中间件,完成事务管理与协调、负载平衡、失效恢复等任务,典型IBM/BEA的Tuxedo、支持EJB的JavaEE应用服务器等。

计算机网络技术

OSI七层协议、TCP/IP结构
Internet协议的主要协议及其层次关系
网络分类、组网和接入技术
(1)根据计算机网络覆盖的地理范围分类,可以分为:局域网、城域网、广域网。
(2)根据链路传输控制技术分类,可以分为:以太网、令牌网、FDDI网、ATM网、帧中继网和ISDN网。其中,总线争用技术是以太网的标识,
ATM称为异步传输模式,ISDN是综合业务数据网。
(3)根据网络拓扑结构分类,分为总线型、星型、树型、环型、网状。
(4)网络中的数据交换可以分为:电路交换、分组交换、ATM交换、全光交换和标记交换。
(5)网络接入技术分为光纤接入、同轴电缆接入、铜线接入、无线接入。
(6)无线网络是指以无线电波作为信息的传输媒介,根据应用领域可分为: 无线个域网、无线局域网、无线城域网、蜂窝移动通信网。
综合布线和机房工程
(2)机房计算机设备宜采用分区布置,主要包括:主机区、存储器区、数据输入区、数据输出区、通信区和监控调度区等。
(3)主机房内通道与设备间的距离应符合以下规定:
1)两相对机柜正面之间的距离不应小于1.5m;
2)机柜侧面(或不用面)距墙不应小于0.5m,当需要维修测试时,机柜距墙不应小于1.2m;
3)走道净宽不应小于1.2m。
(4)机房照明一般采用无眩光多隔栅灯;主机房照度不小于300LUX,辅助间不小于200LUX,故障照明不小于60LUX,机房照明应分别有开关控制,
符合相关电气设计施工规范
(5)机房供电系统应采用双回路供电,并选择三相五线制供电。
(6)机房应采用四种接地方式:
1)交流工作接地,接地电阻不应大于4Ω;
2)安全工作接地,接地电阻不应大于4Ω;
3)直流工作接地,接地电阻应按计算机系统具体要求确定;
4)防雷接地,应按现行国家标准《建筑防雷设计规范》执行。
(7)开机时计算机机房的温、湿度要求–记下数字
(8)停机时计算机机房的温、湿度要求–记下数字
(9)RJ45接头需求量的计算公式:
RJ45的需求量:m = n×4 + n×4×15%
—m为RJ45的总需求量。
—n为信息点的总量。
—n×4×15%为留有的富余量。

(10)信息模块的需求量计算公式:
信息模块的需求量:m = n + n×3%
—m为信息模块的总需求量。
—n为信息点的总量。
—n×3%为富余量。

网络安全及其防范技术

(1)信息安全的基本要素有:机密性、完整性、可用性、可控性、可审查性。为了达成上述目标,需要做的工作有:制定安全策略、用户验证、加密、访问控制、审计和管理。
(2)典型的网络攻击步骤一般为:信息收集、试探寻找突破口、实施攻击、消防记录、保留访问权限。
(3)信息安全的5个等级分别为:用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级、访问验证保护级

信息安全管理

1.信息安全管理体系(ISMS):是整个管理体系的一部分。
它是基于业务风险的方法,来建立、实施、运行、监视、评审、保持和改进信息安全的结构、方针政策、规划活动、职责、实践、程序、过程和资源)。
2.信息安全的基本属性
完整性、可用性、保密性、可控性、可靠性
3.信息安全管理活动主要有:定义信息安全策略、定义信息安全管理体系的范围、进行信息安全风险评估、确定管理目标和选择管理措施、准备信息安全适用性申明。
4.信息安全等级保护是我国在信息化推进进程中实施的对信息系统安全保护的基本制度、方法和策略。
5.等级保护的主要环节:定级、备案、安全建设整改、等级评测和安全检查。
6. 对称加密技术
加密与解密使用相同的密钥。因此,对称加密密钥较短,使用简单快捷。常用的对称加密算法有:DES(数据加密标准)、3DES、IDEA(国际数据加密算法)、AES等
7、非对称加密技术
加密解密使用不同的密钥。
非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如使用甲的公钥加密就必须用甲的私钥解密。
非对称加密算法加密速度慢、不适合加密大量数据。常用的非对称加密算法有:RSA、Elgamal、ECC等。其中RSA可以同时实现数字签名和数据加密。
8、Hash函数
用Hash函数对报文的一部分进行Hash运算,得到Hash码,即报文摘要。
发送方将这个报文摘要连同原报文一同传送给接收方,接收方重新进行Hash运算来与接收到的这个Hash码进行比较,以此来认证报文是否被篡改过。
这个过程利用了Hash函数的特点:若一段明文哪怕只更改了一个字母,随后的Hash码都将产生不同的值。
9、数字签名
发送方A用自己的私钥进行数字签名,接收方B用发送方A的公钥进行验证。这是因为A的私钥只有A才会拥有,发送者无法抵赖自己的签名。
数字签名的特点:
• 签名者时候不能抵赖自己的签名。
• 任何其他人不能伪造签名。
10、认证
认证与加密的区别:
加密用于保证数据的保密性,阻止被动攻击;
认证用于确保发送/接收者的真实性与数据的完整性,阻止主动攻击,且认证是安全保护的第一道设防。
认证与数字签名的区别:
数字签名允许第三者验证,有不可抵赖性,而认证不具备。
11. 信息系统安全保护等级的划分
等级 安全功能 保障/有效性 国家管理程度 对象
一级 用户自主保护 基本保障 自主 中小企业
二级 系统审计保护 计划跟踪 指导 政府机构业务用的一般系统,企事业单位内部生产管理和控制的信息系统
三级 安全标记保护 良好定义 监督 基础信息网络、政府、重点工程、大型国企
四级 结构化保护 持续改进 强制 国家政府机关的重要部门的信息系统重要子系统
五级 访问验证保护 严格监控 专控 国家重要核心部门的专用信息系统
36.新一代信息技术
大数据
(1)大数据5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)、Veracity(真实性)。
(2)大数据需经过5个环节:①数据准备;②存储管理;③计算处理;④数据分析;⑤知识展现。
大数据关键技术。
①HDFS:能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
②HBase:不同于一般的关系数据库,是非结构化数据存储的数据库。
③MapReduce:一种编程模型,主要思想:概念“Map(映射)”和“Reduce(归约)”。
④Chukwa:用于监控大型分布式系统的数据收集系统
云计算技术架构4层:设施层、资源层、资源控制层、服务层
IaaS(基础设施级服务) PaaS(平台级服务) SaaS(软件级服务)

物联网

  1. 物联网架构。
    ①感知层:负责信息采集和物物之间的信息传输。
    ②网络层:是物联网三层中标准化程度最高、产业化能力最强、最成熟的部分。
    ③应用层:实现应用
  2. 物联网关键技术。
    感知层作为物联网架构的基础层面,主要技术包括:产品和传感器(条码、RFID、传感器等)自动化识别技术、无线传输技术(WLAN、Bluetooth、ZigBee、UWB)、自组织组网技术、中间件技术
  3. 移动互联网
    移动互联网=移动通信网络+互联网内容和应用,它不仅是互联网的延伸,而且是互联网的发展方向。
    (2)移动互联网不仅具有传统互联网应用的简单复制和移植,还具有如下新特征:
    接入移动性
    时间碎片性
    生活相关性
    终端多样性
    移动互联网关键技术
    ①架构技术SOA:Service Oriented Architect,面向服务的架构,不涉及底层编程接口和通信模型,Web Service是目前实现SOA的主要技术。
    ②页面展示技术Web2.0:严格来说不是一种技术,而是互联网思维模式。
    ③页面展示技术HTML5:在原有HTML基础上扩展了API,最大优势是可以在网页上直接调试和修改。
    ④主流开发平台Android:特点是入门容易,因为Android的中间层多以Java实现,指令相对减少、开发相对简单, 而且开发社群活跃,开发资源丰富。
    ⑤主流开发平台iOS:一个非开源的操作系统,开发人员必须加入苹果开发者计划,需要付款以获得苹果的批准,开发语言是Objective-C、 C和C++,开发难度大于Android。
    ⑥主流开发平台Windows Phone:微软的一款手机操作系统,开发技术有C、C++、C#等

企业首席信息官及其职责

【基础知识点】
1.有关概念
CFO:首席财务官 CTO:首席技术官
COO:首席运营官 CIO:首席信息官
2.CIO的主要职责
从CIO的职责角度来看,需要CIO是三个专家,即企业业务专家、IT专家和管理专家。系统分析师是CIO的最佳人选,下面简单介绍CIO的主要职责:
(1)提供信息,帮助企业决策;
(2)帮助企业制定中长期发展战略
(3)有效管理IT部门
(4)制定信息系统发展规划
(5)建立积极的IT文化

真题知识点:

–成本管理过程包括:成本估算、成本预算与成本控制。其中成本预算的含义是将总的成本估算分配到各项活动和工作包上,来建立一个成本的基线。而成本估算是对完成项目活动所需资金进行近似的估算。
–用于管理信息系统规划的方法很多,主要是关键成功因素法(CSF)、战略目标集转化法(Strategy Set Transformation, SST)和企业系统规划法(Business System Planning, BSP)。
其它还有企业信息分析与集成技术(BIAIT)、产出/方法分析(E/MA)、投资回收法(ROI)、征费法、零线预算法、阶石法等。
用得最多的是前面三种。
1.关键成功因素法(CSF)
在现行系统中,总存在着多个变量影响系统目标的实现,其中若干个因素是关键的和主要的(即关键成功因素)。通过对关键成功因素的识别,找出实现目标所需的关键信息集合,从而确定系统开发的优先次序。
关键成功因素法能抓住主要矛盾,使目标的识别突出重点。由于经理们比较熟悉这种方法,使用这种方法所确定的目标,因而经理们乐于努力去实现。该方法最有利于确定企业的管理目标。
2.战略目标集转化法(Business System Planning, BSP)
把整个战略目标看成是一个“信息集合”,由使命、目标、战略等组成,管理信息系统的规划过程即是把组织的战略目标转变成为管理信息系统的战略目标的过程。
3.企业系统规划法(Business System Planning, BSP)
信息支持企业运行。通过自上而下地识别系统目标、企业过程和数据,然后对数据进行分析,自下而上地设计信息系统。
该管理信息系统支持企业目标的实现,表达所有管理层次的要求,向企业提供一致性信息,对组织机构的变动具有适应性。

–一般说来,信息化需求包含个层次,即战略需求、运作需求和技术需求。
一是战略需求。组织信息化的目标是提升组织的竞争能力、为组织的可持续发展提供一个支持环境。从某种意义上来说,信息化对组织不仅仅是服务的手段和实现现有战略的辅助工具;信息化可以把组织战略提升到一个新的水平,为组织带来新的发展契机。
特别是对于企业,信息化战略是企业竞争的基础。
二是运作需求。组织信息化的运作需求是组织信息化需求非常重要且关键的一环,它包含三方面的内容:一是实现信息化战略目标的需要;二是运作策略的需要。三是人才培养的需要。
三是技术需求。由于系统开发时间过长等问题在信息技术层面上对系统的完善、升级、集成和整合提出了需求。也有的组织,原来基本上没有大型的信息系统项目,有的也只是一些单机应用,这样的组织的信息化需求,一般是从头开发新的系统。
–企业应用集成通过采用多种集成模式,构建统一标准的基础平台,将具有不同功能和目的而又独立运行的企业信息系统联合起来。
目前市场上主流的集成模式有3种:面向信息的集成、面向过程的集成和面向服务的集成。
其中面向过程的集成模式强调处理不同应用系统之间的交互逻辑,与核心业务逻辑相分离,并通过不同应用系统之间的协作共同完成某项业务功能。
–按照实际应用领域,企业门户可以划分为以下四类:
①企业网站——功能简单,注重信息的单向传送,忽视用户与企业间、用户相互之间的信息互动。面向特定的使用人群,为企业服务,
可以被看作是EP发展的雏形。
②企业信息门户——在Internet环境下,把各种应用系统、数据资源和互联网资源统一集成到EP之下,根据每个用户使用特点和角色的不同,形成个性化的应用界面,并通过对事件和消息的处理传输把用户有机地联系在一起。
③企业知识门户——是企业员工日常工作所涉及相关主题内容的“总店”。企业员工可以通过EKP方便地了解当天的最新消息、工作内容、完成这些工作所需的知识等。可以实时地与工作团队中的其他成员取得联系,寻找到能够提供帮助的专家或者快速地连接到相关的门户。
④企业应用门户——是对企业业务流程的集成。它以业务流程和企业应用为核心,把业务流程中功能不同的应用模块通过门户技术集成在一起。
可以把EAP看成是企业信息系统的集成界面。企业员工和合作伙伴可以通过EAP访问相应的应用系统,实现移动办公、进行网上交易等。
–客户关系管理(CRM)系统将市场营销的科学管理理念通过信息技术的手段集成在软件上,能够帮助企业构建良好的客户关系。
在客户管理系统中,销售自动化是其中最为基本的模块,营销自动化作为销售自动化的补充,包括营销计划的编制和执行、计划结果分析等功能。
客户服务与支持是CRM系统的重要功能。客户服务与支持的主要手段有两种:呼叫中心和互联网。CRM系统能够与ERP系统在财务、制造、库存等环节进行连接,两者之间虽然关系比较独立,但由于两者之间具有一定的关系,因此会形成一定的闭环反馈结构。
CRM系统的主要模块包括销售自动化、营销自动化、客户服务与支持、商业智能。

中间件(案例题)

中间件

是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于操作系统之上,管理计算资源和网络通信,实现应用之间的互操作

中间件的基本功能包括以下6个方面:

(1)负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。
(2)提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。
(3)提供一个多层架构的应用开发和运行的平台,以及一个应用开发框架,支持模块化的应用开发。
(4)屏蔽硬件、操作系统、网络和数据库的差异。
(5)提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性。
(6)提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。

中间件的类型

按照中间件在分布式系统中承担的职责不同,可以划分以下几类中间件产品
(1)通信处理(消息)中间件
在分布式系统中,人们要建网和制定出通信协议,以保证系统能在不同平台之间通信,
实现分布式系统中可靠的、高效的、实时的跨平台数据传输,这类中间件称为消息中间件,也是市面上销售额最大的中间件产品。
(2)事务处理(交易)中间件
要使大量事务在多台应用服务器上能实时并发运行,并进行负载平衡的调度,实现与昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求中间件系统具有监视和调度整个系统的功能
(3)数据存取管理中间件。
在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便
(4)Web 服务器中间件
(5)安全中间件
一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密、认证等),
必须用国产产品
(6)跨平台和架构的中间件
当前开发大型应用软件通常采用基于架构和构件技术,在分布式系统中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件,由此产生了架构中间件。
功能最强的是 CORBA,可以跨任意平台,但是过于庞大;JavaBeans 较灵活简单,很适合于做浏览器,但运行效率有待改善;COM+模型主要适合 Windows 平台,在桌面系统已广泛使用。由于国内新建系统多基于 UNIX(包括 Linux)和 Windows,
因此,针对这两个平台建立相应的中间件市场相对要大得多
(7)专用平台中间件。为特定应用领域设计领域参考模式,建立相应架构,配置相应的构件库和中间件,为应用服务器开发和运行
特定领域的关键任务(如电子商务、网站等)。
(8)网络中间件。它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等。
4. 公共对象请求代理CORBA
CORBA包括:一套调用接口、对象请求代理(ORB)和一套对象适配器。
CORBA构件模型中,对象适配器的作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调
5. 面向消息中间件MOM
(1)通信程序可在不同的时间运行
(2)对应用程序的结构没有约束
(3)程序与网络复杂性相隔离
6. 事务处理监控器TPM(交易型中间件)
(1)进程管理
(2)事务管理
(3)通信管理
7. 中间件的获得
(1)从现有构件中获得符合要求的构件,直接使用或做适应性修改,得到可复用的构件;
(2)通过遗留工程(Legacy Engineering),将具有潜在复用价值的软件提取出来,得到可复用的构件;
(3)从市场上购买现成的商业构件,即COTS (Commercial Off-The-Shell)构件;
(4)开发新的符合要求的构件
8. 中间件自底向上划分
底层中间件:JAVA的JVM虚拟机,.Net的CLR公共语言运行库,自适应的通信环境ACE
通用性中间件:平台,面向消息中间件MOM,对象请求代理(ORB)
远程过程调用RPC:远程过程调用中的远程既可以指(不同的计算机),也可以指同一台计算机上的(不同的进程)
远程方法调用RMI:RPC的java版本
集成型中间件:workFLOW,EAI

应用服务器

–目前,应用服务器已经成为电子商务应用中一种非常关键的中间件技术。通过它能将一个企业的商务活动安全有效地实施到 Internet 上,实现电子商务。它并非一种传统意义上的软件,而是一个可以提供通过 Internet 来实施电子商务的平台。在分布式、多层结构及基于构件和服务器端程序设计的企业级应用开发中,它提供的是一个开发、部署、运行和管理、维护的平台。它可以提供软件“集群” 的功能,因而可以让多个不同的、异构服务器协同工作、相互备份,以满足企业级应用所需要的可用性、高性能、可靠性和可伸缩性等。
故而,从某种意义上说,应用服务器提供了一个“企业级应用的操作系统”。实现 J2EE规范的应用服务器称为 J2EE 应用服务器
–J2EE 是针对 Web Service、业务对象、数据访问和消息报传送的一组规范。这组应用编程接口确定了 Web 应用与驻留它们的服务器之间的通信方式。
J2EE 注重两件事,一是建立标准,使 Web 应用的部署与服务器无关;二是使服务器能控制构件的生命周期和其他资源,以便能够处理扩展、并发、事务处理管理和安全性问题
–J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。
事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,
第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想。它使得重用业务逻辑和界面逻辑非常困难。
现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层

–J2EE 规范定义了以下几种构件:应用客户端构件、EJB构件、Servlets 和 JSP、Applet 构件。具体来说J2EE 核心组成有容器、组件、服务。
(结构图需要记一下)

–J2EE 采用的是多层分布式应用模型,意味着应用逻辑将根据功能分成几个部分, 用户可以在相同或不同的服务器上安装不同应用构件组成的J2EE应用
(1)客户端(表示层)
位于最外层,离用户最近。用于显示数据和接受用户输入的数据,为用户提供一种交互操作的界面
(2)中间层(业务逻辑层或者领域层)。J2EE中间层的内容极为丰富,也是J2EE架构的核心,绝大多数的J2EE应用程序都会将业务逻辑部署在中间层,EJB是J2EE中间层中最重要也是最有特点的构件之一。
EJB可以从持久化的存储设备中获取数据,对它进行处理(如果需要),并将其发送到客户端应用程序
(3)数据访问层(持久层或者企业信息系统层)

多层架构的优点:

1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、扩展性强。不同层负责不同的层面
7、安全性高。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。
8、项目结构更清楚,分工更明确,有利于后期的维护和升级

EJB

EJB 共有三种类型:EntityBean(实体 Bean)、Session Bean(会话 Bean)和 Message Driven Bean(消息驱动 Bean)
(1)实体 Bean。实体 Bean 表示数据库中的数据及作用于数据的方法。用于实现O/R映射,负责将数据库中的表记录映射为内存中的实体对象
(2)会话 Bean。会话 Bean 代表与客户间的短暂对话,用于实现业务逻辑,它可以是有状态的,也可以是无状态的
有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),
bean的生命期也告结束
无状态会话bean :bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。由于没有特定的用户,那么也就不能保持某一用户的状态,所以叫无状态bean.
概括来说,有状态会话Bean会保存客户端的状态,而无状态Bean不会专门保存客户端的状态
(3)消息驱动Bean。这是EJB3.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。
消息驱动Bean实际上是一个异步的无状态会话Bean,客户端调用消息驱动Bean后无需等待,立刻返回,消息驱动Bean将异步处理客户请求

.NET(结构图需要记一下)

.NET是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。
在开发技术方面,.NET 提供了全新的数据库访问技术 ADO.NET,以及网络应用开发技术 ASP.NET 和 Windows 编程技术 WinForms;在开发语言方面,
.NET 提供了 VB、VC++、C#等多种语言支持;而 VisualStudio.NET 则是全面支持.NET 的开发工具
1.通用语言运行时
通用语言运行时(Common Language Runtime,CLR)则处于这个框架的最底层,是这个框架的基础。它为多种语言提供了一种统一的运行环境,基于通用语言运行时开发的代码称为受控代码
2.基础类库
基础类库包括了从输入输出到数据访问等各方面,提供了一个统一的面向对象的、层次化的、可扩展的编程接口
3.ADO.NET
ADO.NET 提供了一组用来连接到数据库、运行命令、返回记录集的类库,与从前的 ADO(ActiveX Data Object)相比,Connection 和 Command 对象很类似,而 ADO.NET 的革新主要体现在如下几个方面
首先,ADO.NET提供了对XML的强大支持,这也是ADO.NET的一个主要设计目标
其次,ADO.NET 引入了 DataSet 的概念,这是一个驻于内存的数据缓冲区,它提供了数据的关系型视图
另外,ADO.NET 中还引入了一些新的对象,例如 DataReader 可以用来高效率地读取数据,产生一个只读的记录集等
4.ASP.NET
ASP.NET 是 Microsoft.NET中的网络编程结构,它使得建造、运行和发布网络应用非常方便和高效。
5、WinForm
它是.Net开发平台中对Windows Form的一种称谓。.Net 为开发WinForm的应用程序提供了丰富的Class Library(类库)

企业应用集成

EAI(Enterprise ApplicationIntegration,企业应用集成)可以通过中间件技术来连接企业级各种应用,使异构应用系统之间能够相互“交流”与“协作”
首先,中间件产品对各种硬件平台、操作系统、网络数据库产品及客户端实现了兼容和开放。
其次,中间件保持了平台的透明性,使开发者不必考虑操作系统的问题。
第三,中间件实现了对交易的一致性和完整性的保护,提高了系统的可靠性。
第四,中间件产品可以缩短开发周期 50%~75%,从而大大地降低了开发成本,提高了工作效率
根据EAI 集成的深度来划分可以分为应用集成、业务过程集成、数据集成
1.应用集成
应用集成主要是指通过应用接口对应用系统实现集成。应用接口(API)是指应用系统以及客户自建系统为方便和外部应用系统连接而对外开放的软件接口
2.业务过程集成
业务集成是将不同单位部门的不同业务流程利用应用集成技术集成在一起,实现跨部门、跨系统、跨企业的流程共用
3、数据应用集成
数据集成是企业实施EAI的基础。 要完成应用集成和业务过程集成,必须首先解决数据和数据库的集成问题.数据集成的目的是将不同的数据库集成起来,
提供一种单一的虚拟数据库,这样就不会出现与核心业务不一致的多个数据库

Java企业应用框架

1、MVC
MVC模式有Model,View,Controller三部分构成。
Model:模型。主要用来负责业务逻辑的处理,数据的保持。Model是MVC模式的核心部分,它也是一个应用需要实现的最主要的部分:进行业务逻辑的处理。
View:视图。负责数据的输出,画面的表示。
Controller:控制器。负责接收从视图发送过来的数据,同时控制Model与View部分。它的主要任务是控制Model与View,所以被称为控制器。
2、Struts 框架
Struts 是一个基于 SUN J2EE平台的 MVC 框架,主要是采用 Servlet 和 JSP 技术来实现的。在 Struts 框架中,模型由实现业务逻辑的 JavaBean 或 EJB 构件构成,
控制器由ActionServlet和 Action 来实现,视图由一组 JSP 文件构成
Struts 将业务数据、页面显示、动作处理进行分离,这有利于对各部分的维护
3、Spring 框架
它是为了解决企业应用开发的复杂性而创建的
Spring的核心是控制反转(IoC)和面向切面(AOP)
Spring的优点:
1、 方便解耦,简化开发 (高内聚低耦合)
Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理,spring工厂是用于生成bean。
2、AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
3、声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程
4、方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序
5、方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
6、 降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低
4、Hibernate框架
Hibernate特点:
①Hibernate通过修改一个“持久化”对象的属性,从而修改数据库表中对应的记录数据
②提供线程和进程两个级别的缓存提升应用程序性能
③有丰富的映射方式将Java对象之间的关系(POJO)转换为数据库表之间的关系
④屏蔽不同数据库实现之间的差异。在Hibernate中只需通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句
⑤ 非侵入式。Hibernate不要求持久化类实现任何接口或继承任何类,POJO即可。
5、Mybaits特点
①简单易学。没有任何第三方依赖,最简单只需要2个jar包+几个sql映射文件,通过文档和源代码,即可比较完全的掌握它的设计思路和实现
②灵活。不会对应用程序或者数据库的现有设计强加任何影响。Sql写在xml里面,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架
可以实现的所有功能。
③解除sql与程序代码的耦合。通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。
④提供映射标签,支持对象与数据库的ORM字段关系映射
⑤提供对象关系映射标签,支持对象关系组建维护
⑥提供xml标签,支持编写动态sql
两者区别:
①开发方面:在项目开发过程当中,就速度而言,hibernate开发中,sql语句已经被封装,直接可以使用,加快系统开发;Mybatis 属于半自动化,
sql需要手工完成,稍微繁琐;但是,凡事都不是绝对的,如果对于庞大复杂的系统项目来说,发杂语句较多,选择hibernate 就不是一个好方案。
②sql优化方面:Hibernate 自动生成sql,有些语句较为繁琐,会多消耗一些性能;Mybatis 手动编写sql,可以避免不需要的查询,提高系统性能;
③对象管理比对:Hibernate 是完整的对象-关系映射的框架,开发工程中,无需过多关注底层实现,只要去管理对象即可;Mybatis 需要自行管理 映射关系;
④ 缓存方面:Hibernate的二级缓存配置在SessionFactory生成的配置文件中进行详细配置,然后再在具体的表-对象映射中配置是那种缓存。
MyBatis的二级缓存配置都是在每个具体的表-对象映射中进行详细配置,这样针对不同的表可以自定义不同的缓存机制。
并且Mybatis可以在命名空间中共享相同的缓存配置和实例,通过Cache-ref来实现。

真题知识点:

–软件中间件(图1-27)
(1)中间件解决了分布系统的异构问题,具有标准的程序接口和协议。
(2)通常将中间件分为:
①数据库访问中间件,典型技术Windows平台的ODBC和Java平台的JDBC。
②远程过程调用中间件(RPC),从效果上来看和执行本地调用相同。
③面向消息中间件(MOM),进行平台无关的数据传递,典型如IBM的MQSeries。
④分布式对象中间件,典型OMG的CORBA、Java的RMI/EJB、Microsoft的DCOM等。
⑤事务中间件,完成事务管理与协调、负载平衡、失效恢复等任务,典型IBM/BEA的Tuxedo、支持EJB的JavaEE应用服务器等。
–以下说法错误的是()
COM接口可通过(单)接口继承从其他COM接口中派生。
COM支持系统注册器,它类似CORBA存储器。
COM的接口继承与其支持的多态无关。
即使公布了,COM接口和它的规范也可以以某种特定的形式改变。
:本体考察的是和COM相关连的内容的理解。一旦公布,COM接口和其他的规范不允许以任何形式改变,既解决了语法问题,也解决了弱基类问题。
–CORBA构件模型中,(可移植对象适配器POA)的作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,
(伺服对象Servant)是最终完成客户请求的服务对象实现。

系统安全架构设计

信息安全的威胁

网络与信息安全风险

人为蓄意破坏:
被动型攻击:网络监听、非法登录、信息截取
主动型攻击:数据篡改、假冒身份、拒绝服务、重放攻击、散播病毒、主观抵赖
人为无意识行为:编程错误、操作错误、无意泄密
灾难性攻击:水灾、火灾、地震、雷击、战争
系统故障:硬件故障、软件故障、链路故障、供电故障

网络安全体系架构设计

OSI参考模型
安全服务:鉴别服务、访问控制、数据完整性、数据机密性、抗抵赖
安全机制:加密、数字签名、访问控制、数据完整性、鉴别交换、业务流填充、路由控制、公证
网络安全体系框架:
鉴别框架:防止其他实体占用和独立操作被鉴别实体的身份
访问控制框架:决定使用那些资源,在什么地方适合阻止未授权访问的过程
机密性框架:确保信息仅仅是对被授权者可用
完整性框架:通过组织威胁和探测威胁,保护可能遭到不同方式危害数据完整性和数据相关属性完整性
抗抵赖框架:包括证据的生成、验证、记录,以及在解决纠纷时随即进行的证据恢复和再次验证

网络安全控制技术

1.防火墙技术的三个发展阶段:
(1)包过滤
(2)状态检测
(3)应用网关
2.入侵检测与防御:
(1) 主机型入侵检测系统
(2) 网络型入侵检测系统

数据库系统的安全设计

1.数据库完整性设计原则
确定其实现的系统层次和方式,并提前考虑对系统性能的影响
实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,尽量应用
要慎用触发器
在需求分析阶段就必须制定完整性约束的命名规范
要根据业务规则对数据库完整性进行细致的测试
要有专职的数据库设计小组
应采用合适的CASE工具来降低数据库设计各个阶段的工作量
2.数据库完整性的作用
1)能够防止合法用户使用数据库时向数据库中添加不合语义的数据。
2)实现业务规则,易于定义,易于理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率,更容易实现数据库的完整性。
3)能够同时兼顾 数据库的完整性和系统效能。
4)有助于尽早发现应用软件的错误。
5)数据库完整性约束6类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束。

RADIUS 远程用户拨号认证系统

RADIUS软件架构分为三个层面:协议逻辑层、业务逻辑层和数据逻辑层。
1.协议逻辑层主要实现RFC框架中的内容,处理网络通信协议的建立、通信和停止方面的工作。
2.业务逻辑层的设计是RADIUS软件架构设计的核心部分,协议处理进程主要对转发引擎发来的包进行初步分析,并根据包的内容进一步分发到不同的业务逻辑处理进程。
3.数据逻辑层由数据库代理池统一连接数据库

系统安全性分析与设计

–根据网络的应用现状情况和结构,可以将安全防范体系的层次划分为物理层安全、系统层安全、网络层安全、应用层安全和安全管理
(1)物理环境的安全性。物理层的安全包括通信线路、物理设备和机房的安全等。物理层的安全主要体现在通信线路的可靠性(线路备份、网管软件和传输介质)、软硬件设备的安全性(替换设备、拆卸设备、增加设备)、设备的备份、防灾害能力、防干扰能力、设备的运行环境(温度、湿度、烟尘)和不间断电源保障等。
(2)操作系统的安全性。系统层的安全问题来自计算机网络内使用的操作系统的安全,例如,Windows Server和UNIX等。主要表现在3个方面,一是由操作系统本身的缺陷带来的不安全因素,主要包括身份认证、访问控制和系统漏洞等;二是对操作系统的安全配置问题;三是病毒对操作系统的威胁
(3)网络的安全性。网络层的安全问题主要体现在计算机网络方面,包括网络层身份认证、网络资源的访问控制、数据传输的保密与完整性、远程接入的安全、域名系统的安全、路由系统的安全、入侵检测的手段和网络设施防病毒等
(4)应用的安全性。应用层的安全问题主要由提供服务所采用的应用软件和数据的安全性产生,包括Web服务、电子邮件系统和DNS等。此外,还包括病毒对系统的威胁
(5)管理的安全性。安全管理包括安全技术和设备的管理、安全管理制度、部门与人员的组织规则等。

数据加密技术

1.对称加密算法
对称加密算法也称为私钥加密算法,是指加密密钥和解密密钥相同,或者虽然不同,但从其中的任意一个可以很容易地推导出另一个常见的对称加密算法包括瑞士的国际数据加密算法(International Data Encryption Algorithm, IDEA)和美国的数据加密标准(Date Encryption Standard, DES)DES是一种迭代的分组密码,明文和密文都是64位,使用一个56位的密钥以及附加的8位奇偶校验位。
攻击DES的主要技术是穷举法,由于DES的密钥长度较短,为了提高安全性,就出现了使用112位密钥对数据进行三次加密的算法(3DES),即用两个56位的密钥K1和K2
IDEA是在DES的基础上发展起来的,类似于3DES。IDEA的明文和密文都是64位,密钥长度为128位
RC5是一种对称密码算法,它面向字结构,便于软件和硬件的实现,适用于不同字长的微处理器
2.非对称加密算法
非对称加密算法也称为公钥加密算法,是指加密密钥和解密密钥完全不同,其中一个为公钥,另一个为私钥,并且不可能从任何一个推导出另一个。
它的优点在于可以适应开放性的使用环境,可以实现数字签名与验证
最常见的非对称加密算法是RSA,该算法的名字以发明者的名字命名:Ron Rivest, AdiShamir和Leonard Adleman。RSA算法的密钥长度为512位

认证技术

认证(authentication)又称为鉴别或确认,它是证实某事物是否名符其实或是否有效的一个过程。认证和加密的区别在于,加密用于确保数据的保密性,阻止对手的被动攻击,例如,截取和窃听等;而认证用于确保数据发送者和接收者的真实性和报文的完整性,阻止对手的主动攻击,例如,冒充、篡改和重放等。认证往往是许多应用系统中安全保护的第一道设防,因而极为重要
1.数字签名
数字签名是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。
数字签名的主要功能是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生
2.杂凑算法
算法是主要的数字签名算法,它是利用散列(Hash)函数(哈希函数、杂凑函数)进行数据的加密
(1)消息摘要算法。消息摘要算法(Message Digest algorithm 5, MD5)并产生一个128位的消息摘要
(2)安全散列算法。安全散列算法(Secure Hash Algorithm, SHA)能计算出一个数字信息所对应的长度固定的字符串(消息摘要),它对长度不超过264位的消息产生160位的消息摘要
3.数字证书
数字证书又称为数字标识,是由认证中心(Certificate Authority, CA)签发的对用户的公钥的认证。数字证书的内容应包括CA的信息、用户信息、用户公钥、CA签发时间和有效期等
4.身份认证
用户的身份认证是许多应用系统的第一道防线,其目的在于识别用户的合法性,从而阻止非法用户访问系统
(1)口令认证。(2)动态口令认证。 (3)生物特征识别。

密钥管理体制

密钥管理体制有三种,分别是适用于封闭网、以传统的密钥管理中心为代表的KMI(Key Management Infrastructure,密钥管理基础设施)机制,
适用于开放网的PKI(Public Key Infrastructure,公钥基础设施)机制和适用于规模化专用网的SPK(Seeded public-Key,种子化公钥)机制

通信与网络安全技术

1、防火墙(firewall)
防火墙一般具有以下几个功能:
(1)访问控制功能。这是防火墙最基本也是最重要的功能,通过禁止或允许特定用户访问特定的资源,保护内部网络的资源和数据
(2)内容控制功能。根据数据内容进行控制,例如,防火墙可以从电子邮件中过滤掉垃圾邮件
(3)全面的日志功能。防火墙需要完整地记录网络访问情况,包括内、外网进出的访问,以检查网络访问情况。一旦网络发生了入侵或者遭到了破坏,就可以对日志进行审计和查询。
(4)集中管理功能。在一个安全体系中,防火墙可能不止一台,因此,防火墙应该是易于集中管理的
(5)自身的安全和可用性。防火墙要保证自身的安全,不被非法侵入,保证正常的工作
另外,防火墙还应带有如下的附加功能:
(1)流量控制。针对不同的用户限制不同的流量,可以合理使用带宽资源。
(2)网络地址转换(Network Address Translation, NAT)。NAT是通过修改数据包的源地址(端口)或者目的地址(端口)来达到节省IP地址资源,隐藏内部IP地址功能的一种技术。
(3)VPN(Virtual Private Network,虚拟专用网)。只利用数据封装和加密技术,使本来只能在私有网络上传送的数据能够通过公共网络进行传输,使系统费用大大降低
防火墙的类型分为包过滤型防火墙、电路级网关型防火墙、应用网关型防火墙、代理服务型防火墙、状态检测型防火墙和自适应代理型防火墙
从体系结构上看,防火墙可以有多种实现模式,例如,宿主机模式、屏蔽主机模式和屏蔽子网模式等
防火墙的使用也有一定的局限性
(1)为了提高安全性,限制或关闭一些有用但存在安全缺陷的网络服务,给用户带来了使用上的不便。
(2)目前,防火墙对于来自网络内部的攻击还无能为力。作为一种被动的防护手段,防火墙不能阻止Internet不断出现的新的威胁和攻击,不能有效地防范数据驱动式攻击。
(3)防火墙不能防范不经过防火墙的攻击
(4)防火墙对用户不完全透明,可能带来传输延迟、瓶颈和单点失效等。
(5)防火墙不能完全防止受病毒感染的文件或软件的传输
2.安全协议
安全协议主要包括IPSec、SSL、PGP和安全套接字层上的超文本传输协议(Hypertext Transfer Protocol over Secure Socket Layer, HTTPS)等
PGP是一个基于RSA的邮件加密软件,可以用它对邮件保密以防止非授权者阅读
IPSec安全性分析:
1)可以应用于所有跨越网络边界的通信;
2)如果所有来自外部的通信必须使用IP,且防火墙是Internet与组织的唯一入口,则IPSec是不能被绕过;
3)IPSec位于传输层之下,因此对应用程序是透明的,实现时,没有必要在用户或服务器上更改软件;
4)IPSec对最终用户是透明的,实现时,没有必要在用户或服务器上更改软件
SSL协议:是Natscape推出的一种网络安全协议,是在传输过程通信协议(TCP/IP)上实现的一种安全协议。
SSL协议对计算机之间的整个会话进行加密,位于TCP和应用层之间,可为应用层提供安全服务,主要是Web服务
PGP协议时针对电子邮件在Internet上通信的安全问题而设计的一种混合加密系统。
PGP应用程序优点:速度快、效率高、可移植性好。
PGP协议加密过程:用IDEA算法对明文加密,接着用接收者的RSA公钥对这个IDEA密钥进行加密。

使用IPSec可以显著地减少或防范以下几种网络攻击:
(1)Sniffer。Sniffer可以读取数据包中的任何信息,对抗Sniffer最有效的方法就是对数据进行加密。
IPSec的封装安全有效负载(Encapsulating Security Payload, ESP)协议通过对IP包进行加密来保证数据的私密性。
(2)数据篡改。IPSec用密钥为每个IP包生成一个数字检查和,该密钥为且仅为数据的发送方和接收方共享。对数据包的任何篡改,都会改变检查和,
从而可以让接收方得知包在传输过程中遭到了修改。
(3)身份欺骗,盗用口令,应用层攻击。IPSec的身份交换和认证机制不会暴露任何信息,不给攻击者有可乘之机,双向认证在通信双方之间建立信任关系,只有可信赖的系统才能彼此通信。
(4)中间人攻击。IPSec结合双向认证和共享密钥,足以抵御中间人攻击。
(5)拒绝服务攻击。IPSec使用IP包过滤法,依据IP地址范围和协议,甚至特定的协议端口号来决定哪些数据流需要受到保护,哪些数据流可以被允许通过,而哪些需要拦截

入侵检测技术与入侵防护技术

1.入侵检测是一种主动保护计算机免受攻击的网络安全技术。作为防火墙的合理补充,入侵检测技术能够帮助系统对付网络攻击,扩展了系统管理员的安全能力(包括安全审计、监视、攻击识别和响应),提高了系统安全基础结构的完整性。入侵检测被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行检测
入侵检测系统(Intrusion-detection system, IDS)一般有两种分类方法,一种是基于数据源的分类,另一种是基于检测方法的分类
2.入侵防护系统(Intrusion Prevention System, IPS)是一种主动的、积极的入侵防范和阻止系统,它部署在网络的进出口处,当检测到攻击企图后,它会自动地将攻击包丢掉或采取措施将攻击源阻断

访问控制

1.自主访问控制(Discretionary Access Control,DAC)
自主访问控制,由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。也就是说,在自主访问控制下,用户可以按自己的意愿,有选择地与其他用户共享他的文件。
2.强制访问控制 (Mandatory Access Control——MAC)
强制访问控制,用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。通俗的来说,在强制访问控制下,用户(或其他主体)与文件(或其他客体)都被标记了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定一个用户是否有权访问该文件。
3.基于角色的访问控制(Role-Based Access Control, RBAC)
基于角色的访问控制中,角色由应用系统的管理员定义。而且授权规定是强加给用户的,用户只能被动接受,不能自主地决定,这是一种非自主型访问控制。其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。
每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。由于其对角色和层次化管理的引进,特别适用于用户数量庞大、系统功能不断扩展的大型系统
4.基于任务的访问控制(Task-Based Access Control, TBAC)
TBAC适用于工作流、分布式处理、多点访问控制的信息处理和事务管理系统,最显著的应用是在安全工作流管理系统中。
5.基于对象的访问控制(Object-based Access Control, OBAC)

信息安全保障体系

建立完整信息安全保障体系,包含以下几个方面的内容:
(1)建立统一的身份认证体系
(2)建立统一的信息安全管理体系
(3)建立规范的信息安全保密体系
(4)建立完善的网络边界防护体系
真题知识点:
–IDEA算法和RC4算法都对称加密算法,只能用来进行数据加密。
MD5算法是消息摘要算法,只能用来生成消息摘要无法进行数字签名。
RSA算法是典型的非对称加密算法,主要具有数字签名和验签的功能。
–共享密钥加密又称对称加密算法,既用同一个密钥去加密和解密数据。常用的算法包括DES、3DES、IDEA、AES等。
–数字签名首先需要生成消息摘要,然后发送方用自己的私钥对报文摘要进行加密, 接收方用发送方的公钥验证真伪。生成消息摘要的目的是(防止篡改),
对摘要进行加密的目的是(防止抵赖)。
–入侵检测通过对计算机网络或计算机系统中的若干关键点收集信息进行分析,发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。
进行入侵检测的软件和硬件的组合就构成了入侵检测系统。 (数据分析) 是入侵检测系统的核心。

系统可靠性分析与设计

系统可靠性

是系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。
系统可靠性包括成熟性、容错性、易恢复性和可靠性的依从性四个子特性。
其中,成熟性是指系统避免因错误的发生而导致失效的能力;
容错性是指在系统发生故障或违反指定接口的情况下,系统维持规定的性能级别的能力;
易恢复性是指在系统发生失效的情况下,重建规定的性能级别并恢复受直接影响的数据的能力;
可靠性的依从性是指系统依附于与可靠性相关的标准、约定或规定的能力

系统故障类型

系统故障是指由于部件的失效、环境的物理干扰、操作错误或不正确的设计所引起的硬件或软件中的错误(或差错)状态,在信息系统中,故障或错误有如下几种表现形式:
(1)永久性。永久性是指连续稳定的失效、故障或错误。在计算机硬件中,永久性失效反映了不可恢复的物理改变。
(2)间歇性。间歇性是指那些由于不稳定的硬件或软件状态所引起的、仅仅是偶然出现的故障或错误。
(3)瞬时性。瞬时性是指那些由于暂时的环境条件而引起的故障或错误。瞬时和间歇故障已经成为系统中的一个主要错误源故障的表现形式

  1. 逻辑级的故障
    逻辑级的故障是指硬件逻辑上出现的故障,一般是指电路中元器件的输入或输出固定为0(或1)
    2.数据结构级的故障
    故障在数据结构上的表现称为差错。常见的差错有以下三种:
    (1)独立差错。一个故障的影响表现为使一个二进制位发生改变。
    (2)算术差错。一个故障的影响表现为使一个数据的值增加或减少2i(i=0,1,2,…)。
    (3)单向差错。一个故障的影响表现为使一个二进制向量中的某些位朝一个方向(0或1)改变。
    3.软件故障和软件差错
    4.系统级的故障
    故障在系统级上的表现为功能错误,即系统输出与系统设计说明的不一致。

系统可靠性指标

  1. 平均无故障时间
    假设同一型号的1000台计算机,在规定的条件下工作1000小时,其中有10台出现故障。这种计算机千小时的可靠度R为(1000-10)/1000=0.99,
    失效率为10/(1000×1000)=1×10-5,MTTF=1/(1×10-5)=105小时。
    2、平均故障修复时间
    假设修复率(常数),修复率是指单位时间内可修复系统的平均次数。MTTR=1/修复率
  2. 平均故障间隔时间
    因为两次故障之间必然有修复行为,因此,平均故障间隔时间(Mean Time Between Failure,MTBF)中应包含MTTR
    MTBF = MTTR+MTTF
    –串联系统可靠性
    可靠性R=R1R2R3R4…Rn
    –并联系统可靠性
    可靠性R=1-(1-R1)(1-R2)(1-R3)*(1-R4)
    –模冗余系统可靠性
    模冗余系统由m(m=2n+1,n>1)个相同的子系统和一个表决器组成,经过表决器表决后,m个子系统中占多数相同结果的输出作为系统的输出

冗余技术

冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件、和软件。冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到较大的提高。主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余、时间冗余和冗余附加四种
1.结构冗余
结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余、动态冗余和混合冗余三种
2.信息冗余
信息冗余是在实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法。例如,检错码和纠错码就是信息冗余的例子
3.时间冗余
时间冗余是以时间(即降低系统运行速度)为代价以减少硬件冗余和信息冗余的开销来达到提高可靠性的目的
4.冗余附加

软件容错技术

软件容错的基本思想是从硬件容错中引伸而来,利用软件设计的冗余和多样化来达到屏蔽错误的影响,提高系统可靠性的目的
软件容错技术主要有N版本程序设计、恢复块方法和防卫式程序设计等
1.N版本程序的设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人(小组)独立设计,使用不同的方法、不同的设计语言、不同的开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率
2、恢复块方法
恢复块方法是一种动态的故障屏蔽技术,采用后向恢复策略
3 防卫式程序设计
防卫式程序设计是一种不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤消错误状态,恢复到一个已知的正确状态中去。其实现策略包括错误检测、破坏估计和错误恢复三个方面。

双机容错技术

双机容错技术是一种软硬件结合的容错应用方案。该方案是由两台服务器和一个外接共享磁盘阵列及相应的双机软件组成在双机容错系统中,两台服务器一般区分为主系统和从系统(备用系统),两台服务器互为主从关系.每台服务器至少安装两块网卡,一块连接到网络上,对外提供服务;
另一块与另一台服务器连接,用以侦测对方的工作状况。同时,每台服务器都连接在共享磁盘阵列上,用户数据存放在共享磁盘阵列中,当一台服务器出现故障时,另一台服务器主动替代工作,保证网络服务不间断
双机容错系统采用“心跳”方法保证主系统与备用系统的联系
双机容错系统根据两台服务器的工作方式不同,可以有三种不同的工作模式,分别是双机热备模式、双机互备模式和双机双工模式
(1)双机热备模式。正常情况下,一台服务器处于工作状态(主系统),另一台服务器处于监控准备状态(备用系统),缺点在于,备用系统长期处于后备的状态,存在一定的计算资源浪费
(2)双机互备模式。两台服务器均处于工作状态,为前端客户机提供各自不同的应用服务,并互相检测对方的运行情况,缺点是对服务器的性能要求比较高
(3)双机双工模式。双机双工模式是集群(cluster)技术的一种形式,两台服务器均处于工作状态,同时为前端客户机提供相同的应用服务,以保证整体系统的性能,实现负载均衡和互为备份
在双机容错系统中,双机软件是必不可少的。一切故障的诊断、服务的切换和硬件的控制都由双机软件来实现

集群技术

1.高性能计算集群
是指以提高科学计算能力为目的计算机集群技术,它是一种并行计算集群的实现方法。并行计算是指将一个应用程序分割成多块可以并行执行的部分,并指定到多个处理器上执行的方法
特点:(1)系统开发周期短 2)用户投资风险小 (3)系统价格低 (4)节约系统资源 (5)系统扩展性好 (6)用户编程方便
2.负载均衡集群
3.高可用性集群
在高可用性集群系统中,多台计算机一起工作,各自运行一个或几个服务,各为服务定义一个或多台备用计算机。当某台计算机出现故障时,
备用计算机便立即接管该故障计算机的应用,继续为前端的用户提供服务。
高可用性集群能够很好地保证各种故障情况下应用系统访问的连续性。在高可用性集群中,
应用系统的任何一个服务都可以运行在集群系统中的任何一个节点中,当这个节点出现故障时,运行在这个节点上的所有服务都可以在定义好的其他节点中启动运行,
而用户感觉不到有任何变化
(1)服务器组(2)对外提供服务的网络(3)心跳信号通路(4)数据共享磁盘阵列
比较常用的负载均衡实现技术主要有以下几种
(1)基于特定软件的负载均衡
很多网络协议都支持重定向功能,这种方式的具体实现有很多困难,例如,一个节点如何能保证它重定向的节点是比较空闲的,并且不会再次发送Location指令等
(2)基于DNS的负载均衡
基于DNS的负载均衡是在DNS服务器中为同一个主机名配置多个IP 地址,在应答DNS 查询时,DNS 服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的
DNS 负载均衡的优点是经济、简单易行,并且节点可以位于Internet上任意的位置。但它也存在不少缺点,例如,为了保证DNS数据及时更新,一般都要将DNS的刷新时间设置得较小,但太小就会造成太大的额外网络流量,并且更改了DNS数据之后也不能立即生效
DNS负载均衡采用的是简单的轮转算法,不能区分节点之间的差异,不能反映节点的当前运行状态,不能做到为性能较好的节点多分配请求,
甚至会出现客户请求集中在某一个节点上的情况。
另外,要给每个节点分配一个Internet上的IP地址,这势必会占用过多的IP地址
(3)基于NAT(Network Address Translation,网络地址转换)的负载均衡。基于NAT的负载均衡将一个外部IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部节点的地址,将外部连接请求引到转换得到地址的那个节点上,从而达到负载均衡的目的
(4)反向代理负载均衡。反向代理负载均衡是将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的
(5)混合型负载均衡

基于ODP的架构师实践

ODP开放分布式处理,OSI的标准
--基于ODP的架构开发过程
    1.企业业务架构:业务目标、业务对象、业务策略
    2.逻辑信息架构:信息对象、信息联合、信息行为
    3.计算接口架构:子系统的一致性、应用程序接口、接口行为
    4.分布式工程架构:软件分布、过程分配、服务质量
    5.技术选择架构:概念性机制、具体的机制、实际的机制
--开发过程
    系统构想、需求分析、原型分析、架构规划、架构原型、项目规划、并行开发、系统转换、操作维护、系统移植
--需求分析考察的内容
    1.系统范围对象关系图
    2.用户接口原型
    3.需求的适应性
    4.确定需求的优先级
    5.为需求建立功能结构模型
    6.使用质量功能分配QFD
--需求分析的特点
    1.完整性
    2.一致性
    3.验证性
        保持和用户要求的同步
        保持需求分析各侧面之间的一致
        保持需求和系统设计间的同步
--系统架构设计
    1.企业业务建模者
    2.信息数据库建模者
    3.计算API设计者
    4.工程操作系统工程师
    5.技术网络工程师
--系统转换、操作维护和系统移植
    系统转换的方式:直接转换、平行转换、分段转换、分批转换
    操作维护:
        可维护性指标:可理解性、可测试性、可修改性
        系统维护分类:更正性维护、适应性维护、完善性维护、预防性维护
    系统移植:
        移植工作阶段:计划阶段、准备阶段、转换阶段、测试阶段、验证阶段
        系统移植工具:分析工具、生成工具、转换工具、数据应用工具、测试验证工具、管理工具

架构师的管理实践

VRAPS组织管理原则

V构想原则(Vision):向受益人描述未来图景
R节奏原则(Rhythm):定期根据可预测的进度、内容和质量进行检查与规划
A预见原则(Anticipation):预测未来与现状之间做出平衡
P协作原则(Partnering):如何识别并确保合作伙伴的有效支持
S简化原则(Simplification):了解架构最小的基本特征并最小化架构

概念框架

用准则、模式和反模式来对VRAPA原则进行说明。
准则:用于判断每项原则的实施效果,说明是否和如何执行原则的问题。
模式:在开发和使用软件中可能遇到的基本常见问题和解决问题的方法,能够帮助组织来更好地改进原则–可以做的事情。
反模式:组织在实践中可能遇到的各种陷阱,描述了不该做的事,可以帮助更深入地理解原则–不可以做的事情。

层次式架构设计

--层次架构设计
1.表现层--表示层:MVC模式、XML
2.中间层--业务逻辑层:业务逻辑层组件、业务逻辑层工作流、业务逻辑层实体、业务逻辑层框架
    (1)业务逻辑层组件分为接口和实现类两个部分,接口用于定义业务逻辑组件,定义业务逻辑组件必须实现的方法。
    (2)业务逻辑层工作流能够实现在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促进此目标的实现。
    (3)业务逻辑层实体提供对业务数据及相关功能的状态编程访问,业务逻辑层实体数据可以使用具有复杂架构的数据来构建,这种数据通常来自数据库中的多个相关表
3.持久层--数据访问层:
    (1)在线访问(Online Access)
    (2)数据访问对象(Data Access Object)
    (3)数据传输对象(Data Transfer Object)
    (4)离线数据模型(Off-line Data Model)
    (5)对象关系映射(Object Relational Mapping)
--使用MVC模式设计表现层
    (1)控制器
    (2)模型
    (3)视图
--MVC模式设计表现层优点
    (1)允许多种用户界面的扩展
        在MVC模式中,视图与模型没有必然的联系,都是通过控制器发生关系,这样如果要增加新类型的用户界面,只需要改动相应的视图和控制器即可,
        而模型则另需发生改动。
    (2)易于维护
        易于维护。控制器和视图可以随着模型的扩展而进行相应的扩展,只要保持一种公共的接口,控制器和视图的旧版本也可以继续使用。
    (3)功能强大的用户界面
        用户界面与模型方法调用组合起来,使程序的使用更清晰,可将友好的界面发布给用户。
--基于XML的界面管理技术
    (1)界面定制
        对用户界面的动态修改过程,在软件运行过程中,用户可按照需求和使用习惯,对界面元素的属性进行修改。软件运行结束后,界面定制的结果被保存。
    (2)界面动态生成
        系统通过DOM API读取XML配置文件的表示层信息,通过数据存取类读取数据库中的数据层信息,运行时由界面元素动态生成界面。
        界面配置和定制模块在软件运行前后修改配置文件、更改界面内容。
    (3)界面配置
        对用户界面的静态定义,通过读取配置文件的初始值对界面配置。由界面配置对软件功能进行裁剪、重组和扩充,以实现特殊需求。

标准化与知识产权

--知识产权的特性
1、无体性    2、专有性    3、地域性    4、时间性
--著作权法及实施条例    
    一、著作权法客体
    1.作品类型其中包括以下 9 种类型
        文字作品:包括小说、诗词、散文、论文等以文字形式表现的作品。
        口述作品:是指即兴的演说、授课、法庭辩论等以口头语言形式表现的作品。
        音乐、戏剧、曲艺、舞蹈、杂技作品。
        美术、摄影作品。
        电影、电视、录像作品。
        工程设计、产品设计图纸及其说明。
        地图、示意图等图形作品。
        计算机软件。
        法律、行政法规规定的其他作品
    2.职务作品
      为完成单位工作任务所创作的作品,称为职务作品。如果该职务作品是利用单位的物质技术条件进行创作,并由单位承担责任的;或者有合同约定,其著作权属于单位。
      那么作者将仅享有署名权,其他著作权归单位享有
      其他职务作品,著作权仍由作者享有,单位有权在业务范围内优先使用,并且在两年内,未经单位同意,作者不能够许可其他人、单位使用该作品
    二、著作权法的主体
        著作权法及实施条例的主体是指著作权关系人,通常包括著作权人、受让者两种
        1.著作权人与受让者
            著作权人又称为原始著作权人,是根据创作的事实进行确定的,创作、开发者将依法取得著作权资格。
            受让者又称为后继著作权人,是指没有参与创作,通过著作权转移活动成为享有著作权的人。
        2.著作权人的确定
            著作权法在认定著作权人时,是根据创作的事实进行的,而创作就是指直接产生文学、艺术和科学作品的智力活动。而为他人创作进行组织,提供咨询意见、
            物质条件或者进行其他辅助工作,不属于创作的范围,不被确认为著作权人
            如果在创作的过程中,有多人参与,那么该作品的著作权将由合作的作者共同享有。合作的作品是可以分割使用的,作者对各自创作的部分可以单独享有著作权,
            但不能够在侵犯合作作品整体的著作权的情况下行使。
            如果遇到作者不明的情况,那么作品原件的所有人可以行使除署名权以外的著作权,直到作者身份明确。
            如果作品是委托创作的,著作权的归属应通过委托人和受托人之间的合同来确定。如果没有明确的约定,或者没有签订相关合同,则著作权仍属于受托人
    三、著作权    
        根据著作权法及实施条例规定,著作权人对作品享有 5 种权利
        发表权:即决定作品是否公之于众的权利。
        署名权:即表明作者身份,在作品上署名的权利。
        修改权:即修改或者授权他人修改作品的权利。
        保护作品完整权:即保护作品不受歪曲、篡改的权利。
        使用权、使用许可权和获取报酬权、转让权:即以复制、表演、播放、展览、发行、摄制电影、电视、录像或者改编、翻译、注释、编辑等方式使用作品的权利;
        以及许可他人以上述方式使用作品,并由此获得报酬的权利
        1.著作权保护期限根据著作权法相关规定,著作权的保护是有一定期限的    
            ① 著作权属于公民。署名权、修改权、保护作品完整权的保护期没有任何限制,永远属于保护范围。
            而发表权、使用权和获得报酬权的保护期为作者终生及其死亡后的 50年(第 50 年的 12 月 31 日)。作者死亡后,著作权依照继承法进行转移。
            ② 著作权属于单位。发表权、使用权和获得报酬权的保护期为 50 年(首次发表后的第 50 年的 12 月 31 日),若 50 年内未发表的,不予保护。
            但单位变更、终止后,其著作权由承受其权利义务的单位享有。
            著作权中的署名权、修改权、保护作品完整权的保护期不受限制
        2.使用许可
            第三方需要使用时,需得到著作权人的使用许可,双方应签订相应的合同。合同中应包括许可使用作品的方式,是否专有使用,许可的范围与时间期限,
            报酬标准与方法,违约责任。在合同未明确许可的权力,需再次经著作权人许可。合同的有效期限不超过 10年,期满时可以续签。
            对于出版者、表演者、录音录像制作者、广播电台、电视台而言,在下列情况下使用作品,可以不经著作权人许可、不向其支付报酬。
            但应指名作者姓名、作品名称,不得侵犯其他著作权。
            为个人学习、研究或者欣赏,使用他人已经发表的作品。
            为介绍、评论某一个作品或者说明某一个问题,在作品中适当引用他人已经发表的作品
--计算机软件保护条例
    《计算机软件保护条例》的客体是计算机软件.
    《计算机软件保护条例》对软件著作权的保护只是针对计算机软件和文档,并不包括开发软件所用的思想、处理过程、操作方法或数学概念等
    1.著作权人的确定
    (1)合作开发。对于由两个以上开发者或组织合作开发的软件,著作权的归属根据合同约定来确定。若无合同,共享著作权。若合作开发的软件可以分割使用,
    那么开发者对自己开发的部分单独享有著作权,可以在不破坏整体著作权的基础上行使
    (2)职务开发。如果开发者在单位或组织中任职期间,所开发的软件符合以下条件,则软件著作权应归单位或组织所有
    (3)委托开发。如果是接受他人委托而进行开发的软件,其著作权的归属应由委托人与受托人签订书面合同约定;如果没有签订合同,或合同中未规定的,
        其著作权由受托人享有
    2.软件著作权根据《计算机软件保护条例》规定,软件著作权人对其创作的软件产品,享有以下权利:
    发表权、署名权、修改权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权。
    软件著作权自软件开发完成之日起生效
    (1)著作权属于公民。著作权的保护期为作者终生及其死亡后的 50 年(第 50 年的 12月 31 日)。对于合作开发的,则以最后死亡的作者为准。
        在作者死亡后,将根据继承法转移除了署名权之外的著作权。
    (2)著作权属于单位。著作权的保护期为 50 年(首次发表后的第 50 年的 12 月 31 日),若 50 年内未发表的,不予保护。但单位变更、终止后,
        其著作权由承受其权利义务的单位享有
    (3)合法复制品所有人权利
    (4)使用许可的特例    
    (5)侵权责任。根据计算机软件保护条件,侵犯软件著作权的法律责任包括民事责任、刑事责任和行政责任 3 种
--商标法及实施条例
    何能够将自然人、法人及组织的商品与他人的商品区别开的可视性标志,就是可以用于注册的商标。商标可以包括文字、图形、字母、数字、三维标志和颜色组合。
    商标必须报商标局核准注册。通常包括商品商标、服务商标、集体商标,以及证明商标。
    除了一些与国家、政府、国际组织相同、相似的、计量单位,以及一些带有民族歧视、影响社会道德等性质的标志不能够作为商标注册外,
    县级以上行政区划的地名也不能够作为商标
    1.商标的使用期限商标的使用,是指将商标用于商品、包装、容器、交易文书、广告宣传、展览,以及其商业活动中
        注册商标的有效期是 10 年,从核准通过、正式注册之日起开始计算。在有效期满之后,可以续注册,但必须在期满前 6 个月提出申请,
        如未在此期间提出申请的,则给予 6个月的宽限期,在宽限期还未提出申请的,将注销其商标
    2.注册商标的申请
        如果有多个申请人,在同一天申请注册相同或近似的商标,则申请人应该提交其申请注册前在先使用该商标的证据,先使用者获得商标注册。如果都没有使用证据,
        那么将通过协商解决,协商无效,则通过抽签决定
    3.注册商标专用权保护

管理科学基础知识

--最小生成树
--最大流量
--决策论
    1、乐观主义准则 也称为“最大最大准则”,其决策原则是“大中取大”
    2、悲观主义准则 悲观主义准则也称为“最大最小”原则,其决策原则是“小中取大”
    3、后悔值准则
    后悔值也叫做“最小最大后悔值”,该决策法的基本原理为,将每种自然状态的最高值(指收益矩阵,如果是损失矩阵应取最低值)定为该状态的理想目标,
    并将该状态中的其他值与最高值相比所得之差作为未达到理想的后悔值。为了提高决策的可靠性,在每一方案中选取最大的后悔值,
    再在各方案的最大后悔值中选取最小值作为决策依据,与该值所对应的方案即为入选方案
--灵敏度分析

嵌入式系统

--嵌入式微处理器体系结构
    1.冯诺依曼体系结构
        1)程序和数据公用一个存储空间,程序指令和数据存储再同一存储器的不同地址上
        2)单一的地址及数据总线,程序指令和数据的总线宽度相同
        3)串行执行,再传输上会出现瓶颈
    2.哈弗体系结构
        1)程序和数据存储在不同的存储空间,程序指令存储地址和数据存储地址在不同的存储空间,每个存储器独立编制,独立访问
        2)独立的地址及数据总线,两个存储器对应两套独立的地址总线和数据总线
        3)并行执行,提高速度
--嵌入式系统的硬件结构
    嵌入式微处理器是核心,它由控制器、运算器、寄存器组成
    嵌入式微处理器一般可以分为嵌入式微控制器MCU、嵌入式微处理器MPU、嵌入式数字信号处理器DSP、嵌入式片上系统SOC

其他知识点:
–遗留系统的评价框架
把对遗留系统的评价结果分列在坐标的4个象限内。对处在不同象限的遗留系统采取不同的演化策略。
①淘汰策略。第四象限为低水平、低价值区,即遗留系统的技术含量较低,且具有较低的业务价值。对这种遗留系统的演化策略为淘汰,
即全面重新开发新的系统以代替遗留系统。完全淘汰是一种极端性策略,一般是企业的业务产生了根本变化,遗留系统已经基本上不再适应企业运作的需要;
或者是遗留系统的维护人员、维护文档资料都丢失了。经过评价,发现将遗留系统完全淘汰,开发全新的系统比改造旧系统从成本上考虑更合算。
②继承策略。第二象限为低水平、高价值区,即遗留系统的技术含量较低,已经满足企业运作的功能或性能要求,但具有较高的商业价值,
目前企业的业务尚紧密依赖该系统。称这种遗留系统的演化策略为继承。在开发新系统时,需要完全兼容遗留系统的功能模型和数据模型。
为了保证业务的连续性,新老系统必须并行运行一段时间,再逐渐切换到新系统上运行。
③改造策略。第一象限为高水平、高价值区,即遗留系统的技术含量较高,本身还有强大的生命力。系统具有较高的业务价值.
基本上能够满足企业业务运作和决策支持的需要。这种系统可能建成的时间还很短,称这种遗留系统的演化策略为改造。
改造包括系统功能的增强和数据模型的改造两个方面。系统功能的增强是指在原有系统的基础上增加新的应用要求,对遗留系统本身不做改变;
数据模型的改造是指将遗留系统的旧的数据模型向新的数据模型的转化。
④集成策略。第三象限为高水平、低价值区,即遗留系统的技术含量较高,但其业务价值较低,可能只完成某个部门(或子公司)的业务管理。
这种系统在各自的局部领域里工作良好,但对于整个企业来说,存在多个这样的系统,不同的系统基于不同的平台、不同的数据模型,形成了一个个信息孤岛,
对这种遗留系统的演化策略为集成。

–架构描述语言
架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。
ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置。ADL对连接件的重视成为区分ADL和其他建模语言的重要特征之一
–架构权衡分析方法(Architecture Tradeoff Analysis Method, ATAM)
ATAM是在基于场景的架构分析方法(Scenarios-based Architecture Analysis Method,SAAM)基础之上发展起来的,主要包括场景和需求收集、架构视图和场景实现、
属性模型构造和分析、属性模型折中等4个阶段。ATAM方法要求在系统开发之前,首先对这些质量属性进行评价和折中
–元组演算表达式

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值