当前位置: 首页 > 范文大全 > 公文范文 >

基于UML的图书馆OPAC系统的分析与设计

时间:2022-03-18 08:22:12  浏览次数:

摘要:为了高效地开发图书馆OPAC系统,将UML建模技术应用于OPAC系统的分析和设计中。首先提出了基于系统原型的UML系统分析和设计方法,其次通过用例建模、类建模、活动建模、交互建模和状态建模分析了系统的静态结构和动态行为,最后通过架构设计、用例包设计、类包设计、构件设计、部署设计设计了系统的技术解决方案并完成了业务模型到技术模型的映射。项目结果分析和成功实施表明提出的系统分析和设计方法是开发图书馆OPAC系统的一个有效的解决方案。

关键词:OPAC系统;系统原型;UML建模;系统分析;系统设计

中图分类号:TP311.52 文献标识码:A 文章编号:1009-3044(2014)05-0970-08

Analysis and Design of Library OPAC System Based on UML

CHEN Lian-he

(Library, Zhangzhou Institute of Technology, Zhangzhou 36300, China)

Abstract:In order to efficiently develop a library OPAC system, unified modeling language(UML) technology is applied to the analysis and design of the system. A UML system analysis and design method based on system prototype is proposed at firs,then use case modeling, class modeling, activity modeling, interaction modeling and status modeling are applied to analyze static structure and dynamics of the system, and large frame design, use case packet design, class packet design, component design and deploy design are applied to design the technical solution to implement the system and complete the mapping from operation model to technique model.The analysis of results of the project and successful implementation of the system demonstrate that the proposed method can analyze and design the library OPAC system in effective technical solutions.

Key words: OPAC system; system prototype; UML modeling; system analysis; system design

图书馆要发挥信息资源中心的作用,大量的资源能为用户所用,就必须建设好OPAC系统。OPAC(Online Public Access Catalog)系统,即图书馆公共目录检索系统,是用户从图书馆获取资源的最基本最直接的手段。OPAC系统使用户能够网上查询图书馆馆藏书目,是图书馆信息化建设的重要组成部分,它关系到图书馆的管理水平、服务水平、自动化建设水平、资源的利用率,所以OPAC系统的研究和建设对图书馆的发展具有重要的意义[1]。因此,如何成功而又高效地开发OPAC系统便成本文的主要研究目的。

随着信息技术的发展,软件复杂性的增长使确保程序的正确性变得越来越困难,同时业务的发展要求软件系统能够迅速改变。面向对象的分析与设计(OOAD)已经成为主流的软件开发方法,它是一种更易理解、使软件开发和维护变得更简单的方法,能够显著缩短系统分析和开发的时间,开发出有弹性的软件系统,以适应信息和功能的变化[2]。为了更好地理解即将开发的系统和更好地解决复杂的问题,面向对象的分析与设计采用面向对象的建模技术对系统构建业务模型。统一建模语言(UML,Unified Modeling Language)是面向对象技术的标准建模语言,对面向对象的系统进行可视化、规格说明、构建和文档化,它是一种富有表达力的语言,可以描述开发所需要的各种视图,然后以此为基础装配系统,广泛应用于信息系统、技术系统、嵌入式系统、分布式系统、业务系统、系统软件。

鉴于以上分析,该文根据OPAC系统开发的特点,首先阐述了引用瀑布方法学中的系统原型开发样式进行开发我馆的OPAC系统的缘由,接着着重报告UML建模技术在需求、分析与设计阶段的使用情况,并分析UML建模技术在系统开发中所发挥的作用。

1 OPAC系统业务需求

1) OPAC系统业务陈述

依据国外评价数字图书馆的五个方面:界面的可用性、馆藏资源的质量、服务质量、系统的效率、诱发用户反馈;以及南京大学评价数据库的五个层次:收录范围、检索功能、服务功能、收费情况、网络安全[3],结合我馆实际情况,制定OPAC系统的五个评价指标:检索功能、服务功能、界面设计、用户体验、系统网络安全。

