龙空技术网

第3章 信息系统集成专业技术知识(二)

凤啊 86

前言:

而今我们对“面向对象的分析方法主要是建立3类框架”都比较讲究,兄弟们都想要学习一些“面向对象的分析方法主要是建立3类框架”的相关知识。那么小编在网上搜集了一些关于“面向对象的分析方法主要是建立3类框架””的相关内容,希望兄弟们能喜欢,看官们一起来了解一下吧!

3.4面向对象系统分析与设计3.4.1面向对象的基本概念

对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。对象是由一组属性和对这组属性进行的操作构成的。

对象包含三个基本要素,分别是对象标识、对象状态和对象行为。

类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。

类和对象的关系可理解为,对象是类的实例,类是对象的模板。

抽象:通过特定的实例抽取共同特征以后形成概念的过程。抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。

对象是现实世界中某个实体的抽象,类是一组对象的抽象。

封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。

面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。

继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另一类对象的特征,继承又分为单继承和多继承。

多态:使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。

接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。可以将接口理解为类的一个特例,它规定了实现此接口的类的操作方法,把真正的实现细节交由实现该接口的类去完成。

消息:体现对象间的交互,通过它向目标对象发送操作请求。

组件:表示软件系统可替换、物理的组成部分,封装了模块功能的实现。

组件应当是内聚的,并具有相对稳定的公开接口。

复用:指将已有的软件及其有效成分用于构造新的软件或系统。

组件技术是软件复用实现的关键。

模式:描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案三个组成部分。应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。

3.4.2统一建模语言与可视化建模

统一建模语言(Unified Modeling language,UML)用于对软件进行可视化描述、构造和建立软件系统的文档。

UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。

UML是一种可视化的建模语言,而不是编程语言。

它比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的,强调在软件开发中对架构、框架、模式和组件的重用,并与最佳软件工程实践经验进行了集成。

UML图提供了对系统进行建模的描述方式,主要包括:用例图、类图、对象图、组件图、部署图、状态图、序列图、协作图、活动图等。

RUP是使用面向对象技术进行软件开发的最佳实践之一,是软件工程的过程。它对所有关键开发活动提供了使用准则、模板、工具等。其涵盖的最佳实践经验包括:迭代式开发、需求管理、使用以组件为中心的软件架构、可视化建模、验证软件质量及控制变更等。

3.4.3面向对象系统分析

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

面向对象系统分析的模型由用例模型、类-对象模型、对象-关系模型和对象-行为模型组成。

3.4.4面向对象系统设计

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

面向对象系统设计主要包括用例设计、类设计和子系统设计等。

3.5软件架构3.5.1软件架构定义

将软件系统划分成多个模块,明确各模块之间的相互作用,组合起来实现系统的全部特性,就是系统架构。

通常将一些经过实践证明的、可重复使用的软件架构设计策略总结成架构模式。

3.5.2软件架构模式

软件架构设计的一个核心问题是能否使用架构模式,即能否达到架构级的软件重用。

软件架构模式描述了某一特定应用领域中系统的组织方式,反映了领域中众多系统所共有的结构和特性,描述了将各个模块和子系统有效地组织成一个完整系统的解决方案。

常见的典型架构模式:

(1)管道/过滤器模式:此模式中,每个组件(过滤器)都有一组输入/输出,组件读取输入的数据流,经过内部处理后,产生输出的数据流,该过程主要完成输入流的变换及增量计算。其典型应用包括批处理系统。

管道/过滤器模式体现了各功能模块高内聚、低耦合的“黑盒”特性,支持软件功能模块的重用,便于系统维护;同时,每个过滤器自己完成数据解析和合成工作(如加密和解密),易导致系统性能下降,并增加了过滤器具体实现的复杂性。

(2)面向对象模式:在面向对象的基础上,将模块数据的表示方法及其相应操作封装在更高抽象层次的数据类型或对象中。其典型应用是基于组件的软件开发。

(3)事件驱动模式:其基本原理是组件并不直接调用操作,而是触发一个或多个事件。系统中的其他组件可以注册相关的事件,触发一个事件时,系统会自动调用注册了该事件的组件,即触发事件会导致另一组件中操作的调用。其典型应用包括各种图形界面应用。

