统一建模语言在网络主动推送系统设计中的应用_类图论文

统一建模语言在网络主动推送系统设计中的应用,本文主要内容关键词为:建模论文,主动论文,语言论文,系统论文,网络论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

分类号 TP311

CLASS NUMBER TP311

主动信息服务系统是以“推”(Push)技术为基础的。从目前研究来看,采用面向对象的方法研究主动信息服务受到越来越多的人的重视。这是因为:一方面,面向对象技术已比较成熟,有很多经过实践检验的方法和工具。另一方面,主动信息服务是面向用户的,因此从对象过渡到用户是直观而且自然的。本文通过对UML的研究,试图将这一可视化建模工具与网络主动信息服务结合起来,分析和设计一个主动推送系统。

1 UML基本建模思想

1.1 UML的主要内容

UML(统一建模语言,Unified Modeling Language)是一种建模语言,是第三代用来为面向对象开发系统的产品进行说明、可视化和编制文档的方法。它是由三位面向对象方法领域著名的方法学家Grady Booch,James Rumbaugh和Ivar Jacobson提出,结合了他们以及其他众多优秀方法和思想,得到了世界知名公司如Microsoft、HP、IBM、RATIONAL等的使用和支持,并于1997年11月被OMG(Object Management Group)组织采纳,成为面向对象建模的标准语言。

统一建模语言UML的主要内容可以归纳为静态建模机制和动态建模机制,可以由下列5类图来定义。第1类:用例图,包括用例(use case)和角色(actor),用来从用户角度描述系统功能,并指出各功能的操作者。第2类:静态图,包括类图、对象图和包图,最基本的是类图,用来描述系统的静态逻辑结构,即系统重要的抽象元素及元素之间的关系。第3类:行为图,包括状态图、活动图,用来描述系统的动态模型和组成对象间的交互关系。第4类:交互图,包括顺序图、合作图,用来描述对象间的交互关系。第5类:实现图,包括构件图、配置图,用来展示系统的源代码的结构和运行时刻的实现结构。

1.2 UML在软件工程中的作用

UML与系统的开发紧密相关,在软件工程的每一阶段,都可以用相应的UML工具来表示。

需求分析:UML的用例图可以表示用户的需求,通过用例建模,可以对外部角色和他们所需要的系统功能建模。

系统分析:可用UML的逻辑视图和动态视图来描述。类图描述系统的静态结构,协作图、状态图、顺序图、活动图描述系统的动态特征。

系统设计:在UML加入新的类来提供技术基础结构,如用户接口、数据库等,是构造阶段的详细的规格说明。

系统构造:把设计阶段的类转换成某种面向对象的程序设计语言代码,在对UML表示分析和设计模型进行转换时,不要直接把模型转化为代码。因为在早期,模型是理解系统和对系统构造的结构化手段。

系统测试:对系统的测试通常分为单元测试、集成测试、系统测试和接受测试等各个不同级别。各个测试小组可以用不同的UML图作为他们测试工作的基础:单元测试用类图和类的规格说明,集成测试用组件图和协作图,而系统测试用用例图来确定系统的行为是否符合这些图中的定义,从而达到对系统测试的目的。

UML易于表达且功能强大,适用于许多不同系统的开发,如:管理信息系统、事务处理系统、分布式系统、Web系统等等。本文以一个网络主动推送系统的分析和设计为例,阐述如何利用UML工具对系统进行建模,使用的工具是RATIONAL公司的ROSE工具。

2 基于UML的网络主动推送系统建模

本文所设计的系统可以提供以下功能:(1)收集因特网上的信息资源。(2)对所搜集的信息资源进行分析,提取出有用的信息供检索使用。(3)系统保留每个用户的个人信息,允许用户对自己所要求的信息进行定制。(4)在用户使用系统的同时,系统对用户的行为进行记录,并逐步形成每个用户的用户模型。(5)根据用户的定制信息,定期检查信息的更新情况,及时将更新情况或更新后的信息传递给该系统用户。(6)提供传统信息检索系统的查询功能。

使用UML对该系统建模的主要步骤和方法为:(1)采用基于用例图的思想来提炼主动推送系统中的相关角色。(2)采用基于类图和对象图的角色关系图来分析主动推送系统的静态组织结构。(3)采用顺序图和状态图来描述角色间的交互关系和时序关系。(4)利用构件图和部署图来展示系统中各个角色之间的实现结构。

3 利用UML对系统分析设计

3.1 用例图

用例图表示一个系统对于系统外部的交互者的功能,强调从用户的角度看到的或需要的系统功能。其用例是系统提供的高级功能模块。本系统确定的基本角色是定制方(Subscriber)、搜索引擎(SE)、信息提供方(Provider)。在此基础上,确定的基本模块为:定制、查询、接收、建库、发送。用例图如图1所示。

图1 用例图

3.2 交互图

交互图包括顺序图和协作图。顺序图是反映若干个对象之间的动态协作关系,也是随时间的步骤,主要分析对象之间发送信息的先后次序,说明对象之间的交互过程,以及系统执行过程中,在某一具体位置将会发生什么事情。顺序图是UML分析业务过程中非常重要的一种图,它是对整个系统工作流程的一个过程反映,直接影响系统将来是否和实际系统相符合。协作图是表示角色之间交互的视图,它除了反映角色之间的信息变化(交互)外,还能够反映角色和它们之间的关系(称为上下文相关)。由于协作图和顺序图透视反映角色之间的交互,所以建模可以任意选择一种反映对象之间的协作关系。主要根据要强调的是时间序列还是强调上下文相关的关系来确定要使用哪种图。图2是用户定制需求后系统的顺序图。

图2 定制和推送顺序图