OPAC系统的主要功能有检索功能、服务功能,主要是围绕用户如何方便快捷地检索文献信息、馆藏信息、流通信息展开的。因此,系统要以用户为中心,从用户的角度设计检索功能的主界面和服务功能,依据检索功能的两个评价指标“查准率”、“查全率”,相应地开发检索功能模块。检索主界面不仅要展现文献信息,还要展现流通信息,并提供根据“文献在馆数” 自动隐藏或显示“预约”功能;服务功能聚集于“我的图书馆”模块,该模块聚集有关用户个人事务的功能,提供个人信息管理、违章信息查询、借还书信息查询、预约信息查询、荐购信息查询、挂失等功能;根据我馆使用校园卡作为借书证,“个人信息管理”模块提供读者“网上上传头像”功能。扩展的服务功能包括“读者参考咨询”、“读者荐购”,它们更好地提高系统的可用性,增强与读者的互动。“读者参考咨询”模块,提供留言与即时通讯两种交流方式。“读者荐购”模块,使图书馆和用户进行双向的书籍荐购,读者既能对图书馆发布的书目清单投票也可以提交自己推荐的书籍,并能跟踪荐购过程的一系列状态。购书是图书馆一项重要的日常工作,“读者荐购”模块能够提高书籍的可用性和读者的满意度。随着图书馆服务的延伸,服务功能还可扩展“书评”、“读书笔记”等功能。

2) 业务模型

根据OPAC系统的业务陈述,与我馆工作人员一起把业务陈述扩展为业务参与者列表(带有描述)、业务用例列表(带有描述)、业务用例详细规格。

2 OPAC系统开发过程

在信息系统领域,由于用户需求的不确定性,如果开发团队在系统实施的前期不能有效地与用户明确需求,就会导致《需求规格说明书》不能正确地描述用户的需求。《需求规格说明书》是后续设计、开发、测试工作的重要依据,不正确、不明确的需求定义会使开发出来的系统出现偏差,从而引起了较大的返工,甚至导致项目失败。而原型开发正是解决上述问题的一种有效方法,已在许多应用中被证明。系统原型体现系统主要的功能、展现基本的界面风格和明确模糊的需求。它的主要价值在于可视化,强化沟通,降低风险,节省后期变更成本,提高项目成功率[4]。同时,系统原型有效地用于开发人员较少的中小项目的快速开发,因此本文将系统原型法引入OPAC系统的开发过程中,在系统开发的早期阶段,使用HTML创建一个系统原型,作为与用户交互的一个有效工具,与用户确认系统需求。系统原型也作为系统分析和设计的接口,方便开发团队的沟通。系统需求明确以后,着重采用UML技术进行系统分析和设计。OPAC系统的开发过程按照瀑布方法学经历了以下阶段:

1)需求分析。需求阶段要解答“要达到什么目的?”,通过系统原型与用户明确系统需求,并编制《需求规格说明书》以明确地定义系统需求。对于系统需求的功能性需求部分,通过UML用例建模,确定系统执行的一系列功能、与系统交互的参与者和二者之间的关系。

2) 系统分析。分析阶段要解答“要解决问题必须完成哪些工作”,通过类建模确定用例的实体类及其属性以及实体类之间的关系,通过活动建模分析用例的事件流,通过交互建模分析用例对象的交互,通过状态建模分析用例对象状态的动态变化。

3) 系统设计。设计阶段要解答“应该使用哪些技术?应该如何解决问题”,通过架构设计把分析活动的结果扩展成技术解决方案,通过用例包设计、类包设计、构件设计、部署设计详细考虑系统实现的细节问题,完成业务模型到技术模型的映射。

4)编码。基于Struts/Hibernate/Spring框架、MVC设计模式、三层架构,在Eclipse开发平台下采用“视图à控制器Actionà业务逻辑模型à数据访问模型”的开发顺序实现OPAC系统。

5) 测试。

6) 部署。

3 基于UML的OPAC系统分析

3.1构建系统用例图

系统的需求是借助不同的用例描述的。用例为事务序列,其中的每个事务是从系统外部参与者调用的,且需要与内部对象合作,以便在对象和系统参与者之间创建关联。系统的参与者主要有任意用户、办证用户、参考咨询员、系统管理人员、图书馆自动化集成管理系统采购子系统。任意用户指的是不用账户登录OPAC系统的用户,可以检索馆藏书刊、浏览新书、创建账户;办证用户登录账户后,可以向参考咨询员咨询问题,登录“我的图书馆”查询个人事务,购书推荐;参考咨询员回复办证用户的提问、管理回帖和发帖;系统管理人员管理办证用户、参考咨询员账户,发布书商的书目清单以便读者荐购、审核读者自行荐购的书目清单,导入书目清单到图书馆自动化集成管理系统采购子系统等。办证用户、参考咨询员、系统管理人员都是系统的注册用户,可以维护自己的账户。通过上述分析,确定OPAC系统的参与者和用例,编制系统用例表(表1)。然后,通过用例建模构建系统用例图(图1),图1中采购子系统是图书馆自动化集成管理系统的一个子系统。系统用例表和用例图直观地展现OPAC系统的功能和参与者。

