第一篇:仓库管理系统系统分析与设计UMLDOC
题目:仓库管理系统的分析与设计
姓名:徐昊学号:12427002 班级:软件121
目录
一、需求分析.................................................................3
1.1系统总功能需求........................................................3 1.2 用户登录功能需求.....................................................3
1.2.1用户登录功能的模块图:..........................................3 1.2.2用户登录功能流程图:............................................4 1.3 仓库管理功能需求.....................................................5
1.3.1仓库管理功能模块................................................5 1.3.2仓库进货流程图..................................................6 1.3.3仓库退货流程图..................................................6 1.3.4仓库领料流程图..................................................6 1.3.5仓库退料流程图..................................................7 1.3.6仓库盘点流程图..................................................7 1.4 查询功能需求.........................................................7
1.4.1查询功能模块....................................................7 1.4.2库存查询流程图..................................................8 1.4.3出入库查询流程图................................................8
二、仓库管理系统系统的建模...................................................8 2.1 用例图的建立.............................................................8
2.1.1操作员的用例图:................................................8 2.1.2管理员用例图:..................................................9 2.1.3总用例图:.....................................................10 2.2 时序图的生成.......................................................10
2.2.1仓库盘点时序图:...............................................10 2.2.2仓库管理时序图:...............................................11 2.2.4查询时序图:...................................................12 2.3 活动图的生成......................................................12
2.3.1入库活动图:...................................................12 2.3.2出库活动图:...................................................13 2.3.3查询活动图:...................................................14
三、类图的生成..............................................................1
5一、需求分析
1.1系统总功能需求
仓库管理系统可以分成三个功能模块,分别是用户登仓库管理、查询功能。本系统主要实现对仓库物资的管理,包括商品的入库、出库,并可根据需要查询仓库使用记录。
仓库管理系统用户登录仓库管理查询功能
1.2 用户登录功能需求
1.2.1用户登录功能的模块图:
用户登录用户登录退出系统用户注销
由用户登录、用户注销、退出系统 3个部分组成。用户可以用两种身份登录本系统..普通操作员或经理,管理人员。不同身份登录被系统授予不同的使用权限,这样提高了本系统的安全性,避免了无关人员获取不在他权限范围内的信息。用户在登录后可以不退出本系统,而采用用户注销的方式使系统不存在激活状态下的用户。
(1)用户登录:
用户根据用户名、密码登录进系统进行操作。(2)用户注销:
注销当前用户,但不退出系统。(3)退出系统:
用户退出系统。
1.2.2用户登录功能流程图:
输入用户名密码判断是否正确登陆成功
1.3 仓库管理功能需求
1.3.1仓库管理功能模块
仓库管理仓库进货仓库退货仓库领料仓库退料仓库盘点
仓库管理系统中.,包括仓库进货、仓库退货、仓库领料、仓库退料和仓库盘点 6个功能模块组成。仓库管理系统是整个仓库信息系统的核心..是所有数据的来源。用户通过本系统的使用..可以使仓库的空间得以优化,减低无效和冗余的作业,使库存精度更准确,库 存周转率提高及库存资金占用减少。
(1)仓库进货:
本功能要求操作员输入进货的货物型号以及数量,并更新到数据库当中,打印出报表。
(2)仓库退货:
本功能可以实现退货的功能,要求操作员填写退货信息,更新到数据库中,并且打印报表。
(3)仓库领料:
本功能实现工厂的职工从仓库中领料的功能,更新到数据库中,并且打印报表。
(4)仓库退料:
本功能实现工厂的职工从仓库中退料的功能,更新到数据库中,并且打印报表。
(5)仓库盘点:
本功能实现对仓库中货物信息的查询。
1.3.2仓库进货流程图
填写进货单进货更新数据库生产进货报表
1.3.3仓库退货流程图
填写退货单退货更新数据库生产退货报表
1.3.4仓库领料流程图
填写领料单领料更新数据库生产领料报表6
1.3.5仓库退料流程图
填写退料单退料更新数据库生产退料报表
1.3.6仓库盘点流程图
填写盘点货物盘点更新数据库生产盘点货物报表
1.4 查询功能需求
1.4.1查询功能模块
查询库存查询出入库查询
(1)库存查询:
本功能实现管理员对仓库商品库存的查询,由管理员填写查询请求,并有数据库返回查询结果。
(2)出入库查询:
本功能实现管理员对仓库货物出入库立即记录的查询,由管理员填写查询要求,由数据库返回查询结果。
1.4.2库存查询流程图
输入查询条件到数据库查询生成查询信息
1.4.3出入库查询流程图
输入查询条件到数据库查询生成查询信息
二、仓库管理系统系统的建模
2.1 用例图的建立
2.1.1操作员的用例图:
仓库领料用户登录仓库进货退出系统仓库退货操作员用户注销仓库退料
2.1.2管理员用例图:
供应商信息维护用户登录仓库信息维护用户注销仓库盘点管理员退出系统库存查询仓库历史记录查询 9
2.1.3总用例图:
仓库进货商品领料人商品调拨仓库退货仓库盘点仓库信息维护仓库领料库存查询操作员商品供应商管理员业务分析商品退料用户注销退出登录用户登录供应商信息维护仓库历史记录查询商品退料人
2.2 时序图的生成
2.2.1仓库盘点时序图:
操作员管理员商品盘点模块信息打印模块
1、盘点信息
2、审核后盘点信息
3、盘点信息列表
4、盘点信息打印表
2.2.2仓库管理时序图:
操作员管理员进货模块退货模块进货进货清单进货报表退货退货清单退货报表
2.2.4查询时序图:
管理员历史记录查询模块退换货模块库存信息模块查询条件查询信息退换货信息查询条件查询信息库存信息
2.3 活动图的生成
2.3.1入库活动图:
进货输入名称输入型号入库填写进货单
存储信息 2.3.2出库活动图:
核对领料单重新填写领料单失败取消查询库存取消发放物料成功不满足进货进货满足更新库存存储信息
2.3.3查询活动图:
输入查询条件查询输出查询结果继续查询存在取消
三、类图的生成
供应商-供应商ID供应零件名称1...n管理1操作员-姓名-年龄-性别-工作号+修改()管理员管理1...n1-姓名-年龄-性别-工作号+修改()1...n1..n1...n1...n入库单领料单-时间-操作员ID-数目-价格+填写()+查询()+更改()物料汇总表+增加()+删除()+查询()-时间-数量-使用部门+填写()+查询()+更改()物料-名称-型号-库存量
第二篇:仓库管理系统课程设计 UML
无锡职业技术学院实践环节材料撰写用纸
二、仓库信息管理系统分析与设计
(一)《仓库信息管理系统》的需求建模
1、需求分析
仓库信息管理系统要能完成以下功能:
仓库存放的货物品种繁多,堆存方式以及处理方式也非常复杂,随着业务量的增加,仓库管理者需要处理的信息量会大幅上升,因此往往很难及时准确的掌握整个仓库的运作状态。针对这一情况,为了减轻仓库管理员和操作员的工作负担,此系统在满足仓库的基本管理功能基础上发挥信息系统的智能化。
根据要求可将系统分为四个模块(1)用户登录模块
普通操作员和管理人员登录此系统,执行仓库管理的一些操作,但是普通操作员和管理人员所能执行的功能不一样。(2)仓库管理模块
管理员工作需要登陆系统,才能够进行操作,系统中的各项数据都不允许外人随便查看和更改,所以设置登陆模块是必须的。可以执行仓库进货,退货,领料,退料;商品调拨,仓库盘点等功能。(3)业务查询模块
在用户登录系统后,可以执行库存查询,销售查询,仓库历史记录查询。
(4)系统设置模块
显示当前仓库系统中的信息,在系统中可以执行供应商设置,仓库设置。
2、功能模块分析(1)登录模块
普通操作员:显示当天仓库中的所有库存的信息。 管理员:修改仓库中的库存信息。
用户注销:在用户执行完仓库功能时,注销。 用户退出。(2)管理模块
仓库库存的进货与退货;
仓库中的库存需要领料和退料功能;
仓库也可以完成不同地区的商品在此仓库的商品调拨任务; 用户人员也可以在当天之后对仓库中的库存进行盘点。(3)查询模块
显示当前仓库商品信息,并执行库存查询; 显示仓库信息,对商品的销售量进行查询; 此系统还可以对仓库历史记录进行查询。(4)设置模块
供应商设置 仓库设置
3、工作内容及要求
进一步细化需求分析的内容,识别出系统的参与者,并完成用例图; 无锡职业技术学院实践环节材料撰写用纸
将用例图中的每个用例都写成相应的事件流文档;
进一步使用活动图来描述每个用例,为后续的系统设计做好准备;
按照系统的功能分析,从用例的描述中提取出系统的对象类和界面类,建立类图;
分析类图中的实体类和实体类之间的关系,画出数据库的逻辑模型图(只包含实体类,且注明角色和阶元)。
对数据库的逻辑模型进行优化,取消多对多的联系,完成最终的逻辑模型设计; 使用交互作用图或状态机图完成系统动态行为的建模。(建议使用顺序图按功能分别描述)
4、创建SRS文档:
引言
仓库管理系统将24小时为用户服务。 用途
SRS文档将作为SDLC设计和编码阶段的输入。 作用域
管理员直接对系统进行管理。 功能性需求
操作员需要取得管理员的认可才可以登录此系统。 操作员可以查询库存的信息。
系统管理员可以管理登录系统以后对仓库进行管理
因为不是每个人都可以随便修改系统的,所以系统管理员可以登录进系统以后对用户的权限信息进行管理。
界面需求
界面应该清晰易懂。 运行环境
此系统可以在网络上进行运行。 无锡职业技术学院实践环节材料撰写用纸
用例图如下:
分析:操作员在进行验证后登陆系统,可以执行商品的进退货的记录信息的查询与管理等操作。
用户登录**仓库领料仓库进货**退出系统****商品调拨**操作员****用户注销*仓库退料*仓库退货c
图1 操作员用例图
分析:此用户是管理员,可以对仓库信息进行维护,仓库商品进行盘点,业务分析,历史记录查询,供应商信息维护和仓库查询操作。
无锡职业技术学院实践环节材料撰写用纸
仓库信息维护用户登录****用户注销******管理员***退出系统仓库盘点*仓库查询**供应商信息维护*业务分析历史记录查询*
图2 管理员用例图
分析:该用户为供应商,可以对执行仓库进货和退货的查询与管理操作。
仓库进货***商品供应商*仓库退货
图3 供应商用例图
(二)《仓库管理系统》的静态建模
静态建模用于描述软件的静态成分,又叫结构建模。它包含类关系图和对象关系图。用于描述软件系统的成分之间的关系和依赖性。1)类的分析与设计
确定初始类图 提取类的属性 提取类的操作 无锡职业技术学院实践环节材料撰写用纸
类之间的关系
去除不必要的类和不正确的类:
1.冗余类:若两个类表述同一信息,保留最具有描述能力的类; 2.不相干的类:去掉与问题没有多少关系和根本不相关的类;
3.模糊类:类必须是确定的,有些临时类边界定义不对,或范围太广,应排除; 4.属性:如果有些名词是用来描述某个类的,那么它一定是这个类的属性。5.操作:如果所描述的操作并不适用于对象并且被自身所操作,那么这一定不是类。这样可以得到相关的三种类关系: 人员信息包类图 接口信息包类图 系统事务信息包类图 2)确定类之间的关系
两个类之间的相互依赖就是关联,关联常用描述性动词或动词组来表示,其中有物理位置的表示、传导的动作、通信、所有者关系及条件的满足等等。通过以上方法可以确定类图:
① 人员信息包类图里包含:操作员类、管理员类、供应商类、商品进货模块类、商品退换模块类、商品打印模块类、库存查询模块类、商品盘点模块类、历史信息查询模块类和商品调拨模块类。
无锡职业技术学院实践环节材料撰写用纸
**操作员-姓名-id号-权限+仓库进货()*+仓库退货()+仓库领料()+仓库退料()+商品调拨()*+用户登录()+用户注销()+退出系统()+盘点信息打印报表()+进货商品打印报表()*+退换商品打印报表()+商品库存信息()**商品进货模块+商品清单()+退货清单()+查询信息()库存查询模块**商品打印模块*
图4 人员信息包类图
供应商-供应商姓名-供应商id号-联系方法+进货()+退货()*1管理员-姓名-id号-权限+供应商信息维护()+仓库信息维护()+盘点信息()+仓库查询()+业务分析()+用户注销()+退出系统()+历史记录查询()+用户登录()+查询结果()*历史信息查询模块*+查询条件()+进货记录()+商品调拨记录()+商品盘点信息()*********商品退换模块*商品盘点模块*+审核后盘点信息()+查询信息()**商品调拨模块+查询信息()+查询条件()*+盘点信息列表()8 无锡职业技术学院实践环节材料撰写用纸
② 接口信息包类图里包含:用户登录类、仓库管理类、系统管理类和业务查询类。
仓库管理+仓库进货()+仓库退货()+仓库领料()+仓库退料()+仓库调拨()+仓库盘点()用户登录+用户登录()+用户注销()+退出系统()系统设置-供应商设置-仓库信息维护业务查询+库存查询()+业务分析()+历史记录查询()
图5 接口信息包类图
③系统事务信息包类图包含:用户登录类、供应商管理类、业务分析类、查询历史信息类、仓库信息维护类、领料类、退料类、退换类、盘点类、调拨类和仓库查询类。
无锡职业技术学院实践环节材料撰写用纸
调拨供应商管理-该操作id号-日期-管理员id号+增加供应商()仓库信息维护-该操作id号-日期退料用户登录-该操作id号-登录日期-登录人id-name+用户登录()+用户注销()+退出系统()退货-交易id-日期-操作员-交易id-日期-退料人-操作员仓库查询-该操作id-日期领料-交易id-日期-领料员-操作员查询历史信息-该操作id-日期业务分析-操作id号-日期-管理员id+opname()盘点-交易id-日期-管理员id-仓库id
图6 系统事务信息包类图
(三)《仓库管理系统》的动态建模
在完成静态建模后,需要对系统实现动态建模。需要创建
活动关系图:表示系统的静态成分为了完成过程需要执行的活动的顺序;
交互关系图:表示软件系统静态成分之间的交互,常用序列关系图和通信关系图。(1)活动关系图
活动关系图是用来对特定过程的控制流进行建模。
分析:管理员在登录系统后,查看销售记录和查看商品库存情况,如果缺货就通知操作员缺货商品清单,操作员即可联系供应商按缺货清单提供货物,然后管理员更新数据库结束,如果不缺货直接结束。
无锡职业技术学院实践环节材料撰写用纸
通知操作员缺货商品清单查看销售记录联系供应商按缺货清单提供货物查看商品库存情况[ 缺货] 接受货物更新库存数据库[ 不缺货 ]
图7 仓库系统的活动图
(2)交互关系图:通信关系图、序列关系图
①通信关系图以消息的形式表示对象之间的交互。通信图集中在活动着的对象上,表现的是相互通信的对象之间的消息传递,不参照时间。通信图通过在消息上加序号表示消息传递的次序。序列号放在消息之前作为消息的前缀。
注:通信关系图不描绘对象的生命线。A.管理员盘点过程协助图
分析:操作员把盘点信息发送给管理员,管理员审查后盘点信息,在仓库商品盘点模块中盘点信息列表,然后交由信息打印模块打印盘点信息列表,给操作员。
无锡职业技术学院实践环节材料撰写用纸
操作员盘点信息管理员盘点信息打印列表审查后盘点信息商品信息打印模块盘点信息列表商品盘点模块
图8 管理员盘点过程协作图
B.商品管理协作图
分析:操作员通知供应商进货,供应商打印出进货清单,操作员也可以对进货退货进行管理,供应商打印出退货清单。
商品进货进货商印品打报表进货清单操作员退货商品供应商表库存查询商品退换退货清单库存信息进货商品打印报
图9 商品管理协作图 无锡职业技术学院实践环节材料撰写用纸
C.仓库历史记录查询协作图
分析:管理员应该先登录系统。当管理员登录系统以后,可以查询历史信息,看到商品进货、商品盘点、商品调拨的历史记录。
商品进货管理员查询条件历史信息查询进货、退货记录查询条件商品调拨商品盘点图10 仓库历史记录查询协作图
②序列关系图
序列关系图以按时间排序的消息形式来表示对象之间的交互。序列关系图和通信关系图的区别在于通信关系图情调对象的组织结构,而序列关系图则按时间顺序显示对象之间交互的消息。在序列关系图中,可以沿x轴方向排列对象。将启动交互的对象放在最左边。消息序列中后来的对象则放在交互启动对象的右边。在交互中,对象发送和接收的消息按时间升序沿y轴防止。
注:和通信关系图不同,序列关系图描述对象生命线。
A.仓库盘点过程序列图 分析:操作员将盘点信息发送给管理员,管理员审查盘点信息,然后盘点信息列表交给商品打印模块打印后发给操作员执行相关商品操作。
商品盘点信息
无锡职业技术学院实践环节材料撰写用纸
操作员管理员商品盘点模块商品打印模块盘点信息盘点信息列表()审核后盘点信息盘点信息打印报表()
图11 仓库盘点过程序列图
B.商品管理序列图
分析:操作通知商品供应商进货、退货,商品供应商将商品清单和退货商品清单发送给商品进货模块,商品进货模块将进货商品打印报表给操作员,商品退货模块将商品退换报表打印发给操作员,操作员也可以查询库存,库存库存模块将库存查询信息发送给操作员。
无锡职业技术学院实践环节材料撰写用纸
操作员商品供应商商品进货模块商品退换模块进货()商品清单()进货商品打印报表()退货清单()退货()退换商品打印报表()查询条件()商品库存信息
图12 商品管理序列图
C.仓库历史记录序列图
分析:管理员登录系统查询历史信息模块,历史信息则查询商品进货退货模块、商品调拨模块、商品盘点模块,之后各模块将查询得到的信息发送给历史信息模块,最后由历史信息模块统一将信息发给管理员。
无锡职业技术学院实践环节材料撰写用纸
管理员历史信息查询模块商品进货退货模块商品调拨模块商品盘点模块查询信息()查询条件()进货记录()查询信息()商品调拨记录()查询信息()商品盘点信息()查询结果()
图13 仓库历史记录序列图 无锡职业技术学院实践环节材料撰写用纸
(四)《仓库管理系统》的架构建模
架构建模使您能够了解组件在组织网络中的物理分布。您需要对软件系统的架构进行建模以确定组件的设计是否符合软件系统的需要。软件架构描述软件按系统的所有组件以及这些组件之间的关系。要对系统软件的架构进行建模,您需要创建以下关系图:
包关系图:描述根据特定条件分组在一起的软件系统构成。 组件关系图:描述软件系统的可执行构成。
部署关系图:描述软件系统组件的各种处理设备。
a)组件关系图:组件可实现一组接口并构成软件系统的可执行部分。
分析:该图是系统的各个组件图,由系统登录、仓库管理管理、信息查询、系统设置。
仓库管理信息查询系统登录系统设置
图14 组件关系图
b)部署关系图:显示需要在其中部署软件组件的硬件。
分析:下图表明系统采用数据库系统作为后台数据提供者,然后客户登录使用系统,也可以对系统中的信息进行打印操作。
无锡职业技术学院实践环节材料撰写用纸
数据服务器客户机1客户机n打印机
图15 部署关系图
第三篇:UML食堂售饭系统分析与设计
食堂售饭系统分析与设计
目录
1.需求分析与描述.............................................................................1 1.1 需求分析.................................................................................1 1.2 用例分析.................................................................................1 1.3 用例模型图.............................................................................3 1.4 用例事件流描述.....................................................................4 2.领域模型分析...................................................................................7 3.工作流程分析...................................................................................8
食堂售饭系统分析与设计
1.需求分析与描述
1.1 需求分析
持卡人:办理新饭卡,给饭卡充值,注销饭卡,挂失/撤销挂失饭卡,补办新卡,退还饭卡,使用饭卡消费,查看个人消费的明细。 管理部门:通过计算机系统具体实现持卡人需求中的项目。
食堂工作人员:通过自动售饭机输入饭菜的金额,通过计算机系统对当天的营业情况进行汇总统计。
1.2 用例分析
1)系统的边界
对于系统边界,系统首先会包含需求分析中所需要软件实现的各项功能,此外还须确定食堂售饭系统是否包括管理部门和食堂工作人员。
就食堂售饭系统而言,其主要功能是让用户(即持卡人)享受服务(即用饭卡使购买饭菜的过程绕过了付款及找零的环节,提高了服务效率),而管理部门和食堂工作人员的作用都是为了使用户免于对系统的直接操作而设置的,因而此两者应归为食堂售饭系统的内部,相当于用户和具体的计算机软硬件系统之间的接口。
2)系统的执行者
持卡人需要通过食堂售饭系统来使用其所持有饭卡买饭,因而是整个系统的执行者;
管理部门根据持卡人的需求操作计算机系统从而实现与饭卡相关信息的管理,相当于其中饭卡信息管理子系统的使用者,是位于食堂售饭系统内部的执行者;
食堂工作人员同样通过操作计算机系统来实现购买饭菜过程中的扣费
食堂售饭系统分析与设计
功能以及对营业情况进行的汇总统计的功能,相当于其中消费处理与统计子系统的使用者,也是位于食堂售饭系统内部的执行者。
这样得到了系统中的执行者: 持卡人 管理部门 食堂工作人员
3)系统的用例
根据用户需求及执行者的分析,得到系统的用例如下: 办理新饭卡 饭卡充值 注销饭卡
挂失/撤销挂失饭卡 补办饭卡 退还饭卡
查看个人消费的明细
扣除饭卡费用(对应于持卡人使用饭卡消费) 汇总统计
食堂售饭系统分析与设计
1.3 用例模型图
根据前面的分析,可以得到系统的用例模型图,如上图所示。对其中3个执行者和8个用例的简单描述如下:
执行者:
持卡人:饭卡的持有者,通过食堂工作人员的操作直接使用饭卡进行消费,并通过管理部门对其饭卡进行管理。
管理部门:负责根据持卡人的需求操作计算机系统,从而实现办新卡、充值、注销、挂失/撤销挂失,补卡、退卡、查看消费明细等功能。 食堂工作人员:负责根据饭菜的金额操作自动售饭机实现扣费功能,没隔一段时间对营业情况进行汇总统计并打印出相关文档。
食堂售饭系统分析与设计
用例:
办理新饭卡:管理部门人员负责在用户申请新卡时替用户办理新饭卡。 饭卡充值:管理部门人员负责根据持卡人所给的金额向饭卡中追加存款金额。
注销饭卡:管理部门人员负责在持卡人补办新卡或退卡时注销其原有饭卡。
挂失/撤销挂失饭卡:管理部门人员负责在持卡人因饭卡遗失申请挂失时进行挂失饭卡操作,在其找回饭卡时撤销对饭卡的挂失。
补办饭卡:管理部门人员负责在持卡人确认饭卡丢失或者损坏时替其补办饭卡,更改饭卡版本号,并实现只能使用最新版本号的饭卡。 退还饭卡:管理部门人员负责在持卡人申请退卡时清除卡内信息,退还剩余金额和押金。
查看个人消费的明细:管理部门人员负责在持卡人申请查看其消费明细时执行次操作。
扣除饭卡费用:食堂工作人员负责在持卡人持卡消费时根据饭菜的价格对饭卡进行扣费操作。
汇总统计:食堂工作人员负责在每天营业结束后对营业情况进行汇总统计并打印相关报表。
1.4 用例事件流描述
1.办理新饭卡
基本流
1.用户申请办理新饭卡
2.管理部门收取其押金和存款,记录持卡人相关信息 3.管理部门创建新饭卡的相关信息 4.用户领取新饭卡 备选流
无
食堂售饭系统分析与设计
2.饭卡充值
基本流
1.持卡人申请对饭卡充值 2.管理部门向持卡人收取现金
3.管理部门根据持卡人要求向饭卡中充值 备选流
3.a 如果收取现金金额大于充值额度,管理部门向持卡人找零
3.注销饭卡
基本流
1.持卡人申请注销饭卡 2.管理部门注销饭卡 备选流
无
4.挂失/撤销挂失饭卡
基本流
1.持卡人申请挂失/撤销挂失饭卡 2.管理部门执行相应操作 备选流
无
5.补办新卡
基本流
1.持卡人申请补办新卡
2.管理部门注销持卡人原有饭卡,读出余额,清除卡内信息 3.管理部门创建新饭卡的相关信息 4.管理部门更新持卡人的相关信息
食堂售饭系统分析与设计
5.持卡人领取新饭卡 备选流
无
6.退还饭卡
基本流
1.持卡人申请退还饭卡 2.管理部门收回饭卡
3.管理部门将押金退还持卡人并清除卡内信息 备选流
2.a 如果卡内有剩余金额,管理部门想持卡人退还相应金额
7.查看个人消费的明细
基本流
1.持卡人申请查看个人消费的明细 2.管理部门让持卡人输入饭卡密码 3.持卡人查看其消费的明细 备选流
2.a 如果饭卡密码错误,给出提示,结束
8.扣除饭卡费用(对应于持卡人使用饭卡消费)
基本流
1.持卡人购买饭菜,将饭卡放到自动售饭机上 2.食堂工作人员在自动售饭机上输入饭菜的金额 3.自动售饭机查询饭卡余额 4.卡内金额扣除 备选流
3.a 如果卡中金额不够用,给出提示,结束 4.a 如果卡内金额低于底线,给出提示,结束
食堂售饭系统分析与设计
9.汇总统计
基本流
1.食堂工作人员按需求对营业情况进行汇总统计 2.打印相关报表 备选流
无
2.领域模型分析
食堂售饭系统分析与设计
3.工作流程分析
办理新卡
饭卡充值
食堂售饭系统分析与设计
挂失/撤销挂失饭卡
补办饭卡
食堂售饭系统分析与设计
查看个人信息明细
注销饭卡
食堂售饭系统分析与设计
退还饭卡
扣除金额
食堂售饭系统分析与设计
汇总统计
第四篇:图书管理系统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的图书管理系统的需求分析与设计
摘要:本文对面向对象的概念、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面向对象的优势,从而实现整个软件系统面向对象的分析、设计与开发,大大缩短开发周期,最终使得项目成功完成,此管理系统节省了管理人员和读者的大量时间,有利于信息处理效率的提高。鉴于篇幅有限,本文只对主要部分和主要过程做了介绍,限于水平,欢迎各位读者对本文的缺点、错误提出批评。