软件工程实验报告:图书管理系统

2022-09-23 10:18:46 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈

以下内容为我软件工程实验的实验报告内容。 数据库部分采用的是SQL Server软件; 界面设计部分采用的是Visual Studio C#。 本实验因时间问题做的比较仓促,有许多不足之处,还请谅解。 想要完整代码的可以在我的博客资源进行下载 https://download.csdn.net/download/weixin_45632016/15534566

一、 课程设计的目的与要求

  1. 课程设计目的 软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。
  2. 课程设计要求 2.1 课程设计准备 1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。 2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。 3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。 4)熟悉开发环境和开发工具。 2.2 内容要求 1)对所设计和实现的系统进行可行性分析,提交可行性分析报告; 2)对系统进行需求分析,可以选择传统的分析方法或者面向对象的分析方法,提交软件需求规格说明书(SRS); 3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档; 4)遵循上述文档的要求,实现软件; 5)对所实现系统进行软件测试,完成软件测试报告。

二、 设计正文 1. 可行性分析报告 1.1 项目简介 1.1.1 项目目标 随着现在科学技术的发展,人们的生活也在享受着极大的便利,也在逐渐迈入信息化生活,无时无刻不在进行着信息处理,其中计算机和网络技术能够帮助我们更好的进行信息管理,使用计算机进行信息管理,大大提高了工作效率,而且也在一定程度上保护我们的信息不被泄露。图书管理系统是根据陈老师之前上课时的讲解进行修改,本次实验主要实现了用户的注册,用户与管理员的登录功能用户有查询图书,借阅图书,预约图书,归还图书,查看个人信息与查看公告等功能,管理员有图书管理,用户管理,采访图书,编目图书,查看预约记录,查看借阅记录以及公告管理等功能。 1.1.2 系统的简要描述,主要功能: 用户的注册功能,用户与管理员的登录功能。 用户可以通过图书信息(如书名或书号)查询想借阅的图书,并在有库存的情况下进行借阅。 当用户想要借阅的图书没有时,可以在预约功能里进行图书预约。 用户可以对借阅的图书进行归还。 用户可以查看和修改个人信息。 用户可以查看公告栏与帮助。 管理员可以查看用户的预约记录,并对其中的记录进行修改。 管理员可以通过用户的预约记录对图书进行采购。 管理员可以对采购的图书进行编目并将其添加到书库里。 管理员可以对书库里的图书进行管理,可以通过书名信息模糊查询,通过书号进行查询。 管理员可以对图书信息进行修改,添加以及删除。 管理员可以对用户的信息进行查询,修改以及删除功能。 管理员可以对用户的借阅记录进行查询以及删除。 管理员可以对所有用户发布公告以及删除公告。 1.2 对现有系统的分析 1.2.1 处理流程和数据流程(系统流程图)

1.2.2 对现有系统的其他说明 管理员可以通过SQL语句直接操作数据库对程序进行维护。 该程序有三种用户,普通用户,老师以及管理员。 该程序目前只能在WINDOW系统中运行。 1.3 技术可行性分析 本次软件工程实验是应用的 SQL server 和 Visual Studio 软件进行系统的实现,而且使用 C#语言,对于窗口界面的设计更加方便,对于相应的功能实现的代码可以更加明显,总体分析说明,技术是具有可行性的。 1.4 经济可行性分析 对于参加实验的人员来说,组员都有自己的电脑,而且都对实验中所需要用到的软件进行下载,而且熟悉使用,并且学校机房的电脑功能也很齐全,系统的实现大多数依赖于画图分析和编程等等,对于经济方面要求不是很看重。 1.5 社会因素可行性分析 1.5.1 法律因素 本系统纯为私人设计,在开发过程中没有涉及合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。 1.5.2 用户使用可行性 由于使用本系统可以减少大量的工作和经济费用,新系统界面友好、使用简捷方便,有一定计算机基础的人都可以进行使用。 1.6 可供选择的方案