图2显示了一个主动信息服务系统的处理流程。首先客户(Subscriber)向系统(Provider)定制某一类信息需求,即图中的某一类事件。系统则构造一个事件容器(EventHolder),容器中有指向定制者的个人信息。系统周期性地检查事件容器,并把新事件推出到所有的定制者。另一方面,信息源(发送者)把事件数据传送到系统,系统则构造一个新的事件对象,并把它存放到属于该类事件的事件容器中。同时,系统定期地检查所有的事件容器,并调用定制者的处理事件运算,把未送出的事件推出到定制者。若定制者收到,则把对应事件的现况属性更新为“已发送”,这就完成了事件对象在定制和推送服务中的生命周期。

3.3 类图、对象图和包图

类图表示系统中需要处理的事务,类与类之间有多种连接方式(关系),如关联、倚赖、通用化、打包等。这些关系体现在类图的内部结构中,通过类的属性和操作反映出来。一般一个系统有若干个类图,每个类图不一定包含系统中的所有类,一个类可以加到几个类图中。

在本系统中确定的基本类有:发送定制要求的客户、提供主动信息服务的供方以及用于搜索网上信息的搜索引擎。本系统的设计是建立在假设搜索引擎已经从因特网上搜索到信息资源,并且存储在数据库中的基础上,所以重点考虑的是定制方和提供方之间的关联关系。Eventholder作为Subscriber和Provider之间的关联类,并且持有事件(Event)的集合。图3给出的是该系统的一个类图,表示定制和推送之间的关系。

图3 定制和推送的类图

对象图是类图的实例化,不是真正的类,是类图的一个范例,它及时、具体地反映了系统执行到某处时的工作状况。

包图是设计元素分组的通用组织机制,可以利用包图将系统逐步细化,分成若干个子系统,这样便于设计者理解、修改、测试和维护。可以用包把许多类组织起来,集合到更高一级的单元层次中来处理。

3.4 活动图

活动图是反映一个连续的活动流,主要用于描述某个操作执行时的活动状态。对该系统而言,首先接收用户的定制,然后通过构造一个事件容器建立用户的个人信息,再定期查找事件容器,并把新事件推送到用户面前,同时将对应事件的属性改为“已发送”。

3.5 状态图

状态图是对类所描述的对象的一个补充,显示了类的所有对象可能具有的状态,以及引起的状态变化。在本系统中,一个事件从数据库到达用户面前要经历不同的状态,刚开始时为新事件,推送到用户后,该事件便标记为“已发送”。可以用状态图表示这个过程如图4。

图4 一个事件的状态图

3.6 构件图和部署图

构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。构件图有助于分析和理解部件之间的相互影响程度。部署图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。系统的部署图如图5所示。

图5 系统部署图

该系统采用的是流行的B/W/D三层体系结构。第1层为数据库接点,第2层为应用服务器层,第3层为用户界面层,负责与用户打交道。数据库中存储的数据包括:已搜索的网络信息资源的索引信息、各个用户的用户管理信息、个人定制信息和浏览习惯等个人化数据、网络信息资源的更新和修改情况等。

应用服务层包括定制服务器、资源发送器等。定制服务器是由独立运行在服务器上的软件来担任,用于接收客户定制器传送的信息,并与用户数据库相联,将用户的定制内容存储在数据库中,根据相应的信息对数据库进行查询或修改操作。资源发送模块根据数据库中信息变化的情况,向定制信息的用户发送更新的信息资源。当资源发送器发现用户定制的信息资源有所更新时,将与该用户的资源接收器相联,将资源的更新状况和更新后的资源发送给资源接收器。

用户层包括客户定制器和资源接收器。客户定制模块功能为接收用户主动定制的信息、将定制信息加入用户数据库中,并能提供用户修改其定制信息的功能。客户定制器是在客户端运行的,用户第一次使用该系统时,可以按个人需要生成定制信息,并将接收到的信息传送给定制服务器,以后每次登录都可以修改定制。定制信息主要包括关键词和URL地址两种形式。接收器把发送来的资源存储在客户机上,供用户以后浏览。

4 系统的实现

实现阶段是指编程实现类。通常选择基于JAVA的开发环境,主要考虑到如下原因:

(1)JAVA的标准和跨平台优势,为用户提供了灵活、丰富的选项以及能够同企业一起扩展的环境。这种优势来自JAVA所提供的“一次开发,随处运行”的能力。应用JAVA,无需编写多种版本的应用程序,就可以运行在不同的软硬件平台上,这无疑是软件产品走向商品化的一项巨大优势。

(2)JAVA是一种纯面向对象的语言,而本系统采用面向对象的开发方法,因此JAVA可以和本系统的分析设计成果无缝衔接,大大提高编程人员的工作效率,加快产品开发速度,降低成本。

(3)JAVA的众多实用技术,如内存垃圾自动回收技术、多线程机制、JDBC等给编程人员带来了巨大便利,极大地提高了工作效率。

5 系统的测试和配置

系统的测试可以使用用例来测试,检查应用是否支持这些用例,即是否满足所有的功能需求。系统的配置是指将系统提交给用户,包括所有的文档。文档中应包括系统的物理配置图,包括构件图和部署图。

6 结束语

本文通过一个主动信息推送系统的分析和设计,介绍了UML的实际建模过程。基于主动推送系统的面向用户定制的特点以及对象概念和用户概念的一致性,我们提出了采用可视化建模工具,从主动推送系统中的角色定义、静态结构描述和动态行为描述等方面进行系统建模的思路。这几方面的模型是紧密联系的,在建模过程中应该相互参考。

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  

统一建模语言在网络主动推送系统设计中的应用_类图论文
下载Doc文档

猜你喜欢