(4)分层模式:采用层次化的组织方式,每一层都为上一层提供服务,并使用下一层提供的功能。该模式允许将一个复杂问题逐步分层实现。其中的每一层最多只影响相邻两层,只要给相邻层提供相同的接口,就允许每层用不同的方法实现,可以充分支持软件复用。其典型应用是分层通信协议,如ISO/OSI的七层网络模型。此模式也是通用应用架构的基础模式。

(5)客户/服务器模式(Client/Server,C/S):基于资源不对等,为实现共享而提出的模式。C/S模式将应用一分为二,服务器(后台)负责数据操作和事物处理,客户(前台)完成与用户的交互任务。

C/S模式中客户与服务器分离,允许网络分布操作,适用于分布式系统。

为了解决C/S模式中客户端的问题,发展形成了浏览器/服务器(Browser/Server,B/S)模式;

为了解决C/S模式中服务器端的问题,发展形成了三层(多层)C/S模式,即多层应用架构。

3.5.3软件架构分析与评估

针对目前广泛使用的分布式应用,其软件架构设计需要考虑如下问题:

(1)数据库的选择问题:目前主流的数据库系统是关系数据库。

(2)用户界面选择问题:HTML/HTTP(S)协议是实现Internet应用的重要技术。

(3)灵活性和性能问题:权衡独立于厂商的抽象定义(标准)所提供的灵活性和特定厂商产品带来的性能。

(4)技术选择的问题:选择成熟的技术可以规避项目风险。不仅需要了解技术的优势,还需要了解技术的适用范围和局限性。

(5)人员的问题:聘请经验丰富的架构设计师,可以有效地保证项目的成功。

3.5.4软件中间件

中间件是位于硬件、操作系统等平台和应用之间的通用服务。借由中间件,解决了分布系统的异构问题。中间件服务具有标准的程序接口和协议。

不同的应用、硬件及操作系统平台,可以提供符合接口和协议规范的多种实现,其主要目的是实现应用与平台的无关性。借助中间件,屏蔽操作系统和网络协议的差异性,为应用程序提供多种通讯机制,满足不同领域的应用需求。

数据库访问中间件:通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。典型技术如Windows平台的ODBC和Java平台的JDBC等。

远程过程调用中间件(Remote Procedure Call,RPC):是一种分布式应用程序的处理方法。一个应用程序可以使用RPC来“远程”执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。一个RPC应用分为服务器和客户两个部分。服务器提供一个或多个远程操作过程:客户向服务器发出远程调用。服务器和客户可以位于同一台计算机,也可以位于不同的计算机,甚至可以运行在不同的操作系统之上。客户和服务器之间的网络通讯和数据转换通过代理程序(Stub与Skeleton)完成,从而屏蔽了不同的操作系统和网络协议。

面向消息中间件(Message-Oriented Middleware,MOM):利用高效可靠的消息传递机制进行平台无关的数据传递,并可基于数据通信进行分布系统的集成。通过提供消息传递和消息队列模型,可在分布环境下扩展进程间的通信,并支持多种通讯协议、语言、应用程序、硬件和软件平台。典型产品如IBM的MQSeries。

分布式对象中间件:是建立对象之间客户/服务器关系的中间件,结合了对象技术与分布式计算技术。该技术提供了一个通信框架,可以在异构分布计算环境中透明地传递对象请求。典型产品如OMG的CORBA、Java的RMI/EJB、Microsoft的DCOM等。

事务中间件:也称事务处理监控器(Transaction Processing Monitor,TPM),提供支持大规模事务处理的可靠运行环境。TPM位于客户和服务器之间,完成事务管理与协调、负载平衡、失效恢复等任务,以提供系统的整体性能。典型产品如IBM/BEA的Tuxedo。结合对象技术的对象事务监控器(Object Transaction Monitor,OTM)如支持EJB的JavaEE应用服务器等。

3.6典型应用集成技术3.6.1数据库与数据仓库技术

