2开发技术介绍
2.1微信开发者工具
在传统web浏览器中,在加载htm15页面时先加载视图层的html和css,后加载逻辑层的java script,然后返回数据并在浏览器中展示页面。而微信开发者工具的系统层是基于Native System的,视图层和逻辑层会同时被加载。微信小程序的这种逻辑方式大大的优化了页面响应速度,减少了页面加载的等待时间,提高了用户体验。微信开发者工具可以实现同步本地文件,开发调试,编译预览,上传,发布等一整套流程。
2.2 Java语言简介
Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。 Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为"一次编译、到处执行"。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。Java的主要特性有以下几个:
1.面向对象 面向对象有四个特点:封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分,关注主要部分。多态是指对同一种消息做出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法,而不改变原来父类。
2.平台无关性、 Java编译出来的是字节码,直接由虚拟机执行。在任何平台上,只要有Java虚拟机,Java代码都能运行。
3.可靠性和安全性 Java对内存的访问都必须通过对象的实例变量来实现,避免了指针中出现的错误。
- 多线程 Java提供了多线程功能,利用编程实现同一时间同时工作的功能。
2.3 B/S结构简介
随着软件系统的不断改进和升级,B/S结构产品更为方便的特征体现地十分明显。对于一个中等偏大的公司来说,如果系统管理员每天要在很多台电脑之间来回查看,不断奔走,那么效率和工作量就会变得很低,但是如果使用了B/S结构,那么管理员只要对服务器进行管理就够了。 B/S结构最大的优点它不需要安装任何的软件,它所有的客户端就只是浏览器,所以只要有一台电脑并且可以上网就可以解决所有问题,客户端可以完全地不用管理员维护。无论使用系统的使用者是什么样的规模,也不管分支有多么的庞大,都不会对维护和升级的工作量造成影响,所有的维护和升级只需要操作服务器。随着B/S结构的不断发展,使用的人也不断增加,从而带动了AJAX技术的发展,和B/S结构一样,它也能在客户端上处理程序,这便缓解了服务器的负担,提高了交互性,而且实现了局部实时刷新。
2.4 MySQL 数据库技术
数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。简单来讲,存储粮食的仓库叫粮仓存储数据的仓库就叫数据库。数据库在软件项目中扮演着操作管理数据的角色同时还能够保证数据的独立性、一致性和安全性,并为系统访问数据提供有效方式不仅如此数据库还能大大减少程序员开发程序时间。在日常能够接触实用的一般有两类数据库,一类是以(Oracle,DB2,SQL Server,MySQL )为代表的关系型数据库和以(NoSql、MongeDB)为代表的非关系型数据库,两类数据库各有各的优缺点。其中非关系型数据库又分为网络数据库和层级数据库。-网络数据库是指在计算机网络系统中应用数据库技术然后借助网络技术将存储于数据库中的大量信息及时发布出去;在成熟的数据库技术的帮助下,计算机网络实现了对网络中的各种数据的有效管理,用户与网络中的数据库数据交互也借此得以进行。作为最成功的典型层次模型数据库系统,IMS是最早研制成功的数据库系统。1970年由埃德加•科德于首先提出的关系模型融合了"科德十二定律"。现如今即使很多人仍旧不看好这个模型,但它依旧是数据存储的传统标准。关系数据结构、关系操作集合、关系完整性约束构成了关系模型。作为数据库另外一种区分方式的存储介质被大家分为磁盘和内存这 两种。例如:关系型数据库就存储在磁盘中,非关系型数据库则存储在内存中。典型的关系型数据库有:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL、SQLite。小型关系型数据库:Microsoft Access,SQLite;中型关系型数据库:SQL Server,Mysql;大型关系型数据库:Oracle,DB2。 大家常用的其他关系形数据库系统大多是MySQL AB公司开发的,其中MySQL也是由这家开发的,所应用的分布式数据库管理系统是客户机/服务器体系结构得益于此结构,而且用这个系统建造的数据库具有很强的适用性,用C和C++编写的系统让他拥有很强的适用性所以他可以在大部分操作系统上使用并能和php结合。不同的API函数针对不同的语言(C,C++,JAVA等)来处理不同数据;为了更好地支持多CPU多线程通过使用核心线程来实现;提供的存储机制分为事务和非事务存储机制;MySQL采用双重许可,不管是从MySQL AB公司获得正式的商业许可又或是许可条款下以免费软件或开放源码软件的方式使用MySQL软件都是被允许的。 MySQL作为数据库拥有很多优点,其中由于是开放源码,所以使用成本特别低,而它体积小的特点决定了速度快的特性。因此,My Sql具有开放性,多线程支持多种API,可跨数据库连接,国际化,数据库体积巨大等特点。简单的来说 ,MySql是一个开放的、快速的、多线程的、多用户的数据库服务器。 选用MySQL作为数据库的其中一个原因就是支持多线程,支持多线程的特点为利用系统资源提供了便捷并因此大大提高了系统运行速度和效率,而且连接数据库的方式多样包括但不局限于TCP/IP、ODBC和JDBC等途径;但是没有东西是完美无缺的,即便MySQL也如此,虽说它有着众多优点但其功能不够强大,规模也相对较小,无法应对大型数据哭的处理。但是对于本系统来说,选用MySQL作为数据库,其功能性能已绰绰有余,如果要进行二次开发的数据库表结构空间的扩展也是完全可行的。综上所述,MySQL是作为本系统数据库的最优选择。
2.5 MySQL环境配置
本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。 修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令: cd C:\Program Files\MySQL\bin MySQLadmin -u root -p password 123 回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。
2.6 SSM框架
开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。
3系统分析
3.1可行性分析
在开发系统之前要进行系统可行性分析,目的是在用最简单的方法去解决最大的问题,程序一旦开发出来满足了客户的需要,所带来的利益也很多。下面我们将从技术、操作、经济等方面来选择这个系统最终是否开发。
3.1.1技术可行性
本系统开发选择java技术,java是一个完全面向对象的语言,java为开发者提供了丰富的类库,大大减少了使用windows编程的难度,减少开发人员在设计算法上的难度,作为java开发 Visual Studio更是一个必不可少的角色,它友好的界面,以及强大的功能,给程序开发人员带来了很多方便,加上环境简单,转移方便,无疑使此系统最佳的选择。所以后台设计选择使用MySQL数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。 依据上述目标来分析本系统的硬件如下: 奔腾3的处理器; 内存是 2G; 硬盘是50G; 操作系统是Window 10; 在软件方面的话,安装了Visul Studio 0 和MySQL数据库开发工具。根据以上的软件与硬件要求,得到这个系统的技术是可行的。
3.1.2经济可行性
基于微信小程序的高校课堂教学管理系统,该系统软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的高校课堂教学,同时还能实现对人力资源和管理资源的有效节约,该高校课堂教学管理在经济上完全可行。
3.1.3操作可行性
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.2系统性能需求分析
对系统性能进行分析,可对系统反应度、界面简洁清晰度、储存能性、易学性和稳定性进行分析; 系统反应度:同时上万人在线时反应时间应该在两三秒以内,。 界面简洁清晰:系统界面要求简单明了,操作简单,用户操作容易上手。 储存性能高:高校课堂教学管理中需要存储的信息有很多,所以对系统的存储量要求很高,因此数据库就应该很强大,才能保证信息能安全稳定的进行存储; 易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。 稳定性:要求高校课堂教学管理系统运行要稳定,界面清楚、字体清晰等。
3.3系统功能分析
考虑到实际生活中在高校课堂教学管理方面的需要以及对该系统认真的分析,将系统分为小程序端模块和后台管理员模块,权限按管理员,教师和学生这三类涉及用户划分。
- 管理员;管理员使用本系统涉到的功能主要有首页、个人中心、教师管理、学生管理、课程分类管理、课程资源管理、互动论坛、系统管理等功能。管理员用例图如图3-1所示。
图3-1 管理员用例图
- 教师主要包括首页、个人中心、课程资源管理、试题管理、课堂测试管理等功能进行详细操作。教师用例图如图3-2所示。
图3-2教师用例图
- 学生进入小程序可以实现首页、课程资源、测试、互动论坛、我的等功能,在我的页面可以对个人中心、我的收藏管理、测试记录、错题本、我要发贴、我的发贴等功能进行详细操作。学生用例图如图3-3所示。
图3-3学生用例图
3.4系统流程的分析
由于不同的系统实际使用用户角色的不同,他们的业务分析也会变得有所不一样,为了论述方便接下来都将以用户功能权限下的系统业务流程来分析,如下图所展示:
3.4.1 用户管理的流程
图3-4 用户管理流程
3.4.2 个人中心管理流程
图3-5 个人中心管理流程
3.4.3 登录流程
图3-6 登录流程
4系统设计
4.1 软件功能模块设计
小程序整体功能如下图所示:
图 4-1 小程序总体功能模块图
4.2 数据库设计
4.2.1 概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
课程资源实体图如图4-2所示:
图4-2课程资源实体图
行程提醒实体图如图4-3所示:
图4-3行程提醒实体图
学生信息实体图如图4-4所示:
图4-4学生信息实体图
4.2.2 物理模型设计
根据上诉的逻辑模型设计,下面给出物理模型的设计,如下表:
表4-1:校园资讯
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | varchar | 200 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-2:课程
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengbianhao | varchar | 200 | 课程编号 | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
zhangjie | varchar | 200 | 章节 | ||
kebiao | varchar | 200 | 课表 | ||
shangkeshijian | date | 上课时间 | |||
didian | longtext | 4294967295 | 地点 | ||
beizhu | longtext | 4294967295 | 备注 | ||
fabushijian | date | 发布时间 | |||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
clicktime | datetime | 最近点击时间 |
表4-3:考试通知
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengbianhao | varchar | 200 | 课程编号 | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
kebiao | varchar | 200 | 课表 | ||
zhangjie | varchar | 200 | 章节 | ||
kaoshishijian | date | 考试时间 | |||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 |
表4-4:教师
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
mima | varchar | 200 | 密码 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
xingbie | varchar | 200 | 性别 | ||
zhaopian | varchar | 200 | 照片 | ||
shouji | varchar | 200 | 手机 | ||
renjiaokemu | varchar | 200 | 任教科目 |
表4-5:学生选课
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengbianhao | varchar | 200 | 课程编号 | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
zhangjie | varchar | 200 | 章节 | ||
kebiao | varchar | 200 | 课表 | ||
xuankeshijian | date | 选课时间 | |||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-6:学生
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
mima | varchar | 200 | 密码 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
xingbie | varchar | 200 | 性别 | ||
zhaopian | varchar | 200 | 照片 | ||
shouji | varchar | 200 | 手机 | ||
shenfenzheng | varchar | 200 | 身份证 | ||
youxiang | varchar | 200 | 邮箱 | ||
zhuanye | varchar | 200 | 专业 |
表4-7:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-8:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
userid | bigint | 用户id | |||
username | varchar | 100 | 用户名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密码 | ||
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表4-9:学习论坛
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 帖子标题 | ||
content | longtext | 4294967295 | 帖子内容 | ||
parentid | bigint | 父节点id | |||
userid | bigint | 用户id | |||
username | varchar | 200 | 用户名 | ||
isdone | varchar | 200 | 状态 |
表4-10:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
5系统详细设计
5.1小程序端
登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如图5-1所示。
图5-1登录界面图
学生注册,在学生注册页面通过填写学号、密码、确认密码、学生姓名、性别、院系、学生手机等信息进行学生注册操作;如图5-2所示。
图5-2学生注册界面图
用户登陆小程序端,可以对首页、课程资源、测试、互动论坛、我的等功能进行详细操作,如图5-3所示。
图5-3小程序端首页界面图
课程资源,在课程资源页面可以查看课程名称、课程分类、图片、视频、发布时间、教师工号、教师姓名、资源介绍等信息,并根据需要进行评论或收藏操作;如图5-4所示。
图5-4课程资源界面图
学生,在我的页面可以对个人中心、我的收藏管理、测试记录、错题本、我要发贴、我的发贴等详细信息进行操作,如图5-5所示。
图5-5学生功能界面图
学生信息,在用户信息页面通过填写学号、密码、学生姓名、性别、头像、院系、学生手机等详细信息进行保存或退出登录操作,如图5-6所示。
图5-6学生信息界面图
5.2后台功能模块
后台登录,管理员和教师通过输入账号、密码,选择角色并点击登录进入系统操作界面,如图5-7所示。
图5-7后台登录界面图
5.2.1管理员功能模块
管理员登陆系统后,可以对首页、个人中心、教师管理、学生管理、课程分类管理、课程资源管理、互动论坛、系统管理等功能进行详细操作,如图5-8所示。
图5-8管理员功能界面图
教师管理,在教师管理页面可以对索引、教师工号、老师姓名、性别、照片、职称、联系电话、院系等内容进行详情,修改和删除操作,如图5-9所示。
图5-9教师管理界面图
学生管理,在学生管理页面可以对索引、学号、学生姓名、性别、头像、院系、学生手机等内容进行详情,修改和删除操作,如图5-10所示。
图5-10学生管理界面图
课程分类管理,在课程分类管理页面可以对索引、课程分类等内容进行修改和删除等操作,如图5-11所示。
图5-11课程分类管理界面图
课程资源管理,在课程资源管理页面可以对索引、课程名称、课程分类、课程视频、发布时间、资源图片、教师工号、教师姓名等内容进行详情,修改,查看评论或删除操作,如图5-12所示。
图5-12课程资源管理界面图
互动论坛,在互动论坛页面可以对索引、帖子标题、用户名、状态等内容进行详情,修改,查看评论或删除操作,如图5-13所示。
图5-13互动论坛界面图
系统管理,在系统公告页面可以对索引,标题,图片等内容进行详情,修改和删除等操作,还可以对轮播图管理进行详细操作;如图5-14所示。
图5-14系统管理界面图
5.2.2教师功能模块
教师登陆系统后,可以对首页、个人中心、课程资源管理、试题管理、课堂测试管理等功能进行详细操作,如图5-15所示。
图5-15教师功能界面图
课程资源管理,在课程资源管理页面可以对索引、课程名称、课程分类、课程视频、发布时间、资源图片、教师工号、教师姓名等内容进行详情,修改,查看评论或删除操作,如图5-16所示。
图5-16课程资源管理界面图
试题管理,在试题管理页面可以对课堂测试、试题名称、分值、答案、类型等内容进行修改和删除操作,如图5-17所示。
图5-17试题管理界面图
课堂测试管理,在课堂测试管理页面可以对索引、课堂测试名称、测试时长(分钟)、课堂测试状态等内容进行详情,修改和删除操作,如图5-18所示。
图5-18课堂测试管理界面图
6系统测试
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码和选择权限,点击登录按钮,会出现两种情况:登录成功进入用户具有权限的功能界面和提示登录失败。
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码和选择权限,点击登录按钮,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。