摘要
。本文所设计的个性化视频推荐系统的设计与实现拥有前端和后端,前端使用Vue.js框架和创建,后端使用Springboot框架创建,开发语言采用Java,使用Mysql数据库对后台数据进行存储。将IDEA作为主要的开发工具。接着进行系统的需求分析、功能设计、数据库设计,最后进行编码实现。

实现了一个完整的个性化视频推荐系统,其中主要有用户模块、用户表模块、token表模块、系统简介模块、收藏表模块、模块、通知公告分类模块、通知公告模块、个性化信息模块、论坛交流模块、gxhxinxi评论表模块、配置文件模块、关于我们模块、账户的注册与登录等功能模块。本文详细介绍了该个性化视频推荐系统的设计过程,并通过全面测试,完善了预期的功能。研究表明采用B/S架构,通过Vue.js框架、Springboot框架以及Mysql数据库可以构建一个完整个性化视频推荐系统。最后,整个论文从系统分析、设计、实现以及最后的测试做了一个合理的安排。通过最终的研讨做出一个可行性的方案,在完成以后我们做了详细的介绍并找出系统的不足之处,从而来弥补系统的完善,最终打到符合毕业答辩要求的标准。
[关键词]java;springboot;mysql;个性化视频推荐;

abstract

目 录
摘要 1
abstract 1
目 录 2
1 绪论 4
1.1 开发背景 4
1.2 开发意义 4
2 相关技术介绍 5
2.1 开发环境和技术介绍 5
2.1.1 运行开发环境介绍 5
2.1.2 Springboot框架 5
2.1.3 前后端分离vue.js框架 5
2.1.4 Mybatis介绍 5
2.1.5 Scrapy架构 6
2.2 开发工具介绍 6
2.2.1 IntelliJ IDEA开发工具 6
2.2.2 Mysql数据库介绍 7
2.3 scrapy爬虫主要文件介绍 7
3 需求分析 8
3.1 系统架构选择 9
3.2 系统性能分析 9
3.3 可行性分析 9
3.3.1 技术可行性 9
3.3.2 经济可行性 9
3.3.3 操作可行性 10
3.4 系统流程分析 10
3.4.1 用户管理流程 10
3.4.2 添加信息流程 11
3.4.3 修改信息流程 11
3.4.4 删除信息流程 12
3.5 系统运行环境 13
3.6 系统功能模块 13
3.7 数据库设计 13
3.7.1 数据库表说明 13
3.7.2 数据库逻辑实现 14
4 详细实现 18
4.1 网站首页 18
4.2 系统注册 19
4.3 系统登陆 20
4.4 系统数据可视化分析 20
4.5 论坛交流管理 21
4.6 个性化视频管理 21
4.7 用户管理 22
5 总体设计 23
5.1 测试的定义 23
5.2 软件测试的方法 23
5.3 测试用列 23
5.3.1 登录测试用例 23
5.3.2 基础数据测试用列 25
结束语 27
参考文献 28
致谢 29

1 绪论
1.1 开发背景
历史的车轮滚滚向前,带来的是时代的发展和技术日新月异的进步,互联网也推动了全世界发展,如今的各行业也在互联网上急速挖掘适合自身发展的要点,对普通大众来说也一样,在日常生活也时时刻刻离不开互联网。以优酷视频信息为例,各种各类的视频对让人目不暇接,越来越多的人们对视频的观看无法做出精准的选择。先如今网上信息数据量庞大,数据来源渠道众多,将怎么样提高网民上网体验就成为一个非常切实和有探讨价值的问题。。这是一个崭新的、以信息为基础的新时代。迫切需要找到一种行之有效、方便快捷的方式来实现系统功能。因此,日益完善的电脑系统,就成了解决这个问题的必然选择。现在,用电脑的信息管理技术来解决这个问题,简直是得心应手,事实上,在所有的企业中,都是以它为中心的,它的作用是非常重要的。但是,随着社会主义的发展,人们的生活质量得到了极大的提升,许多事情都可以通过互联网来完成,因此,互联网就成了最直接、最方便、最快速的接入方式。

