学习笔记 UML建模在数字图书馆中的应用
本文和大家重点讨论一下UML建模在数字图书馆中的应用,数字图书馆组织了一系列与平台无关、面向对象、分布式的数字化信息资源并且提供相关的服务,那么UML建模如何应用在数字图书馆中呢,请看本文详细介绍吧。
UML建模在数字图书馆中的应用
1 引言
在信息技术迅猛发展及基于Internet网络应用日益普及的今天,传统图书馆正在向自动化、网络化、电子化的数字化方向发展,这是目前网络信息资源开发和研究的热点。数字图书馆的建设涉及到信息资源数字化、多媒体数据库、分布式网络、信息管理系统结构等多方面的问题,需要有效地集成和应用最新的信息技术。如何在宏观上有效地把握和组织,并运用到数字图书馆的开发建设上,是数字图书馆研究的重点。UML(TheUnifiedModelingLanguage,即统一建模语言)是一种编制系统蓝图的标准化语言,可以对复杂的系统建立可视化的系统模型,目前已经被工业标准化组织OMG(ObjectManagementGroup)接受,一经推出便得到许多著名的计算机厂商如Microsoft、HP、IBM、Oracle等的支持,在国际上的应用日益广泛。数字图书馆的开发建设是一个复杂的软件工程,需要集成不同的操作系统、数据库和应用软件,有众多不同级别的用户、管理员,满足图书馆从书目查询、普通和电子书刊借阅到提供网上信息服务、资源共享等各种需求。用传统的系统开发和集成的分析设计方法难以保证效率和质量,UML的特点及数字图书馆的要求,决定UML在数字图书馆中应该有很好的应用前景。
1.1 UML建模中数字图书馆的基本特征和模式
数字图书馆组织了一系列与平台无关、面向对象、分布式的数字化信息资源并且提供相关的服务,它应该具有以下一些特征[2][4]:
(1)数字图书馆拥有海量的数字化资源,其信息度量单位不再是KB、MB,而是GB、TB甚至PB。数字化的资源又是多种媒体(如文字、图像、音频、视频、虚拟空间等)的,具有多种存储和压缩格式。
(2)数字化资源并不是孤立的,而是相互关联的动态的。数字图书馆是数字化资源的统一,可以通过一定的相关关系,由特定的协议和存取方法来查找和访问这些数字化资源。
(3)数字图书馆必须为用户提供统一的访问手段,能够让用户透明方便地获取所需的信息而不必关心这些信息的具体位置。对数字资源的检索应该是智能化、交互式的,对全文、多媒体信息、多语言信息的检索都可以达到很好的查全率和查准率。
(4)数字图书馆建立在异构平台上,具有分布、开放的信息结构,高速、可靠的网络环境是其运行的基础。它突破了时间、空间的限制,让用户可以在任何地方、任何时间获取自己所需的信息。在此基础上提供的导航式和个性化的服务,使服务内容更多样、服务模式更广泛,这是对传统图书馆服务功能的突破。
数字图书馆的模式,可以用图1简单说明,用户通过网络和通信系统,连接到数字图书馆的咨询系统,通过这个统一的访问界面,用户可以透明地获取各种信息资源。
附图
图1 数字图书馆模式
1.2 UML建模概述及特点
UML是一种编制系统蓝图的标准化语言,可以对大型复杂的系统的各种成分可视化、说明并构造系统模型,以及建立各种所需的文档。UML通过三类图形建立系统模型:UseCase图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图),这些图可以从不同的抽象角度使系统可视化。UML具有以下特点[1]:
(1)面向对象。UML支持面向对象技术的主要概念,提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念。
(2)可视化,表示能力强。通过UML的模型图能清晰地表示系统的逻辑模型和实现模型,可用于各种复杂系统的建模。
(3)独立与过程。UML是系统建模语言,独立与开发过程。
(4)独立于程序设计语言。用UML建立的软件系统模型可以用Java、VC++、Smalltalk等任何一种面向对象的程序设计来实现。
(5)易于掌握使用。UML图形结构清晰,建模简洁明了,容易掌握使用。
使用UML进行系统的分析和设计,可以加速开发的进程,提高代码的质量,支持动态的业务需求。UML适用于各种规模的系统开发,能促进软件复用,方便地集成已有的系统并有效处理开发中的各种风险。
2 UML建模在数字图书馆中的应用
UML是一种建模语言,是系统开发的一个组成部分,本身并没有关于开发过程概念的定义和表示符号。UML的创始者Booch、Jacobson和Rumbaugh在Rational公司的支持下综合了多种系统开发过程的长处,提出新的面向对象的开发过程,称为Rational统一过程(RationalUnifiedProcess,RUP)。RUP过程的核心工作流包括:业务建模、需求分析、系统分析与设计、实现、测试和系统配置。下面通过UML来分析并构造数字图书馆模型,并结合Rational统一过程加以描述,图形用RationalRose工具软件绘制。
2.1 数字图书馆的业务建模和需求分析
业务建模和需求分析的目的是对数字图书馆进行评估,采集和分析系统的需求,理解系统要解决的问题,重点是充分考虑系统的实用性。结果可以用一个UseCase模型表达(图2),模型中的活动者代表外部与系统交互的单元,包括用户、图书馆工作人员和外部信息源;UseCase是对系统需求的描述,表达了系统的功能和所提供的服务,包括采购子系统、编目子系统和流通子系统。对于数字图书馆而言,流通子系统还应该考虑到普通书刊流通和电子书刊流通的区别。电子书刊是指内容为数字格式、发行为电子方式、用计算机阅读和存储的电子读物,可以实现普通书刊所没有的全文检索、页面批注、摘要、字体缩放等功能。用户无论何时何地,都可以在线借还,这是数字图书馆服务功能的一个重要组成部分,也是对传统图书馆服务功能的延伸和拓展,其中的关键是流通子系统在实现时必须能对电子书刊的版权、以及可以同时借阅的用户数进行保护和控制。
附图
图2 数字图书馆UseCase模型
图2中模型元素之间的实线表示二者存在关联关系,带空心箭头的实箭线说明存在泛化关系,这里有两种情况,一种是一般与特殊的关系,如“流通子系统”与“普通书刊流通”、“电子书刊流通”的关系;另一种是使用关联,表示一个模型元素需要使用另一个模型元素,在箭线上标有<<Use>>,如“流通子系统”需要使用“编目子系统”生成的书目数据,图2是数字图书馆系统层的UseCase模型,只包含了最基本的UseCase模型,是系统的高层抽象。在开发过程中,随着对系统的认识不断加深,UseCase模型可以从顶向下不断精化,演化出更为详细的UseCase模型。
2.2 UML建模中数字图书馆系统分析与设计
系统分析与设计是研究欲采用的实现环境和系统结构,结果是产生一个对象模型,即设计模型,设计模型包含了UseCase的实现,可以表现对象是如何相互通信和运作来实现UseCase流的。对于系统的静态结构,可以通过对象类图、对象图、组件图和配置图来描述;对于系统的动态行为,可以通过顺序图、协同图、状态图、活动图描绘。这些图再加上支持说明文档就构成一个完整的设计模型。
(1)UML建模中静态结构的分析与设计
数字图书馆拥有大量数字化信息资源,这些资源是多种媒体、多种格式的,而且还是相互关联的。其数据量大,信息长度不定,非结构化信息与结构化信息并存。传统的数据库和信息管理系统在数据模型、系统结构、用户接口等方面都难以实现对这些数字化信息资源的管理和操作,这就决定了数字图书馆必须采用面向对象的方法来建立数据模型和管理模型,建立面向对象的数据库,实现面向对象的信息管理系统。使用UML对数字图书馆系统进行基于面向对象的分析和设计,可以从开发的第一步开始,从系统的底层就把握住数字图书馆信息资源的特征,为下一步的具体实现打好基础。在为数字图书馆系统建立模型时要涉及到处理大量的模型元素,如对象类、接口、组件、节点、图等,可以将语义上相近的模型元素组织在一起,这就是UML的包,包从较高的层次来组织管理数字图书馆的系统模型。
在详细设计阶段可以对包图中的所有类、对象从实现角度再进一步进行细化,绘制具体的对象类图、对象图等。图3是数字图书馆系统的包图,虚箭线说明包之间的依赖关系,如“流通”包依赖于“数据库”包,要使用“数据库”包中的类及数据。带空心箭头的实箭线说明包之间的泛化关系,这里是一般与特殊的关系,如“编目”包与“本馆编目”包、“联合编目”包之间存在泛化关系。
附图
图3 数字图书馆系统包图
(2)UML建模中动态结构的分析与设计
数字图书馆提供的各种服务都是建立在分布、开放的信息结构之上,依托高速、可靠的网络环境来完成。每项服务都可以看成一个事件流,由若干相关的对象交互合作来完成。对于这种系统内部的协作关系和过程行为,可以通过绘制顺序图和协同图来帮助观察和理解。
一个对象在其生存期间所经历的状态序列,对于把握对象的行为和状态的迁移变化是非常重要的,可以通过状态图来了解一个对象的历史,引起一个状态向另一个状态转移的事件,以及由于状态的转移而引发的动作。
此外,描述工作流和并发处理行为还可以用活动图,表达从一个活动到另一个活动的控制流。
顺序图和协同图适合描述多个对象的协同行为,而状态图适合描述一个对象穿越多个UseCase的行为。状态图与活动图的区别是,状态图描述的是对象类响应事件的外部行为,活动图描述的是响应内部处理的对象类的行为。
附图
图4 数字图书馆电子书刊流通服务顺序图
图4是一个电子书刊流通服务的顺序图例子,用以说明数字图书馆电子书刊基本流通服务。用户向流通子系统的用户接口登录,经用户合法性验证后,向流通子系统的电子书刊流通模块提交服务请求,电子书刊需要经过版权和复本的验证,以保证电子书刊的每一个复本在同一时间只允许一个用户借阅或阅读。比如购买了一本电子书的五个复本,那么就可以有五个用户同时借阅或阅读这本书,而且必须能够控制用户对电子书刊的任意复制和打印,以保护电子书刊出版者的合法权益。然后就可以完成电子书刊的借、还、预约、续借等流通服务,最后退出。
通过顺序图可以清晰地看出用户、流通子系统的用户接口和电子书刊流通模块之间按时间顺序的消息交换,这对于把握系统的控制流、顺序行为和交互行为是非常有益的。建立在分布、网络环境下的数字图书馆其事件流和控制流是十分复杂的,需要从层顶到底层进行一步步的分解,用多幅能反映动态结构的图来分析与说明。
2.3 UML建模在数字图书馆的实现、测试和系统配置