图书管理系统的架构设计_第1页
图书管理系统的架构设计_第2页
图书管理系统的架构设计_第3页
图书管理系统的架构设计_第4页
图书管理系统的架构设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生学号 实验课成绩学 生 实 验 报 告 书实验课程名称软件设计与体系结构开 课 学 院计算机科学与技术学院指导教师姓名陈明俊学 生 姓 名学生专业班级软件14022016-2017学年第一学期实验课程名称:_软件设计与体系结构_ 实验项目名称 图书管理系统的架构设计实验成绩实 验 者专业班级软件1402组 别同 组 者实验日期 年 月 日一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等)一 实验目的1、以图书管理系统为例,完成系统的架构设计,了解架构设计的过程和方法,并用UML建模工具正确的表达架构结果。2、以图书管理系统为例,完成系统

2、的详细设计,了解详细设计的过程和方法,程序运行流程的细节,检验设计的合理性。二 实验内容第一部分图书管理系统需求信息如下: 我们曾经在UML建模技术中对图书管理系统建模,本课程的实验是在此基础上对该系统提出更多的要求,并进行架构和详细设计。 在图书馆的图书管理系统中,学生要想借阅图书,必须先在系统中注册一个账号,然后系统为其生成一个借阅证,借阅证可以提供学生的姓名,系别和借阅证号。持有借阅证的借阅者可以借阅图书,归还图书和查询借阅信息,但这些操作都是通过图书管理员代理与系统交互。在借阅图书时,学生进入图书馆内首先找到自己要借阅的图书,然后到借书处将借书证和图书交给图书管理员办理借阅手续。图书管

3、理员进行借书操作时,首先需要输入学生的借书证号,系统验证借阅证是否有效(根据系统是否存在借阅证号所对应的账户),若有效,则系统还需要检验该账户中的借阅信息,以验证借书者借阅的图书是否超过了规定的数量,或者借阅者是否有超过规定借阅期限而未归还的图书;如果通过了系统的验证,则系统会显示借阅者的信息以提示图书管理员输入要借阅的图书信息,然后图书管理员输入要借阅的图书信息,系统记录一个借阅信息,并更新该学生账户完成借阅图书操作。 学生还书时只需要将所借的图书交给图书管理员,由图书管理员负责输入图书信息,然后由系统验证该图书是否为本馆藏书,若是则系统删除相应的借阅信息,并更新相应的学生账户。在还书时也会

4、检验该学生是否有超期未归还的图书,学生也可以查询自己的借阅信息。为了系统能够正常运行和系统的安全性,系统还需要系统管理员进行系统的维护。通过对上述图书管理系统的分析,可以获得如下的功能性需求: 1 学生持有借书证 2 图书管理员作为借阅者的代理完成借阅图书,归还图书和查询借阅信息工作3 系统管理员完成对系统的维护,对系统的维护主要包括办理借阅证,删除借阅证,添加管理员,删除管理员,添加图书,删除图书,添加标题信息,删除标题信息4 图书馆服务的对象扩充到老师和学生,学生又分为博士生,研究生,本科生,专科生等,不同类型的对象可以借阅的图书数量和期限都是不同的。 5 图书的种类扩充到中外文图书,中外

5、文杂志,论文等。 6 学生和老师可以通过网络进行预约,查询7 超期罚款,各种类型的借出物罚款规则不同(超期时间的规定和罚金都不同)第二部分 1以实验一的结果为基础,设计每个具体类的数据结构,算法和程序运行流程。 2 界面元素的设计。 3 用代码实现设计结果界面设计原则: 1.简易性:界面的简洁是要让用户便于使用、便于了解、并能减少用户发生错误选择的可能性。2.用户语言:界面中要使用能反应用户本身的语言,而不是游戏设计者的语言。3.记忆负担最小化:人脑不是电脑,在设计界面时必须要考虑人类大脑处理信息的限度。人类的短期记忆极不稳定、有限,24小时内存在25%的遗忘率。所以对用户来说,浏览信息要比记