1.2 开发意义
网络爬虫能够定向抓取数据,在杂乱无序的数据中寻找有用的数据,数据可视化分析在网络爬虫的基础上能够从大量的网络视频信息当中提取到对自己有价值的数据,而不是全部的视频信息都接收,然后再通过人为进行筛选。数据可视化分析通过图形的形式来表示数据,能够在海量的视频信息中直观的展示信息,增加了数据的灵活性,让使用其系统的用户能够高效的理解和分析视频信息的内容,能够在最快的时间内获取自身需要的信息,能够让视频信息更加的明确可靠。为不同层次的人提供不同类型的视频;更加针对性的去符合自己的兴趣爱好,从而使得在观看者节省更多地时间。
与传统的方式相比,使用系统有许多优势:第一,可以极大地提升的检索效率,只要输入有关的信息,就可以在几秒钟之内将所要的结果反馈给用户。其次,可以储存海量的辅导资料,并且个性化视频推荐系统的安全性得到较高的保证;与传统的纸质文件相比,系统可以节约大量的人力资源。这一优势极大地改善了经营的效率和节约了经营费用。所以,一定要对系统进行合理、高效的管理,这就提升了系统的效果和特点,增强了用户信息的安全性,让用户可以将信息及时地反馈到管理员那里,从而增加了用户与管理员之间的互动交流,更可以提升用户的体验强度。
由于考虑到数据库结构的灵活性,本系统想要使用 MySQL来设计数据库[1],而 java技术[2], B/S架构则确保了较高的平台适应性。本文的重点是对该系统的开发环境、要实现的基本功能和开发步骤进行了说明,并重点阐述了系统设计方案的关键点、设计思想。

2 相关技术介绍
2.1 开发环境和技术介绍
2.1.1 运行开发环境介绍
个性化视频推荐系统的设计与实现在开发环境上选择如下:
硬件参数:
笔记本品牌:华硕飞行堡垒;
内存容量:8GB(8GB×1)DDR42666MHz
硬盘容量:256GB+1TB混合硬盘
CPU型号:Intel酷睿i78750H
显卡芯片:NVIDIAGeForceGTX1050Ti
软件参数:
操作系统:Windows10企业版操作系统
开发平台:IntelliJ IDEA IntelliJ IDEA2019.3.4;MySQL5.7版本;
环境版本:Jdk1.8版本(包含Jre);Maven工程3.6(配置阿里云仓储镜像)
2.1.2 Springboot框架
springboot框架简化了spring的构建和开发过程。Springboot不仅简化了依赖关系管理,而且基本摆脱了XML和starter配 置文件。Springboot真正实现了自动文件配置,而且创建环境的速度也非常快。安装只需几秒钟即可完成。创建和配置 springboot包括创建想法和网站。它的主要功能是启动依赖项和核心配置。

2.1.3 前后端分离vue.js框架
Vue 是一套构建用户界面的渐进式框架,框架架构方面自底向上增量开发的设计方式,相比其他重量级框架比如React、Angular等,更加灵活和开放。对于新手来说更容易入门,而对于资深工程师来说就是一个更好的框架选择。Vue还便于与第三方库或既有项目整合,在实现前后端分离的开发模式上,它会是一个不二之选,它有强大的生态圈,结合Vuex和Vue-router能够为复杂的应用程序提供驱动[2]。
2.1.4 Mybatis介绍

Mybatis框架是针对于系统数据持久层的一个优秀的开发框架。在使用Mybatis框架进行系统开发的时候可以完成对于JDBC的封装,只需要用Xml文件的配置进行数据库的映射就可以进行执行,将Sql语句实现了与业务层代码的分离,在进行系统开发的时候可以提升代码的优化程度,可以对于Sql语句的书写更加的专注。因此本次的设计将Mybatis框架作为系统数据持久层的开发框架。

2.1.5 Scrapy架构
scrapy作为一个开源的、免费的爬虫框架,有需求者开源对其需要进行具有目标性地修改。

scrapy框架结构如图2-2。

图2-2scrapy框架结构

2.2 开发工具介绍
2.2.1 IntelliJ IDEA开发工具
IntelliJ所支持的语言编译组合不限于Java。在IntelliJ idea编译器中,还可以编译Python、Android、PHP等语言以及其它语言。与Eclipse开发工具一样,也可以中断代码,调试测试函数。IntelliJ idea有很多功能,例如智能码的选择、丰富的导航格式、编译辅助工具、灵活的拼写、代码语言识别等。在IntelliJ idea中,与其他移动环境一样,也可以显示组合键的设置。这样一来,习惯idea开发的程序员可以迅速的对程序进行编译开发。

