0. 主要考点
? 面向对象 ? 软件架构 ? 中间件 ? 数据仓库
1. 面向对象系统分析与设计(掌握)
面向对象的基本概念包括:类、对象、抽象、封装、继承、多态、接口、消息、组件、复用、模式等。
选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度;使用设计模式有助于在软件开发过程中应用对象技术;在软件生命周期的分析、设计、测试过程均可应用面向对象技术。
① 类和对象概念及其关系
? 类:现实世界中实体的形式化描述,类将实体的属性(数据)和操作(函数)封装在一起。
? 对象:由数据和操作构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。用计算机语言描述,对象是由一组属性和对这组属性进行的操作构成的。
对象包含三个基本要素:对象标识、对象状态、对象行为。
? 类和对象的关系可总结为: ? 每一个对象都是某一个类的实例 ? 每一个类在某一时刻都有0个或多个实例 ? 类是静态的,对象是动态的 ? 类是生成对象的模板
类和对象的关系可理解为:对象是类的实例,类是对象的模板。如果将对象比作房子,那么类就是房子的设计图纸。
② 抽象和封装的概念
? 抽象:通过特定的实例抽取共同特征以后形成概念的过程。抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。对象是现实世界中某个实体的抽象,类是一组对象的抽象。
? 封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象外提供的接口进行。
封装是指吧数据以及操作数据的相关方法组合在同一单元中,使我们可以把类作为软件复用中的基本单元,提供内聚度,降低耦合度。
③ 继承、多态和接口的概念
? 继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承可分为单继承和多继承。Java是单继承语言,C++是允许多继承。(注意:继承表示类之间的层次关系,而不是对象之间层次关系)
? 多态:使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。(多态前提条件是首先实现继承)
? 接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。可以将接口理解成类的一个特例,它规定了实现此接口的类的操作方法,把真正的实现细节交由实现该接口的类中去完成。
④ 消息和组件的概念
? 消息:体现对象间的交互,通过它向目标对象发送操作请求。
? 组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。组件应当是内聚的,并具有相对稳定的公开接口。
⑤ 复用和模式的概念
? 复用:指将已有的软件及其有效成分用于构造新的软件或系统。组件技术是软件复用实现的关键。
? 模式:描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案三个组成部分。应用设计模式可以更加简单和方便的去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。
2. 统一建模语言UML(掌握)
UML适用于各种软件开发方法、软件生命周期地各个阶段、各种应用领域以及各种开发工具。
UML是一种可视化地建模语言,而不是编程语言。不是过程,也不是方法,但允许任何一种过程和方法使用它。UML标准包括相关概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的,强调在软件开发中对架构、框架、模式和组件的重用,并与最佳软件工程实践经验进行了继承。
UML简单且可扩展;是面向对象分析与设计的一种标准表示。
RUP是使用面向对象技术进行软件开发的最佳实践之一,是软件工程的过程。它对所有关键开发活动提供了使用准则、模板、工具。
UML9种常见的图及说明(掌握)
序号 | 名称 | 说明 |
---|
1 | 用例图 | 描述系统的对象结构,他们显示构成系统的对象以及这些对象类之间的关系 | 2 | 类图 | 描述系统的对象结构,他们显示构成系统的对象以及这些对象类之间的关系 | 3 | 对象图 | 类似类图,但不描述对象类,他们对实际的对象实例建模显示实例属性的当前值 | 4 | 组件图 | 用来描述系统的物理结构,它可以用来显示程序代码如何分解模块。展示一组构件之间的组织和依赖。 | 5 | 部署图 | 描述系统中硬件和软件的物理架构,它描述构成系统架构的软件构件,处理器和设备。 | 6 | 状态图 | 对一个特定对象的动态行为建模,说明一个对象的生命周期对象可以经历各种状态,以及引起对象从一个状态向另一个状态转换的事件。 | 7 | 序列图 | 序列图也叫顺序图,用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。可为一个协作建模。 | 8 | 协作图 | 协作图也可称通信图,强调收发消息的对象的结构组织,类似序列图,但重点不是消息的时间顺序,它以一种网状格式表现对象之间的交互。 | 9 | 活动图 | 活动图是一种特殊的状态图,它展示了在系统内从一个活动到另一个活动的流程。 |
(2012年下半年试题:用户显示运行的处理节点以及居于其上的构件、进程和对象的配置的图是部署图)
(2010年下半年试题:UML中的用例和用例图的主要用途是描述系统的功能需求)
3. 软件架构(掌握)
序号 | 模式 | 特点、适用情况 |
---|
1 | 管道/过滤器模式 | 体现了各功能模块高内聚、低耦合的"黑盒"特性,支持软件功能模块的重用,便于系统维护;同时,每个过滤器自己完成数据解析和合成工作(如加密和解密),易导致系统性能下降,并增加了过滤器具体实现的复杂性。其典型应用包括批处理系统 | 2 | 面向对象模式 | 将模块数据的表示方法及其相应操作封装在更高抽象层次的数据类型或对象中,其典型应用是基于组件的软件开发(CBD) | 3 | 事件驱动模式 | 组件并不直接调用操作,而是触发一个或多个事件。系统中的其他组件可以注册相关的事件,触发一个事件时,系统会自动调用注册了该事件的组件,即触发事件会导致另一个组件中操作的调用。典型的有图形界面工具 | 4 | 分层模式 | 采用层次化的组织方式,每一层都为上一层提供服务,并使用下一层提供的功能。该模式允许将一个复杂问题逐步分层实现。其中的每一层最多只影响相邻两层,只要给相邻层提供相同的接口,就允许每层用不同的方法实现,可以充分支持软件复用。其典型应用是分层通信协议,如ISO/OSI的七层网络模型 | 5 | 客户/服务器模式 | 基于资源不对等,为实现共享而提出的模式。C/S模式将应用一分为二,服务器(后台)负责数据操作和事物处理,客户(前台)完成与用户的交互任务。C/S模式中客户与服务器分离,允许网络分布操作,适用于分布式系统。为了解决C/S模式中客户端问题,发展形成了浏览器/服务器(B/S)模式;为了结局C/S模式中服务器端的问题,发展形成了三层(多层)C/S模式,即多层应用架构。 |
与客户机/服务器架构相比,浏览器/服务器架构的最大优点:部署和维护方便、易于扩展。
为了解决C/S模式中客户机负荷过重的问题,软件架构发展形成了B/S模式。
在信息系统工程总体规划过程中,软件架构包括多种形式。在客户/服务器两层架构中,数据和数据处理放在服务器端,而应用处理和表现层放在客户端。
基于组件的软件开发架构模式一般在面向对象软件开发架构模式中使用。
针对目前广泛使用的分布式应用,其软件架构设计需要考虑如下问题: ? 数据库的选择问题:目前主流的数据库系统是关系型数据库。 ? 用户界面选择问题:HTML/HTTP(S)协议是实现Internet应用的重要技术。 ? 灵活性和性能问题:权衡独立于厂商的抽象定义(标准)所提供的灵活性和特定厂商产品带来的性能。 ? 技术选择的问题:选择成熟的技术可以规避项目风险。不仅需要了解技术的优势,还需要了解技术的适用范围和局限性。 ? 人员的问题:聘请经验丰富的架构设计师,可以有效地保证项目的成功。
4. 软件中间件(掌握)
中间件是位于硬件、操作系统等平台和应用之间的通用服务。借由中间件,解决了分布系统的异构问题。
中间件服务具有标准的程序接口和协议。不同的应用、硬件及操作系统平台,可以提供符合接口和协议规范的多种实现,其主要目的是实现应用与平台的无关性。借助中间件,屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制,满足不同领域的应用需要。
通常将中间件分为数据库访问中间件、远程过程调用中间件、面向消息中间件、分布式对象中间件、事务中间件等。
① 数据库访问中间件
数据库访问中间件,通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。典型技术如Windows平台的ODBC和Java平台的JDBC等。
② 远程过程调用中间件
远程过程调用中间件(RPC),是一种分布式应用程序的处理方法。一个应用程序可以使用RPC来远程执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。
③ 面向消息中间件
面向消息中间件(MOM),利用高效可靠的消息传递机制进行平台无关的数据传递,并可基于数据通信进行分布式系统的集成。通过提供消息传递和消息队列模型,可在分布环境下扩展进程间的通信,并支持多种通讯协议、语言、应用程序、硬件和软件平台。典型产品如IBM的MQSeries。
④ 分布式对象中间件
分布式对象中间件,是建立对象之间客户/服务器关系的中间件,结合了对象技术与分布式计算技术。该技术提供了一个通信框架,可以在异构分布计算环境中透明的传递对象请求。典型产品如OMG的CORBA、Java的RMI/EJB、Microsoft的Dcom等。
⑤ 事务中间件
事务中间件,也称事物处理监控器(TPM),提供持大规模事物处理的可靠运行环境。TPM位于客户和服务器之间,完成事务管理与调度、负载平衡、失效恢复等任务,以提高系统的整体性能。典型产品如:IBM/BEA的Tuxedo。
5. 典型应用集成技术
① 数据库与数据仓库技术(掌握)
传统的数据库技术以单一的数据源即数据库为中心,进行事务处理、批处理、决策分析等各种数据处理工作,主要有操作型处理和分析型处理两类。 ? 操作型处理:也称事务处理。指的是对联机数据库的日常操作,通常是对数据库中记录的查询和修改。主要为企业的特定应用服务,强调处理的响应时间、数据的安全性和完整性等。 ? 分析型处理:用户管理人员的决策分析,经常要访问大量的历史数据。传统数据库系统主要强调的是优化企业的日常事务处理工作,难以实现对数据分析处理要求,无法满足数据处理多样化的要求。
操作型处理和分析型处理的分离是必然和必要的。
数据仓库(掌握)
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策,面向分析型数据处理,不同于企业现有的操作型数据库;其次,数据仓库是对多个异构数据源(包括历史数据)的有效集成,集成后按主题重组,且存放在数据仓库中的数据一般不再修改。 数据仓库系统的结构通常包含4个层次: ? 数据源是数据仓库系统的基础 ? 数据的存储与管理是整个数据仓库系统的核心 ? OLAP(联机分析处理)服务器对分析需要的数据进行有效集成,按多为模型组织,以便进行多角度、多层次的分析,并发现趋势。 ? 前端工具主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。 ? 数据库主要采用OLTP(联机事务处理),数据仓库主要采用OLAP(联机分析处理) ? 数据库是面向事务的,数据仓库是面向主题的。
② Web Services技术(了解)
Web服务定义了一种松散的、粗粒度的分布式计算模式,使用标准的HTTP(S)协议传送XML表示及封装的内容。
Web服务的典型技术包括:用户传递信息的简单对象访问协议(SOAP)、用户描述服务的Web服务描述语言(WSDL)、用户Web服务注册的统一描述、发现及集成(UDDI)、用户数据交互的XML。
Web服务的主要目标是跨平台的互操作性,适合使用Web Services的情况包括:跨越防火墙、应用程序集成、B2B集成、软件重用等。同时,在某些情况下,web服务也可能会降低应用程序的性能。不适合使用Web服务的情况包括:单机应用程序、局域网上的同构应用程序等。
(2013年上半年试题:在Web Service中用于描述WEB服务语言是WSDL)
③ JavaEE架构(了解)
JavaEE应用将开发工作分成两类:业务逻辑开发和表示逻辑开发,其余系统资源则由应用服务器负责处理,不必为中间层的资源和运行管理进行编码。这样就可以将更多开发精力集中在应用程序的业务逻辑和表示逻辑上,从而缩短企业应用开发周期、有效地保护企业的投资。
JavaEE应用服务器运行环境主要包括组件、容器、服务三部分。组件是表示应用逻辑的代码;容器是组件的运行环境;服务则是应用服务器提供的各种功能接口,可以同系统资源进行交互。
④ .NET架构(了解)
微软的.NET是基于一组开放的互联网协议而推出的一系列的产品、技术和服务。.NET开发框架在通用语言运行环境(Common Language Runtime)基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。
通用语言运行环境处于.NET开发框架的最低层,是该框架的基础,它为多种语言提供了统一的运行环境、统一的编程模型,大大简化了应用程序的发布和升级、多种语言之间的交互、内存和资源的自动管理等等。
⑤ 组件及其在系统集成项目中的重要性(了解)
组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行封装,同时实现各种业务逻辑规则,用于处理用户的内部操作细节。 满足此目的的封装体被称作组件。在这一过中,为了完成对某一规则的封装,可以用任何支持组件编写的工具来完成,而最终完成的组件则与语言本身没有任何关系,甚至可以实现跨平台。对使用者而言,它就是实现了某些功能的、有输入输出接口的黑盒子。
常用组件标准,包括: ? 微软的COM/DCOM/COM+ ? OMG的CORBA ? SUN的RMI/EJB
? 微软的COM/DCOM/COM+系列中,COM是开放的组件标准,有很强的扩充和扩展能力。DCOM在COM的基础上添加了许多功能和特性,包括事务特性、安全模型、 管理和配置等,使COM成为一个完整的组件架构。COM+综合各技术形成的功能强大的组件架构,通过系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给了系统。
COM+不是COM的新版本,可以理解成更高层次的应用。
? CORBA (Common Object Request Broker Architecture,公共对象请求代理架构)是OMG组织制订的一种标准的面向对象的应用程序架构规范,是为解决分布式处理环境中硬件和软件系统的互连而提出的一种解决方案。CORBA是绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言, 被支持程度广泛等特点,已成为分布计算技术的标准。
? EJB在Java EE中用于封装中间层的业务功能。EJB组件部署在EJB容器中,客户应用通过接口访问它们,体现了接口和实现分离的原则。
6. 习题练习总结
继承表示类之间的层次关系。 数据库也有联机处理,叫联机事务处理(OLTP); 数据仓库的是联机分析处理(OLAP)。
上图选C。
|