基于SpringBoot的家庭记账管理系统的设计与实现

news2024/11/27 5:34:32

摘  要

随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。

本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个开发过程首先对家庭记账系统进行需求分析,得出家庭记账系统主要功能。接着对家庭记账系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括家庭记账系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对家庭记账系统进行了功能测试,并对测试结果进行了分析总结,得出家庭记账系统存在的不足及需要改进的地方,为以后的家庭记账系统维护提供了方便,同时也为今后开发类似家庭记账系统提供了借鉴和帮助。

家庭记账系统开发使系统能够更加方便快捷,同时也促使家庭记账系统变的更加系统化、有序化。系统界面较友好,易于操作。

关键词家庭记账系统;java语言  Mysql 数据库 SpringBoot框架

第1章 绪论

1.1 引言

随着信息时代的快速发展,互联网的优势和普及,人们生活水平的不断提高,工作时间的繁忙,使得家庭记账系统的开发成为必需。家庭记账系统主要是借助计算机,通过对家庭记账系统管理所需的信息管理,增加用户的选择,同时也方便广大用户信息的及时查询、修改以及对家庭记账系统信息的及时了解。家庭记账系统用户带来了更多的选择, 该系统通过和数据库软件协作来满足用户的需求。

1.2 研究意义

如今,随着移动用户端的普及,微信因为其简单,方便,并且用户体验度好,所以被称为现在聊天沟通的新宠,同时也被应用到更多的企业做宣传推广。截至2017年底,微信用户数突破10亿,包括银行、证券、快递服务、电子商务等越来越多的公司在微信平台上推出相应的服务平台,以适应用户新的行为习惯。微信平台的科研社交网络平台已是势在必行。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决用户管理便捷化的问题,提高效率。给用户提供最全面、最专业的数据管理信息,帮助他们了解最新详细信息,还有就是借助微信端,能够更好的满足用户的需求,为用户节省时间以达到省时又高效的目的。

基于SpringBoot的家庭记账管理系统实际上是依据市面上的理财系统做了适当修改,是理财管理系统的家庭版体现。系统为更好的适合家庭收支管理而开发。通过这个程序,我们可以便捷的记录每年每月每天的日常开销和收入,为家庭的理财提供帮助,有利于收支的良性发展。它存在的意义就是帮助掌握家庭的收支情况,合理规划消费和投资,当然页可以培养家庭成员良好的消费习惯,增强个人财务的敏感度,同时促进家庭成员的和睦相处,减少一些没必要的经济纠纷问题。

1.3 研究内容

B/S的服装系统系统是现代科技发展的产物,它以Web的方式实现了服装销售系统,本系统功能简单、明了,基本符合实际开发需求,所以,在服装销售系统中,需求与需求之间的关系就显得十分重要。相信经发展,服装销售系统将在今后的发展中占有非常大的比重,并且在展示其优势方面仍有很大的发展余地。

借用Internet来实现服装销售系统,如何在满足现代互联网的要求下,实现服装网站的实际需要是非常有实际意义的。网络化服装销售系统是当今服饰市场的一大趋势,是当今服饰市场的一大特点,也是未来服装销售关系体系发展的新趋势。

1.4 研究内容

家庭记账系统从功能、数据流程、可行性、运行环境进行需求分析。对家庭记账系统的数据库、功能进行了详细设计,分析了主要界面设计和相关组件设计,家庭记账系统的具体实现进行了介绍。从数据库中获取数据、向数据库中写入数据,实现系统直接对数据库进行各种数据库查询、插入、删除、更新等操作,在网页中加入动态内容,从而实现家庭记账系统所需要的各种基本功能。

1.5 研究现状

1.5.1 国外研究现状

国外家庭理财规划的发展在发达国家,家庭理财规划几乎早已深入到每一个家庭,早在1999年底,美国、日本、英国和德国的人均金融资产的数量就分别达到了12.7万美元、10.4万美元、7.7万美元和4.4万美元。由此可见,经过长时间的发展与完善,国外家庭理财业务积累了很多成功经验。以美国为例,他们具有丰富齐全的投资工具、完善便利的金融服务、全面到位的市场监管,这样使得理财业发展很完善,理财业务十分发达。

1.5.2 国内研究现状