2.2.2 Mysql数据库介绍

MySQL数据库与其他的一些大型的数据库相比虽然有很多的缺点,但是MySQL数据库也有其强大之处和别的数据库不及备的 优点。首先,MySQL数据库是一款关系型较强的数据库,并且在执行的效率上非常的搞并且MySQL数据库还可以作用在不同的操 作系统上。MySQL数据库在管理上以及安装上也比较的简便,最主要的是MySQL数据库还是一款免费的数据库开发工具,在中小型的系统开发上首选的是MySQL数据库作为开发工具。

图2.3 MySQL数据库架构图

2.3 scrapy爬虫主要文件介绍

scrapy主要文件介绍
文件名 功能
scrapy.cfg 这是项目环境配置文件,在不进行相应的移植操作下,一般情况不会对其修改
settings.py
再该文件中定义了一些爬虫设置,例如中间件开启顺序,爬取时延、是否遵循robot协议、是否开启cookie功能等
items.py 该文件定义了待抓取数据的各个字段
pipelines.py 该文件定义了数据的存储方式,它接收爬取到的数据,并将其存储。可以将其存储为csv或其他格式的文件,也可将其存入某数据库
middlewares.py 中间件,是完成对scrapy框架更多功能扩展的主要文件,在其中可定义随机切换IP的IP代理中间件。该文件是反反爬虫技术的核心
spiders文件夹 该文件夹下存放着最为核心的爬虫代码

3 需求分析

3.1 系统架构选择
本次系统采用的架构是B/S架构而非C/S架构,与C/S架构不同的是,B/S架构采用的是浏览器/服务器模式,而C/S架构需要下载客户端安装的客户机/服务机模式。两种模式相比较而言,C/S架构是桌面级的应用开发软件,更适用于电脑端的使用,响应的速度更快,安全性强,但随之也有着对应的缺点,C/S架构需要购买能力更强的服务器用于系统。而B/S架构不需要通过软件下载来使用,B/S架构的系统可以实现跨平台的使用,对于客户端而言不需要维护,其一部分的简单业务逻辑可以通过客户浏览器web端进行执行,因此可以节省服务器的运行算力,节省服务器成本。。

图3-1 B/S结构图

3.2 系统性能分析
对网站性能进行分析,可对系统反应度、界面简洁清晰度、储存能性、易学性和稳定性进行分析;
系统反应度:同时上万人在线时反应时间应该在两三秒以内,。
界面简洁清晰:系统界面要求简单明了,操作简单,用户操作容易上手。
储存性能高系统中需要存储的信息有很多,所以对系统的存储量要求很高,因此数据库就应该很强大,才能保证信息能安全稳定的进行存储;
易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
稳定性:要求系统运行要稳定,界面清楚、字体清晰等。

3.3 可行性分析
在研制之前,首先要对该制度进行一次可行性分析,以便采取一种行之有效的办法来解决最大的难题。这个过程一旦被设计出来,符合顾客的需求,将会带来很多好处。接下来,我们将从技术上、操作上、经济上三个方面,来选择这个系统。
3.3.1 技术可行性
本次个性化视频推荐系统的设计采用的是SpringBoot框架集成Mybatis框架的形式来进行业务逻辑的处理以及数据持久层的开发,选用的框架能够将业务层的代码和Sql语句进行分析,与Vue等框架也有很高的贴合性。除此之外,Maven工程可以对依赖进行全方位的管理,让Jar包的配置和管理更加的方便。因此本次的设计在技术上是可行的。。
3.3.2 经济可行性
在设计和开发的过程中使用的数据库的开发环境大部分都是开源的或者是社区版本的软件,可以从各大官网中直接下载和安装使用,不需要我们有太多的经济的投入,因此在经济和开发成本上是非常少的。对于开发所消耗的成本基本都运用在了硬件层。但是学院所提供的硬件设备和自身计算机的配置都基本符合我们开发时所需的硬件需求,从而大幅度了又省去了开发上的成本。项目后期的服务器部署基本可以靠租赁的方式来解决,因此从项目的开发到部署使用的各个方面在经济上都是可行的。
3.3.3 操作可行性
随着科技的飞速发展,电脑已经进入每个人的生活,每个人的工作环境也不再是以前那样恶劣。员工必须到特定的地方工作,有些工作是可以在家中完成的。这让他们的效率更高了。经营范围也越来越广。因此,方便、便捷、信息化是当今时代发展的必然趋势。各类智能化的软件种类繁多,不同的软件能够适应不同的用户需求,提高工作效率,也能够适应某些特定的需求。这个系统不仅是一个简洁的网页,而且还采用了一个直观的数据显示网页。用户可以使用滑鼠及键盘对相关资料进行修改,删除,添加等。因为本系统操作起来相对容易且切合实际,所以初次使用本系统只需花费很少的时间。因此,本系统具有较高的应用价值。

