基于UML的图书馆管理系统分析设计报告(1) 下载本文

图书馆管理系统分析设计

1、

系统简介

本系统为一个小型的图书管理系统,需完成以下工作: (1) 借书、还书

(2) 在图书馆中增加或删除一本书 (3) 按照作者或者专业领域查找一批书 (4) 找出被某位读者借出的一批书 (5) 找出最近借出某本书的读者

系统的用户有两类:图书管理员和普通读者。功能(1)(2)(5)只供图书管理员使用,功能(4)只能供读者查找自己借出的书,功能(3)为管理员和读者的共同功能。

本系统需满足以下限制:

(1) 图书馆中所有未借出的书可供读者随时借阅 (2) 在同一时刻,一本书不能既被借出又可供阅读 (3) 一个读者一次借出图书的数目不能超过预定值

2、 用例分析与设计

从以上系统简介内容中可以看出,本系统有以下几类参与者: 图书管理员Admin 读者Reader 读卡器CardReader 服务器System

在上述参与者中,图书管理员和读者与系统进行交互,通过对交互场景进行归类和抽象,本系统应具有以下用例:

借书lendBook 还书returnBook 增加图书addBook 删除图书delBook

按作者、专业检索图书findBook_Author 按读者检索图书findBook_Reader 按书检索读者findReader_Book

2.1 生成用例图

由以上用例分析可生成用例图,如图2.1所示

图2.1 系统用例图

2.2 用例的顺序图

为了使每个用例的操作流程更简洁明了,本系统采用UML的顺序图来对每个用例进行细化,如下所示。

1、 借书

图2.2 借书顺序图

函数说明:

InsertCard():刷卡 ReadCard():读卡

ifMax()判断借书数量是否达到上限 ReturnReaderInfo()返回读者信息 Return(true):该读者可继续借书 lendBook():输入借书信息 Update()更新数据库

2、 还书

图2.3 还书顺序图

函数说明:

BookInfo():输入还书信息 Update():更新数据库

ReturnReaderInfo():返回读者信息

3、 增加图书

图2.4 增加图书顺序图

函数说明:

addBook():输入增加的图书信息 ifAllowsAdd():判断是否允许添加 Update():更新图书信息 Return(true):返回添加成功

4、 删除图书

图2.5 删除图书顺序图

函数说明:

delBook():输入删除的图书信息 ifAllowsDel():判断是否可以删除 ifSure():是否确定删除 Return(true)5:确定删除 Update():更新图书信息 Return(true)7:返回删除成功

5、 按作者检索图书

图2.6 按作者或专业检索图书顺序图

函数说明:

findBook_Author():管理员或读者选择按作者或专业检索图书 Author(String):输入作者或专业信息 returnBookInfo():返回图书信息

6、 按读者检索图书

管理员部分:

图2.7 按读者检索图书顺序图

读者部分

图2.8 读者检索个人借阅图书顺序图

函数说明:

findBook_Reader():选择按读者检索图书 ReaderId():输入读者编号

ReaderIdandPass():输入读者编号密码 returnBookInfo():返回书籍信息

7、 按书检索读者

图2.9 按图书检索读者顺序图

函数说明:

findReader_Book():选择按图书检索读者 BookID():输入图书编号

returnReaderInfo():返回读者信息

3、 概念模型和顶层架构设计

3.1 概念模型设计

图3.1 系统概念模型——分析类图

说明:

表示控制类表示实体类表示边界类

3.2 顶层架构设计

用户交互层CardCardReaderAdminWindowsReaderWindows业务逻辑层lendBookreturnBookaddBookdelBookfindReader_BookifMaxfindBook_AuthorfindBook_ReaderSessionOperation网络服务层System

图3.2 系统顶层架构

4、 用户界面设计

4.1 界面变化分析

根据管理员的功能分析,与管理员相关的主要界面有以下10个: Admin Welcome: 管理员主界面 findReader_Book:按读者检索图书界面 lendBook:借书界面 returnBook:还书界面 addBook:增加图书界面 delBook:删除图书界面

findBook_Author:按作者或专业查找图书界面 findBook_Reader:按读者检索图书界面 UserInfo:显示读者信息界面 BookInfo:显示图书信息界面 各界面之间的转换如状态图4.1所示

图4.1 管理员屏幕变化状态图

根据读者的功能分析,与读者相关的主要界面有以下5个: Reader Welcome: 读者主界面

findBook_Author:按作者或专业查找图书界面 findBook_Reader:按读者检索图书界面 InputPass:读者验证账户名密码界面 BookInfo:显示图书信息界面 各界面之间的转换如状态图4.2所示

Reader Welcome继续继续findBook_ AuthorfindBook_Reader继续密码错误,重新输入BookInfo密码正确InputPass