表1 系统用例表

[标识\&用例\&参与者\&用例描述\&C1\&书刊检索\&任意

用户\&用户通过Web页面浏览图书馆的馆藏目录数据,用户不需要登录系统。用户可以选择检索控制条件和内容检索条件进行检索,并返回检索结果。检索结果可以下载、打印或发送Email。\&C2\&新书通报\&任意

用户\&图书馆按照图书出版时间推送新书信息,信息包括ISBN、正题名、作者、出版社、出版版次、出版时间、摘要等。\&C3\&我的图书馆\&办证

用户\&提供用户预约书刊、续借书刊,图书馆推送逾期信息、账目信息、借书信息、借还书历史信息、购书推荐历史信息,修改个人账户信息。\&…\&…\&\&…\&C12\&退出\&注册

用户\&用户告诉系统目前不继续使用该系统,退出之前必须要登录。\&]

图1 系统用例图

构建系统用例图后,对每个用例进行详细规格说明。表2给出核心用例“书刊检索”的详细规格说明。然后,对每个用例进一步构建子用例,再对子用例进行描述和详细规格说明。

表2 “书刊检索”用例的详细规格说明

[用例\&书刊检索\&简述\&该用例允许任意用户输入检索控制条件和内容检索条件进行书刊检索,系统返回输出结果。\&参与者\&任意用户\&前提条件\&用户点击一个因特网浏览器进入书刊检索WEB页面,该页面显示书刊检索输入表单时,该用例开始。\&主流\&系统请求用户输入检索信息,包括检索控制条件和内容检索条件。检索控制条件包括文献类型、馆藏地、检索模式、排序方法、每页显示记录数;内容检索条件包括题名、责任者、标准编号、索书号、出版社、题名拼音、丛书名、主题词。检索控制条件和内容检索条件支持匹配策略和条件之间的关系策略。用户点击“检索书刊”,系统返回检索结果。\&其它流\&可以在检索结果中作二次检索。\&后置条件\&如果用例成功,用户可以打印、下载、Email检索结果。\&]

3.2 用例的事件流分析

分析表2中“书刊检索”用例主要的和附加的事件流后,找出活动及活动的时间次序,明确活动的执行步骤,通过活动建模画出活动图(图2)。活动图还没有将事件赋予对象。

图2 用例“书刊检索”的活动图

3.3 系统内部对象的分析

在用例建模的同时,寻找实体类。通过参照OPAC系统业务陈述(2.0)、系统用例表(表1)和“书刊检索”用例的详细规格说明(表2),识别“书刊检索”用例的候选类,再经历一个迭代的过程,把候选类确定为实体类:Book(书目)、SearchBookItem(书目检索项)。之后,考虑实体类的主要属性,即原始类型的属性。然后,依次对系统用例图(图1)中各个用例确定好实体类后,分析类的关联、聚合、组合和泛化等关系,以及关联的多重性,通过类建模绘制类图(图3)。类图是系统的静态结构,是面向对象系统的心脏和灵魂[5]。

图3 类图

3.4 对象交互的分析

用例对象之间的交互提供了对象操作及事件的详细规格说明。为了捕获用例的对象之间的交互,交互建模为每个用例构建一个独立的序列图。由于采用BCE方法建模很好地对应MVC设计模式,因此构造序列图基于BCE方法。BCE(边界—控制—实体)是一种基于类的三因素对象建模方法。首先,将参与“书刊检索”用例的类划分为边界、控制和实体三种类型,然后参照“书刊检索”用例的活动图(图2),构造了序列图(图4)。

3.5 对象状态的分析

状态建模给出了类的详细的描述,描述了类的状态的动态变化。对每个对象状态,它决定这个对象在接收到一个事件时将采取什么行为。图5 给出“读者荐购”模块中的对象PurchasingInfo(采购信息)的状态变化过程。图中,状态建模的过程按“事件[监控条件]/动作”的方式进行。

图5 采购信息类的状态图

4 基于UML的OPAC系统设计

4.1 架构设计

4.1.1 体系结构

体系的基本结构采用B/S结构,扩展结构采用三层体系结构。从性能、开发效率、支持平台等角度综合考虑,开发平台采用J2EE技术[6]。开发系统时,按照三层体系结构组织包、类、JSP页面。三层体系结构图(图6),图中第二层J2EE服务器隐式地包含了中间层“WEB服务器”。Tomcat配置简单,运行稳定、性能可靠,适合作为JSP/Servlet引擎及WEB服务器。第三层的数据源为图书馆自动化集成管理系统使用的数据库。

