基于Java的企业QQ系统的设计与实现

编程入门 行业动态 更新时间:2024-10-10 07:26:43

基于Java的企业QQ<a href=https://www.elefans.com/category/jswz/34/1770742.html style=系统的设计与实现"/>

基于Java的企业QQ系统的设计与实现

摘  要

近些年,互联网行业的发展带给了很多人在生活上的便利,互联网能够改变人们的生活和工作的模式。很多企业都在将普通的工作模式结合了互联网,利用互联网的优势提高管理员的工作效率。目前不少企业QQ系统存在着许多问题,因此可以设计一个企业QQ系统提高管理员的工作效率。

本系统所使用的开源框架为SSM,存储数据的数据库采用了MySQL,开发工具选择使用idea。在实现企业QQ系统之前,需要通过调研企业QQ系统基本功能有哪些,设计出系统对应的总体架构,之后程序开发者可以编码实现企业QQ系统,最后需要对企业QQ系统利用测试用例进行测试,测试完成之后根据 选择优化系统。

关键词:SSM;MySQL;idea

 

Abstract

In recent years, the development of the Internet industry has brought many people convenience in life. The Internet can change the mode of people's life and work. Many enterprises are combining the common working mode with the Internet and using the advantages of the Internet to improve the work efficiency of administrators. At present, many enterprise QQ systems have many problems, so we can design an enterprise QQ system to improve the work efficiency of administrators.

The open source framework used in this system is SSM, the database storing data adopts mysql, and the development tool chooses idea. Before implementing the enterprise QQ system, we need to investigate the basic functions of the enterprise QQ system and design the corresponding overall architecture of the system. Then the program developer can code to realize the enterprise QQ system. Finally, we need to test the enterprise QQ system with test cases. After the test, we need to optimize the system according to the selection.

key word:SSM;MySQL;idea

 

目  录

摘  要................................................................................................ I

Abstract............................................................................................. II

第一章 绪论..................................................................................... 1

1.1 研究背景......................................................................................................... 1

1.2 研究意义......................................................................................................... 1

1.3 主要内容......................................................................................................... 1

第二章 相关技术分析.................................................................... 3

2.1 Tomcat服务器概述......................................................................................... 3

2.2 MySQL数据库............................................................................................... 3

2.3 Vue框架.......................................................................................................... 3

2.4 MVC模式....................................................................................................... 4

2.5 Boostrap简介.................................................................................................. 4

2.6 SpringBoot技术.............................................................................................. 4

第三章 需求分析............................................................................ 5

3.1 可行性法分析................................................................................................. 5

3.1.1 技术可行性.......................................................................................... 5

3.1.2 经济可行性.......................................................................................... 5

3.1.3 社会可行性.......................................................................................... 5

3.2 系统目标......................................................................................................... 5

3.3 功能性需求分析............................................................................................. 6

3.3.1 用例概述.............................................................................................. 6

3.3.2 用例描述.............................................................................................. 7

3.4 性能需求......................................................................................................... 8

第四章 系统的设计...................................................................... 10

4.1 系统功能结构............................................................................................... 10

4.2 功能模块....................................................................................................... 13

4.3 数据库设计................................................................................................... 13

4.3.1 概念模型结构设计............................................................................ 13

4.3.2 物理模型结构设计............................................................................ 17

第五章 系统的实现...................................................................... 19

5.1 好友移动....................................................................................................... 19

5.2 聊天............................................................................................................... 19

5.3 好友展示....................................................................................................... 20

5.4 邀请好友加入群组....................................................................................... 21

第六章 系统测试.......................................................................... 22

6.1 测试概述....................................................................................................... 22

6.2 基本功能测试............................................................................................... 22

6.3 测试结果....................................................................................................... 24

第七章 总结与展望...................................................................... 25

7.1 总结............................................................................................................... 25

7.2 展望............................................................................................................... 25

参考文献......................................................................................... 26

致  谢............................................................................................. 27

附  录............................................................................................. 28

第一章 绪论

1.1 研究背景

互联网发展到现在已经有七十多年的时间了,随着信息技术的不断发展,互联网会涉及到人们生活的各个方面当中,互联网时代来临的时候可以推动各个行业的发展,给社会的经济领域添加了不少活力。

在当今的时候,很多行业都离不开互联网,尤其是在互联网时代下产生的企业QQ系统更是受到人们的欢迎。企业QQ系统的发展已有不少的时间,具有不同的种类。企业QQ系统跟xx业务息息相关,不少用户想要定制特定的系统功能,因此市场具有广阔的前景。企业QQ系统如此火爆有以下原因[1]。

(1)相比于较传统的工作模式,企业QQ系统能够提高管理员管理的效率和降低出错的效率。企业QQ系统功能经过编译运行能够大大降低管理员管理出错的概率,管理员管理系统的时候如果发生了错误的情况系统会给出相应的提示。

(2)通过企业QQ系统管理能够降低成本,可以节省大量的时间成本和人力资源,管理员能够提高管控能力。

