图书管理系统的架构设计(30页).doc

上传人:1595****071 文档编号:43100903 上传时间:2022-09-16 格式:DOC 页数:30 大小:748.50KB
返回 下载 相关 举报
图书管理系统的架构设计(30页).doc_第1页
第1页 / 共30页
图书管理系统的架构设计(30页).doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《图书管理系统的架构设计(30页).doc》由会员分享,可在线阅读,更多相关《图书管理系统的架构设计(30页).doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-图书管理系统的架构设计实验课成绩学 生 实 验 报 告 书实验课程名称软件设计与体系结构开 课 学 院计算机科学与技术学院指导教师姓名陈明俊学 生 姓 名学生专业班级软件14022016-2017学年第一学期-第 27 页学生学号 实验课程名称:_软件设计与体系结构_ 实验项目名称 图书管理系统的架构设计实验成绩实 验 者专业班级软件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.灵活性:简单来说就是要让用户方便的使用,但不同于上述。即互动多重性,不局限于单一的工具(包括鼠标、键盘或手柄)。

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

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

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

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

11、显示库存为02. 管理员结束借书取消预定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

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

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

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

15、文件代码如下:if 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(books) and o.name = FK_BOOKS_管理书籍_ADMIN)alter table books drop constraint FK_BOOKS_管理书籍_ADMINgoif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o

16、on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(borrow_information) and o.name = 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

17、= F) where r.fkeyid = object_id(borrow_information) and o.name = 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_i

18、d(login) and o.name = 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 o.name = FK_LOGIN_LOGIN2_READER)alter table login drop cons

19、traint FK_LOGIN_LOGIN2_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 o.name = FK_REVERSAT_REVERSATI_BOOKS)alter table reversation drop constraint FK_REVERSAT_REVERSATI_BOOKSgoif exists (sele

20、ct 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 o.name = FK_REVERSAT_REVERSATI_READER)alter table reversation drop constraint FK_REVERSAT_REVERSATI_READERgoif exists (select 1 from sysindexes where id = object_id(ad

21、min) and name = 权限_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 reversati

22、ongocreate table admin ( 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)gocreat

23、e table books ( book_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_管理书

24、籍_ADMIN foreign key (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)

25、 null, age tinyint 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

26、 datetime null, end_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_

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

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

29、on reader ()gocreate 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),

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 合同协议

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