武汉理工大学软件设计与体系结构实验报告图文 2.docx

上传人:b****2 文档编号:23145910 上传时间:2023-05-08 格式:DOCX 页数:39 大小:1.41MB
下载 相关 举报
武汉理工大学软件设计与体系结构实验报告图文 2.docx_第1页
第1页 / 共39页
武汉理工大学软件设计与体系结构实验报告图文 2.docx_第2页
第2页 / 共39页
武汉理工大学软件设计与体系结构实验报告图文 2.docx_第3页
第3页 / 共39页
武汉理工大学软件设计与体系结构实验报告图文 2.docx_第4页
第4页 / 共39页
武汉理工大学软件设计与体系结构实验报告图文 2.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

武汉理工大学软件设计与体系结构实验报告图文 2.docx

《武汉理工大学软件设计与体系结构实验报告图文 2.docx》由会员分享,可在线阅读,更多相关《武汉理工大学软件设计与体系结构实验报告图文 2.docx(39页珍藏版)》请在冰豆网上搜索。

武汉理工大学软件设计与体系结构实验报告图文 2.docx

武汉理工大学软件设计与体系结构实验报告图文2

学生学号

实验课成绩

武汉理工大学

学生实验报告书

 

实验课程名称软件设计与体系结构

开课学院计算机科学与技术学院

指导老师姓名陈明俊

学生姓名

学生专业班级软件1302班

 

2017—2018学年第1学期

实验课程名称:

软件设计与体系结构

实验项目名称

图书管理系统的架构设计

实验成绩

实验者

专业班级

软件1302班

组别

同组者

实验日期

2017年10月23日

第一部分:

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

实验目的:

以图书管理系统为例,完成系统的架构设计,了解架构设计的过程和方法。

实验内容:

1采用用例驱动的分析方法,分析需求的主要任务,识别系统中的参与者和用例,写出用例的文本,建立用例模型。

2根据1的结果,进一步建立领域模型(类图),完成静态模型的建立。

3结合某一种具体的框架(比如Java的JavaEE,Spring等)设计系统的架构,要求采用分层的架构和MVC模式,用包图表达架构。

4根据1,2,3的结果设计各层包含的类,接口及其交互(类图,顺序图等),尽可能在设计中体现OO的设计原则,设计模式。

5完成图书管理系统的数据库设计。

二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等,用硬件逻辑或者算法描述)

建立领域模型:

1、从业务描述中提取名词;

2、从提取出来的名词中总结业务实体,区分名词中的属性、角色、实体、实例,形成问题域中操作实体的集合;

3、从业务实体集合中抽象业务模型,建立问题域的概念;

4、用UML提供的方法和图例进行领域模型设计、确定模型之间的关系。

注:

实体之间的关系,主要有泛化、依赖和关联,关联又分了一般关联、聚合、组合等

数据库设计:

1.需求分析阶段:

综合各个用户的应用需求

2.概念设计阶段:

形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图)

3.逻辑设计阶段:

首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式

4.物理设计阶段:

根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。

三、主要仪器设备及耗材

PC机、MicrosoftVisio

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

实验输入:

图书管理系统的功能性需求:

1学生持有借书证

2图书管理员作为借阅者的代理完成借阅图书,归还图书和查询借阅信息工作

3系统管理员完成对系统的维护,对系统的维护主要包括办理借阅证,删除借阅证,添加管理员,删除管理员,添加图书,删除图书,添加标题信息,删除标题信息

4图书馆服务的对象扩充到老师和学生,学生又分为博士生,研究生,本科生,专科生等,不同类型的对象可以借阅的图书数量和期限都是不同的。

5图书的种类扩充到中外文图书,中外文杂志,论文等。

6学生和老师可以通过网络进行预约,查询

7超期罚款,各种类型的借出物罚款规则不同(超期时间的规定和罚金都不同)

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

1用例模型

(1)用例文本:

用例编号:

001

用例名称:

用户登录

用例描述:

用户登录图书馆管理系统

参与者:

用户

前置条件:

图书馆的管理系统正常运行

后置条件:

用户登录成功

基本路径:

1.用户进入图书馆的登录页面

2.用户输入用户名和密码

3.登陆成功

扩展点:

变异点:

4a.用户输入的用户名错误

4a2.用户重新输入用户名。

4b.用户输入的密码错误

4b2.用户重新输入密码。

用例编号:

002

用例名称:

查询信息

用例描述:

学生或图书管理员查询学生借阅的书籍。

参与者:

学生,图书管理员

前置条件:

图书馆的主页面正常运行

后置条件:

如果学生信息无误,则查询成功,否则失败。

基本路径:

1.学生在图书管理系统上进行查询;

2.图书管理员对学生的个人信息进行查询;

扩展点:

变异点:

3a.学生向图书管理员提出申请未通过

3a1.用户重新提出申请;

3a2.图书管理员重新审核。

用例编号:

003

用例名称:

学生借阅图书

用例描述:

学生携带图书借阅证进行图书的借阅。

参与者:

学生

前置条件:

图书馆正常开放

后置条件:

如果学生的图书借阅证扫描成功,学生进入图书馆借阅,进行图书的借阅等操作;否则,不能借阅图书。

基本路径:

1.学生携带图书借阅证进入图书馆;

2.用户到图书馆查阅相关的图书信息;

3.学生向图书管理员提出借阅图书的请求;

4.图书管理员检查借阅证的有效性;

5.图书管理员检查学生有无超期未还信息;

6.图书管理员允许学生借阅图书。

7.系统添加借阅信息。

扩展点:

变异点:

2a.学生查阅的图书不存在

2a1.学生离开图书馆,或学生搜索其他的图书信息;

5a.无法借书

5a1.系统弹出学生的图书实际借阅的数量超过图书额定的借阅数量

5b.无法借书

5b1.系统显示图书证与学生本人信息不符;

5c.无法借书

5c1.系统显示学生有超期未还得图书;

5c2.学生归还未还图书并交罚款;

5c3.可以借书。

用例编号:

004

用例名称:

学生归还图书

用例描述:

学生到图书馆归还所借阅的图书

参与者:

学生

前置条件:

图书馆正常开放、学生携带图书借阅证及所需还的书。

后置条件:

如果归还了图书,下次可以正常借书。

基本路径:

1、学生携带图书借阅证,进入图书馆;

2、学生归还图书;

3、图书管理员检查学生所借图书的情况;

4、系统删除学生的借阅信息。

扩展点:

3a.图书管理员检查学生借阅的图书是否超期

3a1.图书管理员检查学生借阅的图书是否损坏

3a2.图书管理员判断学生是否缴纳罚金

变异点:

3a.学生借阅的图书超期

3a1.图书管理员根据规定及图书的超期情况向学生收取相应的罚金;

3b.学生借阅的读书已损坏

3ab1.图书管理员根据规定及图书的损坏情况向学生收取相应的罚金;

用例编号:

005

用例名称:

更新图书信息

用例描述:

图书管理员对新书上架或者是图书下架进行处理

参与者:

图书管理员

前置条件:

图书管理员正常工作

后置条件:

图书馆可以正常开放

基本路径:

1.搜集旧书和新书的信息

1.对新书贴条形码;;

2.把旧书下架

3.把新书上架;

用例编号:

006

用例名称:

更新学生信息

用例描述:

超级管理员增加或删除学生的信息

参与者:

超级管理员

前置条件:

图书馆开放

后置条件:

学生的信息没有错误

基本路径:

1.超级管理员搜集学生信息;

2.超级管理员增加或删除学生信息

扩展点:

变异点:

2a.学生信息有误

2a1.系统显示无法读出用户信息

用例编号:

007

用例名称:

处理还书

用例描述:

处理学生的还书操作。

参与者:

图书管理员

前置条件:

图书馆开放

后置条件:

图书管理系统正常运行

基本路径:

1.学生发出还书请求;

2.图书管理员扫描图书条形码;

3.图书管理员检查图书是否有损坏,若有损坏则要求学生按要求交罚款;

4.图书管理员检查图书是否超期归还,若是超期还书则要求学生按要求交罚款;

2领域模型

根据上述用例模型,经一步建立领域模型,如下图1-2:

图1-2领域模型设计

3系统架构

使用基于SSH框架的三层架构,SSH框架是指Struts+Hibernate+Spring三大开源框架技术,用SSH技术进行开发,能够提高开发效率,层次清晰。

Struts实现页面的设计和请求的跳转调用业务逻辑;Hibernate实现对数据的增删改查;Spring通过依赖注入控制对象的生成和事务的处理。

Struts对Model、View和Controller都提供了对应的组件。

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架,使用基本的JavaBean来完成以前只可能由EJB完成的事情。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以应用在任何使用JDBC的场合,可以在Servlet/JSP的Web应用中使用,完成数据持久化的重任。

SSH任务分工如图1-3-3所示:

图1-3-3系统架构

4系统设计

(1)超级管理员模块