1.2 研究意义

随着现代科学技术的发展,互联网产品已经涉及到生活的很多方面,很多公司也在加快投入力度。然而在和管理员沟通过程当中发现员工交流的工作模式还处于人工管理的模式,这不能够充分地利用互联网技术提高工作效率。建立规范化的员工交流流程能够管理员工交流,而目前管理员工交流只能依赖于管理员手工进行管理,很多行业趋于智能化,科技发展能够为我们的生活提供服务,现在较多的场景都需要使用信息化管理。在我们的平时工作的时候,可以切实感受到科学技术带来的解决方式。在我们平时生活的时候也有较多的场景需要技术的辅助[2]。

1.3 主要内容

(1)本次针对企业QQ系统提出实现方案,按照软件开发的一般流程进行前期的调研和分析确定软件是否能够正常实现、技术是否可行和系统功能模块的设计开发,最后确定了使用的技术和实现系统的方案。

(2)框架属于一种程序开发者实现的功能集合,可以帮助软件开发者快速构建软件层次架构和复用功能的一款工具,本平台框架使用了开源框架,具有比较好的开发优势,可以帮助软件开发者快速构建基本的程序开发框架出来,通过调用开源框架开源帮助程序开发者减少开发难度,提升了企业QQ系统的安全和稳定性,能够帮助程序开发者完成系统功能模块的开发和数据的处理。

(3)管理员操作和管理企业QQ系统的数据不仅需要框架规范约束还需要满足一定基础的标准,使用MySQL数据库中的约束关系能够根据系统中实体的关系从而生成数据库表,这样在实现系统的时候可以设置系统实体之间的关系[3]。

第二章 相关技术分析

2.1 Tomcat服务器概述

Tomcat服务器属于Web服务器中的一种且开源,安全性能较为突出,很多程序开发者不仅可以使用Tomcat服务器,还可以通过设置参数调节服务器,Linux属于较稳定的系统。另外,由于Tomcat服务器具有执行效率高和运行速度快的特点,属于比较优秀的服务器软件。

Web服务器的种类包括Tomcat和Apache,,在处理静态页面的时候,Tomcat相比于Tomcat的速度要快得多。Tomcat容器的主要作用为能够解析Servlet和JSP。如果采用的是Java开发的话,则使用的服务器需要为Tomcat。

2.2 MySQL数据库

市场上流行着非常多的数据库,包括了MySQL和Oracle数据库等,每种关系型数据库具有各自的优点。ORACLE数据库相比于MySQL具有很大的不同,在安装上要较为复杂和占用空间相对要多得多,并且Oracle数据库想要使用的话需要程序开发人员付费。

如果用户访问的数量达到百万级别的话,企业QQ系统使用数据库Oracle比MySQL则要好得很多。Microsoft公司推出的数据库产品包括了SQLSERVER。SQLSERVER属于比较全面的数据库,能够为系统的数据提供良好的存储功能。SQLServer使用起来较为顺畅和配置的时候方便很多。

2.3 Vue框架

Vue.js是现今受前端程序员喜爱的框架之一,最早出现的时间为2014年,不仅提取了Angular框架的优秀功能,还构建了轻量级的框架,框架所关注的部分为视图层,通过组件和方法能够实现视图与系统中模型之间的响应。程Vue.js的核心是能够使用模板语法将数据添加到DOM系统中,在创造出实体之前需要声明根式属性,视图需要和模型同步更新,如果将视图和模型进行绑定的话,Vue框架能够监控模型的变化从而实现视图的同步更新。Vue.js具有的特性有组件和响应式系统等。

组件系统属于一种抽象的概念,程序开发者可以利用组件构建出系统,不少前端界面都可以进行实现。组件还可以对静态页面的代码进行扩展,对可以重复使用的代码进行重用。如果需要的话Vue可以转变为自定义的元素。Vue框架通过object对象为属性添加get和set方法。如果数据发生更新的话,Vue在其内部可以实现追踪依赖。

2.4 MVC模式

MVC模式属于较为常见的软件设计模式,通过这种架构模式通常可以把系统分为三个部分,即模型、视图和控制器。在这个过程当中,模型能够用来封装企业QQ系统所需要的相关信息,需要和数据库表形成相映射,能够利用数据库SQL语句操作数据库记录,不需要关注前端界面的处理。视图层能够表示客户端的用户操作界面,能够把数据在前端界面中,视图层需要管理相对应的数据模型。控制器能够处理用户发起的数据请求处理,能够起到不同的组织作用。

2.5 Boostrap简介

前端框架Boostrap拥有网页设计组件,利用这些组件可以使得网站的模块组建得较为协调。Boostrap在Html、CSS和JavaScript的基础上其代码相对来说要较为精简,在编写网页代码的时候要较为方便。使用Boostrap框架不仅能够构建前端页面而且消耗系统资源也较少。Boostrap拥有许多优点:

(1)兼容设备和浏览器。可以兼容FireFox等比较受欢迎的浏览器。

(2)响应布局。前端框架Boostrap内置了流式栅栏系统,可以根据用户的电脑分辨率从而自动地调整页面,使得不会因为分布律的问题导致布局错乱。

(3)CSS模块化。Boostrap框架内部拥有CSS组件能够直接调用美化页面。

(4)内置了JavaScript此插件。JavaScript插件能够用于网页设计的特效。

(5)丰富的组件。Boostrap框架提供了诸多丰富的组件,这其中包括了导航条和标签库等。

2.6 SpringBoot技术

如果信息系统开发方法采用的是模型-视图-控制器,那么如果开发方法能够从多个方法证实多个层次获得模型是十分重要的,设计者必须区分出系统抽象和具体的差别。模型-视图-控制器设计的目的不是指导设计者怎么设计模型,目的是通过模型-视图-控制器能够引领软件开发者对模型的合理配置。模型-视图-控制器的目的是帮助软件开发者尽可能降低软件编写的复杂度,设计理念为通过使用已存在的组件来简化软件开发者开发软件。在业务模型中,数据模型同样也非常的重要,数据模型能够保存系统实体的相关信息。在控制层当中能够处理用户在前端页面中传递过来的用户请求。

第三章 需求分析

在软件开发的时候需求分析是非常关键的一个步骤,在涉及实现软件之前需要先进行需求分析,根据实际需求深入的了解和分析从软件使用者的角度进行分析。在需求分析中能够了解到用户的真实需求,目的是设计出用户满意的企业QQ系统,如果用户不满意,那么会重新耗费大量的时间和精力,因此需求分析是核心。

3.1 可行性法分析

3.1.1 技术可行性

该系统使用了Java语言进行开发,Java语言在使用上较为简单,可以使用开源框架进行开发,跨平台性较强,可以在不同操作系统上运行。Java语言相比于其它编程语言要相对更轻量和执行的效率相对更高。网上有比较多的关于Java语言相关的开源框架,用户比较容易上手,且框架非常轻量[5]。

企业QQ系统的前端框架使用的是Vue.js,后端框架使用的是开源框架xx。前端框架Vue.js和后端框架进行结合的话可以传递数据。开源框架中的视图层能够通过视图解析器对前端页面进行操作,并且能够把用户浏览的数据存储到数据库当中,这能够加强企业QQ系统的安全性。

3.1.2 经济可行性

企业QQ系统需求分析到最后设计实现的时候花费的时间不多,经济花费相对不是很多,企业QQ系统需要运行的时候只需要一台普通的电脑即可,只要安装有必要的软件环境即可以运行系统。管理员在操作企业QQ系统的时候相对简单,因此有更多的时间可以花费在修改系统的功能上。

3.1.3 社会可行性

本次开发的企业QQ系统不违反法律和道德层次,操作界面相对简单,用户能够较方便地使用企业QQ系统。随着计算机的快速发展,计算机技术已经在很多行业有不少的应用,因此更能为这次设计的企业QQ系统奠定了基础[6]。

3.2 系统目标

企业QQ系统能够处理面向xx的大多数事务,它包括了服务管理等工作,该系统采用了MVC设计模式和使用了数据库MySQL从而开发出企业QQ系统,目的是方便用户和提高管理员的效率。

企业QQ系统的实现需要结合实际,确定用户的需求,通过需求分析从而制定系统的目标,通过分析确定出企业QQ系统的体系结构,所以在实现企业QQ系统的时候要考虑全面:

(1)每个子系统之间要相对独立和稳定,这样有利于子系统的开发和维护。

(2)充分考虑管理的业务分工,尽可能地使功能子系统在一个职能的管理范围之内,以便于子系统的管理。

(3)用户在企业QQ系统上操作不能够过于复杂,不同的用户有着不同的操作权限,需要在用户表中加以区分。

系统性能方面要求用户界面需要设置得较为友好,用户可以简洁易学地使用系统。系统在开发的时候要注意开发的成本,提高效率。

3.3 功能性需求分析

从软件开发角度来说,软件开发最重要的步骤包括需求分析和产品设计。如果需求分析和产品设计做得好的话,那么会节省很多开发时间,可以更快地把软件研究出来。对企业QQ系统的业务需求有了一定的了解之后,还需要对系统中包含的每个角色对应的功能进行设置,从而满足用户使用系统功能和管理员管理系统信息的需求,用例描述是用例图的补充说明。

3.3.1 用例概述

图3.1 用户用例图

用例的简要描述如表3-1所示。

表3-1 用例描述

用例标识(UC)

用例名称

摘要描述

1

分组管理

用户登录系统后可以管理分组信息

2

好友管理

用户登录系统之后可以管理好友信息

3

群组管理

用户登录系统之后可以管理群组信息

4

聊天

用户登录系统后可以和好友进行聊天

3.3.2 用例描述

1.分组信息管理