3.4 系统流程分析
3.4.1 用户管理流程

进入用户管理页面,可以查看当前保存的所有用户信息,如姓名、邮箱、电话等。选择修改个人信息,并进入修改页面,完成对用户信息的修改后,点击提交或保存按钮,如果验证通过,系统将管理员修改后的用户信息保存到数据库中。这代表完成用户信息的修改。在此之外,对于用户管理功能,同样可以对系统信息进行新增、删除、查询等基础管理操作。用户管理流程分析图如下图所示:

图3-1 用户管理流程分析图

3.4.2 添加信息流程
用户在添加信息时,系统编号自动生成,用户需要输入信息,系统会对其进行验证,验证通过则添加成功,反之添加失败,添加信息流程如图3-3所示。

图3-3 添加信息流程图
3.4.3 修改信息流程
修改信息这一块的流程和添加信息类似,首先由用户选定需要修改的信息,然后输入对应要修改的数据,系统对输入的这些数据再进行验证,验证成功就可以添加到系统的数据库里面,相反不能添加成功。图3-4就是修改信息的流程图。

图3-4 修改信息流程图
3.4.4 删除信息流程
用户在删除的时候,系统会再次提示是不是确定要删除,因为一旦删除了,信息就不存在了,确定要删除的话,就会从数据库里将这些数据删除,重新更新数据库。图3-5演示的就是删除信息的流程图。

图3-5 删除信息流程图

3.5 系统运行环境
完成系统后需要进行测试,测试和开发是不同的环节。测试前,对系统进行环境搭建[13]。
系统的环境包括服务器和客户端。
服务器:部署系统的项目和数据库。
处理器:英特尔芯片,I7八核。
内存:16G
硬盘存储:200G容量。
服务器软件:使用MYSQL服务器、tomcat8.0、windows操作系统、Docker虚拟机。
客户端:系统的客户端要求较低,可以正常启动,并具有日常操作的计算机即可。浏览器使用最新的IE或者360版本。需要注意的是,客户端宽度需要2G以上[6]。
3.6 系统功能模块

3.7 数据库设计
3.7.1 数据库表说明
本系统的设计与实现共包含12个表:分别是关于我们信息表,配置文件信息表,gxhxinxi评论表信息表,论坛交流信息表,个性化信息信息表,通知公告信息表,通知公告分类信息表,收藏表信息表,系统简介信息表,token表信息表,用户表信息表,用户信息表,
数据表名 表含义 存储数据
aboutus 关于我们信息表 主要用途是记录关于我们的信息
config 配置文件信息表 主要用途是记录配置文件的信息
discussgxhxinxi gxhxinxi评论表信息表 主要用途是记录gxhxinxi评论表的信息
forum 论坛交流信息表 主要用途是记录论坛交流的信息
gxhxinxi 个性化信息信息表 主要用途是记录个性化信息的信息
news 通知公告信息表 主要用途是记录通知公告的信息
newstype 通知公告分类信息表 主要用途是记录通知公告分类的信息
storeup 收藏表信息表 主要用途是记录收藏表的信息
systemintro 系统简介信息表 主要用途是记录系统简介的信息
token token表信息表 主要用途是记录token表的信息
users 用户表信息表 主要用途是记录用户表的信息
yonghu 用户信息表 主要用途是记录用户的信息

3.7.2 数据库逻辑实现

数据库物理实现是指在数据库设计之后,将逻辑模型转换为物理模型并在数据库管理系统中实现的过程。以下是本次系统涉及的主要数据库物理实现表。
1.aboutus
关于我们信息属性包括关于我们的自动编号、内容、图片1、标题、创建时间、副标题、图片3、图片2等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
title varchar 200 标题 是 否
subtitle varchar 200 副标题 是 否
content longtext 4294967295 内容 是 否
picture1 longtext 4294967295 图片1 是 否
picture2 longtext 4294967295 图片2 是 否
picture3 longtext 4294967295 图片3 是 否

