项目实训记录2

在指导老师的要求下,我们小组开始编写需求分析文档,同时继续进行前后端技术学习,为开发做准备

需求分析文档如下:

1.引言

1.1编写目的

该文档首先给出了整个系统的整体网络结构和功能结构的概貌,试图从总体架构上给出整个系统的轮廓,然后又对功能需求、性能需求和其它非功能性需求进行了详细的描述。其中对功能需求的描述采用了UML的用例模型方式,而且还给出了非常直观的用例图。这些文字和图形都为了本文档能详细准确地描述用户的需求,同时也为用户更容易地理解这些需求的描述创造了条件。

    该文档详尽说明了这一软件产品的需求和规格,这些规格说明是进行设计的基础,也是编写测试用例和进行系统测试的主要依据。同时,该文档也是用户确定软件功能需求的主要依据。

1.2背景

疫情的爆发,网络的普及,使得足不出户就能完成学生考试成为了师生们的一项重要需求。而这催生了在线考试管理系统的开发,它能够为为学校、企业和教育机构提供的在线考试解决方案,使用该系统可以方便的完成组织考试、管理成员、线上答题、成绩统计分析的全部考试流程,有效降低了组织成本,提高工作效率。

1.3读者对象和阅读建议

   本文档的主要内容共分4部分:综合描述、系统特性、和非功能性需求和外部接口描述。综合描述部分主要对系统的整体结构进行了大致的介绍;系统特性部分对系统的功能需求进行了详细描述,是本文的主要部分;非功能性需求部分对非功能需求进行了详细的描述;外部接口需求部分对用户界面、软件接口、硬件接口和通讯接口等进行了描述。

    本文档面向多种读者对象:

   (1)项目经理:项目经理可以根据该文档了解预期产品的功能,并据此进行系统设计、项目管理。

(2)设计员:对需求进行分析,并设计出系统,包括数据库的设计。

(3)程序员:配合《设计报告》,了解系统功能,编写《用户手册》。

(4)测试员:根据本文档编写测试用例,并对软件产品进行功能性测试和非功能性测试。

(5)销售人员:了解预期产品的功能和性能。

(6)用户:了解预期产品的功能和性能,并与分析人员一起对整个需求进行讨论和协商。

(7)其他人员:如部门领导、公司领导等可以据此了解产品的功能和性能。在阅读本文档时,首先要了解产品的功能概貌,然后可以根据自身的需要对每一功能进行适当的了解。

1.4参考资料

软件需求规格说明书IEEE标准

2.总体概述

2.1软件概述

2.1.1 项目介绍

考试管理系统是为学校、企业和教育机构提供的在线考试解决方案,使用该系统可以方便的完成组织考试、管理成员、线上答题、成绩统计分析的全部考试流程,有效降低了组织成本,提高工作效率

    系统同时提供题库管理和题目分析功能,可以有效帮助机构完成题目积累和知识沉淀,为机构数据积累提供帮助。

2.1.2 产品环境介绍

    系统采用符合J2EE技术规范的多层架构,客户端使用浏览器。整个系统运行与应用服务器之上,利用应用中间件支撑系统的运行,数据库管理系统使用MySQL,应用中间件使用Tomcat。

服务器端:

系统架构:J2EE

开发工具:IDEA

数据库:MySQL

开发技术:java,mybaits,Spring Boot,sql

中间件:Tomcat,jdk1.8

客户端:

开发工具:VScode

开发技术:Vue,Element-ui,node,npm

环境要求:

服务器:

CPU:1GHZ以上

内存:2GB以上

客户端:

CPU:1GHZ以上

内存:2GB以上

2.2软件功能

功能列表:

用例图(具体展开请看第三部分系统设计):

2.3老师类及其特征

登录,注册

题库管理:题目录入(在线录入和批量导入,题目需要录入题干、选型、正确答案、解析,题目类型包括单选题、多选题、判断题、填空题),题目分类(自定义题目分类,多级分类,可以通过分类进行检索),题目检索查询(按题干关键字、题目分类、题目类型进行检索)

考试管理:考试基本信息(创建一次考试活动,设置考试基本信息(考试时间,答题时间,考试介绍)),试卷管理(抽取题库题目组成一套试卷(可以选题组卷和自动组卷)),考试成员管理(添加、删除考试成员)

考试结果管理:判卷(自动判卷、人工审查纠错),统计分析(汇总全部考试成员的成绩和答题信息,进行成绩排名、计算平均分。统计每道题目的得分、对错情况、进行可视化的图标展示)

系统管理:用户管理(增删改查)、账号管理(增删改查)、角色管理(增删改查)

2.4学生类及其特征

登录,注册

在线答题:在线答题(在线完成答题,提交试卷,考试时间结束自动提交),查看考试结果(考试结束之后进行考试结果查询)