分组信息管理用例描述如表3-2所示。

表3-2 分组信息管理用例描述

用例标识

3.1

用例名称

编辑分组的相关信息

参与者

用户

前置条件

用户需要输入正确的用户名和密码登录系统

后置条件

修改分组信息

用例概述

用户修改分组信息

基本事件流

1.用户输入正确的用户名和密码登录到系统当中

2.用户在分组信息管理界面点击添加按钮提交新添加的分组信息

3.分组信息添加成功

备选事件流

4a 输入的信息需要合法才能够成功添加

备注

2.好友信息管理

好友信息管理用例描述如表3-3所示。

表3-3 好友信息管理用例描述

用例标识

3.2

用例名称

编辑好友的相关信息

参与者

用户

前置条件

用户需要输入正确的用户名和密码登录系统

后置条件

修改好友信息

用例概述

用户修改好友信息

基本事件流

1.用户输入正确的用户名和密码登录到系统当中

2.用户在好友信息管理界面点击修改按钮提交修改的好友信息

3.好友信息修改成功

备选事件流

4a 输入的信息需要合法才能够成功修改

备注

3.群组信息管理

群组信息管理用例描述如表3-4所示。

表3-4 群组信息管理用例描述

用例标识

3.3

用例名称

删除群组的相关信息

参与者

用户

前置条件

用户需要输入正确的用户名和密码登录系统

后置条件

删除群组信息

用例概述

用户删除群组信息

基本事件流

1.用户输入正确的用户名和密码登录到系统当中

2.用户在群组信息管理界面点击删除按钮提交删除的群组信息

3.群组信息删除成功

备选事件流

4a 删除的群组信息需要跟其它表没有关联才能够删除

备注

4.聊天

聊天用例描述如表3-5所示。

表3-5 聊天用例描述

用例标识

3.4

用例名称

聊天

参与者

用户

前置条件

用户需要输入正确的用户名和密码登录系统

后置条件

聊天

用例概述

用户聊天

基本事件流

1.用户输入正确的用户名和密码登录到系统当中

2.用户在聊天界面与好友聊天

备选事件流

备注

3.4 性能需求

在软件开发的过程中,虽然需要注意业务功能需求,但是性能需求也一样重要。如果系统性能不好的话,那么很有可能会导致用户的体验变差和用户管理效率的减少。如果需要增强系统的性能,那么需要注意数据安全性、查询效率和系统响应速度。

(1)数据的安全性

企业QQ系统每天的运行会产生很多数据,数据已经涉及到系统运行的每个部分中,因此数据的安全性变得非常地重要。系统需要对用户的密码作加密处理,用户的密码存在数据库记录的时候需要使用加密字符串进行处理,从而保证系统数据的安全性,用户在前台输入密码的时候需要采用特殊字符代替。

(2)系统的查询效率和响应速度

企业QQ系统中很多模块都有查询的功能,有些查询功能还涉及到多表的查询。企业QQ系统在运行了一段时间之后,业务量变得越来越多,系统包含的数据会越来越多,因此需要注意对数据库SQL语句进行优化从而加快数据查询的速度[7]。

第四章 系统的设计

对整个业务进行完整的需求分析之后,接下来需要从系统的设计介绍系统的各个功能。每个角色需要各司其职,对于每个系统的功能模块需要不同的代码实现逻辑。有些复杂需求需要经过修改和完善才能够最终确定。

4.1 系统功能结构

(1)登录

用户登录完成之后才可以使用系统的功能。用户在前端界面中可以输入用户名和密码登录。

登录至首页面

账号密码是否正确

信息是否为空

结束

将错误结果返回前台

用户登录

开始

图4.1 登录流程图

(2)好友管理

用户输入用户名和密码登录之后可以在好友管理界面中可以对好友的信息进行管理。

无权限提示

确定

结束

修改操作

是否有权限

删除操作

是否存在

输入查询信息

是否有效

用户登录

开始

登录失败

信息录入

是否有效

数据无效提示

提示好友不存在

图4.2 好友管理流程图

(3)群组管理

管理员输入用户名和密码登录之后可以在群组管理界面中可以对群组的信息进行管理。

无权限提示

确定

结束

修改操作

是否有权限

删除操作

是否存在

输入查询信息

是否有效

管理员登录

开始

登录失败

信息录入

是否有效

数据无效提示

提示群组不存在

图4.3 群组管理流程图

4.2 功能模块

基于Java的企业QQ系统

分组管理

群组管理

好友管理

聊天

图4.4 功能模块图

4.3 数据库设计

软件开发阶段有一个重要环节是数据库设计,如果软件开发者设计得好数据库的话会对开发工作有好处,在设计数据库的时候要考虑到以后表是否会有扩展性。随着企业的发展,企业的业务需求会逐渐地发生转变,从而导致系统功能需要修改。如果系统功能发生改变的话,系统对应的数据库表也需要发生转变,因此数据库在设计的时候需要考虑到后续修改的需要,系统在设计的时候需要注意灵活性。本企业QQ系统数据量不少很大,因此在使用数据库的使用选择的是MySQL,不用Oracle这种大型的数据库。数据库引擎选择使用InnoDB,InnoDB属于事物型引擎。如果系统有多张表需要同时存取的话,那么数据库引擎可以选择使用InnoDB。

