面向对象分析与设计大作业学院:计算机科学与工程学院班级:计算机软件3学生姓名:陈俊伟学号:200931582174指导老师:苏锦钿提交日期:2011.12.24华南理工大学面向对象分析与设计大作业课程实验报告实验题目:_____图书管理系统uml图__________________________姓名:___陈俊伟________学号:_200931582174_____班级:___09软件3班________组别:________合作者:__________________指导教师:______苏锦钿__________实验概述【实验目的及要求】一.目的1.掌握面向对象技术的基本原理和各种相关概念;2.熟练掌握UML的基本知识和9种常见的UML图形,并能够利用RationalRose2003、IBMSoftwareArchitecture、或trufunUML2.x工具进行建模;3.根据问题进行学习,拓广、深化;4.独立完成一个应用程序的分析、设计和建模,为以后软件项目的开发打下实践基础。【实验原理】UML建模,就是用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类之间的关联、类的实例相互配合实现系统的动态行为等。UML提供了多种图形可视化描述模型元素,同一个模型元素可能会出现在多个图中对应多个图形元素,人们可以从多个视图来考察模型。UML建模主要分为结构建模、动态建模和模型管理建模3个方面,第1个方面是从系统的内部结构和静态角度来描述系统的,在静态视图、用例视图、实施视图和配置视图中适用,采用了类图、用例图、组件图和配置图等图形。例如类图用于描述系统中各类的内部结构(类的属性和操作)及相互间的关联、聚合和依赖等关系,包图用于描述系统的分层结构等;第2个方面是从系统中对象的动态行为和组成对象间的相互作用、消息传递来描述系统的,在状态机视图、活动视图和交互视图中适用,采用了状态机图、活动图、顺序图和合作图等图形,例如状态机图用于一个系统或对象从产生到结束或从构造到清除所处的一系列不同的状态;第3个方面描述如何将模型自身组织到高层单元,在模型管理视图中适用,采用的图形是类图。建模的工作集中在前两方面,而且并非所有图形元素都适用或需要采用需求阶段:用例图、领域模型(类图)分析阶段:用例详细详细说明、协作图或顺序图、类图设计阶段:详细类图、包设计、(建议不要做详细的协作图或顺序图-很难维护)实施阶段:部署视图【实验环境】RationalRose2003WindowsXp实验内容【实验方案设计】三、步骤§1软件需求分析三、功能需求分析系统的功能需求主要包括以下几个方面:①借阅者可以通过网络查询书籍信息和预定书籍。②借阅者能够借阅书籍和还书,书过期的话要罚款。③图书管理员能够处理借阅者的借阅和还书请求。④系统管理员可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除和更新借阅者帐户,增加和删除书籍。§2图书馆管理系统的需求分析用户提出的需求包括下列内容:1.这是一个图书馆支持系统;2.图书馆将图书和杂志借给借书者。借书者已经预先注册,图书和杂志也预先注册;3.图书馆负责新书的购买。每一本图书都购进多本书。当旧书超期或破旧不堪时,从图书馆中去掉。4.图书管理员是图书馆的员工。他们的工作就是和读者打交道并在软件系统的支持下工作。5.借阅人可以预定当前没有的图书和杂志。这样,当他所预定的图书和杂志归还回来或购进时,就通知预定人。当预定了某书的借书者借阅了该书后,预定就取消。或者通过显式的取消过程强行取消预定。6.图书馆能够容易地建立、修改和删除标题、借书者、借阅信息和预定信息。7.系统能够运行在所有流行的技术环境中,包括Unix,Windows和Linux,并应有一个良好的人机交互图形用户界面(GUI)。8.系统容易扩展新功能。系统可以不必考虑预定的图书到达后通知预定人的功能。9.如果读者还书超过期限(本科生1个月,研究生2个月,教师3个月),需扣款。§3系统的UML基本模型§4系统中的类§5系统的配置与实现§1.1软件需求的定义§1.2软件需求的层次软件需求包括三个层次:业务需求:反映了组织机构或客户对系统高层次的目标要求。用户需求:描述了用户使用产品所能完成的任务。功能需求:说明了软件的功能,用户使用这些功能以完成任务。§2图书馆管理系统的需求分析§2.1系统功能需求§2.2基本数据维护模块§2.3基本业务模块§2.4数据库模块§2.5信息查询模块2.1系统功能需求系统的功能需求主要包括以下几个方面:①借阅者可以通过网络查询书籍信息和预定书籍。②借阅者能够借阅书籍和还书。③图书管理员能够处理借阅者的借阅和还书请求。④系统管理员可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除和更新借阅者帐户,增加和删除书籍。§2.2基本数据维护模块基本数据维护模块包括的主要功能模块:①添加借阅者帐户②修改更新借阅者帐户信息③添加书目④修改和更新书目信息⑤添加书籍⑥删除书籍§2.3基本业务模块基本业务模块包含的功能:①借书②还书③书籍预留④取消书籍预定§2.4数据库模块数据库模块的功能:①借阅信息管理②书籍信息管理③帐户信息管理④书籍预留信息管理§2.5信息查询模块信息查询模块主要是查询数据库中的相关信息:①查询书籍信息②查询借阅者信息§3系统的UML基本模型§3.1UML初始模型§3.2系统的用例图§3.3系统的时序图§3.4系统的协作图§3.5系统的状态图§3.6系统的活动图§3.2系统的用例图创建用例图之前首先需要确定参与者。系统的参与者主要有三类:①读者(也可称为借阅者)②图书馆管理员③图书馆管理系统维护者④§3.2系统的用例图1.借阅者请求服务的用例图2.图书馆管理员处理借书、还书等的用例图3.系统管理员进行系统维护的用例图1.借阅者请求服务的用例图图书管理员处理借书还书系统管理员进行系统维护借阅者请求服务2.图书馆管理员处理借书、还书等的用例图3.系统管理员进行系统维护的用例图LogonthesystemReturnwithfineSearchthebookBorrowthebookReservethebookQueryInfoReturnthebookBorrowerincludeincludeextendCheckuseraccoutGetWithFineLendbookincludeGetbookextendRemovereservationLibrarianinclude§3.3系统的时序图1.系统管理员添加书籍的时序图2.系统管理员添加借阅者帐户的时序图3.系统管理员删除书目的时序图4.图书管理员处理书籍借阅的时序图5.图书管理员处理书籍归还的时序图6.借阅者查询书籍信息的时序图7.借阅者预留书籍的时序图1.系统管理员添加书籍的时序图2.系统管理员添加借阅者帐户的时序图:Administrator:MaintenanceWindow:Title:Item1:addItem2:find(String)3:return():true4:create(Integer,Title)3.系统管理员删除书目的时序图4.图书管理员处理书籍借阅的时序图:Administrator:MaintenanceWindow:Borrower1:createBorrower2:create(String,String):Administrator:MaintenanceWindow:Title:Item1:removeTitle2:find3:find_on_title4:destroy5:destroy5.图书管理员处理书籍归还的时序图6.借阅者查询书籍信息的时序图7.借阅者预留书籍的时序图:Librarian:LendWindow:Title:Borrower:Loan:Item1:findTitle2:find(String)3:findItem4:findonTitle(Title)5:identifyBorrower6:find(String)7:create(Borrower,Item):Borrower:Librarian:ReturnWindow:Item:Loan1:givetheBook2:returnItem3:check4:return():OK5:update6:update7.借阅者预留书籍的时序图§3.4系统的协作图1.系统管理员添加书籍的协作图2.系统管理员删除书籍的协作图3.图书管理员处理借书的协作图4.图书管理员处理还书的协作图5.借阅者预留书籍的协作图1.系统管理员添加书籍的协作图2.系统管理员删除书籍的协作图:Borrower:MaintenanceWindow:Item1:QueryBook2:findonTitle:Borrower:MaintenanceWindow:Item1:QueryBook2:findonTitle:Administrator:Item:Title:MaintenanceWindow1:addItem()3:update()2:find(String)3.图书管理员处理借书的协作图4.图书管理员处理还书的协作图5.借阅者预留书籍的协作图:Administrator:Item:Title:MaintenanceWindow2:removeItem()1:find(String)3:create(Integer,Title):Librarian:LendWindow:Title:Item:Reservation:Loan2:findreservation()7:check_if_max()1:identifyborrower()4:borrow()3:find(Borrower,Title)6:borrow()5:update():Librarian:ReturnWindow:Title:Loan:Item1:findBorrower()3:returnBack()2:find(String)5:returnBack()4:update()§3.5系统的状态图1.书的状态图2.借阅者帐户的状态图1.书的状态图2.2.借阅者帐户的状态图:Borrower:ReservationWindow:Item:Reservation:Title1:identifyBorrower()3:reserveTitle()4:reserve()5:create(Title,Borrower)2:find(String)NewbookAvailableDeleteReservedBorrowedBorrowReserveTimeoutBorrowCancleReturnback§3.6系统的活动图1.借阅者的活动图2.图书管理员的活动图3.系统管理员的活动图1.借阅者的活动图NewBorrowerAccountAvailableAccountunavailableDeleteAccountthenumberofbookisok书的数目超过限度还书2.图书管理员的活动图Self-helpserviceSearchforbooksLoginViewbookinformationReservethebookLeavethecomputerLogin?Exitthesystem3.系统管理员的活动图1.系统管理员维护借阅者帐户的活动图2.系统管理员进行书目信息维护的活动图3.系统管理员维护书籍信息的活动图(1)系统管理员维护借阅者帐户的活动图LoginthesystemGetbookLendbookOutofdate?Isnumberlimit?AcceptmoneyUpdateborrower'sinformation(2)系统管理员进行书目信息维护的活动图LoginthesystemOperationonborrowerNe