当今改革开放以来,中国经历了经济高速发展阶段,家庭财富迅速增长,但是却并未能让大多数人幸福指数增加。这种现象的产生有三个原因:第一,贫富差距大;第二,通货膨胀增速也快;第三,未来保障不确定。目前我国家庭理财规划现在呈现出:一,我国居民家庭存在盲目跟风、投机取巧等非理性动机,缺乏正确、理性的理财观念。二,我国居民家庭的风险防范意识淡薄。只重收益忽略风险、盲目进入、慌乱出逃、羊群效应、跟风操作,诸如此类的问题比比皆是,这无不反映出我国投资者缺少风险管理意识、理财观念不正确。三,金融市场行业乱象滋生,很多企业打着理财旗号非法集资,侵害投资者利益。

第2章 系统开发工具及技术

2.1 系统开发工具

2.1.1  IntelliJ IDEA开发工具

IntelliJ IDEA简称IDEA ,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持HTML,CSS,PHP,MySQL,Python等。IDEA所提倡的是智能编码,是减少程序员的工作,IDEA的特色功能有智能的选取、丰富的导航模式、历史记录功能、编码辅助记忆、排版灵活等特色服务,更好的帮助开发者提高开发效率。

2.1.2  Navicat Premium

Navicat Premium 是一套数据库开发工具,可以从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。可以快速轻松地创建、管理和维护数据库。

2.2 系统开发技术

2.2.1  B/S结构

B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的,由于该软件的技术不断成熟,最主要的特点就是与浏览器相互配合为软件开发带来了极大的便利,不仅能够减少开发成本,还能够不断加强系统的软件功能,层层相互独立和展现层是该B/S结构完成相互连接的主要特性。

2.2.2  Java语言

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java server pages),和XML技术。多进步。例如,当我在微软Word中写这篇文章时,我还打开了一个MP3播放器来播放音乐。偶尔,我也会编辑Word,让支出分类信息管理机器执行打印作业,我也喜欢通过IE。对我来说,这些操作是同时执行的,我不需要等待一首歌来完成支出分类信息管理论文编辑。似乎他们都在支出分类信息管理机器上同时为我工作。事实是,对于一个CPU,它只能在某个时间点执行一个程序。CPU在这些程序之间不断地“跳跃”。那么为什么我们看不到任何破坏呢?这是因为,与我们的感情相比,它的速度太快了。因此,尽管我们看到一些同步操作,实际上对于计算机来说,它只能在某个时间点执行一个程序,除非您的计算机是多CPU的。

Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于企业Web应用程序开发和移动应用程序开发。

Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了明显改进。

2.2.3  SpringBoot框架

Spring Boot是Pivotal团队的一个新框架,旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法,无需开发人员定义样板配置。通过这种方式,Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。
Spring Boot特点:
(1)创建一个单独的Spring应用程序;
(2)嵌入式Tomcat,无需部署WAR文件;
(3)简化Maven配置;
(4)自动配置Spring;
(5)提供生产就绪功能,如指标,健康检查和外部配置;
(6)绝对没有代码生成和XML的配置要求;

2.2.5  Vue框架

Vue是一个渐进式的js框架,只注视视图层,结合了HTML+CSS+JS,非常的一用哪个,并且有很好的生态系统。而且vue体积很小,速度很快,优化很到位。Vue 只关注视图层, 采用自底向上增量开发的设计。Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

2.2.6  MySQL

Mysql的语言是非结构化的,用户可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。

Mysql数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。

数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。

第3章 系统分析

3.1 可行性分析

(1) 硬件可行性分析

系统的硬件要求方面不存在特殊的要求,只需要在普通的硬件配置就能够轻松的实现,只是需要确保系统的正常工作即可,以及拥有较高的效率。如果有特别低的硬件,它可以导致系统的低性能以及效率低,从而导致整个网站的运行不顺畅。以目前普遍的个人计算机的配置而言,这是十分容易实现的 。因此,本系统的开发在硬件方面是可行的。

提供完整的技术支持和保护,确保网站的稳定,安全运行,提供24×7和24小时技术支持项目完成提供主要的服务器系统安全及时的通知和更新服务。

(2)软件可行性分析

提供一个共同的机制类似的借口动态模型,设计更集中。此外,代码复用,也可以很好的体现。因此,考虑到系统的实际情况,选择系统作为本系统开发技术。通过上述分析,该系统的设计实现在软件方面是可行的。

因此,我们进行了两个方面的可行性研究,可以看出,该系统的开发是没有问题的。

3.1.1 技术可行性

通过Idea开发工具,利用Java语言、Html、CSS、SSM及数据库等技术完成对开系统前后端的开发。Idea工具使用简单,功能齐全并且可以通过开放的源代码及技术交流群寻求帮助。在大学中都有所学习,并且在网上有许多相关案例可以借鉴。综上所述,该系统的开发在技术上具有可行性。

3.1.2 经济可行性

