第一篇:图书管理系统状态图与活动图(UML)
学 号 1407070226
统一建模语言UML B
实验报告
实验4 状态图和活动图
学专指成 生业导、姓班教
名 级 师 绩
黄源 14软件(2)班
高天迎
计算机与信息工程学院
年 月 日
一、实验目的
在熟悉状态、活动概念与应用的基础上,掌握状态图和活动图的建立。1.理解什么状态和状态图。2.掌握状态图的建立。3.掌握活动图的建立。
二、实验内容
1.建立图书管理系统的状态图。2.建立图书管理系统的活动图。
三、实验思想
1.分析:根据图书管理系统的需求分析和用例模型,对系统中的用例进行动态建模。
2.在Rational Rose工具中绘制状态图和活动图。
四、实验结果 1.状态图:(1)登陆
(2)增添新书
(3)借阅者
2.活动图(1)借阅者
(2)图书管理员
(3)系统管理员管理借阅者信息
(4)系统管理员维护图书信息
五、实验心得
这次实验学习的是状态图和活动图,感觉这次实验和前面实验相比较要容易一些,这些图按顺序来的,感觉会和我们传统的思维模式比较吻合,用心去绘制就很容易画出来。
第二篇:图书管理系统UML分析与设计
1.系统需求
系统的功能性需求描述如下:
·
图书管理系统为管理员提供主功能界面。
·
图书管理系统在启动时要求管理员输人口令,只有口令正确,才可以进入系统的主功能界面。
·
管理员负责对图书管理系统的维护工作,因此系统应赋予管理员对图书信息、读者信息和出版社信息进行录入、修改、查询和删除等功能的操作权限。
·
管理员作为读者的代理实现借书与还书业务。
·
图书信息、读者信息和出版社信息保存在对应的数据库表中。
在上述功能性需求分析的基础上,可以写出较为详细的需求规格说明书,作为进行系统分析、设计和实现的依据。需求分析规格说明书由系统最终用户提出需求,系统分析人员负责编写。图书管理系统需求分析规格说明书如下:
·
这是一个图书馆图书借阅管理的应用系统;
·
图书管理系统负责将图书、杂志借给读者,前提条件是这些读者在系统进行了注册,图书和杂志也在系统中进行了注册;
·
图书馆负责新书的购买,当书和杂志已经过时或者破旧不堪时,可以将这些图书和杂志从图书馆管理系统中删除;
·
图书管理员是图书馆的员工,负责与读者打交道,并且是在系统提供的支持下开展工作;
·
图书管理系统能够容易地建立、修改和删除系统中的信息,包括图书信息、读者信息、以及出版社信息等;
·
图书管理系统能够在所有流行的平台环境(windows,uNIx等操作系统)上运行,并具有一个美观的图书用户界面;
·
图书管理系统容易扩展新功能。
2.分析建模
Use case diagram 分析
采用下列描述项撰写用例的脚本。
· 用例名称——表明用户的意图或用例的用途。
· 参与者——与该用例相关的参与者列表。
· 前置条件——一个条件列表,如果其中包含条件,则这些条件必须在访问用例之前得到满足。
· 后置条件——一个条件列表,如果其中包含条件,则这些条件将在用例完成以后得到满足。
· 基本事件流——描述用例中各项活动都正常进行时用例的工作方式。
· 分支事件流——描述用例中某项活动的子活动各项工作都正常进行时用例的工作式。
· 异常事件流——描述用例的变更工作方式,以及出现异常或发生错误的情况下所执行的路径。
图书管理系统中每个用例的脚本描述如下:
1.系统登录
用例名称:系统登录
参与者:图书管理员 1.1前置条件 无
1.2后置条件
如果用例成功,参与者可以启动系统,使用系统提供的功能。反之,系统的状态不发生变化。
1.3基本事件流
当图书管理员登录系统时,用例启动。
①系统提示用户输入用户名和密码。
②用户输入用户名和密码。
③系统验证输入的用户名和密码,若正确,则用户登录到系统中。
1.4异常事件流
如果用户输入无效的用户名/密码,则系统显示错误信息。用户可以选择返回基本事件流的起始点,重新输入正确的用户名/密码;或者取消登录,用例结束。
2.图书借阅
用例名称:借阅图书
参与者:读者,图书管理员 2.1前置条件
在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。
2.2后置条件
如果这个用例成功实现,则在系统中创建并存储借阅记录。2.3基本事件流
当读者借阅图书时,用例启动。
①登录系统。
②输人图书ID和读者ID。
③检索读者ID。
④检索图书ID。
⑤根据时间算法确定图书借出日期和归还日期。
⑥图书馆将图书借给读者。
⑦创建借阅记录。
⑧存储借阅记录。2.4异常事件流
①如果读者未注册,则系统显示提示信息,用例被终止。
②如果要借图书不存在,系统显示提示信息,用例被终止。
③如果要借图书都已借出,则系统提示信息,用例被终止。3.图书归还
用例名称:图书归还
参与者:读者,图书管理员 3.1前置条件
在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。
3.2后置条件
如果这个用例成功实现,则系统删除借阅记录;否则,系统的状态不发生变化。3.3基本事件流
当读者归还借阅的图书时,用例被启动。
①登录系统。
②输入图书ID和读者ID。③检索图书ID。
④检索读者ID。
⑤查询图书借阅记录。⑥删除借阅记录。3.4异常事件流
①如果归还图书不存在,则系统显示提示信息,用例被终止。②如果借阅记录不存在,则系统显示提示信息,用例被终止。4.读者维护
用例名称:读者维护 ‘ 参与者:图书管理员 ’ 4.1前置条件
在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。4.2后置条件
如果这个用例成功地实现,则系统添加、修改或检索读者信息;否则,系统的状态不发生变化。
4.3基本事件流
当图书管理员维护读者信息时,用例被启动。①登录系统。
②如果选择的活动是“添加读者信息”,则执行分支事件流4.3.1:添加读者信息。③如果选择的活动是“修改读者信息”,则执行分支事件流4.3.2:修改读者信息。④如果选择的活动是“检索读者信息”,则执行分支事件流4.3.3:检索读者信息。4.3.1分支事件流
①提供读者的信息,例如,读者ID,读者姓名、电话号码等。②系统存储读者信息。4.3.2分支事件流 ①输入读者ID。
②查询并显示读者信息。③更新系统中读者信息。4.3.3分支事件流 ①输入读者ID。
②查询并显示读者信息。4.4异常事件流
①如果读者已经存在,则系统显示提示信息,用例被终止。②如果查询不到读者,则系统显示提示信息,用例被终止。5.图书维护
用例名称:图书维护 参与者:图书管理员 5.1前置条件
在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。5.2后置条件
如果这个用例成功实现,则系统添加、修改或检索图书信息;否则,系统的状态不发生变化。
5.3基本事件流
当图书管理员维护图书信息时,用例被启动。①登录系统。
②如果选择的活动是“添加图书信息”,则执行分支事件流5.3.1:添加图书信息。③如果选择的活动是“修改图书信息”,则执行分支事件流5.3.2:修改图书信息。④如果选择的活动是“检索图书信息”,则执行分支事件流5.3.3:检索图书信息。5.3.1分支事件流
①提供图书的信息,例如,图书ID,图书名称、编著者、出版社、价格、出版年份筹 ②系统存储图书信息。5.3.2分支事件流 ①输人图书ID。
②查询并显示图书信息。⑨更新系统中图书信息。5.3.3分支事件流 ①输入图书ID。
②查询并显示图书信息。5.4异常事件流
①如果该图书已经存在,则系统显示提示信息,用例被终止。②如果查询不到该图书,则系统显示提示信息,用例被终止。
系统总体功能结构
根据用例图定义分析包以及分析包(子系统)之间的关系。
图书管理系统分析包详细结构
定义类、用例实现(序列图)、类关系图(1)系统登录
类图:
系统登录分析类图
用例实现:
登录系统成功顺序图
登录系统失败顺序图
(2)登录图书信息
类图:
登录图书信息分析类图
用例实现:
登录图书信息顺序图
(3)修改图书信息
类图:
修改图书信息分析类图
用例实现:
修改图书信息顺序图
(4)检索图书信息
类图:
检索图书信息分析类图
用例实现:
检索图书信息顺序图
(5)借阅图书 类图:
借阅图书分析类图
用例实现:
借阅图书顺序图
(6)归还图书
类图:
归还图书分析类图
用例实现:
归还图书顺序图
(7)借出图书一览表
类图:
借出图书一览表分析类图
用例实现:
借出图书一览表顺序图
(8)类关系图
系统实体类(业务类)之间的关系
(9)类的具体定义
1.图书表类
编号:A—l一0l
类名:图书表
职责:存放图书馆所能处理的所有图书的基本信息
属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,出版年份,页数,价格,购入日期,过期日期,书架代码,备注
说明:该类存放所有图书类的公用信息,它是“图书借阅表”的父类。图书也有身份,可以通过不同的ISBN相区别。在图书管理系统中,图书也有相关的行为,图书因为使用期限等可以被销毁,所以图书表也是系统中的一个对象。
2.登录图书界面类
编号:A一1—02
类名:登录图书界面
职责:提供输入所有图书信息的界面
属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,出版年份,页数,价格,购入日期,过期日期,书架代码,备注
说明:该类的所有属性是非持久性的,但它为用户保存永久性的图书属性提供了一个临时的输入接口。
3.登录图书信息控制类
编号:A—l—03
类名:登录图书信息控制类
职责:实现登录图书界面类与图书表类所提供信息的交互。
属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,出版年份,页数,价 格,购人日期,过期日期,书架代码,备注
说明:该类的所有属性是非持久性的,但它为用户保存永久性的图书属性提供了一 个临时的输人接口。
4.出版社表类
编号:B—l—01
类名:出版社表
职责:存放图书表所使用的所有图书的出版单位
属性:出版社代码,出版社名称
说明:该类与出版社表之间存在着单向关联的关系。
5.读者表类
编号:C一1一Ol
类名:读者表
职责:存放图书馆的所有读者的基本信息
属性:读者代码,读者名,联络电话
说明:该类类描述了物理借阅者的信息,代表了系统中存储的物理借阅者的信息,即物理借阅者在系统中的账户。同时,读者表又是图书借阅表的组成成分之一。
6.图书借阅表类
编号:D—l—01
类名:图书借阅表
职责:存放图书馆所能处理的所有图书的基本信息
属性:图书代号,读者代号,借书日期,还书日期,说明:该类描述了从图书馆借阅图书的借阅记录。一个该类的对象对应一个借阅者和一本图书。该类的对象的存在表示借阅者借阅了借阅记录中记录的物理图书。当图书被归还时,要删除借阅记录(对象)。
形成系统分析规约(注意规约可能会有活动图、状态图等)
3.系统设计
设计模型的主要工作: 1).软件平台设计
软件平台是系统开发和运行的环境。图书管理系统的开发和运行环境如下:
· 操作系统——操作系统是计算机系统中最重要的系统软件。图书管理系统可以运行在Windows 95/98/2000/NT/Windows XP等桌面操作系统上。
· 支撑软件——支撑软件是协助人们开发和维护软件的工具和环境软件。数据库系统、集成开发环境等都属于支撑型软件,例如,Delphi、Oracle、Java等。图书管理系统使用的DBMS是Access 2003,数据库中间件是JDBC。
· CASE平台——采用CASE开发环境可保证系统开发质量,提高开发效率,保证文档的一致性。图书管理系统的分析、设计j实现和部署模型是在Rose 2003建模环境下创建的,清晰地表达了在不同的开发阶段的系统模型。2).结构设计
结构设计是把软件分解成为多个子系统,并确定出由各子系统及其接口构成的软件结构。子系统是对软件分解的一种中间形式,也是组织和描述软件的一种方法。由多个子系统构成系统软件,每一个子系统又包括多个用例设计、设计类和接口。结构设计具体要做的工作是将系统划分成相对独立、功能相对完整的子系统(包),将系统模型中的元素划分到不同的包中,说明在什么地方定义包,各个包之间的依赖性和主要通信机制。从而得到尽可能简单和清晰的结构,各部分之间的依赖尽可能的少,并尽量减少双向的依赖关系。3).详细设计与界面设计
详细设计是对软件结构中确定出的各个子系统内部的设计,需要分析和确定每一个子系统中的用例设计、设计类和接口。详细设计还要描述每个类的细节,并用动态模型描述类的实例在具体环境中的行为。
界面设计是对人和外部系统与系统之间交互界面的设计,包括输入界面、输出界面和输入/输出界面的设计。另外,界面设计还涉及到人机交互方式、人机交互流程、输入输出设备和媒体等内容。4).数据库设计
数据库是系统存储和管理数据的主要技术手段,数据库设计的任务是根据给定的系统应用需求和系统环境,设计出合理的数据库结构。数据库设计可分为概念设计、逻辑设计和物理设计3个阶段。用UML进行数据库设计的主要思想,是利用UML的扩展机制定义一些版型,用于表示与数据库相关的一些概念。Rose 2003提供了对数据库设计的支持,所设计的模型可以直接生成具体数据库中的表、触发器、存储过程等。
系统结构设计
系统框架视图
· 用户界面包(User Interface Package)——用于描述整个用户界面使用的类,这些类提供的操作允许用户浏览系统中的数据,允许用户输入新数据。用户界面类基于Java AWT包设计,AWT包是Java语言中用于编写用户界面应用程序的一个标准库。用户界面包与业务模型包相互协作,调用业务模型包中类实例的方法对图书信息进行检索和插入操作。
。业务模型包(Business Model Package)——包含分析阶段主要的类(借阅图书类、归还图书类、图书类、读者类、出版社类)。在设计阶段将进一步细化这些类,从而完整地定义它们的操作,并为它们增加永久性存储支持。业务模型包与数据库包相互协作,访问数据库中的数据。· 数据库包(Database Package)——为业务模型包中的类提供数据存取服务,以便这些类能够实现数据的永久性存储功能。
。组件包(Utility Package)——包含一些可以被系统中其他包所使用的服务。
界面设计
详细设计
图书信息管理详细设计:
1.设计类图
“图书信息管理’’是一个用例,在“图书信息管理”用例所提取的3个概念类的基础上,可以确定该用例有3个设计类:登录图书信息(LoginBook)、修改图书信息(UpdateBook)、检索图书信息(SelectRook)。如图13.2所示为“图书信息管理”用例的设计类图。
“图书信息管理”用例设计类图
·
BpFrame类——属于用户界面包,定义系统检索与修改界面的框架。
·
BpSelectFrame类——属于用户界面包,继承BpFrame类,定义检索界面框架。
·
BpUpdateFrame类——属于用户界面包,继承BpSelectFrame类,定义系统修改界面框架。
·
SelectBook类——属于用户界面包,继承BpSelectFrame类,与DbChoice类相关联,显示图书信息检索界面。
·
LoginBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书信息登录功能。
·
UpdateBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书信息修改功能。
·
DbChoice类——属于组件包,定义了用于数据库操作的实例变量和实例方法。
2.顺序图
为实现用例的功能,每个用例要实现的功能要通过用例中各个类的对象的操作的相互协作完成,这就要在顺序图或协作图中反映各个对象之间的消息调用过程。如图13.3所示为添加的图书ID不重复的情况下“登录图书信息”用例的顺序图。
“登录图书信息”顺序图
3.属性和方法设计
用例设计中识别出了大量的设计类,接下来要详细地设计所识别出来的每一个设计类,即设计类的属性和方法。属性设计应该注意的问题是:一要补充属性分析时没有考虑到的属性,确定属性的全部内容,其中包括属性名、可视性、范围、类型、初始值;二要尽量采用系统采用的程序设计语言的语法规范描述属性。
方法设计包括数据结构设计、算法设计和流程设计。方法设计要注意的是:一要立足于所采用的程序设计语言;二所选用的程序设计语言应该能够提供丰富的数据结构;三要根据所实现的功能确定算法设计;四是可以用程序流程图或活动图来描述流程设计的结果。
如图所示为添加了属性和方法“图书信息管理”用例的设计类图。
添加属性和方法后的“图书信息管理”类图
LoginBook类的属性和方法设计如下:
·
sql属性——定义执行插人操作的SQL命令字符串。
·
chpublish_id属性——定义出版社ID。
·
LoginBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加图书信息界面。
·
cheekInsea()方法——①检查各输入项的输人格式是否正确;②检查图书ID是否重复。
·
makelnsertStmt()方法——定义执行插人操作的SQL命令字符串。
·
afterlnsert()方法——清空登录图书界面的各输入项。
SelectBook类的属性和方法设计如下:
·
sql属性——定义执行插入操作的SQL命令字符串。
·
chpublish_id属性——定义出版社ID。
·
SelectBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供检索图书界面。
·
checkSelect()方法——检查是否输入要检索的图书ID。
·
makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。
·
setSelectedData()方法——显示检索图书的结果。
·
clear()方法——清空图书检索界面各检索项。
UpdateBook类的属性和方法设计如下:
·
sql属性——定义执行插入操作的SQL命令字符串。
·
chpublish_id属性——定义出版社ID。
·
UpdateBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供检索图书界面;③提供修改图书功能。
·
checkSelect()方法——检查是否输人要检索的图书ID。
·
makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。
·
setSelectedData()方法——显示检索图书的结果。
·
clear()方法——清空图书修改界面各修改项。
·
checkUpdate()方法——检查各修改项的修改格式是否正确。
·
makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。
读者信息管理详细设计: 1.设计类图
“读者信息管理”是一个用例,在“读者信息管理”用例确定了3个概念类:添加读者信息、修改读者信息、检索读者信息。但是,该用例的功能相对比较简单。可以用1个设计类Borrow实现这3个概念类的功能。如图所示为“读者信息管理”用例的设计类图。
图13.5 “读者信息管理”用例设计类图
· Borow类——属于业务模型包,继承BpupdateFrame类,实现读者信息添加修改和检索功能。
2.顺序图
如图13.6所示为添加的读者ID不重复的情况下“添加读者信息”用例的顺序图。
“添加读者信息”顺序图
通过分析如图所示的顺序图,可以得到下图所示为“读者信息管理”用例的设计类图。
图优化后的“读者信息管理”用例设计类图
3.属性和方法设计
如下图所示为添加了属性和方法“读者信息管理”用例的设计类图。
添加属性和方法后的“读者信息管理”类图
Borrow类的属性和方法设计如下:
· sql属性——定义执行插入操作的SQL命令字符串。
· Borrow()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加、修改和检索读者信
息界面。
· checkSelect()方法——检查是否输入要检索的读者ID。
· makeSeleetStmt()方法——定义执行检索操作的SQL命令字符串。
· setSelectedData()方法——显示检索读者的结果。
· ehecklnsert()方法——检查是否可执行插入操作。
· makeInsertStmt()方法——定义执行插入操作的SQL命令字符串。
· afterlnsert()方法——清空各输入项。
· checkUpdate()方法——检查是否可执行修改操作。
· makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。
· checkData()方法——检查各输入项的输人格式是否正确。
· clear()方法——清空各文本框。
出版社信息管理详细设计: 1.设计类图
“出版社信息管理”是一个用例,可以用1个设计类Publish实现添加出版社信息、修改出版社信息、检索出版社信息3个概念类。如图13.9所示为“出版社信息管理”用例的设计类图。
图13.9 “出版社信息管理”用例设计类图
· Publish类——属于业务模型包,继承BpUpdateFrame类,实现出版社信息添加、修改和检索功能。
2.顺序图
如图13.10所示为添加的出版社ID不重复情况下“添加出版社信息”用例的顺序图。
图13.10 “添加出版社信息”顺序图
3.属性和方法设计
如图13.1l所示为添加了属性和方法“出版社信息管理”用例的设计类图。
图13.11 添加属性和方法后的“出版社信息管理”类图
Publish类的属性和方法设计如下:
· sql属性——定义执行插入操作的SQL命令字符串。
· Publish()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加、修改和检索出版社信息界面。
· checkSelect()方法——检查是否输入要检索的出版社ID。
· makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。· setSelectedData()方法——显示检索出版社的结果。· checklnsert()方法——检查是否可执行插入操作。
· makeInsertStmt()方法——定义执行插入操作的SQL命令字符串。· afterInsert()方法——清空各输人项。
· checkUpdate()方法——检查是否可执行修改操作。
· makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。· checkData()方法——检查各输入项的输人格式是否正确。· clear()方法——清空各文本框。
图书借还信息管理详细设计: 1.设计类图
“图书借还信息管理”是一个用例,在“图书信息管理”用例所提取的4个概念类的基础上,可以确定该用例有4个设计类:借阅图书(BorrowBook)、归还图书(RetumBook)、借出图书一览表(BorrowBookList)和未按期归还图书一览表(OverdueList)。如图所示为“图书借还信息管理”用例的设计类图。
图“图书借还信息管理”用例设计类图
· BorrowBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书借阅功能。
· ReturnBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书归还功能。
· BorrowBookList类——属于业务模型包,继承BpSelectFrame类,与DbChoice类相关联,显示借出图书清单一览表。
· OverdueList类——属于业务模型包,继承BpSelectFrame类,与DbChoice类相关联,显示未按期归还图书与读者清单一览表。
2.顺序图
如图所示为读者ID与图书ID都存在情况下的“借阅图书”用例的顺序图。
“登录图书信息”顺序图
3.属性和方法设计
如图所示为添加了属性和方法“图书借还信息管理”用例的设计类图。
添加属性和方法后的“图书借还信息管理”类图
BorrowBook类的属性和方法设计如下:
· sql属性——定义执行插入操作的SQL命令字符串。
· BorrowBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加图书信息界面。· checklnsert()方法——①检查各输入项的输入格式是否正确;②检查借阅图书ID是否存在。
· makeInsertStmt()方法——定义执行插入操作的SQL命令字符串。
· afterInsert()方法——清空借阅图书界面的各输入项。
· checkSelect()方法——检查是否输入读者ID和图书ID。
· makeSelectStmt()方法——显示检索结果。
· checkDelete()方法——检查是否可执行删除操作。
· makeDeleteStmt()方法——定义执行删除操作的SQL命令字符串。
· afterDelete()方法——清空删除操作后的各输入项。
· clear()方法——清空所有的文本框。ReturnBook类的属性和方法设计如下:
· sql属性——定义执行插人操作的SQL命令字符串。
· RetumBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供图书归还界面。
· checkUpdate()方法——检查各修改项的修改格式是否正确。
· makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。· afterUpdate()方法——清空所有的文本框。BorrowBookList类的属性和方法设计如下:
· sql属性——定义执行插入操作的SQL命令字符串。
· BorrowBookList()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供实现“借出图书一览表”功能的界面。
· makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。
· setSelectedData()方法——显示检索结果。OverdueList类的属性和方法设计如下:
· sql属性——定义执行插入操作的SQL命令字符串。
· xOverdueList()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供实现“未按期归还图书一览表”功能的界面。
· makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。
· setSelectedData()方法——显示检索结果。
组件包设计:
组件包包含被所有其他包使用的通用组件,图书管理系统的组件包由Const、DbChoice、BpUtil三个类组成,这三个类定义了系统所有其他类所使用的公共常量与公共方法。另外,IconCanvas(加载系统界面所使用的图标)、MsgDialog(信息显示对话框)、SQLExceptionDialog(显示数据库异常信息对话框)3个类也为系统所有其他类所公共使用。在此与组件包中的类一起进行说明。1.Const类
Const类定义了系统所使用的公共名称等常量,其类图如图所示。
Const类的类图
2.BpUtil类
BpUtil类定义了系统使用的公共方法,其类图如图所示。
BpUtil类的类图
BpUtil类的方法设计如下:
· repeateString()方法——返回指定个数的字符串对象。
· varchar2text()方法——返回按照指定长度调整的字符串对象。
· setComp()方法——在组件上按照CridBagConstraints布局配置Panel。· checkWaming()方法——检查数据库连接操作是否出现异常。· isNumeric()方法——验证字符串能否转换为数值。
· getToday()方法——以YYYY/MM/DD的格式返回今日的日期。
· getToday()方法——返回以今日为基点的指定为YYYY/MM/DD格式的日期。· isYMD()方法——验证能否识别YYYY/MM/DD格式的字符串。· GB2312Unicode()方法——GB2312转换为Unicode。· UnicodeGB2312()方法——Unicode转换为GB2312。
· getRowCount()方法——求数据表中满足条件的记录数。
· convYMD()方法——Java.util.Date类型数据转换为YYYY/MM/DD格式。
3.DbChoice类
DbChoice类定义了用于数据库操作的实例变量与实例方法,其类图如图所 示。
DbChoice类的类图
DbChoice类的属性和方法设计如下:
· con属性——定义用于数据库连接的实例变量。· query属性——定义用于SELECT语句的实例变量。· displayCol属性——定义用于检索结果的列数。
· valueCol属性——定义方法getSelectedVal()返回值的列数。
· vItem属性——定义用于保存方法getSelectedVal()返回值的Vector · DbChoice()方法——构造方法,用于初始化实例变量。· setQueryData()方法——执行检索操作。· getSelectedVal()方法——返回检索结果。· setValueCol()方法——设置列的值。· getValueCol()方法——返回列的值。
· setDisplayCol()方法——设置显示列的值。· getDisplayCol()方法——返回显示列的值。
· setDisplayhem()方法——设置显示项的列的值。4.IconCanvas类
IconCanvas类用于完成加载系统界面所使用图标的功能,其类图如图所示。
IconCanvas类的类图
IconCanvas类的方法设计如下:
· IconCanvas()方法——构造方法,用于完成加载图像文件的功能。· paint()方法——用于完成显示图像文件的功能。5.MsgDialog类
MsgDialog类用于完成显示系统界面所使用的信息对话框功能,其类图如图13.19所 示。
MsgDialog类的类图
MsgDialog类的属性和方法设计如下:
· MsgDialog()方法——构造方法,用于生成信息显示区域,定义信息对话框的标题、布局管理器等功能。
· actionPerformed()方法——用于处理发生的事件。
6.SQLExceptionDialog类
当发生数据库异常时,SQLExceptionDialog类定义了用于显示数据库异常信息对话框,其类图如图所示。
SQLExceptionDialog类的类图
SQLExceptionDialog类的属性和方法设计如下:
· SQLExceptionDialog()方法——构造方法,用于定义发生的SQL异常。· actionPerformed()方法——用于处理发生的事件。· setMessage()、方法——用于显示发生的异常信息。系统管理详细设计:
系统管理由Bookplate和LoginDialog两个类组成,Bookplate类用于显示系统主功能界面,LoginDialog类用于显示用户登录对话框界面。Bookplate类与LoginDialog类之间有单向关联关系,即Bookplate类中定义的实例变量dialog可以调用LoginDialog类的构造函数,以实现系统登录界面的显示,描述两者之间关系的类图如图所示。
“系统管理”用例设计类图
Bookplate类的方法设计如下:
· main()方法——系统执行的入口点,用于显示系统主功能界面。
· Bookplate()——构造方法,用于设置系统框架(Frame)、标题、菜单、按钮布局、标签等系统组件。
· aetionPerformed()——当用鼠标左键点击各功能按钮时,分别调用各个子功能系统,同时实现生成、显示和隐藏对应的框架的功能。LoginDialog类的方法设计如下:
· LoginDialog()方法——构造方法,用于设置用户登录对话框界面的标题、显示信息区域、设置标签和文本域、生成按钮等功能。
· actionPerformed()——当用鼠标左键点击功能按钮时,处理所触发的事件。· getStatus()——返回按钮的状态值。· getUserID()——返回用户ID。· getPassword()——返回用户口令。
数据库设计(表略)
完成设计规约
第三篇:火车购票系统UML类图 时序图 状态图 协作图 活动图 对象.
《UML 面向对象分析》课程 实践项目报告
项目名称: 网上订购火车票系统
项目组成员: 学 号: 班 级: 指导 教师: 2008年 11 月 10 日 目 录 需求分析....................................................................................1 1.1 需求概述............................................................................1 1.2 需求分析............................................................................2 1.3 需求模型(用例图)........................................................6 2 静态模型....................................................................................7 2.1 类图....................................................................................7 2.2 对象图................................................................................9 2.3 包图..................................................................................11 3 动态模型..................................................................................12 3.1 时序图..............................................................................12 3.2 状态图..............................................................................15 3.3 协作图..............................................................................16 3.4 活动图..............................................................................17 4 项目组成员分工说明..............................................................18 5 总结..........................................................................................19 6 参考资料..................................................................................20 1 需求分析 1.1 需求概述
线上预订火车票系统是一款功能强大、操作简便、易维护的、具有良好人机交互界面的线上订票系统,它包括用户管理模块、系统参数设置模块、票务信息模块(提供票价、列车的实时信息)、订票管理模块(提供订票和退订功能)、实时信息提示模块(提供车况、路况、列车晚点等实时信息)、数据管理模块(提供数据备份、数据操作功能)。实现火车票线上预定的自动化的计算机系统,为旅客提供准确、精细、迅速的火车票销售信息和方便、简单的订票功能。
线上预订火车票系统主要是对于订票信息的统一管理,满足了中小型线上订票网站对于用户的管理,订票信息的收集和处理方面的要求。用现代化的方式取代以前的传统模式,更有利于信息的流通,资源的宏观管理。具有体积小,代码简洁,易维护、易修改 的优点。
1.2 需求分析 用户管理模块
用户管理模块包括如下几个部分。
(1)添加用户信息:管理员可以对用户信息进行添加操作。(2)删除用户信息:管理员可以对已有用户信息进行删除操作。
(3)查看用户信息权限:每个用户都具有一定的权限,管理员可以查看用户的管理权限。(4)修改用户信息权限:管理员可以修改用户的管理权限。(5)删除管理权限:管理员在权限管理中可以删除管理权限。(6)添加管理权限:管理员在权限管理中可以添加管理权限。
系统参数设置模块
系统参数设置模块有如下几个部分。
(1)用户信息:管理员可以修改用户信息并保存。(2)订票信息:对订票信息进行添加、删除操作。(3)退订信息:对退订信息进行添加、删除操作。(4)旅客订票记录:对旅客订票记录进行添加、删除操作。
(5)其他信息:对其他信息进行编辑、删除操作。在编辑时可以修改附件存放路径和备份文
件存放路径。
票务信息模块
票务信息模块包括如下几个部分。
(1)车次信息:对车次信息进行添加、删除操作。(2)列车时间信息:对列车时间信息进行添加、删除操作。(3)座位信息:对座位信息进行添加、删除操作。(4)价格信息:对价格信息进行添加、删除操作。(5)车站信息:对车站信息进行添加、删除操作。
订票管理模块
订票管理模块包括如下几个部分。(1)用户注册:注册新用户。(2)用户登录:已注册用户登录。(3)列车信息:浏览可预定车辆信息。(4)车票预订:预定车票。
实时信息管理模块
实时信息管理模块包括如下几个部分。
(1)实时信息查看:在窗口现在最新实时信息。
(2)实时信息更新:对于最新路况、车况信息进行更新。改:对于最新路况、车况信息进行修改。
3)实时信息修(数据管理模块 数据管理模块包括:
(1)数据查看:对所有数据查看。数据恢复:恢复受损数据。
1.3 需求模型(用例图)
(2)数据备份:备份所有数据。3)
((from Logical View 修改票价
(from Logical View
客户先通过网站系统查询各种情况(票的价格,车的情况,以及一些铁路状况),再通过系统数据库给与的实时信息提示去预定想要的火车票,完成订票的过程,客户也可以通过网站系统对自己已经订购的票进行退订手续。
管理员可以通过系统对客户进行管理,查看客户信息,修改客户信息,添加客户信息,以及删除客户信息等等,管理员也可以去修改票务信息,修改变动后的时间以及车票价格等等。静态模型 2.1 类图
旅客(姓名、性别、需求信息、有效证件)
列车班次(发车时间、起点、终点、乘坐人数、价格)火车站(名称、所在地)
订票(票号、班次号、旅客号、票价)管理员(密码、姓名)旅客表
班次表
订火车票表 管理员表
火车站表
2.2 对象图
1.管理员管理顾客信息,管理车票信息。9
2.3 包图
1.创建管理员包,内有管理员类。2.创建顾客包,内有顾客类。3.创建订票包,内有订票类。
4.创建车站包,内有车站类,主要是车站信息。5.创建火车票包,内有车票类,主要为火车票信息。3 动态模型 3.1 时序图 1.客户首先要使用一台已经联网的电脑 2.在网站上搜索票务信息 3.检索票务信息数据库 4.电脑将检索的信息传递给客户 5.客户经查看信息后进行订票 6.客户输入自己的银行账号 7.系统验证账号正确性 8.提交信息并进行缴费 9.系统给客户票务 1.管理员登陆到系统。
2.管理员拥有权限修改票务信息、客户信息、车况信息。3.用户登陆的网站。
4.用户可以查看票务信息、车况信息。5.用户预定火车票
3.2 状态图
1.进入数据库系统页面 2.进入预定车票界面 3.预定成功后退出 4.进入退订车票界面 5.退订成功后退出
6.不能成功预、退车票则退出 3.3 协作图
1.客户首先要连接上网络的电脑
2.客户进行网站搜索,检索有关的票务信息 3.电脑将显示的票务信息给予客户 4.客户再通过查看信息后选择买票 5.客户输入自己的账号 6.验证帐户并提交扣钱
7.电脑将票的代码显示给客户,凭证取票
3.4 活动图 项目组成员分工说明
需求分析阶段是软件开发的最核心的部分,所以受到我们组成员的高度重视,一心想要把分析做得更好,通过网上查阅资料,去图书馆借阅有关的书籍以及课本上的知识,再经过我们组成员三个人之间的默契配合,共同完成了软件的核心部分-----需求分析。
完成了我们所要做的项目的需求分析之后,下面的课程设计可根据需求分析来进行,我们组成员之间开始了进行分工合作,静态模型中的三类图,个人选择自己最擅长的部分开始分工画图。类图模块由组成员倪巧完成,对象图由组成员陈磊完成,包图则由成员时圣云完成。
动态模型的四部分图,我们依然按照分工合作的方式去完成的。时序图由成员倪巧、陈磊共同完成,状态图由成员时圣云完成,协作图由成员倪巧完成,活动图则由成员陈磊、时圣云合作完成的。分工明确,合作良好。
最后的总结由成员倪巧完成,再做了最后的文档的整理。总结 课程设计的体会 课程设计的体会 经过一个星期的上机实践学习,使我对 UML 有了更进一步的认识和了解,要想 学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发 现我的好多不足之处,最主要是自己在 UML 图形正确使用上不够熟悉,通过实践,使我在这个方面的认识有所提高。其次,经过查找资料,调查研究,获取需求以及在这些基础上做出的系统分析,我做出了这个“火车票销售管理系统”说明书。总的来说,这个系统的设计考虑了 大部分要考虑的因素,一些影响不大的因素就没有考虑再内,系统的需求分析中占 相当一部分比例的用例规格说明采用表格的方式,直观,便于理解,不过需求分析 在整体的格式多样性上有所欠缺,这在以后的设计中要吸取教训。通过这次的课程 设计,我不但学到了很多东西,也把原来学的东西理解的更透彻了,特别是把原来 学的不同科目的东西结合起来了,收获很大。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习UML 语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程 中,我会更加注视实践操作,使自己更好地学好计算机。没有实践,学习就是无源之水,无本之木。以上就是我在进行课程设计实训的 心得和感受。19 6 参考资料 [1] 李大友,陈明等 [2] 郑莉, 董渊等 [3] 吴建,汪杰等 版社 [4] 《实用软件工程基础》 《C++语言程序设计》 清华大学出版社 清华大学出版社 人民邮电出 《UML 基础与 Rose 建模案例》 《软件需求》 Soren Lauesen 著 电子工业出版社 20
第四篇:基于UML的图书管理系统的分析与设计
基于UML的图书管理系统的需求分析与设计
摘要:本文对面向对象的概念、UML产生的背景及其基本内容进行了阐述,在对图书馆图书管理系统进行功能描述和需求分析的基础上,结合软件工程和面向对象需求分析,设计了基于UML的用例图、包图和顺序图,状态图等语言机制的图书馆图书管理系统模型。关键词: UML;建模语言;面向对象;需求分析;图书管理系统 1关于面向对象
面向对象是一种的程序设计方法,或者说它是一种程序设计类型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。它可以有不同层次的理解:
(1)从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目。
(2)从方法学的角度可以认为:面向对象的方法是面向对象的世界观在开发方法中的直接运用。它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。
(3)从程序设计的角度来看,面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。
面向对象的方法学包括了以下核心概念:
对象(object):即指现实世界中各种各样的实体。它可以指具体的事物也可以指抽象的事物。
类(class):类是具有相似内部状态和运动规律的实体的集合(或统称、抽象)。类的概念来自于人们认识自然、认识社会的过程。
消息(Message): 消息是指对象间相互联系和相互作用的方式。一个消息主要由5部分组成:发送消息的对象、接收消息的对象、消息传递办法、消息内容(参数)、反馈。
封装:对象间的相互联系和相互作用过程主要通过消息机制得以实现。对象之间并不需要过多的了解对方内部的具体状态或运动规律。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。类是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。在类中定义的接收对方消息的方法称为类的接口。
继承:类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系,以及对属性和操作的共享,即子类可以沿用父类的某些特征。
重载:重载是指类的同名方法在给其传递不同的参数是可以有不同的运动规律。在对象间相互作用时,即使接收消息对象采用相同的接收办法,但消息内容的详细程度不同,接收消息对象内部的运动规律也可能不同。关于UML UML(Unified Modeling Language)是在Booch方法、OOSE方法和OMT方法的基础上演化而来的基于面向对象技术的标准建模语言。它统一了面向对象建模的基本概念、术语和图示符号,描述了建模过程中所必须遵循的基本步骤,提供了一整套描述软件系统模型的概念和图形表示法,可从不同的视角为系统建模。统一建模语言UML是一种语义丰富、通用、可视化的建模语言和事实上的国际工业标准,易于理解和交流。UML提供的丰富的视图从多个视角描述系统的不同侧面,可以有效运用于软件的建模、分析与设计。标准建模语言UML的定义包括UML语义和UML表示法两个部分。UML语义通过其元模型来严格地定义。UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法来建模提供标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。UML的主要内容通常用用例图、类图、对象图、状态图、活动图、构件图、配置图、顺序图、协作图和包图等l0种图来描述,它们从不同的角度和层次为系统建模提供支持,完全可以 描述系统的方方面面。
与传统的软件建模方法相比, UML 有如下一些特点:(1)UML 是一个可视化建模语言, 是一种图形化的面向对象的设计工具语言,而不是可视化程序设计语言,但用UML描述的模型可与各种编程语言直接相连,把UML 模型映射成编程语言。在不同程序中使用同样的UML 图表类型, 因为UML 具有任意程序的独立性,定义一个标准程序不是一个UML 的目标。
(2)UML 是一种可用于详细描述的语言,其所建立的模型是精确、无歧义和完整的。同时UML是一种文档化的语言,对其各建模元素可进行详细说明,并能生成所建模型的文档。标准建模语言UML支持面向对象的分析与设计,定义良好、易于表达、功能强大。它的最大用途是利用图形来描述真实世界各个对象的符合表示,让所有系统设计者在构建系统需求分析、对象模型化定义到对象设计的整个开发过程完全标准化。3 本课题的研究意义
一个图书馆的图书资料库在正常运转中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。图书馆作为一个信息资源的集散地,图书和用户借阅资料繁多,包含着很多的信息数据。以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用人工检查,对借阅者的借阅权限以及借阅天数等采用人工计算、手抄进行,数据信息处理工作量大,容易出错和丢失。因此,建立一个智能化、系统化、信息化的图书资料库是十分重要的。使用计算机软件对图书进行管理,是计算机应用的一部分。充分利用计算机的功能,实现对读者管理、书籍管理等自动化控制,将会使图书资料库的工作强度大大减弱,可以实现图书检索迅速、可靠性高、存储量大、寿命长、成本低,能最大限度地提高图书管理的效率,也是图书管理信息化、正规化管理的必然趋势。4 基于UML的图书管理系统的需求分析与设计过程
图书管理系统的开发和应用主要通过两个步骤来实现:首先是基于系统功能的需求分析,其次是系统模型的设计和实现。
4.1需求分析
需求分析是软件工程过程的一个重要阶段,其中一个主要任务是确定系统的功能需求,采用面向对象方法,基于UML的可视化系统需求分析,因为有用户的积极参与,既可以加快设计者对于问题的理解,又能够在系统描述方面减少语义差异,保证分析的正确性。需求分析的目标就是建立需求模型,即从功能需求出发建立用例模型, UML的用例视图从用户的需求中提取,以盒图的方式描述待开发的系统的功能需求。每个用例都指定了客户的需求即他们需要系统干什么。用例图为设计活动不仅记 录需求而且还提供了一种挖掘的信息, 它记录了需求到设计结果之间的映射关系,能够确保设计结果具有明确的根据或者说具有可维护性,基于UML的软件开发过程是以用例驱动的。
首先我们进行角色识别,角色识别的任务是找出所有可能与系统发生交互行为的外部实体、对象、系统。它们的行为不受系统控制,但是可以提供输入给系统。对于一所大学的图书管理系统,基本的功能是完成图书的借阅和相关信息的管理,服务的对象有本科生,研究生,教师,及其他学校的学生,还有社会人员,这些人可归结为一类即读者。而为帮助读者顺利完成借还书的可以是工作人员,可以是自动借还书机,他们可以归结为一类即图书管理人员。因此对于一个图书管理系统主要有两类角色,读者、图书管理员。
其次,在主要角色的基础上,可以识别出与角色相应的用例,从而得到系统的用例模型。与读者相关的过程包括:借书、还书、预定、图书信息检索、借阅查询(如查询本人借书记录、还书期限、是否超期)、个人相关信息查询及修改(如学号、姓名、性别、年级、专业、家庭住址、联系电话、出生日期、民族、政治面貌、身份证号等)。与图书管理员相关的过程包括:办理借书、办理还书、解除预定、图书订购、读者信息管理(增加/删除读者、修改读者权限及密码、借阅超期罚款)、图书信息管理(增加/删除数目、图书类别等相关信息的修改、流通情况)。系统管理(系统的登陆、退出、日志维护、系统更新)。以上分析中,与读者,图书管理员相关的过程构成了本系统的基本用例。
4.2 系统的整体结构
综上所述一个图书管理系统的整体结构可以分为三大模块:图书管理模块、读者管理模块、系统管理模块。
(1)图书管理模块包括与图书相关的一些过程,主要有图书的借出、图书的归还、预定、图书信息检索、图书订购、图书相关信息管理。
(2)读者管理模块主要包括与读者有联系相关的过程,主要有增加/删除读者、修改读者权限及密码、借阅信息查询、个人信息查询及修该、借阅超期和丢失罚款。
(3)系统管理模块包括系统的登陆、退出、系统维护、系统更新。综上我们画出系统的整体结构,如图一所示:
图书管理系统图书管理读者管理图一 图书管理系统的整体结构
系统管理 4.3 图书管理系统的用例图
从以上分析中我们不难得出系统的基本用例图,如图二所示:
借书/还书预定/解除预定图书检索图书信息管理图书订购借阅信息查询个人信息查询/修改读者信息管理 读者借阅超期罚款 图书管理员系统管理图二 系统的基本用例图
图书管理和图书管理是图书管理系统的重要组成部分,为此我们按照前文所述将图书管理模块和读者模块以及系统管理模块详细精化得出如下的用例图,如图
三、图
四、图五所示:
按年代查询图书借入借出管理出版社查询图书购入作者查询图书查询书名查询图书管理模糊查询图书管理员图书信息管理类别查询信息删除信息添加
图三 图书管理模块的用例图
信息修改增加/删除读者修改权限个人信息查询/修改图书管理员读者管理读者借阅信息查询读者办理挂失图四 读者管理用例图
超期/丢失罚款
登陆/退出软件更新系统管理系统更新 管理员系统维护硬件更新日志维护 图五 系统管理模块的用例图
4.4 图书管理系统的行为图
我们再进行动态建模分析。对于图书管理系统借书还书是两个重要的过程,我们先来分析一下借书、还书的一般过程,并由借书的一般过程画出其顺序图、协作图以及活动图。
(1)借书的过程:读者刷卡进入图书馆,或者先查询图书及个人借阅信息,或者直接去挑选图书,选择好图书后进入借书程序,管理员先检查读者的借书证件,查验能否借阅,比如:证件是否无效或书籍是否已经借满等,即检验其借书的合法性和有效性,如果是非法用户或借书数量范围外,则该读者不能借阅图书。如果满足借阅要求,则再获取所借书的标题以进行库内搜索,获取书目查询此书的数量,看是否还有此书,如果没有则阻止其他借书者可能进行的预订活动,将此书借出,根据书号将此书的借阅标志位取反以表示此书已借出,并将此书的书目减1。并为此读者记录借阅日期,以及归还日期,在归还日期内未能归还和续借的,并为其记录超借天数及罚款数额。
(2)还书过程:在返还图书的过程中,管理员首先获取读者的借阅信息和被归还的书籍的信息,如书标题信息,数量等,并一一审核每本书的归还日期是否超过应归还日期。在完成阶段,将此书的书号登记并设计标志位为已归还,以便读者网上预订和继续借阅,同时将此类图书的数量加1,如果读者超期或丢失所借书籍,则要进行赔偿处理。
所以我们不难画出借书一般过程的顺序图,如图六所示:
图书管理员读者信息图书信息修改图书借出刷卡进入并选书核对读者信息 图书扫描并消磁修改读者借阅信息图六 借书一般过程的顺序图
有顺序图可得到协作图,如图七所示。仔细分析借书过程的细节,可以画出如图八所示的活动图,它表示了复杂算法的过程,尤其是过程中的判断、并发和同步。
刷卡进入 读者挑选图书图书管理员 核对信息图书信息修改图书扫描 消磁读者借阅信息 修改读者信息图书借出
图七 借书一般过程的协作图
读者 管理系统N禁止入内刷卡是否为本馆服务对象Y输入卡号/密码选择图书N卡号密码正确?Y个人信息查询/修改Y借阅信息查询图书检索刷条形码显示读者相关信息能否借阅N确定借书NY刷图书条码更改改读者及图书的借阅信息退出是否借阅完毕YN图八 借书过程活动图
以上我们用多种语言机制分析了读者的主要相关事件流,下面我们绘制图书管理员使用系统的状态图分析图书管理员的主要事件流。从以上分析可知,图书管理员相关的过程包括:办理借书、办理还书、解除预定、图书订购、读者信息管理(增加/删除读者、修改读者权限及密码、借阅超期罚款)、图书信息管理(增加/删除数目、图书类别等相关信息的修改、流通情况)。由此我们可绘制如图九所示的图书管理员使用系统的状态图:
登陆关闭办理借书修改图书信息办理还书增加数目图书预留取消增加加读者解除预定删除读者查询数目存储信息修改读者权限查询读者信息图九图书管理员使用系统的状态图
4.5 图书管理系统的静态图
定义并描述了各个类后,我们可以根据实际情况引入包来管理类,本图书馆管理系统可以划分为四个包:用户管理:对系统用户进行管理,为用户提供信息服务接口,便于对系统进行操作。借阅管理包括借书处理,还书处理和罚款处理等。读者管理包括对读者图书等信息进行维护,主要有读者信息的增删,对图书更新资料进行维护。系统服务:包括系统登录检查,安全维护等。系统的包图如图十所示:
用户管理借阅管理读者及图书管理系统服务 图十 系统包图 4.6 图书管理系统的实现
经过系统分析和设计后,就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行系统。进而需要对系统进行测试和排错,保证系统符合预定的要求,获得一个无错的系统实现。测试结果将确认所完成的系统可以真正使用。参考文献
[1] 齐治昌.谭庆平.宁洪.软件工程.北京:高等教育出版社 [2] 张海藩.软件工程.北京:人民邮电出版社
[3] 董翔.基于UML的图书管理系统的开发和应用.科技情报开发与经济2008年第l8卷第l2期 [4] 吴开华.邢养晓.罗德撤
.数字图书馆元数据研究[J].中国图书馆学报,2002,(3).
[5] 刘治国.构建基于B/S结构的图书管理系统[J].信息技术,2005(3):72—73. [6] 管斌.袁国忠 译.用例驱动的UML对象建模应用-范例分析.北京:人民邮电出版社 结束语
本文以一个图书馆图书管理系统开发为背景,针对图书馆对图书资源进行有效利用和管理的功能需求,采用统一建模语言(UML)对图书资源进行面向对象的描述,通过利用统一建模语言UML中的各种图形,分析和设计图书管理系统,建起了图书管理的面向对象模型,探讨了基于UML的体系结构建模及其实现问题。由建模过程可以看出UML在体系结构建模方面存在很好的优势,不但从整体上正确描述了该图书管理系统的体系结构,并且可以充分利用UML面向对象的优势,从而实现整个软件系统面向对象的分析、设计与开发,大大缩短开发周期,最终使得项目成功完成,此管理系统节省了管理人员和读者的大量时间,有利于信息处理效率的提高。鉴于篇幅有限,本文只对主要部分和主要过程做了介绍,限于水平,欢迎各位读者对本文的缺点、错误提出批评。
第五篇:uml图书管理系统需求分析与设计
图书馆图书管理系统的需求分析与设计
一、本课题的研究意义
一个图书馆的图书资料库在正常运转中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。图书馆作为一个信息资源的集散地,图书和用户借阅资料繁多,包含着很多的信息数据。以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用人工检查,对借阅者的借阅权限以及借阅天数等采用人工计算、手抄进行,数据信息处理工作量大,容易出错和丢失。因此,建立一个智能化、系统化、信息化的图书资料库是十分重要的。使用计算机软件对图书进行管理,是计算机应用的一部分。充分利用计算机的功能,实现对读者管理、书籍管理等自动化控制,将会使图书资料库的工作强度大大减弱,可以实现图书检索迅速、可靠性高、存储量大、寿命长、成本低,能最大限度地提高图书管理的效率,也是图书管理信息化、正规化管理的必然趋势。
二、图书馆图书管理系统的需求分析与设计过程
图书管理系统的开发和应用主要通过两个步骤来实现:首先是基于系统功能的需求分析,其次是系统模型的设计和实现。
2.1需求分析
需求分析是信息系统设计过程中的一个重要阶段,其中一个主要任务是确定系统的功能需求,并采用面向对象方法,即基于UML的可视化系统进行需求分析。需求分析的目标就是建立需求模型,即从功能需求出发建立图形模型, UML的视图从用户的需求中提取,以图形的方式描述待开发的系统的功能需求。每个图形都指定了客户的需求,即他们需要系统干什么。用图形为设计活动不仅记录需求而且还提供了一种挖掘的信息, 它记录了需求到设计结果之间的映射关系,能够确保设计结果具有明确的根据或者说具有可维护性,基于UML的信息系统设计过程是以建模图形驱动的。
首先我们进行角色的认识,对于一所大学的图书管理系统,基本的功能是完成图书的借阅和相关信息的管理,服务的对象有本科生,研究生,教师,及其他学校的学生,还有社会人员,这些人可归结为一类即读者。而为帮助读者顺利完成借还书的可以是工作人员,可以是自动借还书机,他们可以归结为一类即图书管理人员。因此对于一个图书管理系统主要有两类角色,读者、图书管理员。
其次,在主要角色的基础上,可以识别出与角色相应的用例,从而得到系统的用例模型图。与读者相关的过程包括:借书、还书、预借(想借的书已借出,预定要借的书籍)、图书信息检索、借阅查询(如查询本人借书记录、还书期限、是否超期)、个人相关信息查询及修改(如学号、姓名、性别、年级、专业、家庭住址、联系电话、出生日期、民族、政治面貌、身份证号等)。与图书管理员相关的过程包括:办理借书、办理还书、删除预借对象、图书订购、读者信息管理(增加/删除读者、修改读者权限及密码、借阅超期罚款)、图书信息管理(增加/删除数目、图书类别等相关信息的修改、流通情况)。系统管理(系统的登陆、退出、日志维护、系统更新)。以上分析中,与读者,图书管理员相关的过程构成了本系统的基本用例。
2.2 系统的整体结构
综上所述一个图书馆图书管理系统的整体结构可以分为三大模块:图书管理模块、读者管理模块、系统管理模块。
(1)图书管理模块包括与图书相关的一些过程,主要有图书的借出、图书的归还、预借、图书信息检索、图书订购、图书相关信息管理。
(2)读者管理模块主要包括与读者有联系相关的过程,主要有增加/删除读者、修改读者权限及密码、借阅信息查询、个人信息查询及修该、借阅超期和丢失罚款。
(3)系统管理模块包括系统的登陆、退出、系统维护、系统更新。综上我们画出系统的整体结构,如图一所示:
图一 图书管理系统的整体结构
2.3 图书管理系统的用例图
从以上分析中我们不难得出系统的基本用例图,如图二所示:
图二 系统的基本用例图
图书管理和图书管理是图书管理系统的重要组成部分,为此我们按照前文所述将图书管理模块和读者模块以及系统管理模块详细精化得出如下的用例图,如图
三、图
四、图五所示:
图三 图书管理模块的用例图
图四 读者管理用例图
图五 系统管理模块的用例图
2.4 图书管理系统的交互图
协作图