4.3.1 概念模型结构设计

本企业QQ系统的功能设计模块是根据用户的需求所设置,系统概念模型的设置其实质是搭建目标结构,这成为构建数据库的重要一步。

(1)将数据模型加以呈现和反馈,在处理数据的时候,能够满足用户的基本需求,同时呈现出事物一定的关联性[8]。

(2)便于掌握。用户在使用企业QQ系统的时候需要容易操作系统,只有这样,数据库设计才较为正确。

(3)一旦企业QQ系统的需求发生改变的时候,企业QQ系统能够快速调整和改变模型结构。

E-R图能够用来描述概念模型,在已经获取相关数据模型的情况下,可以根据用户的需求,设计出与之相匹配的实体。

图4.6 账户局部E-R图

图4.7 用户局部E-R图

图4.8 好友信息局部E-R图

图4.9 分组群聊局部E-R图

图4.10 用户群聊局部E-R图

用户

好友

分组

N

1

1

N

N

N

包含

包含

群聊

图4.11 数据库E-R图

4.3.2 物理模型结构设计

(1)账户信息表

表4.1 账户信息表

列名

数据类型

长度

主外键

accountID

bigint

20

userCode

varchar

200

userPwd

varchar

200

varchar

200

userWechat

varchar

200

userWeibo

varchar

200

isFrozen

tinyint

4

isValid

tinyint

4

(2)用户信息表

表4.2 用户信息表

列名

数据类型

长度

主外键

userID

bigint

20

accountID

bigint

20

userName

varchar

200

avatar

varchar

200

sign

varchar

500

degree

varchar

500

sexName

varchar

20

mailbox

varchar

100

address

varchar

5000

description

varchar

5000

secretErrorCount

tinyint

4

createTime

varchar

200

createUserID

bigint

20

isValid

tinyint

4

(3)好友信息表

表4.3 好友信息表

列名

数据类型

长度

主外键

nexusID

bigint

20

userID

bigint

20

friendID

bigint

20

groupID

bigint

20

createTime

varchar

100

(4)分组群聊信息表

表4.4 分组群聊信息表

列名

数据类型

长度

主外键

groupID

bigint

20

groupType

tinyint

4

userID

bigint

20

groupName

varchar

50

avatar

varchar

200

createTime

varchar

100

isValid

tinyint

4

(5)用户群聊信息表

表4.5 用户群聊信息表

列名

数据类型

长度

主外键

linkID

bigint

20

userID

bigint

20

groupID

bigint

20

isOwner

tinyint

4

inviteUserID

bigint

20

assessorUserID

bigint

20

createTime

varchar

100

第五章 系统的实现

5.1 好友移动

通过群组展示界面可以展示群组的信息,群组信息的展示需要依赖于前端页面的form标签,通过form标签能够把群组的信息以表单的形式展示出来。当用户浏览完群组信息的时候可以点击群组图片进入跳转到群组的详细信息界面当中,实现跳转的时候客户端需要把群组编号传递给服务端,数据库服务器可以通过群组编号取出群组的详细信息并展示。

图5.1 好友移动界面

5.2 聊天

用户进入到聊天的时候可以和用户互相发送信息,当用户和好友聊天的时候跳转到聊天界面,这依赖于好友编号的传递。客户端可以传递好友编号到数据库服务器中处理相应的请求,数据库SQL语句可以通过好友编号获得好友的详细信息并保存在系统实体当中,前端界面可以利用正则表达式对系统实体的数据进行解析。

图5.2 聊天界面

5.3 好友展示

通过好友展示界面可以展示好友的信息,好友信息的展示需要依赖于前端页面的form标签,通过form标签能够把好友的信息以表单的形式展示出来。当用户浏览完好友信息的时候可以点击好友图片进入跳转到好友的详细信息界面当中,实现跳转的时候客户端需要把好友编号传递给服务端,数据库服务器可以通过好友编号取出好友的详细信息并展示。

图5.3 好友展示界面

5.4 邀请好友加入群组

用户进入到邀请好友加入群组的时候可以邀请好友加入群组,当用户邀请好友的时候,这依赖于好友编号的传递。客户端可以传递好友编号到数据库服务器中处理相应的请求,数据库SQL语句可以通过好友编号获得好友信息并保存在系统实体当中,前端界面可以利用正则表达式对系统实体的数据进行解析。

图5.4 邀请好友加入群组界面

第六章 系统测试

当系统开发完成的时候测试是一个非常重要的环节,当企业QQ系统开发完一个功能之后,需要对功能模块做单元测试,尽早地发现该功能模块的错误。把整个系统开发完成之后,还需要对系统全面进行测试,包括业务流程是否正确和系统信息是否能够增删改查等。