2. 软件需求规格说明书(SRS) 2.1 需求概述 1) 给出软件需求的摘要和简单描述 需求: 用户的注册功能,用户与管理员的登录功能。 用户可以实现查询、借阅、预约图书信息,归还借阅图书,查看借阅记录、个人信息以及公告栏。 管理员可以对图书进行查询、添加、删除、修改信息,对用户的预约进行采购,编目采购的图书,管理用户的借阅记录,管理用户信息,管理公告。 描述: 注册功能:未注册过的用户进行注册,填写用户名,密码,姓名,年龄与用户身份。 登录功能:对应用户选择对应的身份,填写用户名以及密码。 采访功能:用户可以对书库里没有的图书进行预购,管理员通过查看用户的预约记录对书籍进行采购。 编目功能:管理员可以对采购的图书进行编目。 流通功能:用户可以通过书名以及书号查询想要的图书进行借阅,可以对借阅的图书进行归还,管理员可以对书库里的图书进行管理(如:添加图书,删除图书,修改图书信息,查询图书),也可以对用户的借阅记录进行修改。 用户管理功能:用户可以查看自己的个人信息并进行修改,管理员也可以查看用户的信息,并对其进行删除与修改。 公告功能:用户可以查看管理员发布的公告,管理员可以查看发布的公告并对其进行删除,也可以发布新的公告。 2) 运行环境 Windows系统,SQL server软件,Visual Studio 软件。 2.2 功能需求

图2-1.实验总系统

图2-2登录子系统

图2-3采访子系统

图2-4编目子系统

图2-5流通子系统

图2-6用户管理子系统

图2-7公告子系统 2.3 数据描述 用户登录表: 用户登录表={用户名 密码 用户级别} 用户名 = 2{字符}50 密码 = 2{字符}20

字段名

数据类型

数据长度

描述

含义

Id

varchar

50

不允许为空,主码

用户名

Pressword

varchar

20

不允许为空

密码

ulevel

varchar

1

不允许为空

用户类别

读者级别 = [学生|老师|管理员] 图书信息表: 图书信息表={书号 书名 作者 出版社 数量} 书号 = 2{字符}50 书名 = 2{字符}50 作者 = 2{字符}20 出版社 = 2{字符}50 数量 = 2{字符}50

字段名

数据类型

数据长度

描述

含义

Id

varchar

50

不允许为空,主码

书号

Name

varchar

50

不允许为空

书名

Auther

varchar

20

允许为空

作者

Press

varchar

50

允许为空

出版社

Number

int

3

不允许为空

库存

用户信息表: 用户信息表={学号 用户姓名 性别 用户级别} 学号 = 入学年 系号 专业号 班号 个人号 入学年 = “1958”…“9999” 系号 = 2{数字}2 专业号 = 2{数字}2 班号 = 2{数字}2 个人号 = 2{数字}2 用户姓名 = 2{字符}20 性别 = [男|女] 用户级别 = [学生|老师|管理员]

字段名

数据类型

数据长度

描述

含义

Id

varchar

50

不允许为空,主码

用户名

Name

varchar

20

不允许为空

用户姓名

Age

varchar

3

允许为空

用户年龄

ulevel

varchar

1

不允许为空

用户类别

预约图书表: 预约图书表={预约ID 书名 作者 出版社} 预约ID = 2{字符}50 书名 = 2{字符}50 作者 = 2{字符}20 出版社 = 2{字符}50

字段名

数据类型

数据长度

描述

含义

UId

varchar

50

不允许为空,主码

预约人学号

BName

varchar

50

不允许为空

书名

BAuther

varchar

20

允许为空

作者

BPress

varchar

50

允许为空

出版社

未编目图书表: 未编目图书表={书名 作者 出版社 数量} 书名 = 2{字符}50 作者 = 2{字符}20 出版社 = 2{字符}50 数量 = 2{字符}50

字段名

数据类型

数据长度

描述

含义

Name

varchar

50

不允许为空,主码