2.config
配置文件信息属性包括配置文件的自动编号、url、配置参数名称、配置参数值等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
name varchar 100 配置参数名称 是 否
value varchar 100 配置参数值 是 否
url varchar 500 url 是 否

3.discussgxhxinxi
gxhxinxi评论表信息属性包括gxhxinxi评论表的自动编号、创建时间、关联表id、用户名、用户id、评论内容、头像、回复内容等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
refid bigint 关联表id 是 否
userid bigint 用户id 是 否
avatarurl longtext 4294967295 头像 是 否
nickname varchar 200 用户名 是 否
content longtext 4294967295 评论内容 是 否
reply longtext 4294967295 回复内容 是 否

4.forum
论坛交流信息属性包括论坛交流的自动编号、帖子内容、是否置顶、头像、帖子标题、用户id、置顶时间、状态、用户名、父节点id、创建时间等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
title varchar 200 帖子标题 是 否
content longtext 4294967295 帖子内容 是 否
parentid bigint 父节点id 是 否
userid bigint 用户id 是 否
username varchar 200 用户名 是 否
avatarurl longtext 4294967295 头像 是 否
isdone varchar 200 状态 是 否
istop int 10 是否置顶 是 否
toptime datetime 置顶时间 是 否

5.gxhxinxi
个性化信息信息属性包括个性化信息的自动编号、标题、类型、最近点击时间、图片、发布时间、播放数、创建时间、收藏数、分享数、收藏数、描述、弹幕数、详情地址、评论数、点击次数、时长、点赞数、UP主等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
owner varchar 200 UP主 是 否
duration int 10 时长 是 否
views int 10 播放数 是 否
danmaku int 10 弹幕数 是 否
favorite int 10 收藏数 是 否
likes int 10 点赞数 是 否
shares int 10 分享数 是 否
pubdate varchar 200 发布时间 是 否
xqdz longtext 4294967295 详情地址 是 否
title varchar 200 标题 是 否
tname varchar 200 类型 是 否
picture longtext 4294967295 图片 是 否
miaoshu longtext 4294967295 描述 是 否
clicktime datetime 最近点击时间 是 否
clicknum int 10 点击次数 是 否
discussnum int 10 评论数 是 否
storeupnum int 10 收藏数 是 否

6.news
通知公告信息属性包括通知公告的自动编号、创建时间、内容、头像、赞、最近点击时间、踩、标题、点击次数、分类名称、收藏数、图片、发布人、简介等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
title varchar 200 标题 是 否
introduction longtext 4294967295 简介 是 否
typename varchar 200 分类名称 是 否
name varchar 200 发布人 是 否
headportrait longtext 4294967295 头像 是 否
clicknum int 10 点击次数 是 否
clicktime datetime 最近点击时间 是 否
thumbsupnum int 10 赞 是 否
crazilynum int 10 踩 是 否
storeupnum int 10 收藏数 是 否
picture longtext 4294967295 图片 是 否
content longtext 4294967295 内容 是 否

7.newstype
通知公告分类信息属性包括通知公告分类的自动编号、创建时间、分类名称等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
typename varchar 200 分类名称 是 否

8.storeup
收藏表信息属性包括收藏表的自动编号、表名、类型、商品id、图片、推荐类型、创建时间、备注、用户id、名称等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
userid bigint 用户id 是 否
refid bigint 商品id 是 否
tablename varchar 200 表名 是 否
name varchar 200 名称 是 否
picture longtext 4294967295 图片 是 否
type varchar 200 类型 是 否
inteltype varchar 200 推荐类型 是 否
remark varchar 200 备注 是 否

9.systemintro
系统简介信息属性包括系统简介的自动编号、创建时间、图片3、图片1、标题、副标题、内容、图片2等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
title varchar 200 标题 是 否
subtitle varchar 200 副标题 是 否
content longtext 4294967295 内容 是 否
picture1 longtext 4294967295 图片1 是 否
picture2 longtext 4294967295 图片2 是 否
picture3 longtext 4294967295 图片3 是 否