6.1 测试概述

测试工作需要多个人一起完成,这样才能够多方面对系统进行测试,在试运行阶段的时候如果发现企业QQ系统出现问题的时候需要及时反馈,如果发现了问题开发人员需要及时修改系统,以保证减少系统的bug。在系统平稳运行了之后系统才可以上线。

(1)页面的错别字和样式,系统中的页面包含了很多文字,错别字是不能要有的。另外,系统信息在显示的时候需要注意文字间距和行间距。前端页面字符显示乱码,在编写前端页面的时候需要注意字符的一致性[9]。

(2)浏览器的兼容性,本企业QQ系统使用的单元测试主要通过firefox浏览器完成的,浏览器之间的内核是不一样的,解析语法的方式也有所差别。因此在测试的时候需要注意浏览器的兼容问题,通过CSS样式来调整页面的布局。

(3)增删改查功能,一般系统的查询功能采用的是模糊查询的方式,测试查询速度的快慢是否会影响到用户的体验,如果速度过慢的话需要优化查询SQL代码从而加快查询速度。查询出来的记录能否符合输入的关键字信息。在添加的时候,需要检测输入框是否有信息是必填的还是需要限制[10]。

6.2 基本功能测试

(1)登录

表6.1 登录测试用例表

用例编号

目的

手段

预期输出结果

1

用户是否能够正常登录

用户输入正确的用户名和密码

用户成功登录

2

用户输入正确的用户名和错误的密码

用户不能够登录

3

用户输入错误的用户名和密码

用户不能够登录

(2)好友管理

表6.2 好友管理用例表

用例编号

目的

手段

预期输出结果

1

用户是否能够正常管理好友的信息

用户需要添加好友的信息,需要进入添加好友的界面当中

用户进入到添加好友界面的时候,可以输入需要添加的好友信息,然后点击添加按钮进行提交

2

用户需要修改好友的信息,需要进入修改好友的界面当中

用户进入到修改好友界面的时候,可以输入需要修改的好友信息,输入的信息需要注意其合法性

3

用户需要删除好友的信息,需要进入删除好友的界面当中

用户进入到删除好友界面的时候,可以通过删除按钮删除选择的好友信息,需要注意是否限制了好友记录,如果有外键的关系,则不能够成功删除

3

用户需要添搜索户的信息,需要进入搜索好友的界面当中

用户进入到搜索好友界面的时候,可以在搜索框中输入好友名称搜索好友的信息

(3)群组管理

表6.3 群组管理用例表

用例编号

目的

手段

预期输出结果

1

用户是否能够正常管理群组的信息

用户需要添加群组的信息,需要进入添加群组的界面当中

用户进入到添加群组界面的时候,可以输入需要添加的群组信息,然后点击添加按钮进行提交

2

用户需要修改群组的信息,需要进入修改群组的界面当中

用户进入到修改群组界面的时候,可以输入需要修改的群组信息,输入的信息需要注意其合法性

3

用户需要删除群组的信息,需要进入删除群组的界面当中

用户进入到删除群组界面的时候,可以通过删除按钮删除选择的群组信息,需要注意是否限制了群组记录,如果有外键的关系,则不能够成功删除

3

用户需要添搜索户的信息,需要进入搜索群组的界面当中

用户进入到搜索群组界面的时候,可以在搜索框中输入群组名称搜索群组的信息

6.3 测试结果

本章从基本的测试方法和基本功能测试两方面去介绍测试,基本测试方法不仅需要注意前台页面出现的错误,还需要考虑后端逻辑处理是否正确。系统功能在测试的时候需要注意系统的流程,先按照正常的业务逻辑进行测试,测试完成了之后故意输入错误的数据测试,测试系统是否能够正常对数据进行校验。在测试的时候需要尽可能考虑到特殊的情况,从而能够测出更好的结果。

第七章 总结与展望

7.1 总结

(1)理论研究部分:

分析企业QQ系统的研究意义和背景。

(2)系统设计部分:

在实现企业QQ系统之前,分析不同角色需要具备什么功能,通过业务需求设计功能模块。

(3)系统开发部分:

当完成了系统设计部分的时候,之后就可以进入到系统开发部分。首先需要根据企业QQ系统的业务需求设计数据库,数据库在设计的时候要遵循三大范式。利用SSM开源框架基本实现了企业QQ系统的基本架构。最后对实现各个功能模块。

(4)系统测试部分:

系统开发完成之后工作还远远没有结束在使用之前需要对系统进行测试。软件测试非常重要,测试环节在软件开发中占有非常重要的地位。首先,对系统功能模块进行测试,测试是否有兼容性和错别字的问题。之后可以通过表单进行操作系统的数据,还可以通过使用特殊的字符等错误方式检测系统的数据是否严谨。

7.2 展望