系统是基于系统语言开发的软件,所以系统在开发人力、财力要求不高,具有经济可行性。

3.1.3 操作可行性

本家庭记账系统采用java语言,利用网络就能够进行访问和操作,且界面简单易操作,用户只要平时有在用智能手机并连接到网络,都能进行访问和操作。

本家庭记账系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。

3.2 功能需求分析

家庭记账系统主要是为了提高用户的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对家庭记账系统的各个模块是通过许多今天的发达家庭记账系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

家庭记账系统所要实现的功能分析,对于现在网络方便,家庭记账系统要实现管理员、用户可以直接在平台上进行查看自己所需数据信息,这样既能节省管理的时间,不用再像传统的方式,如果用户想要进行交流信息,必须双方见面进行沟通交流所需的信息,由于很多用户时间的原因,没有办法进行见面沟通交流,真的很难满足用户的各种需求。所以家庭记账系统的开发不仅仅是能满足用户的需求,还能提高用户的使用率。所以系统管理必须要更快捷、有效、长期地为用户或潜在用户传递信息。建立一个家庭记账系统更好的交流平台,提高系统对用户交流后的信息服务的效率。此系统可以满足大多数用户所提出的问题,用户可以根据自身的需求获取相应的服务,为系统管理提供了快捷的途径。

家庭记账系统用户端要求在浏览器上可以运行,主要实现了管理端;首页、个人中心、用户管理、家庭账户管理、收入分类管理、支出分类信息管理、收入管理、支出管理、系统管理、债务信息管理,用户端;首页、家庭账户管理、收入分类管理、债务信息管理、家庭收入等主要功能模块的操作和管理。

总体分布如图3.1所示:

3.1  总体功能需求图

系统实现给用户展示的界面与该对象是面对面的,包括是否允许用户简单,方便使用,该请求的响应时间,对整体质量的主图像,整体的布局的质量。

3.3 性能需求分析

在对该记账系统开发的过程中,为了使系统性能得到保证,需要考虑的内容主要如下。

(1) 安全性。要确保信息系统的可控性与可靠性,使用户信息最大程度的保密。

(2) 先进性。与现阶段的趋势相结合,开发出与用户需求相符的各种功能。

(3) 可扩展性。在完成整个系统的开发之后,用户可能还会有一些其他需求的提出,因此在具体开发的时候要考虑到应用程序的可扩展性,方便将来系统的升级和更新。

3.4 系统UML分析

UML,全称是统一建模语言。它是用做软件密集型系统的一种可视化建模语言。这是开发人员针对客观事物展开建模的主要标志,同样也作为开发人员对于系统具体功能以及开发当中的实际任务情况需要做哪些了解。然后是针对整个系统展开UML建模分析。

用户用例图具体情况如3-2。

 图3-2 用户用例图

管理员用例图具体情况如3-3。

图3-3 管理员用例图

第4章 系统总体设计

4.1 系统整体功能设计

系统整体功能架构图如图 4-1 所示。

图4-1整体功能架构图

 4.2 系统业务流程图

系统业务流程图如图所示:

图4-2登录流程图

 

图4-3添加信息流程图

图4-4注册信息流程图

 4.3 数据库设计

计算机信息系统当中的重要基础为数据库。只有数据库系统发挥支持作用,才能够实现数据的收集、存储、整理、更新、检索以及处理等相应的操作。现阶段,计算机系统当中的核心还是属于数据库,且数据库质量直接会影响到整个系统运行的速度以及最终所呈现出的质量。

4.3.1 数据库设计原则

在具体进行概念设计的时候,通常是包括的设计方式有渐进扩张、自上而下、混合策略以及自下而上。在针对局部设计的过程中,主要使用的是自顶向下而下,而物理结构的具体设计主要包括两个阶段:首先是对数据库物理结构进行定义,其次,存取关系模型的方式一定要选择正确。

4.3.2 概念设计

根据需求分析和业务流程,通过对系统中所涉及的用户、收入、支出、管理员等现实世界中存在的事务物所具有的各种属性,进行归类、合并和总结,从而建立起抽象的数据概念模型。根据这个模型可以充分反映现实世界的信息结构、信息流动状况、信息之间的制约关系以及对信息进行增删改查的操作等。如图4.4所示。

图4-4数据库E-R图

 4.4 物理设计

(1)管理员表(users)表

用于存储管理员的姓名、账号、密码等基本信息。

表4-1 管理员表(users)表

字段名称

描述

数据类型

值域

id

主键

bigint

0

username

用户名

varchar

100

password

密码

varchar

100

