Spring Boot英语知识网站:架构与开发

4系统概要设计

4.1概述

本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1系统工作原理图

4.2系统结构

本系统是基于B/S架构的网站系统,设计的功能结构图如下图所示:

图4-2功能结构图

4.3.数据库设计

4.3.1数据库实体

概念设计的目标是设计出反映某个组织部门信息需求的数据库系统概念模式,数据库系统的概念模式独立于数据库系统的逻辑结构、独立于数据库管理系统(DBMS)、独立于计算机系统。

概念模式的设计方法是在需求分析的基础上,用概念数据模型(例如E-R模型)表示数据及数据之间的相互联系,设计出反映用户信息需求和处理需求的数据库系统概念模式。概念设计的目标是准确描述应用领域的信息模式,支持用户的各种应用,这样既容易转换为数据库系统逻辑模式,又容易为用户理解。数据库系统概念模式是面向现实世界的数据模型,不能直接用于数据库系统的实现。在此阶段,用户可以参与和评价数据库系统的设计,从而有利于保证数据库系统的设计与用户的需求相吻合。在概念模式的设计中,E-R模型法是最常见的设计方法。本系统的E-R图如下图所示:

(1)管理员信息的实体属性图如下:

图4.12 管理员信息实体属性图

(2)用户信息实体属性图如图4.13所示:

图4.13 用户信息实体属性图

(3)试卷信息实体属性图如图4.14所示:

图4.14 试卷信息实体属性图

4.3.2数据库设计表

英语知识应用网站需要后台数据库,下面介绍数据库中的各个表的详细信息:

表4.1 在线客服

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

userid bigint(20) 否 用户id

adminid bigint(20) 是 NULL 管理员id

ask longtext 是 NULL 提问

reply longtext 是 NULL 回复

isreply int(11) 是 NULL 是否回复

表4.2 学习技巧评论表

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

refid bigint(20) 否 关联表id

userid bigint(20) 否 用户id

nickname varchar(200) 是 NULL 用户名

content longtext 否 评论内容

reply longtext 是 NULL 回复内容

表4.3 在线学习评论表

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

refid bigint(20) 否 关联表id

userid bigint(20) 否 用户id

nickname varchar(200) 是 NULL 用户名

content longtext 否 评论内容

reply longtext 是 NULL 回复内容

表4.4 试卷表

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

name varchar(200) 否 试卷名称

time int(11) 否 考试时长(分钟)

status int(11) 否 0 试卷状态

表4.5 试题表

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

paperid bigint(20) 否 所属试卷id(外键)

papername varchar(200) 否 试卷名称

questionname varchar(200) 否 试题名称

options longtext 是 NULL 选项,json字符串

score bigint(20) 是 0 分值

answer varchar(200) 是 NULL 正确答案

analysis longtext 是 NULL 答案解析

type bigint(20) 是 0 试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空)

sequence bigint(20) 是 100 试题排序,值越大排越前面

表4.6 考试记录表

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

userid bigint(20) 否 用户id

username varchar(200) 是 NULL 用户名

paperid bigint(20) 否 试卷id(外键)

papername varchar(200) 否 试卷名称

questionid bigint(20) 否 试题id(外键)

questionname varchar(200) 否 试题名称

options longtext 是 NULL 选项,json字符串

score bigint(20) 是 0 分值

answer varchar(200) 是 NULL 正确答案

analysis longtext 是 NULL 答案解析

myscore bigint(20) 否 0 试题得分

myanswer varchar(200) 是 NULL 考生答案

表4.7 英语角

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

title varchar(200) 是 NULL 帖子标题

content longtext 否 帖子内容

parentid bigint(20) 是 NULL 父节点id

userid bigint(20) 否 用户id

username varchar(200) 是 NULL 用户名

isdone varchar(200) 是 NULL 状态

表4.8 培训报名

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

peixunmingcheng varchar(200) 否 培训名称

kecheng varchar(200) 否 课程

tupian varchar(200) 是 NULL 图片

peixunzhouqi varchar(200) 是 NULL 培训周期

peixundidian varchar(200) 是 NULL 培训地点

zhanghao varchar(200) 是 NULL 账号

xingming varchar(200) 是 NULL 姓名

peixunfeiyong int(11) 是 NULL 培训费用