2.5假设和依赖关系

本项目是否能够成功实施,主要取决于以下的条件:

(1)为了项目的开发和实施,在必要时对现有的软件开发流程进行详细的了解。

(2)具有相对稳定的项目团队,不稳定的团队将影响项目的进度和质量。

(3)团队成员对软件开发过程使用的性能良好的软件有较好的了解,明确其中必要的功能,为本项目提供完整的功能和性能需求资料,以便于对其进行分析,从而形成完善的软件需求。

(4)团队拥有软件系统的运行必要的且能够满足系统运行条件的硬件环境和通讯环境,不合适的硬件环境和通讯环境将会影响系统的性能。

(5)项目团队掌握先进的能够适用于该项目的技术,这是系统的性能是否优化和项目能否成功的保证。

3 系统功能

3.1题库管理

3.2考试管理

3.3在线答题

3.4考试结果管理

3.5系统管理

4 外部接口需求

4.1用户接口

本系统采用Vue+SpringBoots架构,用户界面的具体细节将在具体中描述。

4.2硬件接口

服务器端建议使用专用服务器。

4.3软件接口

无特殊需求

4.4通信接口

无特殊需求。

5.其它非功能性需求

5.1性能需求

5.1.1可靠性需求

考试期间是系统用户登陆的高峰期,需要确保系统能够适应所有用户的登陆与各种请求。

5.1.2响应时间需求

用户提交不同请求之后,对请求的响应时间不能超过3秒,所有操作将在此时间内将完成,并返回确认信息。

5.1.3开放性需求

    系统应该具备十分的灵活性,以适应将来功能拓展的需求。

5.2安全性需求

(1)权限控制

根据不同用户角色,设置相应权限,用户的重要操作都做相应的日志记录以备查看,没有登录注册的用户禁止使用系统,禁止重复登录。

(2)记录日志

本系统应该能够记录系统运行时所发生的所有错误,包括本机错误和网络错

误。这些错误记录便于查找错误的原因。日志同时记录用户的关键性操作信息。

(3)数据备份

每天24点,进行数据的备份。

(4)重要数据加密

本系统对一些重要的数据按一定的算法进行加密,如用户口令、重要参数等。

5.3可用性需求

(1)方便操作,操作流程合理

尽量从用户角度出发,以方便使用本产品。

(2)支持没有计算机使用经验、计算机使用经验较少及有较多计算机使用

经验的用户均能方便地使用本系统。

(3)控制必录入项

本系统能够对必须录入的信息进行控制,使用户能够确保信息录入的完整。同时对必录入项进行有效的统一的提示。

(4)联机帮助与操作指南。

为用户提供操作指南,帮助用户了解使用方式,快速上手。

(5)容错能力

系统具有一定的容错和抗干扰能力,在非硬件故障或非通讯故障时,系统能

够保证正常运行,并有足够的提示信息帮助用户有效正确地完成任务。

5.4市场需求

    在网络学习的时代,在线考试也成了学生和老师们的一项重大需求,因此,在线考试管理系统的设计,为学校、企业和教育机构提供了在线考试解决方案。使用该系统可以方便的完成组织考试、管理成员、线上答题、成绩统计分析的全部考试流程,有效降低了组织成本,提高工作效率。系统同时提供题库管理和题目分析功能,可以有效帮助机构完成题目积累和知识沉淀,为机构数据积累提供帮助。

5.5用户文档

使用简单、所见即所得。暂不提供用户文档。

6.软件质量特性

6.1可靠性

要求系统能够长时间正常运行,并且支持多用户同时访问。在任何时间用户均可通过登录进入系统平台,进行操作。

6.2易用性

具有友好易用的用户界面及简单的操作方法,提供用户操作指南,保证用户上手简单

6.3可维护性

能够满足系统管理员对系统维护的需求,能够实现软件开发者对软件的进一步维护

6.4扩展性

能够满足软件开发者对软件功能进一步扩展的需求;

6.5可测试性

在需要时,能够通过配置文件来控制内部关键信息的输出,输出目标也可通过配置文件配置。

6.6健壮性

系统不会产生数据的冗余、不匹配等情况。如果用户在操作过程中与系统中断,只需刷新界面,重新连接系统,系统即可恢复修改未保存的状态。

  1. 数据库

7.1数据库逻辑设计

7.1.1ER

7.1.2数据字典

(1)考试信息表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

title

varchar(255)

考试名称

content

varchar(255)

考试描述

open_type

int(11)

考试类型

join_type

int(11)

组题方式

level

int(11)

考试难度

state

int(11)

考试状态

time_limit

tinyint(3)

是否限时

start_time

datetime

开始时间

end_time

datetime

