1 引言
1.1 编写目的
本文内容的编写目的是为了更好地使用户、研发人员、测试人员了解本项目,旨在帮助开发者进行编码,同时使测试人员更清楚地了解系统架构和具体功能设计。
1.2 定义
a. 待开发项目名称:公共课程资源网站
b. 项目目标用户:高校学生
c. 项目任务提出者及项目开发者:软工第九组
d. 开发环境:java、mysql、tomcat以及前端开发语言
e. 开发框架:Java Maven Web、SSM
1.3 预期读者
用户、项目开发人员、项目测试人员、项目文档编写人员、指导老师
1.4 参考资料
与本设计说明书相关的参考资料如下:
a. 属于本项目的其他已发表文档
b. 软件开发文档模板GB856T-88中的概要设计说明书(GB8567——88)、详细设计说明书(GB8567——88)以及数据库设计说明书(GB8567——88)
2 概要设计
2.1 需求规定
本网站系统主要的输入项目包括学院信息、课程信息、用户信息、用户操作,主要输出项目包含用户操作界面、课表界面、查询信息展示界面等。关于输入输出的详细需求说明可参照本项目已发布的需求分析文档第3部分动态模型和第4部分功能模型。处理的功能性能要求包括课程信息、用户信息、crud操作的正确性要求以及系统数据的安全性需求。
2.2 基本设计概念和处理流程
基本设计:网站将用户分类为游客、用户、管理员三类,其中游客与用户之间、用户与管理员之间的功能需求有交叉,系统的主要输出项用户界面会因此有所不同。详细的需求设计可参照本项目已发布的需求分析文档第1部分需求陈述
处理流程:详细的设计可参照本项目已发布的需求分析文档第4部分功能模型。
2.3 功能结构
为了更好的说明系统结构,根据功能的不同将本系统划分成五个模块:
a. 账户管理模块:用户在注册成功后通过登录进入课程系统,登录信息提交后检验登录信息是否正确,如果正确则转入相对应的操作界面,否则提示错误信息。
b. 信息浏览模块:信息浏览包括课程信息浏览、公共信息浏览、个人信息浏览。课程信息浏览是为用户提供已发布的课程具体信息;公共信息浏览适用于用户查看系统信息等群体公告类消息;个人信息浏览是用于用户查看包括收藏的课程等个人信息。
c. 信息查询模块:信息查询就包括学院查询、课程查询、条件筛选等操作。
d. 信息修改模块:信息修改包括课程信息修改、个人信息修改、账户密码修改等。
e. 课程发布模块:用于管理员发布新的课程信息。
2.4 人工处理功能
在正常运行中,除用户输入数据及运维人员定期进行数据库管理外系统无需额外人工处理,在特殊情况下,可能需要运维人员进行一定人工处理。例如在网络爬虫无法正常进行课程信息获取的时候需要由管理员管理课程信息;机房断电时,运维人员需重启服务器;在用户误操作导致数据丢失时,运营人员可为用户人工恢复数据备份。
3 部分关键功能详细设计
3.1用户管理设计说明
3.1.1程序描述
本程序用于用户的注册登录验证。对于拥有账号信息的用户,输入账号、密码,系统验证账号密码是否匹配,匹配才能进入系统,否则需要重新输入账号、密码进行登录。对于没有账号信息的用户,需要先进行注册,注册时需输入用户名、密码、确认密码、验证码,注册之后即可登录进入系统。
3.1.2 ipo表及ipo图
该模块的IPO表如下表所示:
系统 | 公共课程资源网站 |
---|---|
模块 | 用户管理 |
输入 | 用户账号:用户注册或登录输入 密码: 用户注册设置或登录输入 验证码:图片形式给出 |
处理 | 对于注册用户: 验证用户输入的用户名,访问数据库的用户表,查询是否含有账号注册信息,若没有,通过该账号,否则,返回“该账号已注册”; 验证前后两次输入的密码是否相同,若相同则通过,若不相同,返回账号密码错误 验证用户输入的验证码,若验证成功,用户账号、密码信息存储到用户表,返回“注册成功”,并跳转到登录界面;若验证失败,返回“验证码错误”。 对于登录用户: 验证用户输入的账号、密码,访问数据库的用户表,查询对应账号和密码,若匹配成功,返回“登录成功”并跳转到系统主页面;若匹配失败 ,返回“密码错误” |
输出 | 注册:“注册成功”、“该账号已注册”、“账号格式错误”或“验证码错误、“密码错误”” 登录:“登录成功”或“账号或密码错误” |
局部数据元素 | 用户账号、用户密码、验证码 |
注释 | 涉及到的数据库表:用户表 |
该模块的IPO图如下图所示:
3.1.3 输入项
a. 用户账号
数据类型及格式:字符串类型
数据值的有效范围:首字不为空
输入方式:用户注册或登录账号栏填写
b. 密码
数据类型及格式:字符串类型,长度至少为6
数据值的有效范围:由字母和数字组成
输入方式:用户注册或登录密码栏填写
c. 验证码
数据类型及格式:字符串类型,长度为4
数据值的有效范围:由数字和字母组成
输入方式:以图片形式给出并在注册或登录验证码栏填写
d. 确认密码
数据类型及格式:字符串类型,长度至少为6
数据值的有效范围:与密码完全相同
输入方式:用户注册确认栏填写
3.1.4输出项
a. 注册成功
数据类型及格式:字符串类型
输出方式:系统弹窗提示
b. 该账号已被注册
数据类型及格式:字符串类型
输出方式:系统弹窗提示
c.账号格式错误
数据类型及格式:字符串类型
输出方式:系统弹窗提示
d. 验证码错误
数据类型及格式:字符串类型
输出方式:系统弹窗提示
e. 登录成功
数据类型及格式:字符串类型
输出方式:系统弹窗提示
f. 账号或密码错误
数据类型及格式:字符串类型
输出方式:系统弹窗提示
3.2 课程查询功能设计说明
3.2.1程序描述
本程序用于课程查询功能的支持。用户在查询框内输入想要查询的课程信息,可以是课程号、课程名、学院名等,系统将根据输入信息在数据库中进行查找,并将符合条件的课程信息展示到搜索结果界面,若没有符合条件的课程则在搜索结果界面显示“没有查找到相关课程”。
3.2.2 ipo表及ipo图
该模块的ipo表如下表所示:
系统 | 公共课程资源网站 |
---|---|
模块 | 课程查询功能 |
输入 | 课程关键字 |
处理 | 将根据输入信息在数据库中进行查找,并将查找结果返回给前端 |
输出 | 如果有相关课程,将相关课程的信息展示在搜索结果页面 如果没有相关课程,在搜索结果页面显示“没有查找到相关课程 |
局部数据元素 | 课程关键字 |
注释 | 涉及到的数据库表:课程信息表,学院信息表 |
该模块的IPO图如下图所示:
3.2.3 输入项
课程关键字
数据类型及格式:字符串类型
数据值的有效范围:由数字或汉字组成
输入方式:在主页面查询输入栏填写
3.2.4 输出项
a. 课程信息
输出方式:以前端设计好的相应格式在搜索结果页面输出
b. 没有查找到相关课程
输出方式:以字符串形式在搜索结果页面输出
4 数据库设计
4.1.编写目的
作为软件设计文档的重要组成部分,本文档主要对该软件后台数据库的概念模型设计和物理模型设计作出了统一的规定,同时确定了每个表的数据字典结构。
4.2结构设计
4.2.1概念结构设计
全局体统ER图
4.2.2逻辑结构设计
根据上述er图可以得到需要设计的实体以及实体之间的关系,需要建立表:User、Course、Evaluation、Discussion、College、user_course、Admin。
表User
字段名 | 数据类型 | 长度 | 描述 |
---|---|---|---|
userId | int | 15 | 主键非空,自增id |
userName | varchar | 255 | 用户名 |
userPassword | varchar | 255 | 用户密码 |
cellphone | varchar | 255 | 用户手机 |
varchar | 255 | 用户邮箱 | |
userIntroduce | varchar | 255 | 用户介绍 |
表Course
字段名 | 数据类型 | 长度 | 描述 |
---|---|---|---|
courseId | int | 15 | 主键非空,自增id |
courseName | varchar | 255 | 课程名 |
courseIntroduce | varchar | 255 | 课程介绍 |
coucontent | varchar | 255 | 课程内容 |
collegeId | int | 15 | 课程院校 |
表Evaluation
字段名 | 数据类型 | 长度 | 描述 |
---|---|---|---|
evaluationId | int | 15 | 主键非空,自增id |
evacontent | varchar | 255 | 评价内容 |
userId | int | 15 | 评价用户 |
courseId | int | 15 | 评价课程 |
evatime | DATE | 3 | 评价时间 |
表Discussion
字段名 | 数据类型 | 长度 | 描述 |
---|---|---|---|
discussionId | int | 15 | 主键非空,自增id |
discontent | varchar | 255 | 讨论内容 |
userId | int | 15 | 讨论用户 |
courseId | int | 15 | 讨论课程 |
distime | DATE | 3 | 讨论时间 |
表user_course
字段名 | 数据类型 | 长度 | 描述 |
---|---|---|---|
id | int | 15 | 主键非空,自增id |
userId | int | 15 | 用户id |
courseId | int | 15 | 课程id |
表College
字段名 | 数据类型 | 长度 | 描述 |
---|---|---|---|
collegeId | int | 15 | 主键非空,自增id |
collegeName | varchar | 255 | 院校名 |
collegeIntroduce | varchar | 255 | 院校介绍 |
表Admin
字段名 | 数据类型 | 长度 | 描述 |
---|---|---|---|
adminId | int | 15 | 主键非空,自增id |
adminName | varchar | 255 | 管理员用户名 |
adminPassword | varchar | 255 | 管理员密码 |
5系统出错处理设计
为了便于平台的开发、测试,以及带给更好的使用体验,平台需具有良好的错误捕获和提示机制。在平台运行过程中出现任何错误时都必须有清晰、友好的提示信息,以提醒用户或指示错误发生的原因、位置,帮助用户进行更好的操作。
出错状况及处理方法如下表
出错类别 | 出错提示信息 | 出错原因 | 处理方法 |
---|---|---|---|
一般错误 | 数据库异常 | 前端与后端连接异常或后端处理异常 | 检查后端出错原因并通知管理人员 |
一般错误 | 未查询到相关结果 | 用户查询输入没有符合条件的结果 | 提示用户进行重新输入或取消操作 |
网络错误 | 网络连接不可用 | 用户设备为正常连接网络或网络出现问题 | 检查网络章台,正常连接后重新运行 |
程序错误 | 在网络正常的时候网站无法正常打开 | 网站异常 | 检查出错原因并通知管理人员 |