书名

Auther

varchar

20

不允许为空,主码

作者

Press

varchar

50

允许为空

出版社

Number

Int

4

不允许为空

图书数量

借阅图书表: 借阅图书表={借阅人ID 借阅人姓名 书号 书名 作者 出版社 借阅时间} 预约ID = 2{字符}50 借阅人姓名 = 2{字符}20 书号 = 2{字符}50 书名 = 2{字符}50 作者 = 2{字符}20 出版社 = 2{字符}50 借阅时间 = “年” “月” “日” “时” 年 = “1958”…“9999” 月 = “01”…“12” 日 = “01”…“31”

字段名

数据类型

数据长度

描述

含义

LendUserID

varchar

50

不允许为空,主码

借阅人学号

LendBookID

varchar

50

不允许为空,主码

被借阅书号

LendUserName

varchar

20

允许为空

借阅人姓名

LendBookName

varchar

50

允许为空

书名

LendBookPress

varchar

50

允许为空

出版社

LendTime

Datetime 8 不允许为空 借阅时间

时 = “01”…“24”

公告表: 公告信息表={公告序号 公告内容 公告发布时间} 公告序号 = 2{字符}50 公告内容 = 2{字符}100 公告发布时间 = “年” “月” “日” “时” 年 = “1958”…“9999” 月 = “01”…“12” 日 = “01”…“31” 时 = “01”…“24”

字段名

数据类型

数据长度

描述

含义

Id

varchar

50

不允许为空,主码

公告号

conter

varchar

100

允许为空

公告内容

publishTime

Datetime

8

不允许为空

借阅时间

2.4 性能需求

  1. 数据精确度 在各输入框里,需要保证输入的数据与数据库中所存放的数据保持一致性,不能有误差 2)时间特性 借阅时间与公告发布时间通过SQL语句getdate()直接获取系统时间输入到数据库里面 3)适应性 本程序采用微软VS软件C#WINDOW页面编程,微软SQL server软件编写数据库,具有更高的普遍性,适应性更强。 2.5 运行需求
  2. 用户界面 登录界面

注册界面:

用户界面:

用户查询借阅界面:

用户预约界面:

用户还书界面:

用户个人信息界面:

用户公告界面:

管理员界面:

图书管理界面:

采购图书界面:

预约图书界面:

编目图书界面:

用户管理界面:

用户借书记录界面:

公告栏界面:

  1. 硬件接口 通过电脑鼠标与键盘对程序进行操作
  2. 软件接口 Visual Studio 与 SQL server连接,通过VS对数据库里的数据进行操作。
  3. 故障处理 管理员定期对软件进行测试,如果用户遇到故障尽快联系管理员进行修复。 2.6 其它需求 管理员与用户可以查看软件帮助。 使用的同时管理员对用户的信息进行保密。若要补充功能请联系管理员。

3. 软件设计说明书 3.1 软件模块结构图

3.2 文件结构和全局数据 用户登录表:记录用户的用户名与密码,用于登录。

用户信息表:保存用户信息,借阅、归还与预约时调用用户的信息。

借阅信息表:用于保存用户的借阅记录。

预约图书表:用户在图书信息表中没用查到想要的图书,对书籍进行预约。

未编目信息表:存储采购后还没有进行编目的图书

图书信息表:用于存放图书信息,用户可以查询图书并进行借阅,管理员可以对其进行管理

公告信息表:用户可以对其进行查询,管理员对其进行添加与修改。

3.3 模块描述 3.3.1 登录模块描述 1)功能:读者进行注册,登录与注销。 2)接口:用户在登录与注册时会调用该模块,会根据用户的类型跳转到不同页面。 3)数据:{用户账号=用户名 用户密码 用户类别} 4)处理:

3.3.2 采访模块描述 1)功能:用户预约图书,管理员通过预约图书进行采购。 2)接口:用户在预约图书时会调用该模块,管理员可以对采访功能进行管理。 3)数据:{预约图书=预约用户ID 预约书名 作者 出版社} 4)处理:

3.3.3编目模块描述 1)功能:管理员对采购来的新图书进行编目。 2)接口:编目采访子系统采购到的新书籍到图书信息表。 3)数据: {未编目图书表=书名 作者 出版社 数量} {图书信息表=书号 书名 作者 出版社 数量} 4)处理:

3.3.4流通模块描述 1)功能:管理员对采购来的新图书进行编目。 2)接口:用户借书时会调用用户的个人信息。 3)数据:{图书信息表=书号 书名 作者 出版社 数量} 4)处理:

3.3.5用户管理模块描述 1)功能:用户可以查看和修改自己的个人信息但不能修改用户名与级别,管理员可以查看、删除、修改用户的个人信息。 2)接口:用户借阅和预约图书时会调用用户的信息表。 3)数据:{用户信息表=学号 用户姓名 性别 用户级别} 4)处理:

3.3.6公告模块描述 1)功能:用户可以查看公告,管理员可以查看、发布公告。 2)接口:管理员对公告信息表进行读取操作。 3)数据:{公告信息表=公告序号 公告内容 公告发布时间} 4)处理:

4. 软件测试报告 4.1 测试范围 测试目的:检测预期全部功能是否完善 测试预期结果:注册功能、登录功能可以正常运行,各功能的增删改查部分可以遵循吻合数据库的预期设定,各页面之间的跳转问题,用户与管理员的操作和数据库里的数据库是否一致。 测试步骤:大致为单元测试、集成测试、确认测试和系统测试 4.2 测试计划 先测试注册与登录功能,然后分别以用户和管理员进行登录,逐个测试各项功能。 4.2.1 测试阶段 1)第 1 阶段:对每个模块进行单元测试,对设计的测试用例进行测试,查看是否与预期的结果相同。 2)第 2 阶段:进行集成测试,测试模块之间的调用是否正确。 3)第 3 阶段:进行确认测试,测试各个子系统是否完成了需求说明书中的功能。 4)第 4 阶段:进行系统测试,测试整个系统的功能、性能是否与预期效果相同。 4.2.2 测试进度:

测试模块

测试内容

依赖关系

测试时间

登录功能

测试用户的注册与不同级别用户的登录功能的实现

2021.01.04

采访功能

用户预约图书实现,管理员获取预约记录进行采购实现 登录功能,

流通功能

2021.01.04

编目功能

对采购图书进行编目

登录功能,采访功能流通功能

2021.01.04

流通功能

用户查询、借阅、归还图书功能,管理员对图书和借阅记录的管理等操作的实现

登录功能,编目功能

2021.01.04

用户管理功能

用户查看个人信息,管理员查询和管理用户信息功能的实现

登录功能

2021.01.04

公告功能

用户查看公告,管理员对公告内容的删除与添加公告

登录功能

2021.01.04

4.3 测试项目说明 4.3.1 登录功能 1) 测试目的: 测试用户的注册功能是否正常,不同级别用户的能否正常登录 2) 测试方法和测试软件:黑盒法 3) 测试用例

选取理由

测试数据

期望结果

注册有效等价类

各项不为空,在范围内

用户名:201809000101密码:123年龄:20 ,类别:学生

注册成功

注册无效等价类

有空项

用户名:密码:123年龄:20 ,类别:学生

用户名不能为空

不在范围内

用户名:201809000101密码:123年龄:999,类别:学生

年龄错误

登录有效等价类

各项不为空,用户名与密码和相对应类别正确

用户名:201809000101密码:123,类别:学生

登录成功

登录无效等价类

有空项

用户名:密码:123,类别:学生

用户名为空

用户名与密码和相对应类别不对应

用户名:201809000101密码:123,类别:管理员

用户名或密码错误

4.3.2 采访功能 1)测试目的: 测试用户的预约功能是否正常,管理员是否能够采购图书。 2)测试方法和测试软件:黑盒法 3)测试用例