结束时间

create_time

datetime

创建时间

update_time

datetime

更新时间

total_score

int(11)

总分数

total_score

int(11)

总时长

(分钟)

qualify_score

int(11)

及格分数

(2)班级考试表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(32)

自增id

exam_id

varchar(32)

考试id

depart_id

varchar(32)

班级id

(3)考试题库表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

exam_id

varchar(64)

考试id

repo_id

varchar(64)

题库id

radio_count

int(11)

单选题数量

radio_score

int(11)

单选题分数

multi_count

int(11)

多选题数量

multi_score

int(11)

多选题分数

judge_count

int(11)

判断题数量

judge_score

int(11)

判断题分数

sap_count

int(11)

简答题数量

sap_score

int(11)

简答题分数

(4)用户试卷表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

user_id

varchar(64)

用户id

depart_id

varchar(32)

班级id

exam_id

varchar(32)

考试id

title

int(11)

考试名称

total_time

int(11)

考试时长

user_time

int(11)

用户时长

total_score

int(11)

试卷总分

qualify_score

int(11)

及格分

obj_score

int(11)

客观分

subj_score

int(11)

主观分

user_score

int(11)

用户得分

has_saq

tinyint(3)

是否包含简答题

state

int(11)

试卷状态

create_time

datetime

创建时间

update_time

datetime

更新时间

limit_time

datetime

截止时间

(5)用户试卷表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

paper_id

varchar(64)

试卷id

qu_id

varchar(64)

题目id

qu_type

int(11)

题目类型

answered

tinyint(3)

是否作答

answer

varchar(5000)

主观答案

sort

int(11)

问题排序

score

int(11)

题目分数

actual_score

int(11)

实际得分

is_right

tinyint(3)

是否答对

(6)试卷答案表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

paper_id

varchar(64)

试卷id

answer_id

varchar(32)

回答项id

qu_id

varchar(64)

题目id

is_right

tinyint(11)

是否正确

checked

tinyint(11)

是否选中

sort

int(11)

排序

abc

varchar(64)

选项标签

(7)题目表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

qu_id

varchar(64)

题目id

qu_type

int(11)

题目类型

level

int(11)

题目难度

content

varchar(2000)

题目内容

create_time

datetime

创建时间

update_time

datetime

更新时间

remark

varchar(255)

题目备注

analysis

varchar(2000)

整体解析

(8)题目答案表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

answer_id

varchar(64)

答案id

qu_id

varchar(64)

题目id

is_right

tinyint(3)

是否正确

content

varchar(5000)

答案内容

analysis

varchar(5000)

答案解析

(9)题目题库表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

qu_id

varchar(64)

问题id

repo_id

varchar(64)

题库id

qu_type

varchar(64)

题目类型

sort

int(11)

排序

(10)题库表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

repo_id

varchar(255)

题库id

title

varchar(255)

题库名称

repo_count

int(11)

单选数量

mulit_count

int(11)

多选数量

judge_count

int(11)

判断数量

remark

varchar(255)

题库备注

create_time

datetime

创建时间

update_time

datetime

更新时间

(11)用户错题表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

exam_id

varchar(64)

考试id

user_id

varchar(64)

用户id

qu_id

varchar(64)

题目id

create_time

datetime

加入时间

update_time

datetime

最近错误时间

wrong_count

int(11)

错误次数

gu_id

varchar(64)

题目id

sort

int(11)

错题序号

(12)考试记录表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

exam_id

varchar(64)

考试id

user_id

varchar(64)

用户id

try_count

int(11)

考试次数

max_score

int(11)

最高分

passed

tinyint(3)

是否通过

create_time

datetime

创建时间

update_time

datetime

更新时间

(13)班级信息表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

dept_name

varchar(255)

班级名称

dept_id

varchar(255)

班级id

(14)用户表

字段名称

数据类型

是否可以为空

是否为主键

字段说明

id

varchar(64)

自增id

user_name

varchar(255)

用户名

real_name

varchar(255)

真实姓名

password

varchar(255)

密码

salt

varchar(255)

密码盐

depart_id

varchar(32)

班级id

role_type

tinyint(3)

角色类型

create_time

datetime

创建时间

update_time

datetime

更新时间

state

int(11)

状态

7.2数据库物理设计

7.2.1索引

7.2.2安全机制

系统安全、数据安全

数据安全:

  程序启动需要经过登陆认证,登陆ID 和密码正确才能启动程序。

 程序内部的任何会引起数据库改动的操作(增删改)均经过了严密的审查判定,以确保数据库的准确性和一致性。

系统安全:

 登陆需经过身份认证,即身份口令密码一致才可登录。

 不同的用户角色有不同的权限,用户只能使用分配给他的权限,无法越权操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值