超级管理员可以对系统进行任何操作,主要包括用户管理,角色管理,功能权限管理,菜单管理。

超级管理员功能模块如图1-4-1所示:

图1-4-1超级管理员功能模块

(2)系统的功能模块

此系统主要是为了管理员与用户操作,对超级管理员只是在特殊情况下才登录,超级管理员能对系统进行任何操作,因此在功能设计模块里不细讲超级管理员的功能实现以及页面设计。

主要介绍管理员与学生的功能实现与页面设计。

图书管理员可以查询、添加、删除、修改的图书信息,借阅信息,系统信息;对学生信息可以进行查询,添加,删除,但不能修改学生信息!

学生可以查询图书馆所存的图书,借阅情况以及基本信息的修改。

图书馆管理系统功能图如图1-4-2所示:

图1-4-2图书馆管理系统功能图

(3)系统登录模块

在本系统中,首先要考虑的问题就是登录系统,通过登录系统对用户权限的判断,控制不同权限的用户进入不同的面页!

超级管理员进行超级管理员页面,管理员进入管理员页面,学生进入学生页面。

登录系统流程图如图1-4-3所示:

图1-4-3登录模块流程图

(4)管理员模块

此模块是介绍管理员模块的实现,主要是学生信息管理,图书信息管理,借阅信息管理以及系统信息管理。

在相关的流程图中,就不作相应的用户判断,默认为管理员身份登录。

进入相应的管理员页面,进行相关的操作。

1)学生管理模块

本系统对学生管理包括:

添加学生信息、修改学生信息、删除学生信息、查询学生信息。

在添加学生信息与修改学生信息时,进行相应的验证,主要是必填与唯一性验证。

学生信息管理流程图如图1-4-4-5所示:

图1-4-4-1学生信息管理流程图

2)图书管理模块

图书信息管理包括:

添加图书信息、删除图书、修改图书信息、查询图书信息。

在添加图书信息与修改图书信息时,进行相应的验证,主要是必填与唯一性验证。

图书信息管理流程图如图3-5所示:

图1-4-4-2图书信息管理流程图

在添加图书信息与修改图书信息时,也进行了相应的必填与唯一性验证。

主要是图书编号,书名,作者,借阅情况为必填项,图书编号与书号不能重复。

3)借阅信息管理模块

学生借阅信息的管理,主要是对学生借阅图书以及归还图书登记。

并判断有没有超期,如果超期,则进行相应的罚款。

借阅信息管理流程图如图1-4-4-3所示:

图1-4-4-3借阅信息管理流程图

4)系统管理

系统管理主要是管理员对图书馆信息、工作人员信息以及工作安排的管理。

系统管理模块如图1-4-4-4所示:

图1-4-4-4系统管理模块

(5)学生模块

学生页面主要包括基本信息,图书信息以及借阅信息。

下面分别对这三个方面作具体的设计:

1)基本信息

因为学生信息是以表结构呈现的,表里也含有他人的基本信息。

为了防止用户可以看到他人的基本信息。

在查看自己基本信息时,需要输入学号与姓名,并且学号与姓名必填。

输入正确则会显示信息,输入有误则查出的是空表,没有任何数据。

基本信息流程图如图1-4-5-1所示:

图1-4-5-1基本信息流程图

2)图书信息

对学生来说,最关心的问题其实是如何方便的查询到想要借阅的书籍,可以及时的了解到图书的相关信息。

对图书的查询主要有三种查询方式:

根据图书编号,书名以及图书类型。

学生可以根据自己了解的情况任选择一种方式。

图书信息流程图如图1-4-5-2所示:

图1-4-5-2图书信息流程图

3)借阅信息

借阅信息管理包括查询借书信息与还书信息。

还书时要判断是否超期,若超期,则进行相应的罚款。

还可以进行行续借操作。

借阅信息流程图如图1-4-5-3所示:

图1-4-5-3借阅信息流程图

5数据库设计

1)超级管理员可以对系统进行任何操作,主要包括角色分配,权限控制,菜单管理,系统管理。

超级管理员模块总体E-R图如图1-5-1所示:

图1-5-1超级管理员模块总体E-R图

2)权限管理总体E-R图如图1-5-2所示:

图1-5-2权限管理总体E-R图

3)用户管理主要包括管理员管理与学生管理,其E-R图如图1-5-3所示:

图1-5-3用户管理E-R图

4)学生模块总体E-R图如图1-5-4所示:

图1-5-4学生模块总体E-R图

5)管理员模块总体E-R图如图1-5-5所示:

图1-5-5管理员模块总体E-R图

 

四、实验小结、建议及体会

通过本次实验,我完成了上学期的图书管理系统系统的架构设计,了解了架构设计的过程和方法,其中发现了很多上学期设计中的不足,并及时改正。

这次的实验任务量非常大,但是我坚持下来了,正是这样的任务量,我从中学到了非常多知识,也锻炼了自己!

而且队友的帮助对我来说也是非常的重要,以后的实验我会继续努力的!

 

实验课程名称:

软件设计与体系结构

实验项目名称

图书管理系统的详细设计

实验成绩

实验者

专业班级

软件1302班

组别

同组者

实验日期

2017年11月13日

第一部分:

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

实验目的:

以图书管理系统为例,完成系统的详细设计,了解详细设计的过程和方法,程序运行流程的细节,检验设计的合理性。

实验内容:

1以实验一的结果为基础,设计每个具体类的数据结构,算法和程序运行流程。

2界面元素的设计。

3用代码实现设计结果。

 

二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等,用硬件逻辑或者算法描述)

界面设计原则:

1.简易性:

界面的简洁是要让用户便于使用、便于了解、并能减少用户发生错误选择的可能性。

2.用户语言:

界面中要使用能反应用户本身的语言,而不是游戏设计者的语言。

3.记忆负担最小化:

人脑不是电脑,在设计界面时必须要考虑人类大脑处理信息的限度。

人类的短期记忆极不稳定、有限,24小时内存在25%的遗忘率。

所以对用户来说,浏览信息要比记忆更容易。

4.一致性:

是每一个优秀界面都具备的特点。

界面的结构必须清晰且一致,风格必须与游戏内容相一致。

5.清楚:

在视觉效果上便于理解和使用。

6.用户的熟悉程度:

用户可通过已掌握的知识来使用界面,但不应超出一般常识。

7.从用户的观点考虑:

想用户所想,做用户所做。

用户总是按照他们自己的方法理解和使用。

8.排列:

一个有序的界面能让用户轻松的使用。

9.安全性:

用户能自由的作出选择,且所有选择都是可逆的。

在用户作出危险的选择时有信息介入系统的提示。

10.灵活性:

简单来说就是要让用户方便的使用,但不同于上述。

即互动多重性,不局限于单一的工具(包括鼠标、键盘或手柄)。

11.人性化:

高效率和用户满意度是人性化的体现。

应具备专家级和初级玩家系统,即用户可依据自己的习惯定制界面,并能保存设置。

 

三、主要仪器设备及耗材

PC机,MicrosoftVisio

 

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

实验输入:

图书管理系统的功能性需求:

1学生持有借书证

2图书管理员作为借阅者的代理完成借阅图书,归还图书和查询借阅信息工作

3系统管理员完成对系统的维护,对系统的维护主要包括办理借阅证,删除借阅证,添加管理员,删除管理员,添加图书,删除图书,添加标题信息,删除标题信息

4图书馆服务的对象扩充到老师和学生,学生又分为博士生,研究生,本科生,专科生等,不同类型的对象可以借阅的图书数量和期限都是不同的。

5图书的种类扩充到中外文图书,中外文杂志,论文等。

6学生和老师可以通过网络进行预约,查询

7超期罚款,各种类型的借出物罚款规则不同(超期时间的规定和罚金都不同)

 

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

1界面元素

1)系统登录页面

系统登录页面主要是用户进入系统验证的一种手段,通过登录页面对用户角色的判定,根据不同的用户角色,控制不同的功能权限。

超级管理员进入超级管理员页面,管理员进入管理员页面,学生进入学生页面。

系统登录页面如图2-1-1所示:

图2-1-1系统登录页面

2)管理员页面

管理员系统实现页面主要包括对学生信息管理页面,图书信息管理页面,借阅信息管理页面以及系统信息管理页面四个方面,下面分别对这四个方面的系统实现作相关的介绍。

管理员系统主页面,如图2-1-2所示:

图2-1-2管理员页面

a)学生管理信息页面

本系统对学生管理包括:

添加学生信息,修改学生信息、、删除学生信息,查询学生信息。

在添加学生信息与修改学生信息时,进行相应的验证,主要是必填与唯一性验证。

学生管理主页面,主要是进行学生信息查询,删除学生信息操作。

可以通过学院,专业,班级索引进行查询,如图2-1-2所示:

图2-1-2学生管理信息页面

b)图书管理信息页面

图书信息管理包括:

添加图书信息、删除图书、修改图书信息、查询图书信息。