6、忆更容易。4.一致性:是每一个优秀界面都具备的特点。界面的结构必须清晰且一致,风格必须与游戏内容相一致。5.清楚:在视觉效果上便于理解和使用。6.用户的熟悉程度:用户可通过已掌握的知识来使用界面,但不应超出一般常识。7.从用户的观点考虑:想用户所想,做用户所做。用户总是按照他们自己的方法理解和使用。8.排列:一个有序的界面能让用户轻松的使用。9.安全性:用户能自由的作出选择,且所有选择都是可逆的。在用户作出危险的选择时有信息介入系统的提示。10.灵活性:简单来说就是要让用户方便的使用,但不同于上述。即互动多重性,不局限于单一的工具(包括鼠标、键盘或手柄)。11.人性化:高效率和用户满意度是人性

7、化的体现。应具备专家级和初级玩家系统,即用户可依据自己的习惯定制界面,并能保存设置。三 实验步骤1采用用例驱动的分析方法,分析业务领域的需求,识别系统中的参与者和用例,写出用例的文本,建立用例模型。 要求正确识别系统的所有角色和用例;准确描述用例间的关系;描述系统中重要用例的基本事件流(正常情况),备选事件流和异常事件流。2根据步骤1的结果,进一步建立领域模型(类图),完成静态模型的建立。 要求正确识别出领域类,并给类增加属性和关联。3 结合某一种具体的框架(比如Java的JavaEE,Spring等)设计系统的架构,要求采用分层的架构和MVC模式,用包图表达架构。4 根据1,2,3的结果以用

8、例或用例的场景为基本单元,设计各层包含的类,接口及其交互(类图,顺序图等)以实现用例或场景,尽可能在设计中体现OO的设计原则,设计模式。可以选择一步完成或分两步完成设计,如果选择一步完成,就没有分析类图,直接得出设计类图。两步完成: 第一步不考虑界面和持久化类,只考虑领域类,建立分析类图及分析类之间的交互顺序图。 第二步考虑加入界面类和持久化类,在第一步的基础上增强和完善分析类图和交互图,得到设计类图和更精确的交互顺序图。5完成图书管理系统的数据库设计。 数据库的设计是以领域模型为基础的,经过分析类图和设计类图的细化,找出需要持久化的类,转化为关系模型。 第二部分:实验过程记录(可加页)(包括

9、实验原始数据记录,实验现象记录,实验过程发现的问题等)用例模型用例文档登录SCENARIOS Basic Path. Basic Path1. 用户进入图书馆的登录页面2. 用户输入用户名和密码Alternate: 2a. 用户输入用户名错误 Alternate: 2b. 用户输入的密码错误 3. 登陆成功 Alternate. 用户输入用户名错误1. 显示用户名错误2. 用户重新输入用户名 Alternate. 用户输入的密码错误1. 显示密码错误2. 用户重新输入用户名借出书目 Basic Path. Basic Path1. 图书管理员请求系统处理借书业务2. 系统显示借书处理界面3.

10、图书管理员输入借阅证信息4. 系统验证借阅证的有效性Exception: 4a. 借书证不合法 5. 图书管理员输入图书信息6. 系统添加新的借阅记录Exception: 6a. 借阅者借书数量已达到上限 Alternate: 6b. 书籍库存为0 7. 系统显示借书后的借阅信息,图书管理员重复5-7步,直到结束 Exception. 借书证不合法1. 系统显示借书证不合法2. 图书管理员进行确认 Exception. 借阅者借书数量已达到上限1. 系统显示借书者借书详细信息并报警2. 图书管理员处理报警并结束借书 Alternate. 书籍库存为01. 显示库存为02. 管理员结束借书取消预

11、定SCENARIOS Basic Path. Basic Path1. 借阅者取消预定图书Alternate: 1a. 系统收不到取消预定的信息 2. 图书管理员修改借阅者信息3. 取消预定成功 Alternate. 系统收不到取消预定的信息1. 取消预定失败2. 提醒借阅者重新取消预定图书处理超期SCENARIOS Basic Path. Basic Path1. 图书管理员检查到归还图书超期2. 图书管理员根据超出的时间计算罚金3. 图书管理员要求借书证缴纳罚金4. 超期处理完成处理赔偿SCENARIOS Basic Path. Basic Path1. 图书管理员检查到借阅的图书已损坏2

