摘 要
个人理财APP设计的目的是为用户提供对活动信息和提醒信息管理等方面的平台。
与PC端应用程序相比,个人理财的设计旨在为用户提供一个个人理财信息的管理。用户可以通过APP及时收入信息和支出信息,并对提醒消息进行查看等。
个人理财APP是在Android操作系统下的应用平台。为防止出现兼容性及稳定性问题,服务器选择的是Apache,用户与后台之间的数据存储主要通过MySQL。用户在使用应用时产生的数据通过Java等语言传递给数据库。通过此方式促进个人理财APP信息流动和数据传输效率,提供一个内容丰富、功能多样、易于操作的个人理财APP。
关键词:个人理财;Android;Apache;Java;MySQL
Abstract
The purpose of personal finance APP design is to provide users with a platform for activity information and social forums.
In contrast to PC side applications, Personal Finance is designed to provide users with a personal finance. Users can timely income information and expenditure information through the APP, and check the reminder message.
Personal finance APP is an application platform under the Android operating system. To avoid compatibility and stability problems, Apache is used as the server, and MySQL is used to store data between users and the background. The data generated by the user when using the application is passed to the database through languages such as Java. In this way, information flow and data transmission efficiency of personal finance APP can be promoted, and a personal finance APP with rich content, diverse functions and easy operation can be provided.
Key words: personal finance; Android; Apache; Java; MySQL
目 录
目 录 2
一 绪论 1
1.1研究意义 1
1.2系统设计目的 2
1.3系统设计思想 2
二系统开发环境及关键技术 3
2.1 Android Studio介绍 3
2.2 Java介绍 3
2.3 Tomcat介绍 4
2.4 MySQL介绍 4
2.5 SpringBoot框架 5
2.6系统开发环境 5
三 系统的设计 6
3.1 APP性能需求 6
3.2 APP需求分析 6
3.3可行性分析 6
3.3.1经济可行性 6
3.3.2技术可行性 7
3.3.3社会可行性 7
3.4系统用例分析 7
3.5软硬件需求 8
3.6系统流程图 8
四 系统设计 10
4.1系统设计总体描述 10
4.2数据库设计 10
4.2.1 数据库系统 10
4.2.2数据库实体及属性 10
4.2.3数据库设计表 12
五 App的实现 21
5.1 App前台功能的实现 21
5.1.1登录界面的实现 21
5.1.2注册界面的实现 21
5.1.3系统首页功能的实现 22
5.1.4用户功能 23
5.2 APP后台管理员模块的实现 24
六 软件测试 29
6.1软件测试原则 29
6.2软件测试过程 30
6.3测试用例 31
6.4本章小结 32
结 论 33
参考文献 34
致 谢 35
一 绪论
近年来,随着网络基础设施的不断建成,互联网成为社会发展和经济增长的推动力。中国网民总体规模持续增长:一是城乡上网差距继续缩小,二是得益于互联网适应用老化改造持续推进,老年群体加速融入网络社会。上网的总时长保持增长,上网的终端设备呈现多元化,其中包括手机、笔记本电脑、电视机和平板电脑。其中,手机仍然是上网的主要设备。受新冠疫情影响,不但引起“大萧条”以来最严重的经济衰退,而且为人们的出行带来了极大的不便。由此带来的是,即时通信、网络视频、短视频用户、在线办公、在线医疗等应用保持较快增长,人们有愈来愈多的线上需求。从现在来看,国内的个人理财比较缓慢,广大个人理财应该加紧脚步,积极投身入到实践任务当中,不断积极探索,从实践中出来,总结出自己的理论方法。与传统的工作室相比较,个人理财APP具有开发成本低、方便快捷等特点,将会得到大力发展。
个人理财APP就是针对适合移动设备方便用户访问和浏览而进行搭建的,而且还是基于PC端进行开发。个人理财APP主要是针对智能手机用户的,有尺寸小、可方便携带的优势,带来了获取信息及时、方便快捷的用户体验,也可以减少加载资源的时间,以提前进行缓存内容。在当前各行业工作都转向线上的形势之下,个人理财APP充分发挥了它的优势,利用互联网将用户、管理员和平台相互联系。在大数据背景下,产生的数据会非常繁多,后台会对产生的数据进行汇总和处理,确定其真实性和合法性。
1.1研究意义
常见的系统管理主要通过文章、图书、报纸、挂图等,这些多样的传播形式极大丰富满足了人们求知的欲望。不过随着近些年来互联网不断渗透到生活各个方面,这些传统的传播媒介受到了冲击,显示出它的弊端。各种电子产品的出现也是顺应时代,满足当前更加数字化、网络化的时代发展趋势。再加上近年来科技领域的不断突破,大数据和人工智能也不断进入我们的生活中,如短视频软件中的内容推荐和购物平台用户推荐都用到了相关算法和研究成果。把图文、短视频等作为知识传播普及的媒介,可以为信息的传播带来很多的好处。例如,人们可利用碎片化的时间进行学习交流,有利于拓宽知识传播的壁垒,唤醒大众对知识个人理财App的渴望和热情。
App的开发要从实践中总结研究出自己的一套理论体系,需要管理者,用户和用户不断地进行系统性总结和反思。表现形式难免也跟随现代技术的发展而发生相应的转变,以往的报纸图文等静态表达形式正受着视频化、移动化的方式的冲击,未来的某一天也许会被取代。这提醒工作者更加关注公众需求的多层次性,在条件允许的情况下,采用线上和线下相结合的方式更有利于促进个人理财整体水平的提升。在个人理财工作中,管理者都是根据用户的需求来规划和设计,用户的需求就是应该考虑的,这就是“需求导向”原则。
1.2系统设计目的
为了给用户清晰直观的页面指示。用户在完成注册后,会将用户注册相关信息添加到后台数据库中;用户在登录时,会根据数据库存储信息进行身份验证。用户可以关注自已感兴趣的公告,反之,可以点击屏蔽操作。后台管理人员也会根据各公告资讯进行筛选,将好的公告放在APP主页,以供更多人点击和浏览。个人理财APP打破活动传播和理解的壁垒。
1.3系统设计思想
在系统开发过程中,为了提升软件质量,提升用户体验,秉持严谨的态度制定了一些应遵守的原则。这些原则可以保证完成软件开发任务,也可以为后期软件测试和维护提供便利。以下是应遵守的一些原则:
(1)用户第一原则
个人理财APP的开发,不仅要建立用户思维,围绕用户展开工作、解决用户需求,还要把为用户创造价值放在工作的第一位,并作为产品制定项目的切入点。了解需求的构成,了解需求的背后,善于洞察用户需求。此外,还应探索新思路,做出创新并达成突破性结果。
(2)可扩展、灵活性原则
毫无疑问,一个被客户称赞的系统,在拓展性和灵活性方面都比较高。因为在当今时代,用户的需求变化比较快。为满足用户需求,开发者需要及时对系统做出调整,如果用户小小的需求会引起系统的大量改动,那么这个系统就是不成功的。应该牢牢把握“原则”,让系统在设计初期就考虑到拓展性和灵活性,为后期的运维和技术支持也将带来很多的好处。例如,如何做到在降低模块间依赖性的同时,提升系统稳定性。
(3)安全性和可维护性原则
在使用过程中,难免出现不可预知的安全问题,应做到及时辨识系统的隐患,应采取有效措施,让损失降到最小。维护性包括代码理解性、测试性、修改性。在设计初期,如没考虑到系统的可维护性,也会带来很多的棘手问题。当运维阶段时,系统遇到比较大的问题时,解决起来费时费力,还不一定可以解决。最好的、最简单的方法就是重写,这就造成人员、金钱和时间等资源浪费。
二系统开发环境及关键技术
2.1 Android Studio介绍
Android Stuido是Google公司在2013年推出一款开源的、跨平台的安卓集成开发环境,它可以运行在Windows、Linux和OSX等操作系统上,专门为Android开发而设计打造的软件,是一款以IDEA为基础的,为安卓开发提供便利而改造的IDE,除去开源免费跨平台的优势外,选择它作为主要开发工具的理由还有很多。与IDEA和Eclipse相比,它具有以下优势:
(1)UI界面更漂亮,主题也变得丰富,并且支持背景自定义。
(2)软件启动速度、响应速度、内存占用都得到了很大提升。
(3)功能更加强大,Eclipse经常卡顿的问题在它身上不会出现。
(4)软件的提示补全功能更加智能,开发效率得到很大的提升。
(5)它还支持用户定义智能保存,再也不用手动保存了。
(6)软件还支持用户实时预览,开发者可以一边开发一边预览,大大提高了用户开发和调试的效率。
(7)完美的内置了兼容了命令行终端,对于喜欢命令行终端使用的人来说,也是一大福音。
(8)含有丰富的插件库,可以选择很多可提升工作效率的插件,搜索点击就可完成安装。
(9)具有完美的版本控制工具,如Git、SVN等。
2.2 Java介绍
Java语言正式诞生于1995年,是由SUN公司开发研制的OAK语言发展而来的。Java语言继承了OAK语言可跨平台运行的特点,融合了面向对象编程的风格,JAVA以其独有的开放性、跨平台性和面向网络的交互性席卷全球,以其安全性、易用性和开发周期短的特点,迅速从最初的编程语言发展成为全球第一大软件开发平台.广受时下程序开发人员的好评[3]。后来又为了丰富Java语言的用途,提高生产力,将它进行设计和改造,以满足更多地开发和应用场景。经过改造后,它可以满足移动端开发,桌面应用开发和企业级应用开发。Java语言还为用户提供了丰富的类库,在掌握它的特性后,学习特定的工具包,就可以满足很多场景的开发。现在来看,Java语言在这三种平台的应用开发中,都占据了举足轻重的地位。
与其他语言相比,Java语言具有很多的优点,Java语言简单比较容易理解,有c语言的基础很容易就可以学会,中文和英文的学习资源也比较多,而且Java语言经过许多年的沉淀发展,逐渐演变出很多成熟的框架技术。企业还还可以封装自己的框架,让开发变得简单。它还具有跨平台性较其他语言这一个最大的优势,这意味着它只需要一次编译就可以运行在其他平台上。
2.3 Tomcat介绍
Tomcat是一个开源免费的的应用服务器,是Apache软件基金会项目中的一个核心项目,由sun等公司以及个人共同合作开发而成,是一款比较流行的网页应用服务器。Tomcat由一系列的组件构成,其中核心的组件有三个:web容器, servlet容器, JSP容器。Tomcat作为servlet容器,有三种工作模式:独立的servlet容器,servlet容器是web服务器中的一部分;作为进程内的servlet容器,servlet容器是作为web服务器的插件和java容器的实现;进程外的servlet容器,servlet容器运行于web服务器之外的地址空间,并作为web服务器的插件和java容器实现的结合[4]。反应时间不如进程内但伸缩性和稳定性比进程内优。
Tomcat有三种运行模式:
(1)bio
即阻塞式I/O操作,Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。Tomcat在默认情况下,就是以bio模式运行的。
(2)nio
是一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。
(3)apr
它是Apache HTTP服务器的支持库。可以简单地理解为:Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。
2.4 MySQL介绍
MySQL数据库是一种关系型数据库管理系统,是一种开源软件由瑞典MySQL AB公司开发,08年被Sun公司收购,09年Sun公司又被Oracle公司收购[6]。由于其体积小、速度快、总体花费成本低,特别地是开源这一各优势,许多公司考虑到总体运行成本和花费成本而选择了MySQL。MySQL属于轻量级小中型数据库。MySQL数据库有以下优点:成本花费比较低,MySQL是免费而且它的技术支持也很便宜;运行的速度比较快,它的运行速度比其他的很多的数据库都快;跨平台、可移植性较高,MySQL可以在非常多种的操作系统中运行,满足各种操作系统的用户,后期的管理和运维相对也比较方便。
SQLite,是一款轻量级别的数据库,是一种关系型数据库系统。它起初的的设计目标是面向嵌入式设备,目前在很多的嵌入式设备中可见到它的身影,它占用的内存非常的低,在嵌入式设备中,只需要几百K的内存。同时,它也是跨平台的,支持主流的操作系统,同时还可以很多程序语言(如C#、PHP、Java等)相结合使用,同样与Mysql、PostgreSQL这两款开源的DBMS相比,它的处理速度比他们都快[7]。SQLite第一个版本诞生于2000年5月。目前为止,已经有二十多年了,也等到了新的版本的SQLite 3的发布。
2.5 SpringBoot框架
Spring Boot是由Pivotal的开发团队在2013年开发的一个免费、轻量级、开源的系统框架。SpringBoot的主要设计思想是约定大于配置,因此SpringBoot在设计时几乎达到零配置。SpringBoot集成了业界的开源框架。
SpringBoot是一个非常强大的后台框架,因为SpringBoot的开发基本上不需要写配置文件,所以利用SpringBoot来构建网站的后台环境,在SpringBoot的YML配置文件中写项目启动端口,项目就可以启动了。项目的Java和静态文件由SpringBoot管理。
2.6系统开发环境
使用设计模式是为了让自己明确开发系统各个组成的各种关系与角色,设计模式让你经典场景来分析你实现某些功能的时候需要什么角色、如何合理设置接口、提高系统各个层次的独立性,降低耦合度等方法好处。
由“模型-视图-控制器”是一种非常经典的软件架构模式,在UI框架和UI设计思路中扮演着重要角色。从设计模式的角度来说,MVC模式是一种复合模式,它将多个设计模式在一种解决方案中结合,用来解决许多设计问题。MVC模式把用户界面交互拆分为三种不同角色中,使得应用程序被分成三个核心部件:Model(模型)、View(视图)、Control(控制器)[8]。MVC模式将它们分离以提高系统的灵活性和复用性,不使用MVC模式,用户界面设计往往将这些对象混在一起[9]。
三 系统的设计
3.1 APP性能需求
(1)用户在前端页面各种操作可及时得到反馈。
(2)该平台是提供给多个用户使用的平台,用户使用之前需要注册登录。登录验证后,用户才可进行各种操作。
(3)管理员拥有信息新增,修改和删除等权限。
(4)数据库表设计简单,各表之间联系直观清晰明了。
(5)界面布局设计简洁合理,能够让用户具有更加流畅且愉悦的体验。
3.2 APP需求分析
作为一款个人理财App,面向的是大多数学者,软件的界面设计简洁清晰,用户可轻松掌握使用技巧。在调查之后,获得用户以下需求:
(1)用户注册登录后,可进入首页解锁更多功能,用户将信息加入到后台数据库。
(2)用户不仅可以发布信息,而且还可以自行搜索信息。
(3)用户发现不感兴趣的内容时,可进行拉黑或屏蔽操作。
(4)管理员具有权限,对发布的评论和信息进行审核,还有权把违规信息删除并告知用户。
(5)可以点击信息详情页面进行查看。
(6)管理员可以发布公告信息的通知。
3.3可行性分析
3.3.1经济可行性
本项目经济可行性,主要是考虑前期所需的投入和后期项目上线后维护费用,服务器费用和后期产生的经济效益是否能保证整个项目的运行。
在前期投入方面,由于开发工具都是开源免费的,所以开发工具花费比较小,主要是开发人力资源的投入。在保证项目的质量下,这方面的支出还是比较少的。
另外项目完成交付之后,项目的推广也需要一部分支出,这部分也是非常重要的环节,用户使用数目的多少将直接决定后期的盈利。在上线时还要考虑后期管理和维护的费用。
从以上分析来看,前期的投入和后期收益,可以保证整个项目运转前提下,获得的额外盈利还是可观的。
3.3.2技术可行性
本次开发主要是为了打造区别于传统的工作室管理形式的App。在网络允许条件下,用户可在任何地方任何场所进入APP浏览相关内容。软件的主要逻辑是:用户进入APP页面然后进行各种点击操作,处理用户各种点击操作请求,业务逻辑处理以及访问数据库几个过程;如果把这三个功能放在一块,代码会显得很复杂,对后期的维护很不方便。于是,笔者经过查询相关资料最终决定采用MVC设计模式,MVC模式将代码按照功能分为三层,提高扩展性和维护性[1]。
APP将采用Windows+Apache+MySQL+Java的组合开发完成,技术已经被很多人采用,并被反复证明是有效成熟的,因此成功率一般比较高。此外,成熟技术经过长期使用、补充和优化,其优化度、可操作性和经济性均良好。前端页面的展示,主要依靠“Web前端三剑客”,HTML用来组织页面主要内容和总体框架,CSS用来控制网页的显示格式,前端页面的展示和后台数据的处理则是通过Java和springboot合作[2]。软件把用户提交的数据经过后端系统的处理后,再次展示给前端页面,供以用户查看和操作。
在确定好开发环境的整个项目大致方向之后,笔者循序渐进地学习相关技术,早日完成开发。由此看来,技术可行性也是没有问题的。
3.3.3社会可行性
在这个交通便捷、信息通畅的时代,人们可以选择的管理方式渐渐多了起来,对于网络、APP的依赖也越来越大。电子信息、教学界都需要快速的发展和进步。这些行业的发展对人们有着很大的影响。对我们的祖国才能更迅速的发展起来,以完成党和国家的百年奋斗目标。而把科技发展和工业发展连接起来,二者相互推动进在目前看来是一个大的趋势。现在正是各个国家比拼各自科技的时代,这样一来,个人理财就变得十分重要。同时,个人理财APP大大提升了使用者的使用体验,符合当今社会的发展背景和发展方向。
3.4系统用例分析
本系统采用前后端分离的方式进行设计,前台app端的主体是用户,后台服务端的主体是管理员;其用例分别如下:
管理员用例图如图3-1所示。
图3-1 管理员用例图
用户用例图如图3-2所示。
图3-2 用户用例图
3.5软硬件需求
个人理财App针对大多数用户,得益于庞大的群体,软件主要是针对于安卓手机开发。此外,安卓手机还具有非常多的优势:支持快充、可玩性高,软件插件多,界面简单易于操作。在老师指导下,笔者配置了Java运行环境,并安装好了Android Studio和Apache服务器,并手动配置了Android SDK。在综合考虑各种因素下,数据库最终选择了开源且免费的MySQL数据库。
3.6系统流程图
本系统登录流程图,如图3-3所示。
本系统添加信息流程图,如图3-4所示。
图3-3 登录流程图
图3-4 添加信息流程图
四 系统设计
4.1系统设计总体描述
总体上看,个人理财APP具有系统首页、个人中心、用户管理、收入类别管理、支出类别管理、收入信息管理、支出信息管理、每日预算管理、留言反馈和系统管理等功能模块。以下为几个主要模块简单介绍:
系统总体功能结构图如下所示:
图4-1系统总体结构图
4.2数据库设计
4.2.1 数据库系统
构建一个个人理财App数据库是必不可少的,而我们使用的是MySQL关系数据库,开发工具是时下热门的Navicat for MySQL开发。MySQL有着信息卓越、服务稳定并且开源,可以不用担心费用问题,对于个人的管理及维护上也十分便捷,Navicat有着简洁的界面和稳定的开发环境,还拥有着优秀的图形用户界面。
4.2.2数据库实体及属性
收入信息实体属性图,如图4-2所示。
图4-2收入信息实体属性图
留言反馈实体属性图,如图4-3所示。
图4-3留言反馈实体属性图
每日预算实体属性图,如图4-4所示。
图4-4每日预算实体属性图
支出信息实体属性图,如图4-5所示。
图4-5支出信息实体属性图
理财知识评论实体属性图,如图4-6所示。
图4-6理财知识评论实体属性图
4.2.3数据库设计表
在我们建立数据表的时候,我们需要考虑标语表之间、数据之间的关系,数据库的设计显得尤为重要,它关系着开发软件过程中各个方面的效率、应用、设计。详细信息如下。
表4-1:收藏表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
refid bigint 商品id
tablename varchar 200 表名
name varchar 200 名称
picture longtext 4294967295 图片
type varchar 200 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) 1
inteltype varchar 200 推荐类型
remark varchar 200 备注
表4-2:收入信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
shouruxiangmu varchar 200 收入项目
shouruleibie varchar 200 收入类别
tupian longtext 4294967295 图片
shourujine float 收入金额
shourushuoming longtext 4294967295 收入说明
yonghuming varchar 200 用户名
xingming varchar 200 姓名
tianjiashijian datetime 添加时间
userid bigint 用户id
表4-3:收入类别
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
shouruleibie varchar 200 收入类别
表4-4:公告资讯
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
introduction longtext 4294967295 简介
picture longtext 4294967295 图片
content longtext 4294967295 内容
表4-5:留言反馈
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 留言人id
username varchar 200 用户名
avatarurl longtext 4294967295 头像
content longtext 4294967295 留言内容
cpicture longtext 4294967295 留言图片
reply longtext 4294967295 回复内容
rpicture longtext 4294967295 回复图片
表4-6:每日预算
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
mingcheng varchar 200 名称
tupian longtext 4294967295 图片
zhichujine int 支出金额
yusuanshuoming longtext 4294967295 预算说明
yonghuming varchar 200 用户名
xingming varchar 200 姓名
tianjiashijian datetime 添加时间
表4-7:支出信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
zhichuxiangmu varchar 200 支出项目
zhichuleibie varchar 200 支出类别
tupian longtext 4294967295 图片
zhichujine float 支出金额
zhichumingxi longtext 4294967295 支出明细
yonghuming varchar 200 用户名
xingming varchar 200 姓名
tianjiashijian datetime 添加时间
表4-8:用户表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
username varchar 100 用户名
password varchar 100 密码
role varchar 100 角色 管理员
addtime timestamp 新增时间 CURRENT_TIMESTAMP
表4-9:理财知识评论表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
refid bigint 关联表id
userid bigint 用户id
avatarurl longtext 4294967295 头像
nickname varchar 200 用户名
content longtext 4294967295 评论内容
reply longtext 4294967295 回复内容
表4-10:支出类别
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
zhichuleibie varchar 200 支出类别
表4-11: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-12:配置文件
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
name varchar 100 配置参数名称
value varchar 100 配置参数值
表4-13:提醒信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
mingcheng varchar 200 名称
tupian longtext 4294967295 图片
yonghuming varchar 200 用户名
xingming varchar 200 姓名
tixingneirong longtext 4294967295 提醒内容
jianyineirong longtext 4294967295 建议内容
tixingshijian datetime 提醒时间
表4-14:关于我们
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
subtitle varchar 200 副标题
content longtext 4294967295 内容
picture1 longtext 4294967295 图片1
picture2 longtext 4294967295 图片2
picture3 longtext 4294967295 图片3
表4-15:用户
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
yonghuming varchar 200 用户名
mima varchar 200 密码
xingming varchar 200 姓名
xingbie varchar 200 性别
touxiang longtext 4294967295 头像
nianling varchar 200 年龄
youxiang varchar 200 邮箱
shouji varchar 200 手机
表4-16:理财知识
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
biaoti varchar 200 标题
biaoqian varchar 200 标签
tupian longtext 4294967295 图片
jianshu varchar 200 简述
zhishineirong longtext 4294967295 知识内容
fabushijian datetime 发布时间
clicktime datetime 最近点击时间
clicknum int 点击次数 0
五 App的实现
5.1 App前台功能的实现
5.1.1登录界面的实现
首先双击打开App,连上网络之后会显示出本系统的登录界面,这是进入App的第初始页面“登录”,能成功进入到该登录界面则代表App的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能。
登录界面如图5-1所示。
图5-1 登录界面
5.1.2注册界面的实现
第一次使用本app的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,系统才会进入登录界面,用户登录成功后可使用本app所提供的所有功能。注册界面如图5-2所示。
图5-2 注册界面
5.1.3系统首页功能的实现
系统首页是用户注册登录后进入的第一个界面,用户可通过app端首页点击“我的”进入我的页面,在我的页面可以对收入信息、支出信息、每日预算、提醒信息、留言反馈等进行详细操作。系统首页界面如图5-3所示。
图5-3 app首页界面图
5.1.4用户功能
用户登录成功后,点击“我的”进入我的页面,在我的页面可以对收入信息、支出信息、每日预算、提醒信息、留言反馈等进行详细操作。我的界面如图5-4所示。
图5-4用户功能界面图
5.2 APP后台管理员模块的实现
后台登录,通过填写用户名和密码等信息进行登录操作,如图5-5所示。
图5-5后台登录界面图
管理员登录进入app可以查看系统首页、个人中心、用户管理、收入类别管理、支出类别管理、收入信息管理、支出信息管理、每日预算管理、留言反馈、系统管理等功能进行详细操作,如图5-6所示。
图5-6管理员功能界面图
用户管理;在用户管理页面输入用户名、姓名和性别进行查询,新增或删除用户详细信息,进入用户页面可以对用户信息进行详情,修改和删除;如图5-7所示。
图5-7用户管理界面图
收入类别管理;在收入类别管理页面输入收入类别进行查询,新增或删除收入类别详细信息,进入收入类别页面可以对用户信息进行修改和删除;如图5-8所示。
图5-8收入类别管理界面图
收入信息管理;在收入信息管理页面输入收入项目和收入类别进行查询或删除收入信息详细信息,进入收入信息页面可以对收入信息进行详情,修改和删除;如图5-9所示。
图5-9收入信息管理界面图
支出信息管理;在支出信息管理页面输入支出项目和支出类别进行查询、新增或删除支出信息详细信息,进入支出信息页面可以对支出信息进行详情,修改和删除;如图5-10所示。
图5-10支出信息管理界面图
每日预算管理;在每日预算管理页面输入名称和用户名进行查询、新增或删除每日预算详细信息,进入每日预算页面可以对每日预算信息进行详情、提醒、修改和删除;如图5-11所示。
图5-11每日预算管理界面图
提醒信息管理;在提醒信息管理页面输入名称进行查询或删除提醒信息管理详细信息,进入提醒信息页面可以对提醒信息进行详情、修改或删除;如图5-12所示。
图5-12提醒信息管理界面图
系统管理;在公告资讯页面中可以对标题等进行查询、新增或删除,并对公告资讯进行查看详情、修改或删除操作;如图5-13所示。
图5-13系统管理界面图
六 软件测试
软件测试指的就是通过自动或是人工的手段来运行某个软件系统,并对其运行过程进行综合测定,其目的在于对所开发软件系统质量进行合理评判[13]。软件测试的最后的目的是验证软件的正确性,即是否满足既定的需求分析,是否满足用户的特定功能。将未满足的需求得以实现或错误改正。根据测试目的的不同,所选取的测试方法也存在差异。而软件质量保证是为保证软件质量而建立的一套标准,目的是给予管理者一套管理标准,使软件测试环节系统、有计划的进行,能够及时找到错误。由于软件本身是无形态的逻辑产品,因此不存在错误是不可能的。工厂的产品在生产出厂前需要经过严格的测试检测,同样地软件也需要严格的软件测试。它可及时告知开发人员并修改问题,代表了对需求分析、设计、编码的最终审查。按测试技术不同可划分为:白盒测试、黑盒测试、灰盒测试[14]。
6.1软件测试原则
软件测试是为了发现错误而执行的程序的过程,它的最终目标是提升软件质量,提高用户体验。软件测试可能会带来经济效益,因为软件测试可能会发现其中隐含的错误,若一个小小的错误未及时被发现,那么将来也许会引起更严重错误或者损失。那么这个损失或者错误将会用更大金钱或者人力来弥补,也可能会引起不可挽回的损失。俗话说“不以规矩,不能成方圆”,一个好的指导原则能指引测试员尽早地发现软件错误。经过前辈们的不断摸索和实践,总结出以下指导原则供参考:
(1)应制定测试计划并严格执行,排除任意性。
软件测试覆盖整个软件开发过程,它在软件测试中花费的时间比较多,地位也是比较重要的。软件测试应该制定严格的测试计划,在测试过程中,应严格按照计划进行,保证测试稳定进行,不影响最终项目的上线。制定计划时,应考虑到各个影响测试方面的各个因素,保证其合理性,以及如何针对不同类型的测试团队人员,将测试执行进度计划做出相应的调整。
(2)测试用例应由测试数据和预期输出组成。
要测试用例应该包含模拟用户正常输入时的数据,用户理应得到的数据,还有在测试时用户真实得到的数据。
(3)程序员应避免检查自己的程序。
软件测试其实是一种找出错误的过程,每个人在自测时,有可能会因为个人对需求文档描述内容理解不当而引入错误更加难发现。避免此行为,有利于保证测试工作客观性、有效性。
(4)测试用例应当包括合理的和不合理的输入条件。
为了使得避免局限性,软件测试应涵盖到各方面,其中条件就需要包含到合理的和不合理的。
(5)充分注意测试中的群集现象。
根据数据统计,软件测试出出现的错误有可能中发生群集现象。因为一个模块的错误越多,其发生错误的可能性越大。因为在改错的过程中,有可能会引入更多的错误。因此对错误较多的片段要进行下一步更详细的测试。
(6)既要检查是否做了该做的事,还要检查是否做了不该做的事。
进行功能测试时,要注意软件是否准确完成了某个模块。例如,需要打印输出用户个人信息,而打印出的是商品信息,这显然是不合理的。
(7)妥善保存测试用例。
测试用例的设计耗费了很大时间,必须将其制成文档保存,还应进行出错统计和最终分析报告。因为经修改后的程序可能还会有新的错误,需要进行不断的回归测试,测试用例的保存有利于节约时间成本,也为后期的维护提供了便利。
6.2软件测试过程
软件测试这个任务是非常巨大的,有很多的代码需要测试人员完成测试,为了保证软件测试任务高效、有效率,可以考虑把软件测试过程划分为几个阶段,保证每个阶段有条不续的进行。主要可以分为以下阶段:
(1)单元测试
单元测试是对软件的某个模块或者代码中的一个函数进行的测试,是软件测试过程最先要考虑的测试,即验证某个模块的独立性,看与其他模块想分离出来情况下,看它是否可以独立地完成它的任务。这个测试过程长期看的话,可以提高开发人员对代码的重视程度,减少低级错误,而且可以减少以后维护的话费。短时间来看的话,测试人员的工作量变得很大,对于项目比较紧张或人数较少的公司来说,带来了很大的负担。
(2)集成测试
集成测试是对各模块间耦合性的测试。因为在完成模块测试后需要对软件进行组装起来,然后进行基础测试,难免在组装过程中发生代码的丢失会重复定义等错误,或模块测试的错误可以被忽略,而集成后,错误变大导致出现很大的错误,所以集成测试是必须的一个环节。有按照检测顺序将测试分类,例如:自顶向下的集成策略、回归测试、核心系统先行集成测试[15];有按照具体特性将测试分类,例如:基于功能、分险的集成测试等。
(3)系统测试
系统测试是指将已经集成的软件系统作为整个计算机系统的一个元素,与其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试[16]。这个阶段的目的是与软件需求说明书作比较,检查软件的功能和模块是否符合说明书的要求。因为在有些时候虽然软件的某个模块的功能虽然满足用户的需求,也能满足用户的交于的任务,但是组装起来的话,会遇到预料不到的错误。次外,软件是装在系统上与其他软件一起使用的,在与其他软件使用时是否会发生错误也是未知的,可见系统测试也是非常有必要的。
(4)确认测试
任务是检查软件各个模块或者功能是否满足说明书的描述,如果功能和最终的测试满足用户需求,则说明这个软件还是比较成功的,可以完成交付。相反,则需要用户和经理进行协商,制定计划如何进行修改的计划。
(1)验收测试
软件在进行上线或产品发布之前的测试,需要用户和开发人员一起共同合作,来参与到测试当中。目的是测试软件是否准备就绪,是否可以完成开始某个小功能和最终的客户需求。
6.3测试用例
部分系统测试用例如表6-1所示。
表6-1 测试用例表
测试功能、流程 预期结果 实际结果 结论
测试注册。用户在登陆页面输入对应信息可以进入主页面 注册成功,
之后跳转登录页面 注册成功,
成功跳转登录页面 测试成功
测试登录。用户在登陆页面输入正确用户名和密码可以进入主页面 登录成功,之后跳转主页面 登录成功,之后跳转主页面 测试成功
搜索测试。用户输入查找内容,得到相关信息 搜索成功,显示搜索信息内容 搜索成功,显示搜索信息内容 测试成功
分类。用户点击后可看到信息分类 成功显示信息分类页面 成功显示信息分类页面 测试成功
测试详情展示。用户点击详情页查看发布信息的详情内容 正常显示信息详情 正常显示信息详情 测试成功
测试点赞。用户对信息进行点赞 可以对信息进行点赞 可以对信息进行点赞 测试成功
测试评论。用户对信息进行评论 可以对信息进行评论 可以对信息进行评论 测试成功
测试屏蔽。用户对敏感、厌恶的信息进行屏蔽操作 已屏蔽相关内容 已屏蔽相关内容 测试成功
6.4本章小结
软件测试是保证软件质量的最后一个阶段,在项目组花费的精力较多,因为当完成测试后,项目就要正式进入到维护运行阶段。经过测试的软件,发现软件隐含错误时,就需要查找错误原因和位置,即软件调试。软件调试是一次非常困难的获得,目前还为发现十分有效高速的调试方法,因为错误的原因和种类很多。因此,我们应严格遵守测试原则,积极开展测试工作。
结 论
个人理财以Android Studio为开发环境进行开发和最终的调试,后端采用Java语言进行开发。用户主要是面向普通用户,旨在为用户提供一个涵盖各方面的个人理财 APP。项目目前完成了用户基本需求,兼容性良好,未发生错误。但与真正投入使用的平台相比,功能和实用性明显不足,后期还有很多改进和完善的地方。例如,现在很多人使用的抖音短视频。此平台的功能丰富和对数据库的设计以及数据的处理的更加合理高效。各种界面和人性化的设计也值得去认真学习和探索。某些功能还具有很多细节还需要完成:管理员模块,管理员可以进行相关信息的发布,也可以完成对用户的管理和用户遇到的问题及时处理;大数据推荐功能的实现,可帮助用户更快、更高效的找到相关内容。
由于自己知识储备量的不足,这个项目仅仅完成了一些最基本的功能。与实际生活的运用还存在着一定的差距,没有考虑到更多的应用场景。在今后的学习中,需要不断加强学习基础知识并且更加注重实践,做到从时间来到实践中去,达到融会贯通。但随着互联网基础设施的不断完善,此项目还是有很大的前景的。
参考文献
[1]韩寅莹, 刘永齐, 康月,等. 基于三层架构与MVC设计模式的古文化展示保护系统的设计与实现[J]. 信息技术与信息化, 2020(7):3.
[2]魏鹏娟. Web前端开发的关键技术[J]. 电子技术与软件工程, 2021(5):2.
[3]郭阳, 常英贤. 浅谈Java语言在计算机软件开发中的应用[J]. 数字通信世界, 2022(1):4.
[4]余炀, 曲毅,孙亦乐. 基于Apache Tomcat的一站式Java应用服务器解决方案[J]. 中国金融电脑, 2018(1):5.
[5]Jason Brittain, Ian F.Darwin. Tomcat权威指南[M]. 北京:中国电力出版社, 2009.
[6]郑明秋, 蒙连超, 赵海侠. MySQL数据库实用教程[M]. 北京:北京理工大学出版社, 2017: 4.
[7]郝丽萍. 基于SQLite数据库的Android平台智能相册应用系统设计与实现[J]. 中阿科技论坛(中英文), 2021(2):102-104.
[8]陈禹樵, 隋浩. 浅谈设计模式在Android代码重构中的应用[J]. 信息记录材料, 2021, 22(8):3.
[9]周子剑, 彭媛. MVC框架在Android开发的应用研究与实践[J]. 电脑编程技巧与维护, 2021.
[10]商鹏. 试述用例图在教务管理系统建模中的应用[J]. 科学与信息化, 2020,3(2): 155-156.
[11]吴亚峰. Android应用案例开发大全(第4版)[M]. 北京:人民邮电出版社,2021:117-121.
[12]Dimarzio J . ANDROID A PROGRAMMERS GUIDE[M]. McGraw-Hill, Inc. 2008.
[13]Razak M , Anuar N B , Salleh R , et al. “Less Give More”: Evaluate and Zoning Android Applications[J]. Measurement, 2018, 133.
[14]Wang J , Jiang Y , Xu C , et al. AATT+: Effectively manifesting concurrency bugs in Android apps[J]. Science of Computer Programming, 2018:S0167642318301047.
[15]殷永峰. 嵌入式软件系统测试:基于形式化方法的自动化测试解决方案[M]. 北京:机械工业出版社,2021:106-107.
[16]陈明. 软件工程学教程[M]. 北京:北京理工大学出版社, 2013: 248-259.
致 谢
至次,在完成最后一次论文查重后,我的大用户活已经逐渐落下帷幕,开始于19年秋,结束于23年夏。忆往昔峥嵘岁月,感慨万千,不知所云。
首先,感谢学校。高考之后,我怀着对大学的憧憬,进入了大学,享受着学校给予的丰富的教育资源和良好的学习氛围。完成大学四年所有的课程。
“望子成龙,望女成凤”是每一个父母的梦想。求学死在而无后顾之忧,皆要感谢感谢我的父母,无论是物质还是精神,都受之有愧,养育之恩,无以为报。感谢父母给予我天高任鸟飞的翅膀,我以后也会尽自己所能成为你们的依靠。
“桃李满天下,春晖遍四方”,感谢我的论文指导用户。感谢他给予学习、考研、生活、职场、工作各方面的引导和帮助。他也是真心希望我们好,让我们走的更远的老师。在学习之余,他也会问我们的兴趣爱好和求职意向,做好自己的职业生涯规划,推荐给一些优秀的影视作品和书籍。四年所有教导过我们的老师,风格各异,均让我受益匪浅,我将各位老师的教诲熟稔于心,再次向所有的老师予以由衷的感谢。
人生所贵在知己,四海相邻如骨肉。感谢求学四年路途中遇到的那些志趣相投的人,与你们相处、互助、合作的那些时光,美妙而短暂,而我也将永远铭记于心。特别感谢来自不同地方的室友,大学我们一起生活四年,相处和睦。离别之际,愿各位能够奔波忙碌于自己的爱好之中,相逢依旧如故。
长风破浪会有时,直挂云帆济沧海。回顾大学四年,迷茫过,遗憾过,努力过,总感觉差强人意。我曾游于漆黑幽静的夜晚,也受困于凌晨两点的自习室,但却阻挡不了向前的脚步。我也很感谢自已虽然屡战屡败,却也从未放弃。感谢在这里的每一段经历,让自己所迈的每一步都会更加坚定,愿自己怀揣梦想,带着坚定的意志,攀向更高的山峰。
最后,希望疫情早日褪去,母校越来越好,各师生所念皆所得。