在添加图书信息与修改图书信息时,进行相应的验证,主要是必填与唯一性验证。

在进行添加图书信息时,是在图书类型的编辑区里进行,先选择相应的图书类型,再添加图书信息。

图书类型界面如图2-1-2-3所示:

图2-1-2-3图书类型界面

c)借阅管理信息页面

学生借阅信息的管理,主要是对学生借阅图书以及归还图书登记。

并判断有没有超期,如果超期,则进行相应的罚款。

借阅信息是在学生借书或还书时,对学生的信息进入编辑。

实现页面是通过查询到要借书学生的信息,在其借阅信息中增加相应的记录,其中学号与姓名为要借书学生的学号与姓名,根据学生信息会自动赋值,图书编号为必填项,书名会根据选择的图书编号自动生成。

距到期天数默认为7天,续借情况默认为否。

具体实现如图2-1-2-4所示:

图2-1-2-4借阅管理信息页面

d)系统管理信息页面

系统管理主要是管理员对图书馆信息、工作人员信息以及一些基础数据的录入。

学院信息的录入,通过在学院信息主页面新增按钮进入新增编辑页面,学院信息主页面可以对学院信息进行增,删,查。

具体实现如图2-1-2-5所示:

图2-1-2-5学院信息

3)学生页面

学生页面主要包括基本信息,图书信息以及借阅信息。

下面分别对这三个方面的页面实现作相关介绍。

如图2-1-3所示:

图2-1-3学生页面

a)基本信息页面

因为学生信息是以表结构呈现的,表里也含有他人的基本信息。

为了防止用户可以看到他人的基本信息。

在查看自己基本信息时,需要输入学号与姓名,并且学号与姓名必填。

输入正确则会显示信息,输入有误则查出的是空表,没有任何数据。

具体如图2-1-3-1所示:

图2-1-3-1基本信息查询页面

b)图书信息页面

对图书的查询主要有三种查询方式:

根据图书编号,书名,图书类型。

当然,也可以选择混合查询。

学生可以根据自己了解的情况任选择一种方式。

具体实现如图2-1-3-2所示:

图2-1-3-2图书信息页面

c)借还信息页面

图书的查询页面可以通过学号与姓名验证来查询用户的借阅信息,只有当学号与姓名都输入正确的情况下,才能查询到相应的图书借还记录。

具体实现如图2-1-3-3所示:

图2-1-3-3借还信息页面

4)超级管理员页面

超级管理员页面也就是超级管理的操作界面设计,超级管理员可以对系统进行任何操作,主要包括用户管理,角色管理,功能权限管理,菜单管理。

下面分别对这四个方面进行介绍:

超级管理员页面如图2-1-4所示:

图2-1-4超级管理员页面

2代码

部分见附录。

 

三、实验小结、建议及体会

通过对一个这个小型图书管理系统的架构设计和详细设计,将课堂上讲授的软件架构和设计理论知识应用到软件开发的实际工程中,使得我真正理解和初步掌握面向对象分析和设计的基本概念,软件架构的设计方法和设计原理,常用架构模式,设计模式,学会了如何用UML表达设计结果。

这次实验的任务量对我来说非常的巨大,也对亏了组队队友的帮忙,才能完成这两次实验,让我收获颇丰,谢谢老师!

附录:

源码1(StudentEdit.js)

$(window).ready(function(){

getAcademyPhg();

$('#StudentPhg_edit_academyName_sel').change(function(){

getProfessionPhg();

});

$('#StudentPhg_edit_professionName_sel2').change(function(){

getClassPhg();

});

CheckSex();//判断性别是否为空!

SetBookName();//首先判断图书编号是否为空,再进行图书编号与书号拼接

SetStudent();

SaveButton();

})

//获得学院信息

functiongetAcademyPhg(){

AcademyPhgService.findAcademyPhg({callback:

setAcademyPhg,async:

false});

}

functionsetAcademyPhg(dataList){

dwr.util.removeAllOptions("StudentPhg_edit_academyName_sel");

dwr.util.addOptions("StudentPhg_edit_academyName_sel",[""]);

dwr.util.addOptions("StudentPhg_edit_academyName_sel",dataList,"academyName","academyName");

}

//获得专业信息

functiongetProfessionPhg(){

varacademyName=$("#StudentPhg_edit_academyName_sel").val();

if(!

(academyName==""||academyName==null)){

AcademyPhgService.academyPhg(academyName,callback);

}

}

functioncallback(data){

ProfessionPhgService.professionPhg(data,{callback:

setProfessionPhg,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1