baomingshijian datetime 是 NULL 报名时间

sfsh varchar(200) 是 否 是否审核

shhf longtext 是 NULL 审核回复

ispay varchar(200) 是 未支付 是否支付

表4.9 培训信息

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

peixunmingcheng varchar(200) 否 培训名称

kecheng varchar(200) 否 课程

tupian varchar(200) 是 NULL 图片

peixunzhouqi varchar(200) 是 NULL 培训周期

peixunfeiyong int(11) 是 NULL 培训费用

peixundidian varchar(200) 是 NULL 培训地点

beizhu varchar(200) 是 NULL 备注

表4.10 收藏表

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

userid bigint(20) 否 用户id

refid bigint(20) 是 NULL 收藏id

tablename varchar(200) 是 NULL 表名

name varchar(200) 否 收藏名称

picture varchar(200) 否 收藏图片

表4.11 管理员表

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

username varchar(100) 否 用户名

password varchar(100) 否 密码

role varchar(100) 是 管理员 角色

addtime timestamp 否 CURRENT_TIMESTAMP 新增时间

表4.12 学习技巧

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

biaoti varchar(200) 是 NULL 标题

neirong longtext 是 NULL 内容

xuexiwenjian varchar(200) 是 NULL 学习文件

fabushijian datetime 是 NULL 发布时间

fengmian varchar(200) 是 NULL 封面

clicktime datetime 是 NULL 最近点击时间

clicknum int(11) 是 0 点击次数

表4.13 用户

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

zhanghao varchar(200) 否 账号

mima varchar(200) 否 密码

xingming varchar(200) 是 NULL 姓名

xingbie varchar(200) 是 NULL 性别

shouji varchar(200) 是 NULL 手机

shenfenzheng varchar(200) 是 NULL 身份证

youxiang varchar(200) 是 NULL 邮箱

zhaopian varchar(200) 是 NULL 照片

表4.14 在线学习

字段 类型 空 默认 注释

id (主键) bigint(20) 否 主键

addtime timestamp 否 CURRENT_TIMESTAMP 创建时间

biaoti varchar(200) 否 标题

tupian varchar(200) 是 NULL 图片

neirongjianjie longtext 是 NULL 内容简介

xuexishipin varchar(200) 是 NULL 学习视频

faburiqi datetime 是 NULL 发布日期

clicktime datetime 是 NULL 最近点击时间

clicknum int(11) 是 0 点击次数

6系统测试

6.1概念和意义

测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为:

目的:发现程序的错误;

任务:通过在计算机上执行程序,暴露程序中潜在的错误。

另一个预测是相关的术语叫纠错(Debugging)。它的目的与任务可以规定为:

目的:定位和纠正错误;

任务:消除软件故障,保证程序的可靠运行。测试与纠错的关系,可以用图6-1的数据流图来说明。图中表明,每一次测试都要准备好若干必要的测试数据,与被测试程序一道送入计算机执行。通常把一次程序执行需要的测试数据,称为一个"测试用例(Test Case)。每一个测试用例产生一个相应的"测试结果"。如果它与"期望结果"不想符合,便说明程序中存在错误,需要用纠错来改正。

图6.1测试与纠错信息流程

6.2特性

(1)挑剔性

测试是为了证明程序有错,而不是证明程序无错。因此,对于被测程序就是要"纯毛求疵",就是要"鸡蛋里挑骨头"。

(2)复杂性

测试仪程序则比较容易,这其实是一个误区。设计测试用力是一项需要细致和高度技巧的高能工作,稍有不慎就会顾此失彼,发生不应用得数楼。

(3)不彻底性

实际测试都是不彻底的,当然不能够保证测试后的程序不存在遗漏的错误。

(4)经济性

通场这种测试称为"选择测试(Selective Testing)"。为了降低测试成本,选择测试用力是应注意遵守"经济性"的原则。

6.3重要性

软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。

6.4测试方法

首先我们来说界面测试,界面测试是为了使程序在不同的的操作平台上能够运行界面,并且能够保持原来的风格。我把完整程序拷贝到Windows 7环境下,似的程序运行正常,运行界面上的字体图片等设置都能够保持得非常好。不出现字体变形等情况!