12、. 图书管理员根据图书的损坏情况要求借阅者赔偿3. 处理赔偿完成预定SCENARIOS Basic Path. Basic Path1. 借阅者登录图书管理系统2. 借阅者预定图书Exception: 2a. 该图书库存为0,确定预定时间 Exception: 2b. 该图书库存不为0,确定预定时间 3. 预定图书成功 Alternate. 图书库存为01. 显示该图书库存为0 Exception. 该图书库存为0,确定预定时间1. 显示该图书的预定时间 Exception. 该图书库存不为0,确定预定时间1. 按规定显示预定时间返还书目SCENARIOS Basic Path. Basic

13、Path1. 学生携带图书借阅证,进入图书馆2. 学生归还图书3. 图书管理员检查学生所借阅图书的情况Alternate: 3a. 学生借阅的图书超期 Alternate: 3b. 学生借阅的图书已损坏 Exception: 3c. 图书是否超期 Exception: 3d. 图书是否损坏 Exception: 3e. 学生是否缴纳罚金 Exception: 3f. 图书是不是本馆的藏书 4. 系统删除学生借阅信息 Alternate. 学生借阅的图书超期1. 显示借阅的图书超期2. 图书管理员根据规定和图书的超期情况向学生收取相应的罚金 Alternate. 学生借阅的图书已损坏1. 显示图

14、书已损坏2. 图书管理员根据规定及图书的损坏情况向学生收取相应的罚金 Exception. 图书是否超期1. 图书管理员检查学生所借阅的图书是否超期 Exception. 图书是否损坏1. 图书管理员检查学生所借阅的图书是否损坏 Exception. 学生是否缴纳罚金1. 图书管理员判断学生是否缴纳罚金 Exception. 图书是不是本馆的藏书1. 图书管理员输入图书信息2. 系统验证该图书是不是本馆藏书类图(领域模型)包图(三层架构)数据库设计数据库概念数据模型CDM对象如下图,该图显示了各实体的属性及各实体之间的关系。由PDM对象自动生成的数据库脚本文件代码如下:if exists (s

15、elect 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 = FK_BOOKS_管理书籍_ADMIN)alter table books drop constraint FK_BOOKS_管理书籍_ADMINgoif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.consti

16、d and o.type = F) where r.fkeyid = object_id(borrow_information) and = FK_BORROW_I_BORROW_IN_BOOKS)alter table borrow_information drop constraint FK_BORROW_I_BORROW_IN_BOOKSgoif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid

17、 = object_id(borrow_information) and = FK_BORROW_I_BORROW_IN_READER)alter table borrow_information drop constraint FK_BORROW_I_BORROW_IN_READERgoif 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

18、 = FK_LOGIN_LOGIN_ADMIN)alter table login drop constraint FK_LOGIN_LOGIN_ADMINgoif 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 = FK_LOGIN_LOGIN2_READER)alter table login drop constraint FK_LOGIN_LOG

