admin 管理员组文章数量: 887169
2024年2月6日发(作者:新闻网站模板源码)
2016系统架构师考试
知识点总结
1
1 操作系统
操作系统是计算机系统中的核心系统软件,负责管理和控制计算机系统中硬件和软件资源,合理组织计算机工作流程和有效利用资源,在计算机与用户之间起接口的作用
1.1 操作系统的类型
操作系统的类型(依据使用环境和对作业的处理方式)分为批处理、分时、实时、网络和分布式等。
1、批处理:把作业分类,把一批作业编成一个作业执行序列。可分联机和脱机。特征为脱机使用计算机、成批处理和多道程序运行。
2、分时:采用分时技术,使多个用户同时以会话控制自己程序的运行,每个用户都认为拥有各自独立的、支持自己请求服务的系统。特征有交互性、多用户同时性和独立性。
3、实时:专用,系统与应用难分离。并不强调资源利用率,更关心及时性、可靠性和完整性。分实时过程控制和实时信息处理。特征有即时响应、高可靠性。
4、网络:按网络架构的各个协议标准制订,包括网络管理、通信、资源共享、系统安全和多种网络应用,实现协同工作和应用集成。特征有互操作性、协作处理。
5、分布式:要求一个统一的操作系统,实现系统操作的统一性,负责全系统的资源分配和调度,为用户提供统一的界面。
6、操作系统的5项基本功能,包括处理器管理、存储管理、设备管理、文件管理和作业管理。
1.2 操作系统的结构
结构分为无序、层次、面向对象、对称多处理和微内核。
1、无序:又称整体或模块结构。以大型表格和队列为中心,操作系统各个部分围绕着表格运行,整个系统是一个程序。模块结构相对独立,模块之间通过规定的接口相互调用。优点为缩短开发周期。缺点是模块之间调用关系复杂、相互依赖,使分析、移植和维护系统较易出错。
2、层次:操作系统分解成若干个单向依赖的层次,由多层正确性保证操作系统的可靠性。优点层次结构清晰,简化了接口设计,有利于系统功能的增加或删改,易于保证可靠性,便于维护和移植。
3、面向对象:基于面向对象程序设计的概念,采用了各种不同的对象技术。把对象最为系统中的最小单位,由对象、对象操作、对象保护组成的操作系统。优点适用于网络操作系统和分布式操作系统。
4、对称多处理:所有多处理运行且共享同一内存(内存储器、主存、实存)。优点适合共享存储器结构的多处理机系统。
5、微内核:把系统的公共部分抽象出来,形成一个底层核心,提供最基本的服务,其他功能以服务器形式建立在微内核之上。具有良好的模块化和结构化特征,模块之间和上下层之间通过消息来通信。
操作系统大多拥有两种工作状态:核心态和用户态。一般的应用程序工作在用户态,内核模块和最基本的操作系统核心工作在核心态。
微内核结构由一个简单的硬件抽象层和一组比较关键的原语(仅仅为建立系统必须的部分,包括线程管理、地址空间和进程间通信)或系统调用组成。
微内核的目标将系统服务的实现和系统的基本操作规则分离开来。
2
微内核技术的优点:(1)统一的接口;(2)可伸缩性好;(3)可移植性好;(4)实时性好;(5)安全可靠性高,安全是微内核的特性;(6)支持分布式系统、支持多处理器的架构和高度并行的应用程序;(7)真正面向对象的操作系统。
1.3 处理器管理
程序的并行运行就涉及到资源的竞争使用,就需要管理其核心资源。
1.3.1 进程状态
进程是一个程序关于某个数据集的一次运行。进程是程序的一次运行活动,动态的概念,而程序是静态概念,是指令的集合。
进程具有动态性和并发性,程序是进程运行时所对应的运行代码。
在操作系统中进程是进行系统分配、调度和管理的最小单位,线程是处理器分配资源的最小单位。
静态的观点看,进程是程序、数据和进程控制块组成,动态观点看,进程是计算机状态的一个有序集合。
进程状态总体分为为三态模型和五态模型。
1、三态模型(所有进程在内存中)包括运行、就绪和等待态。运行态就绪态,运行时间片到;出现更高优先权进程。运行态等待态,等待使用资源,如等待外设传输;等待人工干预。就绪态运行态,CPU空闲时选择一个就绪进程;等待态就绪态,资源得到满足,如外设传输结束;人工干预完成。
2、五态模型:包括运行、活跃就绪、活跃阻塞、静止就绪和静止阻塞。
1.3.2 信号量和PV操作
操作系统中,进程之间存在互斥和同步。
1、互斥控制是为了保护共享资源,不让多个进程同时访问这个共享资源。就是阻止多个进程同时访问这些资源的代码段(临界区),一次只允许一个进程访问的资源。初始值信号量S应该设置为1.
2、同步控制
进程A在另一个进程B到达指定位置L2之前,不应前进到超过点L1。初始值信号量S应该设置为0
3、生产者-消费者问题
不仅要解决生产者进程与消费者进程的同步关系,还要处理缓冲区的互斥关系。
1.3.3 死锁问题
死锁是指多个进程之间互相等待对方的资源,而在得到对方资源之前又不释放自己的资源,这样,造成循环等待的一种现象。
1、死锁发生的必要条件
产生死锁的根本原因在于系统提供的资源个数少于并发进程要求的该类资源数。产生死锁有4个必要条件:互斥条件、不可抢占条件、保持与等待条件(部分分配条件)、循环等待条件。
2、银行家算法
指在分配资源之前先看清楚,资源分配后是否会导致系统死锁。如果会死锁,则不分配,否则就分配。
3、解决死锁的策略
(1)死锁预防。破坏导致死锁必要条件中的任意一个就可以预防死锁。
(2)死锁避免。指进程在每次申请资源时判断这些操作是否安全。
(3)死锁检测。判断系统是否处于死锁状态,如果是,则执行死锁解除策略。
3
(4)死锁解除。将某进程所拥有的资源强行收回,分配给其他的进程。
1.3.4 管程与线程
1、管程由管程名、局部子管程的变量说明、使用共享资源并在数据集上进行操作的若干过程,对变量赋初值的语句等4个基本部分组成。
每一个管程管理一个临界资源。
2、线程可共享进程的资源与地址空间,通过线程的活动,进程可以提供多种服务或实行子任务并行。
多线程实现的并行避免了进程间并行的缺点:创建线程的开销比创建进程要小,同一进程的线程共享进程的地址空间。
1.4 文件管理
对外部存储设备上以文件方式存放的信息的管理。用户通过对文件的访问(读写)来完成对文件的查找、修改、删除和添加等操作。常用的访问方法有两种,即顺序访问和随机访问。
1.4.1 文件的逻辑组织
逻辑结构是用户可见的结构。文件的逻辑结构可以分为无结构的字符流文件和有结构的记录文件(格式文件)两种。记录文件由记录组成,即文件内容划分为多个记录,以记录为单位组织和使用信息。
常用的记录式结构有连续结构、多重结构、转置结构和顺序结构。
用户通过对文件的存取来完成对文件的修改、追加和搜索等操作,常用的存取方法有顺序存取法、随机存取法(直接存取法)和按键存取法。
1.4.2 文件的物理组织
文件的物理结构是指文件在存储设备上的存储方法,常用的文件物理结构有连续文件(顺序文件)、串联文件(链接文件)和索引文件。
1.4.3 树形目录结构
文件控制块的集合被称为文件目录,文件目录被组织成文件,叫目录文件。
文件管理的一个重要的方面是对文件目录进行组织和管理。文件系统一般采用一级目录结构、二级目录、多级目录结构。DOS、UNIX和WINDOWS都是采用多级树形目录结构。
路径是指从树形目录中的某个目录层次到某个文件的一条道路。
1.4.4 存储空间管理
文件存储设备的管理实质上是对空闲块的组织和管理问题,包括空闲块的组织、空闲块的分配与空闲块的回收等问题。
存储管理方法有:
1、空闲表法;2、空闲链表法(包括空闲盘块链、空闲盘区链);3、位图法;(4)成组连接法(将空闲表和空闲链表结合形成的一种空闲盘块管理方法)。
1.5 存储管理
虚拟存储技术,即在内存中保留一部分程序或数据,在外存中放置整个地址空间的副本。虚拟存储技术是一种性能非常优越的存储器管理技术,被广泛地应用于大、中、小型及微型机中。
1.5.1 地址变换
用户编程所用的地址(虚地址),实际的内存地址则称为物理地址(实地址)。每次访问内存时都要进行逻辑地址到物理地址的转换,这种转换由硬件完成的,而内存和外存间的信息动态调度是硬件和操作系统两者配合完成的。
4
1、静态重定位:在虚空间程序执行之前由装配程序完成地址映射工作。优点:不需要硬件的支持;缺点:无法实现虚拟存储器,必须占用连续的内存空间且难以做到程序和数据的共享。
2、动态重定位:在程序执行过程中,在CPU访问内存之前,将要访问的程序或数据地址转换为内存地址。动态重定位依靠硬件地址变换机制完成,其优点主要是可以对内存进行非连续分配;提供了虚拟存储器的基础;有利于程序段的共享。
1.5.2 存储组织
虚拟存储器分为单一连续分区、固定分区、可变分区、可重定位分区、非请求页式、请求页式和段页式7种。
常见的虚存组织
项目 段式管理
划分段(不定长)每个作业方式 一张段表
虚地址
(s,d),即(段号,段内偏移)
页式管理
页(定长)每个进程一张页表
(p,d),即(页号,页内偏移)
页表内找出起始地址,然后+页内偏移
消除了页外碎片
段页式管理
先将内存分为等长页,每个作业一张段表(通常有一个基号指向它),每段对应一组页表。
(s,p,d) 即(段号,段内页号,页内偏移)
先在段表中找到页表的起始地址,然后在页表中找到起始地址,最后+页内偏移
结合了段与页的优点,便于控制存取访问
增长复杂度,增加硬件存在页内碎片
虚实段表内找出起始地址,转换 然后+段内偏移
主要简化了任意增长和收缩优点 的数据段管理,利于进程间共享过程和数据
主要段外碎片降低了利用率 存在页内碎片
缺点
在现行的虚存组织方面,最常见的段页式管理,在进行实地址转换时,可以采用的公式如下:
(((x)+s)+p)*2^n+d,其中x为基号,s段号,p页号,d为页内偏移,n的值为d的总位数。(x)表示x里的内容。
1.5.3 存储管理
在虚拟存储器的管理中,涉及到载入(调入)、放置(放入分区)和置换等问题
1、调入策略:何时将一页或一段从外存中调入内存,通常有两种策略,包括请求调入法和先行调入法。
2、放置策略:调入后,放在内存的什么位置。
3、置换策略:实际内存小于虚存的,可能发生内存中已满,但需要使用的页不在内存中这一情况(缺页中断),就需要进行置换,即将一些内存中的页淘汰到外存,腾出空间给要使用的页。
4、置换算法:
(1)最优OPT算法:淘汰不再使用或将来才使用的页;(2)随机Rand算法,随机的选择淘汰的页,开销很小,但可能选中立即就要使用的页;(3)先进先出FIFO算法:可能会出现Belady现象;(4)最近最少使用LRU算法
5、存储管理局部性原理
分时间局部性和空间局部性。时间局部性指最近访问存储位置,很可能在不久将来还要访问;空间局部性指存储访问有成组的倾向,当访问了某个位置后,很可能也要访问其附近的位置。
根据局部性原理的特征性,Denning阐述了程序性能的工作集理论。工作集是进程频繁访问的页面集合。工作集理论指出,为使进程有效地运行,它的页面工作集中、应驻留内存中。
5
控制颠簸的技术还有控制缺页率。
1.6 作业管理
操作系统中用来控制作业的进入、执行和撤销的一组程序称为作业管理程序。
在作业管理中,系统为每一个作业建立一个作业控制模块jcb,系统通过jcb感知作业的存在。JCB包括的主要内容有作业名、作业状态、资源要求、作业控制方式、作业类型以及作业优先权。
1.6.1 作业状态
一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后备、执行和完备4个状态。
1.6.2 作业调度
1、处理器调度分为三级调度,即低级调度、中级调度和高级调度。
2、低级调度(进程调度):确定处理器在就绪进程间的分配;中级调度(交换调度):决定进程在内、外存之间的调入、调出;高级调度(作业调度):选取一个或一组作业,为它们建立进程,分配必要的资源,使它们能够运行起来。
3、作业调度主要完成从后备状态到执行状态的转变,及从执行状态到完成状态的转变。
4、作业调度算法有如下几种:
(1)先来先服务FCFS;(2)短作业优先SJF;(3)响应比高者优先HRN=1+W/T;(4)优先级调度。
1.7 设备管理
设备管理程序提供的功能:
(1)提供和进程管理系统的接口;(2)进行设备分配;(3)实现设备和设备、设备和CPU等之间的并行操作;(4)进行缓冲区管理。
1.7.1 数据传输控制方式
在计算机中,I/O系统可以有5个不同的工作方式,分别为程序控制方式、程序中断方式、DMA、通道方式和输入/输出处理机。
(1)程序控制方式:CPU直接利用I/O指令编程,实现数据的输入输出。
(2)程序中断方式:CPU利用中断方式完成数据的输入/输出。分为为多中断信号线法、中断软件查询法、雏菊链法、总线仲裁法和中断向量法。
(3)DMA方式。使用DMAC控制器来控制和管理数据传输,DMA和CPU共享系统总线,并且具有独立访问存储器的能力。DMAC获取总线的方式有三种:暂停方式、周期窃取方式和共享方式。
(4)通道方式:一种通过执行通道程序管理I/O操作的控制器,它使主机与I/O操作之间达到更高的并行程度。
(5)输入输出处理机,也称为外围处理机,是一个专用处理机,也可以使一个通用的处理机,具有丰富的指令系统和完善的中断系统。
1.7.2 磁盘调度算法
访问磁盘的时间由三部分组成:寻道(寻找数据所在的磁道)时间、等待(旋转等待扇区)时间和数据传输时间,其中寻道时间是决定因素。
算法种类为FCFS先来先服务算法、SSTF最短寻道时间优先、SCAN电梯算法、N步SCAN算法、C-SCAN循环扫描算法(磁头单向移动)。
1.7.3 虚设备与SPOOLING外部设备同时联机操作技术
又称假脱机输入输出操作或排队转储技术,采用一组程序或进程模拟一台输入输出处理器。
6
1、SPOOLING系统主要包括以下三个部分:
(1)输入井和输出井;(2)输入缓冲区和输出缓冲区;(3)输入进程和输出进程。
2、SPOOLING技术的主要特点
(1)提高了I/O 速度;(2)设备并没有分配给任何进程;(3)实现了虚拟设备的功能。
1.8 网络操作系统
网络操作系统指能使网络上各个计算机方便而有效地共享网络资源,为用户提供所需的各种服务的操作系统软件。
1、网络操作系统分为对等式和集中式网路操作系统;
2、网络操作系统的功能:
(1)具备单机操作系统所需的功能;
(2)提供高效可靠的网络通信能力
(3)提供多项网络服务功能,如远程管理、文件传输、电子邮件和远程打印等
3、网络操作系统一般具有以下特征:
(1)硬件独立;MS提出了HAL概念;(2)网络特性;(3)可移植性和可集成性;(4)多用户、多任务。
4、网络操作系统的组成
由网络驱动程序、子网协议和应用层协议三个方面组成。网络操作系统通过网络驱动程序与网络硬件通信,网路驱动程序作为网卡和子网协议间的联系体来工作的。子网协议是经过网络发送应用和系统管理信息所必须的通信协议。应用层协议则与子网协议进行通信,并实现网络操作系统对网络用户的服务。网络驱动程序涉及到OSI/RM的第2层和第3层;子网协议涉及到OSI/RM的第3层、第4层和第5层。应用层协议,最重要的是NCP网络核心协议。NCP作为应用层的协议,提供的主要功能包括在不同方式下打开文件;关闭打开的文件;从打开的文件读取数据块;将数据块写入打开的文件;获取目录项表;处理服务器数据库;提高高级连接服务;提供同步操作。
1.9 习题思想
1、(C)操作需要特权指令执行
A、读取当前时钟 B、清除一块内存 C、关闭中断 D、从用户态到管态
【解释】在多任务的计算机系统中,特权指令主要用于系统的资源的分配和管理,包括改变系统的工作方式、修改虚拟存储器管理的段表和页表、I/O指令、设置时钟、设置控制寄存器和关闭中断等。总的来说,不允许用户程序直接使用的指令称为特权指令。
2、用UML建立业务模型是理解企业过程的第1步。使用活动图(Activity Diagram)可显示业务工作流的步骤和决策点,以及完成每一个的步骤的角色和对象,它强调(D),是一种特殊的状态图。
A、上下层次关系 B、时间和顺序 C、对象间的迁移 D、对象间的控制流
【解释】在UML模型图中,协作图按组织结构对控制流建模,它强调上下层次关系。序列图用于按时间顺序对控制流建模,它强调的是时间和顺序。
3、以下关于软件构件及其接口的叙述中,正确的是(D)
A、构件必须封装自己的全部内部特征,必须基于对象实现;
B、构件不允许外部对所支持的接口进行动态发现或调用
C、构件作为一个部署单元,是可以拆分的,以增加部署的灵活性
D、构件的特性包括独立部署单元、作为第三方的组装单元和没有可见状态等
【解释】独立部署单元、作为第三方的组装单元和没有(外部的)可见状态是构件的特性。软件构件是软件系统中具有一定意义的、相对独立的可重用单元。构件必须封装自己的全部内部特征,作为一个部署单元,具有原子性,是不可拆分的。与对象相比,构件可以基于对
7
象实现,也可以不作为对象实现。构件需要在容器中管理并获取容器提供的服务。
接口是一个已命名的一组操作的集合。客户程序可以在运行状态下利用接口动态确定构件所支持的功能并调用,即构件的客户(通常是其他构件)通过这些访问点来使用构件提供的服务。
4、模式是“给定上下文中普遍问题的普遍解决方案”。(D)是最低层的模式,关注软件系统的设计与实现,描述了如何实现构件及构件之间的关系。
A、架构模式 B、分析模式 C、设计模式 D、惯用法。
【解析】模式主要涉及惯用法、设计模式(微观架构模式)和架构模式(宏观架构)。架构模式是软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基本设计决策。
设计模式主要关注软件系统的设计,与具体的实现语言无关。惯用法是实现时通过某种特定的程序设计语言来描述构件与构件之间的关系,例如引用-计数就是C++语言中的一种惯用法。
5、在开放网络服务框架中(OGSA)标准中,(B)提供一组遵守特定的约定并定义明确的接口,是实体之间产生、管理和交换信息的机制。
A、Web service B、Grid Service C、XML D、JNDI
【解析】开放网络服务框架是Web Service和Grid技术结合的产物,已成为网络基础框架的标准。它利用Web Service的标准接口定义机制、多协议绑定,以及本地与远端的透明性,利用Grid的服务语义、可靠性和安全模型、生命周期管理、发现和其他服务,以及多主机或运行环境来构建自己的框架。为了使服务的思想更加明确和具体,OGSA定义了网络服务的概念,用于解决服务的发现、动态服务的创建、服务生命周期的管理与临时服务有关的问题。Grid Service提供一组遵守特定的约定并定义明确的接口,是实体之间产生、管理和交换信息的机制。
6、软件质量强调3个方面的内容:(A)是测试软件质量的基础;开发标准定义了一组用于指导软件开发方式的准则;期望需求间接定义了用户对某些特性的需求。
A、软件需求 B、软件设计 C、软件实现 D、软件验证
【解析】软件质量是对明确陈述的功能和性能需求、明确记录的开发标准、以及对所有专业化软件开发应具备的隐含特殊的符合度。它强调以下3个方面的内容:
(1)软件需求是质量测试的基础,不符合需求就是没有质量;
(2)开发标准定义了一组用于指导软件开发方式的准备。若未能遵守准则,则肯定质量有问题;
(3)期望需求(例如对易使用性的期望)定义了用户的某些稍缓的、期望的需求,即间接定义了对用户对某些特性的需求。
软件分析、设计和实现都是为了满足软件需求的。开发文档是记录开发成果的,维护手册是指导软件维护的,用户手册是提供用户使用软件的操作指南。
7、集成测试有各种方法,以下关于集成测试的叙述中,说法错误的是(B)。
A、增量式集成测试容易定位错误,排除错误
B、非增量式集成测试不能充分利用人力,会拖延工程进度
C、增量式集成测试的强度大,测试更彻底
D、即使各个模块都通过了测试,但系统集成以后仍可能出现错误
【解析】集成测试也称组测试,是把系统的各个模块按照系统设计说明书的要求组合起来进行测试。组合的过程可以是增量式或非增量式的。所谓非增量式测试是先分别测试各个模块,然后把所有的模块组合起来进行总体测试。而增量式测试是先测试一个模块,然后再加入一个进行测试,通过不断地增加模块,进行多次测试,最后完成整个系统的测试。这两种测试
8
方法的优缺点如下
非增量式和增量式测试优缺点对比表
项目 类型
错误定位
测试强度
测试工作量
测试进度
测试辅助程序
非增量式测试
不容易定位错误
小
小
对各个模块可以并行测试,加快测试进度
每个中间模块的测试需要编写驱动模块和桩模块
增量式测试
容易定位错误,排除故障
大,先加入的模块经过多次测试,测试更彻底
大
测试的过程长、进度慢
自顶向下的增加需要编写桩模块;
自底向上的增加需要编写驱动模块
8、存储资源死锁的问题
有这样的一个公式:系统中同类资源分配不当将引起死锁。通常,若系统中有m个单位的存储器资源,它被n个进程使用,而每个进程都要求w个单位的存储器资源,则当[n*(w-1)+1]>m时,系统可能会引起死锁。
9、以下关于CISC(复杂指令集计算机)和RISC(简单指令计算机)的叙述中,错误的是(A)
A、在CISC中,某复杂指令都采用硬布线逻辑来执行;
B、采用CISC技术的CPU,其芯片设计复杂度更高
C、在RISC中,更适合采用硬布线逻辑执行指令
D、采用RISC技术,指令系统中的指令种类和寻址方式更少
【解析】精简指令集计算机是在继承复杂指令集计算机成功技术并克服其缺点的基础上产生并发展的,RISC与CISC在技术特点上的对比如6-4所示。
RISC和CISC的特点表
类 别
指令系统
执行时间
编码长度
寻址方式
操作
编译
RISC
指令长度固定,指令格式少(小于100种)
选取使用频率较高的一些简单指令,且指令执行时间较短
固定,通常为4字节
种类少,即简单寻址
设置大量通用寄存器,访问存储器指令简单,只能对寄存器进行算术和逻辑操作
采用优化编译技术,生成高效的目标代码程序
CISC
指令数量多
有些指令执行时间很长,例如整块的存储器内容
可变,1-15字节
种类丰富
可以对存储器和寄存器进行算术逻辑操作
难以用优化编译器生成高效的目标代码程序
从表中可知,RISC计算机采用硬联逻辑控制,可以把节约的芯片面积用于增加通用寄存器,或者把其他逻辑部件集成到CPU中。它使用相当多的通用寄存器。例如算术逻辑运算指令的操作数都在通用寄存器中存取。
CISC的指令系统对应的控制信号复杂,大多采用微程序控制方式。CISC机器的微码电路在芯片上所占的面积要占总面积的50%以上。
10、在数据挖掘的任务中,(B)的任务是将目标对象的一般特征与对比类进行比较,它的输出形式一般为一些图表。
A、数据特征化 B、数据区分 C、数据分类 D、数据预测
【解析】数据挖掘的任务分为3项:描述、分类和预测。描述的主要任务是挖掘出数据中的一般特性。描述一般包括数据特征化和数据区分,两者的输出形式一般为一些图表(如饼图、条图和曲线等)。数据特征化是用一种格式化的方法来描述目标类数据的一般特征或特性。数据区分的任务是将目标对象的一般特征与一个或多个对比类的一般特征进行比较。
9
10、SAAM是一种软件评估方法,以下关于该方法的叙述中,错误的是(C)
A、SAAM协调不同参与者所感兴趣的方面,并提供了后续决策体系结构的公共理解
B、SSAM的主要输入问题是问题描述、需求声明和体系结构描述
C、SAAM的领域知识库的可重用性是通过基于属性的体系结构风格维护
D、SAAM可以被应用到空中交通管制、嵌入式音频系统的等系统中
【解析】SAAM是卡耐基梅隆大学软件工程研究所的Kazman等人于1983年提出的一种非功能质量属性的体系结构分析方法,是最早形成文档并得到广泛使用的软件体系结构分析方法。
SAAM分析评估体系结构的过程包括场景开发、体系结构描述、单个场景评估、场景交互和总体评估等5个步骤。通过各类风险承担者协商讨论,开发一些任务场景,体现系统所支持的各种活动。在SAAM风险承担者方面,SAAM协调不同参与者所感兴趣的方面,作为后续决策的基础,提供了对体系结构的公共理解。在方法活动方面,SAAM的主要输入问题是问题描述、需求声明和体系结构描述。在方法验证方面,SAAM是一种成熟的方法,已被应用到众多系统中,这些系统包括空中管制、嵌入式音频系统和WRCS(修正控制系统)等。
目前SAAM暂不考虑知识库的可重用性问题。
2 数据库系统
2.1 数据库管理系统
1、数据管理技术的发展经历的阶段:
人工管理阶段、文件系统阶段、数据库阶段和高级数据库技术阶段。
数据库是长期存在计算机内的、有组织的、可共享的数据的集合。
2、DBMS是一种负责数据库的定义、建立、操作、管理和维护的软件系统。其目的是保证数据安全可靠,提高数据库应用的简明性和方便性。
DBS是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机软件、硬件和数据字眼组成的系统。由数据库、硬件、软件和数据库管理员4个部分组成。根据计算机的系统结构,DBS可分成集中式、客户端/服务器式、并行式和分布式4种。
3、与文件系统阶段相比,数据库的数据管理方式的特点:
(1)采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享;
(2)具有较高的数据和程序独立性。数据库的独立性包括物理独立性和逻辑独立性
(3)数据库系统为用户提供了方便的用户接口
(4)数据库系统提供4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性。
(5)增加了系统的灵活性
4、高级数据库技术的主要标志是分布式数据库系统和面向数据库系统的出现。分布式数据库系统的主要特点是数据在物理上分散存储,在逻辑上是统一的。
分布式数据库系统的多数据处理就地完成,各地的计算机有数据通信网络相联系。面向对象数据库系统是面向对象的程序设计技术与数据库技术相结合的产物。
面向对象数据库系统的主要特点是具有面向对象技术的封装性和继承性,提高了软件的可重用性。
2.2 数据库模式
1975美国的ANSI/SPARC提出的三级划分法,
2.2.1 三级模式
1、概念模式(模式、逻辑模式)。用以描述整个数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数
10
据项值的框架。还包含访问控制、保密定义和完整性检查等方面的内容。以及概念/物理之间的映射。
2、外模式(子模式、用户模式)。用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。一个数据库可以有多个外模式。一个应用只能使用一个外模式。
3、内模式。是整个数据库的最低层表示,不同于物理层。它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示、存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
概念模式是数据库的中心与关键;内模式依赖于概念模式,独立于外模式和存储设备;外模式面向具体的应用,独立于内模式和存储设备;应用程序依赖于外模式,独立于概念模式和内模式。
2.2.2 三个级别
数据库可以划分为三个抽象级别,分别是用户级、概念级和物理级。
1、用户级数据库,又称用户视图,对应外模式。
2、概念级数据库,对应于概念模式,介于用户级与物理级之间,就是DBA视图。
3、物理级数据库,对应于内模式,是数据库的低层表示,它描述数据的实际存储组织,是最接近于物理存储的级,称为内部视图。
物理级数据库由内部记录组成,物理级数据库并不是真正的物理存储,而是最接近于物理存储的级。
2.2.3 两级独立性
DBS两级独立是指物理独立性和逻辑独立性。三个抽象级间通过两级映射(外模式/模式映射、模式/内模式映射)进行相互转换,使得数据库的三级形成一个统一的整体。
1、物理独立性:指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。存在于概念模式和内模式之间的映射转换。
2、逻辑独立性:指用户的应用程序和数据库中的逻辑结构师相互独立的。存在于外模式和概念模式之间的映射转换。
逻辑独立性比物理独立性更难实现。
2.3 数据模型
在设计DBS时,用图或表的形式抽象地反映数据彼此之间的关系,称为建立数据模型。
2.3.1 关系模型分类
数据模型分两类,是概念数据模型(实体联系模式)和基本数据模型(结构数据模型)
概念数据模型是按照用户的观点来对数据和信息建模,主要用于数据库设计。概念模型主要用实体-联系方法表示(E-R模型)。
基本数据模型是按照计算机系统的观点来对数据和信息建模,主要用于DBMS的实现。基本数据模型是数据库系统的核心和基础,通常由数据结构、数据操作和完整性约束三部分组成,其中数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,完整性约束事一组完整性规则的集合。
基本数据模型有层次模型、网状模型、关系模型和面向对象模型。
2.3.2 关系模型
1、概念:
(1)域:一组具有相同数据类型的值的集合;
11
(2)笛卡尔积:给定一组域D1,D2,D3,…..,Dn,这些域中可以有相同的。每一个元素(d1,d2,d3,……,dn)叫做一个n元组。元组中的每一个值dj叫做一个分量;
(3)关系:D1*D2*…..*Dn的子集叫做在域D1,D2,..,Dn上的关系,用R(D1,D2,…,Dn)表示。这里R表示关系的名字,n是关系的目或度。关系中的每个元素是关系中的元组,通常用t表示。
(4)候选码或主码:若关系中某一属性组(一个或多个属性)的值能唯一地标识一个元组,则称该属性组为候选码(候选键)。若一个关系有多个候选码,则选定其中一个作为主码(主键),主码的所有属性称为主属性,不包含在任何候选码中的属性称为非码属性(非主属性)。
(5)关系分类:基本关系(基本表、基表)、查询表和视图表。基本表式实际存在的白哦,是实际存储数据的逻辑表示;查询表是查询结果对应的表;视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
(5)关系的描述称为关系模式,一个关系模式应当是一个五元组,可以形式化地表示为R(U,D,DOM,F).
(6)关系就是关系模式在某一时刻的状态或内容。关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
(7)关系数据库有型和值之分。关系数据库的型称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。关系数据库的值称为关系数据库,是关系的集合。关系数据库模式与关系数据库统称为关系数据库。
2.3.3 规范化理论
关系模式划分存储异常问题包括(1)数据冗余;(2)修改异常;(3)插入异常;(4)删除异常。
1、函数依赖:设R(U)是属性U上的一个关系模式,X和Y是U的子集,r是R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y]=v[Y],则称为X函数决定Y,或称Y函数依赖于X,记为XY。
2、完全函数依赖、部分函数依赖、传递函数依赖。
3、六条函数依赖推理规则:自反性、增广性、并规则、分解规则、伪传递规则。
4、闭包:在关系模式R(U,F)中为F所逻辑蕴含的函数依赖全体叫做F的闭包F+
5、设F为属性集U上的一组函数依赖,X是U的子集,那么相对于F属性集X的闭包用X+表示,是一个从F集使用推理规则推出的所有满足XA的属性A的集合X+={属性A|XA 在F+中}
6、如果函数依赖集满足下列条件,则称F为一个极小函数依赖集,也称为最小依赖集或最小覆盖:
(1)F中任一函数依赖的右部仅含有一个属性;
(2)F中不存在这样的函数依赖XA,使得F与F-{XA}等价
(3)F中不存在这样的函数依赖XA,X有真子集Z使得F-{XA}U{ZA}与F等价。
7、范式
(1)INF:如果关系模式R的每个关系r的属性值都是不可分的原子值。
(2)2NF:如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键
(3)3NF:如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码
(4)BCNF:如果关系模式R是1NF,且每个属性都不传递依赖于R的候选键。
8、关系模式分解
R分解成数据库模式&={R1,R2,…..,Rk},如果对R中每一个满足F的关系r都有以下
12
成立:
r=$R1(r)<><>$R2(r)<><>……<><>$Rk(r)
那么称分解&相对于F是无损联接分解,否则称为损失联接分解。
9、无损联接分解判定定理:
设p={R1,R2}是R的一个分解,F是R上的FD集,那么分解p相对于F是无损分解的充分必要条件是(R1∩R2)(R1-R2)或(R1∩R2)( R2- R1)。这两个条件只要有任意一个条件成立就可以。
2.4 数据库的控制功能
DBMS运行的基本工作单位是事务,事务是用户定义的一个数据库操作序列,是一个不可分割的工作单位。
事务具有以下特性(ACID特性):原子性、一致性、隔离性和持续性。
2.4.1 并发控制
1、并发操作的问题
数据库的并发操作带来的主要问题有丢失更新问题、不一致分析问题(读过时数据)和依赖于未提交的数据(读脏数据)。
2、封锁的类型
处理并发控制的主要方法是采用封锁技术,主要有两种类型的封锁,分别是X封锁(排他型封锁)和S封锁(共享型封锁)。
3、封锁协议
在多个事务并发执行的系统中,主要采取封锁协议来进行处理:
(1)一级封锁协议;(2)二级封锁协议;(3)三级封锁协议;(4)两段封锁协议
4、封锁粒度,是被封锁数据目标的大小,在关系数据库中封锁粒度有属性值、属性值集、元组、关系、某索引项(或整个索引项)、整个关系数据库和物理页(块)等几种。
5、死锁:指多个用户申请不同封锁,由于申请者均拥有一部分封锁权而又需等待另外用户拥有的部分封锁而引起的永无休止的等待。死锁是可以避免的,目前采用的办法如下:
(1)预防法:采用一定的操作方式以避免死锁的出现,如顺序申请法、一次申请法。顺序申请法是指对封锁独享按序编号,用户申请封锁时必须按编号顺序申请,去避免死锁发生。一次申请法是指用户在一个完整操作过程中必须一次性申请它所需要的所有封锁,并在操做结束后一次性归还所有封锁去避免死锁发生。
(2)死锁的解除法。允许产生死锁,并在死锁产生后通过解锁程序以解除死锁。这种方法需要两个程序,一个是死锁检测程序,另一个是解锁程序。
2.4.2 备份与恢复技术
数据库系统中的故障,有事务内部的故障、系统范围内的故障、介质故障、计算机病毒。
对各类故障,对数据库的影像有两种可能性,包括数据库本身被破坏;数据库没有被破坏,但数据可能不正确。
1、数据备份,分为静态备份(冷备份)和动态备份(热备份),备份还分为海量备份和增量备份。
2、日志文件(事务日志):针对数据库改变所做的记录,可以记录针对数据库的任何操作,并做记录结果保存在独立的文件中。
在动态备份中,必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库;在静态备份方式中,也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到备份结束时刻的正确状态,然后利用日志文件把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。
13
事务运行过程中,登记次序严格按并行事务操作执行的时间次序,同时遵循“先写日志文件”的规则。
3、数据恢复:把数据库从错误状态恢复到某一个已知的正确状态的功能。数据恢复的基本原理是冗余,建议冗余的方法有数据备份和登录日志文件。可根据故障的不同类型,采用不同的恢复策略:
(1)事务故障的恢复:由系统自动完成的,对用户是透明的(不需要DBA的参与);(2)系统故障恢复:在系统重新启动自动完成,不需要用户干预;(3)介质故障与病毒破坏的恢复;(4)有检查点的恢复技术。
2.4.3 数据库的安全性
DBS的信息安全性在技术上依赖于两种方式,包括DBMS本身提供的用户身份识别、视图、使用权限控制和审计等管理措施;靠数据库的应用程序来实现对数据库访问进行控制和管理。安全控制大多是由应用程序里面的代码来实现的。
1、用户认证:包括口令认证和强身份认证。
2、用户角色:一般可以将权限角色分为三类,包括数据库登录权限类、资源管理权限类和DBA权限类。
3、数据授权:同一类功能操作权限的用户,对数据库中数据对象管理和使用的范围又可能是不同的,因此DBMS除了要提供基于功能角色的操作权限控制外,还提供了对数据对象的访问控制,访问控制可以根据对控制用户访问数据对象的粒度从大到小分为4个层次。
(1)数据库级别;(2)表级;(3)行级;(4)属性级。
DBMS对用户的访问控制的基本原则:
(1)隔离原则:用户只能存取他自己所有的和已经取得授权的数据对象;(2)控制原则:用户只能按他所取得的数据存取方式存取数据,不能越权。
数据库授权分为静态授权和动态授权。
4、数据库视图:看成虚拟表或存储查询。使用视图可以实现下列功能:将用户限定在表中特定行、列、多个表的列连接、聚合信息而非提供详细信息。
5、审计功能:两种方式,包括用户审计和系统审计。用户审计是DBMS的审计系统记下所有对自己表或视图进行访问的企图及每次操作的用户名、时间和操作代码等信息;系统审计由DBA进行,审计内容主要是系统一级命令及数据对象的使用情况。
2.4.4 数据库的完整性
数据库的完整性是指数据的正确性和相容性。
1、完整性约束条件
保证数据完整性的方法之一是设置完整性检查,即对数据库中数据设置一些约束条件。
完整性约束条件一般指的是对数据库中数据本身的某些语法、语义限制,数据间的逻辑约束,以及数据变化时应遵循的规则。完整性约束条件作用的对象可以是关系、元组和列三种。
数据库中数据的语法、语义限制与数据间的逻辑约束称为静态约束。静态约束包括静态列级约束、静态元组约束和静态关系的约束。
数据库中的数据变化应遵守的规则称为数据动态约束,它反映了数据库状态变迁的约束。动态约束包括动态列级约束、动态元组约束和动态关系约束。
2、完整性控制:其机制是具有定义功能(提供定义完整性约束条件的机制)和检查功能(检查用户发出的操作请求是否违背了完整性约束条件)。
数据库的完整性可分为实体完整性、参照完整性和用户定义的完整性。
(1)实体完整性:要求主码中的任一属性不能为空;
(2)参照完整性:若基本关系R中含有与另一基本关系S的主码PK相对应的属性组FK,则参照完整性要求,对R中的每个元组在FK上的值必须是S中某个元组PK值或者为空值。
14
对于参照完整性,需要明确以下问题:
1)外码是否接受空值问题,根据实际应用决定;
2)在被参照关系中的删除元组的问题(级联删除、受限删除和置空删除)
3)在参照关系中插入元组的问题(受限插入、递归插入)
(3)用户定义的完整性:针对某一具体关系数据库的约束条件,反映某一应用所涉及的数据必须满足的语义要求。
3 系统安全性
1、要素机密完整可用可控可审查
2、服务认证访问机密完整不可否认
3、特定加密签名完整访问控制,认证公证路由流量填充
4、普通可信标记事件检测审计跟踪恢复
5、等级用户自主系统审计安全标记结构化访问验证
6、保障mis+s(应用、软硬件、安全设备三不不变),s+mis(二变一不变),s2mis(三变)
7、可信系统tcsec,d1,c1,c2,b1,b2,b3,a1
8、密码学经历了手工密码机械密码机电密码电子密码计算机密码芯片密码
9、密码体制建立3假设包括随机假设计算假设物理假设
10、安全协议2乱源包括物理乱源和数学乱源
11、两种密钥体制包括对称密码体制和非对称密码体制
12、对称密码算法分为fdea、idea、des、3des和2des
13、非对称密码算法分大整数分解问题类、离散对数问题类和椭圆曲线类。方法为RSA,主要用于数字签名。
14、PKI五大系统包括认证中心、证书库、密钥备份及恢复系统、证书作废处理、客户端证书处理系统。PKI可以在认证、机密、完整和抗抵赖性发挥作用。
15、签名算法包括hash签名、DSS签名和RSA签名。
16、数字签名提供数据完整性的同时又保证数据的真实性。原理如下:
1)发送者将原文用hash函数生成128位的数字摘要;
2)发送者用自己的私钥对摘要加密,形成数字签名,把加密后的数字签名附加在要发送的原文后面;
3)发送者将原文和数字签名同时传给对方;
4)接收者对收到的信息用hash函数生成新的摘要,同时用发送者的公开密钥对信息摘要解密;
5)将解密后的摘要与新摘要对比,如两者一致,则说明传送过程中信息没有被破坏或篡改。
17、数字签名有两种,整体性(确定性签名、随机化或概率化签名)、压缩信息签名等
18、签名体制分签名算法和验证算法。
19、公钥密码体制在实际应用中包含数字签名和数字信封。数字信封则采用密码技术保证了只有规定的接收人才能阅读信息的内容。
原理是将原文用对称密码加密传输,而将对称密钥用接收方公钥加密发送给对方。收方收到电子信封,用自己的私钥解密信封,取出对称密钥解密原文。
20、密码信封中详细过程,对发送方A,hash(A)->MD(A)->PV(A)->DS(A)->DES_MK(原文信息+数字签名DS(A)+PB(A))E(A)->PB[B](DES_MK(A))->DE(A)->E(A)+DE(A)->B
对接收B,PV[B](DE(A))->DES_SK(A)->E(A)->原文信息+数字签名DS(A)+PB(A)->PB[A](DS(A))->MD(A)->hash(A的原文)->MD(B)->MD(A)==MD(B)
21、PGP(pretty good privacy)是一个基于RSA公钥加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,还能够对邮件加上数字签名从而使收信人可以确信邮件发送。
15
PGP采用了审慎的密钥管理,是一种RSA和传统加密的杂合算法:一个对称加密算法(IDEA)、一个非对称加密算法(RSA)、一个单向散列算法(MD5)以及一个随机数产生器,还有一个良好的人机程序设计。
22、PGP还可用于文件存储的加密。PGP有两种不同的证书格式:PGP证书和X.509证书。
23、PGP证书包括PGP版本号、持有者公钥、持有者信息、证书拥有者的数字签名、证书有效期、密钥首选的对称加密算法。
24、X.509包括证书版本、序列号、签名算法标识、有效期、证书发行商名字、证书主体名、主体公钥信息、发布者的数字签名。
25、数字水印是一种信息隐藏技术。可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。
26、数字水印的特点包括安全性、隐蔽性、水印容量。按水印的特性分鲁棒和易损水印,按检测规程分明文水印和盲水印,按用途分票证防伪水印、版权保护水印、篡改提示和隐蔽标识水印,按隐藏位置分时(空)域水印、频域水印、时/频域水印和时间/尺度域水印。
27、水印算法分空域算法、patchwork算法、变换域算法、压缩域算法、NEC算法、生理模型算法。
28、计算级网络安全是保证网络的可用性、传输信息的完整性和机密性。
29、网络安全设计9项原则,包括木桶、整体性、安全性评价与平衡原则、标准化与一致性、技术与管理相结合、统筹规划,分步实施原则、等级性、动态发展、易操作性。
30、SSO单点登录技术,通过用户的一次性认证登陆,即可获得需要访问系统和应用软件的授权。有两种机制kerberos机制和外壳脚本机制。
31、无线设备安全性。认证性主要有SIM和ECC认证。2003 GB15629.11用WAPI安全机制,能为用户的WLAN系统提供全面的安全保护。有WAI和WPI两部分组成,分别实现对用户身份的鉴别和对传输的数据加密。WAI采用公开密钥密码体制,利用证书对WLAN系统中用户和AP进行认证。证书里面包含有证书颁发者的公钥和签名以及证书持有者的公钥和签名。签名采用ECC算法。机密性采用SSL和WTLS来保护安全传输的不同部份,其中SSL用来保护应用中的有线连接部份,而WTLS主要用来保护无线连接部份。对WTLS基于IP网络,应用UDP协议;对非IP网络,应用WDP协议。WTLS是WAP协议栈中的安全协议,可以用来在无线环境中保护UDP和WDP业务。恶意代码和病毒。
32、防火墙是指建立在内外网络边界上的过滤封锁机制。作用是防止不希望的、未经授权的通信进出被保护的内部网络,通过边界控制强化内部网络的安全政策。是一种被动技术,假设了网络边界和服务。因此对内部的非法访问难以有效地控制,防火墙适合于相对独立的网络。产品分网络级和应用级防火墙。应用级防火墙大致分为双穴主机网关、屏蔽主机网关、屏蔽子网关和应用代理服务器,其共同点需要有一台主机负责登记、信息转发和控制服务。
33、入侵检测用来检测任何损害或企图损害系统的机密性、完整性和可用性行为的一种网络安全技术。通过监视受保护系统的状态和活动,采用异常检测或误用检测的方式,发现非授权的或恶意的系统及网络行为,为防范入侵行为提供有效的手段。入侵检测系统要解决的两个基本问题是如何充分并可靠地提取描述行为特征的数据,以及如何根据特征数据,高效并准确地判断行为的性质。通常由数据源、分析引擎和响应三个模块构成。技术分为特征检测和异常检测两种。
34、特征检测,其难点是如何设计模式。异常检测其难点是如何建立活动简档及如何设计统计算法。
35、入侵检测的方法有特征检测、统计检测(统计模型包括操作模型、方差、多元模型、马尔柯夫过程模型、时间序列模型)、专家系统(入侵的特征抽取与表达,是入侵检测专家系
16
统的关键。运用专家系统防范有特征入侵行为的有效性完全取决于专家系统知识库的完备性。)
36、入侵检测的性能保证。有两种途径可用来实时分析庞大的信息量,分别是分割事件流和使用外围网络传感器。
37、虚拟专用网提供了一种通过公用网安全地对企业内部专用网络进行远程连接的方式。VPN连接使用隧道作为传输通道,这个隧道是建立在公共网络或专用网络基础之上的。VPN可实现不同网络的组件和资源之间的相互连接,利用Internet或其他公共互联网的基础设施为用户创建隧道,并提供与专用网络一样的安全和功能保障。VPN的关键技术包括安全隧道技术、加解密技术、密钥管理技术、身份认证技术、访问控制技术。
38、隧道技术是网络2,3层隧道技术为基础。PPTP、L2TP和L2F都属于第2层隧道协议,都是将数据封装在PPP帧中通过互联网发送。第3层协议对应于OSI模型中的网络层,使用包作为数据交换单位,IpoverIP、IPSec隧道模式都属于第3层隧道协议,都是将IP包封装在附加的IP包头中通过IP网络传输的。在传输使用VPN,则可使用TLS(Transport Layer
Security传输安全)协议。TLS协议是确保因特网上通信应用和其用户隐私的协议。TLS是SSL的后继协议。TLS协议由两层构成:TLS记录协议和TLS握手协议。TLS记录协议使用机密方法来保证连接安全,也可以不使用加密技术;TLS握手协议使服务器和客户端在数据交换之前进行相互鉴定,并协商加密算法和密钥。
39、IPSec是一个工业标准网络安全协议,为IP网络通信提供透明的安全协议,保护TCP/IP通信免遭窃听和篡改,可以有效抵御网络攻击,同时保持易用性。有两个基本目标,包括保护IP数据包安全和为抵御网络攻击提供防护措施。IPSec结合密码保护服务、安全协议组和动态密钥管理三者来实现上述两个目标,不仅能为企业局域网与拨号网络、域、网站、远程站点以及Extranet之间的通信提供强有力且灵活的保护,而且还能用来筛选特定数据流。
40、IPSec安全模式,是基于端到端的安全模式。IPSec是针对IPV4和IPV6的,主要特征是可以支持IP级所有流量的加密和认证,增强所有分布式应用的安全性,IPSec在IP层提供安全服务,使得系统可以选择所需要的安全协议,确定该服务所用的算法,并提供安全服务所需任何加密密钥。
41、IPSec防范攻击,可显著减少或防范以下几种网络攻击,sniffer、数据篡改、(身份欺骗,盗用口令,应用层攻击)、中间人攻击、拒绝服务攻击。
42、IPSec第三层保护的优点:所有IP协议进行数据传输的应用系统和服务都可以使用IPSec,而不必对这些应用和服务本身做任何修改。
43、电子商务安全,有两个代表性的规范,包括SSL和SET。
44、SSL是一个传输层的安全协议,用于在Internet上传送机密文件。SSL协议由SSL握手协议、SSL记录协议、SSL警报协议组成。SSL主要提供的服务
1)用户与服务器的合法性认证
2)加密数据以隐藏被传送的数据;SSL协议所采用的加密技术有对称密钥技术和公开密钥技术。
3)保护数据的完整性。
45、SSL协议,对通信对话过程进行的安全保护,包括如下几个阶段:
1)接通阶段
2)密码交换阶段
3)会谈密码阶段。
4)检验阶段
5)客户认证阶段
6)结束阶段
17
发送时信息用对称密钥加密,对称密钥用不对称算法加密,再把两个包绑在一起传送过去。接收的过程与发送正好相反,先打开有对称密钥的加密包,再用对称密钥解密。因此,SSL协议也可用于安全电子邮件。
46、set(secure electronic transaction)协议是基于银行卡进行电子化的应用提供了实现安全措施的规则。由vista和mastercard组织公共制订的一个能保证通过开放网络进行安全资金支付的技术标准。Set在保留对客户银行卡认证的前提下,又增加了对商家身份的认证。
SET支付系统主要由持卡人、商家、发卡行、收单行、支付网关和认证中心6个部份组成。对应SET协议的网上购物系统至少包括电子钱包、商家软件、支付网关和签发证书软件。
47、网络层协议位置方面,SSL是基于传输层的通用协议,而SET位于应用层,对网络上其他各层也有涉及。
48、认证中心(CA)是电子商务体系中的核心环节,是电子交易中的信赖的基础。它通过自身的注册审核体系,检查核实进行证书申请的用户身份和各项相关信息,使网上交易的用户属性客观真实性与证书的真实性一致。认证中心作为权威的、可信赖的、公正的第三方机构,专门负责发放并管理所有参与网上交易的实体所需的数字证书,并为其使用证书的一切行为提供信誉的担保。
49、CA的功能有证书发放、证书更新、证书撤销和证书验证。CA的核心功能就是发放和管理数字证书,具体为:1)接收验证的申请;2)证书审批;3)颁发或拒绝数字证书;4)证书的更新;5)证书查询、撤销;6)数字证书归档;7)密钥归档;8)历史数据归档。
50、CA认证中心采用“统一建设,分级管理”的原则,分为多层结构进行建设和管理,即统一建立注册中心(RA)系统,分级建RA中心,各RA统一接受CA中心的管理和审计,证书用户可通过LRA业务受理点完成证书办理。
51、安全管理体系是指通过计划、组织、领导和控制等措施以实现组织信息安全目标的相互关联或相互作用的一组要素,是组织建立信息安全方针和目标并实现这些目标的体系。这些要素信息安全组织机构、信息安全管理体系文件、控制措施、操作过程和程序以及相关资源等,具体来说包括信息安全的组织机构;信息安全方针和策略;人力、物力、财力等相应资源;各种活动和过程。
52、安全管理的实施包括安全策略与指导方针、对信息进行分类和风险管理三个方面。
53、安全策略包括安全模型和安全策略的制定。安全模型主要包括BLP模型(基于机密性访问模型,基于两种属性,包括简单安全属性[不能从上读]和星属性[不能向下写]);Biba模型(基于完整性的访问模型,基于三个属性,包括简单安全属性、星属性和请求属性);Clark-Wilson(基于完整性的访问模型,与biba模型不同的是,有三个完整性目标:阻止未授权的用户修改信息、维护内部和外部的一致性、阻止授权的用户对信息进行不适当的修改)。安全策略的制定过程分为初始与评估阶段、制定阶段、核准阶段、发布阶段、执行阶段和维护阶段。
54、安全体系,要构筑计算机系统的安全体系,其措施包括防火墙、入寝检测、病毒和木马扫描、安全扫描、日志审计系统等,另外还要制定和执行有关安全管理的制度,保护好私有信息等。
55、病毒和木马扫描。病毒在其生命周期中包括潜伏、繁殖、触发和执行4个阶段。病毒防护一般采用“检测-标识-清除”的策略来应对。
56、安全扫描是指对计算机系统及网络端口进行安全性检查,通常需要借助一个被称为“扫描器”的软件。一个好的扫描器能够对得到的数据进行分析,帮助管理员查找目标主机的漏洞。它能够自动查找主机或网络,找到运行的服务及其相关属性,并发现这些服务潜在的漏洞。
18
57、日志审计系统。日志文件是包含关于系统消息的文件,通常来自于操作系统内核、运行的服务以及在系统上运行的应用程序。日志文件包括系统日志、安全日志和应用日志等。日志审计系统则通过一些特定的、预先定义的规则来发现日志中潜在的问题,它可以用来事后亡羊补牢,也可以用来对网络安全攻击进行取证。
58、安全审计,是指对主体访问和使用客体的情况进行记录和审查,以保证安全规则被正确执行,并帮助分析安全事故产生的原因。是信息安全保障系统的一个重要组成部份。具体包括采用网络监控与入侵防范系统,识别网络中各种违规操作与攻击行为,即时响应并进行阻断;对信息内容和业务流程的审计,可以防止内部机密或敏感信息的非法泄漏和单位资产的流失。
CC标准将安全审计功能分为6个部份,分别是安全审计自动响应、数据生成、分析、浏览、事件选择和事件存储。
59、个人信息控制,窃取方式包括:
1)利用操作系统和应用软件的漏洞。2)网络系统设置。3)程序的安全性;4)拦截数据包;5)假冒正常的商业网站;6)用户自身因素。
60、安全管理制度,包括物理安全管理、机房参观访问制度、机房设施巡检制度、机房施工管理制度、运营值班管理制度、运营安全管理制度、运营故障处理制度、病毒防治制度和口令管理制度。
61、计算机操作安全,包括与操作员和系统管理员特权相关的数据中心和分布式处理的安全性,对计算机资源的安全保护,以及对于重要资源的潜在威胁的漏洞。
62、安全威胁。评估安全威胁的方法有查阅、实验、调查、测量(通常使用陷阱)。
63、物理安全,包括环境安全、设施和设备安全介质安全等。防范的方式主要采用分层的防御体制和多方面的防御体制相结合。分层防御体制需要遵循的三个基本原则是广度、深度、阻碍度。物理安全实施包括确认、标注、安全、跟踪、技能。
64、系统备份与恢复:持续性规划流程主体框架主要由4部份组成。
1)灾难恢复规划;2)业务恢复规划;3)危机管理规划;4)持续可用性。
65、灾难恢复规划,是将信息系统从灾难造成的故障或瘫痪状态恢复到可正常运行状态,并将其支持的业务功能从灾难造成的不正常状态恢复到可接受状态而设计的活动和流程。
66、信息系统的危机处理及灾难恢复主要可以分为下列几种:
1)与日常生产及运行息息相关的关键性系统。一般应有高度自动恢复的能力。
2)部份机构的重心系统。折中方法是容许常规和后备系统有时间上的差异,数据不一定完全同步, 后备系统需要若干时间才能上线运行,但一般情况下是足够应用的。
3)在另一地区设立规模较小但架构相同的系统,使用离线的方法。
4)最基本的灾难恢复当然是利用备份工具。
4 多媒体技术
67、多媒体技术主要是指文字、声音和图像等多种表达信息的形式和媒体,它强调多媒体信息的综合和集成处理。多媒体技术依赖于计算机的数字化和交互处理能力,它的关键技术是信息压缩技术和光盘存储技术,它的关键特性包括信息载体的多样性、交互性和集成性。
68、多媒体-媒体分类:感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体。
69、多媒体-存储媒体,如磁盘和光盘。光盘存储器是利用激光束在记录表面上存储信息,根据激光束的反射光来读出信息。光盘存储器主要有CD、CD-ROM、DVD和EOD.
CD-ROM的读取目前有三种方式:恒定角速度、恒定线速度和部分恒定角速度。DVD分为单面单层、单面双层、双面双层4种物理结构。
70、多媒体-集成语言SMIL。符合W3C标准的多媒体操作语言。主要优点:1)避免使用统一的包容文件格式;2)同时播放在不同地方(服务器上)的多媒体片段;3)时间控制;
19
4)对整个演示进行布局;5)多语言支持;6)多带宽选择支持。
71、多媒体-压缩编码技术算法,数据质量是压缩的效果,数据量是压缩的能力,计算复杂度是压缩的代价,都需要综合考虑。
72、多媒体-存在数据冗余,包括空间冗余(几何冗余)、时间冗余、知觉冗余、信息熵冗余、结构冗余、知识冗余。
73、多媒体-压缩技术包括无损压缩编码,也称为冗余压缩法、熵编码法;有损压缩编码法,也称熵压缩法。
无损压缩,可逆,通常使用的统计编码技术,包括哈弗曼编码、算术编码和行程编码,压缩率比较低,2:1-5:1
有损压缩,不可逆,可分为特征抽取和量化两大类。特征抽取包括基于模式的编码、分形的编码;量化包括零记忆量化、预测编码、直接映射和变换编码等方法,其中预测编码和变换编码是最常用的方法。压缩比比较高,4:1-8:1,动态视频高可达100:1-400:1
74、多媒体-数据压缩标准 JPEG(采用DCT和可变长编码算法,关键技术变换编码、量化、差分编码、哈弗曼编码)、MPEG(采用预测和插补两种帧间编码技术,视频压缩算法中包含了两种基本技术16*16子块运动补偿技术,用来减少帧序列的时域冗余,另一种是基于DCT压缩,用于减少帧序列的空域冗余,在帧内压缩及帧间预测中均使用了DCT变换。)、DVI(可达VHS水平,传输速率为1.5mb,压缩比5:1-10:1)、H.261(ISDN上实现电信会议应用,面对面可视电话和视频会议设计的,采用了CIF和QCIF视频格式)、H.263(H263+,代替261,针对低带宽通信设计,支持CIF,QCIF,SQCIF,4CIF,16CIF)
75、多媒体-MPEG主要标准,MPEG1[传输速率1.5mb,30帧,具有CD音质,与VHS相当,编码速率最高达4~5mb,用于数据电话网络上的视频传输,也可作记录媒体或在Internet上传输音频];MPEG2[传输速率为3-10mbps,提供广播级视像和CD级音质,适用于HDTV];MPEG4[传输速率为4800-6400bps,利用帧重建技术、压缩和传输数据,以求用最小的数据达到最佳的图像质量。而且它与前面的标准相比,最大的不同在于提供了更强的交互能力,用于视频电话、视频电子邮件和电子新闻];MPEG7[多媒体内容描述接口]、MPEG21[目标是将不同的协议、标准、技术有机地融合在一起]
76、多媒体-音频数据,人可以听到的声音频率为20HZ-20KHZ。声音的三个要素为音强、音调和音色。
77、多媒体-音频技术包括音频采集、语音解码/编码、文字-声音的转换、音乐合成、语音识别和理解、音频数据传输、音频视频同步、音频效果与编辑。通常是录音/重放、文字-声音转换。语音合成技术可分为发音参数合成、声音模型参数合成和波形编辑合成三种,合成策略包括频谱逼近和波形逼近。
78、多媒体-音频数据存储于传输。声音信息存储数字化一般要经过采样、量化和编码三个步骤。在没压缩之前,每秒钟所需的存储量可由下式估算出:文件的字节数=采样频率(HZ)*量化/采样位数(位)*声道数/83)Layer-3,.mp3现在最流行的声音文件格式,其压缩率大,在网络可视电话 通信方面应用广泛,但和CD相比,音质不能令人满意;4)Real Audio,扩展名为.ra,具有强大的压缩量和极小的失真;5)CD Audio,.cda唱片采用的格式,又叫红皮书格式;6)MIDI,.mid,作为音乐工业的数据通信标准;7)CMF,.cmf,是Creative公司的专用音乐格式,和MIDI差不多,只是音色、效果上有些特色,专用于FM声卡,其兼容性也很差。
79、多媒体-音频数据格式
1)WAVE,质量非常高,.mod;2)MOD,.mod,该格式的文件里存放乐谱和乐曲使用的各种音色样本,具有回放效果明确,音色种类无限等优点;3)Layer-3,.mp3现在最流行的声音文件格式,其压缩率大,在网络可视电话 通信方面应用广泛,但和CD相比,音质不能
20
令人满意;4)Real Audio,扩展名为.ra,具有强大的压缩量和极小的失真;5)CD Audio,.cda唱片采用的格式,又叫红皮书格式;6)MIDI,.mid,作为音乐工业的数据通信标准;7)CMF,.cmf,是Creative公司的专用音乐格式,和MIDI差不多,只是音色、效果上有些特色,专用于FM声卡,其兼容性也很差。
80、多媒体-颜色空间,三特征或三属性包括亮度、色调和饱和度。RGB颜色空间、YUV颜色空间(YCrCb颜色空间,数字化位通常采用Y:U:V=8:4:4或8:2:2)、CMY颜色空间(彩色打印机和彩色印刷系统都采用CMY颜色空间,采用相减混色原理进行,利用滤光特性,即在白光下减去补需要的彩色,留下所需要的颜色。如黄色=白色-蓝色,青色=白色-红色,红色=白色-蓝色-绿色)
81、多媒体-图形和图像,分辨率的主要指标是分辨率、点距和色彩数(灰度)。文件格式有bmp、dib、pcp、dif、wmf、gif、jpg、tif、eps、psd、cdr、iff、tga、pcd、mpt、swf.
82、多媒体-视频数据[动画或视频信息]。文件格式有quciktime,avi、realmedia、asf、wmv。
83、多媒体-流媒体,传输方式有两种,包括顺序流传输[http流式传输]、实时流传输。流媒体传输中的协议有PNA(Progressive Networks Audio,顺序网络音频,udp,7070端口)、mms(microsoft media server protocol微软的流媒体服务器协议)、rtp(UDP)、rtcp(与rtp配合使用)、rtsp(在rtp和rtcp之上,其目的是通过IP网络有效地传输多媒体数据。作为一个应用层协议,它提供疗一个可供扩展的框架,它的意义在于使得实时流媒体数据的受控和点播变得可能。RTSP主要用来控制具有实时特性的数据传送,它本身不传输数据,而是必须依赖于下层传输协议所提供的某些服务。RTSP对流媒体提供诸如播放、暂停和快进等操作,负责定义具体的控制消息、操作方法和状态码,与RTP的交互操作)
84、多媒体-时间域压缩可以迅速传输媒体信源,频域压缩可以并行开通更多业务,空间域压缩可以降低存储费用,能量域压缩可以降低发射功率。
85、多媒体-JPEG标准中定义了有失真的静态图像编码方案,其中的失真主要产生于( D)编码步骤。
A、DCT变换 B、RLE(行程编码) C、熵编码 D、变换系数量化
86、系统安全-信息安全策略的设计与实施步骤是
1)确定安全需求,包括确定安全需求的范围、评估面临的风险;
2)制订可实现的安全目标;
3)制订安全规划,包括本地网络、远程网络和internet;
4)制订系统的日常维护计划。
5 系统性能
87、系统性能-指标是以系统响应时间、作业吞吐量为代表。故障响应时间是指从出现故障到该故障得到确认修复前的这段时间。该指标一般是用来反映服务水平的。性能指标计算的主要方法有定义法、公式法、程序检测法和仪器检测法。
88、系统性能-影响系统的平均响应时间有以下因素:
1)和业务相关,处理不同的业务会有不同的响应时间;
2)和业务组合有关,业务之间可能存在依赖关系或其他,也会相互影响;
3)和用户的数量有关,大并发量会严重影响响应时间。
89、系统性能-测试系统响应时间常用两方法,包括首字节响应时间和末字节响应时间。米勒给出了三个经典的有关响应时间的建议:
1)0.1s:用户感觉不到任何延迟;
2)1s:用户愿意接受的系统立即响应的时间极限。即当执行一项任务的有效反馈时间在0.1~1s之内时,用户是愿意 的。超过此数据值,则意味着用户会感觉到有延迟,但只要不超过10s,用户还是可以接受的;
21
3)10s:用户保持注意力执行本次任务的极限,如果超过此数值时仍然得不到有效的反馈,用户会在等待计算机完成当前操作时转向其他的任务。
90、系统性能-在给定的时间内,系统的吞入能力与吐出能力是多少。计算机的吞吐量主要取决于内存的存取周期。从系统的角度来看,吞吐量是指单位时间内系统所能完成的任务数量。从现实的请求与服务来看,系统吞吐量一般都服从M/M/1排队模型。M/M/1排队模型是指顾客到达时间间隔服从指数分布,则顾客达到过程为泊松分布,接受服务的顾客和到达的顾客相互独立,服务时间分布为指数分布。且顾客的到达和服务都是随机的,服务台为一个,排队空间无限。
91、系统性能-性能计算的两个公式:
1)平均利用率r=平均到达事务数/平均处理事务数;2)平均响应时间=平均处理时间/(1-r)
例如,假设某计算机系统的用户在1s内发出40个服务请求,这些请求(为M/M/1队列)的时间间隔按指数分布,系统平均服务时间为20ms。则该系统的吞吐量1000/20=50(1s=1000ms),系统的平均利用率为40/50=0.8,系统的平均响应时间为=20/(1-0.8)=100ms
92、系统性能-性能调整,是一项循环进行的工作,包括收集、分析、配置和测试4个反复的步骤。
93、系统性能-阿姆达尔Amdahl定律,定义了采用特定部件加速比。假定使用某种增强部件,计算机的性能就会得到提高,那么加速比就是下式所定义的比率:
加速比=不使用增强部件时完成整个任务的时间/使用增强部件时完成整个任务的时间。
加速比反映了使用增强部件后完成一个任务比不使用增强部件完成同一任务加快了多少。加速比主要取决于两个因素:
1)在原有的计算机上,能被改进并增强的部分在总执行时间中所占的比例。
2)通过增强的执行方式所取得的改进,即如果整个程序使用了增强的执行方式,那么这个任务的执行速度会有多少提高,这个值是在原来条件下程序的执行时间与使用增强功能后程序的执行时间之比。
新的执行时间=原来的执行时间*((1-增强比例)+增强比例/增强加速比)
总加速比=原来的执行时间/新的执行时间=1/((1-增强比例)+增强比例/增强加速比)
94、系统性能-负载均衡,是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。
95、系统性能-负载均衡,比较常用的负载均衡技术主要有如下几种:
1)基于DNS的负载均衡;
2)代理服务器负载均衡;
3)地址转换网关负载均衡;
4)协议内部支持负载均衡;
5)NAT负载均衡;
6)反向代理负载均衡;
7)混合型负载均衡。
96、系统性能-性能评估,常用的方法有时钟频率法、指令执行速度法、等效指令速度法、数据处理速率法、综合理论性能法和基准程序法。
1)时钟频率法
一般来说,指令周期(指令级)由若干个机器周期(操作级)组成,一个机器周期由若干个时钟周期(动作级)组成。指令平均执行速度=1/指令周期
2)指令执行速度法
用加法、浮点运算速度来衡量计算机的速度。MIPS和MFLOPS的概念。
22
3)等效指令速度法,吉普森混合法或混合比例计算法。等效指令速度法是指通过各类指令在程序中所占的比例(Wi)进行计算得到的。若各类指令的执行时间为ti,则等效指令的执行时间T=sum(Wi*ti),i从1-n进行变化,式中n为指令类型。
4)数据处理速率法PDR,PDR与每条指令和每个操作数的平均位数以及每条的平均运算速度有关,其计算方法是:PDR=L/R,其中L=0.85G+0.15H+0.4J+0.15K,
R=0.85M+0.09N+0.06P。式中G是每条定点指令的位数,M是平均定点加法时间,H是每条浮点指令的位数,N是平均浮点加法时间,J是定点操作数的位数,P是平均浮点乘法时间,K是浮点操作数的位数。PDR不能全面反映计算机的性能。用CTP(Compsite Theoretical
Performance,综合理论性能)来取代。
5)综合理论性能法CTP
6)基准程序法,目前一致承认的测试性能的较好方法,有多种多样的基准程序,如主要测试整数性能的基准程序逻辑、测试浮点性能的基准程序。
1)Khrystone基准程序;
2)linpack基准程序;
3)Whetstone基准程序;
4)SPEC(System Performance Evaluation Cooperative,系统性能评估机构)基准程序,有两种测试方法,包括测试单个任务有多快[速度测试],在一定时间内能完成多少个任务[吞吐率测试];两种测试方法又分为基本测试和非基本测试。
5)TPC(Transaction Processing Council,事务处理委员会)基准程序。TPC用以评测计算机在事务处理、数据库处理、企业管理与决策支持系统等方面的性能。该基准程序的评测结果用每秒完成的事务处理数TPC来表示。包括TPC-A,TPC-B,TPC-C,TPC-D,TPC-H,
TPC-R,-A基准程序规范用于评价在联机事务处理环境下的数据库和硬件的性能,不同系统之间用性能价格比进行比较。
6 架构设计
97、架构设计-软件产品线,根据CMI/SEI的定义,软件产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统是遵循一个预描述的方式,在公共的核心资源基础上开发的。
软件产品线主要由核心资源和产品集合等组成。核心资源是领域工程所有结果的集合,是产品线中产品构造的基础。
软件产品现开发有4个基本技术特点,即过程驱动、特定领域、技术支持和架构为中心。
与其他软件开发方法相比,组织选择软件产品线的宏观上的原因有:对产品线及其实现所需的专家知识领域的清楚界定;对产品线的长期远景进行了战略性规划。
98、架构设计-产品线的过程模型,包括双生命周期模型、SEI模型和三生命周期模型。
1)双生命周期模型
来自STARS,分成两个重叠的生命周期:领域工程和应用工程。两个周期内部都分成分析、涉及和实现三个阶段。
领域工程阶段的主要任务有:1)领域分析;2)领域设计;3)领域实现。
应用工程阶段的主要任务有:1)需求分析;2)系统设计;3)系统实现。
在模型中定义了一个软件工程化的开发过程,目的是提高软件生产率、可靠性和质量,降低开发成本,缩短开发时间。
2)SEI模型
SEI将产品线的基本活动分为三部分,分别是核心资源开发(领域工程)和产品开发(应用工程)和管理。
23
从本质上来看,产品线开发包括核心资源的开发和使用核心资源的产品开发,这两者需要技术和组织的管理、核心资源的开发和产品开发可同时进行,也可交叉进行。
SEI模型的主要特点如下:
(1)循环重复时产品线开发过程的特征,也是核心资源开发、产品线开发以及核心资源和产品之间协作的特征;
(2)核心资源开发和产品开发没有先后之分;
(3)管理活动协调整个产品线开发过程的各个活动,对产品线的成败负责;
(4)核心资源开发和产品开发是两个互动的过程,三个活动和整个产品线开发之间也是双向互动的。
3)三生命周期模型
Fred针对大型软件企业的软件产品线开发对双生命周期模型进行了改进,提出了三生命周期模型。
企业工程阶段的主要任务:操作计划、市场计划和企业体系结构计划;
领域工程/产品线工程阶段的主要任务:产品线确认、领域分析和市场分析、架构开发、基础设施开发;
领域工程/产品线工程应用阶段的主要任务:商业市场分析与计划、系统需求推理、系统设计配置和系统成分;
在领域工程和应用工程之间的双向交互中添加核心资源管理作为桥梁,核心资源管理和领域工程、应用工程之间的支持和交互是双向的,以便于产品线核心资源的管理和演化。
99、架构设计-产品线的组织架构,分负责核心资源的小组和负责产品的小组。
对核心资源小组的设立上,有设独立的(公司研发规模为50~100人)和融入式(只设专人负责核心资源开发的管理)。
组织模型分开发部门(研发规模<=30人)、商务部门(30人<研发规模<=100人)、理领域工程部门(100人<研发规模)、层次领域工程部门(研发规模巨大)
动态组织结构,适合语言中小型软件开发组织。根据产品线的建立方式和发展阶段、成熟程度的变化,由一种组织结构向另一种组织结构演变。
100、架构设计-产品线的建立方式,通常有4种方式,其划分依据有两个,基于组织用演化还是革命式引入产品线开发过程;基于现有产品还是开发全新的产品线。
4种产品的基本特征:
(1)将现有产品演化为产品线
优点:通过对投资回报周期的分解、对现有系统演化的维持,使产品线方法的实施风险降到了最小;
缺点:完成产品线资源的总周期和总投资都比使用革命方式要大。
(2)用软件产品线替代现有产品集
优点:总周期和总投资较演化方法要少;缺点:因重要需求的变化导致的初始投资报废的风险加大。第一个产品面世时间推后。
(3)全新软件产品线的演化
优点:先期投资少,风险较少,第一个产品面世时间早。缺点:已有的产品线核心资源会影响新产品的需求协调,使成本加大。
(4)全新产品线的开发
优点:一旦产品线核心资源完成后,新产品的开发速度将非常快,总成本也将减少;缺点:对新领域的需求很难做到全面和正确,使得核心资源不能像预期的那样支持新产品的开发。
24
7 系统可靠性
101、系统可靠性,是系统在规定的时间内及规定的环境条件下完成规定功能的能力,也就是系统无故障运行的概率。故障是系统行为与需求的不符,故障有等级之分。系统可靠性可以通过历史数据和开发数据直接测量和估算出来。
102、可靠性-系统故障,是指由于部件的失效、环境的物理干扰、操作错误或不正确的设计引起的硬件或软件中的错误状态。错误(差错)是指故障在程序或数据结构中的具体位置。错误与故障位置之间可能出现一定距离。
103、可靠性-故障或错误的表现形式:永久性、间歇性、瞬时性。
104、可靠性-故障模型,对故障的表现进行抽象,有4个级别的故障模型:
(1)逻辑级:包括固定型、短路、开路和桥接故障。
(2)数据结构级:故障在数据结构上的表现为差错。常见的差错有独立差错、算术差错和单向差错。
(3)软件故障和软件差错。 软件故障是指软件设计过程造成的与设计说明不一致,软件故障在数据结构或程序输出中的表现称为软件差错。常见的软件差错有非法转移、误转移、死循环、空间溢出、数据执行和非法数据。
(4)系统级:故障在系统级上的表现为功能错误。
105、可靠性-与系统故障模型对应的就是系统可靠性模型。
(1)时间模型:软件的平均无故障时间为MTBF=(I-Ec(t))/(C*E0),其中I为软件中的指令数,C为风险函数的比例常数,E0为t=0时软件中的故障数,Ec(t)为在[0,t]内纠正的故障数。在时间模型中,确定在调试前软件中的故障数目,基本上是不可能的事情。
(2)故障植入模型。故障植入模型是一个面向错误数的数学模型,其目的是以程序的错误数作为衡量可靠性的标准。
(3)数据模型:在数据模型下,对于一个预先确定的输入环境,软件的可靠度定义为在n次连续运行中软件完成指定任务的概率。R(n)=R1的n次幂=(1-P1)的n次幂,P1为软件运行一次出现差错概率,n为n次运行不出现差错的概率。
106、可靠性-可靠性指标与评估。可靠性指标主要有平均无故障时间、平均故障修复时间以及平均故障间隔时间等。
(1)平均无故障时间:可靠度为R(t)的系统的平均无故障时间MTTF定为从t=0时到故障发生时系统的持续运行时间的期望值,计算公式如下:MTTF=(R(t)dt)从0到无限的积分。
如果R(t)=e的-rt次幂,则MTTF=1/r。r为失效率,是指器件或系统在单位时间内发生失效的预期次数,在此假设为常数。
(2)平均故障修复时间:可用度为A(t)的系统的平均故障修复时间MTTR可以用类似于求MTTF的方法求得。修复率是指单位时间内可修复系统的平均次数,则MTTR=1/u
(3)平均故障间隔时间MTBF。对于可靠度服从指数分布的系统,从任一时刻t0到达故障的期望时间都是相等的,因此有MTBF=MTTR+MTTF。在实际应用中,一般MTTR很小,所以通常认为MTBF约等于MTTF。
107、可靠性-可靠性计算,
(1)串联系统的可靠性和失效率为R=R1*R2*R3*...*Rn,r=r1+r2+r3+…+rn
(2)并联系统的可靠性为
R=1-(1-R1)(1-R2)(1-R3)…(1-Rn)
(3)模冗余系统
108、可靠性-可靠性设计,提高计算机可靠性的技术分为避错技术和容错技术。避错是预防和避免系统在运行中出错。容错就是当计算机由于种种原因在系统中出现了数据、文件
25
损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故以前的状态,使系统能够连续正常运行。计算机系统的容错性通常可以从系统的可靠性、可用性和可测性等方面来衡量。
109、可靠性-冗余技术包括结构冗余、信息冗余、时间冗余和冗余附加技术4种。
(1)结构冗余,按其工作方式可分静态冗余、动态冗余和混合冗余。静态冗余分三模冗余和多模冗余。动态冗余主要方式是多重模块待机储备。需要一个检测、切换和恢复的过程。工作模式分为热备份系统(双重系统)和冷备份系统(双工系统、双份系统)。
(2)信息冗余,在除实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法。例如,纠错码就是信息冗余的例子。
(3)时间冗余,使用附加一定时间的方法来完成系统功能。主要用在故障检测、复查或故障屏蔽上。时间冗余以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。
(4)冗余附加技术,指为实现上述冗余技术所需的资源和技术,包括程序、指令、数据、存放和调动它们的空间和通道等。
故障恢复的策略一般有两种,分别是前向恢复和后向恢复。
110、可靠性-软件容错,主要目的是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高软件可靠性,保证整个计算机系统的正常运行。软件容错技术主要有恢复块方法、N版本程序设计和防卫式程序设计。
(1)恢复块方法:动态故障屏蔽技术,采用后向恢复策略。
(2)N版本程序设计,静态的故障屏蔽技术,采用前向恢复的策略。
(3)防卫式程序设计,不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想史通过在程序中包含错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确状态中去。其实现策略包括错误检测、破坏估计和错误恢复。
提高容错能力也可以从计算机平台环境、软件工程和构造异常处理模块的不同方面达到。此外也可以利用高级程序设计语言本身的容错能力,采取相应的策略。
111、可靠性-集群技术,集群是由两台以上节点机构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力。
112、可靠性-集群的分类,包括高性能计算科学集群、负载均衡集群和高可用性集群。
113、可靠性-集群的硬件配置,包括镜像服务器双机、双机与磁盘阵列柜(单点错的问题)、光纤通道双机双控集群系统(SCSI的每条通道最多可连接15个设备、光纤仲裁环路最多可以连接126个设备)。
8 软件架构设计
114、软件架构设计-DSSA,是在一个特定应用领域中为一组应用提供组织结构参考的标准软件架构,是一个特定的问题领域中支持一组应用的领域模型、参考需求和参考架构等组成的开发基础,其目标是支持在一个特定领域中多个应用的生成。
115、软件架构设计-DSSA中的领域的含义,从功能覆盖的范围角度可以有两种理解方式。
(1)垂直域。定义了一个特定的系统簇,包含整个系统簇内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件架构。
(2)水平域。定义了在多个系统和多个系统簇中功能区域的共有部分,在子系统级上涵盖多个系统簇的特定部分功能,无法为系统提供完整的通用架构。
116、软件架构设计-DSSA基本活动和阶段,包括领域分析、领域设计和领域实现。
26
(1)领域分析阶段,主要目标获得领域模型。
(2)领域设计阶段,主要目标获得DSSA。
(3)领域实现阶段,主要目标是依据领域模型及DSSA开发和组织可重用信息。
参与DSSA的人员可以划分为4种角色:领域专家、领域分析师、领域设计人员和领域实现人员。
117、软件架构设计-DSSA建立和开发过程分为五个阶段(tracz),每个阶段可以进一步划分为一些步骤或子阶段。每个阶段包括一组需要回答的问题,一组需要的输入,一组将产生的输出和验证标准。DSSA的建立过程是并发的、递归的、反复的,或者它是螺旋型的。
(1)定义领域范围:确定领域应用需要满足的用户需求;
(2)定义领域特定的元素:制订领域字典和领域术语的同义词词典(或识别领域中各种应用间的共同性和差异性)。
(3)定义领域特定的设计和实现需求约束:描述解空间中的特性,识别约束并记录其对设计和实现决定造成的后果,以及记录对处理这些问题时产生的所有问题和讨论。
(4)定义领域模型和架构:产生该领域的参考架构,并说明构件的语法和语义。
(5)产生和搜集可复用产品:为DSSA增加构件,为问题域实现新应用提供支持
DSSA的建立过程的目的是将用户的需要映射为基于实现限制集合的软件需求。
DSSA的建立需要架构设计师对所在特定应用领域(包括问题域和解决域)必须精通,他们要找到合适的抽象方式来实现DSSA的通用性和可重用性。通常DSSA以一种逐渐演化的方式发展。
9 分布式系统
118、分布式系统-由多个分散计算机经过互联网络构成的统一计算机系统,其中各个物理和逻辑资源部件既相互配合,又高度自治地在全系统范围内实现资源管理和在动态基础上实现任务分配,并且能并行分布式程序。
与网络操作系统的主要区别在于分布式操作系统把资源看成是整体占用并作为一个整体进行管理,通过整体机制而非局部机制来处理运行过程,系统基于单一的策略来控制和管理。
119、分布式系统-操作系统的特点,
(1)具有干预互联的各处理机之间交互关系的责任。
(2)控制结构是分布式的。分布式操作系统一般由内核和实用程序组成。
(3)按其逻辑功能可分为全局操作系统和局部操作系统两部份。
(4)基本调度单位不是一般系统中的进程,而是一种任务队列,即多个处理机上的并发进程的集合。
(5)组成情况与系统的耦合关系很大。
(6)为加强各处理机间的动态协作。
120、分布式系统-操作系统的构造方法
(1)从头开始。优点:在于可以给设计者以完全的自由度;缺点:在于其中所涉及到的所有系统软件和应用软件几乎要全部修改。
(2)修改、扩充现有的操作系统。优点:通过尽量保持与集中式操作系统的相容性而使重新编写新软件的工作量减到最少。缺点:开发期间的某些决策由于要考虑到如何与原操作系统相容而不得不采用折衷方案。
(3)层次式。在集中式操作系统和用户之间增加一个层次以提供分布处理系统和通信功能。它类似网络操作系统,具有前述两种方法的优点且不必修改现在的操作系统。缺点:所有对底层操作系统引用必须经由中间层而使系统性能受到了衰减。
121、分布式数据库系统-由一组数据组成的,这组数据分布在计算机网络的不同计算机
27
上,网络中的每个节点具有独立处理的能力(场地自治),它可以执行局部应用,同时每个节点也能通过网络通信子系统执行全局应用。
122、分布式数据库系统特点:
(1)数据独立性;(2)集中与自治共享结合的控制结构;(3)适当增加数据冗余度;(4)全局的一致性、可串行性和可恢复性。
123、分布式数据系统的目标,主要包括技术和组织两方面的目标:
(1)适应部门分布的组织结构,降低费用;
(2)提高系统的可靠性和可用性;
(3)充分利用数据库资源,提高现有集中式数据的利用率;
(4)逐步扩展处理能力和系统规模。
124、分布式数据库-分布式数据存储可从数据分配和数据分片考察。
数据分配策略包括集中式、分割式、全复制式、混合式。分配策略评估主要从存储代价、可靠性、检索代价和更新代价。
数据分片是指数据存放单位,包括水平分片、垂直分片、混合型分片。分片遵循如下基本准则:完备性条件、重构条件、不相交条件。
125、分布式数据库系统-架构,分4级,分别为全局外模式、全局概念模式、分片模式和分布模式。
126、分布式的DBMS的组成,分4个,包括局部的LDBMS、全局GDBMS、全局数据字典和通信管理。
127、分布式数据库系统-分布透明性也称分布独立性,指用户不必关心数据的逻辑分片,不必关心数据物理位置分配的细节,也不必关系各个场地上数据库数据模型。分布透明性可归入物理独立性的范围,包括分片透明性、位置透明性、局部数据模型透明性三个层次。
128、分布式文件系统DFS为整个企业网络上的文件系统资源提供了一个逻辑树结构。用户可以抛开文件的实际物理位置,仅通过一定的逻辑关系就可以查找和访问网络的共享资源。用户能够像访问本地文件一样访问分布在网络上多个服务器上的文件。DFS的透明性包括访问透明性、位置透明性、移动透明性、性能透明性和伸缩透明性。
130、分布式系统设计难点在于其组件的异构性、开放性、安全性、可伸缩性、故障处理以及组件的并发性和透明性。分布式用两种完全不同方式进行协同和合作,包括基于实例的协作、基于服务的协作。
131、分布式系统设计-基于实例的协作,常使用被称为“代理”的方式,某个对象实例调用远程对象时,可以只和代理打交道,由代理完成和远程对象实例的通信工作:创建远程对象、提交请求、得到结果,然后把结果提交给调用的对象实例。这种环境叫近连接。
132、分布式系统设计-基于服务的协作,常采用层次式架构。只提供远程的对象接口,用户可以调用这些方法,却无法远程创建和销毁远程对象实例。这样就减少了交互,简化了编程。
134、基于WEB分布式系统设计,传统的B/S架构存在的不足,难以进行大规模的实物处理以及大量的实时的用户交互。
分布式对象技术是指采用面向对象技术开发的两个或多个软件互相共享信息,主要解决如何在分布系统中集成各组件的问题。三大技术分为CORBA、COM/DCOM、EJB。
10 系统开发知识
135、过程是指一系列活动、任务和它们之间的关系,它们共同把一组输入转换成所需要的输出;活动是一个过程的组成元素;任务是构成活动的基本元素,由若干个任务构成一项活动。
136、软件开发生命周期还提供一种过程,这种过程能用确定、控制和改进软件生存周
28
期过程。软件生存周期的过程、活动和任务表示如下:
主要:获取供应开发运行维护5过程
支持:文档配置质量验证确认评审审计解决8过程
组织:管理基础设施改进培训4过程
137、软件开发方法:软件方法学是以软件开发方法为研究对象的学科。从开发风范上来看分为自顶向下和自底向上开发方法。从性质上来看,分为形式化和非形式化方法。从适用范围上看,分为整体性方法和局部性方法。软件自动化方法是尽可能借助计算机系统实现软件开发的方法,其实现途径主要有过程途径(过程实现)、演绎途径(演绎综合)、转换途径(程序转换)和归纳途径(归纳综合)。
138、净室方法是软件开发的一种形式化方法。使用盒结构规约进行分析和设计建模,并且强调将正确性验证作为发现和消除错误的主要机制,使用统计的测试来获取认证被交付的软件的可靠性所必需的出错率信息。净室方法主要使用如下三种盒类型:
(1)黑盒刻画系统或系统的某部份行为。(2)状态盒类似于对象的方式封装状态数据和服务(操作)。(3)清晰盒。定义状态盒所蕴含的变迁功能。包含了对状态盒的过程设计。
净室方法是一种严格的软件工程方法,它是一种强调正确性的数学验证和软件可靠性认证的软件过程模型,其目标和结果是非常低的出错率,这是使用非形式化方法难于或不可能达到的。
139、结构化方法:属于自顶向上的开发方法,其基本思想是“自顶向下,逐步求精”,强调开发方法的结构合理性及所开发软件的结构合理性。包括结构化分析SA、结构化设计SD和结构化程序设计SP.
(1)结构化方法的基本原则:面向用户的观点;严格去分工作阶段;自顶向下地完成系统的开发工作;充分考虑变化的情况;工作成果文献化、文档化。
(2)结构化分析:给出一组帮助系统分析人员产生功能规约的原理和技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表及判定树。
(3)结构化设计:给出一组帮助设计人员在模块层次上区分设计质量的原理和技术。通常与SA方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。
140、面向对象方法:是当前的主流开发方法。主要包括OMT对象建模技术方法、Coad/Yourdon方法、OOSE面向对象的软件工程方法、Booch方法。而OMT、OOSE和Booch最后统一成UML方法。
(1)Coad/Yourdon方法:由面向对象分析和面向对象设计(OOA、OOD)构成。OOA的主要任务是建立问题域分析模型:类与对象层、属性层、服务层、结构层和主题层等5个层次组成,分为标识对象类、标识结构与关联、划分主题、定义属性和定义服务等5个步骤来完成整个分析工作。OOD中将继续贯穿OOA中的5个层次和5个活动,它由4个部份组成,分别是人机交互部件、问题域部件、任务管理部件和数据管理部件;主要活动就是这4个部份的设计工作。
(2)Booch方法。一个螺旋上升的过程,每个周期包括4个步骤,分别标识类和对象、确定类和对象的含义、标识关系、说明每个类的接口和实现。Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型(类图、对象图)和物理模型(模块图、进程图),描述了系统的构成和结构。动态模型包括状态图和时序图。
Booch方法不仅建立了开发方法,还提出了设计人员的技术要求,以及不同开发阶段的人力资源配置。
29
(3)OMT方法。一种软件工程方法学,支持整个软件生存周期,覆盖了问题构成分析、设计和实现等阶段。使用了建模思想,讨论如何建立一个实际的应用模型。从三个不同而又相关的角度建立了三类模型,分别是对象模型、动态模型和函数模型。
OMT建模时,包括4个活动,分别是分析、系统设计、对象设计和实现。
(4)OOSE方法。在OMT的基础上,对功能模型进行了补充,提出了用例的概念,最终取代了数据流图来进行需求分析和建立功能模型。OOSE方法采用5类模型来建立目标系统,包括需求模型、分析模型、设计模型、实现模型和测试模型。OOSE的开发活动主要有3类,分别是分析、构造和测试。分析活动产生需求模型和分析模型。构造活动包括设计和实现两个子过程,分别产生设计模型和实现模型,测试过程包括单元测试、集成测试和系统测试三个过程,共同产生测试模型。
141、原型法。原型是指模拟某种产品的原始模型。在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部份重要特性。
(1)原型的分类:建立原型的主要目的是为了解决在产品开发早期阶段需求不确定的问题,明确并完善需求、探索设计选择方案、发展为最终的产品。从实现功能划分为水平原型(行为模型,功能的导航,主要用在界面上)和垂直模型(结构化模型,实现一部份功能,组要用在复杂的算法上。)从最终结果来分,分为抛弃型原型(探索型,达到目的,抛弃原型)和演化型原型(开发增量式产品提供基础,是螺旋模型的一部份,也是面向对象软件开发过程的一部分,适用Web项目)。也可分为实验型、探索型和演化型。
(2)原型类型的选择,采用原型方法,必须从系统结构、逻辑结构、用户特征、应用约束、项目管理和项目环境来决定。
(3)原型生存期:包括原型开发和使用过程。具体细化过程包括快速分析、构造原型、运行和评价原型、修正和改进、判定原型完成、判定原型细部是否说明、原型细部的说明、判定原型效果、整理原型和提供文档。
(4)原型开发技术:包括可执行规格说明、基于场景的设计、自动程序设计、专用语言、可复用的软件构件、简化假设和面向对象技术。
142、逆向工程(软件再工程):需要对旧的软件进行重新处理、调整和提高其可维护性。
(1)再工程:对现有软件系统的重新开发过程,包括逆向工程(反向工程)、新需求的考虑(软件重构)、正向工程三个步骤。
(2)软件重构:对源代码、数据进行修改,并不修改软件体系结构,而是关注模块的细节。分代码重构、数据重构。重构的意义在于提高软件质量和生产率,减少维护工作量,提高软件可维护性。
(3)逆向工程:分析程序,力图在比源代码更高的抽象层次上建立程序表示的过程。逆向工程,理想地,抽象层次应该尽可能高,应该能够导出过程的设计表示(底层的抽象)、程序和数据结构信息(稍高层次抽象)、数据和控制流模型(相对高层抽象)、实体关系模型(高层抽象)。
逆向工程过程完整性是指在某抽象层次提供的细节程度。在大多数情况,随着抽象层次增高,完整性就降低。
143、软件开发模型:
(1)瀑布模型(生命周期法):过程分为软件计划、需求分析、软件设计、软件编码、软件测试和运行维护等6阶段。
(2)演化模型(变换模型):在快速开发一个原型的基础上,根据用户在调用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化最终的软件产品。
(3)螺旋模型:将瀑布模型和变换模型相结合,综合了两者的优点,并增加了风险分
30
析。以原型为基础,沿着螺线自内向外旋转,每旋转一圈都要制定计划、风险分析和实施工程及客户评价等活动,并开发原型的一个新版本。
(4)喷泉模型。为软件复用和生存周期中多项开发活动的集成提供了支持,主要支持面向对象的开发方法。
(5)智能模型:基于知识的软件开发模型,综合了上述若干模型,并与专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人员完成开发工作,并维护在系统规格说明一级进行。
(6)增量模型。融合了瀑布模型的基本成分(重复的应用)和原型实现的迭代特征。增量模型强调每一个增量均发布一个可操作的产品。开始是一个核心的产品。
(7)迭代模型:产生产品发布的全部开发活动和要使用该发布必须的所有其他外围元素。每次迭代都会产生一个可以发布的产品。适合于强调项目实现不能完整定义产品所有需求、计划多期开发的软件开发中。
(8)构件组装模型:基于构建的软件开发CBSD模型,利用模块化方法,将整个系统模块化,并在一定构建模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。CBSD模型融合了螺旋模型的许多特征,本质上是演化型的,开发过程是迭代的。
由软件的需求分析和定义、架构设计、构件库的建立、应用软件的构建、测试和发布5个阶段完成。
(9)V模型,强调测试是一个同开发过程同样重要的过程,描述了一些不同的测试级别包括,需求分析--验收测试,概要设计—系统测试,详细设计—集成测试,编码—单元测试。
(10)快速应用开发模型RAD,是一个增量型的软件开发过程模型,强调极短的开发周期。活动包括业务建模、数据建模、过程建模、应用程序生成、测试与交付。
与瀑布模型相比,RAD模型不采用第三代程序设计语言来创建软件,而采用基于构件的开发方法,复用已有的程序结构或使用可复用构件或者创建可复用的构件。
RAD模型的缺陷:(1)并非所有应用都适合RAD。不能被模块化或高性能化,都合适。(2)开发者和客户需求分析不能在短期内达成一致,不合适。(3)用于信息系统开发,高风险的项目不合适。
(11)敏捷方法模型。有很多流派,包括XP、自适应软件开发、水晶方法和特性驱动开发。
从开发的角度,主要的关注点有短平快、小版本发布、较少的文档、合作为重、客户直接参与、自动化测试、适应性计划调整和结对编程;
从管理者的角度,主要关注点测试驱动开发、持续集成和重构。
敏捷方法主要适用于小规模软件的开发和小型团队的开发。XP由价值观、原则、实践和行为4个部份组成,彼此相互依赖、关联、并通过行为贯穿于整个生命周期。XP的核心是其总结的4大价值观,即沟通、简单、反馈和勇气。
(12)统一过程模型UP:是一个通用过程框架。基于构件的,建模时用UML。UP具有三个显著的特点:用例驱动、以基本架构为中心、迭代和增量。
Up中软件过程在时间上被分解为4个阶段,分别是初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经哦。初始阶段的任务为系统建立业务模型并确定项目的边界;细化阶段的任务是分析问题领域,建立健全的架构基础,淘汰项目中最高风险的元素。构建阶段,要开发所有剩余的构件和应用程序的功能,把这些构件集成为产品,并进行详细测试。交付阶段的重点是确保软件对最终用户是可用的,主要任务是进行B测试,制作产品发布版本;对最
31
终用户支持文档定稿;按用户的需求确认新系统;培训用户和维护人员;获得用户对当前版本的反馈,基于反馈调整产品。
中等规模项目的开发周期和工作量和进度分配如下:
工作量:初始阶段【5%】, 细化阶段【20%】,构建阶段【65%】,交付阶段【10%】
进度:初始阶段【10%】, 细化阶段【30%】,构建阶段【50%】,交付阶段【10%】
UP工作流程分为两部分,即核心工作流程(包括需求建模、分析设计、实施、测试和部署)与核心支持工作流程(环境、项目管理、配置和变更管理)。
143、系统规划与问题定义
总体规划阶段的主要目标是制定软件的长期发展方案,决定软件在整个生命周期内的发展方向、规模和发展进程。主要任务包括制定软件的发展战略;确定组织的主要信息需求,形成软件的总体结构方案,安排项目开发计划;制定系统建设的资源分配计划。
总体规划分为如下几个步骤:
(1)对当前系统进行初步的调查。(2)分析和确定系统的目标。(3)分析子系统的组成以及基本功能。(4)拟定系统的实施方案。(5)进行系统可行性分析。(5)编写可行性报告。
规划方法包括关键成功因素法、战略目标集转化法、企业系统规划法。
144、系统可行性分析:任务是研究系统开发的必要性和可能性,用最小的代价在尽可能短的时间内确定问题是否值得解决和是否能解决。可行性的内容包括技术可行性、经济可行性和操作可行性。
可行性分析的步骤:(1)核实问题定义和目标;(2)研究分析现有系统;(3)为新系统建模;(4)用户复核;(5)提出并评价解决方案;(6)确定最终推荐的解决方案;(7)草拟开发计划;(8)提交可行性分析报告。
145、系统的成本效益分析:首先估算新系统的开发成本,然后与可能取得的效益(有形的和无形的)进行比较权衡。有形的效益可以用货币的时间价值、投资回收期和投资回收率等指标进行度量。无形的效益主要是从性质上、心理上进行衡量。
系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。运行费用包括操作员人数、工作时间和消耗的物质等。
(1)货币的时间价值:成本估算的目的是要求对项目投资。通常用利率表示货币的时间价值。
按单利与复利计算利息,单利计算公式F=P*(1+i*n).其中P为本金,n为年期,i为利率,F为P在n年后的价值。复利公式F=P*(1+i)的n次幂
按折现率与折现系数。现值P=F/(1+i)的n次幂
(2)净现值分析法。净现值(Net Present Value,NPV)是指项目在生命周期内各年的净现金流量按照一定的、相同的贴现率到初时的现值之和。净现值率NPVR是项目净现值与项目投资总额现值P之比,是一种效率型指标,其经济含义是单位投资现值所能带来的净现值。NPVR=NPV/P。
(3)现值指数分析法NPVI。
(4)内含报酬率的分析。当其利率小于内含报酬率时,方案可行,否则不可行。如果有好几个可行方案,以内含报酬率越大为越好。
内含报酬率是项目投资的盈利率,由项目现金流量决定,即内生决定的,反映了投资的使用率。
(5)投资回收期:指投资回收期的期限,也就是用投资方案所产生的净现金收入回收初始全部投资所需的时间。考虑资金的时间价值,可分为静态投资回收期(不考虑资金时间价值因素)和动态投资回收期(考虑资金时间价值因素)。
32
(6)投资回收率(投资收益率):反映企业投资的获利能力,其计算公式为投资回收率=1/动态投资回收期*100%.
146、需求工程包括创建和维护系统需求文档所必需的一切活动的过程,可分为需求开发和需求管理两大工作。
需求开发:获取分析定义验证
需求管理:基线变更跟踪。
需求开发是主线,是目标,需求管理是支持,是保障。需求开发是努力更清晰、更明确地掌握客户对系统的需求,需求管理则对需求的变化进行管理的过程。
147、需求开发:深入软件的功能和性能,确定软件设计的限制和软件与其他系统元素的接口细节,定义软件的其他有效性需求,细化软件要处理的数据域。
需求开发主要确定开发软件的功能、性能、数据和界面等。
需求开发4阶段,包括
(1)问题识别;
(2)分析和综合。常用的方法为面向数据流的结构化分析方法、面向数据结构的jackson方法、面向对象的分析方法,以及用于动态模型的状态迁移图和petri网。
(3)编制需求分析的文档。
(4)需求分析与评审。
需求分类包括功能、非功能和设计约束。还可以划分业务需求、用户需求和系统需求。
148、需求获取:主要解决需求调查的问题。做好需求调查,必须了解如下三个问题:what、where和how等。
(1)要捕获的信息what:与问题域相关的信息;与要求解决的问题相关的信息;用户对系统的特别期望与施加的任何约束信息。
(2)信息的来源。一般你需要的信息藏于客户、原有系统、原有系统用户、新系统的潜在用户、原有产品、竞争对手的产品、领域专家、技术法规和标准里。
(3)需求捕获技术。用户访谈、用户调查、现场观摩、阅读历史文档、联合讨论会。
(4)需求捕获策略。 采用迭代式的演化过程。
149、需求分析:有几大类型:结构化分析方法、面向对象分析方法、面向问题域的分析方法 (PDOA)。
(1)业务流程分析:目的:了解各个业务流程的过程,明确各个部门之间的业务关系和每个业务处理的意义,为业务流程的合理化改造提供建议,为系统的数据流程变化提供依据。
业务流程分析步骤如下:
1)通过调查掌握基本情况;2)描述现有的业务流程;3)确认现有业务流程;4)对业务流程进行分析;5)发现问题,提出解决方案;6)提出优化后的业务流程。
(2)数据流图DFD:结构化分析中的重要方法和工具,是表达系统内数据的流动并通过数据流描述系统功能的一种方法。DFD还可以被认为是一个系统模型。
DFD从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所完成的功能。
DFD的主要作用如下:
1)理解和表达用户需求的工具,是系统分析的手段;
2)概括地描述了系统的内部逻辑过程,是系统分析结果的表达工具;系统设计的重要参考资料,是系统设计的起点
3)作为一个存档的文字材料,是进一步修改和充实开发计划的依据。
在DFD中,会出现4种基本符号,分别是数据流[用箭头表示]、加工[用圆圈表示]、数
33
据存储[用直线表示]和外部实体(数据源及数据终点)[用方框表示]。
(3)数据字典,关于数据的信息的集合,也就是对DFD中包含的所有元素的定义的集合。DFD和数据字典共同构成系统的逻辑模型。
数据字典的设计包括数据流设计、数据元素字典设计、数据处理字典设计、数据结构字典设计和数据存储设计。数据字典的每一个词条中应包含以下信息名称、别名或编号、分类、描述、何处使用。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有结构化语言、判定树及判定表。
150、需求定义,包括严格定义法和原型方法。
151、软件设计:分为概要设计和详细设计。概要设计也称为高层设计或总体设计,即将软件需求转化为数据结构和软件的系统结构。概要设计主要包括设计软件的结构、确定系统由哪些模块组成、以及每个模块之间的关系。概要设计采用结构图或层次图或HIPO来描述程序结构。
详细设计也称为底层设计,即对结构图进行细化,得到详细的数据结构与算法。如果采用结构化设计,则详细设计的任务就是为每个模块进行设计。它采用自顶向上、逐步求精的设计方式和单入口单出口的控制结构。经常使用的工具是程序流程图、盒图、PAD图(问题分析图)及PDL伪代码。
软件设计的主要任务:
(1)制定规范,作为设计的共同标准。
(2)完成软件系统结构的总体设计,将复杂系统按功能划分为模块的层次结构,然后确定模块的功能,以及模块间的调用关系和组成关系。
(3)设计处理方式,包括算法、性能、周转时间、响应时间、吞吐量和精度。
(4)设计数据结构
(5)可靠性设计
(6)编写设计文档,包括概要设计说明书、详细设计说明书、数据库设计说明书、用户手册和初步的测试计划等;
(7)设计评审,主要是对设计文档进行评审。
152、软件设计活动:包括数据设计、软件结构设计、人机界面设计(接口设计)和过程设计等4个既独立又互相联系的活动。
153、结构化设计:包括架构设计、接口设计、数据设计和过程设计。是面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、逐步求精和模块化的过程。
结构化设计的特征:抽象化(过程的抽象、数据的抽象、模块的抽象);自顶向上,逐步求精;信息隐蔽;模块独立。
模块的内聚类型:功能、顺序、通信、过程、瞬时、逻辑、偶然
模块的耦合类型:非直接、数据、标记、控制、外部、公共、内容。
154、工作流设计。工作流WF是自动运作的业务过程部份或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流是一系列相互衔接、自动进行的业务活动或任务。
工作流管理WFM是人与计算机共同工作的自动化协调、控制和通信,在计算机化的业务过程上,通过在网络上运行软件,使所有命令的执行都处于受控状态。在工作流管理下,工作量可以被监督,分派工作到不同的用户达成平衡。
工作流管理系统WFMS通过软件定义、创建工作流并管理其执行。
工作流机是一个为工作流实例的执行提供运行环境的软件服务或“引擎”。工作流的一
34
个重要功能就是控制实例和活动实例的状态转换。工作流管理联盟的参考模型中为过程实例的运行状态和活动实例的状态进行了定义,并给出了状态转换的条件。
155、软件测试,是软件质量保证的主要手段之一,也是在将软件交付给客户之前所必须完成的步骤。
软件测试的目的验证软件是否满足软件需求规格说明和软件设计所规定的功能、性能及软件质量特性的要求,为软件质量的评价提供依据。它带来如下作用:
(1)找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理人员发现当前所采用的软件过程的缺陷,以便改进。同时这种分析也能帮助我们设计出有针对性的检测方法,改善测试有效性;
(2)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
156、软件测试类型分两大类,包括动态测试和静态测试。动态测试通过运行程序发现错误,分为黑盒、白盒和灰盒测试法。
黑盒测试(又称功能测试或数据驱动测试)用例的设计方法有等价类划分、边界值分析、错误推测和因果图。
白盒测试(结构测试)用例设计方法有基本路径测试、循环覆盖测试和逻辑覆盖测试。
灰盒测试,介于上面两者之间,惯出输出对于输入的正确性,同时也关注内部表现。通过一些表征性的现象、事件及标志来判定程序内部的运行状态。
静态测试指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。常采用的方法有桌前检查、代码审查和代码走查。这些方法能有效地发现30%~70%的逻辑设计和编码错误。
157、测试阶段:为了发现错误而执行程序的过程,根据测试目的、阶段的不同,可以把测试分为单元测试、集成测试、确认测试和系统测试等几类。
测试需要一些辅助模块,包括驱动模块和桩模块。单元测试一般采用白盒测试,集成测试一般采用黑盒测试。
软件集成的过程是一个持续的过程,会形成多个临时版本。在不断的集成过程中,功能集成的稳定性是真正的挑战。在每个版本提交时,都需要进行“冒烟”测试,即对程序主要功能进行验证,冒烟测试也称为版本验证测试或提交测试。
确认测试(有效性测试)主要包括验证软件的功能、性能及其他特性是否有用要求(需求)一致。根据用户的参与程度,有四种类型:(1)内部确认测试;(2)Alpha测试;(3)Beta测试;(4)验收测试。
系统测试包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试。
158、性能测试:通过自动化的测试工具模拟多种正常、峰值及异常负载条件来对系统各项性能指标进行测试。
性能测试的目的是验证系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,并优化软件,最后起到优化系统的目的。包括以下几个方面:
(1)评估系统的能力;(2)识别体系中的弱点;(3)系统调优;(4)检测软件中的问题;(5)验证稳定性和可靠性。
性能测试的类型包括负载测试、强度测试和容量测试。
性能测试的步骤:(1)制定目标和分析系统;(2)选择测试度量的方法;(3)学习相关技术和工具;(4)制定评估标准;(5)设计测试用例;(6)运行测试用例;(7)分析测试结果。
负载压力测试(负载测试)中的负载是指系统在某种指定软件、硬件及网络环境下承受的流量。如并发用户数、持续运行时间和数据量等,其中并发用户数是负载压力的重要体现。
35
系统在应用环境下主要承受并发访问用户数、无故障稳定运行时间和大数据量操作等负载压力。
负载压力测试的目的:
(1)在真实环境下检测系统性能,评估系统性能是否可以满足系统的性能设计要求;
(2)预见系统负载压力承受力,对系统的预期性能进行评估;
(3)进行系统瓶颈分析、优化系统。
在网络应用系统中,负载压力测试应重点关注客户端、网络及服务器的性能,关注指标为:
(1)客户端。并发用户数、响应时间、交易通过率及吞吐量等。
(2)网络。带宽利用率、网络负载、延迟、网络传输和应用错误。
(3)操作系统的CPU、内存使用和硬盘I/O等;数据库服务器的会话执行情况、SQL执行情况、资源争用及死锁等;应用服务器的并发连接数、请求响应时间。
159、测试自动化:为提高软件测试的效率,运用既有的测试工具或开发相应的测试程序进行测试的过程叫自动化测试。
测试自动化带来的好处为:
(1)提高测试执行的速度;(2)提高运行的效率;(3)保证测试结果的准确性;(4)连续运行测试脚本;(5)模拟现实环境下受约束的情况。
软件测试自动化要考虑时间有限和资源有限的问题。
测试自动化的内容包括分析自动化(静态分析、动态分析)、功能测试类和系统测试类。
选择测试工具主要企业规模、开发模式和对工具的实际需求,目前测试工具有很多如rational和Mercury,对于产品相对单一,或者开发周期长的项目,更倾向于自己开发测试工具。
160、软件调试:测试发现错误,但不确切知道由什么原因引起的,是由哪段代码引起的。
调试主要由三个步骤组成,它表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。然后仔细研究推断代码以确定问题的原因,并设法改正,最后进行回归测试。
调试方法有三种,包括蛮力法、回溯法和原因排除法。
161、测试设计。软件测试过程包括测试计划、测试设计、测试执行和测试评估等阶段。测试设计的层次包括用户层、应用层、功能层、子系统层和协议层。
用户层测试是面向产品最终使用操作者的测试,重点突出的是从操作者的角度上,测试系统对用户支持的情况,用户界面的规范性、友好性、可操作性,以及数据的安全性等,主要包括用户支持测试、用户界面测试、可维护性测试和安全性测试。
应用层测试是针对产品工程应用或行业应用的测试,重点站在系统应用的角度,模拟实际应用环境,对系统的兼容性、可靠性和性能等进行测试。主要包括性能测试、系统可靠性测试、系统稳定性测试、系统兼容性测试、系统组网测试和系统安装升级测试。
功能层测试是针对产品具体功能实现的测试,主要包括功能覆盖测试、功能分解测试、功能组合测试和功能冲突测试。
子系统层测试是针对产品内部结构性能的测试,重点关注内部性能、模块间接口的瓶颈。主要包括单个子系统性能测试、子系统间的接口瓶颈测试和子系统间的相互影响测试。
协议层测试是针对系统支持的协议的测试,主要包括协议一致性测试和协议互通性测试。
162、测试管理目的:是确保软件测试技术能在软件项目的整个生命周期内得到顺利实施,并产生预期的效果。按管理对象不同,软件测试管理分为测试团队管理、测试计划管理、
36
错误(缺陷)跟踪管理和测试件(testware)管理4个。
163、软件维护,软件在运行/维护阶段对软件产品进行的修改就是维护。软件的可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充和压缩的容易程度。衡量可维护性的因素包括可理解性、可测试性和可修改性。
软件维护站整个软件生命周期的60%~80%,维护的类型主要有改正性、适应性和完善性维护。此外,还包括预防性维护(即预先提高软件的可维护性、可靠性)。维护工作量大致比例为改正性(20%)、适应性(25%)、完善性维护(50%)、预防性维护(5%)。
164、软件开发环境与工具。软件支持环境分为软件开发支持环境和软件生存期支持环境。
软件开发环境把一组相关的工具集成在环境中,可由环境机制和工具集构成。环境机制提供工具集成(数据集成、控制集成、界面集成)和方法集成等机制。工具集包括事务系统规划工具、项目管理工具、支撑工具、分析设计工具、程序设计工具、测试工具、原型建造工具、维护工具和框架工具。
165、软件开发工具,用户辅助软件开发过程活动的各种软件,包括建模工具、设计工具、编程工具、测试工具和项目管理工具等。
(1)建模工具,包括分析模型、设计模型、实现模型和测试模型。系统模型包括分析模型和设计模型。建模工具有Ibm ROSE,Borland Together、Excel WinA&D和QuickUML、Metamill。
(2)设计工具。常用设计工具包括面向对象的设计工具、结构化设计工具和数据库设计工具等。面向对象的IBM Rose 、IBM Rational。面向结构化设计工具WinA&D、数据库设计工具有Rose Data Modeler、PD、AllFusion ERWIN DATA Modeler等。
(3)编程工具。按方法学上分,为结构化和面向对象的编程;从使用方式上分为批处理和可视化;从功能上编辑工具、编译(汇编)工具、组装工具和排错工具。目前大多采用IE环境。典型的可视化编程工具有Viual 、Eclipse、Jbuilder、Delphi等。
(4)测试工具,分为白盒测试、黑盒测试和测试管理工具。白盒测试工具有Compuware的Numega、ParaSoft JavaSolution和C/C++ Solution以及开发源代码的Junit、Dunit、HttpUnit为代表的Xunit;黑盒测试工具包括Mercury的TestSuite、IBM TestStudio、Compuware
QACenter、测试管理工具有Mercury Interactive的TestDirector、Empirix的d-Tracker、Segue
Silkplan pro、Compuware的TrackRecord和IBM Rational的ClearQUest。
Mercury性能测试工具WinRunner、性能负载测试工具LoadRunner和测试管理工具TestDirector。
(5)项目管理工具,综合性项目管理工具包括MS Project Server、PMOffice、P3E和Artemis Views等4种。
166、缺陷排除率(DRE)是对软件质量保证及控制活动过滤能力的一个测量。假设某个软件在交付给最终用户之前发生的错误数量为45,软件交付之后发现的缺陷为15,那么对应的DRE值为___。
A、0.75 B、1.3 C、0.5 D、0.25
缺陷排除效率是软件质量度量的指标之一。当把一个项目作为一个整体来考虑时,DRE按如下方式定义:
DRE=e/(e+d)
其中,e是软件交付给最终用户之前所发现的错误,d是软件交付之后所发现的缺陷数。
e=45,d=15,因此,DRE=45/60=0.75
167、需求分析-使得系统工程师能够刻画出软件的功能和性能、指明软件和其他系统元素的接口、并建立软件必须满足的约束。需求分析能够为软件设计者提供可被翻译成数据、
37
架构、界面和过程设计的模型。分析员研究系统规约和软件项目计划,并在系统语境内理解软件和复审,从而生成计划软件范围的估算。
168、需求分析-使得系统工程师能够刻画出软件的功能需求(明确所开发的软件必须具备什么样的功能)、性能需求(明确待开发软件的技术性能指标)、环境需求(明确软件运行时所需要的软、硬件的要求)和用户界面需求(明确人机交互方式、输入输出数据格式)。需求分析要指明软件和其他系统元素的接口,并建立软件必须满足的约束。需求分析是发现、求精、建模和规约的过程。包括详细地精化由系统工程师建立并在软件项目计划中精化的软件范围,创建所需数据、信息和控制流以及操作行为的模型。
169、面向对象方法是当前的主流开发方法。包括面向对象的分析、面向对象的设计和面向对象的程序设计。
170、UML统一建模语言是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。
171、UML的结构包括基本构造块、支配这些构造块如何放在一起的规则(架构)和一些运用于整个UML的机制。
(1)构造块:有三个,包括事物、关系和图。
(2)公共机制:达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制4种。
(3)规则:UML用于描述事物的语义规则,分别为事物、关系和图命名。给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。
UML对系统架构的定义是系统的组织结构,包括系统分解的组成部份、它们的关联性、交互、机制和指导原则等这些提供系统设计的信息。就是5个系统视图,包括逻辑视图、进程视图、实现视图、部署视图和用例视图。
172、UML构造块
(1)UML事物(建模元素),包括结构事物、行为事物、分组事物、注释事物。
结构事物包括类、接口、协作、用例、活动、构件、节点。行为事物,包括交互(内部活动)、状态机。
(2)关系,包括依赖、关联(聚合或组合)、泛化和实现。
(3)图形,UML2.0包括14种图,类图、对象图、构件图、组合结构图、用例图、顺序图、通信图、定时图、状态图、活动图、部署图、制品图、包图和交互概览图。
173、面向对象方法-面向对象分析,就是直接将问题领域中客观存在的事物或概念识别为对象,建立分析模型,用对象的属性和服务分别描述事物的静态特征和行为,并且保留问题域中事物之间关系的原貌。
面向对象分析方法的基本任务是运用面向对象方法,对问题域和系统责任进行分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域及系统责任所需的类和对象,定义它们属性和服务,以及它们之间所形成的结构、静态联系和动态联系。最终产生一个符合用户需求,并能直接反映问题域和系统责任的OOA模型及其详细说明。
用例分析技术为软件需求规格化提供了一个基本的元素,而且该元素是可验证、可度量的。用例可以作为项目计划、进度控制和测试等环节的基础。而且用例还可以使开发团队与客户之间的交流更加顺畅。
构件用例模型需要经历识别参与者、合并需求获得用例、细化用例模型。
分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保持通信实现系统行为(动态模型)。
建立分析模型包括以下基本活动:
38
(1)发现领域对象,定义概念类;(2)识别对象的属性;(3)识别对象的关系,包括建立类的泛化关系、对象的关联关系;(4)为类添加职责;(5)建立交互图。
174、面向对象方法-面向对象设计,把分析阶段得到的需求转变成为符合成本和质量要求的、抽象的系统实现方案的过程。面向对象设计可以再细分为系统设计和对象设计。
面向对象设计的原则:
(1)单一职责原则;(2)开放-封闭原则;(3)李氏替换原则;(4)依赖倒置原则;(5)接口隔离原则;(6)组合重用原则;(7)迪米特原则
175、面向对象方法-面向对象测试。与传统软件的测试仍然非常类似,但有显著的区别:
面向对象的测试更关注对象而不是完成输入输出的单一功能,能在分析和设计阶段介入,使得测试更好地配合软件生产过程并为之服务。面向对象测试的优点在于如下几个方面:
(1)更早地定义出测试用例;(2)早期介入可以降低成本;(3)尽早编写用例,以便开发人员与测试人员对系统需求的理解保持一致;(4)测试模式更注重于软件的实质。
面向对象测试是与采用面向对象开发相对应的测试技术,通常包括4个测试层次,从低到高排列分别是算法层、类层、模板层和系统层。
11 基于构件开发
176、基于构件开发。构件是一个功能相对独立的具有可重用价值的软件单元。在面向对象方法中,一个构件由一组对象构成,包含了一些协作的类的集合,它们共同工作来提供一种系统功能。
177、基于构件的开发-构件与软件重用。可重用性(可复用性)是指系统和(或)其组成部份能在其他系统中重复使用的程度。软件重用(软件复用)是使用已有的软件产品(如设计、代码和文档等)来开发新的软件系统的过程。软件重用形式包括垂直式和水平式。
Caper Jones定义了10种可能重用的软件要素,分别是项目计划、成本估计、架构、需求模型和规格说明、设计、源程序代码、用户文档和技术文档、用户界面、数据结构和测试用例。
系统的软件重用包括可重用的资产(构件)的开发、管理、支持和重用4个过程。
构件是软件系统可替换的、物理的组成部份,它封装了实现体(实现某个职能),并提供了一组接口的实现方法。三个主流的构件标准:OMG的CORBA、MS的COM和DCOM、SUN的EJB(包括会话的EJB、实体的EJB、消息驱动的EJB)。
构件获取可通过以下途径获取:
(1)从现有构件中获得符合要求的构件;(2)通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件;(3)从市场上购买现成的商业构件COTS;(4)开发新的符合要求的构件。
构件管理,进行有效管理,以便构件的存储、检索和提取,是成功重用构件的必要保证。构件管理的内容包括构件描述、构件分类、构件库组织、人员及权限管理和用户意见反馈。
构件重用,构件库的使用者必须完成以下工作:检索与提取构件,理解与评价构件、修改构件、最后将构件组装到新的软件产品中。
178、基于构件的开发-中间件技术。中间件是位于平台(硬件和操作系统)和应用之间的通用服务。这些服务具有标准的程序接口和协议。
中间件从层次上划分为底层型、通用型、集成型等三个大的层次。底层型中间件的主流技术有JVM、ACE、JDBC、ODBC等,代表的产品有JVM、CLR;通用型中间件的主流技术有CORBA、EJB、COM/DCOM,代表产品有IONA ORBIX、BEA WEBLOGIC和IBM
MQSeries等;集成型中间件的主流技术有WorkFlow和EAI等,代表的产品主要有BEA
Weblogic和IBM WebSphere。
中间件一般来说需要能够提供分布环境下的通信服务,称之为平台。根据目的和实现机
39
制的不同,分为远程过程调用RPC、面向消息的中间件MOM和对象请求代理ORB。它们可向上提供不同形式的通信服务,包括同步、排队、订阅发布和广播等。
179、基于构件开发-应用服务器,是在当今Internet上企业级应用迅速发展,电子商务应用出现并将快速膨胀的需求下,产生的一种新技术,通过它能将一个企业的商务活动安全、有效地实施到Internet上,实现电子商务。可以把其看做构件服务器,为三层架构的中间层提供服务。
应用服务器可解决传统的两层客户端/服务器计算中的其他不足,并且能够提供许多新的优点。
(1)可升级性;(2)分布式处理;(3)可重用的业务对象;(4)业务规则;(5)跨平台集成。
在具体应用中,应用服务器能解决以下问题:
(1)集成遗留系统和数据库;(2)为Web站点提供支持;(3)开发Web集成系统;(4)个人计算机的部署;(5)电子商务;(6)性能管理
应用服务器类型根据技术实现的不同,包括操作系统型、集成型、插件型、独立型;根据产品类型,包括事务服务器、知识服务器、带有集成开发工具的应用服务器、协作服务器、瘦服务器和主机访问服务器。
应用服务器产品,包括Bea Weblogic、WAS、MTS、OAS、SilverStream、Syb ASE等。
180、基于构件开发-J2EE与.NET
J2EE为设计、开发、装配和部署企业级应用程序提供了一个基于构件的解决方案。平台提供了多层结构的分布式的应用程序模型,该模型具有重用构件的能力、基于XML的数据交换、统一的安全模式和灵活的事务控制。
典型的J2EE下的商业应用、技术产品和构件如下:
EJB、JDBC、Java servlet、JSP、JMS、JNDI、JTA、Java Mail API、JAXP、JCA、JAAS。
MS .NET平台包括5个部份,(1)操作系统是.net平台的基础、(2).NET Enterprise
Servers、.net Building Block Services指的是一些成型的服务、.NET Framework位于整个.net平台的中央,为开发NET应用提供低层的支持、VisualStudio .net是.net应用程序的集成开发环境,它位于.NET平台的顶端。
181、基于构件开发-为了是构件系统更切合实际,更有效地被重用,构件应当具备 B,以提高其通用性。
A、可继承性 B、可变性 C、可封装性 D、可伸缩性
12 法规
182、法规-著作权法
著作权及实施条件的客体为受保护的作品。作品包括文学、艺术、自然科学、社会科学和工程技术领域内具有独创性并能以某种有形形式复制的智力成果。
为完成单位工作任务所创作的作品,称为职务作品。如果该职务作品是利用单位的物质技术条件进行创作,并由单位承担责任的,或者有合同约定,其著作权属于单位的,那么作者将仅享有署名权,其他著作权归单位享有。
其他职务作品,著作权仍由作者享有,单位有权在业务范围内优先使用,并且在两年内,未经单位同意,作者不能够许可其他人、单位使用该作品。
著作权法的主体为著作权关系人,通常包括著作权人和受让者两种。
著作权:根据著作权法及实施条例规定,著作权人对作品享有5种权利,包括发表权、署名权、修改权、保护作品完整权、(使用权、使用许可权和获取报酬权、转让权)
著作权期限:对公民,署名权、修改权、保护作品完整权的保护期没有任何限制,永远属于保护范围。发表权、使用权和获得报酬权的保护期为作者终生及其死亡后50年。作者
40
死亡后,著作权依照继承法进行转移;对单位,发表权、使用权和获得报酬权的保护期为50年,若50年内未发表的,不予保护。但单位变更、终止后,其著作权由承受其权利义务的单位享有。
183、法规-计算机软件保护条例
客体:计算机软件,包括计算机程序及其相关文档。根据条例规定,受保护的软件必须由开发者独立开发的,并且已经固定在某种有形物体上(如光盘、硬盘和软盘)。保护的客体只是计算机软件和文档,并不包括开发软件所用的思想、处理过程、操作方法或数学概念等,并且著作权人还需在软件登记机构办理登记。
软件著作权人确定:软件开发有合作开发、职务开发和委托开发。
软件著作权:9项权利,包括发表权、署名权、修改权、复制权、发行权、出租权、信息网络传播权、翻译权、(使用许可权、获得报酬权和转让权)。
软件著作权的期限:对公民,著作权的保护期为作者终生及其死亡后的50年。对于合作开发的,则以最后死亡的作者为准;对单位,著作权的保护期为50年,若50年内未发表的,不予保护。单位变更、终止后,其著作权由承受其权利义务的单位享有。
184、法规-招标投标法
招标:任何单位和个人不得将依法必须进行招标的项目化整为零或者以其他任何形式规避招标。招标分为公开招标和邀请招标。
招标代理机构、招标公告、招标文件。招标应当确定投标人编制投标文件所需要的合理时间。依法必须进行招标的项目,自招标文件开始发出之日起至投标人提交投标文件截止之日止,最短不得少于20日。
投标:
评标:分开标、评标、中标和分包的规定与流程。
185、法规-专利权法
专利法的客体是发明创造。包括发明、实用新型和外观设计。
授予专利权的发明和实用新型应当具备新颖性、创造性和实用性。专利权的归属问题,依据三点进行判定:(1)职务发明创造;(2)非职务发明创造;(3)单位或者个人接受其他单位或者个人委托所完成的发明创造。
专利权期限:对发明,期限为20年,对实用新型和外观设计专利权为10年。在保护期限内,专利权人应该按时缴纳年费。
186、法规-不正当竞争法
不正当竞争是指经营者违反规定,损害其他经营者的合法权益,扰乱社会经济秩序的行为。
商业秘密是指不为公众所知,具有经济利益,具有实用性,并且已经采取了保密措施的技术信息与经营信息。
187、法规-商标法
商标指生产者及经营者为使自己的商品或服务与他人的商品或服务相区别,而使用在商品及其包装上或服务标记上的由文字、图形、字母、数字、三维标志和颜色组合,以及上述要素的组合所构成的一种可视性标志。
商标具备显著性、独占性、价值和竞争性4个特征。
商标有效期:10年,从核准注册之日。期满,应在期满前6个月申请续展注册。在此期间未能提出申请的,给予6个月的宽展期。宽展期满仍未提出申请的,注销其注册商标。每续展有效期为10年。
13 标准化知识
188、标准化知识
41
根据《中华人民共和国标准化法》,标准化工作的任务是制定标准、组织实施标准和对标准的实施进行监督。
制定标准是指标准制定部门对需要制定标准的项目,编制计划,组织草拟,审批、编号、发布的活动。组织实施标准是指有组织、有计划、有措施地贯彻执行标准的活动。对标准的实施进行监督是指对标准贯彻执行进行监督、检查和处理的活动。
标准化的层次分为国际标准、国家标准、行业标准、地方标准及企业标准。
标准类型分为强制性和推荐性标准。
标准的复审周期一般不超过5年。
标准的表示:我国标准与国际标准的对应关系有IDT、MOD、EQV、NEQ等。
推荐性标准的代号是在强制性标准代号后面加上/T,指导性文件在强制性标准代号后面加/Z。
国家标准代号GB、GB/T、GB/Z;国家军用行业标准为GJB、国际实物标准代号GSB为国家标准。BS是英国国家标准;ANSI是美国国家标准。
行业标准有16个。地方标准的代号由地方标准代号DB、地方标准发布顺序号和标准发布年代号4位三部分组成。企业标准代号由企业标准代号Q、标准发布顺序号和标准发布年代号4位数组成。
ISO9000标准簇是国际标准化组织中质量管理和质量保证技术委员会制定的一系列标准,现在共包括20个标准。ISO认证证书有效期为3年。
文档标准:三个与文档有关的标准,(1)软件文档管理指南GB/T 16680-1996;(2)计算机软件产品开发文件编制指南 GB/T 8567-1988;计算机软件需求说明编制指南GB/T
9385-1988.
软件文档包括三种类别:开发文档(描述开发过程本身)、产品文档(描述开发过程的产物)和管理文档(记录项目管理的信息)。
文档等级:指所需文档的一个说明,指出文档的范围、内容、格式及质量,可以根据项目、费用、预期用途、作用范围或其他因素选择文档等级。每个文档的质量必须在文档计划期间就有明确的规定,文档的质量可以按文档的形式和列出的要求划分为四级。
(1)最低限度文档(1级文档);(2)内部文档(2级文档);(3)工作文档(3级文档);(4)正式文档(4级文档)
GB/T 8567-2006规定了可行性与计划研究、需求分析、设计、实现、测试、运行与维护6个阶段的要求。给出了25中文档编制格式。
GB/T 9385-1988描述了计算机软件需求说明应该包含的内容及编写格式。该指南为软件需求实践提供了一个规范化的方法,不提倡把软件需求说明划分成等级,避免把它定义成更小的需求子集。
ISO20000是作为IT服务管理标准的国际标准;ISO27000是作为信息安全管理的国际标准,它强调对一个组织运行所必需的IT系统及信息的保密性、完整性和可用性的保护体系,不单纯涉及技术问题,而是涉及到很多方面(历史、文化、道德、法律、管理和技术)的一个综合性的体系;WiMAX(802.16)、WCDMA、CDMA2000、TD-SCDMA是全球4个3G标准。
14 应用数学
189、应用数学-图论应用
(1)最小生成树:一个连通且无回路的无向图称为树。树定义等价:无回路图的连通图《=》无回路图且e=v-1,其中e为边数,v为节点数《=》连通且e=v-1《=》无回路图且增加一条新边,得到一个且仅一个回路《=》连通且删去任何一个边后不连通《=》每一对节点之间有且仅有一条路。在带权的图G的所有生成树中,树权最小的那棵生成树称作为最小
42
生成树。求连通的带权无向图的最小生成树的算法有Prim普里姆算法和克鲁斯卡尔(Kruskal)算法,二者的复杂度分别为O(n^2)和O(elog2e)。
最短路径(带权的):求两个顶点间长度最短的路径,其中路径长度不是指路径上边数的综合,而是指路径上各边的权值总和。迪杰斯特拉提出的一种按路径长度递增序列产生各顶点最短路径的算法。
关键路径:在AOE网络中,某些活动可以并行地进行,完成的工程的最少时间是从开始节点到结束节点的最长路径长度。
190、应用数学-概率统计应用:概率的基本性质、条件概率和事件独立性、加法公式、全概率公式。常用分布:包括0-1分布、二项分布、几何分布、泊松分布、均分分布、指数分布、标准正态分布。
191、应用数学-运筹学
(1)线性规划。解线性规划方法最常用的有图解法和单纯形法。
(2)对策论(竞赛论、博弈论):研究具有斗争或竞争性质现象的数学理论和方法。包括3个基本要素,局中人、策略集、赢得函数。
(3)决策论:构造决策模型有两个,包括面向结果的方法和面向过程的方法。面向结果的决策过程就是“确定目标收集信息提出方案方案选择决策”。面向过程的方法一般包括“预决策决策决策后”三个阶段。
15 软件架构设计
15.1 提要
1、软件架构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把架构的不同部份组合连接起来。
2、架构问题包括总体组织和全局控制、通信协议、同步、数据存取、给设计元素分配特定功能、设计元素的组织,规模和性能,在各设计方案间进行选择等。
3、软件架构处理算法和数据结构之上关于整体系统结构设计和描述方面的一些问题;
4、软件架构包括一个或一组软件构件、软件构件外部的可见特性及其相互关系。软件外部的可见特性是指软件构件提供的服务、性能、特性、错误处理和共享资源使用等。
5、软件架构的作用:(1)项目干系人进行交流的手段;(2)早期设计决策的体现;(3)可传递和可重用的模型。
6、设计软件架构的首要问题是如何表示软件架构,即如何对软件架构建模。可将软件架构的模型分5种,包括结构模型、框架模型、动态模型、过程模型和功能模型。
(1)结构模型,最直观、最普遍的建模方法。以架构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格和性质等。研究结构的模型的核心就是架构描述语言。
(2)框架模型,与结构模型类似,不侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。
(3)动态模型。是上面两个模型的补充,研究系统的“大颗粒”的行为性质。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程。常是激励型的。
(4)过程模型,研究构造系统的步骤和过程。结构是遵循某些过程脚本的结果。
(5)功能模型。架构是由一组功能构件按层次组成、下层向上层提供服务。是一种特殊的框架模型。
最常用的结构模型和动态模型。
7、1995,Kruchten提出的“4+1”的视图模型,它是结构模型、框架模型、动态模型、过程模型和功能模型的有机结合的整体,从5个视角,包括逻辑视图、开发视图、进程视图、
43
物理视图、场景等来描述软件架构。每个视图只关心系统某一个侧面。
视角图名称
逻辑视图
开发视图
进程视图
物理视图
场景
刻画的功能
功能需求
软件管理
性能、可扩充性和吞吐量等
最重要的需求抽象、构件的作用和它们之间的作用关系
刻画方法 使用用户
类或对象 最终用户、组件和风险的承担者
模块
任务
步骤
程序员或项目经理
系统架构师
系统实施工程师
最终用户、系统架构师、程序员
系统拓扑结构、安装和通信等 节点
逻辑和开发视图描述的是静态结构、进程视图和物理视图描述的是动态结构。管理信息系统,比较侧重于从逻辑、开发视图来描述;实时控制系统,则侧重于从进程和物理视图来描述。
8、软件架构风格
(1)软件架构设计的核心问题是能否使用重复的架构模式,即能否达到架构级的软件重用,就是能否在不同的软件系统中使用同一架构。
(2)软件架构风格描述某一特定应用领域中系统组织方式的惯用模式,定义了一个系统家族,即一个词汇表和一组约束。
词汇表包含了一些构件和连接件类型。约束指出系统是如何将这些构件和连接件组合起来的。
(3)软件架构风格反映了领域中众多系统所共有的结构和语义特性, 并指导如何将各个模块和子系统有效地组织成一个完整的系统。
(4)软件架构风格定义了用于描述系统的术语表和一组指导构件系统的规则。
(5)软件系统结构风格通常分为三种模式,即架构模式、设计模式、代码模式。这三种不同的模式存在于它们各自的抽象层次和具体层次。
架构模式是一个系统的,多层次策略,涉及到大尺度的组件以及整体性质和力学。它描述软件系统里的基本结构组织或纲要,提供一些事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。架构模式的好坏可以影响到总体布局和构架结构。
设计模式是中等尺度的结构策略, 它描述了普遍存在的相互通讯组件中重复出现的结构.这种结构解决了在一定背后中的具有一般性的设计问题,定义出了子系统或组件的微观结构。设计模式的好坏不会影响到系统的总体布局和总体框架。
代码模式是底层次的模式,并与编程语言密切相关,它描述怎样利用一个特定的编程语言的特点来实现一个组件的某些特定的方面或关系。代码模式的好坏会影响到一个中等尺度组件的内部、外部结构或行为的底层细节,但不会影响到一个部件或子系统的中等尺度的结构,更不会影响到系统的总体布局和大尺度框架。
软件架构风格种类描述表
风格名称
数据流风格
批处理序列
管道/过滤器
主要内容、优点、缺点
每个构件(过滤器)有一组输入和输出,构件读入数据流,经过内部处理,然后产生输出数据流。其中连接件是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
优点:1、构件具有好的隐蔽性、高内聚、低耦合;2、全局I/O行为变成多个过滤器的简单合成;3、支持软件重用;4、维护简单,可扩展性好;5、可对一些如吞吐量、死锁的属性的分析;6、支持并行执行
缺点:1、导致进程成为批处理的结构;2、不适合处理交互的应用;3、数据传输无通用标准,每个过滤器增加了解析和合成数据的工作,导致系统性能下降,并增加了编写过滤器的复杂性。
例证:1、unix shell;2、编译器
44
调用/返回风格
主/子程序
面向对象风格
建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应的操作封装在一个抽象数据类型或对象中。风格的构件是对象或抽象数据类的实例。
优点:1、对象对其他对象隐藏它的表示,可以改变一个对象的表示,而不影响其他的对象
2、设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。
缺点:1、通过过程调用来进行对象与对象之间交互,必须知道对象的标识
2、必须修改所有显式调用它的其他对象,并消除由此带来的一些副作用。
层次结构 每一层为上层服务,作为下层的客户,每层只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,为软件重用提供了强大的支持。
优点:1、支持基于抽象程度递增的系统设计;2、支持功能增强,功能的改变最多影响相邻两层;3、支持重用。
缺点:1、并不是每个系统都容易划分为分层的模式;2、很难找到一个合适的、正确的层次抽象方法。
独立构件风格
进程通信
事件系统(隐式)
构件不直接调用一个过程,而是触发或广播一个或多个事件。一些构件的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。风格的构件是一些模块,既可以是一些过程,又可以是一些事件的集合。特点是事件的触发者并不知道哪些构件会被这些事件影响。
优点:1、为软件重用提供了强大的支持;2、为改进系统带来了方便。
缺点:1、构件放弃了对系统计算的控制;2、数据交换的问题;3、过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题
虚拟机风格
仓库风格
解释器
基于规则的系统
数据库系统
超文本系统
黑板系统
有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行。控制原则的选取产生两个主要的子类。若输入流中的某类时间触发进程执行的选择,则仓库是一传统型数据库。若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。
黑板系统的传统应用是信号处理领域,主要由三部分组成:
1、知识源:包含独立的、与应用程序相关的知识,知识源之间不直接进行通信,它们之间的交互只通过黑板来完成。
2、黑板数据结构:按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题。
3、控制:完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。
例证:1、黑板系统的传统应用是信号处理领域,如语音和模式识别。2、松耦合代理数据共享存取。
C2风格
基于构件和消息的架构风格
用于创建灵活的、可伸缩的软件系统。C2架构看成是按照一定规则由连接件连接的许多组件组成的层次网络:系统中的构件和连接件都有一个“顶部”和“底部”;一个构件的“顶部”或“底部”可以连接到一个连接件的“底部”或“顶部”;对于一个连接件,和其相连的构件或连接件的数量没有限制,但是构件和构件之间不能直接相连。
特性:是“底层无关性”,这在构件的可替代性和可重用性方面具有显著的作用;另外,C2架构引入了“事件转化”的概念,域解释器把构件的请求转化为接收方能够接收的特定形式,同时也把通知转化为该构件能够理解的形式。
优点:1、构件可实现应用需求,并能将任意复杂度的功能封装在一起;2、构件之间的通信通过以连接件为中介的异步消息交换机制实现;3、构件相对独立,构件之间依赖性较少。
C/S架二层架构 C/S架构有三个主要组成部份,分别是数据库服务器、客户应用程序和网络。服务器负责有效地管理系统的资源,主要任务是:1、数据库安全性的要求、数据库访问并发性的控制、数据库前端的客户应用程序的全局数
45
构风格
据完整性规则、数据库的备份与恢复。客户应用程序的主要任务是:提供用户与数据库交互的界面,向数据库服务器提交用户请求并接收来自数据库服务器的信息,利用客户应用程序对存在于客户端的数据执行应用逻辑要求;网络通信软件的主要作用是完成数据库服务器和客户应用程序之间的数据传输。
优点:1、系统的客户应用程序和服务器构件分别耘在不同的计算机上,系统中每台服务器都可以适合各构件的要求,对硬件和软件的变化显示了极大的灵活性和适应性,易于对系统进行扩充和缩小;2、功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发集中于数据的管理;3、大的应用程序任务分布到低成本计算机上,以节约大量费用。4、具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
缺点:1、开发成本较高;2、客户端程序设计复杂。3、信息内容和形式单一,用户获得的只是单纯的字符和数字,既枯燥又死板。4、用户界面风格不一,使用繁杂,不利于推广使用;5、软件移植困难;6、软件维护和升级困难。7、新技术不能轻易用用。
多层架构 三层C/S架构模型,在二层架构基础上,增加了一个应用服务器。可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户端上。三层架构是将应用功能分成表示层、功能层、数据层。
优点:1、允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。2、允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;平台和组成部份具有良好的可升级性和开放性。3、三层C/S结构中,应用的各层并行开发,各层也可以选择各自最适合的开发语言。4、充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层。
缺点:1、各层间通信效率不高;2、要慎重考虑各层的通信方法、通信频度及数据量、独立性问题。
B/S架构 在三层C/S架构中,表示层负责处理用户的输入和向客户端的输出;功能层负责建立数据库的连接,根据用户的请求生成访问数据库的SQL语句,并把结果返回给客户端;数据层负责实际的数据库存储和检索,响应功能层的数据处理请求,并将结果返回给功能层。B/S结构就是一种实现方式,包括浏览器/Web服务器/数据库服务器。B/S架构主要是利用不打un成熟的www浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。
优点:1、系统安装、修改、维护权在服务器端解决。2、用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。3、提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开发性基础。
缺点:1、缺乏对动态页面的支持能力,没有集成有效的数据库处理功能;2、系统扩展能力差,安全性难以控制;3、采用B/S架构的应用系统,在数据查询等响应速度上,要远远低于C/S架构;4、B/S架构的数据提交一般以页面为单位,数据的动态交互性不强,不利于OLTP应用。
富因特网
RIA架构 弥补B/S架构存在的一些不足,提高用户体验,RIA应运而生。RIA是一个用户接口,它比用HTML能实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。RIA结合了C/S架构反映速度快、交互性强的优点与B/S架构传播范围广及容易传播的特性。RIA简化并改进了B/S架构的用户交互。用户开发的应用程序可以提供更丰富、更具有交互性的用户体验。
优点:1、利用相对健壮的客户端描述引擎,提供内容密集、响应速度快和图形丰富的用户界面;2、数据缓存客户端,可实现比基于HTML的响应速度更快且数据往返服务器的次数更少的用户界面。RIA的平台有Flash/Flex、Bindows、Java、Ajax、Laszlo、XUL、Avalon等。
正交软件架构 由组织层和线索的构件构成。层是由一组具有相同抽象级别的构件构成;线索是子系统的特例,它是由完成不同层次功能的构件组成,每一条线索完成整个系统中相对独立的一部份功能。每一条线索的实现与其他线索的实现无关或关联很少,在同一层中的构件之间是不存在相互调用。
优点:1、结构清晰,易于理解。2、易修改,可维护性强;3、可移植性强,重用粒度大。
基于层次消息总线的架构
层次消息总线的架构风格基于层次消息总线、支持构件的分布和并发,构件之间通过消息总线进行通信。
消息总线是系统的连接件,负责消息的分派、传递和过滤以及处理结果的返回。各个构件挂接在消息总线上,向总线登记感兴趣的消息类型。构件根据需要发出消息,由消息总线负责把该消息分派到系统中所有对此感兴
46
趣的构件,消息是构件之间通信的唯一方式。构件接收到消息后,根据自身状态对消息进行响应,并通过总线返回处理结果。由于构件通过总线进行连接,并不要求各个构件具有相同的地址空间或局限在一台机器上。该风格可以较好地刻画分布式并发系统,以及基于Corba、Dcom和Ejb规范的系统。
特定领域软件架构 DSSA是一个特定应用领域中为一组应用提供组织结构参考的标准软件架构,是一个特定的问题领域中支持一组应用的领域模型、参考需求和参考架构等组成的开发基础,其目标是支持在一个特定领域中多个应用的生成。
DSSA中“领域”的含义,从功能覆盖的范围角度可以有两种方式:(1)垂直域。定义了特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件架构。(2)水平域。定义了在多个系统和多个系统族中功能区域的共有部份,在子系统级上涵盖多个系统族的特定部份功能,无法为系统提供完整的通用架构。
DSSA的基本活动:(1)领域分析,目的获得领域模型。描述领域中系统之间共同的需求,所描述的需求为领域需求。(2)领域设计。目标获得DSSA。描述在领域模型中表示需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统需求的一个高层次设计。(3)领域实现。目标是依据领域模型及DSSA开发和组织可重用信息。【以上过程是一个反复的、逐渐求精的过程。参与DSSA的人员可以划分为4中角色:领域专家、领域分析师、领域设计人员、领域实现人员】
DSSA的建立过程:Tracz提出了一个通用的DSSA应用过程。分五个阶段,每阶段可划分为一些步骤或子阶段。每个阶段包括一组需要回答的问题,一组需要的输入,一组将产生的输出和验证标准。DSSA的建立过程是并发的、递归的、反复的、或者说它是螺旋型的。(1)
定义领域范围。(2)定义领域特定的元素;(3)定义领域特定的设计和实现需求约束。(4)产生领域模型和架构;(5)产生、搜集可重用的产品单元。DSSA的建立过程的目的是将用户的需要映射为基于实现限制集合的软件需求。
9、DSSA与架构风格的比较
根据软件架构研究出发点的不同,出现了两个不同的分支:以问题域为出发点的DSSA和以解决域为出发点的软件架构风格。
DSSA只对某一个领域进行设计专家知识的提取、存储和组织,可同时使用多种架构风格;在某个架构风格中进行架构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个应用领域。
DSSA的特定领域参考架构选用一个或多个适合所研究领域的架构风格,并设计一个该领域专用的架构分析设计工具。
架构风格的定义和该风格应用的领域是正交的,提取的设计知识比用DSSA提取的设计专家知识的应用范围广。
DSSA和架构风格是互为补充的两种技术。在大型软件开发项目中,基于领域的设计专家知识和以风格为中心的架构设计专家知识都扮演着重要的角色。
10、架构设计和演化
一个好的软件架构应该可以创建或再创建功能、用户界面和问题域模型,演化原型以满足新的软件需求。软件架构本身也是可演化的,这种演化可基于需求的变化、增进对问题域的理解、对实现系统的技术方式的进一步理解。软件系统以原型方式演化,架构本身也以原型方式演化。
(1)基于架构的软件开发过程分为独立的两个阶段,分为实验原型阶段和演化开发阶段。实验原型阶段是要获得对系统支持的问题域的理解;演化开发阶段重点放在最终产品的开发上,将转移到构件的精确化。
(2)实验原型阶段,分两个开发周期。第一个开发周期没有具体的、明确的目标。第二个开发周期是设计和建立一个软件架构,它分为5个小阶段:
1)标识构件,又可分为3个小步骤,即生成类图、对类进行分组、把类打包成构件;2)提出软件架构模型;3)把已标识的构件映射到软件架构中;4)分析构件之间的相互作用;
47
5)产生软件架构。
(3)演化开发阶段。分8个演化步骤。1)需求变动归类;2)制订架构演化计划;3)修改、增加或删除构件。4)更新构件的相互作用;5)产生演化后的架构;6)迭代。第3至5步再次迭代;7)对上述步骤进行确认,进行阶段性技术评审;8)对所做的标记进行处理。
11、基于架构的软件开发
传统的软件开发过程,可划分为从概念直到实现的若干阶段,包括问题定义、需求分析、软件设计、软件实现及软件测试等。按采用传统的软件开发模型,软件架构的建立应位于需求分析之后,概要设计之前。
传统的开发模型存在开发效率不高,不能很好地支持软件重用等缺点,基于架构的软件开发模型可弥补这个缺点,把整个基于架构的软件过程划分为架构需求、设计、文档化、复审、实现和演化等6个阶段。
(1)架构需求。受技术环境和架构设计师的经验影响。架构需求可分需求获取、标识构件和需求评审等三个步骤。
(2)架构设计。是一个迭代的过程,可分为提出软件架构模型、把已标识的构件映射到软件架构中、分析构件之间的相互作用、产生软件架构及设计评审等5个步骤。
(3)架构文档化。文档化的过程的主要输出结果是架构需求规格说明和测试架构需求的质量设计说明书。
(4)架构复审。复审的目的是标识潜在的风险,及早发现架构设计中的缺陷和错误,包括架构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、架构的划分是否合理、文档表达是否明确、构件的设计是否满足功能和性能要求等。
(5)架构实现。用实体来显示出一个软件架构。
(6)架构演化。
15.1.1 软件架构评估
12、软件架构评估
架构评估可以只针对一个架构,也可以针对一组架构。在架构评估过程中,评估员所关注的是系统的质量属性。
敏感点和权衡点是关键的架构决策。敏感点是一个或多个构件(和/或构件之间的关系)的特性。研究敏感点可使架构设计师或系统分析师明确在搞清楚如何实现质量目标时应注意什么。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。例如改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级别可以提高安全性,但可能耗费更多的处理时间,影响系统的性能。如果某个加密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。
12、软件架构评估-主要的评估方式
基本可归纳为三类主要的评估方式:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。
(1)基于调查问卷或检查表的评估方式
CMY/SEI软件风险评估过程采用了这一方式。调查问卷是一系列可以应用到各种架构评估的相关问题,其中有些问题可能涉及到架构的设计决策;有些问题涉及到架构的文档;有的问题针对架构描述本身的细节和具体问题,它们更趋向于考察某些关心的质量属性。
缺点:1)评估结果主要来自评估人员的主观推断,不同的评估人员可能会产生截然不同的结果;2)评估人员的熟悉程度、是否具有丰富的相关经验也成为评估结果是否正确的重要因素。
优点:1)比较自由灵活,可评估多个质量属性,也可以在软件架构设计的多个阶段进行;
48
2)系统相关人员的经验和知识是评估软件架构的重要信息来源,它仍然是进行软件架构评估的重要途径之一。
(2)基于场景的评估方式
场景是一系列有序的使用或修改系统的步骤。基于场景的方式主要应用在架构权衡分析方法(ATAM)和软件架构分析方法SAAM中。在架构评估中,一般采用刺激、环境和响应三方面来进行描述。刺激是场景中解释或描述项目干系人怎样引发与系统的交互部份,环境描述的是刺激发生时的情况,响应是指系统是如何通过架构对刺激作出反应的。
基于场景的方式分析软件架构对场景的支持程度,从而判定该架构对这一场景所代表的质量需求的满足程度。
(3)基于度量的评估方式
度量是指为软件产品的某一属性所赋予的数值,如代码行数、方法调用层数和构件个数等。涉及到三个基本活动,首先建立质量属性和度量之间的映射原则;然后从软件架构文档中获取度量信息;根据映射原则分析推导出系统的某些质量属性。
基于度量的评估方式提供更为客观和量化的质量评估,需要在软件架构的设计基本完成以后才能进行,而且需要评估人员对待评估的架构十分了解。
(4)评估方式比较
评估方式
通用性
评估者对架构的了解程度
实施阶段
客观性
通用
粗略了解
早
主观
调查问卷或检查表
调查问卷 检查表
特定领域
无限制
中
主观
特定系统
中等了解
中
较主观
通用或特定领域
精确了解
中
较客观
场景 度量
13、ATAM评估方法
使用ATAM方法对软件架构进行评估的目标,是理解架构关于软件的质量属性需求决策的结果。ATAM方法不但揭示了架构如何满足特定的质目标,而且还提供了这些质量目标是如何交互的,即它们之间是如何权衡的。
ATAM评估步骤分为9个。(1)描述ATAM方法;(2)描述业务动机;(3)描述架构;(4)确定架构方法;(5)生成质量属性效用树;(6)分析架构方法;(7)讨论和对场景分级;(8)分析架构方法;(9)描述评估结果。
ATAM评估阶段,主要是两个阶段。第一阶段为以架构为中心,重点是获取架构信息并进行分析;第二个阶段以项目干系人为中心重点是获取项目干系人的观点,验证第一个阶段的结果。
14、SAAM评估方法
可分为6个步骤。(1)形成场景。(2)描述架构;(3)对场景进行分类和确定优先级;(4)对间接场景的单个评估;(5)评估场景的相互作用;(6)形成总体评估。
15、软件产品线(software product line)
根据CMU/SEI的定义,软件产品线是一个产品的集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。
软件产品线主要由两部分组成,分别是核心资源和产品集合。核心资源是领域工程所有结果的结合,是产品线中产品构造的基础。核心资源必定包含产品线中所有产品共享的产品线架构,新设计开发的或者通过对现有系统的再工程得到的、需要在整个产品线中系统化重用的软件构件。与软件相关的测试计划、测试实例以及所有设计文档,需求说明书、领域模型、领域范围的定义,以及采用COTS的构件也属于核心资源。产品线架构和构件是用于软件产品线中的产品构建的最重要的核心资源。
49
版权声明:本文标题:2016系统架构师考试知识点总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1707181417h511625.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论