10.token
token表信息属性包括token表的自动编号、过期时间、表名、用户id、用户名、新增时间、角色、密码等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
userid bigint 用户id 是 否
username varchar 100 用户名 是 否
tablename varchar 100 表名 是 否
role varchar 100 角色 是 否
token varchar 200 密码 是 否
addtime timestamp 新增时间 是 否
expiratedtime timestamp 过期时间 是 否

11.users
用户表信息属性包括用户表的自动编号、新增时间、头像、密码、角色、用户名等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
username varchar 100 用户名 是 否
password varchar 100 密码 是 否
image varchar 200 头像 是 否
role varchar 100 角色 是 否
addtime timestamp 新增时间 是 否

12.yonghu
用户信息属性包括用户的自动编号、性别、用户姓名、密码、创建时间、用户账号、头像、手机号码、年龄等信息。
列名 数据类型 长度 数据含义 是否允许为空 是否主键
id bigint 自动编号 否 主键
addtime timestamp 创建时间 是 否
yonghuzhanghao varchar 200 用户账号 是 否
yonghuxingming varchar 200 用户姓名 是 否
mima varchar 200 密码 是 否
shoujihaoma varchar 200 手机号码 是 否
xingbie varchar 200 性别 是 否
nianling varchar 200 年龄 是 否
touxiang longtext 4294967295 头像 是 否

4 详细实现
4.1 网站首页

系统的首页设计采用了菜单栏的设计,将系统的主要功能放置在左侧菜单栏中,用户要使用功能,则只需点击菜单栏中的tab即可进入到对应功能的页面
图5-1所示:

4.2 系统注册
系统注册:在系统首页,点击右上方的登陆/注册按钮,就可以进入到登陆注册页面,点击注册,进行系统注册操作,系统注册界面具体如下:图5-2所示:

4.3 系统登陆
户登录系统时,前端页面会向系统的login.vue URL发送登录请求,后端代码获取用户登录的请求,获取用户登录的参数。根据这些参数,使用MyBatis在关系数据库的用户表中查找对应用户实体。当能用这些参数查找到用户实体时,说明用户登录时向后台请求的登录参数正确,系统设置用户登录信息和状态,并向前端返回登录成功。用户登录采用AJAX方式进行验证,先是在前台获取用户输入的登录账号、密码以及登录类型,点击登录后,通过AJAX方式,后台异步进行验证,实现页面无刷新的用户登录,图5-3所示:

4.4 系统数据可视化分析

4.5 论坛交流管理

本论坛交流模块主要实现对主要实现对的论坛交流表的(创建时间,帖子标题,帖子内容,父节点id,用户id,用户名,头像,状态,是否置顶,置顶时间)数据管理;系统截图如下所示:
截图
4.6 个性化视频管理

本个性化信息模块主要实现对主要实现对的个性化信息表的(创建时间,UP主,时长,播放数,弹幕数,收藏数,点赞数,分享数,发布时间,详情地址,标题,类型,图片,描述,最近点击时间,点击次数,评论数,收藏数)数据管理;系统截图如下所示:

截图

4.7 用户管理

本用户模块主要实现对主要实现对的用户表的(创建时间,用户账号,用户姓名,密码,手机号码,性别,年龄,头像)数据管理;系统截图如下所示:
截图

5 总体设计

5.1 测试的定义
测试是一种系统性的活动,旨在评估、检验或验证特定的产品、服务或系统是否符合预期的需求和标准。测试是为了确定软件或系统是否能够满足业务需求或功能需求,以及在不同的负载和条件下是否能够正常运行。测试通过执行一系列的操作、输入和输出,以及记录和分析测试结果,来评估软件或系统的质量、可靠性、稳定性和安全性等方面的情况。测试可以帮助发现和修复软件或系统中的错误、缺陷或漏洞,提高软件或系统的质量和性能,确保最终交付的产品或服务符合用户的需求和期望。。


5.2 软件测试的方法
黑盒测试,也被称为功能测试或数据驱动测试,主要是在已知产品所应具有的功能的前提下,通过测试来检验每个功能是否都能够正常使用。在进行黑盒测试时,测试人员把程序看作一个不能打开的黑盒子,完全不考虑程序内部结构和内部特性,只通过程序接口进行测试,检查程序功能是否按照需求规格说明书的规定正常使用,是否能适当地接收输入数据并产生正确的输出信息。在黑盒测试之前,需要明确系统的需求和规范,以确保测试的对象和目标明确。测试人员需要了解系统的预期功能、性能、安全等方面的需求和规范。测试人员需要根据系统的需求和规范,设计一系列测试用例,以覆盖系统的不同功能和行为。测试用例应该包括输入数据、预期输出和测试步骤等信息。黑盒可以帮助测试人员检查系统的正确性、可靠性、稳定性和安全性等方面的情况,提高系统的质量和性能,确保最终交付的产品或服务符合用户的需求和期望。

