《基于UML和C#图书管理系统设计毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于UML和C#图书管理系统设计毕业设计论文.doc(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于UML和C#图书管理系统设计 摘要针对目前我国数量庞大的图书馆以及图书管理系统陈旧与传统的事实,为了最大程度的提高图书馆的工作效率并保证工作质量,使图书管理员和读者对图书馆里的资源使用更方便快捷,对管理和服务更满意,故设计实现了一个基于UML图书管理系统,该图书信息管理系统主要针对学校图书馆。系统前期使用UML进行系统建模,使用StarUML作为开发工具,本系统采用B/S结构,后期主要以ASP.NET框架作为基础,使用了C#开发语言,用Microsoft Visual Studio作为开发工具,以SQL Server作为数据库,设计开发一套界面简单、操作方便,容易维护的系统。此图书管理系统
2、包括如下几项功能:图书分类管理、读者管理、图书管理、借书管理、还书管理、用户参数设置,以使图书管理系统的服务内容更多样。 关键词 图书管理系统 ;UML;ASP.NET;C#;Microsoft Visual Studio The design of library management system based on UML and C#Abstract Aiming at the large number of libraries and library management systems and traditional old facts, in order to maximize e
3、fficiency and ensure the improvement of the quality of work the library, librarians and readers to make more convenient to use the librarys resources, management and service satisfaction, it designed and implemented a UML-based library management system, the library information management system aim
4、ed at the school library. Early systems using UML system modeling, using StarUML as a development tool, the system uses B/S structure, the latter mainly in ASP.NET framework as a basis, the use of C# development language, using Microsoft Visual Studio as a development tool to SQL Server as database
5、design and development of a simple interface, easy to operate, easy to maintain system. This library management system includes several features as follows: Book taxonomic relationship, the reader management, library management, library management, book management, user parameter settings to make th
6、e services more diverse library management system.Keywords library management systems; UML;ASP.NET,;C#; Microsoft Visual Studioii目 录摘要iAbstractii1 绪论1 1.1 课题研究的背景1 1.2 课题研究的意义1 1.3 图书管理系统的设计目标12 系统的开发环境及技术简介22.1 系统开发语言2 2.1.1 UML语言简介2 2.1.2 C#语言简介22.2 开发工具 3 2.2.1 StarUML3 2.2.2 Microsoft Visual Stu
7、dio 200832.3 B/S体系结构32.4 开发框架ASP.NET43 系统总体设计53.1 需求规格说明5 3.1.1 系统需求分析5 3.1.2 识别参与者6 3.1.3 识别用例6 3.1.4 用例的事件流描述7 3.2 静态结构模型10 3.2.1 定义系统对象10 3.2.2 定义用户界面类11 3.2.3 建立类图123.3 动态行为模型14 3.3.1 编写目的14 3.3.2 建立交互作用图14 3.3.3 建立状态机图18 3.3.4 建立活动图193.4 建立物理模型20 3.4.1 建立部署图20 4 系统数据库设计21 4.1 数据库SQL Server21 4.
8、2 概念模型设计21 4.3 数据库逻辑模型22 4.4 数据库表结构23 4.5 平台数据表的设计23 5 系统功能实现251 5.1 用户登录25 5.2 系统主界面26 5.3 图书分类管理主界面27 5.4 图书管理主界面29 5.5 读者管理主界面30 5.6 借书管理主界面33 5.7 还书管理主界面36 6 系统测试39 6.1 软件测试39 6.1.1 测试目的39 6.1.2 测试方案39 6.1.3 测试用例39 6.1.4 测试分析41 6.2 测试评价41 结论42 参考文献43 致谢44 外文原文45 中文翻译54 21 绪 论1.1 课题研究的背景全国各地图书馆数量
9、和规模都随着科学技术的发展而迅速增加。现在已处于传统图书馆向数字图书馆过渡阶段。但其中大部分小城市的图书馆没能高效率地利用网络信息资源。传统的机制已不能满足时代发展的需求,因为这造成了人力和物力的极大浪费,这就是该图书管理系统开发的大背景。因而建立一个规范、系统、准确、有效的图书管理系统在现代社会势在必行,这也对图书管理系统提出了更高的要求,如图书管理、借书管理、还书管理、读者管理等各种方便用户使用的界面。UML统一建模语言是标准化编制系统蓝图的语言,对于复杂的系统UML可以建立可视化的系统模型。UML建模技术应用于图书管理系统建设,能够加快开发的进程,保证代码的质量,适应动态的业务需求,还可
10、继承原有的传统图书馆信息资源。UML统一建模语言是一种定义良好、富于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想新方法新技术,支持面向对象的分析与设计。此管理系统能让管理者和读者对图书馆中的书籍得到更方便、更满意的服务。1.2 课题研究的意义 随着图书馆规模的不断扩大和读者的不断增多,图书馆中的书籍、读者、图书的借阅、收费服务等都将越来越繁杂,需付出的人力物力也将越来越大。若采用传统人工的方式处理各种数据,则会出现诸多缺点,比如: 检索速度慢,觉得很不方便,可靠性差,而且时间长了以后,会产生大量的文件和数据,用于检索,更新和维护都带来了很大的难度。在随着计算机科学技术的迅猛
11、发展,使用计算机网络对图书馆的各项信息进行操作处理,使图书馆管理系统的服务模式更多样化,更广泛。这些优势可以提高效率,并确保最大程度的工作质量,将使图书管理员和读者对图书馆里的资源使用更方便快捷,对管理和服务更满意。所以,开发先进的图书管理系统软件是大势所趋。1.3 图书管理系统的设计目标该图书信息管理系统主要针对学校图书馆,图书逐渐成为人们的学习和精神文化消费主流以及传统而陈旧的管理方式应运而生的,该软件的开发是为了图书管理员和读者更好地利用图书馆的管理和业务。图书管理系统要最终实现图书馆管理业务,实现各项管理等几个方面的功能。图书馆的书籍和读者信息以及有关借阅情况的管理对图书管理者来说都是
12、至关重要的。同时,方便快捷性是使用者最为关注的。为了实现上述目标,图书管理系统就包括如下几项功能:图书分类管理、读者管理、图书管理、借书管理、还书管理、生成记录列表。将使图书管理员和读者对图书馆的资源使用更方便快捷,对管理和服务更满意。保证图书管理系统的效率和质量。 2 系统的开发环境及技术简介2.1 系统开发语言2.1.1 UML语言简介 统一建模语言(UML)建模的过程是开发面向对象设计方法的第一步。UML是一种定义良好、富于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术,支持面向对象的分析与设计。UML表示法集中了不同的图形表示方法,定义了用例图、类图、
13、顺序图、通信图、活动图、状态图、组件图、部署图等9种图。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析和构造。UML的定义包括UML语义和UML表示法两个部分,UML语义描述了基于UML的精确元模型定义,元模型为UML的所有元素在语法和语义上提供了简单一致通用的定义性说明,使开发者在语义上取得一致。UML表示法定义了UML符号的表示方法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。 UML语言特点:UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。它实际上
14、是一种通用的建模语言,可以为许多面向对象建模方法的用户广泛使用。UML建模能力比其它面向对象建模方法更强。UML是一种建模语言,而不是一个开发过程。 UML应用领域:常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。 此外,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。分析
15、阶段主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系,并用UML类图来描述。为实现用例,类之间需要协作,这可以用UML动态模型来描述。在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和并行性等问题的类)。这些技术细节将在设计阶段引入,因此设计阶段为构造阶段提供更详细的规格说明。 编程(构造)是一个独立的阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。在用UML建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统
16、结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。UML符号具有定义良好的语义,不会引起歧义,有利于交流,还有利于对软件的维护。2.1.2 C#语言简介 C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。通过使用Visual C#程序,程序员能够快捷简便的编写各种基于.NET平台的应用程序。C#语言是一种安全稳定,是C语言和C+语言衍生出来的面向对象的编程语言,继承了它们的强大功能但去掉了一些它们的复杂性,如没有宏、不能多重继承。其独特的优势成为.NET开发的首选语言。2.2 开发工具 2.2.1 StarUMLStarUML(简称SU),是
17、一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强。可绘制9种UML图:用例图、类图、序列图、状态图、活动图、通信图、模块图、部署图以及复合结构图等。StarUML是一套开放源码的软件,可导出JPG、JPEG、BMP、EMF和WMF等格式的影像文件。StarUML遵守UML的语法规则,不支持违反语法的动作。正反向工程:StarUML可以依据类图的内容生成Java、C+、C#代码,也能够读取Java、C+、C#代码反向生成类图。2.2.2 Microsoft Visual Studio 2008 Visual Stu
18、dio是由微软公司发布的集成开发环境平台,它不仅是一款为人熟知的开发工具,更是研发团队的协作与管理平台。使用Visual Studio可以创建桌面,网络,移动终端等不同平台的应用程序。Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具
19、和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。 开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP. NET应用程序服务和 Microsoft 平台。 程序开发为了帮助开发人员迅速创建先进的软件,Visual Studio 2008 提供了改进的语言和数据功能,各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。 Visual Studio 2008 还使开发人员能够从同一开发环境内创建面向多个 .NET Framework
20、 版本的应用程序。2.3 B/S体系结构 本系统采用比较流行的B/S三层结构。图2.1 B/S三层结构图 B/S体系结构及浏览器/服务器结构,是对C/S体系结构进行改进后的一种结构。要实现一个完整的B/S应用系统,需要三部分组成。B/S模式第一层客户机的主体是浏览器,它是B/S结构中用户与整个系统交互的界面,用于向服务器发送特定的数据或请求,以及接收从服务器发来的数据。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器。第二层的Web服务器是实现B/S结构的关键,Web服务器的引入
21、,使得通过浏览器来访问数据库服务器成为可能,从而免去了开发与维护客户端界面的大量工作。用户只要安装了浏览器软件,就可以访问数据库服务器。Web服务器作为一种应用服务器,可以将原来分布于客户端或服务器端的应用集中在一起,使系统的结构更加清晰和精细,有利于系统的扩展。Web服务器作为客户端和服务器端的中介,起着沟通与协调的作用。第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的请求,管理数据库。在该层中存储了系统中所有需要发布的数据信息,因此,为了保证Web站点的快速,高效,一般需要把数据库服务器放在硬件配置较好的机器上,它可以和Web服务器在同一台计算机上,也可以位于两台
22、,甚至多台计算机上。B/S软件体系结构的优点有:它简化了客户端,无需像C/S模式那样在不同的客户机上安装不同的客户端应用程序,而只需安装通用的浏览器软件,就可享受到无限丰富的永远在不断变化和发展着的信息服务。这样不但可以节省客户机的硬盘空间与内存,而且使客户端的安装和升级过程更加简便,原则上取消了所有在客户机一侧的维护工作。B/S体系结构通过Internet技术统一访问不同种类的数据库,提供了异种机器,异种网络,异种应用服务之间的统一服务的最现实的开放性基础。B/S软件体系结构也存在问题,比如缺乏对动态页面的支持能力,没有集成有效的数据库处理能力,系统的扩展性差,安全性难以控制以及集成工具不足
23、等缺点。B/S体系结构有开放的标准,只需在客户端安装浏览器,降低了开发和维护的成本,用户使用方便,界面友好。2.4 开发框架ASP.NETASP.NET是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。ASP.NET是作为.NET框架体系结构的一部分推出的,ASP.NET应用包含多种类型的文件,在ASP.NET网页中,页面代码模型由可视元素和逻辑两部分组成,可视元素由一个包含静态标记(如HTML或ASP.NET服务器控件)的文件组成,ASP.NET网页用做要显示的静态文本和控件的容器,ASP.NET网页的逻辑由代码组成,这些代码由用户创建,并与页进行交互。在
24、进行ASP.NET页面设计时,可以充分利用Visual Studio提供的控件,快速实现应用程序的界面设计,实现页面与用户的动态交互。 ASP .NET是基于通用语言的编译运行的程序,其实现完全依赖于虚拟机,所以它拥有跨平台性,ASP .NET构建的应用程序可以运行在几乎全部的平台上。ASP.NET使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。ASP.NET的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。ASP.NET是一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上
25、运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多。而且是可以用任何与 .NET 兼容的语言(包括Visual Basic .NET、C#和JScript .NET)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NET Framework。 3 系统总体设计3.1 需求规格说明3.1.1 系统需求分析 图书管理系统开发首先要做的事都是确定系统的需求功能。功能性需求描述了系统的功能,在面向对象的方法中,可以用用例来描述系统的功能。采用用例驱动的分析方法分析需求的主要任务是识别出系统的参与者和用例,并建立用例模型。图书管理系统要实现功能如下:设计要实现的图
26、书管理系统,图书管理员可以进行读者管理,可以添加新读者,对读者账户有挂失和恢复状态管理。每个读者有最多借书权限,最多借书数量由管理员设置,超过该设置就不能借书,挂失状态也不能借书。读者登录成功后可以查看图书列表和借书记录列表,借书还书由图书管理员操作,读者与系统不进行借书还书交互。可对图书进行分类管理,图书管理,同时对图书信息进行删除,编辑,查看操作。在借书时,需要输入所借的图书分类,图书名,图书编号,然后输入借书证号和读者名,完成后提交所填表格,系统验证读者是否有效,若有效,允许借书,系统查询数据库系统,看要求借的图书是否存在,若存在,则读者可以借出图书,并在系统中建立借书记录列表。借书证号
27、就是读者登录用户名,借书证号和密码由系统自动生成。读者还书以后,生成关于图书的借书记录。限制还书期限为15天,超期每天罚款一元,每个读者只可以续借一次。读者可以进行图书列表查询,借书记录列表查询,图书查询,续借管理。系统功能结构图如下图3.1所示。 图3.1 系统功能结构图 分析上述图书管理系统要实现功能的描述,就得到下列需求。(1) 读者持有借书证号。(2) 读者可以查看图书列表。(3) 读者可以查询图书信息。(4) 读者可以进行续借管理。(5) 图书管理员作为读者的代理借书。(6) 图书管理员作为读者的代理还书。(7) 图书管理员可以创建新的读者账户。(8) 图书管理员修改读者的账户信息。
28、(9) 图书管理员可以添加新图书种类。 (8) 图书管理员可以修改图书分类信息。 (9) 图书管理员可以删除系统中的图书分类。 (10)图书管理员可以在系统中添加图书信息 (11)图书管理员可以编辑图书信息。 (12)图书管理员可以删除图书信息。 (13)图书管理员可以限制最长借书时间。 (14)图书管理员可以查询读者借书记录。 (15)图书管理员可以生成借书记录列表。 3.1.2 识别参与者 由图书管理系统的功能描述,能够得出图书管理系统的两个参与者,即读者和图书管理员。对参与者的描述如下。读者描述:查看图书信息,查看借书记录列表;管理员描述:读者管理,借书管理,还书管理,图书分类管理,可以
29、添加、编辑、删除图书分类信息;图书管理,可以添加、编辑、删除图书信息。3.1.3 识别用例根据图书管理系统的功能需求再做分析,能够得出图书管理系统的各个用例:(1) 借书管理(2) 还书管理(3) 读者管理(4) 图书分类管理(5) 借书记录(6) 登录(7) 图书列表(8) 图书管理 本用例描述了用户如何登录进入图书管理系统。明确了参与者和用例两者的联系后可创建用例图。“借书”、“还书”这些动作是由“读者”执行的,但是对于本系统来说,这些操作是由“管理员”与系统进行交互完成的,因此参与者“读者”和参与者“管理员”之间存在着依赖关系,即“读者” 借助“管理员”完成这些工作。用例“读者管理”、“
30、图书管理”、“图书分类管理”也是参与者“管理员”进行交互的。出于对图书管理系统安全方面的考虑,“管理员”必须要经过身份验证成功(用户名和密码符合)才能登录本系统执行后续的管理。系统的用例图如图3.2和图3.3所示。图3.2系统用例图 图3.3系统的用例图3.1.4用例的事件流描述用例还可以用事件流描述,用例的事件流是对完成用例行为为所需的事件的描述。事件流描述了系统应该做什么,而没有描述系统应该怎样做,也就说事件流是用域语言描述的,而不是用实现语言描述的。通常,事件流文档的建立主要在细化阶段进行。开始只是对执行用例的常规流(即用例提供了什么功能)所需步骤的简单描述。随着分析的进行,通过添加更多
31、的详细信息,步骤不端细化。最后,再将例外流添加到用例的事件流描述中。图书管理系统的用例事件流描述如下。1.借书1.1前置条件在这个用例开始之前,管理员必须登录到系统中。1.2后置条件如果这个用例成功,在系统中生成借书记录列表。反之,系统的状态没有变化。1.3扩充点没有。1.4事件流1.4.1基流当读者从图书馆借阅图书时,用例启动。如果管理员选择“借书”,就执行分支流S-1:借书1.4.2分支流S-1:借书(1)提供图书种类、读者信息。(2)检索图书种类(E-1)。(3)确定所借的图书是否能够借阅(E-2)。(4)检索读者(E-3)。(5)图书馆将图书借给读者。(6)创建借阅记录。(7)存储借阅
32、记录。 1.4.3替代流E-1:系统提示图书不存在,用例终止。E-2:系统提示图书已借完,用例终止。E-3:系统提示没有该读者,用例终止。 2.还书 2.1前置条件在这个用例开始前,管理员必须登录到系统中。2.2后置条件 如果这个用例成功,系统删除借阅记录。反之,系统状态不变。2.3扩充点没有。2.4事件流2.4.1基流当读者返还所借的图书时,用例启动。 (1)提供所还图书信息。 (2)检索图书(E-1)。 (3)查询图书的借阅记录(E-2)。 (4)删除借阅记录。2.4.2替代流E-1:系统提示图书不存在,用例终止。E-2:系统提示借阅记录不存在,用例终止。5.维护读者信息5.1前置条件在这
33、个用例开始之前,管理员必须登录到系统中。5.2后置条件若用例成功,系统可管理读者信息。反之,系统的状态没有变化。5.3扩充点没有。5.4事件流5.4.1基流当管理员想维护读者信息时,用例启动。系统要求管理员选择所想执行的动作若选择的动作是“添加读者”,就执行分支流S-1:添加读者。若选择的动作是“修改读者”,就执行分支流S-2:修改读者。5.4.2分支流S-1:添加读者(1)提供读者信息,如姓名、联系方式、状态等。(2)系统存储读者信息(E-1)S-2:更改读者(1)提供读者的信息。(2)查询并显示读者的信息(E-2),修改相应的信息。(3)更新并存储系统中读者的信息。5.4.3替代流E-1:
34、系统提示读者已存在,用例终止。 E-2:系统提示没有该读者,用例终止。6.维护图书信息6.1前置条件在这个用例开始之前,管理员必须登录到系统中。6.2后置条件若该用例成功,系统进行图书管理。反之,系统状态没有变化。6.3扩充点没有。6.4事件流6.4.1基流当管理员想维护图书信息时,用例启动。系统要求管理员选择所想执行的动作。若选择的动作是“添加图书”,就执行分支流S-1: 添加图书信息。若选择的动作是“删除图书”,就执行分支流S-2: 删除图书信息。若选择的动作是“编辑图书”,就执行分支流S-3: 编辑图书信息。 6.4.2分支流 S-1:添加图书信息 (1)提供图书分类、图书编号、图书名、
35、作者、出版日期、出版社等信息。 (2)在系统中添加该图书信息(E-1)。 S-2:删除图书信息 (1)提供所要删除的图书信息。 (2)查询所要删除的图书(E-2)。 (3)删除该图书的所有物理信息(E-3)。 (4)删除图书信息。 S-3:编辑图书的信息 (1)提供要编辑的图书信息。 (2)查询并显示图书信息(E-2)。 (3)修改相应的信息。 (4)更新并存储系统中的图书信息。6.4.3替代流E-1:系统提示该书信息已存在,用例终止。 E-2: 系统提示没有该图书,用例终止。 E-3: 系统提示该书被借出,用例终止。 8.登录 8.1前置条件 没有。 8.2后置条件 没有。 8.3扩充点 没
36、有。 8.4事件流 8.4.1基流 当用户要登录系统时,用例启动。 (1)系统提示用户输入用户名和密码。 (2)用户输入用户名和密码。 (3)系统将输入的用户名和密码进行验证,若正确(E-1),用户登录系统 8.4.2替代流 E-1:若用户输入无效的用户名或密码,系统提示错误。用户可以选择重新输入正确的用户名或密码,或者取消登录,用例结束。3.2 静态结构模型3.2.1 定义系统对象定义过系统需求后,就可以根据系统需求识别出系统中存在的对象。系统对象的识别要查找图书管理系统需求描述中的名词来进行,从图书管理系统的需求描述中可以找到的名词有读者、图书、图书种类、借书记录列表。若这些对象有相应的属
37、性和动作,就可以为该对象创建类。从上述分析可知,系统至少含4个重要的类,即读者、图书分类、图书、借阅记录。这些类都是实体类,具有持久性,需要存储在数据库中。由于上述类都是持久性类,可以抽象出一个代表抽象类的父类,以实现面向对象数据库文件的读写、存储、检索、删除、更新等操作。(1)读者在这个系统中,读者可以借书、还书,所以读者应该成为系统中的一个对象,类名为读者。类读者描述了读者的信息。读者的属性信息包括姓名、联系方式、最多借书量、已借图书、状态等。类读者代表了系统中存储读者的信息,即代表了读者在系统中的账户。类读者的所有对象都是持久的,因为类读者继承了类永久,并实现了读写操作。(2)图书种类图
38、书分类可以通过不同的类别来区别。在这个系统中,可以添加图书分类,类名为图书种类。类图书种类描述了图书的种类信息。类图书分类继承了类永久类,并实现了读写操作,所以类图书种类的所有对象都是持久的。(3)图书 图书也有身份,在图书馆中能用图书编号来区别图书。在该系统中,图书可以被借阅或被返还,所以,图书也是系统中的一个对象,类名为图书。类图书代表可以借阅的图书。类图书的对象有两个状态,即“已借出”或“未借出”。类图书的对象总是与一个图书分类对象对应。图书馆对同一种书通常保存几本物理图书(每本图书都可以被一个读者借出)。每个图书都有唯一的编号区别图书馆中的图书。类图书继承了类永久类,所以类图书的所有对
39、象都是持久的。(4)借阅记录在这个系统中,借阅记录可以进行的动作有挂失和恢复,所以,借阅记录也是系统中的一个对象,类名为借阅记录。类借阅记录描述了读者从图书馆借阅图书的借阅记录。一个借阅记录对象对应着一个读者对象和一个图书对象。当图书被还时,要显示还书时间。(5)类永久类类永久类是类读者、类图书、类图书种类、类借阅记录的父类。“类永久类支持对象的持久存储”。“类永久类有从数据库文件中读出对象的方法,也有将对象写入数据库文件的方法,还可以进行存储删除更新对象的动作”。类永久类的子类继承了类永久类,从而实现了将特定子类对象的属性写入数据库文件,或者从数据库文件中读出特定子类对象的属性。3.2.2
40、定义用户界面类为了管理员和读者能与图书管理系统的良好交互,要定义一个用户友好的可视化界面。可以通过对图书管理系统的进一步分析细化,得出以下界面类(属性和活动)。(1)类主界面 类主界面,是系统的主界面,用户选择不同的菜单项可执行不同的动作。程序退出主界面会关闭。(2)类读者对话框 界面类读者对话框可进行动作“添加读者”、“编辑读者”、“管理账户”时所需要的对话框。(3)类图书分类对话框 界面类图书分类对话框是进行操作“添加图书分类”时所需要的对话框。(4)类图书对话框 界面类图书对话框是为了进行“添加图书”,“编辑图书”,“删除图书”时所需的对话框。(5)类借书对话框界面类借书对话框是进行“借
41、书”操作时所需的对话框。当主窗口中的菜单项“借书管理”被选择时,对话框弹出,图书管理员输入图书编号、图书名和借书证号,单击“提交”按钮,借书动作被确认,系统存借阅记录。可进行“借书”“查看”操作。(6) 类还书对话框 界面类还书对话框是进行“还书”操作时所需的对话框。当主窗口中的菜单项“还书管理”被选择时,对话框弹出,点击“还书”按钮,还书动作被确认。(7)类消息对话框 界面类消息对话框用来显示提示信息的窗口 (8)类登录对话框 界面类登录对话框用来“输入用户名和密码”的对话框。3.2.3 建立类图找出系统中的类和它们之间的关系,画出相应类图。将系统中的类分为三个包,即用户界面包、图书馆包、数
42、据库包。包用户界面包由界面类组成,包图书馆由实体类组成,包数据库由与数据库有关的类组成。包用户界面依赖于包图书馆和包数据库,包图书馆依赖于包数据库。如图3.4所示。 图3.4 系统包图图3.5 用户界面类的类图 此类图描述了包用户界面中界面类之间的关系。 图3.6 实体类的类图 此类图描述了包图书馆中实体类之间的关系。 图3.7 界面类与实体类关系图图3.8 界面类与实体类关系图图3.9 界面类与实体类关系图 以上类图描述了界面类与实体类之间的关系。3.3 动态行为模型3.3.1 编写目的该阶段的主要目的是根据设计的总体结构,为每一个模块设计出系统的动态行为模型。表示动态行为的图有交互作用图、
43、状态机图、活动图,从不同的侧面,描述系统的功能。3.3.2 建立交互作用图 交互图可由顺序图和通信图表示。“顺序图存在两个轴,水平轴表示每个对象,垂直轴是对象的生命线,表示什么时间段对象存在”,顺序图强调了消息的时间顺序。 描述系统用例主要场景的顺序图如下所示。顺序图如图3.10至图3.16所示。()添加读者 图3.10“添加读者”的顺序图()删除读者 图3.11“删除读者”的顺序图(3) 添加图书 图3.12 “添加图书”的顺序图(4)删除图书 图3.13 “删除图书”顺序图 (5)借书 图3.14 “借书”的顺序图 (6)还书 图3.15 “还书”的顺序图 (7) 登录 图3.16 “登录
44、”的顺序图3.3.3 建立状态机图状态机图描述了特定对象的各种所处状态,状态间的跃迁以及引起状态跃迁的事件,状态机图由状态和状态之间的跃迁组成,按事件发生顺序模拟对象的行为。如图3.17所示是对象图书的状态机图,对象图书有两个状态,即“借出状态”和“未借出状态”。对象图书开始处于”未借出状态”状态,当事件“借书”发生时,对象跃迁到”借出状态”状态,同时执行动作将借书记录存储到数据库中,如果对象开始处于”借出状态”状态,当事件“还书”发生时,对象图书返回“ 未借出”状态。如图3.18所示是对象管理员的状态机图,对象管理员有两个状态,即“登录成功”和“登录不成功”。管理员图书开始处于”登录不成功”状态,当事件“用户名和密码正确”发生时,对象跃迁到”登录成功”状态,同时执行动作将管理员连接到数据库中,如果对象开始处于“登录成功”状态,当事件“退出登录”发生时,对象管理员返回状态“登录不成功”,同时退出与数据库的连接,若用户名或密码不正确,则一直处于“登录不成功”状态。 图3.17 图书的状态机图 图3.18 管理员的状态机图3.3.4 建立活动图 活动图主要是一个流图,描述了从活