虽然本企业QQ系统功能相对来说较为完善,企业QQ系统的功能在后续的时候可以进一步完善。主要内容有:

数据可视化是大数据应用技术之一,利用图形对数据可视化进行管理,通过大数据可视化展示系统的信息。对数据进行可视化分析还能够显示出很有价值的东西。本企业QQ系统数据的展示通常是利用表格的形式进行呈现,这通常不能帮助用户深入地了解信息。

综上所述,本文虽然实现了一个功能相对来说比较完整的企业QQ系统,数据展示的时候还存在着不小的缺陷,智能化技术还需进一步地加强,后续可以从智能化和可视化的角度对企业QQ系统进行改造。

参考文献

  1. 王彩霞,王睿.MySQL与SQL Server数据完整性约束的比较教学[J].电脑知识与技术,2021,17(21):26-28.
  2. 赵莹,胡畅达,王国宇.三种关系型空间数据库比较[J].科技创新与应用,2021,11(19):62-64.
  3. 苏文瑾.“MySQL数据库”课程教学难点分析——以数据库设计为例[J].无线互联科技,2021,18(12):119-120.
  4. 林慧.MySQL存储过程在软件测试中的应用[J].电脑编程技巧与维护,2021(06):28-30.
  5. 王廷永,黄松.测试用例自动生成技术综述[J].电子技术与软件工程,2021(18):51-53.
  6. 妥泽花.基于黑盒测试与白盒测试的比较探究[J].电子世界,2021(11):55-56.
  7. 马萌,赵煜.一种基于软件测试用例库的设计方法[J].计算机与网络,2021,47(15):48-50.
  8. 刘彦楠.JUnit参数化测试的应用研究[J].信息与电脑(理论版),2021,33(14):30-32.
  9. 贾秀秀. 智慧社区应用系统自动化测试设计与实现[D].南京邮电大学,2020.
  10. Zhaozhou Chen, Hean Liu. Network Mall System Inb/S Mode[J]. International Journal of Intelligent Information and Management Science,2019,8(3)

致  谢

时间过得很快,大学的生活很快就要结束了。和大一的时候相比,编程技术水平和综合能力有了很大的提升,在此非常感谢指导老师、计算机系学院的老师和同学们给我的鼓励和帮助。以前我只懂得书面上的知识,而如今我可以独立地完成企业QQ系统,论文最终能够完成得益于帮助过我的人。

首先,感谢指导老师提供了优秀的平台让我学习,这让我的项目实战能力在不知不觉中提高了很多。在撰写论文的时候我遇到了很多的问题,得益于指导老师的指导和帮助,他们提出的很多意见让我受益。即使他们需要忙于科研,但还是会安排时间帮助我,这激励着我一直向前。

感谢同学们在项目中给予我帮助,多年来的学习生活中我们互相监督和努力,完成了许多项目,让我感受到了团队合作的好处,感谢同学们的帮助和陪伴。感谢我的家人提供给了我良好的生活环境,并不断地支持和鼓励我,给我的学习和生活上带来了很大的帮助。

附  录

@Controller

@RequestMapping("/main/")

public class MainController {

     

      private static Logger log = Logger.getLogger(MainController.class);

      @Resource

      private AuthAccountService authAccountService;

      @Resource

      private AuthUserService authUserService;

     

      private static String MODEL_KEY = "main/";

      private static String MODEL_KEY_ACCOUNT = "auth/account/";

   

      /**

       * 移动端聊天

       */

    @RequestMapping("mobile")

    public String mobile(HttpServletRequest request, Model model) throws Exception{

         System.out.println("123344534");

        return "mobile/index";

    }

   

      /**

       * 图标页面

       */

    @RequestMapping("test")

    public String test(HttpServletRequest request, Model model) throws Exception{

        return "test";

    }

     

     

      /**

       * 登录帐号

       */

    @RequestMapping("login")

    public String login(HttpServletRequest request, Model model) throws Exception{

             request.setCharacterEncoding("UTF-8");

             Integer errorCode = 1;

         log.info("登陆页");

             HttpSession session = request.getSession();

             if(session.getAttribute(UseSession.SESSIONNAME_ERRORCODE) != null){

                    // 获取错误码,拦截器返回

                errorCode = UseTool.toInt(session.getAttribute(UseSession.SESSIONNAME_ERRORCODE));

                // 销毁session

                session.invalidate();

             }else if(session.getAttribute(UseSession.SESSIONNAME_LOGINUSERID) != null){

                // 销毁session

                session.invalidate();

         }

             model.addAttribute("errorCode", errorCode);

        return MODEL_KEY_ACCOUNT + "login";

    }

   

      /**

       * 注册帐号

       */

    @RequestMapping("reg")

    public String reg(HttpServletRequest request, Model model) throws Exception{

             model.addAttribute("smsType", SmsConst.SMS_TYPE_YHZCYZM);

             model.addAttribute("userId", UseConst.DEFAULT_USERID);

        return MODEL_KEY_ACCOUNT + "reg";

    }

     

