- 个人理财项目的项目建设目标如下:
- 完成用户注册、登录、用户唯一性验证、记账管理、预算管理、个人信息、修改密码等功能,实现完整的理财流程。
运行环境
1.系统硬件环境
(1)服务器端
名称 | 配置 | 数量 | 运行环境 | 备注 |
应用服务器 | Dell R815 标配 | 1 | Windows Server |
(2)客户端
无特别要求,当前主流PC台式机即可。
2.系统软件环境
(1)服务器端
序号 | 名称 | 备注 |
1 | Windows Server | 操作系统 |
2 | MYSQL | 关系型数据库 |
3 | IDEA | 应用中间件 |
4 | JDK 1.8 | 开发工具包 |
5 | maven | 自动化构建工具 |
6 | NavicatPremium12 | 数据库开发管理工具 |
7 | redis | 非关系型数据库 |
8 | rabbitmq | 消息代理 |
(2)客户端
序号 | 名称 | 备注 |
1 | postman | 测试软件 |
股民投资者:这些用户经常进行股票、基金和其他证券产品的交易和投资。他们可能对实时市场信息、行情分析和投资组合管理等功能有较高的需求。
理财规划者:这些用户注重财务规划和目标达成,希望通过合理配置资产、制定预算计划和追踪支出来实现财务目标。他们可能需要投资组合管理、预算规划、理财建议等功能。
债务管理者:这些用户关注债务管理、还款计划和利息支出,希望有效管理借贷并降低负债风险。他们可能需要债务追踪、还款提醒、利息计算等功能。
理财新手:这些用户对个人理财知识相对不熟悉,希望获取入门指导和基础知识。他们可能需要理财知识教育、基础投资工具和学习辅助等功能。
总体架构
为了满足平台要求,系统采用B/S架构。
系统架构通过分层思想进行设计,架构中的各个层次,是依据各个部分在整个系统中的角色定位确定的,重点考虑层内的高内聚性,层间的低耦合性,每层只关心本身的问题域,并向上一层次提供资源或者服务,这样单个层的变化只影响到其本身,而不会影响其他的层次,保证系统的灵活性。
个人理财系统架构图如下:
图1 个人理财系统架构图
上图展示了该项目的层次系统技术架构。在该结构中,标准规范和安全保障体系贯穿于每个层次。
- 基础设施
包括网络设施、硬件平台(如服务器、磁盘阵列等)、和操作系统等,是本项目建设的基础软硬件平台。
基础层是个人理财系统运行的基础环境,本次项目将依托于保密性较高的网络区进行构架,软硬件基础环境主要包括数据库服务器、应用服务器、网络设备、测试工具、安全设备和机制等硬件以及操作系统、Mysql、Java+IDEA应用中间件、后端开发框架等软件组成。
- 服务层
不在本次项目建设范围中。是业务系统的核心支撑部分。确保业务应用系统的快速开发,稳定可靠运行。业务支撑层系统框架将系统中的共性功能抽象、封装并统一解决,提供简单、易用的编程接口。框架使开发人员可以将主要精力集中在业务逻辑,而不是复杂的底层技术实现。业务支撑系统框架的主要功能包括提供各类应用程序的支撑功能,非结构化文档(如研究报告、学术期刊、上报资源)的采集、价格、数据挖掘功能,以及其他系统运行监控功能等。从技术上来讲,该平台有以下特点:
- 支持HTTP协议,支持对其他协议的扩展;
- 为系统提供单一入口,统一处理HTTP的请求,并将请求按规则分发;
- 统一提供:安全、事务、日志、报表、打印、缓存、异常等服务;
- 提供组件无关性支持,使相同的业务逻辑被发布成不同的业务组件类型(POJO、EJB、WebService等)时不需要更改代码,只需修该配置文件即可;
- 提供持久化服务及O/R Mapping功能;
- 提供最基本的系统管理组件,如报表引擎、全文检索引擎以及数据交换和整合等功能,简化应用系统开发的过程,提高工作效率。而且在将来应用系统开发的过程中,也可以提取和积累各种通用组件,增强系统功能。
- 支持组件和插件技术。
- 业务层
本次项目建设的内容。主要是实现系统业务功能。业务应用系统将被封装成很多业务功能子系统,包括用户管理、账单管理、预算管理等子系统。其中用户管理包括实现用户注册、登录、身份验证和密码重置等功能,账单管理包括对账单的数据进行控制。业务应用层主要采用接口隔离的设计方法,保证组件的内部修改不影响整个系统的其他层次。
- 表现层
本次项目建设的内容,提供三个子系统的接口,都有增删改查功能,能根据前端地址传输的数据在后端执行相应的操作然后把数据库的结果返回给前端展示从而运行不同的功能效果。
部署需求
- 个人理财系统需求分析
2.1需求概述
2.1.1系统功能架构
个人理财系统建设内容包括建设内容包括用户注册、登录、删除、查询,账单的增删改查,预算的增删改查;
个人理财功能结构图如下:
图1 个人理财系统功能结构图
2.1.2系统角色职责
医药电商系统功能主要角色及职责如下所示:
序号 | 角色 | 职责 |
1 | 前台用户 |
|
2 | 后台用户 |
|
2.2前台用户
2.2.1前台用户管理
2.2.1.1业务描述
前台用户的注册、登录、查看信息、修改信息功能。因为用户名是唯一的,在注册时需要检测用户名的唯一性。
用户管理具体功能如下:
- 注册用户
增加一个新的用户,用户信息包括:用户名、用户id、密码、手机、邮箱等等。
- 用户名唯一检测
检测输入的用户名是否已存在,在注册时需要检测。
- 登录
用户在前台系统登录,登录信息包括:用户名、密码、确认密码。
- 查看个人信息
用户查看具体个人信息,用户在前台系统输入用户名,密码可以查看。
- 修改个人信息
用户可以修改自己信息,用户在前端输入用户名和密码可以去修改任意信息但要控制好参数位置。
前台用户对记账的添加信息、查看信息、删除信息、修改信息功能。
- 添加信息
用户在前端输入相关的信息去完成添加记账信息。
- 查看信息
用户在前端输入相关的信息去查看相应的记账信息。
- 删除信息
用户在前端输入相关的信息去完成删除对应的记账信息。
- 修改信息
用户在前端输入相关的信息去完成修改相应的记账信息。
前台用户对预算的添加信息、查看信息、删除信息、修改信息功能。
- 添加信息
用户在前端输入相关的信息去完成添加预算信息。
- 查看信息
用户在前端输入相关的信息去查看相应的预算信息。
- 删除信息
用户在前端输入相关的信息去完成删除对应的预算信息。
- 修改信息
用户在前端输入相关的信息去完成修改相应的预算信息。
2.2.1.2 功能分析
用户管理的主要操作者是前台用户。
用例说明如下:表示预算等模块具体拥有的功能。
2.2.1.1.1注册用户
使用案例名称 | 注册用户 | |
主题领域 | 用户管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以注册用户账号 | |
先决条件 | 前台用户还没有用户账号 | |
终止结果 | 说明 | 影响终止结果的条件 |
注册 | 点“确认注册” | |
案例说明 | 前台用户进入用户注册模块,填写用户相关信息,点击【确认注册】,即完成了用户的添加; | |
相关案例 | 注册,添加用户,用户唯一性 | |
追朔至 | ||
业务规则 | 用户名由4位以上字符构成; 密码由英文+数字+特殊字符组成,最小长度6位; 必须检测用户名是否唯一 | |
输入概述 | 用户的基本信息 | |
输出概述 | 添加用户信息 | |
案例注解 |
2.2.1.1.2修改用户
使用案例名称 | 修改用户 | |
主题领域 | 用户管理 | |
行为角色 | 系统管理员 | |
案例简述 | 系统管理员可以修改用户的基本信息 | |
先决条件 | 系统管理员登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
输入要修改的用户相关信息 | 点”保存” | |
案例说明 | 1)系统管理员进入用户管理模块,查询到要进行修改的用户,点修改,开始修改用户基本信息; 2)输入要进行修改基本信息; 3)点保存,修改完成。 | |
相关案例 | 新增用户、删除用户、设置用户属性 | |
追朔至 | ||
业务规则 | ||
输入概述 | 用户登录id、显示名称、联系方式等 | |
输出概述 | 用户信息被修改 | |
案例注解 |
2.2.1.1.3删除用户
使用案例名称 | 删除用户 | |
主题领域 | 用户管理 | |
行为角色 | 系统管理员 | |
案例简述 | 系统管理员可以删除用户 | |
先决条件 | 系统管理员登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
删除用户 | 点“删除” | |
案例说明 | 系统管理员进入用户管理模块,查询到要进行修改的用户,点删除,即完成了用户的删除; | |
相关案例 | 新增用户、修改用户、设置用户属性 | |
追朔至 | ||
业务规则 | ||
输入概述 | 用户登录id,显示相关信息。 | |
输出概述 | 用户信息被删除 | |
案例注解 |
-
-
-
-
- 增加账单信息
-
-
-
使用案例名称 | 增加账单信息 | |
主题领域 | 账单管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以增加账单信息 | |
先决条件 | 前台用户登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
增加账单信息 | 点“增加” | |
案例说明 | 前台用户进入账单添加模块,填写账单相关信息,点击【增加】,即完成了新账单信息的添加; | |
相关案例 | 新增账单、修改账单 | |
追朔至 | ||
业务规则 | ||
输入概述 | 输入账单信息 | |
输出概述 | 添加成功 | |
案例注解 |
-
-
-
-
- 删除账单信息
-
-
-
使用案例名称 | 删除账单信息 | |
主题领域 | 账单管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以删除账单信息 | |
先决条件 | 前台用户登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
删除账单信息 | 点“删除” | |
案例说明 | 前台用户进入账单删除模块,填写账单id,点击【查询】,查询到相关信息,点击【删除】,即完成了账单信息的添加; | |
相关案例 | 新增账单、修改账单 | |
追朔至 | ||
业务规则 | ||
输入概述 | 输入账单id | |
输出概述 | 删除成功 | |
案例注解 |
-
-
-
-
- 修改账单信息
-
-
-
使用案例名称 | 修改账单信息 | |
主题领域 | 账单管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以修改账单信息 | |
先决条件 | 前台用户登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
修改账单信息 | 点“修改” | |
案例说明 | 前台用户进入账单修改模块,填写账单id,点击【查询】,查询到相关信息,然后修改相关信息,点击【修改】,即完成了账单信息的修改; | |
相关案例 | 新增账单、修改账单 | |
追朔至 | ||
业务规则 | ||
输入概述 | 输入账单id,输入需修改的账单信息 | |
输出概述 | 删除成功 | |
案例注解 |
-
-
-
-
- 查询账单信息
-
-
-
使用案例名称 | 查询账单信息 | |
主题领域 | 账单管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以查询账单信息 | |
先决条件 | 前台用户登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
查询账单信息 | 点“查询” | |
案例说明 | 前台用户进入账单查询模块,填写账单id,点击【查询】,查询到相关信息,即完成了账单信息的查询; | |
相关案例 | 新增账单、修改账单 | |
追朔至 | ||
业务规则 | ||
输入概述 | 输入账单id | |
输出概述 | 输出账单信息 | |
案例注解 |
-
-
-
-
- 增加预算信息
-
-
-
使用案例名称 | 增加预算信息 | |
主题领域 | 预算管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以增加预算信息 | |
先决条件 | 前台用户登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
增加预算信息 | 点“增加” | |
案例说明 | 前台用户进入预算增加模块,填写预算相关信息,点击【增加】,即完成了预算信息的增加; | |
相关案例 | 新增预算、修改预算 | |
追朔至 | ||
业务规则 | ||
输入概述 | 输入预算相关信息 | |
输出概述 | 增加成功 | |
案例注解 |
-
-
-
-
- 删除预算信息
-
-
-
使用案例名称 | 删除预算信息 | |
主题领域 | 预算管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以删除预算信息 | |
先决条件 | 前台用户登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
删除预算信息 | 点“删除” | |
案例说明 | 前台用户进入预算删除模块,填写预算id,点击【删除】,即完成了预算信息的删除; | |
相关案例 | 新增预算、修改预算 | |
追朔至 | ||
业务规则 | ||
输入概述 | 输入预算id | |
输出概述 | 删除成功 | |
案例注解 |
-
-
-
-
- 修改预算信息
-
-
-
使用案例名称 | 修改预算信息 | |
主题领域 | 预算管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以修改预算信息 | |
先决条件 | 前台用户登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
修改预算信息 | 点“修改” | |
案例说明 | 前台用户进入预算修改模块,填写预算信息id,点击【查询】,输入需修改的信息,即完成了预算信息的修改; | |
相关案例 | 新增预算、修改预算 | |
追朔至 | ||
业务规则 | ||
输入概述 | 输入预算相关信息 | |
输出概述 | 增加成功 | |
案例注解 |
-
-
-
-
- 查询预算信息
-
-
-
使用案例名称 | 查询预算信息 | |
主题领域 | 预算管理 | |
行为角色 | 前台用户 | |
案例简述 | 前台用户可以查询预算信息 | |
先决条件 | 前台用户登录系统 | |
终止结果 | 说明 | 影响终止结果的条件 |
查询预算信息 | 点“查询” | |
案例说明 | 前台用户进入预算查询模块,填写预算信息id,点击【查询】,输入需修改的信息,即完成了预算信息的查询; | |
相关案例 | 新增预算、修改预算 | |
追朔至 | ||
业务规则 | ||
输入概述 | 输入预算id | |
输出概述 | 查询成功,输出查询信息 | |
案例注解 |
3非功能性需求分析
对系统的需求除了功能性需求外,在系统建设中需要考虑对相关性能指标的支持。
性能需求主要包括三个方面:
1、并发访问量
系统需要能够支持100个并发用户,并且在最大并发用户访问时,并不影响页面的访问效率。
2、页面响应速度
对简单查询页面操作的响应速度不能超过5秒钟,对复杂查询页面操作的响应数据不超过15秒,简单汇总时间不超过30秒,复杂汇总时间不超过3分钟。
具体指标要求如下:
在满足上面具体性能要求的同时,在系统设计中还要考虑系统的可用性和可扩展性,可用性主要是保证系统能够稳定运行,对Web Server、应用服务器和数据库保障系统高可用性,建立备份机制,保障在系统发生故障时,能够尽快恢复。可扩展性要求建立基础的平台框架,在此基础上可以方便的增加需要的内容。
人机交互界面友好,符合用户的业务习惯,检索、查询简便快捷,输入、输出方便。包括:
- 直观的界面设计:系统界面简洁明了,布局合理,操作流程清晰。用户能够快速找到所需功能和信息,减少学习成本。
- 用户友好的导航和操作:系统提供易于理解和使用的导航菜单、按钮、链接等元素,用户可以轻松地浏览不同页面和模块,进行账户管理、记账、预算设定等操作。
- 全面且灵活的功能:系统提供多种功能模块,包括账户管理、资产记录、支出管理、收入管理、预算设定、报表统计等。每个功能模块都具备完整的功能和操作选项。系统还应支持多种账户类型和分类方式,以及自定义标签等,使用户能够个性化管理和分析财务数据。
- 实时数据更新和同步:系统能够及时更新和同步用户的财务数据,如银行交易记录、投资回报等。用户可以随时查看最新的财务状况,实时掌握自己的资产和支出情况。
- 强大的数据分析和报表功能:系统可生成详尽的财务报表和图表,用于展示资产总览、收支走势、预算分析等。用户可以通过报表和图表深入理解个人财务情况,做出合理的理财决策。
- 数据安全和隐私保护:系统采取有效的加密和身份验证措施,保护用户的个人财务数据不被非法获取。
从应用的角度设计系统的安全,保证系统的安全。运行环境依托海淀分局现有的安全环境。
整个系统安全设计中要考虑的主要因素包括:
- 物理安全
从机房环境和通信线路等方面,保护网络和计算机设备以及其它媒体和设施免遭地震、水灾、火灾等环境事故、人为操作的破坏以及机密信息的泄露。
- 系统安全
从网络平台、计算机系统平台和应用系统支撑软件三个层次上,使系统能够稳定可靠地运行。
- 信息安全
保证信息在存储和传输中安全保密和完整。
- 安全管理
建立一套安全管理体系、规章制度。
系统必须确保所有数据的安全,任何用户不能直接存取本系统数据库数据;数据库敏感数据(密码等)要求加密处理;必须确保数据接口的安全,不能破坏其他运营系统数据;确保数据传输安全。
要尽量简化系统管理维护的难度,统一身份和角色管理。部门内人员调配、权限分配可由管理用户进行调整。所有的功能应能在本项目范围内定义和使用。日常系统维护工作的管理界面简单、易操作。
系统采用J2EE架构,保证系统能跨平台运行,可以运行在各种操作系统平台上,如UNIX、 Linux、Windows等平台。
系统采用J2EE架构,具有可扩展性,能够随业务量增加,通过增加硬件、部署集群系统和异地设点等措施提高性能。
- 接口测试
图1.财务表删除数据
图2.财务表更新数据
图3查询财务表数据
图4.添加财务表数据
图5.删除用户表信息
图6.删除预算表的信息
图7.更新预算表的信息
图8.查询预算表的信息
图9.添加预算表的信息
图10.更新用户表的信息
图11.添加用户表的信息
图12.查询用户表的信息
图13.用户登录功能
图14.用户注册功能
- 总结
总的来说,在这次企业实训中我的收获具体有以下几点:
1.首先熟悉了Spring框架的核心概念和特性,包括依赖注入(Dependency Injection)、面向切面编程(Aspect Oriented Programming)、控制反转(Inversion of Control)等。掌握Spring的基本原理和用法。
2.尝试根据需要设计合适的数据库模型来存储用户的财务数据。考虑到个人理财系统的需求,可以设计用户账户表、收支记录表等。
3.做到了根据项目的需求,编写相应的业务逻辑,如用户注册登录、收支记录管理等功能。其中利用Spring框架提供的依赖注入和面向切面编程等特性,可以更轻松地实现这些功能。
4.学习并利用了Spring框架的数据访问模块(MyBatis等),将数据库操作集成到系统中。通过定义数据访问接口或配置映射关系,实现对数据库的增删改查操作。
5.学习系统的编写适当的单元测试和集成测试用例,验证系统各组件的正确性和稳定性。并理解了借助Spring框架去更方便地进行单元测试和集成测试。