role

角色

varchar

100

addtime

新增时间

timestamp

0

(2)用户表(yonghu)表

用于存储用户的用户名、密码、用户姓名、头像等基本信息。

表4-2 用户表(yonghu)表

字段名称

描述

数据类型

值域

id

主键

bigint

0

addtime

创建时间

timestamp

0

yonghuming

用户名

varchar

200

mima

密码

varchar

200

yonghuxingming

用户姓名

varchar

200

touxiang

头像

varchar

200

xingbie

性别

varchar

200

nianling

年龄

varchar

200

shoujihaoma

手机号码

varchar

200

(3)收入分类表(shourufenlei)表

用于存储收入分类的时间、类型等基本信息。

表4-3 收入分类表(shourufenlei)表

字段名称

描述

数据类型

值域

id

主键

bigint

0

addtime

创建时间

timestamp

0

shourufenlei

收入分类

varchar

200

(4)支出分类表(zhichufenlei)表

用于存储支出分类的时间、类型等基本信息。

表4-4 支出分类表(zhichufenlei)表

字段名称

描述

数据类型

值域

id

主键

bigint

0

addtime

创建时间

timestamp

0

zhichufenlei

支出分类

varchar

200

(5)家庭收入表(jiatingshouru)表

用于存储家庭收入的时间、用户名、用户姓名、账户号等基本信息。

表4-5 家庭收入表(jiatingshouru)表

字段名称

描述

数据类型

值域

id

主键

bigint

0

addtime

创建时间

timestamp

0

yonghuming

用户名

varchar

200

yonghuxingming

用户姓名

varchar

200

zhanghuhao

账户号

varchar

200

shourufenlei

收入分类

varchar

200

jine

金额

varchar

200

beizhu

日期

date

0

(6)家庭支出表(jiatingzhichu)表

用于存储家庭支出的时间、用户名、用户姓名、账户号等基本信息。

表4-6 家庭支出表(jiatingzhichu)表

字段名称

描述

数据类型

值域

id

主键

bigint

0

addtime

创建时间

timestamp

0

yonghuming

用户名

varchar

200

yonghuxingming

用户姓名

varchar

200

zhanghuhao

账户号

varchar

200

zhichufenlei

支出分类

varchar

200

jine

金额

varchar

200

riqi

日期

date

0

(7)家庭账户表(jiatingzhanghu)表

用于存储家庭账户的用户名、用户姓名、账户号、创建时间等基本信息。

表4-7 家庭账户表(jiatingzhanghu)表

字段名称

描述

数据类型

值域

id

主键

bigint

0

addtime

创建时间

timestamp

0

yonghuming

用户名

varchar

200

yonghuxingming

用户姓名

varchar

200

zhanghuhao

账户号

varchar

200

jine

金额

varchar

200

(7)债务信息表(touzilicai)表

用于存储债务信息的用户名、用户姓名、债务类型、创建时间等基本信息。

表4-8 债务信息表(zhaiwuxinxi)表

字段名称

描述

数据类型

值域

id

主键

bigint

0

addtime

创建时间

timestamp

0

yonghuming

用户名

varchar

200

yonghuxingming

用户姓名

varchar

200

touzileixing

债务类型

varchar

200

touzizhanghu

债务账户

varchar

200

mingcheng

债务名称

varchar

200

jine

金额

varchar

200

beizhu

备注

varchar

200

touzishijian

债务时间

date

0

第5章 系统功能详细设计与实现

5.1 用户端模块功能的实现

5.1.1用户登陆、注册功能

用户注册,在用户注册页面可以填写个人账号、姓名、身份证号码、手机号码等信息,进行注册如图5-1所示。

 图5.1 用户注册界面

用户登录,在用户登录页面填写账号、密码进行登录如图5-2所示。

 图5-2用户登录界面图

5.1.2 个人中心

(1)修改密码

用户登录,在主页面左边的菜单栏选择个人中心下的修改密码,在页面输入原密码、新密码、确认密码。如图5-3所示:

 图5-3用户修改密码界面图

(2)个人信息

用户登录,在主页面左边的菜单栏选择个人中心下的个人信息,在页面输入用户名、用户姓名、头像、性别、年龄、手机号码。如图5-4所示:

 图5-4个人信息界面图

5.1.3 家庭账户管理

家庭账户管理包括账户信息新增、删除、修改。在账户信息新增时输入用户名、用户姓名、账户号、金额信息。如图5-5、5-6所示:

 图5-5家庭账户列表界面图

 图5-6家庭账户新增或修改界面图

5.1.4 收入管理