选取理由

测试数据

期望结果

用户采访有效等价类

各项不为空,预约的图书没有库存

书名:高数作者:数学系出版社:出版社

预约成功

采访无效等价类

有空项

书名:高数,作者:数学系出版社:出版社

预约书名不能为空

预约图书有库存

书名:软件工程基础,作者:宋雨,出版社:出版社

该图书有库存,请去查询页面进行借阅

管理员采访有效等价类

各项不为空

书名:高数作者:数学系出版社:出版社库存:10

采购成功

管理员采访无效等价类

有空项

书名:作者:数学系出版社:出版社库存:10

书名为空

无空项,库存超范围

书名:高数作者:数学系出版社:出版社库存:999999

库存错误

4.3.3 编目功能 1)测试目的: 测试管理的编目功能是否正常。 2)测试方法和测试软件:黑盒法 3)测试用例

选取理由

测试数据

期望结果

管理员编目有效等价类

书号不为空,且书号为新书号

书号:C00102

编目成功

管理员编目无效等价类

书号为空

书号

书号为空

书号已存在

书号:C00101

已有该图书,请在图书管理页面进行修改库存

书号错误

书号:1231354132151

书号错误

4.3.4 流通功能 1)测试目的: 测试用户的查询、借阅与归还功能是否正常,管理员对图书信息的管理是否正常。 2)测试方法和测试软件:黑盒法 3)测试用例

选取理由

测试数据

期望结果

用户查询有效等价类

查询有该图书且借阅的图书有库存

书名:高数作者:数学系出版社:出版社库存:10

借阅成功

用户查询无效等价类

查询为空项

书号:书名:

查询不能为空

预约图书没用库存

书名:软件工程基础作者:宋雨出版社:出版社库存:0

该图书库存不足,请联系管理员

用户归还有效等价类

有借阅且未归还的图书

书名:高数作者:数学系出版社:出版社借阅时间:2021/1/4

归还成功

用户归还无效等价类

没有未归还的图书

未选中借阅图书

归还失败

管理员查询有效等价类

查询有该图书

书名:高数 书名:高数作者:数学系出版社:出版社

库存:10

管理员查询无效等价类

查询为空项

书号:书名:

查询不能为空

查询错误

书号:C00105

没有该图书,请尽快补充

管理员添加有效等价类

各项不为空,各项输入正确

书名:高数作者:数学系出版社:出版社库存:10

添加图书成功

管理员添加有效等价类

有项为空

书名:高数作者:数学系出版社:出版社库存:

添加库存不能为空

添加已有图书

书名:高数作者:数学系出版社:出版社库存:10

该图书已存在,若要添加库存,请在修改功能处添加

管理员删除有效等价类

有该图书信息

图书信息

删除成功

管理员删除无效等价类

没有选中要删除的图书

请选择要删除的图书

管理员借阅有效等价类

有借阅记录

选中要删除的借阅记录

删除成功,该图书已归还

管理员借阅无效等价类

没有选中要删除的图书

请选择要删除的借阅记录

4.3.5 用户管理功能 1)测试目的: 测试用户是否能正常查看和修改个人信息,管理员对用户信息进行管理。 2)测试方法和测试软件:黑盒法 3)测试用例

选取理由

测试数据

期望结果

用户信息修改有效等价类

修改用户的姓名与年龄

姓名:321年龄:19

用户名:201809000101姓名:321年龄:19,类别:1

用户信息修改无效等价类

有空项

姓名:年龄:

姓名不能为空

年龄超出范围

年龄:999

年龄错误

管理员用户信息有效等价类

各项不为空

用户名:201809000101姓名:1234年龄:20,类别:1

修改成功

删除用户信息

选中要删除的用户信息

删除成功

管理员用户信息无效等价类

有空项

用户名:姓名:1234年龄:20,类别:1

用户不能为空

无空项,用户年龄错误

用户名:201809000101姓名:1234年龄:999,类别:1

用户年龄修改错误