图4.2 读者屏幕变化状态图

4.2 界面的类图表示

针对每个屏幕的结构及功能,采用类图对其进行详细说明,如下所示。 1、 借书界面

此界面包含一个图书编号文本框、一个读者编号文本框、一个借书按钮以及一个取消按钮,如图4.3所示

<>111<>lendBook11TextBox_BookID11<><>1<>Bn_CancleBn_LendTextBox_ReaderID

图4.3 借书界面的结构类图

2、 还书界面

此界面包含一个图书编号文本框、一个还书按钮以及一个取消按钮,如图4.4所示

<><>returnBook1111TextBox_BookID1<>1<>Bn_CancleBn_Return

图4.4 还书界面结构类图

3、 增加图书界面

此界面包含一个图书编号文本框、一个图书名称文本框、一个图书作者文本框、一个增加按钮以及一个取消按钮,如图4.5所示

<>addBook1111<>TextBox_BookID111<>TextBox_Name1<>1<>1<>Bn_CancleBn_AddTextBox_Author

图4.5 增加图书界面结构类图

4、 删除图书界面

此界面包含一个图书编号文本框、一个删除按钮以及一个取消按钮,如图4.6所示

<>1delBook111<>TextBox_BookID11<><>Bn_CancleBn_Del

图4.6 删除图书界面结构类图

5、 按作者或专业查找图书界面

此界面包含一个作者姓名本框、一个查找按钮以及一个取消按钮,如图4.7所示

<><>findBook_ Author11111<>1TextBox_Author<>Bn_CancleBn_Find

图4.7 按作者或专业查找图书界面结构类图

6、 按图书查找读者界面

此界面包含一个图书编号文本框、一个查找按钮以及一个取消按钮,如图4.8所示

<>findReader_Book1111<>11<>TextBox _Book<>Bn_CancleBn_Find

图4.8 按图书查找读者界面结构类图

7、 按读者查找图书界面

此界面包含一个读者编号文本框、一个查找按钮以及一个取消按钮,如图4.9所示

<><>findBook_ Reader1111<>11TextBox _ReaderID<>Bn_CancleBn_Find

图4.9 按读者查找图书界面结构类图

8、 读者验证账户名密码界面

此界面包含一个读者编号文本框、一个读者密码文本框、一个查找按钮以及一个取消按钮,如图4.10所示

<><>111<>Bn_Yes111InputPassBn_Cancel1<>1<>TextBox_PassTexBox_ID

图4.10 读者验证账户名密码界面结构类图

4.3 界面包图的设计

1、管理员界面包图

管理员界面<><>addBookdelBook<><>returnBookInfolendBook<>findReader_Book<>findBook_Author<>findBook_Reader

图4.11 管理员界面包图

2、读者界面包图

读者界面<><>findBook_Reader<>findBook_AuthorInputPass

图4.12 读者界面包图

5、 类设计

5.1 类的属性和操作设计

经过分析,系统主要的类、类的属性及操作以及它们之间的关系如图5.1所示。

图5.1 系统类图

5.2 类的行为模型设计

单单用类图对类进行描述并不能表示各实体类的动态行为,在这里我们进一步用状态图对书籍和读者两个实体类进行分析

1、书籍的类的状态图

图5.2 书籍类状态图

状态图说明:

NewBook:新书状态;书籍在新增后进入此状态 Available:可借阅状态 Lened:已借出状态 Delete:已删除状态

书籍在刚增加后进入新书状态,可供借阅;在发生借阅事件后进入已借出状态;当书籍归还,又转化为可供借阅状态;删除后进入已删除状态。

ifMax( False )addReaderNewReaderifMax(True)DeletedelBook图5.2 读者类状态图

状态图说明:

NewReader:新读者账户

AvailableReturnUnAvailable

Available:可借阅状态 UnAvilable:不可借阅状态 Delete:已删除状态

新增的读者为新读者账号状态,可借阅图书;当借书数量达到最大值时转化为不可借阅状态;当有图书归还后又进入可借阅状态;当账号被删除,转化为已删除状态。

6、 小结

以上就是本小组经过详细分析、精心设计的一个图书管理系统。经过小组的讨论以及分工合作,使得我们每个人对该系统有了比较全面的了解。我们采用UML分析方法对系统进行分析设计,通过对用例的分析、概念模型和顶层架构的分析、界面设计以及类的分析设计让整个系统的架构更加清晰明了。在描述各个架构及功能时我们采用了各种图,包括状态图,类图,包图,顺序图等等,全面而详细的将图书管理系统整体到部分功能形象地展示出来。UML统一建模课程是我们组成员设计的知识基础,通过对rose软件的实践应用,成功地完成本次软件设计的具体工作。