收入管理包括收入新增、修改、删除、导出。在收入信息新增时输入用户名、用户姓名、账户号、收入分类、金额、日期、备注。如图5-7、5-8所示:

 图5-7收入信息列表界面图

 图5-8收入信息新增或修改界面图

5.1.5 支出管理

支出管理包括收入新增、修改、删除、导出。在支出信息新增时输入用户名、用户姓名、账户号、支出分类、金额、日期、备注。如图5-9、5-10所示:

 图5-9支出信息列表界面图

 图5-10支出信息新增或修改界面图

5.1.6 债务信息管理

债务信息管理包括收入新增、修改、删除、导出。在债务信息新增时输入用户名、用户姓名、债务类型、债务账户、债务人名、金额、日期、备注。如图5-10、5-11所示:

 图5-10支出信息列表界面图

 图5-11支出信息新增或修改界面图

5.2 管理员端功能的实现

5.2.1登陆功能

管理员登录,在登录页面填写账号、密码进行登录如图5-12所示。

 图5-12管理员登录界面图

5.2.2个人中心

(1)修改密码

管理员登录,在主页面左边的菜单栏选择个人中心下的修改密码,在页面输入原密码、新密码、确认密码。如图5-13所示:

 图5-13管理员修改密码界面图

(2)个人信息

用户登录,在主页面左边的菜单栏选择个人中心下的个人信息,在页面输入用户名点击修改。如图5-14所示:

 图5-14个人信息界面图

5.2.3用户管理

用户管理包括用户信息新增、删除、修改。在用户信息新增时输入用户名、用户姓名、密码、头像、性别、年龄、手机号码。如图5-15、5-16所示:

 图5-15用户信息列表界面图

 图5-16用户信息新增或修改界面图

5.2.4家庭账户管理

家庭账户管理包括账户信息新增、删除、修改。在账户信息新增时输入用户名、用户姓名、账户号、金额信息。如图5-17、5-18所示:

 图5-17家庭账户列表界面图

 图5-18家庭账户新增或修改界面图

5.2.5收入分类管理

收入分类管理包括收入分类新增、修改、删除。在收入信息新增时输入收入分类。如图5-19、5-20所示:

 图5-19收入分类列表界面图

 图5-20收入分类新增或修改界面图

5.2.6支出分类管理

收入分类管理包括收入分类新增、修改、删除。在收入信息新增时输入收入分类。如图5-21、5-22所示:

 图5-21支出分类列表界面图

 图5-22支出分类新增或修改界面图

5.2.7收入管理

收入管理包括收入新增、修改、删除、导出。在收入信息新增时输入用户名、用户姓名、账户号、收入分类、金额、日期、备注。如图5-23、5-24所示:

 图5-23收入信息列表界面图

 图5-24收入信息新增或修改界面图

5.2.8支出管理

支出管理包括收入新增、修改、删除、导出。在支出信息新增时输入用户名、用户姓名、账户号、支出分类、金额、日期、备注。如图5-25、5-26所示:

 图5-25支出信息列表界面图

 图5-26支出信息新增或修改界面图

5.2.9债务信息管理

债务信息管理包括收入新增、修改、删除、导出。在债务信息新增时输入用户名、用户姓名、债务类型、债务账户、债务人名、金额、日期、备注。如图5-27、5-28所示:

图5-27支出信息列表界面图

图5-28支出信息新增或修改界面图

5.2.10管理员管理

管理员管理包括管理员新增、删除、修改。在管理员信息新增时输入用户名、密码。如图5-29、5-30所示:

 图5-29管理员信息列表界面图

 图5-30管理员信息新增或修改界面图

第6章 功能测试

6.1 测试理论

软件系统测试的目的是通过测试找出在程序中的存在的错误信息和阻碍程序正常运转的安全隐患。这同时也是每一个系统软件测试的主要的规定,软件系统的应用过程中,发现一个重要的错误也是极具有很大的影响力的,一个好的测试的方案就为发展程序中存在的重大问题的;同样,一个成功的测试方案也就发现了迄今为止尚未发现的一个重要错误的测试。

软件测试的主要的好处就是为了让软件的运行情况更好,让用户的使用的过程中更加的满意。在软件工程中,软件测试是一个十分重要环节,在交付用户使用最终的软件之前,软件测试就是一个检验的过程,主要针对的是软件的软件设计开发、需求分析、系统编码各阶段结果的一个检验过程。

软件测试应遵循的原则如下:

(1) 软件测试要尽快的进行并且整个测试部分要是在整个软件开发的各个过程和细节。在发现了错误的情况下,立刻处理,这样会大大的减少软件的开发成,提高软件的质量。

