图书馆管理系统建模设计(基于UML).doc
《图书馆管理系统建模设计(基于UML).doc》由会员分享,可在线阅读,更多相关《图书馆管理系统建模设计(基于UML).doc(21页珍藏版)》请在咨信网上搜索。
图书馆管理系统建模设计(基于UML) ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 图书馆管理系统建模设计 —-—---—基于UML 一、图书馆管理系统需求分析 1.1系统目标设计图 系统开发的总目标是实现内部图书借阅管理的系统化、规范化和自动化。 能够对图书进行注册登记,也就是将图书的基本信息(如:书的编号、书名、作者、价格等)预先存入数据库中,供以后检索. 能够对借阅人进行注册登记,包括记录借阅人的姓名、编号、班级、年龄、性别、地址、电话等信息。 提供方便的查询方法。如:以书名、作者、出版社、出版时间(确切的时间、时间段、某一时间之前、某一时间之后)等信息进行图书检索,并能反映出图书的借阅情况;以借阅人编号对借阅人信息进行检索;以出版社名称查询出版社联系方式信息。 提供对书籍进行的预先预订的功能。 提供旧书销毁功能,对于淘汰、损坏、丢失的书目可及时对数据库进行修改。 能够对使用该管理系统的用户进行管理,按照不同的工作职能提供不同的功能授权。 提供较为完善的差错控制与友好的用户界面,尽量避免误操作. 1。2系统功能需求分析 (1) 读者管理:读者信息的制定、输入、修改、查询,包括种类、性别、借书数量、借书期限、备注等。 (2) 书籍管理:书籍基本信息制定、输入、修改、查询,包括书籍编号、类别、关键词、备注。 (3) 借阅管理:包括借书,还书,预订书籍,续借,查询书籍,过期处理和书籍丢失后的处理. (4)系统管理:包括用户权限管理,数据管理和自动借还书机的管理 满足以上需求的系统主要包含有一下几个子系统 (1)基本业务功能子系统:该系统中主要包含了借书还书和预订等功能。 (2)基本数据录入功能子系统:该子系统主要包含有书籍信息和读者信息录入功能. (3)信息查询子系统:包含了多功能的查询书籍信息和读者信息。 (4)数据库管理功能子系统:主要包含了借阅信息管理功能,书籍信息管理功能和预订信息管理功能。 (5)帮助功能子系统。 下图为该图书馆管理系统的主要功能模块图: 图1:图书馆管理系统功能模块图 1.3功能描述 (1) 借书.处理借书业务。 (2) 还书。处理还书业务. (3) 书籍预订。借阅者可以通过网络进行书籍预订。 (4) 书籍信息录入。处理书籍个类信息录入业务。 (5) 借阅者信息录入。对读者信息进行录入。 (6) 书籍信息查询。负责书籍信息的查询。 (7) 读者信息查询。负责数据信息的查询。 (8) 借阅信息管理。书籍借阅信息包括所借书的书名、ISBN以及借书的时间等。 (9) 书籍信息管理。书籍信息包括书籍的名字、ISBN、作者、入库时间以及书籍在相应书目下的编号等. (10) 预订信息管理.负责管理书籍预订信息。 1.4、图书馆管理系统的数据流图。如下: 显示系统界面 有效用户及密码 处理用户名与密码 输入用户名及密码 用户 输入有效命令 反馈给用户 处理修改密码 修改用户名及密码 处理命令 修改用户表 书籍修改命令 借.还书 书籍入库及修改信息 显示结果 处理借\还书命令 修改书籍信息表 修改借、还书表 图2:图书馆管理系统的DFD图 二、系统的UML建模设计 2。1、UML简介 UML是一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性。 2。2该图书系统的用例管理分析 该图书馆管理系统的用例图如下: 图3:图书馆管理系统的用例图 从用例图中我们可以看出管理员和读者之间对本系统所具有的用例。 管理员所包含的用例有: (1) 登录系统:管理员可以通过登录该系统进行各项功能的操作 (2) 书籍管理:包括对书籍的增删改等。 (3) 书籍借阅管理:包括借书、还书、预订、书籍逾期处理和书籍丢失处理等等. (4) 读者管理:包含对读者的增删改等操作。 (5) 自动借书机的管理. 读者所包含的用例有: (1) 登录系统 (2) 借书:进行借书业务. (3) 还书:读者具有的还书业务。 (4) 查询:包含对个人信息和书籍信息的查询业务 (5) 预订:读者对书籍的预订业务。 (6) 逾期处理:就是书籍过期后的缴纳罚金等。 (7) 书籍丢失处理:对书籍丢失后的不同措施进行处理。 (8) 自动借书机的使用等。 2。3系统的顺序图 顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的.该图书馆管理系统主要含有以下几个重要的顺序图,其他对象的顺序图和这些也类似。 (1) 借书顺序图 (2) 还书顺序图 (3) 罚款顺序图 1、 借书顺序图 图4:图书馆管理系统借书顺序图 【顺序图说明】 (1) login():登录系统. (2) checkstu_card():对读者信息进行验证,检查是否符合本图书馆借书条件。 (3) showinformation():显示该读者的基本信息函数。 (4) borrow():读者借书函数。 (5) getreaders():取得读者信息函数。看该读者是否符合借书条件,若符合,则返回可借信息. (6) gettitle():取得书目信息。 (7) getreservation():检验书籍是否被预订函数. (8) getnoreservation():书籍没被预订或取消预订函数。 (9) create(borrower,item):创建书籍外借函数. 借书时,读者先将书拿予管理员,管理员对书籍和读者进行检验,若书籍和读者都符合借书条件,则借书成功. 2、 还书顺序图 图5:图书馆管理系统还书顺序图 【顺序图说明】 (1) login():登录系统。 (2) getitem():取得书籍条目信息。 (3) update():对图书馆书籍条目和借阅者信息进行更新条目. 还书时,读者先将书交给管理员,由管理员扫描书籍,若书籍没有过期等违规现象,则对书目和读者借阅信息进行更新,同时还书成功。 3、 罚款顺序图 图6:图书馆管理系统的罚款顺序图 【顺序图说明】 管理员对书籍进行扫描,若发现书籍已经超过了图书馆规定的还书期限,则按每天一定金额进行罚款,过期天数和罚款金额由系统自动计算。用户交完罚金后,则对读者借阅信息进行更新。 2.4系统的状态图 图书馆的书籍状态图如图7所示。 【状态图说明】 书籍在未变成图书馆在库书籍时,为新加书籍状态。书籍处于在库状态时既可以预订也可以外借,外借后变为借出状态。处于预订状态时也可以外借,超出预订时间期限则从预订状态直接转为可用状态。借阅者在规定的预订时间内也可以考虑取消预订,取消预订后书籍的状态转为可用。外借书籍归还后变为可用状态. 图7:图书馆的书籍状态图 2.5系统的活动图 活动图描述的是某流程中的任务的执行,活动图描述活动是如何协同工作的,当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事情。。在本图书馆管理系统中,我们主要描述了图书馆系统的借书、还书和预订的活动图. 1。借书活动图 【借书活动图说明】 管理员首先要扫描读者的借书证,检验证件是否符合图书馆借书条件,若该读者的借书数量还未达到最大规定数量,并且其所借书籍均未属于过期范围,则符合借书条件.则再扫描书籍条形码,检查书籍是否是不可借书籍或者已经被预订,若被预订,则取消预订,方可借书。在这些条件都符合时则更新书籍信息和读者的借阅信息,记录好借书的时间. 图8:图书馆管理系统的借书活动图 2、还书活动图 【还书活动图说明】 图书管理员对书籍进行扫描,若书籍已经过期,则要求读者还请欠款才能还书,读者缴应交罚款后,更新书目信息和读者信息。 图9:图书馆管理系统的还书活动图 3、预订图书活动图 【预订书籍活动图说明】 读者先进入系统查询自己所需要的书籍,显示书籍信息,检验书籍是否属于可预订书籍,若符合条件则检查书籍是否已经被预订或已经被外借,若都未成立,则读者登录系统,并对该书籍进行预订. 图10:图书馆管理系统预订书籍活动图 2。6图书管理系统的类图 【类图说明】 (1) reader类是借阅者的类,它的属性很多,包括借阅者的账户ID(reader_id)、姓名(reader_Name)、地址(Address)、班级(class)、所借书籍的书目(borrowed)等。其中主要操作有借书(addborrowed)和还书(deleteborrowed)和预订(reservation)等。 (2) admin类是管理员类,他有编号和姓名属性,操作主要是书籍的增删改和读者的增删改等等。 (3) Title 类是记录书目信息的类,包括书籍的名字(name)、作者(author)、book_id等属性。 (4) Item 类是具体某本书的类,属性包括书籍号(id)。操作包括预订(reserve)、按书目查找(find_on_title)等。 (5) borrow类是某本书的借阅信息类,包括所借阅书籍的ISBN、借阅的时间(date)等。 (6) Reservation类是预订信息类,每个预订信息包括预订日期(date)、所预订书籍的ISBN、预订书籍的用户ID(UserID)等属性. (7) persistent store类是书籍永久的存储类,在数据库中的存储数据,其他对与书籍有关的活动都要经过其存储类。 图11:图书馆管理系统的类图及关系 三、图书馆管理系统数据库建模 考虑到系统的推广性,本系统采用SQL SERVER2000作为数据库。并且采用PowerDesigner进行数据建模,从而自动生成sql脚本。 3.1、数据库概念设计 1、数据库表设计 (1) 管理员表admin:管理员编号(admin_id),管理员姓名(admin_name),密码(admin_password),登录次数(logins),最后一次登录时间(lastlogin)和权限(right)。 (2) 读者表reader:读者编号(reader_id),读者姓名(reader_name),性别(sex),年龄(age),班级(class),最大借书量(maxborrowed)借书总量(amount)和权限(right)。 (3)书籍表books:书籍编号(book_id),书名(title),作者(author),出版社(book concert),价格(price),出版时间(time),在库总量(amount),剩余量(remain)。 (4)借阅信息表(borrow_information):书籍编号(book_id),读者编号(reader_id),借书时间(borrow_time),到期时间(end_time),归还时间(return_time). (5)预订信息表:读者编号(reader_id),书籍编号(book_id),预订时间(reservation_time),取消预订时间(reservationcanceltime). (6) 书籍类型表booktype:书籍类型编号(type_id),书籍类型名称(type_name). (7) 用户权限表right:权限(right)。 2、图书管理系统个实体之间的E—R图 图12:图书馆管理系统各实体之间的ER图 3、基于powerdesigner的CDM数据库模型 (1)数据库概念数据模型CDM对象如下图,该图显示了各实体的属性及各实体之间的关系。 图13:图书馆管理系统CDM建模 3。2数据库物理设计 由概念模型生成物理模型的的数据库脚本文件为 图书管理.sql文件,代码附下页。 附:由PDM对象自动生成的数据库脚本文件代码如下: 21 if exists (select 1 from dbo。sysreferences r join dbo.sysobjects o on (o。id = r。constid and o。type = ’F’) where r.fkeyid = object_id('books’) and o.name = ’FK_BOOKS_管理书籍_ADMIN') alter table books drop constraint FK_BOOKS_管理书籍_ADMIN go if exists (select 1 from dbo。sysreferences r join dbo.sysobjects o on (o。id = r.constid and o.type = 'F') where r。fkeyid = object_id(’borrow_information’) and o.name = 'FK_BORROW_I_BORROW_IN_BOOKS') alter table borrow_information drop constraint FK_BORROW_I_BORROW_IN_BOOKS go if exists (select 1 from dbo.sysreferences r join dbo。sysobjects o on (o.id = r。constid and o.type = ’F') where r.fkeyid = object_id(’borrow_information’) and o.name = 'FK_BORROW_I_BORROW_IN_READER') alter table borrow_information drop constraint FK_BORROW_I_BORROW_IN_READER go if exists (select 1 from dbo。sysreferences r join dbo。sysobjects o on (o.id = r。constid and o。type = 'F’) where r。fkeyid = object_id(’login') and o。name = 'FK_LOGIN_LOGIN_ADMIN’) alter table login drop constraint FK_LOGIN_LOGIN_ADMIN go if exists (select 1 from dbo。sysreferences r join dbo.sysobjects o on (o。id = r。constid and o.type = ’F') where r.fkeyid = object_id('login') and o。name = 'FK_LOGIN_LOGIN2_READER’) alter table login drop constraint FK_LOGIN_LOGIN2_READER go if exists (select 1 from dbo。sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = ’F') where r。fkeyid = object_id('reversation’) and o.name = ’FK_REVERSAT_REVERSATI_BOOKS') alter table reversation drop constraint FK_REVERSAT_REVERSATI_BOOKS go if exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o。id = r。constid and o。type = ’F’) where r.fkeyid = object_id('reversation’) and o。name = ’FK_REVERSAT_REVERSATI_READER') alter table reversation drop constraint FK_REVERSAT_REVERSATI_READER go if exists (select 1 from sysindexes where id = object_id(’admin’) and name = '权限_FK' and indid > 0 and indid 〈 255) drop index admin.权限_FK go if exists (select 1 from sysobjects where id = object_id('admin') and type = 'U') drop table admin go if exists (select 1 from sysindexes where id = object_id(’books') and name = '管理书籍_FK' and indid > 0 and indid < 255) drop index books.管理书籍_FK go if exists (select 1 from sysindexes where id = object_id(’books') and name = '图书类型_FK' and indid > 0 and indid 〈 255) drop index books.图书类型_FK go if exists (select 1 from sysobjects where id = object_id('books') and type = ’U') drop table books go if exists (select 1 from sysobjects where id = object_id(’booktype') and type = 'U') drop table booktype go if exists (select 1 from sysindexes where id = object_id(’borrow_information’) and name = ’Association_2_FK' and indid 〉 0 and indid < 255) drop index borrow_information.Association_2_FK go if exists (select 1 from sysindexes where id = object_id(’borrow_information’) and name = 'Association_1_FK' and indid 〉 0 and indid 〈 255) drop index borrow_information.Association_1_FK go if exists (select 1 from sysobjects where id = object_id('borrow_information') and type = 'U’) drop table borrow_information go if exists (select 1 from sysindexes where id = object_id('login') and name = 'login2_FK' and indid > 0 and indid 〈 255) drop index login.login2_FK go if exists (select 1 from sysindexes where id = object_id('login') and name = ’login_FK' and indid 〉 0 and indid 〈 255) drop index login.login_FK go if exists (select 1 from sysobjects where id = object_id(’login') and type = ’U’) drop table login go if exists (select 1 from sysindexes where id = object_id(’reader') and name = ’用户权限_FK’ and indid > 0 and indid 〈 255) drop index reader.用户权限_FK go if exists (select 1 from sysobjects where id = object_id(’reader') and type = 'U’) drop table reader go if exists (select 1 from sysindexes where id = object_id('reversation') and name = 'reversation2_FK’ and indid 〉 0 and indid 〈 255) drop index reversation。reversation2_FK go if exists (select 1 from sysindexes where id = object_id('reversation’) and name = ’reversation_FK' and indid 〉 0 and indid < 255) drop index reversation.reversation_FK go if exists (select 1 from sysobjects where id = object_id('reversation’) and type = ’U') drop table reversation go create table admin ( admin_id int not null, admin_name char(20) null, admin_password char(16) null, logins int null, last_login char(10) null, "right" int null, constraint PK_ADMIN primary key nonclustered (admin_id) ) go create index 权限_FK on admin ( ) go create table booktype ( type_id int null ) go create table books ( book_id int not null, admin_id int null, title char(20) null, type_id int null, author char(40) null, price money null, ”book concern" char(50) null, addtime datetime null, amount int null, remain int null, constraint PK_BOOKS primary key nonclustered (book_id), constraint FK_BOOKS_管理书籍_ADMIN foreign key (admin_id) references admin (admin_id), constraint FK_BOOKS_BOOKTYPE_BOOKTYPE foreign key () references booktype ) go create index 图书类型_FK on books ( ) go create index 管理书籍_FK on books ( admin_id ASC ) go create table reader ( reader_id int not null, reader_name char(20) null, sex char(2) null, age tinyint null, class char(15) null, address text null, memo text null, maxborrowed int null, reader_password char(16) null, ”right" int null, constraint PK_READER primary key nonclustered (reader_id) ) go create table borrow_information ( book_id int not null, reader_id int not null, borrow_time datetime null, end_time datetime null, amount int null, return_time datetime null, constraint PK_BORROW_INFORMATION primary key (book_id, reader_id), constraint FK_BORROW_I_BORROW_IN_BOOKS foreign key (book_id) references books (book_id), constraint FK_BORROW_I_BORROW_IN_READER foreign key (reader_id) references reader (reader_id) ) go create index Association_1_FK on borrow_information ( book_id ASC ) go create index Association_2_FK on borrow_information ( reader_id ASC ) go create table login ( admin_id int not null, reader_id int not null, "right” int null, constraint PK_LOGIN primary key (admin_id, reader_id), constraint FK_LOGIN_LOGIN_ADMIN foreign key (admin_id) references admin (admin_id), constraint FK_LOGIN_LOGIN2_READER foreign key (reader_id) references reader (reader_id) ) go create index login_FK on login ( admin_id ASC ) go create index login2_FK on login ( reader_id ASC ) go create index 用户权限_FK on reader ( ) go create table reversation ( book_id int not null, reader_id int not null, reservation_time datetime null, reservationcancel datetime null, constraint PK_REVERSATION primary key (book_id, reader_id), constraint FK_REVERSAT_REVERSATI_BOOKS foreign key (book_id) references books (book_id), constraint FK_REVERSAT_REVERSATI_READER foreign key (reader_id) references reader- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 建模 设计 基于 UML
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文