《软件工程图书管理系统(1).doc》由会员分享,可在线阅读,更多相关《软件工程图书管理系统(1).doc(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date软件工程图书管理系统(1)UML实验报告软件工程实验报告 题 目: 图书管理系统 班级: 姓名: 学号: 2014250 班级: 姓名: 学号: 2014250 班级: 姓名: 学号: 2014250 完成日期: 2016 年 12 月 15 日摘 要 随着知识化和信息化新经济时代的到来,作为信息技术龙头的计算机及软件技术突飞猛进,UML成为一种不可或缺的工具。UML
2、是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。用现有的知识,按照软件工程思想和系统的开发步骤,以图书管理的应用需求为背景,分析设计了图书管理系统,并利用Rational Rose对系统进行建模,完成用例图和类图的构建,为后期的程序设计提供标准。 根据建模需求分析,总结出本系统的参与者有借阅者和图书管理员两类。根据其职能不同,借阅者只能使用该系统借书、预订书刊以及还书。图书管理员则可使用系统进行图书馆业务的管理工作,如借阅者,书刊等的信息维护。系统可实现书籍信
3、息的添加、修改、删除等功能,这就保证了数据库信息的一致性和统一性、安全性。该系统以面向对象理论和数据库管理信息系统开发相关知识为依据,介绍了设计开发中的模块设计和数据与程序的连接,使SQL server 2008与 Visual Studio 2010得到了有效的结合。关键词:图书管理系统;UML;Rational Rose;面向对象目 录1 需求分析21.1 开发背景及意义21.2 功能需求22 系统建模42.1 创建系统用例模型42.1.1 确定参与者42.1.2 参与者的用例图42.2 系统的时序图52.2.1 确定系统参与者的属性52.2.2 确定系统主要业务实体类52.2.3 确定系
4、统类之间的关系62.3 系统的协作图62.3.1 创建序列图和协作图72.3.2 创建状态图82.3.2 创建活动图92.4 创建系统的部署摸型101 需求分析1.1 开发背景及意义图书馆是一个专门收集、整理、保存、传播文献并提供利用的科学、文化、教育和科研机构。现代社会,图书馆成为继续教育、终身教育的基地,担负了更多的教育职能。传递科学情报,是现代图书馆的一个重要职能。图书馆收藏的图书资料,是人类长期积累的一种智力资源,图书馆对这些资源的加工、处理,是对这种智力资源的开发。 图书馆主要是用来学习的,如果有人遇到问题,他可以通过图书管的书籍来解决问题。但是为了图书馆的正常运行和保护图书,图书馆
5、管理系统将用户划分为三类人:借阅者,图书管理员,系统管理员。一个基本的图书馆管理,可以大致分为以下流程:用户登录进入系统,在系统允许的情况下,进行可以进行的操作,如借书、还书和预定书籍等;管理员可以整理书籍和管理预订的书籍等;系统管理员管理书目,管理借阅者信息等。1.2 图书管理系统的需求分析1.2.1系统功能需求(1)借阅者可以通过网络查询书籍信息、预约书籍和续借书籍。(2)图书管理员作为借阅者的代理完成借阅图书、归还图书和查询借阅信息工作。(3)系统管理员可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除和更新借阅者帐户,增加和删除书籍。满足上述需求的系统主要包括下面几个模块:(
6、1)基本数据维护模块:提供使用者录入、修改并维护基本数据的途径。例如对借阅者的书籍的各项信息的更新与修改。(2)基本业务模块:主要用于实现用户借书与还书的管理,例如借阅者可以登录系统预订书籍,图书管理员可以取消书籍的预订,当然还可以进行借书、还书等操作。(3)数据库管理模块:在系统中,所有书籍的信息以及借阅者的帐户信息都要统一管理,书籍的借阅情况、预订情况也要进行详细的记录,所以要用统一的数据库平台进行管理。(4)信息查询模块:主要用于查询书籍的信息和借阅者的信息。图 1.1系统功能需求1.2.2基本数据维护模块图 1.2数据库管理模块(1)添加借阅者信息:系统管理员可以添加借阅者帐户。(2)
7、修改更新借阅者信息:系统管理员可以修改更新借阅者信息。(3)添加书目信息:系统管理员可以添加书目。(4)修改更新书目信息:系统管理员可以修改和更新书目信息。(5)添加书籍信息:系统管理员可以添加书籍。(6)删除书籍信息:系统管理员可以删除书籍。1.2.3基本业务模块图 1.3基本业务模块(1)还书:处理还书业务。(2)借书:处理借书业务。(3)书籍预订:借阅者可以通过网络进行书籍预订。(4)取消书籍预订:图书馆管理员可以根据情况取消书籍预订,如果借阅者已经借了此书或者借阅者要求取消预订都涉及此项业务。(5)续借书籍:借阅者可以通过网络续借已经的书籍。1.2.4数据库模块 图 1.4信息查询模块
8、功能(1)借阅者信息管理:书籍借阅信息包括所借书的书名、ISBN以及借书的时间,续借次数等。(2)书籍信息管理:书籍信息包括书籍的名字、ISBN、作者、入库时间以及书籍在相应书目下的编号等。(3)帐户信息管理:帐户信息包括借阅者的帐户ID、姓名、学号、院系、班级和所借书籍的总数等。(4)书籍预订信息管理:负责管理书籍预订信息。1.2.5信息查询模块 图 1.5信息查询模块功能(1)查询书籍信息:负责书籍信息的查询。(2)查询借阅者信息:负责借阅者信息的查询。2 系统建模2.1 创建系统用例模型2.1.1 确定参与者 作为一个图书馆管理系统,首先需要读者的参与,读者可以登录系统查询所需要的书籍,
9、查到所需书籍后可以考虑预订,也可以续借已借的图书。 对于系统来说,读者借书、还书等操作是由图书馆管理员来处理的,他们还可以负责图书的预订和预订取消。 对于图书馆管理系统来说,系统的维护也是相当重要的。维护操作主要包括增加书目,删除或更新书目,增加书籍和减少书籍等操作。由以上分析可以看出,系统的参与者主要有3类:读者(借阅者)、图书馆管理员、系统管理员(1)借阅者参与的用例图借阅者请求服务的用例图包含如下用例。图2.1 借阅者的用例图Search for book:书籍查询用例,借阅者通过网络查询自己想找的书籍的信息。Reserve the book:书籍预订用例,借阅者预约已经被借出的书籍。Q
10、ueryInfo:查询借阅信息,借阅者查询自己所借书籍信息。Renew book:续借书籍用例,借阅者在无人预约该书的情况下,可续借该书。CheckIsReserve:检查书籍是否已被预订。Logon the system:登录系统。(2)图书馆管理员处理借书、还书等的用例图图书馆管理员处理借书、还书等的用例图如下图所示。图2.2 图书馆管理员处理借书、还书等的用例图用例图说明 Login:图书馆管理员登录系统。 ReturnBook:书籍归还处理。 GetWithFine:还书时收取罚金。 ProcessOverTime:该用例检查每个借阅者是否有超期的借阅信息。 DisplayLoanIn
11、fo:用于显示某借阅者的所有借阅信息。 ReturnBook:完成还书处理。 RemoveReservation:删除书籍预订信息。(3)系统管理员进行系统维护的用例图系统管理员进行系统维护的用例图如下所示。图2.3 系统管理员进行系统维护的用例图 查询借阅者信息:系统管理员可以查询借阅者的基本信息和借阅信息。 查询书籍信息:系统管理员可以查询书库里的书籍信息。 增加书目:系统管理员可以向书库中增加书目。 删除或更新书目:系统管理员可以从书库中删除和更新书目。 增加书籍:系统管理员可以向书库中增加书籍。 删除书籍:系统管理员可以从书库中删除书籍。 添加借阅者帐户:系统管理员可以向系统中添加借阅
12、者帐户。 删除或更新借阅者帐户:系统管理员可以删除或更新借阅者帐户。用例图说明 QueryBorrowerInfo:查询读者信息。 QueryBookInfo:查询书籍信息。 AddTitle:增加书目。 RemoveOrUpdateTitle:删除或更新书目。 AddBook:增加书籍。 RemoveBook:删除书籍。 AddBorrower:添加借阅者帐户。 RemoveOrUpdateBorrower:删除或更新借阅者帐户信息。2.2系统的时序图图书管理系统中的用例很多,所能画出的时序图也很多,在此不一一介绍。(1)系统管理员添加书籍的时序图图 3.1 系统管理员添加书籍的时序图时序图
13、说明 addBook():添加书籍函数。 findTitle():根据书籍ISBN查找相应书目的函数。添加书籍时,系统管理员首先与系统的维护窗口交互,弹出AddBookDialog对话框,图书管理员输入图书ISBN号并提交,系统查询数据库是否存在与该图书对应的书目,若不存在,则提示管理员需要先添加书目,然后才可以添加图书:若存在,则添加一个图书,并更新图书对应的书目信息。(2)系统管理员添加借阅者帐户的时序图图 3.2 系统管理员添加借阅者帐户的时序图时序图说明 findBorrower():查看输入的学号是否已经存在系统的函数。 newBorrower():添加新帐户的函数。 write()
14、:存储学生的信息。系统管理员要添加新的借阅者帐户,首先要与维护窗口交互,维护窗口弹出AddBorrowerDialog对话框。系统管理员可以在该对话框中输入学生信息并保存,随后系统将对提交的学生信息进行验证,查看输入的学号是否已经存在系统中,若不在,则为学生创建一个帐户,并存储该学生的信息。(3)系统管理员删除书目的时序图图 3.3 系统管理员删除书目的时序图时序图说明find(String):书目类的查找函数。find_on_title(Title):查找此书目下书籍信息的函数。destroy: 删除书籍信息的函数。destroy: 删除书目信息的函数。系统管理员与系统的维护窗口交互,查找到
15、相应的书目,如果该书目下还有书籍的话,要先将书籍删掉,才能删除书目。(4)图书管理员处理书籍借阅的时序图图 3.4 图书管理员处理书籍借阅的时序图时序图说明 getBorrowerID():获取输入借阅者借书证号的函数。 findBorrower():验证借阅者合法性的函数。 inputBookID(): 获取输入的图书信息的函数。 findBook(): 验证图书合法性的函数。 newLoan():添加借阅图书记录的函数。 addLoan():添加借阅记录的函数。 setLoan():设置图书借阅状态的函数。图书管理员选择菜单项“借阅图书”,弹出BorrowDialog对话框,图书管理员在该
16、对话框中输入借阅者信息,然后由系统查询数据库,以验证该借阅者的合法性,若借阅者合法,则再由图书管理员输入所要借阅的图书信息,系统记录并保存该借阅信息。(5)图书管理员处理书籍归还的时序图图 3.5 图书管理员处理书籍归还的时序图时序图说明 getLoan():查找图书的借阅状态。 getBorrower():查找借阅者借书记录的函数。 delete():删除借阅信息的函数。 setLoan():设置图书借阅状态的函数。 delLoan():删除借阅者借阅信息的函数。图书管理员选择菜单项“归还图书”,弹出ReturnDialog对话框,图书管理员在该对话框中输入归还图书编号,然后由系统查询数据库
17、,以验证该图书是否为本馆藏书,若图书不合法,则提示图书管理员;若合法,则由系统查找该图书的借阅者信息,然后删除相对应的借阅记录,并更新借阅者信息。(6)借阅者预订书籍的时序图图 3.6 借阅者预订书籍的时序图时序图说明Login():登录系统的函数。findBook():查找相应书目的函数。reserved():预订书籍的函数。借阅者首先与系统的网络模块交互,如果找到要预订的书籍,就将预订信息添加进去。2.3系统的协作图:2.4.1系统管理员添加书籍的协作图图 4.1系统管理员添加书籍的协作图协作图说明 addBook():添加书籍函数。 findTitle():根据书籍ISBN查找相应书目的
18、函数。2.4.2系统管理员删除书籍的协作图图 4.2 系统管理员删除书籍的协作图协作图说明remove_item():删除书籍的函数。find(String):根据书籍名查找相应书目的函数。update():修改某类书目下书籍数量的函数。2.4.3图书管理员处理借书的协作图图 4.3 图书管理员处理借书的协作图协作图说明 getBorrowerID():获取输入借阅者借书证号的函数。 findBorrower():验证借阅者合法性的函数。 inputBookID(): 获取输入的图书信息的函数。 findBook(): 验证图书合法性的函数。 newLoan():添加借阅图书记录的函数。 ad
19、dLoan():添加借阅记录的函数。 setLoan():设置图书借阅状态的函数。 check_if_max():检查借阅者所借书籍数目是否已经超过最大限额的函数。2.4.4图书管理员处理还书的协作图图 4.4 图书管理员处理还书的协作图协作图说明 getLoan():查找图书的借阅记录。 getBorrower():查找借阅者借书记录的函数。 delete():删除借阅信息的函数。 setLoan():设置图书借阅状态的函数。 delLoan():删除借阅者借阅信息的函数。2.5系统的状态图: 书的状态图:图 5.1书的状态图状态图说明 New Book:还未入库的新书。 Delete:已经
20、从书库里删除的书。 Available:书籍处于可用状态,即可以外借的状态。 Reserved:预订状态。 Borrowed:借出状态。书籍处于可用(Available)状态时可以外借,外借后变为借阅(Borrowed)状态。处于借阅状态时可以预订或还书,超出预订时间期限则从预订状态直接转为可用状态。借阅者在规定的预订时间内也可以考虑取消预订,取消预订后书籍的状态转为可用。外借书籍归还后变为可用状态。2.6系统的活动图:2.6.1借阅者的活动图图 6.1 借阅者的活动图活动图说明Self-Help Service:打开图书馆的网站。Search for books:查询需要的书籍。Login:
21、登录图书管理系统。View book information:查看借阅信息。 Reserve the book:预订书籍。Eixt System:退出系统。Leave Computer:离开自助服务的计算机。借阅者进行自助服务时,可以首先登录系统,然后进行书目查询、书籍信息查询、书籍预订等活动,也可以先查询书目和书籍信息后登录系统预订书籍或查询自己借阅信息。2.6.2图书管理员的活动图图 6.2 图书管理员的活动图活动图说明Login the system:图书管理员登录系统。Get book:处理还书操作。Lend book:处理借书操作。Update borrowers informati
22、on:更新借阅者借阅凭证上的信息。Accept money:收取罚金。图书管理员可以处理两种情况,借书操作和还书操作。当用户借书时,图书管理员要查看借阅者借书凭证上显示的可借书数目是否满足要求;当用户还书时,图书管理员要检查所借书籍是否已经超过期限,如果超期,要收取一定的罚金。2.6.3系统管理员的活动图1) 系统管理员维护借阅者帐户的活动图图 6.3 系统管理员维护借阅者帐户的活动图2) 系统管理员维护书目信息的活动图图 6.4 系统管理员维护书目信息的活动图3) 系统管理员维护书籍信息的活动图4) 系统管理员维护书籍信息的活动图活动图说明 Login the system:登录系统。 Op
23、eration on borrower:对借阅者帐户操作。 Operation on title:对书目进行操作。 Operation on book:对书籍进行操作。 Query borrower info:查询借阅者信息。 New Borrower:添加新的借阅者帐户。 Remove or update borrower:删除或更新借阅者帐户。 Query title:查询书目信息。 New title:增加新的书目。 Remove or update title:删除或更新书目。 Add book:增加书籍信息。 Remove book:删除书籍信息。 Exit the system:退
24、出系统。2.7系统中的类2.7.1参与者相关的类系统中和参与者相关的类的类图如下:图 7.1 参与者相关的类类图说明persistent类是所有类的父类,方法有read(从数据库中读取对象的属性)、write(将对象的属性保存到数据库中)以及update(更新数据库中保存的对象的属性),delete(删除数据库保存的对象属性)。Borrowerclass类是借阅者类, 除了继承父类的属性和方法,还包括stuID(学号)、name(姓名)、dept(部门)、borrowerID(借阅证号)、borrow_number(可借书籍总数)、和loans(借阅记录)等属性。Librarian类是图书管理
25、员类,除了继承父类的属性和方法,还包括workID(工作账号),name(姓名)以及address(地址)。Adminstrator是管理类。2.7.2各类之间的关系类不是单独一个模块,各个类之间是存在联系。图书管理系统各个类之间的联系如下图:图 7.2 各类之间的关系类图说明类Item与类Title之间存在“一对多”的关联关系,每个Title对象至少对应一个Item对象,每个Item对象则只对应一个Title对象。类Item与类Loan之间存在关联关系,每个Item对象最多只对应一个Loan对象,每个Loan对象则只记录了一本书的借阅(因为一本书在一定时间段内,只能被一个人借阅,因此最多只能
26、有一个借阅记录)。Borrowerclass与Loan之间存在一对多的关联关系,每个Borrowerclass对象对应多个Loan对象,而每个Loan对象最多只对应一个Borrowerclass对象。8 系统的组件图图书管理系统的组件图主要有:业务对象组件图和用户界面组件图业务对象组件图系统建立在一个含有书目信息、书籍信息、借阅者信息、借阅信息和书籍预订信息的中央数据库上。图8.1用户界面组件图除了业务对象以外,系统与用户交互的部件也能创建一个组件图。 图8.2系统与用户交互的部件创建的组件图2.9 系统的配置图配置图主要是用来说明如何配置系统的软件和硬件。系统由5个节点构成,应用服务器负责整
27、个系统的总体协调工作;数据库负责数据管理;Web应用程序模块用于借阅者进行书籍查询、网上书籍预订;业务操作模块用于处理读者借书、还书等一般的业务流程;信息维护模块用于系统管理员维护整个系统的数据信息,如添加和修改书目、添加和修改借阅者帐户等。系统配置图如下图:图 9.1 系统的配置图【小结】 在这次课程设计中,我对UML的九种图有了更深刻的理解,明白了什么时候需要什么图,这些图分别能表达的意思,及各图的优缺点。对于建模过程中,遇到的问题通过询问辅导老师和上网查找资料,得到了比较满意的解决,避免了自己的眼高手低,从实践中发现自己的不足,并及时改正。对Rational Rose的UML功能运用的更加系统,更加熟练;但是更让我明白,UML的知识是十分丰富的,我现在的认识还不够,我将会在以后的学习中,不断提高自己的UML知识。-