赞
踩
1. 目前市场上主流的集成模式有三种,分别是面向信息的集成、面向过程的集成和面向服务的集成。其中面向过程的集成模式强调处理不同应用系统之间的交互逻辑,与核心业务逻辑相分离,并通过不同应用系统之间的协作共同完成某项业务功能。
2. 性能是指系统的响应能力,即经过多长时间对事件做出响应。可用性是指系统能够正常运行的时间比例,通过用两次故障之间的时间长度或出现故障时系统能够恢复的速度来表示。可修改性是指系统能以较高的性价比对系统做出变更的能力。安全性是指系统能够向合法用户提供服务,同时拒绝非授权用户使用或拒绝服务的能力。
3. 数据流图设计时应考虑的三个原则:复杂性最小化原则、接口最小化原则、数据流一致性原则。
4. (1)数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。(2)数据流图展现系统的数据流;流程图展现系统的控制流。(3)数据流图展现全局的处理过程,过程之间遵循不同的计时标准;流程图中处理过程遵循一致的计时标准。(4)数据流图适用于系统分析中的逻辑建模阶段;流程图适用于系统设计中的物理建模阶段。
5. 性能:可以采用的架构设计策略有增加计算资源、改善资源需求、资源管理和资源调度。安全性:可以采用的架构设计策略有抵御攻击、攻击检测、从攻击中恢复和信息审计等。可用性:可以采用的架构设计策略有心跳、Ping/Echo、主动冗余、被动冗余、选举等。可修改性:接口-实现分离、抽象、信息隐藏等架构策略实现该属性。
6. 逆向工程导出的信息可分为如下 4 个抽象层次。实现级:包括程序的抽象语法树、符号表等信息。结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图等。功能级:包括反映程序段功能及程序段之间关系的信息。领域级:包括反映程序分量或程序与应用领域概念之间对应关系的信息。
7. 面向对象的设计模型包含以包图表示的软件体系结构图,以交互图表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。
8. 基于构件的开发模型由软件的需求分析定义、体系结构设计、构件库建立、应用软件构建以及测试和发布 5 个阶段组成。
9. 在一个典型的基于 MVC(Model View Controlle)的 J2EE 应用中,系统的界面由 JSP构件实现,分发客户请求、有效组织其他构件为客户端提供服务的控件器由 Servlet 构件实现,数据库相关操作由 Entity Bean 构件实现,系统核心业务逻辑由 Session Bean 构件实现。
10. 数据分割有垂直分割和水平分割两种模式,前者是将表中不同字段的数据存储到不同的服务器上;后者是将表中不同行的数据存储到不同的服务器上。数据复制是为了提升数据访问效率而采用的一种增加数据冗余的方法,它将数据的多个副本存储到不同的服务器上,由 RDBMS 负责维护数据的一致性。
11. 基于架构的软件设计(ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。ABSD 方法有三个基础:第一个基础是功能分解,在功能分解中使用已有的基于模块的内聚和耦合技术。第二个基础是通过选择体系结构风格来实现质量和商业需求。第三个基础是软件模板的使用。ABSD 方法是一个自顶向下,递归细化的过程,软件系统的架构通过该方法得到细化,直到能产生软件构件的类。
11.设计模式按照其应用模式可以分为三类:创建型、结构型和行为型。创建型模式主要用于创建对象,为设计类实例化新对象提供指南。结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南。行为型模式主要用于描述类或对象的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。
创建型:抽象工厂模式、构造器模式(Builder)、原型模式(Prototype)。
结构型:适配器模式(Adapter)、外观模式(Facade)、代理模式(Proxy)、桥接、装饰。
行为型:命令模式(Command)、中介模式(Mediator)、状态模式(State)、策略模式(Strategy)。
12. 软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
13. ESB 的主要功能:1)服务位置透明性;(2)传输协议转换;(3)消息格式转换;(4)消息路由;(5)消息增强;(6)安全性;(7)监控与管理
14.在 RUP 中采用“4+1”视图模型来描述软件系统的体系结构。“4+1”视图包括逻辑视图、实现视图、进程视图、部署视图和用例视图。
分析人员和测试人员关心的是系统的行为,因此会侧重于用例视图;
最终用户关心的是系统的功能,因此会侧重于逻辑视图;
程序员关心的是系统的配置、装配等问题,因此会侧重于实现视图;
系统集成人员关心的是系统的性能、可伸缩性、吞吐率等问题,因此会侧重于进程视图;
系统工程师关心的足系统的发布、安装、拓扑结构等问题,因此会侧重于部署视图。
14. M2 采用动态冗余后的可靠度为:
R = 1-(1-0.99)^3 =0.999999,(并联,1-不可靠(3 个同时失效=(1-0.99)^3));
15.表现层状态转换(REST)是面向资源架构的核心思想,REST 从资源的角度来定义整个网络系统结构,分布在各处的资源由统一资源标识符(URI)确定,客户端应用程序通过 URI 获取资源的表现,并通过获得资源表现使得其状态发生改变。
REST 中将资源、资源的表现和获取资源的动作三者进行分离。
16.特定领域软件架构(Domain Specific Software Architecture,DSSA)以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,其目标是支持一个特定领域中多个应用的生成。DSSA 的基本活动包括领域分析、领域设计和领域实现。其中领域分析的主要目的是获得领域模型,领域模型描述领域中系统之间共同的需求,即领域需求;领域设计的主要目标是获得 DSSA,DSSA 描述领域模型中表示需求的解决方案;领域实现的主要目标是依据领域模型和 DSSA 开发和组织可重用信息,并对基础软件架构进行实现。
17.架构描述语言(Architecture Description Language,ADL )是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL 主要包括以下组成部分:组件、组件接口、连接件和架构配置。
20.软件系统架构是关于软件系统的结构、行为和属性的高级抽象。
21.数据库设计在需求分析阶段应完成的文档是数据字典和数据流图。
22.网络逻辑结构设计是体现网络设计核心思想的关键阶段,在这一阶段根据需求规范和通信规范,选择一种比较适宜的网络逻辑结构,并基于该逻辑结构实施后续的资源分配规划、安全规划等内容。
物理网络设计是对逻辑网络设计的物理实现,通过对设备的具体物理分布、运行环境等的确定,确保网络的物理连接符合逻辑连接的要求。在这一阶段,网络设计者需要确定具体的软硬件、连接设备、布线和服务。
现有网络体系分析的工作目的是描述资源分布,以便于在升级时尽量保护已有投资,通过该工作可以使网络设计者掌握网络现在所处的状态和情况。
需求分析阶段有助于设计者更好地理解网络应该具有什么功能和性能,最终设计出符合用户需求的网络,它为网络设计提供依据。
23. 常用的黑盒测试技术有等价类划分、边值分析、错误猜测和因果图等。
24. 数据的物理独立性:是指当数据库的内模式发生改变时,数据的逻辑结构不变。当数据的物理结构改变了,应用程序不用改变。但是,为保证应用程序能够正确执行,需要修改概念模式/内模式之间的映像。
25. 数据的逻辑独立性:是指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是,为了保证应用程序能够正确执行,需要修改外模式/概念模式之间的映像。
26. 从结构角度看,有三种数据仓库模型,分别是企业仓库、数据集市和虚拟仓库。
27. 包含、扩展、泛化:
包含:当可以从两个或两个以上的用例中提取公共行为时,应该使用包含的关系来表示它们。其中这个提取出来的公共用例成为抽象用例,而把原始用例成为基本用例或基础用例。其中“<<include>>”是包含关系的构造型,箭头指向抽象用例。
例如,在机房收费系统中“注册学生信息”和“充值”两个用例都需要操作员或者管理员登陆,为此,可以定义一个抽象用例“用户登陆”。用例“注册学生信息”和“充值”与用例“用户登陆”之间的关系就是包含关系。
有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以抽象出一个基用例,来包含这些颗粒的用例
作用:当多个用例需要使用同一段事件流时,抽象成为公共用例,可以避免在多个用例中重复地描述这段事件流,也可以防止这段时间流在不同用例中的描述出现不一致。当需要修改这段公共的需求时,也只要修改一个用例,避免同时修改多个用例而产生的不一致和重复性工作。另外,当某个用例的事件流过于复杂时,为了简化用例的描述,也可以将某段事件流抽象成为一个被包含的用例。
2、扩展关系
如果一个用例明显地混合了两种或者两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样可能会使描述更加清晰。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此他能根据基用例中扩展点的当前状态来决定是否执行自己。而扩展用例对基用例不可见。如机房收费系统中“维护学生信息”操作时如果发现信息有误或者更新则需要使用“修改学生信息”用例完成更新,所以用例“查询上机记录”和“导出EXCEL”之间的关系就是扩展关系。“<<extend>>”是扩展关系的构造型,箭头指向基本用例。
包含关系和扩展关系的联系和区别
联系:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。
区别:扩展关系中基本用例的基本流执行时,扩展用例不一定执行,即扩展用例只有在基本用例满足某种条件的时候才会执行。
包含关系中基本用例的基本流执行时,包含用例一定会执行。
3、泛化:
当多个用例共同拥有一种类似的结构和行为时,可以将他们的共性抽象成为父用例,其他的用例作为泛化关系的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,它继承了父用例的所有结构、行为、关系。其中三角箭头指向父用例。假如在机房收费系统的注册可以通过本地注册和网上注册。
同样,一般用户,操作员,管理员之间也存在泛化的关系。
范式
1. 第一范式:在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可以再分的数据项,则称实体是第一范式。
2. 第二范式:当且仅当实体E是第一范式,且每一个非键属性完全依赖主键(没有不完全依赖)时,则称实体E是第二范式。
3. 第三范式:当且仅当实体E是第二范式,且E中没有非主属性传递依赖于码时,则称实体E为第三范式。
软件系统架构是关于软件系统的结构、行为和属性的高级抽象。在描述阶段,其对象是直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体类或者对象。软件系统架构不仅指定了软件系统的组织结构和拓扑结构,而且显示了系统需求和构成组件之间的对应关系,包括设计决策的基本方法和基本原理。
DSSA 通常是一个具有三个层次的系统模型,包括领域开发环境、领域特定应用开发环境和应用执行环境。
领域开发环境:领域架构师
领域特定应用开发环境:应用工程师
应用执行环境:操作员
基于架构的软件设计(Achitecture-Based Software Design,ABSD)方法有三个基础,分别是对系统进行功能分解、采用架构风格实现质量属性与商业需求、采用软件模板设计软件结构。
架构权衡分析方法ATAM是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。
ATAM 可以分为 4 个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。
对于真实程序、核心程序、小型基准程序和合成基准程序来说,其评测程度依次递减。TPC-C 是在线事务处理的基准程序,TPC-D 是决策支持的基准程序。
在结构化分析中,主要进行三个方面的建模:功能建模、行为建模和数据建模。 功能建模一般采用 DFD(数据流图,Data Flow Diagram),行为建模一般采用状态转换图,数据建模一般采用ER图。
一、计算机与网络基础知识
1. 操作系统分类:按功能不同可以分为:单用户操作系统和批处理操作系统,分时操作系统和实时操作系统,网络操作系统和分布式操作系统,以及嵌入式操作系统。
2. 操作系统的4个特性是:并发性、共享性、虚拟性和不确定性。
3. 操作系统的五大管理功能是:进程管理、文件管理、存储管理、设备管理和作业管理。
4. 进程是程序的一次执行,该程序可以和其他程序并发执行。进程通常由程序、数据及进程控制块(PCB)组成。PCB描述了进程的基本情况,是进程存在的唯一标志。
5. 程序是静态的指令序列,进程是为执行该程序的线程而保留的资源集。
程序计数器 PC:存储下一条要执行指令的地址
指令寄存器 IR:存储即将执行的指令
计算机(指硬件)应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成
流水线计算机是 MISD多指令流单数据流,如多核处理器、多处理机属于 MIMD多指令流多数据流。
复杂指令系统计算机CISC,主要特点如下:(1)指令数量众多。(2)指令使用频率相差悬殊。(3)支持很多种寻址方式。(4)变长的指令。(5)指令可以对主存单元中的数据直接进行处理。(6)以微程序控制为主。
精简指令系统计算机RISC,主要特点如下:(1)指令数量少。(2)指令的寻址方式少(3)指令长度固定,指令格式种类少。(4)以硬布线逻辑控制为主。(5)单周期指令执行,采用流水线技术。(6)优化的编译器:RISC 的精简指令集使编译工作简单化。(7)CPU 中的通用寄存器数量多。 大多数 RISC 采用了 Cache 方案,使用 Cache 来提高取指令的速度。
Cache 的存取速度比主存更快,但容量更小,用来存放当前最急需处理的程序和数据,以便快速地向 CPU 提供指令和数据。
存储器中数据常用的存取方式有顺序存取、直接存取、随机存取和相联存取四种。
磁带存储器采用顺序存取的方式。磁盘存储器采用直接存取的方式。主存储器采用随机存取的方式。为了提高地址映射的速度,Cache 采取相联存取的方式。
RAM 又可分为 DRAM(Dynamic RAM,动态 RAM) 和 SRAM(Static RAM,静态 RAM)两种,DRAM 的信息会随时间逐渐消失,因此需要定时对其进行刷新维持信息不丢失;SRAM 在不断电的情况下信息能够一直保持而不会丢失。DRAM 的密度大于 SRAM 且更加便宜,但 SRAM 速度快,电路简单(不需要刷新电路),然而容量小,价格高。
当CPU 需要读取数据时,首先在 Cache 中查找是否有所需内容,如果有,则直接从 Cache 中读取;若没有,再从内存中读取该数据,然后同时送往 CPU 和 Cache。如果 CPU 需要访问的内容大多都能在 Cache 中找到(称为访问命中),则可以大大提高系统性能。
如果以 h 代表对 Cache 的访问命中率(“1-h”称为失效率,或者称为未命中率),t1 表示 cache 的周期时间,t2 表示内存的周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为 t3。则:t3 = h X t1 + (1-h) X t2
流水线应用过程中,会将需要处理的工作分为 N 个阶段,最耗时的那一段所消耗的时间为流水线周期。如:使用流水线技术执行 100 条指令,每条指令取指 2ms,分析 4ms,执行 1ms,则流水线周期为 4ms。
流水线执行时间=第 1 条指令的执行时间+(n-1)*流水线周期
例:某计算机系统,一条指令的执行需要经历取指(2ms)、分析(4ms)、执行(1ms)三个阶段,现要执行 100 条指令,利用流水线技术需要多长时间?
理论上来说,1 条指令的执行时间为:2ms+4ms+1ms=7ms。
所以:理论流水线执行时间=2ms+4ms+1ms+(100-1)*4=407ms。
而实际上,真正做流水线处理时,考虑到处理的复杂性,会将指令的每个执行阶段的时间都统一为流水线周期,即 1 条指令的执行时间为:4ms+4ms+4ms=12ms。 所以:实际流水线执行时间=4ms+4ms+4ms+(100-1)*4=408ms。
希赛教育专家提示:考试时 80%以上的概率采用理论公式计算,所以考试时需要以理论公式计算,若计算的结果无正确选项才考虑采用实际公式计算。
流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量
不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。
如果不使用流水线,即顺序执行所用的时间为 T0 ,使用流水线的执行时间为 Tk ,则计算流水线加速比的基本公式如下:
操作系统为用户提供的接口表现形式一般为:命令、菜单、窗口之类的,而操作系统为应用程序提供的接口为 API
A1、B1、C1 是一条指令的取指、分析、执行的三个步骤,所以它们之间的关系是直接制约。
间接制约通常是指多个操作之间相同步骤的制约关系,也可以说是“互斥的进程之间的制约关系”。如图 2-4 所示,A1、A2、A3 之间就存在间接制约的关系。
解决死锁有两种策略:一种是在死锁发生前采用的预防和避免策略;另一种是在死锁发生后采用的检测与恢复策略。
采用的死锁预防策略通常有资源的静态分配法或有序分配法,它们分别打破了资源动态分配条件和循环等待条件,因此不会发生死锁。但这样做会大大降低系统资源的利用率和进程之间的并行程度。
死锁避免策略,则是在系统进行资源分配时,先执行一个死锁避免算法(典型的如银行家算法),以保证本次分配不会导致死锁发生。由于资源分配很频繁,因此死锁避免策略要耗费大量的 CPU 和时间。
故从系统所花的代价上看,采用死锁发生后的检测与恢复策略要比采用死锁发生前的预防与避免策略代价小一些。
内存大小由系统硬件决定,存储容量受到实际存储单元的限制。虚拟存储器(简称虚存)不考虑实际内存的大小和数据存取的实际地址,只考虑相互有关的数据之间的相对位置,其容量由计算机地址的位数决定。
外围设备和内存之间常用的数据传送控制方式主要有以下几种:
1.程序控制方式。处理器启动数据传输,然后等设备完成。程序控制方式不能实现并发。
2.中断方式。进程启动数据传输(如读)后,该进程放弃处理器,当数据传输完成,设备控制器产生中断请求,中断处理程序对数据传输工作处理之后,让相应进程成为就绪状态。以后,该进程就可以得到所需要的数据。
3.直接存储访问(Direct Memory Access,DMA)方式。指外部设备和内存之间开辟直接的数据交换通路。除了控制状态寄存器和数据缓冲寄存器外,DMA 控制器中还包括传输字节计数器、内存地址寄存器等。DMA 方式采用窃取(或挪用)处理器的工作周期和控制总线而实现辅助存储器和内存之间的数据交换。有的 DMA 方式也采用总线浮起方式传输大批量数据。
4.通道方式。通道又称为输入/输出处理器(Input/Output Processor,IOP),可以独立完成系统交付的输入/输出任务,通过执行自身的输入/输出专用程序(称通道程序)进行内存和外设之间的数据传输。主要有3种通道:字节多路通道、选择通道和成组多路通道。
记录文件有顺序文件、索引顺序文件、索引文件和直接文件。
直接文件又称哈希(Hash)文件。记录以它们在直接访问存储设备上的物理地址直接(随机地)访问。直接文件常用于需要高速访问文件而且每次仅访问一条记录的应用中。
一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后备、执行和完成 4 个状态。
当作业的全部信息进入外存后,系统就为该作业建立一个作业控制块(Job Control Block,JCB)。系统通过 JCB 感知作业的存在。JCB 主要内容包括作业名、作业状态、资源要求、作业控制方式、作业类型及作业优先权等。
用户接口也称为用户界面:操作系统的接口、操作环境。
操作系统的接口又可分成命令接口和程序接口。命令接口包含键盘命令和作业控制命令;程序接口又称为编程接口或系统调用,程序经编程接口请求系统服务,即通过系统调用程序与操作系统通信。系统调用是操作系统提供给编程人员的唯一接口。系统调用对用户屏蔽了操作系统的具体动作而只提供有关功能。
操作环境支持命令接口和程序接口,提供友好的、易用的操作平台。
数据库系统划分为三个抽象级:用户级、概念级、物理级。
数据库系统的三级模式为外模式、概念模式、内模式。
用户级数据库对应于外模式,是最接近用户的一级数据库,是用户可以看到和使用的数据库,又称用户视图。概念级数据库对应于概念模式,介于用户级和物理级之间,是所有用户视图的最小并集,是数据库管理员可看到和使用的数据库,又称 DBA(DataBase Administrator,数据库管理员)视图。物理级数据库并不是真正的物理存储,而是最接近于物理存储的级。
概念模式。概念模式(模式、逻辑模式)用以描述整个数据库中数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架。 概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个概念模式。
外模式(子模式、用户模式)用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件。一个应用程序只能使用一个外模式。
内模式是整个数据库的最低层表示,不同于物理层,它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
内模式、模式和外模式之间的关系如下:
(1)模式是数据库的中心与关键;
(2)内模式依赖于模式,独立于外模式和存储设备;
(3)外模式面向具体的应用,独立于内模式和存储设备;
(4)应用程序依赖于外模式,独立于模式和内模式。
常用的基本数据模型有层次模型、网状模型、关系模型和面向对象模型。
范式由低到高分为 1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(BC 范式)、4NF(第四范式)等。
数据库的设计分为需求分析、概念结构设计、逻辑结构设计和数据库物理设计 4 个阶段。
需求分析:数据流图、数据字典。
在进行概念结构设计时,可先设计各个应用的视图(view),即各个应用所看到的数据及其结构,然后再进行视图集成,以形成一个单一的概念数据模型。概念数据模型的作用是:提供能够识别和理解系统要求的框架;为数据库提供一个说明性结构,作为设计数据库逻辑结构,即逻辑模型的基础。如 E-R 模型。
局部视图设计步骤:确定局部视图的范围;识别实体及其标识;确定实体间的联系;分配实体及联系的属性。
数据库逻辑结构设计的任务就是把概念结构设计阶段设计好的基本 E-R 图转换为与具体机器上的 DBMS 产品所支持的数据模型相符合的逻辑结构。这逻辑模型应满足数据库存取、一致性及运行等各方面的用户需求。
数据库系统运行的基本工作单位是事务,事务相当于操作系统中的进程,是用户定义的一个数据库操作序列,这些操作序列要么全做要么全不做,是一个不可分割的工作单位。事务具有以下特性:原子性、一致性、隔离性、持续性。
数据库的并发操作带来的问题有:丢失更新问题、不一致分析问题(读过时的数据)、依赖
于未提交更新的问题(读了“脏”数据)。这三个问题需要 DBMS 的并发控制子系统来解决。
处理并发控制的主要方法是采用封锁技术。它有两种类型:排他型封锁(X 封锁)和共享型封锁(S 封锁)。
数据库的故障可用事务的故障来表示,主要分为四类:事务故障、系统故障、介质故障、计算机病毒。
全局外模式。它们是全局应用的用户视图,是全局概念模式的子集。
全局概念模式。它定义分布式数据库中数据的整体逻辑结构,数据就如同根本没有分布一样,可用传统的集中式数据库中所采用的方法定义。全局概念模式中所用的数据模型应该易于向其他层次的模式映像,通常采用关系模型。这样,全局概念模式包括一组全局关系的定义。
分片模式。每一个全局关系可以划分为若干不相交的部分,每一部分称为一个片段,即“数据分片”。分片模式就是定义片段及全局关系到片段的映像。这种映像是一对多的,即每个片段来自一个全局关系,而一个全局关系可对应多个片段。
分布模式。由数据分片得到的片断仍然是 DDB 的全局数据,是全局关系的逻辑部分,每一个片段在物理上可以分配到网络的一个或多个不同结点上。分布模式定义片段的存放结点。分布模式的映像类型确定了分布式数据库是冗余的还是非冗余的。若映像是一对多的,即一个片段分配到多个结点上存放,则是冗余的分布数据库,否则是不冗余的分布数据库。
分片模式和分布模式均是全局的,分布式数据库系统中增加的这些模式和相应的映像使分布式数据库系统具有了分布透明性。
一个场地上的局部概念模式是该场地上所有全局概念模式在该场地上物理映像的集合。由此可见,全局概念模式与场地独立,而局部概念模式与场地相关。
局部内模式是 DDB 中关于物理数据库的描述,类似于集中式 DB 中的内模式,但其描述的内容不仅包含局部本场地的数据的存储描述,还包括全局数据在本场地的存储描述。
1.分布式数据库系统与并行数据库系统的区别
分布式数据库系统与并行数据库系统具有很多相似点:它们都是通过网络连接各个数据处理结点的,整个网络中的所有结点构成一个逻辑上统一的整体,用户可以对各个结点上的数据进行透明存取等。但分布式数据库系统与并行数据库系统之间还是存在着显著的区别的,主要表现在以下几个方面:
(1)应用目标不同。并行数据库系统的目标是充分发挥并行计算机的优势,利用系统中的各个处理机结点并行地完成数据库任务,提高数据库的整体性能。分布式数据库系统主要目的在于实现各个场地自治和数据的全局透明共享,而不要求利用网络中的各个结点来提高系统的整体性能。
(2)实现方式不同。由于应用目标各不相同,在具体实现方法上,并行数据库与分布式数据库之间也有着较大的区别。在并行数据库中,为了充分发挥各个结点的处理能力,各结点间采用高速通信网络互联,结点间数据传输代价相对较低。当负载不均衡时,可以将工作负载过大的结点上的任务通过高速通信网络送给空闲结点处理,从而实现负载平衡。在分布式数据库系统中,各结点(场地)间一般通过局域网或广域网互联,网络带宽比较低,各场地之间的通信开销较大,因此在查询处理时一般应尽量减少结点间的数据传输量。
(3)各结点的地位不同。在并行数据库中,各结点之间不存在全局应用和局部应用的概念。各个结点协同作用,共同处理,而不可能有局部应用。
在分布式数据库系统中,各结点除了能通过网络协同完成全局事务外,还有自己结点场地的自治性。也就是说,分布式数据库系统的每个场地又是一个独立的数据库系统,除了拥有自己的硬件系统(CPU、内存和磁盘等)外,还拥有自己的数据库和自己的客户,可运行自己的 DBMS,执行局部应用,具有高度的自治性。这是并行数据库与分布式数据库之间最主要的区别。
到分布透明性包括:分片透明性、位置透明性和局部数据模型透明性。
相对稳定的操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期地加载、刷新。
OLAP 服务器。对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP 和 HOLAP。
ROLAP 基本数据和聚合数据均存放在 RDBMS 之中;MOLAP 基本数据和聚合数据均存放于
多维数据库中;HOLAP 基本数据存放于 RDBMS 之中,聚合数据存放于多维数据库中。
数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。
常用的数据挖掘技术包括关联分析、序列分析、分类、预测、聚类分析及时间序列分析等。
数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是
在没有明确假设的前提下去挖掘信息、发现知识。数据挖掘所得到的信息应具有先前未知,有效和可实用三个特征。
与关系型数据库相比,NoSQL 数据库具有以下几个优点:
1.易扩展:NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。
2.大数据量,高性能
3.灵活的数据模型:NoSQL 无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。
4.高可用:NoSQL 在不太影响性能的情况,就可以方便地实现高可用的架构。比如HBase 模型,通过复制模型也能实现高可用。
NoSQL 也存在很多缺点,例如,并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验,缺乏相关专家技术的支持等。
大数据的特征:Volume:指的是数据体量巨大,Variety:指的是数据类型繁多,Value:指的是价值密度低,Velocity:指的是处理速度快。
TFTP(Trivial FileTransfer Protocol,简单文件传输协议)是用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。TFTP 建立在 UDP(User
Datagram Protocol,用户数据报协议)之上,提供不可靠的数据流传输服务,不提供存取授
权与认证机制,使用超时重传方式来保证数据的到达。
FTP(File TransportProtocol,文件传输协议)是网络上两台计算机传送文件的协议,运
行在 TCP 之上。
HTTP(Hypertext TransferProtocol,超文本传输协议)是用于从 WWW 服务器传输超文
本到本地浏览器的传送协议。它建立在 TCP 之上。
DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)建立在 UDP 之上,
Telnet(远程登录协议)是登录和仿真程序,建立在 TCP 之上。
SNMP(Simple NetworkManagement Protocol,简单网络管理协议)是为了解决 Internet上的路由器管理问题而提出的,它可以在 IP、IPX、AppleTalk 和其他传输协议上使用。
.应用层协议:FTP、TFTP、HTTP、SMTP、DHCP、Telnet、DNS 和 SNMP 等
传输层主要有两个传输协议,分别是 TCP 和 UDP(User Datagram Protocol,用户数据
报协议),这些协议负责提供流量控制、错误校验和排序服务。
TCP为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。TCP 协议一般用于传输数据量比较少,且对可靠性要求高的场合。
UDP 是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信,与 TCP 相比,
UDP 是一种无连接的协议,它的错误检测功能要弱得多。UDP 协议一般用于传输数据量大,对可靠性要求不是很高,但要求速度快的场合。
网络层中的协议主要有 IP、ICMP(Internet Control Message Protocol,网际控制报文协议)、IGMP(Internet Group Management Protocol,网际组管理协议)、ARP(Address Resolution Protocol,地址解析协议)和 RARP(Reverse Address Resolution Protocol,反向地址解析协议)
等,这些协议处理信息的路由和主机地址解析。
一个 32 位的 IPv4 地址以 8 个位为一段分成 4 段,每段之间用点“.”分开。而 IPv6地址的 128 位是以 16 位为一段,共分为 8 段,每段的 16 位转换为一个 4 位的 16 进制数字,每段之间用冒号“:”分开。
在 IPv6 中,常见到使用包含一长串 0 的地址,为了方便书写,对于每一段中的前导 0 可以进行省略。
对于连续 2 段以上都为 0 的字段,可以使用“::”(两个冒号)来表示。每个 IPv6 地址只允许有一个“::”。
3G 是第三代移动通信及其技术的简称,其主流标准包括:WCDMA、CDMA 2000 和D-SCDMA。
网络工程可分为网络规划、网络设计、和网络实施三个阶段
网络规划包括网络需求分析、可行性分析和对现有网络的分析与描述
在逻辑网络设计阶段,需要描述满足用户需求的网络行为及性能,详细说明数据是如何在网络上传输的,此阶段不涉及网络元素的具体物理位置。
物理网络设计是对逻辑网络设计的物理实现,通过对设备的具体物理分布、运行环境等的确定,确保网络的物理连接符合逻辑连接的要求。在这一阶段,网络设计者需要确定具体的软硬件、连接设备、布线和服务。
分层设计 :分别是核心层、汇聚层和接入层。
通常将网络中直接面向用户连接或访问网络的部分称为接入层。
汇聚层是核心层和接入层的分界面,完成网络访问策略控制、数据包处理、过滤、寻址,
以及其他数据处理的任务。汇聚层交换机是多台接入层交换机的汇聚点,它必须能够处理来
自接入层设备的所有通信量,并提供到核心层的上行链路,因此,汇聚层交换机与接入层交
换机比较,需要更高的性能,更少的接口和更高的交换速率。
核心层的主要目的在于通过高速转发通信,提供优化、可靠的骨干传输结构,因此,核心层交换机应拥有更高的可靠性,性能和吞吐量。核心层为网络提供了骨干组件或高速交换组件,在纯粹的分层设计中,核心层只完成数据交换的特殊任务。
运算速度是计算机工作能力和生产效率的主要表征,它取决于给定时间内 CPU 所能处理的数据量和 CPU 的主频。其单位一般用 MIPS(百万条指令/秒)和 MFLOPS(百万次浮点运算/秒)。MIPS 用于描述计算机的定点运算能力;MFLOPS 则用来表示计算机的浮点运算能力。
可靠性是指计算机系统在规定的工作条件下和规定的工作时间内持续正确运行的概率。可靠性一般是用平均无故障时间(MeanTime To Failure,MTTF)或平均故障间隔时间(Mean Time Between Failure,MTBF)来衡量。
可维护性是指系统发生故障后能尽快修复的能力,一般用平均故障修复时间(Mean Time
To Repair,MTTR)来表示。
平均故障响应时间(TAT)即从出现故障到该故障得到确认修复前的这段时间。
全域负载均衡有以下特点:
(1)解决网络拥塞问题,服务就近提供,实现地理位置无关性;
(2)对用户提供更好的访问质量;
(3)提高服务器响应速度;
(4)提高服务器及其他资源的利用效率;
(5)避免了数据中心单点失效。
TPC 基准程序。
其中 TPC-A 用于在线联机事务处理下更新密集的数据库环境下的性能测试,TPC-B 用于数据库系统及运行它的操作系统的核心性能测试, TPC-C 则用于在线联机事务处理测试,TPC-D 用于决策支持系统测试,TPC-H 是基于 TPC-D 基础上决策支持基准测试,还有TPC-W 是用于电子商务应用软件测试。
螺旋模型的每一周期都包括需求定义、风险分析、工程实现和评审 4 个阶段,螺旋模型强调风险分析。不能说螺旋模型绝对比其他模型优越,事实上,螺旋模型也有其自身的缺点:
(1)采用螺旋模型,需要具有相当丰富的风险评估经验和专业知识。在风险较大的项目开发中,如果未能及时标识风险,势必会造成重大损失。
(2)过多的迭代次数会增加开发成本,延迟提交时间。
构件组装模型的优点如下:
(1)构件的自包容性让系统的扩展变得更加容易
(2)设计良好的构件更容易被重用,降低软件开发成本
(3)构件的粒度较整个系统更小,因此安排开发任务更加灵活,可以将开发团队分成若干组,并行地独立开发构件。
构件组装模型也有明显的缺点:
(1)对构件的设计需要经验丰富的架构设计师,设计不良的构件难以实现构件的优点,
降低构件组装模型的重用度。
(2)在考虑软件的重用度时,往往会对其他方面做出让步,如性能等。
(3)使用构件组装应用程序时,要求程序员熟练地掌握构件,增加了研发人员的学习成本。
(4)第三方构件库的质量会最终影响到软件的质量,而第三方构件库的质量往往是开发团队难以控制的。
统一过程UP 迭代的特点:
在初始阶段,开发者刚刚接入系统,此时最重要的工作是界定系统范围,明确系统目的。
在这一阶段,业务建模和需求工作成了重头戏。
在细化阶段,开发者需要抽象出软件的逻辑模型,设计出软件的架构,在这一阶段,分析设计工作是最主要的工程活动。
在构建阶段,开发者需要基本完成系统的构建,使之成为一个完整的实体,并进行测试和部署,在这一阶段,实施和测试是最主要的活动。
当进入交付阶段(该阶段也经常被称为转移阶段),软件系统需求已经完全成熟或产品化,或进入下一个版本。在这一阶段不可避免地要对软件系统进行重构、修改、测试和部署。
业务建模、需求、分析设计、实施、测试和部署是工程活动,而配置与变更管理、项目管理和环境是管理活动。
UP 的生命周期中共有 4 个里程碑:
(1)目标里程碑。目标里程碑对应着先启阶段的结束,当开发者可以明确软件系统的目标和范围时即达到了该里程碑。
(2)架构里程碑。架构里程碑是 UP 生命周期中的第二个里程碑,在这个里程碑前,开发者需要确定稳定的系统架构。
(3)能力里程碑。当系统已经足够的稳定和成熟并完成 Alpha 测试后,认为达到了第3 个里程碑。
(4)发布里程碑。在达到发布里程碑前,需要完成系统的测试、完成系统发布和用户培训等工作。
UP 是一个以架构为中心的开发模型。
XP 由价值观、原则、实践和行为四个部分组成,XP 的核心是其总结的沟通、简单、反馈、勇气四大价值观。十二个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作 40 小时、现场客户、编码标准。
FDD 方法:特征驱动开发,FDD 是也是一个迭代的开发模型。FDD 的每一步都强调质量。
组成 FDD 的最佳实践包括:领域对象建模、根据特征进行开发、类的个体所有、组成特征小组、审查、定期构造、配置管理、结果的可见性。
Scrum 主要包括:产品待办事项列表梳理、Sprint 计划会议、每日 Scrum 会议、Sprint
评审会议、Sprint 回顾会议等五个活动。
水晶方法(Crystal):敏捷方法系列,其目的是发展一种提倡“机动性的”方法,包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践。
透明水晶方法有七大体系特征:
(1)经常交付 (2)反思改进 (3)渗透式交流 (4)个人安全 (5)焦点 (6)与专家用户建立方便的联系 (7)配有自动测试、配置管理和经常集成功能的技术环境
“持续测试集成技术”。这样做他们可以在几分钟内发现因集成所产生的错误。
开放源码的一个突出特点就是查错排障(debug)的高度并行性,任何人发现了错误都可将改正源码的“补丁”文件发给维护者。然后由维护者将这些“补丁”或是新增的代码并入源码库。
软件重用指的是利用已经存在的软件元素建立新的软件系统,这其中的软件元素既可以是软件产品、源程序,也可以是文档、设计思想甚至是领域知识。
目前应用比较广泛的构件标准有 CORBA、Java Bean/EJB、COM/DCOM
基于架构的软件过程划分为架构需求、架构设计、架构文档化、架构复审、架构实现、架构演化等 6 个子过程。
架构文档化过程的主要输出结果是架构需求规格说明和测试架构需求。
可行性研究的主要内容包括经济可行性、技术可行性、法律可行性、执行可行性和方案
的选择 5 个部分。
结构化分析一般包括以下工具:数据流图(Data Flow Diagram,DFD)、数据字典(Data
Dictionary,DD)、结构化语言、判定表、判定树。
实体类一定有属性,但不一定有操作。控制类是用于控制用例工作的类,控制类没有属性,但一定有方法。边界类可以既有属性也有方法。
边界类用于封装在用例内、外流动的信息或数据流。常见的边界类有窗口、通信协议、打印机接口、传感器和终端等。实际上,在系统设计时,产生的报表都可以作为边界类来处理。
继承是面向对象方法中重要的概念,用来说明特殊类(子类)与一般类(父类)的关系,
而通常用泛化来说明一般类与特殊类的关系,也就是说它们是一对多关系。
“交通工具”是“自行车”和“小轿车”的泛化;“自行车”和“小轿 车”从“交通工具”中继承。
多态与重载
在同一个方法中,由于参数类型的不同从而导致执行效果各异的现象就是多态。
重载:一个程序中定义多个名称相同的方法,但是参数类型或个数必须不同。、
所谓类是对一类具有相同特征的对象的描述。而对象是类的实例。
构件图对源代码进行建模:这样可以清晰地表示出各个不同源程序文件之间的关系。
基于架构的软件开发模型则明确地把整个软件过程划分为架构需求、设计、文档化、评审(评估)、实现、演化等 6 个子过程。
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。对于不同的软件系统来说,侧重的角度也有所不同。例如,对于管理信息系统来说,比较侧重于从逻辑视图和开发视图来描述系统,而对于实时控制系统来说,则比较注重于从进程视图和物理视图来描述系统。
将质量属性分为 6 种:可用性、可修改性、性能、安全性、可测试性、易用性。
可用性:心跳、表决、主动冗余、被动冗余、备件、检查点/回滚、从服务中删除、进程监视器
可修改性:包括局部化修改、防止连锁反应、推迟绑定时间
维持语义的一致性、泛化该模块、限制可能的选择、信息隐藏、维持现有的接口、限制通信路径、仲裁者的使用、运行时注册、配置文件、多态、构件更换
性能:资源需求、资源管理、资源仲裁
减少处理事件流所需的资源、减少所处理事件的数量、引入并发、增加可用资源、先进/先出(FIFO)、固定优先级调度、动态优先级调度、静态调度
可测试性:包括输入/输出和内部监控
记录/回放、将接口与实现分离、优化访问线路/接口
易用性:任务的模型、用户的模型、系统的模型、将用户接口与应用的其余部分分离、支持用户的主动操作,如支持“取消”、“撤销”、“聚合”和 “显
示多个视图”
把批处理序列风格与管道过滤器风格比较:
共同点:把任务分成一系列固定顺序的计算单元(组件)。组件间只通过数据传递交互。
区别:批处理是全部的、高潜伏性的,输入时可随机存取,无合作性、无交互性。而管道过滤器是递增的,数据结果延迟小,输入时处理局部化,有反馈、可交互。批处理强调数据传送在步与步之间作为一个整体,而管理过滤器无此要求。
仓库风格包括的子风格有:数据库系统、超文本系统、黑板风格。
MVP 的全称为 Model-View-Presenter,Model 提供数据,View 负责显示,Controller/
Presenter 负责逻辑的处理。
在 MVP 中 View 并不直接使用 Model,它们之间的通信是通过 Presenter (MVC 中的 Controller)来进行的,所有的交互都发生在 Presenter 内部,而在 MVC 中 View 会直接从 Model 中读取数据而不是通过 Controller。
WSDL(Web ServiceDescription Language,Web 服务描述语言)
UDDI(Universal DescriptionDiscovery and Integration,统一描述、发现和集成)提供了一种服务发布、查找和定位的方法
SOAP(Simple ObjectAccess Protocol,简单对象访问协议)
SOAP 用 XML 来格式化消息,用 HTTP 来承载消息。通过 SOAP,应用程序可以在网络中进行数据交换和远程过程调用(Remote Procedure Call, RPC)
REST(RepresentationalState Transfer,表述性状态转移)是一种只使用 HTTP 和 XML 进行基于 Web 通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。
REST 提出了如下一些设计概念和准则:
(1)网络上的所有事物都被抽象为资源。
(2)每个资源对应一个唯一的资源标识。
(3)通过通用的连接件接口对资源进行操作。
(4)对资源的各种操作不会改变资源标识。
(5)所有的操作都是无状态的。
在采用 Web Service 作为 SOA 的实现技术时,应用系统大致可以分为六个层次,分别是底层传输层、服务通信协议层、服务描述层、 服务层、业务流程层和服务注册层。
模式名称(Pattern name)、问题(Problem)、解决方案(Solution)、效果(Consequence)。这四个方面就是设计模式的四要素。
Mediator 模式,又称中介者模式。
Intercepting Filter 模式,又称筛选器模式
把维护分为 4 种类型,即排错性维护、适应性维护、完善性维护和预防性维护
顶层模块测试时不需要驱动模块,底层模块测试时不需要桩模块。驱动模块用来调用被测模块。桩模块用来模拟被测模块所调用的子模块,它接受被测模块的调用。
a 测试由用户在开发者的场所进行,并且在开发者的指导下进行测试。开发者负责记录
发现的错误和使用中遇到的问题。也就是说, 测试是在“受控的”环境中进行的。
b 测试是在一个或多个用户的现场由该软件的最终用户实施的,开发者通常不在现场,
用户负责记录发现的错误和使用中遇到的问题并把这些问题报告给开发者。也就是说,测试
是在“不受控的”环境中进行的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。