1.1Overview(整体类图)Figure1:library2.INTERACTIONDIAGRAMS2.1TopLevelInteractionDiagrams2.1.1SequenceDiagramDiagram:borrow(正常借书时序图)librarian:librariantheborrowbook:borrowbooktheaccount:accountthebook:booktheloan:loan1:setaccountid(Integer)2:matchaccount()5:setbookid(Integer)3:matchaccountinf()6:matchbook()7:matchbookinf()10:addloan()11:modifyloan()8:isfull()9:isfullinf()12:accountaddbook()13:modifyaccountinf()14:setallowborrow(Boolean)15:modifybookinf()4:showaccount()16:showaccount()管理员读入借书卡卡号,借书事务得到卡号借书事务请求验证卡号卡号账户返回验证卡号有效显示卡号的基本信息及借阅信息管理员读入图书编号,借书事务得到图书编号请求验证图书编号是否有效返回图书编号有效请求验证该卡号借阅图书是否已满返回借阅未满请求添加图书借阅信息返回添加成功请求修改卡号累计借阅图书数量返回修改卡号信息成功请求修改图书状态为不可借返回修改图书状态成功显示卡号基本信息及借阅信息图书管理员(角色),是librarian类的一个对象。借书事务(对象),是borrowbook类的一个对象。借阅者账户(对象),是account类的一个对象。图书(对象),是book类的一个对象。借阅信息(对象),是loan类的一个对象。Figure2:borrow2.1.2SequenceDiagramDiagram:return(正常还书时序图)librarian:librarianthereturnbook:returnbookthebook:booktheloan:loantheaccount:account1:setbookid(Integer)2:matchbook()3:matchbookinf()4:overtime()5:overtimeinf()6:deleteloan()7:modifyloan()8:accountdeletebook()9:modifyaccountinf()10:setallowborrow(Boolean)11:modifybookinf()12:showaccount()管理员读入图书编号,借书事务得到图书编号请求验证图书编号是否有效返回图书编号有效请求验证图书借阅是否过期返回未过期请求删除借阅图书信息返回删除成功请求修改卡号借阅信息修改卡号信息成功请求修改图书状态为可借返回修改图书状态成功显示卡号的基本信息及借阅信息图书管理员(角色),是librarian类的一个对象。还书事务(对象),是returnbook类的一个对象。借阅者账户(对象),是account类的一个对象。图书(对象),是book类的一个对象。借阅信息(对象),是loan类的一个对象。Figure3:return2.1.3SequenceDiagramDiagram:search(检索图书时序图)borrower:borrowerthesearchbook:searchbookthebook:book1:setsearchinf(String)2:searchbook(String)3:showresult()借阅者输入搜索图书关键信息请求查找图书显示图书查找结果借阅者(角色),是borrower类的一个对象检索图书事务(对象),是searchbook类的一个对象图书(对象),是book类的一个对象。Figure4:search2.1.4SequenceDiagramDiagram:borrowerror1(借书,卡号无效时序图)librarian:librariantheborrowbook:borrowbooktheaccount:accountthebook:booktheloan:loan1:setaccountid(Integer)2:matchaccount()3:matchaccountinf()4:showaccounterror()管理员读入借书卡卡号,借书事务得到卡号借书事务请求验证卡号返回卡号无效显示卡号错误Figure5:borrowerror12.1.5SequenceDiagramDiagram:borrowerror2(借书,图书无效时序图)librarian:librariantheborrowbook:borrowbooktheaccount:accounttheloan:loanthebook:book1:setaccountid(Integer)2:matchaccount()3:matchaccountinf()4:showaccount()5:setbookid(Integer)6:matchbook()7:matchbookinf()8:showbookerror()9:showaccount()管理员读入借书卡卡号,借书事务得到卡号借书事务请求验证卡号卡号账户返回验证卡号有效显示卡号的基本信息及借阅信息管理员读入图书编号,借书事务得到图书编号请求验证图书编号是否有效返回图书编号无效提示图书编号错误显示卡号基本信息及借阅信息Figure6:borrowerror22.1.6SequenceDiagramDiagram:borrowerror3(借书,已借满时序图)librarian:librariantheaccount:accountthebook:booktheborrowbook:borrowbooktheloan:loan1:setaccountid(Integer)2:matchaccount()3:matchaccountinf()4:showaccount()5:setbookid(Integer)6:matchbook()7:matchbookinf()8:isfull()9:isfullinf()10:showfull()11:showaccount()管理员读入借书卡卡号,借书事务得到卡号借书事务请求验证卡号卡号账户返回验证卡号有效显示卡号的基本信息及借阅信息管理员读入图书编号,借书事务得到图书编号请求验证图书编号是否有效返回图书编号有效请求验证该卡号借阅图书是否已满卡号借阅图书已满提示卡号借阅已满显示卡号的基本信息及借阅信息Figure7:borrowerror32.1.7SequenceDiagramDiagram:returnerror1(还书,图书无效时序图)librarian:librarianthereturnbok:returnbookthebook:booktheloan:loantheaccount:account1:setbookid(Integer)2:matchbook()3:matchbookinf()4:showbookerror()管理员读入图书编号,借书事务得到图书编号请求验证图书编号是否有效返回图书编号无效提示图书编号无效Figure8:returnerror12.1.8SequenceDiagramDiagram:returnerror2(还书,图书超期,提交罚款时序图)librarian:librarianthereturnbook:returnbookthebook:booktheloan:loantheaccount:account1:setbookid(Integer)2:matchbook()3:matchbookinf()4:overtime()5:overtimeinf()6:dealovertime()7:deleteloan()8:modifyloan()9:accountdeletebook()10:modifyaccountinf()11:setallowborrow(Boolean)12:modifybookinf()13:showaccount()管理员读入图书编号,借书事务得到图书编号请求验证图书编号是否有效返回图书编号有效请求验证图书借阅是否过期返回借阅图书过期执行图书超期处理成功请求删除借阅图书信息返回删除成功请求修改卡号借阅信息修改卡号信息成功请求修改图书状态为可借返回修改图书状态成功显示卡号的基本信息及借阅信息Figure9:returnerror22.1.9SequenceDiagramDiagram:returnerror3(还书,图书超期,未提交罚款时序图)librarian:librarianthereturnbook:returnbookthebook:booktheloan:loantheaccount:account1:setbookid(Integer)2:matchbook()3:matchbookinf()4:overtime()5:overtimeinf()6:dealovertime()7:showaccount()管理员读入图书编号,借书事务得到图书编号请求验证图书编号是否有效返回图书编号有效请求验证图书借阅是否过期返回借阅图书过期执行图书超期处理失败显示卡号的基本信息及借阅信息Figure10:returnerror3前面已经通过用例图对系统的大概功能有了一个了解,只能确定类图中的极少属性和操作,通过对正常时序图和非正常时序图的描绘,丰富了类图中的操作,可以使时序图中的消息对应类图中的一个操作,这样就不会遗漏了系统中的某个操作。时序图只是表示了事件发生顺序的先后,要想进一步完善系统的整体逻辑,就要通过描绘状态图,来理清整个系统的逻辑。最后再对时序图和类图进行完善,得到最后完整的类图。6.STATE/ACTIVEMODEL6.1State/ActiveDiagram:borrowebook(借书状态图)开启系统主屏1do/验证卡号读取借书卡卡号正常/完成do/显示卡号信息卡号有效do/验证图书do/检查借阅图书数目图书有效do/添加借阅图书信息可借卡号有误do/提示卡号无效卡号无效图书编号有误do/提示图书无效图书无效读取图书退出卡号已借满do/提示已借满不可借do/修改卡号借阅信息添加成功do/修改图书状态修改成功修改成功退出借书系统Figure11:borrowbook6.2State/ActiveDiagram::returnbook(还书状态图)开启系统主屏2do/验证图书读取图书do/检查图书是否超期图书有效do/删除图书借阅信息未超期完成do/显示卡号信息图书有误do/提示图书无效图书无效超期do/超期事务超期do/修改卡号借阅信息删除成功do/修改图书状态修改成功事务成功事务失败修改成功退出卡号退出还书系统Figure12:returnbook6.3State/ActiveDiagram::searchbook(检索图书状态图)开启系统主屏3do/查找图书输入查询图书信息do/显示图书信息返回相关图书信息退出退出查询系统Figure13:searchbook四、系统的流程图1.借书活动图管理员首先要扫描读者的借书证,检验证件是否符合图书馆借书条件,若该读者的借书数量还未达到最大规定数量,并且其所借书籍均未属于过期范围,则符合借书条件。则再扫描书籍条形码,检查书籍是否是不可借书籍或者已经被预订,若被预订,则取消预订,方可借书。在这些条件都符合时则更新书籍信息和读者的借阅信息,记录好借书的时间。图6:图书馆管理系统的借书活动图2、还书活动图图书管理员对书籍进行扫描,若书籍已经过期,则要求读者还请欠款才能还书,读者缴应交罚款后,更新书目信息和读者信息。图7:图书馆管理系统的还书活动图3、预订图书活动图读者先