      /**

       * 忘记密码

       */

    @RequestMapping("forget")

    public String forget(HttpServletRequest request, Model model) throws Exception{

          // 获取参数数据

             model.addAttribute("smsType", SmsConst.SMS_TYPE_SFTZYZM);

             model.addAttribute("userId", UseConst.DEFAULT_USERID);

        return MODEL_KEY_ACCOUNT + "forget";

    }

   

      /**

       * WEB配置404错误

       */

    @RequestMapping("404")

    public String error404(HttpServletRequest request, Model model) throws Exception{

        return MODEL_KEY + "error-404";

    }

     

      /**

       * WEB配置500错误

       */

    @RequestMapping("500")

    public String error500(HttpServletRequest request, Model model) throws Exception{

        return MODEL_KEY + "error-500";

    }

   

      /**

       * 图标页面

       */

    @RequestMapping("icon")

    public String icon(HttpServletRequest request, Model model) throws Exception{

        return MODEL_KEY + "icon";

    }

   

      /**

       * 扩展图标页面

       */

    @RequestMapping("iconfont")

    public String iconfont(HttpServletRequest request, Model model) throws Exception{

        return MODEL_KEY + "iconfont";

    }

   

    /**

     * 生成验证码

     */

    @RequestMapping("captcha") 

    public void captcha(HttpServletRequest request,HttpServletResponse response) throws Exception{

         // 设置响应的类型格式为图片格式

             response.setContentType("image/jpeg");

             // 禁止图像缓存。

             response.setHeader("Pragma", "no-cache");

             response.setHeader("Cache-Control", "no-cache");

             response.setDateHeader("Expires", 0);

             CaptchaUtil instance = new CaptchaUtil();

             // 把验证码保存到session中

            request.getSession().setAttribute(UseSession.SESSIONNAME_CAPTCHA, instance.getCode());

             Cookie cookie = new Cookie("scaptcha", instance.getCode());

             cookie.setMaxAge(1800);

             response.addCookie(cookie);

             instance.write(response.getOutputStream());

    }

   

      /**

       * PDF浏览

       */

    @RequestMapping("/pdf")

    public String pdf(HttpServletRequest request, Model model) throws Exception{

         String fileName = request.getParameter("fileName");

         model.addAttribute("fileName", fileName);

        return "main/pdf";

    }

   

    /**

     * 文件下载功能

     */

    @RequestMapping("/download")

    public void download(HttpServletRequest request,HttpServletResponse response) throws Exception{

         String fileName = request.getParameter("fileName");

         String filePath = request.getParameter("filePath");

         log.info("文件下载功能:filePath["+filePath+"],fileName["+fileName+"]");

         // 获取根目录

         String rootPath = request.getSession().getServletContext().getRealPath("/");

        if(filePath.indexOf(UsePath.PROJECT_NAME) >= 0){

            filePath = filePath.replaceAll(UsePath.PROJECT_NAME, "/");

        }

        if(UseTool.isEmpty(fileName)){

            fileName = filePath.substring(filePath.lastIndexOf("/")+1, filePath.length());

            if(UseTool.isEmpty(fileName)){

               fileName = System.currentTimeMillis() + filePath.substring(filePath.lastIndexOf("."), filePath.length());

            }

        }

        // 获取输入流 

        @SuppressWarnings("resource")

            InputStream bis = new BufferedInputStream(new FileInputStream(new File(rootPath + filePath)));

       

        fileName = fileName.replaceAll(" ", "_");

        fileName = new String(fileName.getBytes(),"ISO-8859-1");

        // 设置编码格式

        response.setCharacterEncoding("UTF-8");

        // 设置文件下载头

        response.addHeader("Content-Disposition", "attachment;filename=" + fileName);   

        // 设置文件ContentType类型,这样设置,会自动判断下载文件类型

        response.setContentType("multipart/form-data");  

        BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); 

        int len = 0; 

        while((len = bis.read()) != -1){ 

            out.write(len); 

            out.flush(); 

        } 

        out.close(); 

    }

   

      /**

       * 密码加密工具

       */

    @RequestMapping("pwdTool")

    public String pwdTool(HttpServletRequest request, Model model) throws Exception{

        return "auth/account/pwdTool";

    }

   

    /**

       * 密码加密 http://localhost/main/pwdTool

       */

    @RequestMapping(value = "pwdEncrypt", method = RequestMethod.POST, produces = "text/html;charset=UTF-8")

    public @ResponseBody String pwdEncrypt(HttpServletRequest request, HttpServletResponse response) {

         String password = request.getParameter("password");

         String userPwd = EncodeMD5Util.MD5Encode((EncodeSHAUtil.SHAEncode(password)));

         return userPwd;

    }

   

}

更多推荐

基于Java的企业QQ系统的设计与实现

本文发布于:2024-02-27 18:47:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765893.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:系统   企业   Java   QQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!