5.3 测试用列
5.3.1 登录测试用例
在实现系统的权限区分时,主要通过登录注册功能实现,因此需要对登录注册功能进行详细的测试,其测试用例表如下所示:
表6.1 登录测试用例分析表
测试用例ID 测试描述 前置条件 测试步骤 预期结果 实际结果 结论(通过/失败)
01 正常登录 用户未登录,页面显示正常 1. 打开登录页面 2. 输入正确的用户名和密码 3. 点击登录按钮 登录成功,页面跳转到用户首页或提示登录成功消息 登录成功,页面跳转到用户首页或提示登录成功消息 通过
02 登录失败(错误的用户名) 用户未登录,页面显示正常 1. 打开登录页面 2. 输入错误的用户名和正确的密码 3. 点击登录按钮 显示错误消息,提示用户名不存在或错误 显示错误消息,提示用户名不存在或错误 通过
03 登录失败(错误的密码) 用户未登录,页面显示正常 1. 打开登录页面 2. 输入正确的用户名和错误的密码 3. 点击登录按钮 显示错误消息,提示密码错误 显示错误消息,提示密码错误 通过
04 登录失败(用户名和密码都为空) 用户未登录,页面显示正常 1. 打开登录页面 2. 不输入用户名和密码 3. 点击登录按钮 显示错误消息,提示用户名和密码不能为空 显示错误消息,提示用户名和密码不能为空 通过
05 注册新用户(成功) 用户未登录,页面显示正常 1. 打开注册页面 2. 输入有效的用户名、密码和其他必要信息 3. 点击注册按钮 注册成功,页面跳转到登录页面或提示注册成功消息 注册成功,页面跳转到登录页面或提示注册成功消息 通过

5.3.2 基础数据测试用列
对于系统的测试内容,在管理系统中最重要的就是对数据信息的增删改查操作,因此本次测试中重点对系统的基础信息管理进行了测试。其测试用例表如下所示:
表6.2 基础数据信息管理测试用例表
测试用例ID 测试描述 前置条件 测试步骤 预期结果 实际结果 结论(通过/失败)
01 新增数据 用户已登录,页面显示正常 1. 打开新增页面 2. 输入有效数据 3. 点击提交按钮 数据成功添加,页面显示新增成功消息,数据列表中显示新增的数据
02 新增数据(重复数据) 用户已登录,页面显示正常 1. 打开新增页面 2. 输入已存在的数据 3. 点击提交按钮 显示错误消息,提示数据已存在,数据未添加到列表中 显示错误消息,提示数据已存在,数据未添加到列表中 通过
03 新增数据(无效输入) 用户已登录,页面显示正常 1. 打开新增页面 2. 输入无效数据(如超长、特殊字符等) 3. 点击提交按钮 显示错误消息,提示输入无效,数据未添加到列表中 显示错误消息,提示输入无效,数据未添加到列表中 通过
04 删除数据 用户已登录,数据列表中存在待删除数据 1. 选择要删除的数据 2. 点击删除按钮 3. 确认删除操作 数据成功删除,页面显示删除成功消息,数据列表中不再显示已删除的数据 数据成功删除,页面显示删除成功消息,数据列表中不再显示已删除的数据 通过
05 删除数据(不存在的数据) 用户已登录,数据列表中不存在要删除的数据 1. 尝试选择并删除不存在的数据 2. 点击删除按钮 显示错误消息,提示数据不存在或无法删除 显示错误消息,提示数据不存在或无法删除 通过
06 修改数据 用户已登录,数据列表中存在待修改数据 1. 选择要修改的数据 2. 修改数据内容 3. 点击保存按钮 数据成功修改,页面显示修改成功消息,数据列表中显示修改后的数据 数据成功修改,页面显示修改成功消息,数据列表中显示修改后的数据 通过
07 修改数据(无效输入) 用户已登录,数据列表中存在待修改数据 1. 选择要修改的数据 2. 输入无效数据(如超长、特殊字符等) 3. 点击保存按钮 显示错误消息,提示输入无效,数据未修改 显示错误消息,提示输入无效,数据未修改 通过

