




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生学号实验课 成绩学生实验报告书实验课程名称 开课学院 指导教师姓名 学生姓名 学生专业班级软件设计与体系结构计算机科学与技术学院陈明俊软彳140220162017 学年 第学期实验课程名称:软件设计与体系结构实验项目名称图书管理系统的架构设计实验成绩实验者专业班级软彳1402组 别同组者实验日期年 月 日部分:实验预习报:告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等 )一实验目的1、以图书管理系统为例,完成系统的架构设计,了解架构设计的过程和方法,并用UML建模工具正确的表达架构结果。2、以图书管理系统为例,完成系统的详细设计,了解详细设计的过程和方
2、法,程序运行流程 的细节,检验设计的合理性。二实验内容第一部分图书管理系统需求信息如下 :我们曾经在 UML建模技术中对图书管理系统建模,本课程的实验是在此基础上对该系统 提出更多的要求,并进行架构和详细设计。在图书馆的图书管理系统中,学生要想借阅图书,必须先在系统中注册一个账号,然后系 统为其生成一个借阅证,借阅证可以提供学生的姓名,系别和借阅证号。持有借阅证的借阅者 可以借阅图书,归还图书和查询借阅信息,但这些操作都是通过图书管理员代理与系统交互。 在借阅图书时,学生进入图书馆内首先找到自己要借阅的图书,然后到借书处将借书证和图书 交给图书管理员办理借阅手续。图书管理员进行借书操作时,首先
3、需要输入学生的借书证号, 系统验证借阅证是否有效(根据系统是否存在借阅证号所对应的账户),若有效,则系统还需 要检验该账户中的借阅信息,以验证借书者借阅的图书是否超过了规定的数量,或者借阅者是 否有超过规定借阅期限而未归还的图书;如果通过了系统的验证,则系统会显示借阅者的信息 以提示图书管理员输入要借阅的图书信息,然后图书管理员输入要借阅的图书信息,系统记录 一个借阅信息,并更新该学生账户完成借阅图书操作。学生还书时只需要将所借的图书交给图书管理员,由图书管理员负责输入图书信息,然后 由系统验证该图书是否为本馆藏书,若是则系统删除相应的借阅信息,并更新相应的学生账户。在还书时也会检验该学生是否
4、有超期未归还的图书,学生也可以查询自己的借阅信息。 为了系统能够正常运行和系统的安全性,系统还需要系统管理员进行系统的维护。通过对上述图书管理系统的分析,可以获得如下的功能性需求:1学生持有借书证2图书管理员作为借阅者的代理完成借阅图书,归还图书和查询借阅信息工作3系统管理员完成对系统的维护,对系统的维护主要包括办理借阅证,删除借阅证,添加 管理员,删除管理员,添加图书,删除图书,添加标题信息,删除标题信息4图书馆服务的对象扩充到老师和学生,学生又分为博士生, 研究生,本科生,专科生等,不同类型的对象可以借阅的图书数量和期限都是不同的。5图书的种类扩充到中外文图书,中外文杂志,论文等。6学生和
5、老师可以通过网络进行预约,查询7超期罚款,各种类型的借出物罚款规则不同(超期时间的规定和罚金都不同) 第二部分1以实验一的结果为基础,设计每个具体类的数据结构,算法和程序运行流程。2界面元素的设计。3用代码实现设计结果界面设计原则:1 .简易性:界面的简洁是要让用户便于使用、便于了解、并能减少用户发生错误选择的可能性。2 .用户语言:界面中要使用能反应用户本身的语言,而不是游戏设计者的语言。3 .记忆负担最小化:人脑不是电脑,在设计界面时必须要考虑人类大脑处理信息的限度。人类 的短期记忆极不稳定、有限,24小时内存在25%的遗忘率。所以对用户来说,浏览信息要比记忆更容易。4 .一致性:是每一个
6、优秀界面都具备的特点。界面的结构必须清晰且一致,风格必须与游戏内 容相一致。5 .清楚:在视觉效果上便于理解和使用。6 .用户的熟悉程度:用户可通过已掌握的知识来使用界面,但不应超出一般常识。7 .从用户的观点考虑:想用户所想,做用户所做。用户总是按照他们自己的方法理解和使用。8 .排列:一个有序的界面能让用户轻松的使用。9 .安全性:用户能自由的作出选择,且所有选择都是可逆的。在用户作出危险的选择时有信息 介入系统的提示。10 .灵活性:简单来说就是要让用户方便的使用,但不同于上述。即互动多重性,不局限于单一 的工具(包括鼠标、键盘或手柄)。11 .人性化:高效率和用户满意度是人性化的体现。
7、应具备专家级和初级玩家系统,即用户可依 据自己的习惯定制界面,并能保存设置。三实验步骤1采用用例驱动的分析方法,分析业务领域的需求,识别系统中的参与者和用例,写出用例的 文本,建立用例模型。要求正确识别系统的所有角色和用例;准确描述用例间的关系;描述系统中重要用例的基本 事件流(正常情况),备选事件流和异常事件流。2根据步骤1的结果,进一步建立领域模型(类图),完成静态模型的建立。要求正确识别出领域类,并给类增加属性和关联。3结合某一种具体的框架(比如Java的JavaEE, Spring等)设计系统的架构, 要求采用分层的架构和MVC模式,用包图表达架构。4根据1, 2, 3的结果以用例或用
8、例的场景为基本单元,设计各层包含的类,接口及其交互(类图,顺序图等)以实现用例或场景,尽可能在设计中体现OO的设计原则,设计模式。可以选择一步完成或分两步完成设计,如果选择一步完成,就没有分析类图,直接得出设计类图。两步完成:第一步不考虑界面和持久化类,只考虑领域类,建立分析类图及分析类之间的交互顺序图。第二步考虑加入界面类和持久化类,在第一步的基础上增强和完善分析类图和交互图,得 到设计类图和更精确的交互顺序图。5完成图书管理系统的数据库设计。数据库的设计是以领域模型为基础的,经过分析类图和设计类图的细化,找出需要持久化的类,转化为关系模型。第二部分:实验过程记录(可加页)(包括实验原始数据
9、记录,实验现象记录,实验过程发现的问题等)用例模型图书管理系统处理赔偿增加借阅者借出书目删除借阅者处理超期返还书目?extend?管理所查询借阅者管理借阅者?extend?取消预定修改借阅者预定管理图书管理增加图书查询图书查询借书情况管理图书查询图书借书者修改图书?extend?extend?extend?系统管理员?extend?_| *?extend?extend?用例文档登录SCENARIOS胃 Basic Path. Basic Path1 .用户进入图书馆的登录页面2 .用户输入用户名和密码Alternate: 2a.用户输入用户名错误Alternate: 2b.用户输入的密码错误3
10、 .登陆成功需Alternate.用户输入用户名错误1 .显示用户名错误2 .用户重新输入用户名N Alternate.用户输入的密码错误1 .显示密码错误2 .用户重新输入用户名借由书目Ba Basic Path. Basic Path1 .图书管理员请求系统处理借书业务2 .系统显示借书处理界面3 .图书管理员输入借阅证信息4 .系统验证借阅证的有效性Exception: 4a.借书证不合法5 .图书管理员输入图书信息6 .系统添加新的借阅记录Exception: 6a.借阅者借书数量已达到上限Alternate: 6b.书籍库存为07 .系统显示借书后的借阅信息,图书管理员重复5-7步,
11、直到结束W Exception.借书证不合法1 .系统显示借书证不合法2 .图书管理员进行确认W Exception.借阅者借书数量已达到上限1 .系统显示借书者借书详细信息并报警2 .图书管理员处理报警并结束借书需Alternate.书籍库存为01 .显示库存为02 .管理员结束借书取消预定SCENARIOSK Basic Path. Basic Path1 .借阅者取消预定图书Alternate: 1a.系统收不到取消预定的信息2 .图书管理员修改借阅者信息3 .取消预定成功W Alternate.系统收不到取消预定的信息1 .取消预定失败2 .提醒借阅者重新取消预定图书处理超期SCENA
12、RIOSR Basic Path. Basic Path1 .图书管理员检查到归还图书超期2 .图书管理员根据超出的时间计算罚金3 .图书管理员要求借书证缴纳罚金4 .超期处理完成处理赔偿SCENARIOSBa Basic Path. Basic Path1 .图书管理员检查到借阅的图书已损坏2 .图书管理员根据图书的损坏情况要求借阅者赔偿3 .处理赔偿完成预定SCENARIOSN Basic Path. Basic Path1 .借阅者登录图书管理系统2 .借阅者预定图书Exception: 2a. 该图书库存为0,确定预定时间Exception: 2b.该图书库存不为0,确定预定时间3 .
13、预定图书成功HT Alternate.图书库存为01.显示该图书库存为0N Exception.该图书库存为0,确定预定时间1.显示该图书的预定时间需 Exception.该图书库存不为0,确定预定时间1.按规定显示预定时间返还书目SCENARIOSBa Basic Path. Basic Path1 .学生携带图书借阅证,进入图书馆2 .学生归还图书3 .图书管理员检查学生所借阅图书的情况Alternate:3a.学生借阅的图书超期Alternate:3b.学生借阅的图书已损坏Exception:3c.图书是否超期Exception:3d.图书是否损坏Exception:3e.学生是否缴纳罚
14、金Exception:3f.图书是不是本馆的藏书4 .系统删除学生借阅信息W Alternate.学生借阅的图书超期1 .显示借阅的图书超期2 .图书管理员根据规定和图书的超期情况向学生收取相应的罚金需Alternate.学生借阅的图书已损坏1 .显示图书已损坏2 .图书管理员根据规定及图书的损坏情况向学生收取相应的罚金W Exception.图书是否超期1.图书管理员检查学生所借阅的图书是否超期常Exception.图书是否损坏1.图书管理员检查学生所借阅的图书是否损坏常Exception.学生是否缴纳罚金1.图书管理员判断学生是否缴纳罚金W Exception.图书是不是本馆的藏书1 .图
15、书管理员输入图书信息2 .系统验证该图书是不是本馆藏书类图(领域模型)包图用户界面层图书管理员界面借阅者界面登录窗体图书查询主窗体主窗体借书窗体还书窗体借阅信息查询代理借阅书籍数据库设计数据库概念数据模型 CDM寸象如下图,该图显示了各实体的属性及各实体之间的关系。adminadmin_id <pi> Integer <M> admin_name Characters (20) password Characters (16) loginsIntegerlast_login<Undefined>rightInteger0 n Identifier_1 <
16、;pi>loginright Integerreversationreservation_time Date & Time reservationcanceDate & Time ibooks0,nbook_id title type_id author price<pi> Integerbook concern addtime amount remainIdentifier_1 <pi><M:Characters (20) Integer Characters (40) Money (20) Characters (50) Date &am
17、p; Time Integer Integer0,nbooktype -I b00ktypetype_id Integer0,n0,nreaderreader_id<pi> Integer<M>reader_nameCharacters (20)sexCharacters (2)ageByte (100)classCharacters(15)addressTextmemoTextmaxborrowedIntegerreader_password Characters (16) rightIntegerIdentifier_1 <pi>borrow_infor
18、mationborrow_timDate & Time end_time Date & Time amount Integerreturn time Date & Time./0,n由PDM对象自动生成的数据库脚本文件代码如下:if exists (select 1from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('books') and = '
19、FK_BOOKS_管理书籍 _ADMIN')alter table booksdrop constraint FK_BOOKS_管理书籍 _ADMINgoif exists (select 1from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('borrow_information') and = 'FK_BORROW_I_BORROW_IN_BOOKS'
20、) alter table borrow_informationdrop constraint FK_BORROW_I_BORROW_IN_BOOKS goif exists (select 1from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('borrow_information') and = 'FK_BORROW_I_BORROW_IN_READER')
21、alter table borrow_informationdrop constraint FK_BORROW_I_BORROW_IN_READER goif exists (select 1from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('login') and = 'FK_LOGIN_LOGIN_ADMIN') alter table logindrop
22、constraint FK_LOGIN_LOGIN_ADMIN goif exists (select 1from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('login') and = 'FK_LOGIN_LOGIN2_READER') alter table logindrop constraint FK_LOGIN_LOGIN2_READER goif ex
23、ists (select 1from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('reversation') and = 'FK_REVERSAT_REVERSATI_BOOKS')alter table reversationdrop constraint FK_REVERSAT_REVERSATI_BOOKS goif exists (select 1from
24、 dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('reversation') and = 'FK_REVERSAT_REVERSATI_READER') alter table reversationdrop constraint FK_REVERSAT_REVERSATI_READER goif exists (select 1 from sysindexes wh
25、ere id = object_id('admin') and name ='权限 _FK'and indid > 0 and indid < 255)drop index admin. 权限 _FK goif exists (select 1 from sysobjects where id = object_id('admin')and type = 'U') drop table admin goif exists (select 1 from sysindexes where id = object_id(
26、39;books') and name ='管理书籍 _FK'and indid > 0 and indid < 255)drop index books.管理书籍 _FKgoif exists (select 1 from sysindexes where id = object_id('books') and name ='图书类型 _FK'and indid > 0and indid < 255) drop index books. 图书类型 _FKgoif exists (select 1 from sys
27、objects where id = object_id('books')and type = 'U')drop table booksgoif exists (select 1from sysobjectswhere id = object_id('booktype')and type = 'U')drop table booktypegoif exists (select 1from sysindexeswhere id = object_id('borrow_information')and name = &
28、#39;Association_2_FK'and indid > 0and indid < 255)drop index borrow_information.Association_2_FK goif exists (select 1from sysindexeswhere id = object_id('borrow_information')and name = 'Association_1_FK'and indid > 0and indid < 255)drop index borrow_information.Assoc
29、iation_1_FK goif exists (select 1from sysobjectswhere id = object_id('borrow_information')and type = 'U')drop table borrow_informationgoif exists (select 1from sysindexeswhere id = object_id('login')and name = 'login2_FK'and indid > 0and indid < 255)drop index l
30、ogin.login2_FKgoif exists (select 1from sysindexeswhere id = object_id('login')and name = 'login_FK'and indid > 0and indid < 255) drop index login.login_FKgoif exists (select 1from sysobjectswhere id = object_id('login')and type = 'U') drop table logingoif exist
31、s (select 1from sysindexeswhere id = object_id('reader')and name ='用户权限 _FK'and indid > 0and indid < 255) drop index reader.用户权限 _FKgoif exists (select 1 from sysobjects where id = object_id('reader')and type = 'U') drop table readergoif exists (select 1 from sy
32、sindexes where id = object_id('reversation')and name = 'reversation2_FK'and indid > 0and indid < 255)drop index reversation.reversation2_FK goif exists (select 1from sysindexeswhere id = object_id('reversation')and name = 'reversation_FK'and indid > 0and indi
33、d < 255)drop index reversation.reversation_FKgoif exists (select 1from sysobjectswhere id = object_id('reversation')and type = 'U')drop table reversationgocreate table admin (admin_id intnot null,admin_name char(20) null,admin_password char(16) null,loginsintnull,last_loginchar(10
34、)null,"right"intnull,constraint PK_ADMIN primary key nonclustered (admin_id) )gocreate index权限 _FK on admin ()gocreate table booktype (type_idintnull)gocreate table books (book_idintnot null,admin_idintnull,titlechar(20)null,type_idintnull,authorchar(40)null,pricemoneynull,"book conce
35、rn" char(50)null,addtimedatetimenull,amountintnull,remainintnull,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)gocreate index图书类型 _
36、FK on books ()gocreate index管理书籍 _FK on books (admin_id ASC)gocreate table reader (reader_idintnot null,reader_namechar(20)null,sexchar(2)null,agetinyintnull,classchar(15)null,addresstextnull,memotextnull,maxborrowedintnull,reader_password char(16)null,"right"intnull,constraint PK_READER p
37、rimary key nonclustered (reader_id)gocreate table borrow_information (book_idintnot null,reader_idintnot null,borrow_timedatetimenull,end_timedatetimenull,amountintnull,return_timedatetimenull,constraint PK_BORROW_INFORMATION primary key (book_id, reader_id),constraint FK_BORROW_I_BORROW_IN_BOOKS fo
38、reign key (book_id)references books (book_id),constraint FK_BORROW_I_BORROW_IN_READER foreign key (reader_id)references reader (reader_id)gocreate index Association_1_FK on borrow_information (book_id ASC)gocreate index Association_2_FK on borrow_information (reader_id ASC)gocreate table login (admi
39、n_idintnot null,reader_idintnot null,"right" intnull,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)gocreate index
40、 login_FK on login (admin_id ASC)gocreate index login2_FK on login (reader_id ASC)gocreate index用户权限 _FK on reader ()gocreate table reversation (book_idintnot null,reader_idintnot null,reservation_time datetimenull,reservationcancel datetimenull,constraint PK_REVERSATION primary key (book_id, reader
41、_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 (reader_id)gocreate index reversation_FK on reversation (book_id ASC)gocreate index reversation2_FK on reversation (reader_id
42、 ASC)go系统的顺序图顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的。该图书馆管理系统主要含有 以下几个重要的顺序图,其他对象的顺序图和这些也类似。(1) 借书顺序图(2) 还书顺序图(3) 罚款顺序图1、借书顺序图(1) login ():登录系统。(2) checkstu_card():对读者信息进行验证,检查是否符合本图书馆借书条件。(3) showinformation ():显示该读者的基本信息函数。(4) borrow ():读者借书函数。(5) getreaders ():取得读者信息函数。看该读者是否符合借书条件,若符合,则返 回可借信息。(6) gettitle
43、 ():取得书目信息。(7) getreservation ():检验书籍是否被预订函数。(8) getnoreservation ():书籍没被预订或取消预订函数。(9) create (borrower , item):创建书籍外借函数。借书时,读者先将书拿予管理员,管理员对书籍和读者进行检验,若书籍和读者都符合借 书条件,则借书成功。2、还书顺序图:I : :荏有界仍:bcmogjM |: Ittm.bCHMM(1) login ():登录系统。(2) getitem():取得书籍条目信息。(3) update ():对图书馆书籍条目和借阅者信息进行更新条目。还书时,读者先将书交给管理员
44、,由管理员扫描书籍,若书籍没有过期等违规现象,则对书目 和读者借阅信息进行更新,同时还书成功。3、罚款顺序图管理员对书籍进行扫描,若发现书籍已经超过了图书馆规定的还书期限,则按每天一定金 额进行罚款,过期天数和罚款金额由系统自动计算。用户交完罚金后,则对读者借阅信息 进行更新。系统的活动图活动图描述的是某流程中的任务的执行,活动图描述活动是如何协同工作的,当一个操 作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰 地描述这些事情。在本图书馆管理系统中,我们主要描述了图书馆系统的借书、还书和预订 的活动图。1.借书活动图管理员首先要扫描读者的借书证,检验证件是否
45、符合图书馆借书条件,若该读者的借书 数量还未达到最大规定数量,并且其所借书籍均未属于过期范围,则符合借书条件。则再扫描 书籍条形码,检查书籍是否是不可借书籍或者已经被预订,若被预订,则取消预订,方可借书。在这些条件都符合时则更新书籍信息和读者的借阅信息,记录好借书的时间。,更新书籍信息(和读者信息借书成功2、还书活动图图书管理员对书籍进行扫描,若书籍已经过期,则要求读者还请欠款才能还书,读者缴应 交罚款后,更新书目信息和读者信息。忖描书籍条形码3、预订图书活动图读者先进入系统查询自己所需要的书籍,显示书籍信息,检验书籍是否属于可预订书籍, 若符合条件则检查书籍是否已经被预订或已经被外借,若都未成立,则读者登录系统,并对该 书籍进行预订。界面元素1)系统登录页面系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论