




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要图书馆管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端的应用程序的开发两个方面。对于前者要求建立数据的一致性和完整性,对于后者则要用程序功能的完备,易用等的特点。基于上述考虑本系统主要利用rose2003作前端的应用开发工具 ,利用uml建模作为 后台的数据库,利用windows98作为系统平台;而全部采用microsoft的操作系统及其应用开发工具开发的图书管理系统。首先介绍的是开发环境及所用到的基础知识。其次是系统的设计过程,包括系统分析、功能实现和系统的调试、设计过程中遇到的难点问题等,然后综合介绍了标准建模语言uml。本系统充分利用了rose2003开发前台应用程序,uml建模数据库的优势,使系统更加完善。关键词:rose2003,uml,图书管理。第一章 标准建模语言uml发展情况1.1 现行组织管理体制 uml融合了booch、omt和oose方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,uml必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,uml不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,uml扩展了现有方法的应用范围;第三,uml是标准的建模语言,而不是标准的开发过程。尽管uml的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。 uml是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。 作为一种建模语言,uml的定义包括uml语义和uml表示法两个部分。 (1)uml语义描述基于uml的精确元模型定义。元模型为uml的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外uml还支持对元模型的扩展定义。(2)uml表示法定义uml符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是uml元模型的实例。1.2 uml标准建模语言的特点 标准建模语言uml的主要特点可以归结为三点: (1)uml统一了booch、omt和oose等方法中的基本概念。 (2)uml还吸取了面向对象技术领域中其他流派的长处,其中也包括非oo方法的影响。uml符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。因此,在uml中汇入了面向对象领域中很多人的思想。这些思想并不是uml的开发者们发明的,而是开发者们依据最优秀的oo方法和丰富的计算机科学实践经验综合提炼而成的。 (3)uml在演变过程中还提出了一些新的概念。在uml标准中新加了模板(stereotypes)、职责(responsibilities)、扩展机制(extensibilitymechanisms)、线程(threads)、过程(processes)、分布式(distribution)、并发(concurrency)、模式(patterns)、合作(collaborations)、活动图(activitydiagram)等新概念,并清晰地区分类型(type)、类(class)和实例(instance)、细化(refinement)、接口(interfaces)和组件(components)等概念。 因此可以认为,uml是一种先进实用的标准建模语言,但其中某些概念尚待实践来验证,uml也必然存在一个进化过程。1.3 标准建模语言uml的发展情况 尽管目前我国计算机界对uml的推崇程度近乎崇拜,但我们应该客观地认识到uml依然存在许多缺憾甚至是错误,需要进一步完善。一个规范的标准化进程总是很漫长,在对它的修订过程中总会不断发现新问题,发现问题、解决问题是个循环反复的过程,在这个过程中,人们不断改进和完善uml。本期专题将追随uml标准化进程的脚步,介绍它修订过程中的每一个进步和缺憾,从而使读者较为客观地了解到uml的现状及未来发展。1.3.1 uml的现状及未来发展 uml是在多种面向对象建模方法的基础上发展起来的建模语言,主要用于软件密集型系统的建模。它的演化,可以按其性质划分为以下几个阶段:最初的阶段是专家的联合行动,由三位oo(面向对象)方法学家将他们各自的方法结合在一起,形成uml 0.9。第二阶段是公司的联合行动,由十几家公司组成的uml伙伴组织将各自的意见加入uml,形成uml 1.0和1.1,并作为向omg申请成为建模语言规范的提案。第三阶段是在omg控制下的修订与改进,omg于1997年11月正式采纳uml 1.1作为建模语言规范,然后成立任务组进行不断的修订,并产生了uml 1.2、1.3和1.4版本,其中uml 1.3是较为重要的修订版。目前正处于uml的重大修订阶段,目标是推出uml 2.0,作为向iso提交的标准提案。 在多种面向对象建模方法流派并存和相互竞争的局面中,uml树起了统一的旗帜,使不同厂商开发的系统模型能够基于共同的概念,使用相同的表示法,呈现彼此一致的模型风格。而且它从多种方法中吸收了大量有用(或者对一部分用户可能有用)的建模概念,使它的概念和表示法在规模上超过了以往任何一种方法,并且提供了允许用户对语言做进一步扩展的机制。 uml在语法和语义的定义方面也做了大量的工作。以往各种关于面向对象方法的著作通常是以比较简单的方式定义其建模概念,而以主要篇幅给出过程指导,论述如何运用这些概念来进行开发。uml则以一种建模语言的姿态出现,使用语言学中的一些技术来定义。尽管真正从语言学的角度看它还有许多缺陷,但它在这方面所做的努力却是以往的各种建模方法无法比拟的。 从uml的早期版本开始,便受到了计算机产业界的重视,omg的采纳和大公司的支持把它推上了实际上的工业标准的地位,使它拥有越来越多的用户。它被广泛地用于应用领域和多种类型的系统建模,如管理信息系统、通信与控制系统、嵌入式实时系统、分布式系统、系统软件等。近几年还被运用于软件再工程、质量管理、过程管理、配置管理等方面。而且它的应用不仅仅限于计算机软件,还可用于非软件系统,例如硬件设计、业务处理流程、企业或事业单位的结构与行为建模。目前国内也有不少软件企业在学习并尝试使用uml。从总体上看,我国计算机界对uml的了解还相当初步,但是对它的崇拜程度却远远超过了西方发达国家。人们在学习和使用uml遇到和国外用户相同的疑难和困惑时,却不太敢怀疑uml有什么问题。所以国内几乎没有批评的声音,偶尔有一点,也会立即被捍卫的声音淹没,即使对uml一些最明显的缺点和错误也是如此。 相比之下,国际上对uml的讨论和评价则要客观得多。无论是internet上的意见交流,或是每年一次的uml研讨会,还是学术期刊上发表的文章,都是既肯定其成绩,又指出其缺点和错误,并且以积极的态度提出建设性意见。在酝酿uml下一次的重大发布和筹划uml 2.0作为iso标准提案的最近两年内,围绕uml的讨论更为活跃和热烈。 为了使我国计算机界对uml目前的状况有较为客观的了解,我们从大量的文献资料中选择了三篇最具权威性的文章,介绍给我国读者。从这组文章中,我们可以得到关于uml现状及未来发展的重要信息: uml已经取得重要成功,它已成为在软件工业中占支配地位的建模语言,并在许多领域的软件开发中得到应用。 uml还存在许多问题,自它产生之日起就从未离开过批评:用户和教师抱怨它内容庞大、难学难教而且太过复杂;学者认为它缺少一个精练的核心和定义良好的外围,有些语义定义得不够精确而且带有二义性;建模实践者认为它缺少支持自己领域建模要求的机制;工具开发商则因为规范本身的不确定性而产生理解上的偏差,它们对uml的自行诠释有可能误导用户。 uml的关键问题是过于庞大和复杂,以及在语言体系结构、语义等方面存在理论缺陷。产生这些问题的一个重要原因是,在形成规范的过程中不得不照顾多种方法流派的观点和多家公司的利益。 为了uml的下一次重大发布,uml 2.0修订的主持者正在广泛收集各方面的意见。各界都给予了很高的关注,提出的意见涉及uml的各个方面。其中一个关键问题是uml是否需要简化,以及如何使之更精练,最终大部分意见是提供一个精练的核心,而把不常用的内容放到定义良好的外围或扩展机制中。此外,uml 2.0还将对uml的底层结构、上层结构和对象约束语言(ocl)做重大改进。1.3.2 标准化的uml 一个规范的标准化进程通常是一个冗长的过程。在uml 1.3的最终草案被批准之际,omg uml修订任务组和omg分析设计平台任务组联合主席cris kobryn于1999年10月在communication of the acm上发表了本文,总结了uml的发展历程,并展望了其发展趋势。 在很短的时间内,uml已经成为软件工业中占支配地位的建模语言。目前它不仅是事实上的建模语言标准,也正在快速地成为法律上的标准。1997年,omg采纳它作为标准建模语言。现在,omg正在以iso公共可用规范提交者的身份,申请将uml规范作为国际标准。 不过,一个规范的标准化进程通常是正式而漫长的,因为它要满足各种各样的技术规范和商业需求。从商业角度看,标准化的时间尺度通常与尽早使用最新技术的竞争需求是冲突的。从技术角度看,为了力求达成共识,则赞成这种由委员会设计的进程。1.3.3 标准化之前的历史 早在1995年,gray booch和janes rumbaugh将他们的面向对象建模方法统一为unified method v0.8。一年之后ivar jacobson加入其中,共同将该方法统一为二义性较少的uml 0.9。同时,这三位杰出的方法学家被称为三友(three amigos)。 很快用户也认识到可对软件系统进行可视化、描述、构造和文档化的通用建模语言所带来的益处。他们充满激情地将这种语言的早期草案应用于不同的领域。受用户强烈需求的驱动,建模工具厂商也很快在它们的产品中加入了对uml的支持。 与此同时,uml成了实际上的工业标准。1996年,一个由建模专家组成的国际性队伍uml伙伴组织开始同三友一起工作,计划将uml提议作为omg的标准建模语言。 1997年1月,伙伴组织向omg提交了最初的提案uml 1.0。经过了九个月的紧张修订,于1997年9月提出了最终提案uml 1.1,这个提案在1997年11月被omg正式采纳为对象建模标准。 有必要指出的是,由于比较仓促地通过了omg的提交过程,尽管语言的基层结构和大部分上层结构是合理的,uml还是容忍了一些不尽如人意的负面因素:活动图的语义及表示法不完整;标准元素臃肿,其中有些元素是为了满足不同的、相互竞争的方法门派的需求而草率加入的,许多标准元素语义贫乏,而且命名和组织也不一致;结构混乱,所提交的规范并没有达到提交者预期的目标-用一种严格的元模型方法实现4层元模型结构,相反使用了一种实用但不精确的、松散的元模型方法,不利于uml同其他omg规范的结合,比如与mof(meta object facility)的结合。 发展进程:omg为修订标准而提供的基本机制是提案需求(rfp,request for proposals)和修订任务组(rtf,revision task forces)。 其中rfp过程是omg采纳新规范和改进已有规范的主要机制。任务组发布一个rfp,一个或多个提交团以规范草案作为初始提案响应该rfp,然后任务组对这些初始提案进行评估,并反馈给提交者,鼓励这些提交者与其竞争对手合作,从而形成最终提案。在任务组完成了对最终提案的评估后,就投票决定推荐众多提案中的哪一个。获得多数赞成票的提案就被送交组织委员会和主管该任务组的技术委员会去批准。 如果一个最终提案获得了所有的批准,它就成为被omg采纳的技术。否则,任务组就有权重新发布一个修改过的rfp。 在一个规范被采纳后不久,将成立一个修订任务组,负责该规范的修订。1997年9月,omg采纳uml 1.1规范之后不久,特许成立了第一个uml修订任务组,负责收集有关评论,并且提出修改建议。 该rtf提交的第一个主要产品是一个编辑版本uml 1.2,它改编了规范,使之与其他omg规范更为一致。尽管这一版本纠正了印刷和语法错误,以及某些明显的逻辑上的不一致,但还是没有涉及对重要技术的改进。 该rtf的第二个主要的产品是其技术版本uml 1.3,它修正和改善了uml 1.1的遗留问题,并矫正了在此之后发现的许多小错误。该rtf一致推荐omg批准其uml 1.3最终草案,并于1999年6月提交了一份最终报告。被推荐的规范随后被提交给组织委员会和平台技术委员会以获得批准。第二章 系统要求3.1 rational rose简介rational rose是由美国的rational公司开发的、面向对象的可视化建模工具。利用这个工具,可以建立用uml描述的软件系统模型,而且可以自动生成和维护c+、java、visual basic和oracle等语言和系统的代码。rational rose包括了统一建模语言(uml)、面向对象的软件工程(oose)及对象建模技术(omt)。其中,统一建模语言(uml)是由rational公司的三位世界级的面向对象技术专家grady booch、ivar jacobson和jim rambaugh,通过对早期面向对象研究的设计方法进一步扩展而得到的,它为可视化建模软件奠定了坚实的理论基础。2002年,rational公司被ibm收购,rational成为ibm的第5大品牌。2.1.1 rational rose的特点rational rose在建模方面具有以下特点。1. 保证模型和代码高度一致rose可以实现真正意义上的正向、逆向和双向工程。在正向工程中,rose可以为模型生成相应的代码;在逆向工程中,rose可以从用户原来的软件系统导出系统的模型;在双向工程中,rose可以真正实现模型和代码之间的循环工程,从而保证模型与代码的高度一致,并通过保护开关使得在双向工程中不会丢失或覆盖已经开发的任何代码。2. 支持多种语言rose本身能够支持的语言包括:c+、visual c+、java、smalltalk、ada、visual basic、powerbuilder,也能够为corba应用产生接口定义语言(idl)和为数据库应用产生数据库描述语言(ddl)。为了最大程度地给rose提供便利和实惠,产品被划分为企业版和专家版,用户可以根据自己在开发语言方面的需要灵活选择不同的版本。3. 为团队开发提供强有力的支持 rose提供的两种方式来支持团队的开发:一种是采用scm(软件配置管理)的团队开发方式;另一种是没有scm情况下的团队开发方式。这两种方式为用户提供了极大的灵活性,用户可以根据开发的规模和开发人数,以及资金情况等选择一种方式进行团队开发。 rose与clearcase和sourcesafe(微软产品)等scm工具实现了内部集成,只要遵守微软版本控制系统的标准api-scc(源代码控制),api的任何版本控制系统均可以集成到rose中作为配置管理工具。4. 支持模型的internet发布rose的internet web publisher能够创建一个基于web的rose模型的html版本,使得其他人员能够通过标准的浏览器,如netscape navigator或ie来浏览该模型。5. 生成使用简单且定制灵活的文档 rose本身提供了直接产生模型文档的功能,但是如果能够利用rational文档生成工具soda提供的模型文档模板就可以轻松自如地自动生成ooa和ood阶段所需的各种重要文档。值得注意的是,无论是rose自身还是soda所产生的文档均为word文档,并且在rose中可以直接启动soda,而soda与word是无缝集成的。6. 支持关系型数据库的建模利用rose能够进行数据库的建模。rose能够为ansl、oracle、sql server 、sybase、 watcom等支持标准ddl的数据库自动生成数据描述语言。3.2 功能需求分析2.2.1 系统功能需求系统的功能需求包括以下几个方面。1. 借阅者可以通过网络查询书籍信息和预定书籍。2. 借阅者能够借阅书籍和还书。3. 图书管理员能够处理借阅者的借阅和还书请求。4. 系统管理员可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除和更新借阅者账户,增加和删除书籍。满足上述需求的系统主要包括以下几个模块。1. 基本数据维护模块。基本数据维护的模块提供了使用者录入、修改并维护基本数据的途径。例如对借阅者的、书籍的各项信息的更新与修改。2. 基本业务模块。基本业务模块主要用于实现用户借书与还书的管理,例如借阅者可以登陆系统借阅书籍,图书管理员可以取消书籍的预定,当然还可以进行借书还书等操作。3. 数据库管理模块。在系统中所有书籍的信息以及借阅者的账户信息都要统一管理,书籍的借阅情况、预定情况也要进行详细地记录,所以要用统一的数据库平台进行管理。4. 信息查询模块。信息查询模块主要用于查询书籍的信息和借阅者的信息。图书馆管理系统基本数据维护模块基本业务模块数据库管理模块信息查询模块图2.1图书馆管理系统的功能需求。2.2.2 基本数据维护模块 基本数据维护模块包括如图2.2所示的几个方面。基本数据维护模块添加借阅者信息修改更新借阅者信息添加书目信息修改更新书目信息添加书籍信息删除书籍信息图2.2基本数据维护模块1. 添加借阅者信息。系统管理员可以添加借阅者账户。2. 修改更新借阅者信息。系统管理员可以修改更新借阅者信息。3. 添加书目信息。系统管理员可以添加书目。4. 修改更新书目信息。系统管理员可以添加书目。5. 添加书籍信息。系统管理员可以添加书籍。6. 删除书籍信息。系统管理员可以删除书籍。2.2.3 基本业务模块 基本业务模块包括如图2.3所示的几个方面。基本业务模块借书还书书籍预定取消书籍预定图2.3基本业务模块1. 借书。处理借书业务。2. 还书。处理还书业务。3. 书籍预定。借阅者可以通过网络进行书籍预定。4. 取消书籍预定。图书管理员可以根据情况取消书籍预定,如果借阅者已经借阅了此书或者借阅者要求取消预定都涉及此项业务。数据库模块包括如图2.4所示的几个方面。数据库模块借阅信息管理书籍信息管理账户信息管理书籍预定信息管理图2.4数据库模块1. 借阅信息管理。书籍借阅信息包括所借书的书名、isbn以及借书的时间等。2. 书籍信息管理。书籍信息包括书籍的名字、isbn、作者、入库时间以及书籍在相应的书目下的编号等。3. 账户信息管理。账户信息包括借阅者的账户id、姓名、地址、邮编和所借书籍的书目等。4. 书籍预定信息管理。负责管理书籍的预定信息。信息查询模块主要是查询数据库中的相关信息,如图2.5所示。信息查询模块查询书籍信息查询借阅者信息图2.5信息查询库模块1. 查询书籍信息。负责书籍信息的查询。2. 查询借阅者信息。负责借阅者信息的查询。第三章 系统设计3.1 系统的用例图 用例图在需求分析阶段有很重要的作用,它是作为参与者的外部拥护所能观察到的系统功能的模型。整个开发过程都是围绕需求阶段的用例进行的。 创建用例图之前首先要确定参与者。1. 作为一个图书馆管理系统,首先需要读者(借阅者)的参与,读者可以登陆系统查询所需要的书籍,查到所需要的书籍后课题考虑预订,当然最重要的是借书、还书操作。2. 对于系统来说,读者发起的借书、还书等操作最终还需要图书馆管理员来处理,他们还可以负责图书的预订和预订取消。3. 对于图书馆管理系统来说,系统的维护也是相当重要的。维护操作主要包括增加书目,删除或更新书目,增加书籍和减少书籍等操作。 由以上分析可以看出,系统的参与者主要有3类:读者(也可以称为借阅者)、图书馆管理员、图书馆管理系统维护者。3.1.1 借阅者请求服务的用例图借阅者请求服务的用例图包括如下用例,如图3.1所示。1. 登录系统。借阅者可以登录系统查询书籍信息、个人借阅信息以及预定书籍等。2. 查询自己的借阅信息。借阅者可以查询自己的借阅信息,例如已借书籍的信息,所借书籍应归还的最后期限等。3. 查询书籍信息。借阅者可以查询书库里的书籍信息,例如自己所需要的书是否存在,书籍的索书号等。4. 预订书籍。借阅者可以预订书籍。5. 借阅书籍。这是最基本的功能。6. 归还书籍。图3.1 借阅者请求服务的用例图【用例图说明】(1) serch for book:书籍查询用例。(2) reserve the book:书籍预定用例。(3) logon the system:登录系统。用户可以登录系统以便进行借阅信息查询以及预定书籍等操作。(4) query info:查询借阅信息。(5) borrow the book:借阅书籍。(6) return the book:归还书籍。(7) return with fine:换书时交纳罚金。如果借阅者所借书籍超过借阅期限未还,还书的时候就要交纳一定的罚金。3.1.2 图书管理员处理借书、还书等的用例图图书管理员处理借书、还书等的用例图包含如下用例,如图3.2所示。1. 处理书籍借阅。图书管理员可以处理借阅者的借书请求。2. 处理书籍归还。图书管理员可以处理借阅者的还书请求。3. 删除预订信息。图书管理员可以删除借阅者的书籍预订信息。图3.2 图书馆管理员处理借书、还书等的用例图【用例图说明】(1) get book:书籍归还处理。(2) lend book:书籍借阅处理。(3) remove reservation:删除书籍预订信息。(4) get with fine:还书时收取罚金。(5) check user count:检查用户借阅凭证的合法性。图书管理员在借阅者借书的时候要检查用户借阅凭证的合法性。3.1.3 系统管理员进行系维护的用例图系统管理员进行系维护包含图下用例,如图3.3所示。1. 查询借阅者信息。系统管理员可以查询借阅者的基本信息和借阅信息。2. 查询书籍信息。系统管理员可以查询书库里的书籍信息。3. 增加书目。系统管理员可以向书库中增加书目。4. 删除或更新书目。系统管理员可以从书库中删除和更新书目。5. 增加书籍。系统管理员可以向书库中增加书籍。6. 删除书籍。系统管理员可以从书库中删除书籍。7. 添加借阅者账户。系统管理员可以向系统中添加借阅者账户。8. 删除或更新借阅者账户。系统管理员可以删除或更新借阅者账户。图3.3 系统管理员进行系统维护的用例图【用图例说明】(1) query borrower info:查询读者信息。(2) query book info:查询书籍信息。(3) add title:增加书目。(4) remove or update title:删除或更新书目。(5) add book:增加书籍。(6) remove book:删除书籍。(7) add borrower:添加借阅者账户。(8) remove or update borrower:删除或更新借阅者账户信息。3.2 系统的时序图时序图按时间顺序描述系统元素之间的交互。图书管理系统的时序图主要有如下几个。1. 系统管理员添加书籍的时序图。2. 系统管理员添加借阅者账户的时序图。3. 系统管理员添加书目的时序图。4. 系统管理员删除或更新书目的时序图。5. 系统管理员删除或更新借阅者账户的时序图。6. 系统管理员处理书籍借阅的时序图。7. 系统管理员处理书籍归还的时序图。8. 系统管理员查询书籍信息的时序图。9. 系统管理员预订书籍的时序图。3.2.1 系统管理员添加书籍的时序图图3.4 系统管理员添加书籍的时序图【时序图说明】1. add item():添加书籍函数。2. find(string):根据书籍查找相应书目的函数。3. create(integer,title):修改书籍数目的函数。添加书籍时,系统管理员首先与系统的维护窗口互交,查找有没有相应的书目信息。如果有,直接添加,如果没有,要创建新的书目。3.2.2 系统管理员添加借阅者账户的时序图图3.5 系统管理员添加借阅者账户的时序图【时序图说明】create(string,string):添加新的借阅者账户的函数。系统管理员要添加新的借阅者账户,首先要与维护窗口交互,维护窗口负责创建一个新的借阅者账户。3.2.3 系统管理员删除书目的时序图【时序图说明】1. find(string):书目类的查找函数。2. find on title(title):查找此书目下书籍信息的函数。3. destroy:删除书籍信息的函数。4. destroy:删除书目信息的函数。系统管理员与系统维护窗口交互,查找到相应的书目及书籍信息并删除掉。图3.6 系统管理员删除书目时的时序图3.2.4 图书馆管理员处理书籍借阅的时序图【时序图说明】1. find(string):查找书目的函数。2. find item ():查找所需要书籍的函数。3. find on title (title):根据书目从数据库中找到书目信息的函数。4. identify borrower():验证借阅者身份的函数。5. find(string):根据借阅者的登录账号找到借阅者信息的函数。6. create(borrower,item):修改借阅信息的函数。图书管理员首先与系统的借阅窗口交互,然后借阅窗口与书目和书籍信息交互,查看借阅书籍是否可用。如果可用,要验证借阅者借书凭证的有效性,如果有效,则将新的借阅信息存入数据库。图3.7 图书管理员处理书籍借阅的时序图3.2.5 图书管理员处理书籍归还的时序图图3.8 图书管理员处理书籍归还的时序图【时序图说明】1. check():检查书籍状况的函数。2. update():更新书籍类信息的函数。3. update():更新借阅者借阅信息的函数。图书管理员处理还书时,首先从借阅者手里接过书籍,然后与还书窗口交互,还书窗口负责检查书籍状况,然后更新书籍信息和读者的借阅信息。3.2.6 借阅者查询书籍信息的时序图图3.9 借阅者查询书籍信息的时序图【时序图说明】find on title ( ):根据书目查找到相应的书籍信息。3.2.7 借阅者预订书籍的时序图图3-10 借阅者预订书籍的时序图【时序图说明】1. login:登录系统的函数。2. find(string):查找相应书目的函数。3. reserve( ):预订书籍的函数。借阅者首先与系统的网络模块交互,如果找到要预订的书籍,就将预订信息添加进去。3.3 系统的协作图 协作图用来表现系统的对象间的另一种交互,即时间和空间顺序上的交互。虽然和时序图表现的交互方式不同,但系统的时序图和协作图一般描述相同的内容。图书管理系统的协作图主要有如下几个。1. 系统管理员添加书籍的协作图。2. 系统管理员添加借阅者账户的协作图。3. 系统管理员添加书目的协作图。4. 系统管理员删除或更新书目的协作图。5. 系统管理员删除或更新借阅者账户的协作图。6. 图书管理员处理书籍借阅的协作图。7. 图书管理员处理书籍归还的协作图。8. 借阅者查询书籍信息的协作图。9. 借阅者预订书籍的协作图。由于涉及的协作图较多,一些简单的协作图就不在下面列出了。3.3.1 系统管理员添加书籍的协作图【协作图说明】(1) add item():添加书籍的函数。(2) find(string):根据书籍名查找相应书目的函数。(3) update():修改某类书目下书籍数量的函数。图3.11 系统管理员添加书籍的协作图3.3.2 系统管理员删除书籍的协作图【协作图说明】(1) remove _item():删除书籍的函数。(2) find(string):根据书籍名查找相应书目的函数。(3) update():修改某类书目下书籍数量的函数。图3-12 系统管理员删除书籍的协作图3.3.3 图书管理员处理借书的协作图图3.13 图书管理员处理借书的协作图【协作图说明】(1) identify borrower():验证借阅者身份的函数。(2) find reservation():查找预订信息的函数。(3) find(borrower,title):根据借阅者和借阅的书籍名找到相应预订信息的函数。(4) borrow():处理借书的函数。(5) update():更新某一书目下书籍数量的函数。(6) check if max():检查借阅凭证所借书籍数目是否已经超过最大限额的函数。3.3.4 图书管理员处理还书的协作图【协作图说明】(1) find borrower():查找借阅者信息的函数。(2) find(string):根据借阅者查找借阅信息的函数。(3) return back():处理还书的函数。(4) update():更新书籍数目的函数。图3.14 图书管理员处理还书的协作图3.3.5 借阅者预订书籍的协作图图3.15 借阅者预订书籍的协作图【协作图说明】(1) identify borrower():验证借阅者身份的函数。(2) find(string):根据书籍名称查找书目信息的函数。(3) reserve():预订某一书目下的书籍函数。(4) create(ttile,borrower):修改预订信息的函数。3.4 系统的状态图 在图书馆管理系统中,有明确状态转换的类有:书籍和借阅者的账户(相当于包含特定个人信息的电子借阅证)。可以在系统中为这两类事物建立状态图。1 书的状态图图3.16 书的状态图【状态图说明】(1) new book:还未入库的新书。(2) delete:已经从书库里删除的书。(3) available:书籍处于可用状态,即可以外借的状态。(4) reserved:预订状态。(5) borrowed:借出状态。书籍处于可用(available)状态时既可以预订也可以外借,外借后变为借阅(borrower)状态。处于预订(reserved)状态时可以外借,超出预定时间期限则从预订状态直接转化为可用状态。借阅者在规定的预定时间内也可以考虑取消预订,取消预订后书籍的状态转为可用。外借书籍归还后,变为可用状态。3.5 系统的活动图活动图描述活动是如何协同工作的。当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事情。在图书馆管理系统中,有明确活动的类包括:借阅者、图书馆管理员和系统管理员。可以在系统中为这3个类建立活动图。1. 借阅者的活动图【活动图说明】(1) self help service:打开图书馆负责自助服务的计算机。(2) search for books:查询需要的书籍。(3) login:登录管理系统。(4) view book information:查看书籍信息。(5) reserve the book:预订书籍。(6) exit system:退出系统。(7) leave computer:离开自助服务的计算机。图3.17 借阅者的活动图借阅者进行自助服务时,可首先登录系统,然后进行书目查询、书籍信息查询、书籍预订等活动。也可先查询树木和书籍信息后登录系统预订书籍。2 图书管理员的活动图【活动图说明】(1) login the system:图书馆管理员登录系统。(2) get book:处理还书操作。(3) lend book:处理借书操作。(4) update borrowers information:更新借阅者借阅凭证上的信息。(5) accept money:收取罚金。图书管理员可以处理两种情况,借书操作和还书操作。当用户借书时,图书管理员要查看借阅者借书凭证上显示的可借书的数目是否满足要求;当用户还书时,图书管理员要检查所借书籍是否已经超过期限,如果超过期限,要收取一定的罚金。图3.18 图书管理员的活动图3 系统管理员的活动图系统管理员要处理的内容比较多,活动图也比较大,所以将其分为3个图进行说明。(1) 系统管理员维护借阅者账户的活动图图3.19 系统管理员维护借阅者账户的活动图系统管理员登录系统后,可以进行查询借阅者信息、添加借阅者账户、删除或更新借阅者账户等活动。(2) 系统管理员维护书目信息的活动图系统管理员登录系统后,可以进行查询书目信息、删除书籍信息或者更新书目等活动。图3.20 系统管理员维护书目信息的活动图(3) 系统管理员维护书籍信息的活动图系统管理员登录系统后,可以进行添加书籍、删除书籍等活动。【活动图说明】(1) login the system:登录系统。(2) operation on borrower:对借阅者账户进行操作。(3) operation on title:对书目进行操作。(4) operation on book:对书籍进行操作。(5) query borrower info:查询借阅者信息。(6) new borrower:添加新的借阅者账户。(7) remove or update borrower:删除或更新借阅者账户。(8) query title:查询书目信息。(9) new title:增加新的书目。(10) remove or update title:删除或更新书目。(11) add book:增加书籍信息。(12) remove book:删除书籍信息。(13) exit the system:退出系统。图3.20 系统管理员维护书目信息的活动图第四章 系统中的类4.1 系统类图的生成 在图书馆管理系统中用到的类主要有七个:item、title、loan、reservation、borrower、administrator、librarian,前5个类之间有一定的关系。1. 参与者相关的类图4.1 参与者相关的类【类图说明】(1) borrower类是借阅者的类,它的属性很多,包括借阅者的账户id(user id)、姓名(name)、地址(address)、邮编(zip)、所借书籍的书目(borrow number)等。其中主要操作有借书(borrow)和还书(return book)。(2) librarian类是图书管理员的类,包括工作账号(work id)、名字(name)、和地址(address)等属性。(3) administrator类是系统管理员类。2. 系统中用到的其他的类【类图说明】(1) title类是记录书目信息的类,包括书籍的名字(name)、作者(author)、isbn、此种书籍的总数量(total number)、借出的数量(borrowed number)、是否允许借出(isallowforborrow)等属性。(2) item类是具体某本书的类,属性包括书籍号(id)。操作包括预订(reserve)、按书目查找(find on title)等。(3) loan类是某书的借阅信息类,包括所借阅书籍的isbn、借阅的时间(date)等。(4) reservation类是预订信息类,每个预订信息包括预订日期(date)、所预订书籍的isbn、预订书籍的用户id(user id)等属性。图4.2 系统中的其他类4.2 各类之间的关系【类图说明】title类是书库里的一条记录,而item类则是指具体的书籍。现实世界里,每条记录都会有许多本书存在,所以title与item之间是一对多的关系:title与reservation之间也是一对多的关系,也就是说tit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新解读《CB-T 3858 - 1999起锚机和起锚绞盘性能参数》新解读
- 华师大版七下(2024版)8.1.1认识三角形第2课时 课件
- Brand KPIs for health insurance:Zurich Santander in Brazil-英文培训课件2025.4
- 汽车传感器与检测技术电子教案:湿度传感器
- 景观绿化工程施工组织设计
- 乐亭金沙岛假日酒店可研报告78p
- 中考地理复习教案第21课时 北京市、珠三角、长三角、长株潭城市群
- 从化市宣传周活动方案
- 代步竞走活动方案
- 代表教育募捐活动方案
- 安全施工责任承诺书
- 单肺通气肺功能保护策略课件
- (完整word版)现代汉语常用词表
- 【自考复习资料】05175税收筹划(重点知识汇总)
- 机械设备安全及防护要点
- GB/T 43565-2023中小学合成材料面层篮球场地
- 【班级管理表格】学生检讨反思承诺书
- 【市调】楼盘调查表(住宅)
- 建筑工程专项施工方案编写培训讲义危险性较大工程施工方案编制
- 01-BUFR格式应用指南(试用版)
- 锅炉二十五项反措及事故预防-课件
评论
0/150
提交评论