其次进行功能测试。该系统测试采用的是单元测试,集成测试,完善性测试等多种方式进行测试。

经过测试,所有功能都能得以实现,没有任何变形。至此,在功能的测试上也已经比较圆满的完成了。

由于经验不足,写代码时出现了一些考虑不周的系统缺陷,写代码的时候会出现与设想不一致,比如说代码不规范导致接口与接口之间出现问题,功能与客户的要求不符合,这样导致产品不能过关,无法交付。所以产品在上线前必须反复测试,经过反复测试,修改,再测试,再修改,产品才能够不断完善。在整个系统测试中,根据需求文档和设计文档,逐一对功能进行检测并写好测试用例,有效避免残片缺陷,因为产品出现缺陷不仅影响功能,而且可以导致数据的不准确,导致产品质量的降低,经过测试,才能使得产品的稳定性和成熟度得到极大的提升,产品质量也才有保证。

6.5 功能测试

功能测试主要包括五项内容:适用性、准确性、可操作性、依从性、安全性。

本系统功能测试如表6.1所示:

表6.1 系统功能测试

测试内容 测试结果

适用性 好

准确性 好

可操作性 好

依从性 好

安全性 好

6.6可用性测试

可用性测试用于检测系统的可操作性、可理解性、可学习性等方面内容。具体测试方面如表6.2所示。

表6.2 系统可用性测试

测试项 测试人员的评价

窗口移动、大小改变、关闭等操作是否正常 是

操作模块是否友好 是

模块、提示内容等文字描述是否正确 是

模块布局是否协调、合理 是

模块的状态是否正确(对选中项能否发生对应切换) 是

鼠标、键盘操作是否支持 是

所需数据项是否正确显示 是

操作流程是否合理 是

是否提供帮助信息 是

6.7性能测试

性能测试主要通过模拟系统运行环境,测试系统性能是否符合客户需求。性能测试的重要技术指标就是:系统运行速度、网络响应时间和支持并发节点数。

1)系统运行速度:通过在不同计算机上试运行本系统,没有发现有任何迟滞、停顿现象。

2)网络响应时间:网络响应时间主要包括网络最小响应时间、平均响应时间、最大响应时间三个参数。经过测试,在网络运营良好状态下,NBA局域网内响应时间三参数为:1/2/6s,NBA外网响应时间三参数为3/7/12s,符合客户需求,属于用户心理可承受范围。

3)支持并发节点数:经过模拟环境测试,本系统在并发节点达46个时,网络运营速度会发生较大波动,延迟时间10秒左右,符合客户需求。

6.8测试分析

本网站设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了用户能够方便操作。系统的主要特点和优点归纳如下:

(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给客户带来了极大的方便。

(2)该完整内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因用户的马虎操作而出现的失误,其操作方便,用户界面友好,能够上网的人都可以很好的进行操作。

6.9测试结果分析

经过对上述测试结果分析,本系统符合用户需求。所有基本功能点实现,操作简单,操作流程简单合理,产品运行性能良好,是一款值得推广的英语知识应用网站。

相关推荐
是小崔啊2 小时前
事务03之MVCC机制
数据库·mysql·事务·
customer085 小时前
【开源免费】基于SpringBoot+Vue.JS体育馆管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
LUCIAZZZ6 小时前
简单的SQL语句的快速复习
java·数据库·sql
EchoToMe7 小时前
电信传输基本理论/5G网络层次架构——超三万字详解:适用期末考试/考研/工作
网络·5g·架构
计算机-秋大田7 小时前
基于微信小程序的电子竞技信息交流平台设计与实现(LW+源码+讲解)
spring boot·后端·微信小程序·小程序·课程设计
Elastic 中国社区官方博客8 小时前
使用真实 Elasticsearch 进行高级集成测试
大数据·数据库·elasticsearch·搜索引擎·全文检索·jenkins·集成测试
@_@哆啦A梦8 小时前
Redis 基础命令
java·数据库·redis
fajianchen8 小时前
MySQL 索引存储结构
数据库·mysql
想做富婆9 小时前
oracle: 多表查询之联合查询[交集intersect, 并集union,差集minus]
数据库·oracle·联合查询
xianwu54310 小时前
反向代理模块jmh
开发语言·网络·数据库·c++·mysql