传统的数据库技术以单一的数据源即数据库为中心,进行事务处理、批处理、决策分析等各种数据处理工作,主要有操作型处理和分析型处理两类。操作型处理也称事务处理,指的是对联机数据库的日常操作,通常是对数据库中记录的查询和修改,主要为企业的特定应用服务,强调处理的响应时间、数据的安全性和完整性等;分析型处理则用于管理人员的决策分析,经常要访问大量的历史数据。

数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。数据仓库是对多个异构数据源(包括历史数据)的有效集成,集成后按主题重组,且存放在数据仓库中的数据一般不再修改。

大数据的特点:Volume(数据量大)、Variety(数据类型繁多)、Velocity(处理速度快)、Value(价值密度低)、Veracity(真实性高)。

大数据的意义不在于掌握庞大的数据信息,而在于对这些数据进行专业化处理,实现数据的“增值”。大数据分析相比于传统的数据仓库应用,具有数据量大、查询分析复杂等特点。在技术上,大数据必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术等。

3.6.2 Web Services技术

Web服务定义了一种松散的、粗粒度的分布计算模式,使用标准的HTTP(S)协议传送XML表示及封装的内容。

Web服务的典型技术包括:用于传递信息的简单对象访问协议(Simple Object Access Protocal,SOAP)、用于描述服务的Web服务描述语言(Web Services Description Language,WSDL)、用于Web服务注册的统一描述、发现及集成(Universal Description Discovery and Integration,UDDI)、用于数据交换的XML。

Web服务的主要目标是跨平台的互操作性,适合使用Web Services的情况包括:跨越防火墙、应用程序集成、B2B集成、软件重用等。同时,在某些情况下,Web服务也可能会降低应用程序的性能。

不适合使用Web服务的情况包括:单机应用程序、局域网上的同构应用程序等。

3.6.3 JavaEE架构

JavaEE应用将开发工作分为两类:业务逻辑开发和表示逻辑开发,其余的系统资源则由应用服务器负责处理,不必为中间层的资源和运行管理进行编码。这样就可以将更多的开发精力集中在应用程序的业务逻辑和表示逻辑上,从而缩短企业应用开发周期、有效地保护企业的投资。

JavaEE应用服务器运行环境主要包括组件、容器及服务三部分。组件是表示应用逻辑的代码;容器是组件的运行环境;服务则是应用服务器提供的各种功能接口,可以同系统资源进行交互。

3.6.4 .NET架构

微软的.NET是基于一组开放的互联网协议而推出的一系列的产品、技术和服务。

.NET开发框架在通用语言运行环境基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。

通用语言运行环境处于.NET开发框架的最低层,是该框架的基础,它为多种语言提供了统一的运行环境、统一的编程模型,大大简化了应用程序的发布和升级、多种语言之间的交互、内存和资源的自动管理等等。

3.6.5软件引擎技术

软件引擎通常是系统的核心组件,目的是封装某些过程方法,使得在开发的时候不需要过多地关注其具体实现,从而可以将关注点聚焦在与业务的结合上。

工作流引擎是工作流管理系统的运行和控制中心。通过工作流引擎,可以解释流程建模工具中定义的业务流程逻辑,进行过程、活动实例的创建,把任务分派给执行者,并根据任务执行的返回结果决定下一步的任务,控制并协调各种复杂工作流程的执行,实现对完整的业务流程生命周期的运行控制。工作流引擎的主要功能是流程调度和冲突检测。

3.6.6组件及其在系统集成项目中的重要性

组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行封装,同时实现各种业务逻辑规则,用于处理用户的内部操作细节。满足此目的的封装体被称作组件。

3.6.7常用组件标准

微软的COM/DCOM/COM+系列中,COM是开放的组件标准,有很强的扩充和扩展能力。DCOM在COM的基础上添加了许多功能和特性,包括事务特性、安全模型、管理和配置等,使COM成为一个完整的组件架构。COM+综合各技术形成的功能强大的组件架构,通过系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给了系统。

CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)是OMG组织制订的一种标准的面向对象的应用程序架构规范,是为解决分布式处理环境中硬件和软件系统的互连而提出的一种解决方案。

EJB在Java EE中用于封装中间层的业务功能。EJB组件部署在EJB容器中,客户应用通过接口访问它们,体现了接口和实现分离的原则。

标签: #面向对象的分析方法主要是建立3类框架