图6 三层体系结构图

4.1.2 复用策略

1)构架复用

构架复用了JAVA开源框架SSH,它集成了Struts、Spring、Hibernate框架。Struts是MVC 设计模式的一个优秀实现。Hibernate是一个基于JDBC的持久化解决方案,是一个优秀的“对象—关系映射”框架。Spring是“依赖注入”模式和“面向方向编程”原理的优秀实现,使面向接口的编程容易实现[7]。

2)设计模式复用

设计模式复用了MVC,它将模型(业务逻辑)和视图(页面展示)分离,使模型和视图可以独立修改,而不会影响到对方。

4.1.3 数据库编程

1)应用—数据库交互

OPAC系统的编程涉及到用户界面、表现逻辑、应用功能、完整性逻辑、数据存取。应用功能是OPAC系统的主要逻辑部分,是将客户端(用户界面、表现逻辑)和数据库(完整性逻辑、数据存取)粘合在一起的粘合剂。该文采用J2EE中间件JDBC,实现应用功能访问数据库。应用功能在系统的开发阶段,作为SQL操作在前台编程,但在系统的最后部署阶段时作为存储过程移植到数据库中。OPAC系统不采用分布式数据库。

2)应用—数据库交互过程建模

采用BCE方法建模很好地对应MVC设计模式,采用BEC的扩展方法BCED,则很好地对应三层体系结构,因此系统应用—数据库交互的建模基于BCED方法,即边界—控制—实体—数据库方法,对应的层次模型为边界包←→控制包←→实体包←→数据库包。实体包作为数据暂存区,存放并缓存数据。数据库包除了提供两个基本服务,即从数据库中取数据存放到实体包和从实体包取数据存放到数据库,还提供了数据库连接、CRUD、处理用户权限、抽取和存储数据库对象的元数据信息等服务。数据库结构、应用与数据库交互协议的改变只影响到数据库包,而不影响到实体包中数据的存储。控制包有效地转发实体包的数据到边界包。

4.1.4网络及系统安全

系统的网络环境基于校园网,因此系统的WEB服务器构建于校园网,而为了系统数据的安全,数据库服务器则构建于从校园网虚拟出的一个内部局域网。

系统安全方面,从系统安全机制、数据完整性、程序鲁棒性、用户教育等层次保障。其中的系统安全机制,利用了J2EE为分布式系统提供的安全体系结构和安全机制,主要采用身份认证、访问存取控制、加密、信任机制等手段[8]。

4.2 用例包设计

用例包展现系统功能模块的详细规格,因此使用用例包结构化系统的功能。用例包图(图7)扩展系统用例图(图1)中没有包含的一些隐式的系统级用例,从而更好地反映OPAC系统的功能模块,也更好地理解和管理OPAC系统,也体现系统以用户为中心进行设计。

图7 用例包图

4.3 类包设计

类包设计确定BCED层次。根据系统内部对象的分析(3.3)以及对象交互的分析(4.4),设计“书刊检索”用例的类包。视图上,要有一组WEB页面提供“书刊检索”,可以把这组GUI对象创建为一个边界类包,命名为searchCatalogGUI;把实体类SearchBookItem(书目检索项)、Book(书目)组合成一个实体包,命名为bookEntity;在用户提交“书刊检索”的请求后,需要一组控制类来接收用户的请求,粘合视图与实体类,并调用业务逻辑处理程序,返回数据。这组控制类组成控制包,命名为getCatalogServlet,业务逻辑处理程序组成业务逻辑包,命名为getCatalogBiz,显示数据的页面命名为listCatalog.jsp,归入边界类包。业务逻辑处理程序访问数据库时涉及到数据库包—CRUD包,CRUD包介于实体类和数据库表之间,它依赖于两个数据库包—Connection、Schema。Connection包中的类负责处理连接、授权和事物处理。Schema包包含关于数据库对象的当前信息:表、列、存储过程等。“书刊检索”用例的类包图见图8。

图8 “书刊检索”用例的类包图

4.4 构件设计

构件设计确定系统的功能单元。通过对类包设计的分析,以系统用户对页面通常的存取序列为线索,“书刊检索”用例的类包(图8)包含的构件有:searchCatalog.jsp、listCatalog.jsp(页面)→SearchCatalogAction.java(Struts)→SearchBookItem.java、Book.java(实体类)→SearchCatalogBiz.java(业务逻辑)→SearchCatalogDao.java(数据访问)→BaseJdbcDao.java(连接数据库)→Database(数据库)。