(2) 在关于软件的各种测试中,例如测试的过程中使用的计划、报告等等要做到妥善的处理和保管,主要目的就是为了方便将来的对系统的维护。

(3) 群集现象是应该得到高度重视的,在软件的整个测试的过程中。就是在整个测试的过程中发现了错误的主要地方很有可能是就很多的错误的聚集的地方,所以要对这样的部分给予特殊的照顾。

(4) 对于软件的测试要尽量不要软件的设计开发人员或是机构,而是要另一方来进行测试程序,这样也是为了保证软件的测试结果的客观性以及公平公正性。

(5) 对于整个测试计划要严格的按照一定的规则来进行软件测试。

(6) 关于软件测试的过程中的用例应该是预期结果以及之前输入的数据信息构成,输入条件中的要考虑的有合理和不合理的因素都要考虑到,这样也是为了更好的帮助开发的人员更多的发现软件中存在的错误。

(7) 对于整个的测试结果进行全面的检查,尽量避免出现重复的错误。

6.2 测试方法及用例

(1)功能测试

从用户的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。

(2)性能测试

测试软件程序的整体状态(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载和压力测试之间进行划分,在某些情况下,将两者结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但是负载测试可以测试系统如何响应增加的负载。

在对系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个系统开发所牵扯的该问题都必须一一解决,提高系统的安全性、稳定性。

白盒测试与黑盒测试是测试中比较常用的两种方法。

①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽了解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

测试用例:

表6-1 用户注册测试用例

用例编号

UC-TEST-001

测试名称

用户注册

前提条件

用户注册

步骤

操作描述

数据

期望结果

1

点击用户注册查看详情按钮

跳转到用户注册详情

2

点击添加按钮

跳转到添加页面

3

选中添加后按钮

跳转到用户注册页面

测试说明

用户未登录时到步骤3跳转到登录页面

测试结果

成功

测试人

表6-2 登录测试用例

情况

用户名输入

密码输入

期望结果

(1)

15546219225

1244566

提示“用户名或者密码错误,或账号未经审核”

(2)

aaaaa

123456

提示“用户名或密码错误,或者账号未经审核”

(3)

15546219225

hangguowei

登陆成功

6.3 测试结果分析

测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试用户的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。

第7章 总结与展望

家庭记账系统的设计,通过互联网来解决实现信息化的网站系统,通过我四年所学的所有专业知识整合一起,进行对家庭记账系统进行开发设计,当然在真正着手来做的时候遇到了很多问题,一个是网站的技术问题,一个是自己之前没有单独开发过程序,动手实践比较少,面对问题的同时,自己的自信心也受到了一些打击,不过我也是快速的调整自己的状态,老师与同学讨论的方法解决了所有的困难。

毕业设计是我们所学知识应用的最佳体现,也是在考核我们四年中所学的所有的专业知识及技术应用情况,通过这样毕业设计可以更好的得到锻炼及对所学知识的复习及运用,也是一种训练和实践。家庭记账系统的实现,不仅巩固了我以前的知识,还对学到的知识通过结合技术进行详细了解,还结合了对跨学科效果的深入理解。

在以后我的工作中,我仍然会继续努力我的计算机方面的技术,让我在后期的平台开发中可以更好更快的实现需求功能。我相信自己可以胜任更多的好工作并在工作领域做出更大的贡献。

回顾毕业设计的整个过程,既付出了努力与汗水也收获了很多难以忘怀的美好经历。虽然在系统开发过程中经历了各种各样的困难,自己也在不断研究与探索,可是系统的实现仍有许多不足之处。但是经过系统编程工作让我有了更多的信心,我相信在未来的路上,我会走的更好。

参考文献

[1] 邓斯妮 ,陈家敏 ,蔡维晟.基于SpringBoot技术N服的综测务管理系统设计与实现 [J].现代信息科学技术,2021,第005期.

[2] 段震.浅谈MySQL数据库有关数据备份的几种方法[J].山西电子技术,2020(02):17-18.

[3] 蔡俊豪,王桂荣.Java在互联网的应用分析[J].电子技术,2021,50(06):44-45.

[4] 卢慧雅,王磊.基于MVC设计思想的Java实验案例优化[J].计算机教育,2020(03):56-58.

[5] 柯采.基于J2EE和MVC模式的Web应用研究[J].软件,2020,41(03):165-167.

[6] 张泽平. 本科毕业论文管理系统的设计与实现[D].山东师范大学,2018.

[7] 樊方迪.GMR-1 3G综测仪非信令综测算法设计与实现 [A]  . 2019

[8] 宋永鹏.基于MySQL的数据库查询性能优化[J].电子设计工程,2021,29(12):43-47.

[9] 王宇,夏丽丽,何颖刚.基于SSM框架的高校毕业论文管理系统的设计与实现[J].电子技术与软件工程,2021(22):26-29.

[10] 孙超.高校毕业论文管理系统的设计与实现研究[J].信息记录材料,2021,22(11):175-176.

[11] 李永钢,李岩.高校毕业设计(论文)的信息化管理和探讨[J].科技视界,2021(29):154-155.

[12] 张琼. 基于全过程管理的本科毕业论文质量提升路径研究——以成都信息工程大学为例[C]//劳动保障研究会议论文集(十一).,2021:94-96.

[13] 生俊青.基于网络平台的应用型高校本科毕业论文管理研究[J].现代信息科技,2021,5(18):194-198.

[14] 王雅楠,李辉.应用型民办高校本科毕业论文质量管理研究——以大连财经学院为例[J].产业与科技论坛,2021,20(09):249-251.

[15] 边超.基于B/S架构高校毕业论文管理系统的设计——以中国矿业大学银川学院为例[J].企业科技与发展,2020(12):64-67.

致 谢

毕业设计结束的同时也意味着四年的大学生活就要结束了。家庭理财记账系统的完成以及如何在系统运行过程中实现的更好,这其中付出了很大的努力,这段时光将会终身难忘。

在毕业设计的这一段时间里,离不开导师的细心指导,还有同学们的热情帮助,有时候几个同学在一起讨论系统中的某个功能模块如何实现,如何实现的更好,或是问题没得到有效的解决,就会没有心思做其他的事情,让我们对理想充满了动力。

在毕业设计即将结束之时,首先要感谢我的指导老师,谢谢您在毕业设计和毕业论文中对我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。 课堂上,您教会我们如何做人、教会我们新的知识,在课下,您又像朋友一样亲切,教会了我很多道理,让我意识到先做人、后做事。感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教诲、严谨教学才使我能顺利的完成学业,再此向你们表示深深的感谢。感谢大学里教过我的每一位老师,真心祝福您们。

在这里还得感谢我的战友们,也就是同学们对我的大力支持及帮助。正是因为有你们的不断帮助、鼓励,熬夜通宵,不停的调试、测试程序,给我带来了极大的动力,才能最终完成网站的运行。我们在一起交流、谈论的时光,都将是我们在通往未来道路上的宝贵财富。我要深深地感谢你们!

毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!

最后,耽误了老师的休息时间来对本文进行审阅,评议和参与论文答辩的各位老师表示深深的感谢。在此,衷心的谢谢您们!

喜欢的点赞收藏加关注私信作者沟通交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构之线性表

1.线性表的定义 线性表是由n(n≥0)个类型相同的数据元素组成的有限 序列,记作:L 𝑎0, 𝑎1, ⋯ , 𝑎𝑖 , ⋯ , 𝑎𝑛−1 2 线性表的顺序存储结构实现 线性表的顺序存储结构称为顺序表(…

2023年前端面试汇总-HTML

1. src和href的区别 src和href都是用来引用外部的资源,它们的区别如下: src表示对资源的引用,它指向的内容会嵌入到当前标签所在的位置。src会将其指向的资源下载并应用到文档内,如请求js脚本。当浏览器解析到该元素时&#xff…

HyperLogLog数据结构

基数计数(cardinality counting) 通常用来统计一个集合中不重复的元素个数,例如统计某个网站的UV,或者用户搜索网站的关键词数量。数据分析、网络监控及数据库优化等领域都会涉及到基数计数的需求。 要实现基数计数,最简单的做法是记录集合中…

34岁出来面试,还被拒绝有多惨?

我强烈建议大家定期去参加一下外面的面试,尤其是BAT大厂的面试,不要一直闷在公司里,不然你很容易被这个世界遗弃。 前言 昨天,我们小组长奉命去面了一个34岁的测试员。 去了大概半个多小时吧,回来后,他的…

图数据库(二):Java操作图数据库

在上篇文章中,我们介绍了什么是Neo4j,什么是Cypher以及Neo4j的使用,今天我们学习一下如何使用Java操作Neo4j图数据库。 Cypher查询 在使用Java操作Neo4j之前,我们先了解一点,Cypher语句简单查询。 本文使用的是Neo4j…

Flutter的状态管理之Provider

Provider简介 Flutter Provider是Flutter中一个非常流行的状态管理库,它可以帮助开发者更加方便地管理应用程序中的状态。Provider提供了一种简单的方式来共享和管理应用程序中的数据,并且可以根据数据的变化来自动更新UI界面。 Provider的核心思想是将…

网络协议——什么是RIP协议?工作原理是什么?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、什么是RIP协议? 二、为什么要使用RIP? 三、RIP用在哪里? 四、RIP协议的工作原理 五、总结 …

Redis安装布隆过滤器

目录 1 什么是布隆过滤器1.1 布隆过滤器的原理1.2 布隆过滤器缺点 2 插件形式安装2.1 下载布隆过滤器插件 3 docker方式单机安装4 Redis集群部署安装4.1 创建目录4.2 redis配置文件4.3 配置docker-compose.yml文件4.4 启动布隆过滤器集群4.5 配置集群4.6 布隆过滤器常用命令4.7…

如何将simulink中的元件(光伏板)导入到plecs中使用

simulink中有一些元件在plecs中是没有的,如果想要直接使用simulink的库,可以这样操作: 1 新建mdl文件(simulink的文件类型),并在该文件中搭建好想要的模型、元件(只放想要导出的元件就可以了&…

商城检索 DSL

模糊匹配过滤(按照属性、分类、品牌、价格区间、库存)排序分页高亮聚合分析 一. 搜索关键字 检索字段:商品sku标题 “skuTitle” : “华为 HUAWEI Mate 30 Pro 亮黑色 8GB256GB麒麟990旗舰芯片OLED环幕屏双4000万徕卡电影四摄4G全网通手机”…

基于Java+SpringBoot+Vue前后端分离考试学习一体机设计与实现(视频讲解)

博主介绍:✌全网粉丝3W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

docker-compose单机容器集群编排

docker-compose dockerfile模板文件可以定义一个独立的应用容器,如果需要多个容器就需要服务编排。服务编排有很多技术方案 docker-compose开源的项目实现对容器集群的快速编排 docker-compose将所管理的容器分为三层,分别为工程,服务&#…

Jenkins+RF持续集成测试(三) 生成测试报告并发给指定人

在上一篇《定时更新SVN完成构建》中讲了定时从SVN拉取最新的测试脚本,并自动构建的过程。这篇我将介绍怎么配置测试robot报告,并发送给指定人群。 1、要发给指定人,首先需要在job配置,构建后操作中增加“Editable Email Notificat…

day3 ARM寄存器组织

目录 寄存器 ARM寄存器 专用寄存器 CPSR寄存器 寄存器 概念:寄存器是处理器内部的存储器,没有地址; 作用:一般用于暂时存放参与运算的数据和运算结果; 分类:包括通用寄存器、专用寄存器、控制寄存器&…

腾讯云数据库2022下半年本地部署市场收入同比增速达110%,远超市场平均水平

6月7日,记者获悉,据全球领先的IT市场研究和咨询公司IDC发布的《2022年下半年中国关系型数据库软件市场跟踪报告》显示,在Top 5厂商中,腾讯云数据库整体收入同比增速、本地部署模式收入同比增速均位列第一。 具体来看,…

ChatPPT一键制作PPT,效果拉满~

💧 C h a t P P T 一 键 制 作 P P T , 效 果 拉 满 ! \color{#FF1493}{ChatPPT一键制作PPT,效果拉满!} ChatPPT一键制作PPT,效果拉满!💧 🌷 仰望天空&#xf…

网络安全面试题集及答案整理汇总(2023最新版详细)

前言 随着国家政策的扶持,网络安全行业也越来越为大众所熟知,想要进入到网络安全行业的人也越来越多。 为了拿到心仪的Offer之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年&…

如何安装intellij IDEA

想要自学编程,又不知道从那开始,百度找起来比较费劲,现在有个比较便捷的途径,就是直接问chatgpt。 在询问chatgpt后,得知目前比较流行的开发工具是intellij IDEA,然后问了chatgpt怎么下载这个工具&#xf…

当Python程序员好不好?我用自己的亲身经历告诉大家

最近有很多人问我是否考虑转行成为Python程序员,包括一些非计算机专业的学生和工作了几年的人。对于这个问题,我不太好给出建议,只能以我的个人经历来谈一下。我个人认为,我处于整个程序员群体的中位水平线上,因此大家…

开源飞行控制库QGroundControl认识

QGroundControl provides full flight control and vehicle setup for PX4 or ArduPilot powered vehicles. It provides easy and straightforward usage for beginners, while still delivering high end feature support for experienced users. QGroundControl为PX4或Ard…