1、基于 UML 和 C#图书管理系统设计摘要针对目前我国数量庞大的图书馆以及图书管理系统陈旧与传统的事实,为了最大程度的提高图书馆的工作效率并保证工作质量,使图书管理员和读者对图书馆里的资源使用更方便快捷,对管理和服务更满意,故设计实现了一个基于 UML 图书管理系统,该图书信息管理系统主要针对学校图书馆。系统前期使用 UML 进行系统建模,使用 StarUML 作为开发工具,本系统采用 B/S 结构,后期主要以 ASP.NET框架作为基础,使用了 C#开发语言,用 Microsoft Visual Studio 作为开发工具,以SQL Server 作为数据库,设计开发一套界面简单、操作方便,
2、容易维护的系统。此图书管理系统包括如下几项功能:图书分类管理、读者管理、图书管理、借书管理、还书管理、用户参数设置,以使图书管理系统的服务内容更多样。关键词 图书管理系统 ;UML;ASP.NET;C#;Microsoft Visual Studio iiThe design of library management system based on UML and C#AbstractAiming at the large number of libraries and library management systems and traditional old facts, in orde
3、r to maximize efficiency 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 manage
4、ment system aimed 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 Serv
5、er as database 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 sett
6、ings to make the services more diverse library management system.Keywords library management systems; UML;ASP.NET,;C#; Microsoft Visual Studio1目 录摘要 .iAbstract .ii1 绪论 .11.1 课题研究的背景 .11.2 课题研究的意义 .11.3 图书管理系统的设计目标 .12 系统的开发环境及技术简介 .22.1 系统开发语言 .22.1.1 UML 语言简介 .22.1.2 C#语言简介 .22.2 开发工具 .32.2.1 StarU
7、ML .32.2.2 Microsoft Visual Studio 2008 .32.3 B/S 体系结构 .32.4 开发框架 ASP.NET.43 系统总体设计 .53.1 需求规格说明 .53.1.1 系统需求分析 .53.1.2 识别参与者 .63.1.3 识别用例 .63.1.4 用例的事件流描述 .73.2 静态结构模型 .103.2.1 定义系统对象 .103.2.2 定义用户界面类 .113.2.3 建立类图 .123.3 动态行为模型 .143.3.1 编写目的 .143.3.2 建立交互作用图 .143.3.3 建立状态机图 .18 3.3.4 建立活动图 .193.4
8、建立物理模型 .203.4.1 建立部署图 .204 系统数据库设计 .214.1 数据库 SQL Server.214.2 概念模型设计 .214.3 数据库逻辑模型 .224.4 数据库表结构 .234.5 平台数据表的设计 .235 系统功能实现 .2525.1 用户登录 .255.2 系统主界面 .265.3 图书分类管理主界面 .275.4 图书管理主界面 .295.5 读者管理主界面 .305.6 借书管理主界面 .335.7 还书管理主界面 .366 系统测试 .396.1 软件测试 .396.1.1 测试目的 .396.1.2 测试方案 .396.1.3 测试用例 .39 6.
9、1.4 测试分析 .416.2 测试评价 .41结论 .42参考文献 .43致谢 .44外文原文 .45中文翻译 .5411 绪 论1.1 课题研究的背景全国各地图书馆数量和规模都随着科学技术的发展而迅速增加。现在已处于传统图书馆向数字图书馆过渡阶段。但其中大部分小城市的图书馆没能高效率地利用网络信息资源。传统的机制已不能满足时代发展的需求,因为这造成了人力和物力的极大浪费,这就是该图书管理系统开发的大背景。因而建立一个规范、系统、准确、有效的图书管理系统在现代社会势在必行,这也对图书管理系统提出了更高的要求,如图书管理、借书管理、还书管理、读者管理等各种方便用户使用的界面。UML 统一建模语
10、言是标准化编制系统蓝图的语言,对于复杂的系统 UML 可以建立可视化的系统模型。UML 建模技术应用于图书管理系统建设,能够加快开发的进程,保证代码的质量,适应动态的业务需求,还可继承原有的传统图书馆信息资源。UML 统一建模语言是一种定义良好、富于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想新方法新技术,支持面向对象的分析与设计。此管理系统能让管理者和读者对图书馆中的书籍得到更方便、更满意的服务。1.2 课题研究的意义随着图书馆规模的不断扩大和读者的不断增多,图书馆中的书籍、读者、图书的借阅、收费服务等都将越来越繁杂,需付出的人力物力也将越来越大。若采用传统人工的方式处理
11、各种数据,则会出现诸多缺点,比如: 检索速度慢,觉得很不方便,可靠性差,而且时间长了以后,会产生大量的文件和数据,用于检索,更新和维护都带来了很大的难度。在随着计算机科学技术的迅猛发展,使用计算机网络对图书馆的各项信息进行操作处理,使图书馆管理系统的服务模式更多样化,更广泛。这些优势可以提高效率,并确保最大程度的工作质量,将使图书管理员和读者对图书馆里的资源使用更方便快捷,对管理和服务更满意。所以,开发先进的图书管理系统软件是大势所趋。1.3 图书管理系统的设计目标该图书信息管理系统主要针对学校图书馆,图书逐渐成为人们的学习和精神文化消费主流以及传统而陈旧的管理方式应运而生的,该软件的开发是为
12、了图书管理员和读者更好地利用图书馆的管理和业务。图书管理系统要最终实现图书馆管理业务,实现各项管理等几个方面的功能。图书馆的书籍和读者信息以及有关借阅情况的管理对图书管理者来说都是至关重要的。同时,方便快捷性是使用者最为关注的。为了实现上述目标,图书管理系统就包括如下几项功能:图书分类管理、读者管理、图书管理、借书管理、还书管理、生成记录列表。将使图书管理员和读者对图书馆的资源使用更方便快捷,对管理和服务更满意。保证图书管理系统的效率和质量。 22 系统的开发环境及技术简介2.1 系统开发语言2.1.1 UML 语言简介统一建模语言(UML)建模的过程是开发面向对象设计方法的第一步。 UML
13、是一种定义良好、富于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术,支持面向对象的分析与设计。UML 表示法集中了不同的图形表示方法,定义了用例图、类图、顺序图、通信图、活动图、状态图、组件图、部署图等 9 种图。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析和构造。 UML 的定义包括 UML 语义和 UML 表示法两个部分,UML 语义描述了基于 UML 的精确元模型定义,元模型为 UML 的所有元素在语法和语义上提供了简单一致通用的定义性说明,使开发者在语义上取得一致。UML 表示法定义了 UML 符号的表示方
14、法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。UML 语言特点:UML 统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。它实际上是一种通用的建模语言,可以为许多面向对象建模方法的用户广泛使用。UML 建模能力比其它面向对象建模方法更强。UML 是一种建模语言,而不是一个开发过程。UML 应用领域:常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。UML 是一个通用的标准建模语言,可以对任何具
15、有静态结构和动态行为的系统进行建模。 此外,UML 适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。分析阶段主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系,并用 UML 类图来描述。为实现用例,类之间需要协作,这可以用 UML 动态模型来描述。在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和并行性等问题的类) 。这些技术细节将在设计阶段引入,因此设计阶段为构
16、造阶段提供更详细的规格说明。 编程(构造)是一个独立的阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。在用 UML 建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。UML 符号具有定义良好的语义,不会引起歧义,有利于交流,还有利于对软件的维护。2.1.2 C#语言简介C#是微软公司发布的一种面向对象的、运行于.NET Framework 之上的高级程序设计语言。通过使用 Visual C#程序,程序员能够快捷简便的编写各种基于.NET 平台的应用程序。C#语
17、言是一种安全稳定,是 C 语言和 C+语言衍生出来的面向对象的编程语言,继承了它们的强大功能但去掉了一些它们的复杂性,如没有宏、不能多重继承。其独特的优势成为.NET 开发的首选语言。32.2 开发工具 2.2.1 StarUMLStarUML(简称 SU),是一种创建 UML 类图,生成类图和其他类型的统一建模语言(UML)图表的工具。 StarUML 是一个开源项目之一发展快、灵活、可扩展性强。可绘制 9 种 UML 图:用例图、类图、序列图、状态图、活动图、通信图、模块图、部署图以及复合结构图等。StarUML 是一套开放源码的软件,可导出JPG、 JPEG、BMP、EMF 和 WMF
18、等格式的影像文件。StarUML 遵守 UML 的语法规则,不支持违反语法的动作。正反向工程:StarUML 可以依据类图的内容生成Java、 C+、C#代码,也能够读取 Java、C+、C# 代码反向生成类图。2.2.2 Microsoft Visual Studio 2008Visual Studio 是由微软公司发布的集成开发环境平台,它不仅是一款为人熟知的开发工具,更是研发团队的协作与管理平台。使用 Visual Studio 可以创建桌面,网络,移动终端等不同平台的应用程序。Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速
19、创建当前最先进的应用程序。Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发) 、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。 开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP. NET 应用程序服务和 Micr
20、osoft 平台。 程序开发为了帮助开发人员迅速创建先进的软件,Visual Studio 2008 提供了改进的语言和数据功能,各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。 Visual Studio 2008 还使开发人员能够从同一开发环境内创建面向多个 .NET Framework 版本的应用程序。2.3 B/S 体系结构本系统采用比较流行的 B/S 三层结构。图 2.1 B/S 三层结构图B/S 体系结构及浏览器/服务器结构,是对 C/S 体系结构进行改进后的一种结构。要实现一个完整的 B/S 应用系统,需要三部分组成。B/S 模式第一层客户机的主体是浏览器,它是
21、 B/S 结构中用户与整个系统交互的界面,用于向服务器发送特定的数据或请求,以及接收从服务器发来的数据。浏览器将 HTML 代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的 Web 服务器。第二层的 Web 服务器是实现B/S 结构的关键,Web 服务器的引入,使得通过浏览器来访问数据库服务器成为可能,4从而免去了开发与维护客户端界面的大量工作。用户只要安装了浏览器软件,就可以访问数据库服务器。Web 服务器作为一种应用服务器,可以将原来分布于客户端或服务器端的应用集中在一起,使系统的结构更加清晰和精细,有
22、利于系统的扩展。Web服务器作为客户端和服务器端的中介,起着沟通与协调的作用。第三层数据库服务器的任务类似于 C/S 模式,负责协调不同的 Web 服务器发出的请求,管理数据库。在该层中存储了系统中所有需要发布的数据信息,因此,为了保证 Web 站点的快速,高效,一般需要把数据库服务器放在硬件配置较好的机器上,它可以和 Web 服务器在同一台计算机上,也可以位于两台,甚至多台计算机上。B/S 软件体系结构的优点有:它简化了客户端,无需像 C/S 模式那样在不同的客户机上安装不同的客户端应用程序,而只需安装通用的浏览器软件,就可享受到无限丰富的永远在不断变化和发展着的信息服务。这样不但可以节省客
23、户机的硬盘空间与内存,而且使客户端的安装和升级过程更加简便,原则上取消了所有在客户机一侧的维护工作。B/S 体系结构通过 Internet 技术统一访问不同种类的数据库,提供了异种机器,异种网络,异种应用服务之间的统一服务的最现实的开放性基础。B/S 软件体系结构也存在问题,比如缺乏对动态页面的支持能力,没有集成有效的数据库处理能力,系统的扩展性差,安全性难以控制以及集成工具不足等缺点。B/S 体系结构有开放的标准,只需在客户端安装浏览器,降低了开发和维护的成本,用户使用方便,界面友好。2.4 开发框架 ASP.NETASP.NET 是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务
24、器执行的服务器端脚本技术。ASP.NET 是作为.NET 框架体系结构的一部分推出的,ASP.NET 应用包含多种类型的文件,在 ASP.NET 网页中,页面代码模型由可视元素和逻辑两部分组成,可视元素由一个包含静态标记(如 HTML 或 ASP.NET 服务器控件)的文件组成,ASP.NET 网页用做要显示的静态文本和控件的容器,ASP.NET 网页的逻辑由代码组成,这些代码由用户创建,并与页进行交互。在进行 ASP.NET 页面设计时,可以充分利用 Visual Studio 提供的控件,快速实现应用程序的界面设计,实现页面与用户的动态交互。 ASP .NET 是基于通用语言的编译运行的程
25、序,其实现完全依赖于虚拟机,所以它拥有跨平台性,ASP .NET 构建的应用程序可以运行在几乎全部的平台上。ASP.NET使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。ASP.NET 是一个已编译的、基于.NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比 ASP 即时解释程序速度上要快很多。而且是可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C#和
26、 JScript .NET)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个.NET Framework。 53 系统总体设计3.1 需求规格说明3.1.1 系统需求分析图书管理系统开发首先要做的事都是确定系统的需求功能。功能性需求描述了系统的功能,在面向对象的方法中,可以用用例来描述系统的功能。采用用例驱动的分析方法分析需求的主要任务是识别出系统的参与者和用例,并建立用例模型。图书管理系统要实现功能如下:设计要实现的图书管理系统,图书管理员可以进行读者管理,可以添加新读者,对读者账户有挂失和恢复状态管理。每个读者有最多借书权限,最多借书数量由管理员设置,超过该设置就不能借书,
27、挂失状态也不能借书。读者登录成功后可以查看图书列表和借书记录列表,借书还书由图书管理员操作,读者与系统不进行借书还书交互。可对图书进行分类管理,图书管理,同时对图书信息进行删除,编辑,查看操作。在借书时,需要输入所借的图书分类,图书名,图书编号,然后输入借书证号和读者名,完成后提交所填表格,系统验证读者是否有效,若有效,允许借书,系统查询数据库系统,看要求借的图书是否存在,若存在,则读者可以借出图书,并在系统中建立借书记录列表。借书证号就是读者登录用户名,借书证号和密码由系统自动生成。读者还书以后,生成关于图书的借书记录。限制还书期限为 15 天,超期每天罚款一元,每个读者只可以续借一次。读者
28、可以进行图书列表查询,借书记录列表查询,图书查询,续借管理。系统功能结构图如下图 3.1 所示。图 3.1 系统功能结构图分析上述图书管理系统要实现功能的描述,就得到下列需求。(1) 读者持有借书证号。(2) 读者可以查看图书列表。(3) 读者可以查询图书信息。(4) 读者可以进行续借管理。(5) 图书管理员作为读者的代理借书。(6) 图书管理员作为读者的代理还书。(7) 图书管理员可以创建新的读者账户。6(8) 图书管理员修改读者的账户信息。(9) 图书管理员可以添加新图书种类。(8) 图书管理员可以修改图书分类信息。(9) 图书管理员可以删除系统中的图书分类。(10)图书管理员可以在系统中
29、添加图书信息(11)图书管理员可以编辑图书信息。(12)图书管理员可以删除图书信息。(13)图书管理员可以限制最长借书时间。(14)图书管理员可以查询读者借书记录。(15)图书管理员可以生成借书记录列表。 3.1.2 识别参与者由图书管理系统的功能描述,能够得出图书管理系统的两个参与者,即读者和图书管理员。对参与者的描述如下。读者描述:查看图书信息,查看借书记录列表;管理员描述:读者管理,借书管理,还书管理,图书分类管理,可以添加、编辑、删除图书分类信息;图书管理,可以添加、编辑、删除图书信息。3.1.3 识别用例根据图书管理系统的功能需求再做分析,能够得出图书管理系统的各个用例:(1)借书管理(2)还书管理(3)读者管理(4)图书分类管理(5)借书记录(6)登录(7)图书列表(8)图书管理本用例描述了用户如何登录进入图书管理系统。明确了参与者和用例两者的联系后可创建用例图。 “借书” 、 “还书”这些动作是由“读者”执行的,但是对于本系统来说,这些操作