目 录
摘 要 I
Abstract II
引 言 1
1 相关技术 3
1.1 MySQL 3
1.2 SSM框架 3
1.2.1 SpringBoot 3
1.2.2 Spring 4
1.2.3 MyBatis 5
1.3 B/S架构 5
1.4 本章小结 6
2 系统分析 7
2.1 用例分析 7
2.2 功能需求 9
2.3 非功能需求 10
2.4 本章小结 10
3 系统设计 11
3.1 系统概要设计 11
3.1.1 系统功能结构 11
3.1.2 软件体系结构 12
3.2 系统详细设计 13
3.2.1 数据库设计 13
3.2.2 系统功能设计 16
3.3 本章小结 18
4 系统实现 19
4.1 开发环境 19
4.2 开发规范 19
4.3 数据库实现 19
4.4 核心功能实现 20
4.4.1 学校专业信息录入功能 20
4.4.2 活动管理功能 22
4.5 本章小结 24
5 系统测试 25
5.1 测试计划 25
5.2 测试用例 25
5.3 压力测试 27
5.4 测试结果 28
5.5 本章小结 28
结 论 29
致 谢 30
参考文献 31
摘 要
随着中国教育体制改革的深化和高校自身的发展,校友工作越来越被高校所重视。绝大多数高校都成立了校友总会,并配备专职的人员,积极开展校友工作。由于“校友”具有数量庞大、联系松散的特点,所以高效校友工作普遍面临人员不足、资源有限等困境。所以借助互联网的力量来管理与维护校友信息,乃至开展进一步校友服务工作,目前已经成为高效校友工作者的共识。
通过对市场需求的分析以及行业现状的调研。校友管理平台运用SSM技术进行功能的开发,网络结构模式采用B/S结构进行搭建,同时采用MySQL作为后台数据库,以Tomcat作为应用服务器开发并实现校友管理平台。所设计开发的校友管理平台共包含了校友、校友会等大模块。本系统的突出之处在于通过该系统使得管理员可以方便的管理校友信息,创建校友活动、募捐活动等。通过使用校友管理平台,使得业务的可操作性与实用性得到了增强,具有可靠,快捷的优点,在很大程度上降低了管理员的工作量,提升了管理员的工作效率。
该系统采用的技术框架是SSM和Layui,这两个技术让系统的可维护性变得更高。在实际的编码完成后已经成功的实现了校友管理平台各个功能模块,之后对校友管理平台进行详细测试、测试结果将证明该系统已经可以正常使用。在实际使用之后证明该系统的整体运行稳定,能够满足大多数用户的学习和交流需求。
关键词:校友信息;管理平台;SSM框架
Abstract
With the deepening of China’s education system reform and the development of universities themselves, more and more attention has been paid to alumni work. The vast majority of universities have established alumni associations, which are staffed with full-time staff and actively carry out alumni work. Due to the large number of “alumni” and loose connection, the efficient work of alumni is generally faced with the difficulties of insufficient staff and limited resources. Therefore, to manage and maintain alumni information with the help of the power of the Internet, and even to carry out further alumni service work, has become the consensus of efficient alumni workers.
Through the analysis of market demand and the investigation of the current situation of the industry. The alumni management platform USES SSM technology to develop its functions. The network structure model is built with B/S structure. Meanwhile, MySQL is used as the background database and Tomcat is used as the application server to develop and realize the alumni management platform. The design and development of the alumni management platform includes a total of alumni, alumni association and other large modules. The outstanding point of this system is that it allows administrators to conveniently manage alumni information, create alumni activities, fundraising activities, etc. Through the use of alumni management platform, the operability and practicability of the business has been enhanced, with the advantages of reliability and speed, which greatly reduces the workload of administrators and improves their work efficiency.
The technical frameworks used for this system are SSM and Layui, which make the system more maintainable. After the completion of the actual coding, various functional modules of the alumni management platform have been successfully realized. After the detailed test of the alumni management platform, the test results will prove that the system can be used normally. It is proved that the system is stable and can meet the learning and communication needs of most users.
Keywords: alumni information;administer;SSM framework
引 言
随着中国教育体制改革的深化和高校自身的发展,校友工作越来越被高校所重视。绝大多数高校都成立了校友总会,并配备专职的人员,积极开展校友工作。由于“校友”具有数量庞大、联系松散的特点,所以高效校友工作普遍面临人员不足、资源有限等困境。所以借助互联网的力量来管理与维护校友信息,乃至开展进一步校友服务工作,目前已经成为高效校友工作者的共识。
校友工作是学校教育的沿伸,校友工作始终具有十分重要的意义,搭建校友平台,将同时服务于学校和校友。具体体现如下:
学校层面:让学校能够方便的了解校友信息情况,快速查询校友数据、了解校友工作。校友信息的搜集和整理是校友工作的基础,也是学校最关心的内容之一。平台全面记录的各类校友信息,可供随时的查询与统计,并为学校开展进一步工作提供帮助。
校友总会:系统将成为校友总会得力的助手,提升人员工作效率,提高校友信息管理水平。平台提供多级合作的架构设计,科学化、自动化的管理系统,功能多样的运营工具,都能够让工作人员从繁琐的工作中解放出来。
校友组织:校友会的发展壮大离不开院系和地方分会的力量,系统可以为他们负能。总会通过系统与各级校友组织建立紧密的连接,使得校友会就能更加有效地挖掘校友骨干力量,搭建起全球校友组织网络,最大化连接与开发校友资源,帮助校友组织发展。
校友:使每一个校友都参与到校友信息的建设中。只有让更多的人参与进来,校友信息的搜集和建设才是最高效的。通过校友信息服务平台的运营工具,为校友带来良好的体验,形成专属的校友圈子,让校友能够彼此互相帮助。
本系统主要涉及校友和管理员三种权限。管理员拥有最高权限,管理员主要负责校友信息管理、活动及募捐的管理。管理员操作界面主要设计完成了菜单管理、用户管理、日志管理、专业管理、学校管理、校友信息管理、校友认证、删除申请、校友会管理、活动管理、募捐管理。校友操作界面主要设计完成了信息管理、活动列表、募捐列表、校友资料。在该系统中管理员可以通过日志管理查看校友及其他管理员的操作记录,同时可以进行用户的管理,在学校管理中管理员可以对加入校友会的学校进行管理并且可以为该学校添加对应的专业。在校友认证中管理员可以查看申请的校友信息,并对校友信息进行认证,认证通过后该信息会保留在校友信息管理中。校友申请删除校友信息时需要通过管理在删除申请中同意或驳回。在校友会管理中,管理员可以校友会以及活动与募捐。
本文的总体结构为第1章相关技术综述,该部分用于介绍开发系统所使用的框架,以及开发系统项目所使用到的相关技术等;第2章系统分析,该部分将对校友管理平台的需求进行具体的详细分析,策划其软件目标、研究其可行性以及软件的需求分析工作;第3章系统设计,从总体上确定系统的设计方案、组成系统的模块以及模块之间的关系。同时要进行数据库设计、以及确定每个软件元素应该如何被详细实现,包括软件过程设计;第4章系统实现,阐述校友管理平台的具体实现过程,按照顺序演示核心功能的核心代码,并对其进行解释说明;第5章系统测试,该部分将介绍完成项目功能实现后如何开展测试工作的测试计划、测试用例,性能测试以及压力测试等。
1 相关技术
本系统采用Java作为开发语言,网络结构模型使用了B/S结构,使用SSM框架搭建项目,数据库使用MySQL数据库,前端框架使用了Layui框架,安全框架使用了Apache Shiro。
1.1MySQL
MySQL是一个关系型数据库管理系统,MySQL具有体积小、速度快、总体拥有成本低等优点,尤其是开发源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库,得利于MySQL数据库降低了网站的运营成本以及使用和维护数据库的成本。
与其他的大型数据库(Oracle、DB2等)相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
1.2SSM框架
SSM框架包含SpringBoot、Spring和MyBatis三个框架,这三个框架在具体开发系统应用时侧重点各不相同,SpringBoot主要负责捕获请求与响应请求,Spring主要负责依赖注入、AOP等,MyBatis负责处理数据库中的数据。
1.2.1 SpringBoot
SpringBoot框架中有两个非常重要的策略:开箱即用和约定优于配置。开箱即用,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。SpringBoot框架的模块组成如图1.1所示为SpringBoot框架的模块组成图。
图1.1 SpringBoot框架的模块组成图
1.2.2 Spring
Spring在2003年开始大范围使用。因为其为轻量级框架,而且开源,受到了很多人的追捧。Spring框架具有控制反转(IOC)及面向切面编程(AOP)这两大特点,而且可以自行整合其他种类的框架。Spring会反转得到对象的创建权,可以解决程序耦合性高的问题。面向切面编程可以为横向抽取,使用者可以不修改源代码然后增强程序。此框架还可以管理其他项目开发中的配置问题,例如管理JDBC连接池,进行项目事务的管理。Spring的配置需要在XML文件中进行,其他配置使用注解的方式,可以大大简化项目开发步骤。它用于控制反转和AOP。其在精简企业开发,减少组件之间的耦合,并实现软件层之间的解耦上起到决定性的作用。容器提供的许多服务都可以使用。如图1.2所示为Spring框架的模块组成。
图1.2 Spring框架的模块组成图
1.2.3 MyBatis
MyBatis支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用户配置和原始映射,将接口和Java的实体类映射成数据库中的记录。MyBatis最强大的特性之一就是它的动态语句功能,MyBatis通过在任何映射SQL语句中使用强大的动态SQL来动态的操作数据。
1.3B/S架构
B/S架构,是在Web之后十分受欢迎的网络架构模式,浏览器是现在客户端经常使用的软件,这样的使用方法将很多的客户端全部都统一在了一起,将想要做的系统中的核心功能点全部都集中在一起进行处理,从而简化了开发时的维护和运行,因此只需一个浏览器即可。
使用此结构,减少成本,选择更多。如今许多使用者操作系统选择的都是Windows,上网使用的都是浏览器,然而这些都是在日常生活中,当想要在服务器上进行操作的时候,就可以使用Linux服务器,然后在上面进行操作,这样进行操作可以提高整个系统的可靠性和快捷性。如图1.3所示为三层体系结构。
图1.3 三层体系结构
1.4 本章小结
以上介绍的框架均为校友管理平台所使用的技术,因为SpringBoot具有开箱即用的优点,因此使用SpringBoot作为系统的Web框架,在数据库的选择上最后选择了MySQL数据库,MySQL数据库具有可移植性高,安装简单小巧。项目网络结构模式最后使用了目前主流的B/S架构。通过以上技术使得校友管理平台拥有更好的延展性、高效性、灵活性、可维护性,并且拥有高容错性、低成本、便于开发和维护的优点。
2 系统分析
系统需求分析是该项目至关重要的一个环节,因为它具体且详细的介绍了项目的整体功能,同时其也是详细设计的基础和必要条件。需求分析的目的是规划软件目标、研究其可行性。本章的内容以前面章节介绍的技术作为基础,分析了校友管理平台在业务流程上的逻辑,并得出用户的需求,根据用户需求规划出系统的设计思路。再通过业务流程制定详细的用例图设计。这对于接下来的系统设计、项目开发和项目测试阶段会有所帮助,同时也会总结和归纳出用户的功能模块,确定系统的组成模块。
2.1 用例分析
从用例模型分析模型的过程就是用例分析,即需求与设计之间需要桥梁进行承接,因此通过用例分析可以清楚的了解到用户的需求以及对应的系统架构,明确用户需求后才能有明确的目标,才能合理的规划出校友管理平台的开发步骤,然后把校友管理平台的需求运用到后续分析和设计中,从而完成一个系统而全面的工程化过程。
图2.1校友管理平台总用例图
图2.1所示为校友管理平台总用例图,本系统中的参与者、用例(Use Case),边界以及他们之间的关系构成。该用例图用于描述系统的所有功能,同时一目了然的呈现了校友管理平台各用户之间的关系以及各用户模块所包含的功能。
图2.2 管理员用例图
图2.2所示为管理员用例图,展现的是管理员与其各个功能之间的关系,管理员可以使用的功能包括图中所示的全部用例信息,同时管理员拥有系统最高权限,可以对系统中的所有数据进行管理。
图2.3 校友用例图
图2.3所示为校友用例图,展现的是校友与各个功能之间的关系,校友可以使用的功能包括图中所示的全部用例信息。
2.2 功能需求
根据用户的需求分析出系统所包含的所有功能点,接着理清业务逻辑后确定功能的具体实现,并对功能进行模块划分,经过划分,校友管理平台共分为两大用户分别是管理员与校友。如表2.2.1所示为校友管理平台主要功能清单。
表2.2.1 校友管理平台主要功能清单
功能编号 功能名称 备注
01 用户登录 所有用户功能
02 用户退出 所有用户功能
03 添加菜单信息 管理员用户功能
04 查看菜单信息 管理员用户功能
05 删除菜单信息 管理员用户功能
06 批量删除菜单信息 管理员用户功能
07 修改菜单信息 管理员用户功能
08 添加用户信息 管理员用户功能
09 查看用户信息 管理员用户功能
10 删除用户信息 管理员用户功能
11 批量删除用户信息 管理员用户功能
12 修改用户信息 管理员用户功能
13 查看日志记录 管理员用户功能
14 删除日志记录 管理员用户功能
15 批量删除日志 管理员用户功能
16 查看专业信息 管理员用户功能
17 添加专业信息 管理员用户功能
18 修改专业信息 管理员用户功能
19 删除专业信息 管理员用户功能
20 批量删除专业信息 管理员用户功能
21 查看学校信息 管理员用户功能
22 添加学校信息 管理员用户功能
23 删除学校信息 管理员用户功能
24 批量删除学校信息 管理员用户功能
25 修改学校信息 管理员用户功能
26 查看学校专业信息 管理员用户功能
27 添加学校专业信息 管理员用户功能
28 删除学校专业信息 管理员用户功能
29 批量删除学校专业信息 管理员用户功能
30 查看校友信息 管理员用户功能
31 查看校友详细信息 管理员用户功能
32 查看校友认证信息 管理员用户功能
33 校友认证 管理员用户功能
34 查看校友删除申请 管理员用户功能
35 申请通过 管理员用户功能
36 驳回申请 管理员用户功能
37 查看校友会信息 管理员用户功能
38 添加校友会信息 管理员用户功能
39 修改校友会信息 管理员用户功能
表2.1.1续页
功能编号 功能名称 备注
40 删除校友会信息 管理员用户功能
41 批量删除校友会信息 管理员用户功能
42 查看活动信息 管理员用户功能
43 创建活动信息 管理员用户功能
44 删除活动信息 管理员用户功能
45 编辑活动信息 管理员用户功能
46 查看活动详情 管理员用户功能
47 删除活动参与人员 管理员用户功能
48 查看募捐信息 管理员用户功能
49 发起募捐 管理员用户功能
50 编辑募捐信息 管理员用户功能
51 删除募捐信息 管理员用户功能
52 查看募捐详情 管理员用户功能
53 删除募捐记录 管理员用户功能
54 查看校友信息 校友用户功能
55 编辑校友信息 校友用户功能
56 申请删除 校友用户功能
57 查看详情校友信息 校友用户功能
58 查看活动列表 校友用户功能
59 参与活动 校友用户功能
60 查看募捐列表 校友用户功能
2.3 非功能需求
软件除了要求功能达到用户的预期外,还需要对软件界面的呈现上以及外观上有所提升。因此该系统的前端页面在模板的选择上花费了大量人力进行甄选,选择到合适的模板后还需要对模板中的内容进行调整以便更加符合自己的业务需求,只有这样才能使用户在使用该软件的时候体验的优秀视觉和操作效果,以至于用户不会出现审美疲劳以及使用时感到劳累等。
2.4 本章小结
本章介绍了校友管理平台在软件计划期间建立的软件可行性分析,分析各种可能出现的情况,其中还包括功能分析、系统功能关系视图分析和系统特性分析。经过这一阶段的工作,对整个系统的运作有了一个具体的思路和方法,使整个项目变得清晰,为接下来的工作打下了基础,可用于开展该项目的处理方案、开发并运行程序进行自查找错误的工作。
3 系统设计
系统设计可分为概要设计和详细设计两个阶段。系统的概要设计主要是从总体上确定系统的设计方案、组成系统的模块以及模块之间的关系,同时进行数据库设计、实现计划和测试计划。详细设计的主要目的是确定每个软件元素应该如何被详细实现,包括软件过程设计等等。
3.1 系统概要设计
对于系统架构的概要设计就是将一个整体的大模块分割成其所属的子模块,在将一个一个的子模块拼凑起来就是一个完整的系统功能设计。项目开发者对系统的需求有了完整、准确、具体的理解和描述。在整个设计过程中,为了确定每个小目标可能的具体场景,我们必须首先了解每个小目标的一些相关需求分析信息。然后,根据系统的要求,进行初步的功能设计,逐步完善系统,最后得出具体的可行的系统框架。
3.1.1 系统功能结构
对于系统架构的整体设计而言,就是将用户的需求规划成一个个功能,并将这些功能组成系统的过程,在将一个个简单的功能组合连接使其变成完整的系统功能的过程中,开发者一定要对需求分析的信息进行详细的了解,尽可能的掌握每一个功能,即使再小的功能,再掌握了方案后就针对系统需求进行初步的功能设计,再对其进行逐步完善改进,最后得出具体的可行的系统框架。
校友管理平台的模块划分分别为管理员模块、校友模块。管理员模块中包含系统管理模块、学校管理模块、校友管理模块、校友会管理模块,校友模块中包含校友管理模块、学校活动模块、个人资料模块,这些模块共同组成了该系统。
如图3.1所示为系统结构图,其中在系统功能中分为管理员以及校友,管理员负责的模块中可以进行菜单的管理、用户管理、日志管理、专业管理、学校管理、校友信息管理、校友认证、删除申请、校友会管理、活动管理、募捐管理。校友负责的模块中可以进行信息管理、活动列表、募捐列表、校友资料的管理。
图3.1系统结构图
总体而言,校友模块和管理员模块通过业务功能可以互相访问,形成了一个更大的完整的系统,从而实现了用户的需求。管理员可以通过对数据库中的数据进行管理进而实现了整个系统的维护,从而提高了系统的安全性和稳定性。这样的功能设计完成了需求分析中对整个功能的需求,同时也达到了需求分析中对系统的可重用性、可扩展性、安全性等非功能需求。
3.1.2 软件体系结构
在软件体系结构中该系统采用了Layui+SSM框架进行系统架构的搭建。Layui负责搭建一个与用户交流的界面平台。在使用SSM搭建后端框架的过程中对功能的实现进行了分层,分层后的后端结构为Controller层、Service层、Dao层。Controller层主要负责接收和响应用户请求,Service层负责对业务的处理,Dao层负责对数据库的增删改查操作。如图3.2所示为系统架构图。
图3.2系统架构图
3.2 系统详细设计
详细设计是系统架构设计的精华,详细设计的关键在于对系统需求的规格和架构设计。在详细设计中会对系统用例中使用的类和对象进行进一步的精化,确定每一个类的属性和方法。其次,校友管理平台的详细设计主要包括一些重点的数据库设计和一些重点功能的详细设计。
3.2.1 数据库设计
数据库设计在特定的数据库管理系统上依据使用者的需求来规划数据库构成和创建数据库的过程。数据库管理与项目开发是紧密相连的,只有设计出好数据库才能顺利并且快捷的对项目开发以及规划项目。
完善的数据库设计能够使系统设计条例清晰,层次分明,分配好数据表存储的内容并且设计好主外键之间的联系,就可以在设计具体的项目时节省更多的时间和精力。并根据需求分析得到了一个E-R模型,此模型有18个关键抽象概念,如图3.3所示为系统总E-R图。
图3.3系统总E-R图
设计数据库时需要考虑全面,例如在建表之前要充分考虑表的结构,表与表之间的关系,以及表中的索引等。当需求发生变动时数据库的表结构也能做出快速的调整以适应新需求。
校友管理平台的用户表是该平台最为重要的一张表,该表中保存着管理员以及校友注册的用户数据,管理员及用户通过该表中记录的账号及密码才能登陆校友管理平台从而进行其它功能的操作。同时该表中与其它表存在着主外键关系,该表中的数据也不能随便删除。如表3.4所示为system_user表。
表3.4 system_user表
列名 数据类型 长度 主键 说明
id int 11 是 编号
username varchar 32 否 用户名
gender int 2 否 性别
role varchar 32 否 角色
phone varchar 11 否 手机号码
email varchar 64 否 邮箱
nickname varchar 32 否 昵称
password varchar 255 否 密码
校友管理平台的校友表中记录着校友的认证信息,该认证信息会被管理员所管理,当校友通过管理员的认证后该信息被永久保留,否则删除该信息,同时该校友信息与校友详细信息所绑定,该表同时也存在着主外键关系,表中的数据不能随便删除,删除数据时需要通过管理员的删除申请才可以删除。如表3.5所示为alumnus_alu表。
表3.5 alumnus_alu表
列名 数据类型 长度 主键 说明
id int 11 是 编号
alu_name varchar 32 否 校友名
profession varchar 32 否 专业名
enrol date 0 否 入学时间
school_name varchar 32 否 学校名
student_pic varchar 255 否 学生证照片
is_approve int 4 否 是否认证
user_id int 11 否 用户Id
校友联络数据表记录着每一位校友近期的详细数据,该信息由校友进行填写,该信息与校友表中的数据一一对应,管理员可以通过查看校友联络数据中的信息确定当前校友的近期就业与生活情况。如表3.6所示为alumnus_liaison表。
表3.6 alumnus_liaison表
列名 数据类型 长度 主键 说明
id int 11 是 编号
phone_num varchar 32 否 电话号码
education_experience varchar 1000 否 教育经历
working_condition varchar 1000 否 工作情况
business_condition varchar 1000 否 业务情况
hobby varchar 500 否 爱好
photo varchar 255 否 照片
email varchar 255 否 邮箱
alumnus_id int 11 否 校友Id
日志表中记录着每一位管理员及校友的所有操作信息,当管理员或校友对某条数据进行操作时,该操作会被记录到日志表中,以便其他管理员查看操作记录。如表3.7 所示为system_log表。
表3.7 system_log表
列名 数据类型 长度 主键 说明
id int 11 是 编号
content varchar 255 否 操作内容
operation_datetime Datetime 0 否 操作时间
type varchar 32 否 操作类型
user_id int 11 否 操作人Id
菜单表中记录着当前系统中所有的菜单选项,管理员可以通过添加菜单来实现某个功能的添加,但前提是该功能必须已经开发完成。菜单表中记录着功能的请求地址,以及子菜单的父菜单Id与菜单对应的权限信息等。如表3.8所示为system_menu表。
表3.8 system_menu表
列名 数据类型 长度 主键 说明
id int 11 是 编号
text varchar 255 否 菜单名
url varchar 255 否 请求地址
parent_id int 11 否 父菜单Id
permission_id int 11 否 权限Id
3.2.2 系统功能设计
本章详细设计了系统的核心功能。在此过程中,需要绘制出核心功能操作的时序图,并且描述每个核心功能的实现方法。以下展示了该系统的核心功能。
学校专业信息录入功能,管理员通过登录认证身份信息,进入管理员操作界面,选择学校管理模块中的学校管理,点击添加学校信息,添加完毕后在新添加的学校列表后有操作选项,选择专业会跳转到新的界面,在该界面点击添加专业即可为学校添加对应的专业信息。如图3.9所示为学校专业信息录入功能时序图。
图3.9学校专业信息录入功能时序图
根据图3.9所示的时序图能够看到学校专业信息录入功能的详细业务流程,管理员用户首先访问school/sch/list请求并转发到school_list.html页面,管理点击添加学校发送school/sch/add请求并转发到school_add.html页面,在添加完学校信息后重新请求school/sch/list,此时点击操作列表的专业按钮跳转到school/schPro/list请求转发的schPro_list页面,在该页面点击添加专业跳转到school/schPro/add对应的schPro_add页面,点击保存执行school/schPro/save请求保存专业信息后跳转的school/schPro/list请求转发的页面。设计过程描述如表3.10所示为学校专业信息录入功能描述。
表3.10 学校专业信息录入功能描述
编号 类名 功能描述
1 school_list.html 点击添加学校,保存学校信息
2 SchoolController 在该类中执行save方法保存学校信息
3 schProService 调用Mapper接口对数据库中的数据进行操作
4 SchProController 在该类中执行save方法保存学校对应的专业信息
活动管理功能,管理员通过登录认证身份信息,进入管理员操作界面,选择校友会管理模块中的活动管理功能,管理员通过点击创建活动,创建一条活动列表,在该列表后有查看操作,该操作查看当前活动的参与人员信息。如图3.11所示活动管理功能时序图。
图3.11活动管理功能时序图
根据图3.11所示的时序图能够看到活动管理功能的详细业务流程,管理员通过访问alumni/active/list请求转发到active_list页面,在该页面管理员点击创建活动按钮可以创建一条活动,活动创建完毕后管理员可以通过查看操作(alumni/active/search)查看活动参与人员。设计过程描述如表3.12所示为活动管理功能描述。
表3.12活动管理功能描述
编号 类名 功能描述
1 active_list.html 在该页面管理员可以点击创建活动按钮创建活动
2 ActiveController 该类的用于执行活动保存方法save与查看操作search
3 actAluService 调用Mapper接口对数据库中的数据进行操作
4 ActAluController 该类的作用是对当前活动的参与进行管理
3.3 本章小结
本章介绍了校友管理平台的系统设计,主要分为概要设计和详细设计两部分。概要设计介绍了系统的功能结构和软件架构,并根据功能结构图和软件架构图进行了分析。详细设计则分别介绍数据库设计,系统功能设计,通过E-R图、以及时序图进行了分析,接下来将根据设计的情况完成本项目的系统实现。
4 系统实现
系统的实现基于代码的编写以及系统的开发环境。系统的开发环境和硬件环境会影响着项目能否顺利运行。除了环境之外,系统的结构设计,模块设计,代码设计以及代码开发规范也对系统的实现起着至关重要的作用。
4.1 开发环境
本系统使用了Windows 10 企业版 64-bit操作系统,该操作系统为目前主流操作系统,界面简约好看,操作不复杂,操作环境好。本系统开发环境为CPU即Intel® Core™ i5-6300HQ CPU @ 2.30GHz,内存为16GB,硬盘即238G SSD,浏览器即Google Chrome;校友管理平台的开发工具为IntelliJ IDEA 2019.1.3,然后使用Tomcat 9.0来进行程序的运行,使用MySQL数据库存储系统的数据。
4.2 开发规范
代码的规范性和一致性使团队协作开发速度得到了提升同时也提高开发者对代码理解的清晰程度和改修代码的难易程度。代码的程序结构以及命名风格是开发系统时的重要环节,决定一个项目是否成立的关键一步。本节将对本系统的命名规范做一个大致的介绍。类的命名方法采纳单词首字母大写的方式命名。整个管理系统项目命名使用Java通用命名规范,包名分别为top.daiding.king.*(controller、mapper、model、service和common)。
4.3 数据库实现
MySQL作为该系统的开发数据库,数据表名为king,根据业务需求分别创建了18张数据表,分别为活动校友表(active_alumnus)、校友会活动表(alumni_active)、校友会表(alumni_cre)、校友会募捐表(alumni_ribution)、校友表(alumnus_alu)、校友删除表(alumnus_del)、校友联络表(alumnus_liaison)、权限表(permission)、募捐校友表(ribution_alumnus)、角色表(role)、角色权限表(role_permission)、学校专业表(sch_pro)、专业表(school_profession)、学校表(school_sch)、日志表(system_log)、菜单表(system_menu)、用户表(system_user)、用户角色表(user_role)。如图4.1所示为数据表。
图4.1数据表
4.4 核心功能实现
4.4.1 学校专业信息录入功能
如图4.2所示为学校信息录入页面,管理员通过登录认证身份信息,进入管理员操作界面,选择学校管理模块中的学校管理,点击添加学校信息,添加完毕后在新添加的学校列表后有操作选项,选择专业会跳转到新的界面,在该界面点击添加专业即可为学校添加对应的专业信息。
图4.2 学校信息录入页面
@Controller
@RequestMapping(“school/schPro”)
public class SchProController {
@Autowired
private SchProService schProService;
@Autowired
private ProfessionService professionService;
@GetMapping("list/{id}")
public String list(@PathVariable Integer id, Model model) {
List<SchPro> schPros = schProService.searchProfessionsBySchoolId(id);
model.addAttribute("schPros", schPros);
// 添加学校Id
model.addAttribute("schoolId", id);
return "school/schPro_list";
}
@GetMapping("add/{id}")
public String add(@PathVariable Integer id, Model model) {
// 将学校Id存于request域
model.addAttribute("schoolId", id);
// 获取专业信息
List<Profession> professions = professionService.searchAll();
model.addAttribute("professions", professions);
return "school/schPro_add";
}
@PostMapping("save")
@ResponseBody
public String save(@RequestBody JSONObject jsonObject) {
JSONObject field = jsonObject.getJSONObject("field");
SchPro schPro = field.toJavaObject(SchPro.class);
return schProService.addSchPro(schPro);
}
@DeleteMapping("delete/{id}")
@ResponseBody
public String delete(@PathVariable("id") int id) {
return schProService.removeSchProById(id);
}
}
4.4.2 活动管理功能
活动管理功能,管理员通过登录认证身份信息,进入管理员操作界面,选择校友会管理模块中的活动管理功能,管理员通过点击创建活动,创建一条活动列表,并查看当前活动的参与人员信息。如图4.3所示为活动管理页面,核心代码如下文所示。
图4.3活动管理页面
@Controller
@RequestMapping(“alumni/active”)
public class ActiveController {
@Autowired
private ActiveService activeService;
@Autowired
private SchoolService schoolService;
@GetMapping("list")
public String list(Model model) {
List<Active> actives = activeService.searchAll();
model.addAttribute("actives", actives);
return "alumni/active_list";
}
@GetMapping("add")
public String add(Model model) {
List<School> schools = schoolService.searchAll();
model.addAttribute("schools", schools);
return "alumni/active_add";
}
@PostMapping("save")
@ResponseBody
public String save(@RequestBody JSONObject jsonObject) {
JSONObject field = jsonObject.getJSONObject("field");
Active active = field.toJavaObject(Active.class);
User user = (User) SecurityUtils.getSubject().getPrincipal();
active.setUserId(user.getId());
return activeService.addActive(active);
}
@DeleteMapping("delete/{id}")
@ResponseBody
public String delete(@PathVariable("id") int id) {
return activeService.removeActiveById(id);
}
@GetMapping("edit/{id}")
public String edit(@PathVariable int id, Model model) {
Active active = activeService.searchActiveById(id);
model.addAttribute("active", active);
return "alumni/active_edit";
}
@PutMapping("update")
@ResponseBody
public String update(@RequestBody JSONObject jsonObject) {
JSONObject field = jsonObject.getJSONObject("field");
Active active = field.toJavaObject(Active.class);
return activeService.modifyActiveById(active);
}
}
4.5 本章小结
本章主要详细介绍了项目开发阶段的开发环境及编码规范,并列举展示了部分核心功能如学校专业录入功能与活动管理功能的实现界面及核心代码。对于整个项目的实现到这里已经圆满的完成,接下来将开始项目测试的工作。
5 系统测试
测验不局限于系统开发的一个阶段。在系统开发中开始运转。据调查,测试速度越快,测试执行的频率越高,软件开发的成本越低,极端的刺激也把实验提升到了极限。所有的软件开发活动都必须从最初开始制定测试代码。
性能评估是系统的重要功能。然而,必须要记住软件测试是站在用户的位置为出发点。一般来说,在保证系统品质和可用性的前提下,为了满足用户的使用要求,有必要提升系统的使用感[18]。本章对学生宿舍管理系统的功能模块进行了测试,来确保系统运行平稳,让使用者感到满意。
5.1 测试计划
在校友管理平台研发完成后,需要对系统进行全面的测试以验收系统的质量。在开发系统的过程中,语句语法错误、标点符号的错误都有可能出现,当系统正常运行时会给出提示,并请求解决,这些问题在编程的过程中,是容易被发现的。但是有的错误隐蔽性强,因此需要对整个系统进行详细的系统测试。
首先对系统的系统信息管理进行测试,其次对人员信息管理进行测试,再对宿舍信息管理进行测试,最后对消息提醒功能进行测试。为了测试学生宿舍管理系统的完善性,在系统测试过程中,对系统的功能进行了详细的测试,以真实反映系统的功能。经过重复测试和调试,对隐藏的问题进行了测试,最终提高了系统的稳定性。
5.2 测试用例
在系统开发的过程中需要面对很多问题,在软件的生命周期中都极有可能存在错误而未被发现。测试目的就在于:发现错误而执行一个程序的过程。此系统可以在本地服务器上进行运行和调试,在调试的过程中发现错误,以便于改正存在得错误,如图5.1所示为测试阶段信息流程图。
图5.1 测试阶段信息流程图
系统进行信息的添加时,需要输入信息,系统才提示添加成功。当不想要这条信息时按删除按钮即清除该条信息。点击修改按钮可以修改当条信息。选择查找的信息条件即可查找到要查找的信息。如表5.2所示为系统增删改查测试。
表5.2 系统增删改查测试
测试序号 用例说明 预期结果 测试结果
1 添加信息时,填入必需填写的信息 提示添加成功 通过
2 添加信息时,未填入必需填写的信息 提示填写的信息内容不能为空 通过
3 添加信息时,填入的信息名称重复 提示同名信息已存在 通过
4 修改信息时,填入想要修改的信息内容 提示保存成功 通过
5 删除信息时,点击删除按钮,出现删除提示后点击确定 提示删除成功 通过
6 查找信息时,输入想要查询的条件 显示出符合条件所有信息 通过
经过测试系统的各个功能,验证了校友管理平台能够为用户提供信息管理服务,从表中所示的功能测试用例及结果可以分析出,关于校友管理平台的各项功能实现以及输入验证,其实际结果都能够达到预期结果,说明这些功能能够满足需求分析所设计的功能需求。其次还要在不同环境和大量的数据量下测试一下系统在具体功能实现时所表现的状态如何。
性能测试概括为三个方面即应用在客户端的性能测试、应用在网络上的性能测试和应用在服务器端的性能测试。性能测试主要是针对系统在一定规模数据量以及在特殊环境中指标。性能测试主要是考验系统在极限环境下进行运行时的效率情况,主要针对当遇到数据量更大的时候系统的运行效率。表5.3为系统性能测试用例表。
表5.3 系统性能测试用例表
序号 考察项 响应时间 结果
1 打开系统页面时间 <0.5s 通过
2 跳转页面响应时间 <1s 通过
3 对模板的增删查改响应时间 <0.5s 通过
4 CPU使用率 <70% 通过
5 内存使用率 <90% 通过
5.3 压力测试
本文选择使用Apache JMeter作为压力测试工具,在配置好Apache JMeter后,使用Apache JMeter的添加图形组件,此组件可以清晰地显示出系统吞吐量、平均值、中值等数据,其他监听器组件可自由添加。完成基本配置后开始测试。等待测试线程数量达到1000,即所有线程均已开始测试工作,并且曲线稳定后才观测结果,如图5.4所示为系统压力侧视图。
图5.4 系统压力测试图
随着时间的增加,偏离量会逐渐偏高,吞吐量快开始为上升,当到达一定界限后也会下降,但是依照图来看总体吞吐量还是非常可观的。经过多次测试,得到结论为大概50000线程时系统吞吐量会急剧下降。但是这个结果还受限于网络、用户操作等因素,只是理论值,不过此符合需求。
5.4 测试结果
“校友管理平台”压力测试图形结果反映出的是系统响应时间情况。本次测试总共向服务器发出的请求数目是3000,服务器最后一个响应的时间为68ms,系统平均响应时间为64886ms,偏离值即代表离散程度测量值的大小(数据分布)为69086ms,服务器每分钟处理的请求数目为825.177,响应时间中值为32982ms,系统有一半的服务器响应时间低于该值而另一半高于该值。严格测试系统功能的各个模块来确认系统可以正常运行,在特定环境下也需要考虑周全对其进行测试,每个功能板块测试的效果都满足了用户的需求,该系统完全通过测试并运行平稳,用户可以放心使用。
5.5 本章小结
本章主要叙述了本系统在检查调试过程中需要完成的工作,主要是介绍该管理系统的测试的范围,方法以及需要提前做的准备工作、还有在测试过程中的测试输入、条件、以及测试最后所达到的效果,经过系统检查调试使系统更适合用户的需求,更加稳定可靠地运行,并能适应市场竞争,应用前景广泛。
结 论
校友管理平台的开发是高效校友工作普遍面临人员不足、资源有限等困境提出的解决方案,其方便快捷的执行对于管理员管理校友信息具有重要的意义。因此,本文针对各高校对校友管理平台的迫切需求,完成设计了校友管理平台。本文所讲述的校友管理平台尚未应用在现实中,不过已初步满足毕设的要求。
本系统在设计与实现的过程中充分考虑了本系统在未来所发展的方向以及所有能用到的功能,扩展了其系统的事物处理,考虑了该系统的全面性和可发展性。在未来开发中代码可以二次利用,可应用技术效果好。实际应用效果说明了宿舍管理系统功能设计的有效性。
本系统的设计与实现有效的提高了社会应用的控制成本管理,增强了可持续性发展的特点,对于其他的应用功能具有广泛的借鉴意义和参考价值。由于社会扩展需求增多,本文系统还存在一定的不足。该系统的后续发展探索研究,可以考虑会重点考虑以下两点:第一点该系统目前主要是便利校友管理,随着使用量增加,数据量不断积累,后续可对数据进行深入分析,对一些可能性事务做预测分析。第二点随着该系统使用量的普及,后续可对信息资源共享中存在的网络风险进行评估分析。
致 谢
在本次论文设计过程中,感谢学校提供一次这样的学习机会,更加感谢从始至终一直悉心指导并给予我帮助的指导教师李佳佳老师和倪春雨老师。不论毕业设计还是论文书写阶段研究工作都是在李佳佳老师和倪春雨老师的细心指导下完成的,每一阶段都会与老师进行有关毕设项目的探讨与论文细节的修改,李佳佳老师和倪春雨老师总是能够给予我很多建设性的意见,使我受益匪浅。感谢所有授业解惑的老师,如果没有这四年的知识沉淀,相信毕设与论文完成的不会这么顺利,也正是因为这四年,得到了学识与内涵的双重提升,相信这是在校园以外所学不到的。所以感谢学校,感谢学院,更加感谢这一路以来对我有过如此帮助的老师们。感恩之余,希望各位老师可以对我完成的毕业设计及论文多加评判与指正,这样可以使我及时认识到不足并加以改正。最后,依然要对李佳佳老师和倪春雨老师的辛勤栽培和指导表示由衷的感谢,同时对学院全体领导及教研室的所有老师表示衷心的感谢,感谢老师们在大学期间的关心及教育。在此向全部老师致以真挚的谢意!最后也要感谢实习单位不管在精神上还是学习指导中给予我的鼓励和鞭策。
参考文献
[1] 孙颖蕾.关于加强高校校友资源管理工作改革的若干想法[J].榆林学院学报,2019,29(04):33-37
[2] 张伟聪.试论高校校友管理体系的研究与完善[J].文教资料,2017(27):126-127
[3] 高争.浅谈高校校友资源管理[J].新西部(理论版),2017(19):123-124
[4] 柯婷,叶展航,颜倩.中外高校校友资源管理的比较研究[J].佳木斯教育学院学报,2014(06):160-161
[5] 程军,李京肽,王舒涵.美国大学校友文化建设研究及其启示[J].西南交通大学学报(社会科学版),2017,18(05):8-19
[6] 季于峻男.微信公众平台在校友会工作的实践与探索[J].新媒体研究,2017,3(03):40-41
[7] 付晶.新加坡南洋理工大学校友会运行模式概述[J].科技资讯,2016,14(25):154-155+157
[8] 刘金兰.重视和加强国际校友会管理[J].中国高等教育,2015(08):42-44
[9] 辛洁.国外高校校友工作的启示[J].唯实(现代管理),2014(12):42-43
[10] 何志武,刘上海.新时期我国大学校友会工作创新探析[J].重庆科技学院学报(社会科学版),2013(04):167-168
[11] 陆志华.高校校友会工作现状及其理念探讨[J].扬州大学学报(高教研究版),2012,16(03):66-69
[12] 谢晓青.高校校友资源开发与运用研究[J].高教探索,2010(02):27-30
[13] Don"t Limit Alumni Association Membership To Alums[J]. The Membership Management Report,2018,14(4):8-8
[14] 桂 満希郎. J. Marvin Brown, ed. AUA Language Center Thai Course, Book 2. Bangkok : The American University Alumni Association Language Center, 1966. 131p.[J]. 京都大学東南アジア地域研究研究所,2019,5(2):427-427
[15] Kan Ji. Design and Implementation of Teaching Quality Evaluation System Based on SpringBoot[C]. 西南石油大学(Southwest Petroleum University).第七届计算与信息科学国际学术会议论文集.西南石油大学(Southwest Petroleum University):西南石油大学计算机科学学院,2019:444-452
[16] 宋扬,宋凯,吕智杰.基于Web平台的智能信息管理系统设计[D].微计算机信息, 2008
[17] Margaretha Ohyver,Jurike V. Moniaga,Iwa Sungkawa,Bonifasius Edwin Subagyo,Ian Argus Chandra. The Comparison Firebase Realtime Database and MySQL Database Performance using Wilcoxon Signed-Rank Test[J]. Procedia Computer Science,2019,157:396-405
[18] Yao Zhang Li,Sheng Gao,Jing Pan,Bi Feng Guo,Pei Feng Xie. Research and Application of Template Engine for Web Back-end Based on MyBatis-Plus[J]. Procedia Computer Science,2020,166:206-212
[19] 邓萍,吴昊.高职院校校友会管理模式的创新研究[J].常州信息职业技术学院学报,2020,19(02):93-96
[20] 钟乔睿.汲取中外校友工作经验分步开展中国政府奖学金校友工作[J].教育教学论坛,2020(13):130-133
[21] 蒋庆荣.新时代高校校友工作的若干问题探析[J].北京教育(高教),2020(02):32-36
[22] 吕曌馨.试论高校校友管理体系的研究与完善[J].国际公关,2020(01):200
[23] 齐建蒙.加拿大BC省大学校友会建设对云南高校校友工作的启示[J].教育现代化,2019,6(A5):188-189
[24] 深圳技师学院校友会[J].中国培训,2020(04):2
[25] 杨斌. 做好高校新攸关群体工作[N]. 学习时报,2020-01-03(006)