结束语
毕业设计和毕业论文是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整的毕业设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际项目问题的能力。通过此次本系统的实践,亲自动手编程,把已经掌握的东西在实际的开发中运用,加深了对理论的理解同时掌握到技术在实际开发中的运用点;并且在开发的过程中不断学习,提高自学和探索的能力;积累了一定的开发经验和增强团队合作的能力
独立开发程序期间,才会发现有许多知识都是现学现用得来的,毕竟大学期间所学知识比较有限,专业知识掌握得比较浅显,这也给自己制造了许多麻烦,比如程序开发期间遇到的中文乱码问题,程序对应数据库的数据安全问题,程序开发中框架的使用问题等,这些问题都需要随时去翻阅书籍,或通过百度浏览器等方式寻找解决办法,这也耽误了许多程序开发的宝贵时间,后期我也通过对周边同学的请教,以及指导老师的悉心指导,让我找到了程序开发的相关技巧,也积累了一定的知识量,慢慢地纠正了许多不该犯的错误。也推动了我的程序开发进程。


参考文献
[1] 张孝祥、徐明华, JAVA基础与案例开发详解, 清华大学出版社, 2021.
[2] 康牧,JSP动态网站开发实用教程,清华大学出版社,2021
[3] 刘亚宾,精通Eclipse–JAVA技术大系,电子工业出版社,2020.
[4] 于万波,网站开发与应用案例教程,清华大学出版社,2021.
[5] 杨学瑜,高立军,软件开发过程与项目管理,电子工业出版社,2021.
[6] 张洁才,Java web应用开发教程,科学出版社,2021.
[7] 戴维尔,JavaScript程序员教程,电子工业出版社,2022.
[8] 黎连业、王华、李淑春,软件测试与测试技术,清华大学出版社,2020.
[9] 黄梯云著.管理信息系统.北京.电子工业出版社.2022 .
[10].James D. McCaffrey等著.NET软件测试自动化之道[M]. 北京.电子工业出版社.2021.
[11].甘仞初著.信息系统开发.北京.经济科学出版社.2021.
[12].马赫著. Dreamweaver cs6网页设计经典108例.中国青年出版社.2021.
[13].唐友国 湛洪波著.JSP网站开发详解.电子工业出版社2020年10月.
[14].卫红春等著.信息系统分析与设计[M].北京.清华大学出版社.2020.
[15].张大方 李玮等著.软件测试技术与管理[M].湖南.湖南大学出版社,2021.
[16]. (美)H.M.Deitel,P.Jdeitel著.Java程序设计教程(第五版). 清华大学出版社.2021.
[17].(美)Elliotte Rusty Harold著.Java Network Programming.东南大学出版社 .2021.
[18] 孙卫琴等著.精通struts:基于MVC的Java Web设计与开发. 电子工业出版社.2021.
[19] 张文静 林琪著.JSP程序设计.人民邮电出版社.2021.
[20] 孙卫琴 李洪成著.Tomcat与Java Web开发技术详解. 电子工业出版社.2021.
21John J.Patrick著.SQL基础(第二版).清华大学出版社.2021.
22David flanagan著.Java技术手册(第五版).东南大学出版社.2022.
[23]黄裴、徐汀荣,电子商务原理与技术(第二版),科学出版社,2022年10月

致谢
经过半个学期的忙碌,本次毕业设计已经接近尾声。首先要感谢我的导师XXX老师对我的教导。由于他的严格要求和对学生的认真负责,使我能够按时完成毕业设计本系统的开发并完成了这篇论文。我在指导老师身上学到了很多东西,老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。从课题的选择到项目的最终完成,我的指导老师XXX老师都始终给予细心的指导和不懈的支持,非常感谢老师在繁忙的工作中抽出时间给我们指导,无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助。同时,要感谢我的同学对我无私的帮助,特别是在软件的使用方面,正因为如此我才能顺利的完成设计。我要感谢我的母校,是母校给我们提供了优良的学习环境;另外,我还要感谢那些曾给我授过课的每一位老师,是你们教会我专业知识。在此,我再说一次谢谢。谢谢大家。!

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