19、IN2_READERgoif 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 = FK_REVERSAT_REVERSATI_BOOKS)alter table reversation drop constraint FK_REVERSAT_REVERSATI_BOOKSgoif exists (select 1 from dbo.sysre

20、ferences 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 reversation drop constraint FK_REVERSAT_REVERSATI_READERgoif exists (select 1 from sysindexes where id = object_id(admin) and name = 权限_

21、FK and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 255) drop index reversation.reversation_FKgoif exists (select 1 from sysobjects where id = object_id(reversation) and type = U) drop table reversationgocreate table ad

22、min ( 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)gocreate index 权限_FK on admin ()gocreate table booktype ( type_id int null)gocreate table books ( boo

23、k_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

24、 (admin_id) references admin (admin_id), constraint FK_BOOKS_BOOKTYPE_BOOKTYPE foreign key () references booktype)gocreate index 图书类型_FK on books ()gocreate 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

25、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)gocreate table borrow_information ( book_id int not null, reader_id int not null, borrow_time datetime null, end

26、_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 read

27、er (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 ( admin_id int not null, reader_id int not null, right int null, constraint PK_LOGIN primary key (admin_id, reader_id), constrain

28、t 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 login_FK on login (admin_id ASC)gocreate index login2_FK on login (reader_id ASC)gocreate index 用户权限_FK on reader ()gocreat

29、e 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_REVE

30、RSAT_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 ASC)go系统的顺序图顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的。该图书馆管理系统主要含有以下几个重要的顺序图,其他对象的顺序图和这些也类似。(1) 借书顺序图(2) 还书顺序图(3) 罚款顺序图1、 借

31、书顺序图(1) login():登录系统。(2) checkstu_card():对读者信息进行验证,检查是否符合本图书馆借书条件。(3) showinformation():显示该读者的基本信息函数。(4) borrow():读者借书函数。(5) getreaders():取得读者信息函数。看该读者是否符合借书条件,若符合,则返回可借信息。(6) gettitle():取得书目信息。(7) getreservation():检验书籍是否被预订函数。(8) getnoreservation():书籍没被预订或取消预订函数。(9) create(borrower,item):创建书籍外借函数。借

32、书时,读者先将书拿予管理员,管理员对书籍和读者进行检验,若书籍和读者都符合借书条件,则借书成功。2、 还书顺序图(1) login():登录系统。(2) getitem():取得书籍条目信息。(3) update():对图书馆书籍条目和借阅者信息进行更新条目。还书时,读者先将书交给管理员,由管理员扫描书籍,若书籍没有过期等违规现象,则对书目和读者借阅信息进行更新,同时还书成功。3、 罚款顺序图管理员对书籍进行扫描,若发现书籍已经超过了图书馆规定的还书期限,则按每天一定金额进行罚款,过期天数和罚款金额由系统自动计算。用户交完罚金后,则对读者借阅信息进行更新。系统的活动图活动图描述的是某流程中的任

33、务的执行,活动图描述活动是如何协同工作的,当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事情。在本图书馆管理系统中,我们主要描述了图书馆系统的借书、还书和预订的活动图。1.借书活动图 管理员首先要扫描读者的借书证,检验证件是否符合图书馆借书条件,若该读者的借书数量还未达到最大规定数量,并且其所借书籍均未属于过期范围,则符合借书条件。则再扫描书籍条形码,检查书籍是否是不可借书籍或者已经被预订,若被预订,则取消预订,方可借书。在这些条件都符合时则更新书籍信息和读者的借阅信息,记录好借书的时间。2、还书活动图图书管理员对书籍进行扫描,若书籍已经过

34、期,则要求读者还请欠款才能还书,读者缴应交罚款后,更新书目信息和读者信息。3、预订图书活动图读者先进入系统查询自己所需要的书籍,显示书籍信息,检验书籍是否属于可预订书籍,若符合条件则检查书籍是否已经被预订或已经被外借,若都未成立,则读者登录系统,并对该书籍进行预订。界面元素1) 系统登录页面系统登录页面主要是用户进入系统验证的一种手段,通过登录页面对用户角色的判定,根据不同的用户角色,控制不同的功能权限。超级管理员进入超级管理员页面,管理员进入管理员页面,学生进入学生页面。2) 管理员页面管理员系统实现页面主要包括对学生信息管理页面,图书信息管理页面,借阅信息管理页面以及系统信息管理页面四个方面,下面分别对这四个方面的系统实现作相关的介绍。3)学生管理信息页面本系统对学生管理包括:添加学生信息,修改学生信息、删除学生信息,查询学生信息。在添加学生信息与修改学生信息时,进行相应的验证,主要是必填与唯一性验证。学生管理主页面,主要是进行学生信息查询,删除学生信息操作。可以通过学院,专业,班级索引进行查询4)图书管理信息页面图书信息管理包括:添加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论