4.5部署设计

对应OPAC系统的体系结构,系统的WEB应用的部署结构包含三层计算结点:带浏览器的客户端、WEB服务器、数据库服务器。

5 结果分析

开发团队按表3所示的开发进程和步骤开发OPAC系统,如期完成系统的开发。OPAC系统成功部署在我馆服务器,并稳定地运行。

表3 项目各阶段结果一览表

[项目阶段\&阶段结果\&阶段目标\&UML表示\&业务需求\&业务陈述\&完成了业务模型的建立,对业务做了完整、清晰的说明,确保开发团队彻底理解业务,与图书馆各部门对系统要完成的任务达成一致。\&否\&业务参与者列表及描述\&否\&业务用例列表及描述\&否\&业务用例详细规格\&否\&系统需求\&系统原型\&完成了系统模型的建立,对业务做了更详细的说明。通过系统模型,对团队开发人员提供开发说明,与图书馆各部门明确功能性需求与非功能性需求。\&否\&系统参与者列表及描述\&否\&系统用例列表及描述\&否\&系统用例详细规格\&否\&系统用例图\&是\&活动图\&是\&系统分析\&类图\&完成了系统的静态分析、动态分析。分析以业务模型、系统模型为输入,把业务模型、系统模型转换为由系统处理的对象模型,确保开发团队对业务对象的正确理解,从而正确地设计出解决方案。\&是\&序列图\&是\&状态图\&是\&系统设计\&体系结构\&确定了系统的体系结构、技术选择、复用策略、安全策略、最终界面设计,完成对象模型到关系数据库模式的映射,完成到java语言结构、MVC设计模式、开发组件、开发步骤的映射,最终完成有效的解决方案的设计。\&是\&复用策略\&否\&数据库编程\&是\&界面设计(完善系统原型)\&否\&网络及系统安全\&否\&用例包设计\&是\&类包设计\&是\&构件设计\&是\&部署设计\&是\&实现\&单元测试代码

实现代码\&\&否\&测试\&测试系统

修改错误\&\&否\&部署\&压缩打包

安装产品\&\&否\&]

从项目各阶段结果来看,在开发的每个阶段提供了模型和文档说明,使得本项目负责人、开发人员、我馆各部门之间有更好的交流,对系统的工作流、活动、任务和相互关联更容易理解,因此,等待时间减少了,发生误解的情况也较少,能够及时地完成各阶段的预期目标,使得开发本系统更有序,更有质量,使得本系统的开发取得了良好的效果。

6 结束语

本文以我馆开发OPAC系统为背景,在对OPAC系统进行业务需求分析后,为了降低开发OPAC系统失败的风险和避免开发周期长、成本高,提出了一种基于系统原型法的UML软件系统分析和设计方法;通过用例建模、类建模、活动建模、交互建模和状态建模分析了系统的静态结构和动态行为,通过架构设计、用例包设计、类包设计、构件设计、部署设计最终得出一个具体有效的解决方案。项目结果分析和成功实施,表明采用基于系统原型的UML建模技术分析和设计系统的方法,是开发图书馆OPAC系统的一个有效的解决方案。

参考文献:

[1] 李杉.世界主要国家图书馆Web OPAC现状研究[D].武汉:武汉大学,2005.

[2] 北京阿博泰克北大青鸟信息技术有限公司.面向对象的分析与设计[M].北京:科学技术文献出版社,2006.

[3] 谭捷,张李义,饶丽君.中文学术期刊数据库的比较研究[J].图书情报知识,2010(4):4-13.

[4] 北京阿博泰克北大青鸟信息技术有限公司.HR/CRM/OA/B2C毕业设计项目开发[M].北京:科学技术文献出版社,2008.

[5] Maciaszek L A.需求分析与系统设计[M].金芝,译.北京:机械工业出版社,2005.

[6] 陈刚.基于SSH的J2EE开发平台研究与应用[D].成都:四川师范大学,2007.

[7] 北京阿博泰克北大青鸟信息技术有限公司.开发基于Struts/Spring/Hibernate/Ajax的网上信息发布平台[M].北京:科学技术文献出版社,2008.

[8] 魏楚元,李陶深,张增芳.J2EE安全机制的分析与研究[J].计算机工程与设计,2005,26(6):1434-1436.

推荐访问: 图书馆 分析 设计 系统 UML
[基于UML的图书馆OPAC系统的分析与设计]相关文章