无空项,用户级别不在规定内

用户名:201809000101姓名:1234年龄:20,类别:4

用户级别修改错误

删除用户信息时未选中

未选中要删除的用户

4.3.6 公告功能 1)测试目的: 测试用户的公告查看功能是否正常,管理员是否能够发布和删除公告。 2)测试方法和测试软件:黑盒法 3)测试用例

选取理由

测试数据

期望结果

用户公告查看有效等价类

公告存在且选中

选中公告

公告信息

用户公告查看无效等价类

未选中

请选择要查看的公告

管理员公告有效等价类

发布公告号正确

公告号:2,公告内容:公告内容2

发布成功

公告存在且选中选择删除

选中公告

删除成功

管理员公告无效等价类

公告号或公告内容有空项

公告号:,公告内容:2

公告号为空

无空项,公告号已存在

公告号:1,公告内容:公告内容

该公告已存在

4.4 测试分析 4.4.1 登录功能的测试分析 1) 实测结果数据 可以实现用户的注册,用户与管理员的登录功能。 2) 与预期结果的偏差:无偏差 3) 测试表明的事实:该功能测试成功且该模块连接数据库无误 4) 测试发现的问题:无 4.4.2 预约功能的测试分析 1) 实测结果数据 可以实现用户的预约图书功能,管理员的查看预约记录和采购图书。 2) 与预期结果的偏差:无偏差 3) 测试表明的事实:该功能测试成功且该模块连接数据库无误 4) 测试发现的问题:无 4.4.3 编目功能 1)实测结果数据 管理员对采购图书进行编目并添加到图书信息表里。 2)与预期结果的偏差:无偏差 3)测试表明的事实:该功能测试成功且该模块连接数据库无误 4)测试发现的问题:无

4.4.4 流通功能 1)实测结果数据 可以实现用户的查询、借阅与归还功能,管理员的查看书库并对图书和借阅记录进行管理。 2)与预期结果的偏差:无偏差 3)测试表明的事实:该功能测试成功且该模块连接数据库无误 4)测试发现的问题:无 4.4.5 用户管理功能 1)实测结果数据 可以实现用户的查看和修改功能,管理员的查看用户信息和对其进行修改。 2)与预期结果的偏差:无偏差 3)测试表明的事实:该功能测试成功且该模块连接数据库无误 4)测试发现的问题:无 4.4.6 公告功能 1)实测结果数据 可以实现用户查看公告功能,管理员的发布与删除公告功能。 2)与预期结果的偏差:无偏差 3)测试表明的事实:该功能测试成功且该模块连接数据库无误 4)测试发现的问题:无

课程设计总结或结论 在实验过程,我们组从最初的可行性分析确定系统的方向;到分工制作需求分析编辑数据流图和数据字典,进一步确定系统的功能与实际需求;再到一起对软件设计对软件的具体实现,数据库的设计与建立,并且将二者进行结合,形成一个较为完整的系统;最后对与其功能及模块的测试,发现了一些实现过程中考虑不够完备的功能以及错误,加以修改,吸取经验与教训。 我们在实验过程中也遇到了许多的问题如:界面跳转后参数的传递,重复查询,搜索时的模糊查询算法等,但是在通过查阅数据,网上询问与同学指导的情况下,我们组也是排除了各种各样的BUG与功能的不完善,做出了最终的完善的系统,也很感谢老师上课时的教导,这在我们在指定方向和实验安排等各方面有着极大的帮助。 三、 参考文献 [1] 宋雨.软件工程.中国电力出版社. 2007.02. [2]王珊,萨师煊.《数据库系统概论》.高等教育出版社.2014.09 [3]袁和金,刘军,牛为华.《数据结构》.中国电力出版社.2012.6 [4]李铭.C#高级编程.清华大学出版社.2010.11 [5]王晓东.《计算机算法设计与分析》.电子工业出版社.2014.6 附录

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172136.html原文链接:https://javaforall.cn

0 人点赞