个人财务管理系统设计与实现
这里是分享个人的一份“个人财务管理系统”的设计报告,详细的介绍了整个项目的各个部分。
1 绪论
1.1 个人财务管理系统的研究背景与意义
随着中国经济的快速发展,无论是企业或是个人,各个环节都已经进入了金融化领域。在经济化潮流和金融危机的影响下,社会群体和个人越来越注重于理财软件和理财产品的需求,在方兴未艾的计算机时代,计算机的相关技术为软件管理提供了强大的支持,再加上社会群体与个体对于软件的需要日益增加,各种理财软件应运而生。而在市场化财务管理软件的产生过程中,大多以面向企业的特定用户需求的软件,而针对于个人财务管理软件的数量是较少的,而面向于当代大学生的理财管理软件是少之又少。
大学生个人理财的主要对象不像企业那样,是企业的资产和资本这些大量的资金,个人的理财对大多数的人来说就是对个人收入的支配与规划。在金融市场化的浪潮中,个人有效的管理自己的资产金额,能够提高资金的使用率,优化消费方式,改变不合理的消费现象,有助于收入的有效增值,树立正确的消费观,而针对于大学生来讲,作为理财的新兴主体,其理财具有较大的特殊性,其只有学习并掌握了财务管理的相关内容,才能够运用财务管理的基本方法筹措、运用、核算资金,达到实现个人理想、提升生活品质、丰富生活的目标。
而财务管理系统与传统手工的记账方式相比较,个人财务管理系统更加注重于电算化的管理,优化记账方式,减少记账中的错误信息,并能快速对消费结构进行分析与整合。
1.2学生的个人财务管理现状
针对当代大学生这个特殊的群体,在没有任何收入来源的前提下,却在金融经济的浪潮中与金融产生了密不可分的关系,因此对于消费和理财观念的正确认识成为现今大学生比不缺少的素质。而大学生理财意识淡薄,没有树立正确的消费观,盲目的花费金钱的现象屡屡皆是,不正确的消费观导致学生消费时盲目攀比,个人生活所需金钱数额巨大,而对于这些盲目消费所用的金额却没有明确的消费去向,致使大学生控制自身的某项支出,但却未起到实质性作用。
部分大学生采用传统手工方式进行记账,但不具有实质的效果,对于记账的记录信息只停留在纸张记录,并不具备消费观的指导与指引作用,没有为自身正确的消费观念的确立提供一些积极有效的作用,与此同时,大学生面对厚重的记录,在记录的过程中存在多记、少记、漏记、丢失等现象,对于金额消费的管理缺乏合理有效的方法,而这些记录仅限于记录的功能,不能有行之有效的方式将其数据进行系统化、理论化的分析,并反馈给大学生自身消费特点以及消费结构,不能以图表等形式直观反应出大学生消费带来的弊端以及统计查询出哪一项支出占有绝大比重,从而不能达到财务管理的作用。
2 个人财务管理系统分析
2.1 可行性分析
在新系统的开发之前,要进行系统的可行性研究,主要包括操作可行性、经济可行性和社会可行性等3个方面。
1)操作可行性研究
技术发展是当今时代经济进步的一大表现,先进的软件技术、数据库技术和网络技术作为计算机技术的主要部分已在现今时代进行广泛的发展,这为本系统的开发提供了坚实有力的技术后盾。本系统采用基于android开发的大学生个人财务管理的架构,android开发平台在现今社会发展中占有重要的比重,开发环境采用微软公司的Eclipse开发软件,数据库选择微软公司的SQL Server2005,应用成熟的技术增加计算机软件技术可行性。而本系统基于简单地设计开发原则,开发任务与开发难度均较小,不具有技术上的挑战,在操作上具备可行性。
2)经济可行性研究
本系统初步估计项目开发时间为1个星期时间,项目完成后应用于简单地项目分享。根据回收期的计算公式:
分析得出经济投资无,不占用金钱数额,仅限个人开发使用,没有必要考虑经济方面的付出与投入,不需要完成对于系统后期的维护与整修,所以在经济上具有可行性。
3)社会可行性研究
由于用户使用者为大学生,用户计算机水平相对较高,本系统开发采用的系统配置能够支持本系统开发使用者的合理使用。并且本系统规模较小,功能较为单一,符合大学生个人财务管理的特点,不具有违反现今法律规定的要求,不存在于法律相抵触的内容,因此在社会与法律上具有可行性。
基于以上3方面,本系统的开发是可行的。
2.2 需求分析
系统需求分析在整个信息系统的开发与设计中起着至关重要的作用。需求分析完整将便于系统设计阶段以及实施阶段,系统分析阶段解决的问题是“做什么”的问题,若在需求分析过程中不能将系统研发的目的以及功能完整的分析,在系统设计阶段将进行错误的设计,实施阶段将进行错误的代码编写以及实现,整个系统将陷于瘫痪。好的软件有一个好的系统分析,在分析基础上,确保软件的开发满足用户的要求,便于用户使用软件,并能够在系统测试与系统维护中提供便利。良好的分析,将简化设计阶段工作量以及工作难度,并能为系统的成功研发提供一个坚实有力的基础。
1.业务需求
(1)记账功能:用户可通过软件进行记账处理,通过外来的单据作为入账依据,将用户日常收入支出借入借出进行详细的记录;
(2)账户管理功能:用户可进行个人账户的修改,完善个人资料,形成私人记账本;
(3)银行账户管理:用户可自行进行银行卡账户的管理;
(4)查询功能:用户可通过软件对日常账务处理进行查询;
(5)统计汇总功能:用户可通过软件将日常的账务处理进行汇总统计,按照不同时间以及不同统计图进行汇总统计。
2.用户需求
(1)功能需求
学生的个人财务管理主要针对于学生的金钱管理的一款软件,涉及到以下7个基本模块:
①账户的管理(包括用户的注册、登录与退出);
②个人资料的管理(包括账户详细信息与银行卡管理);
③收入与支出管理(包括学生总收入与各种支出的增加、删除、修改与查询);
④借入借出管理(包括学生生活中借入金额与借出金额的管理);
⑤查询功能(包括按不同收支类型查询、按时间查询功能);
⑥预算功能(包括预算的类型、对比各月份之间预算);
⑦统计分析功能(统计各种收入与支出所占比例、统计不同月份收入与支出所占比例)。
(2)用户处理需求
在实现学生个人财务管理软件的同时,应注意到系统本身的特点以及需要注意的基本设计实现:
①实现用户友好性界面。在设计整个系统的过程中注意界面的友好性,交互性较强,合理的设置用户提醒,方便用户使用软件;
②实现美观化。相比于其他专业性质较强的财务管理系统来讲,大学生个人财务管理系统相对简单化与功能单一化,应更加注重界面的美观效果。符合用户特点,设计较为美观的系统界面;
③账户的安全性。在设计系统的过程中,应注重账户与密码的安全性设置,在使用软件的过程中,防止信息的泄露;
④设置符合大学生自身特点的软件功能。基于大学生的特点,在设计软件过程中,着重于设计符合大学生生活学习的软件功能,使软件的针对性更为明显。
3.功能需求
(1)增加:将对数据库进行增加操作,将已填列的数据增加到数据库中;
(2)修改:将对已有的数据进行修改,修改过程中,需要判断业务是否发生存在已有记录;
(3)删除:将对数据库进行删除操作,清空账户信息;
(4)查询:便于用户统计查看账务信息,将对数据库中记录值进行查询。
2.3 业务流程分析
根据大学生身份的特点、消费观念、消费类型以及其相应的特点和大学生理财软件的功能需求进行业务需求分析,将大学生个人财务系统的功能流程进行详细的流程设计,以图示的形式展现出,展现了不同用户在操作过程中可能面对的问题或者是可能进行的操作,绘制了如图2-1所示的业务流程图。
2.4 数据流程分析
从业务流程图中我们可以分析出业务功能的分类以及数据流的去向,根据实体之间的联系,确定外部实体与数据流以及数据存储之间的关系,通过分析U/C功能矩阵类划分功能模块,确定大学生财务管理系统主要的信息管理功能:注册登录管理、个人资料维护管理、银行账户资料维护管理、收入支出类型管理、收入支出管理、借入借出管理、图表显示查询管理功能。由于数据流程图详细的反映数据流向,由此绘制出大学生财务管理系统顶层和第一层的数据流程图,如图2-2和图2-3。
图2-2 学生个人财务管理系统数据流程图顶层
图2-3 学生个人财务管理系统数据流程图第一层
如第一层数据流程图所示,将学生个人财务管理系统划分为10个模块,分别为P1注册登录管理、P2个人资料维护、P3账户资料管理、P4收支类型管理、P5收入支出管理、P6预算管理、P7借入借出管理、P8借入借出提醒、P9汇总统计管理、P10查询管理。将以上管理模块继续向下分解,将数据流程图细化为顶层流程图。
图2-4 学生个人财务管理系统数据流程图底层P1
图2-5 学生个人财务管理系统数据流程图底层P2
图2-6 学生个人财务管理系统数据流程图底层P3
图2-7 学生个人财务管理系统数据流程图底层P4
图2-8 学生个人财务管理系统数据流程图底层P5
图2-9 学生个人财务管理系统数据流程图底层P6
图2-10 学生个人财务管理系统数据流程图底层P7
图2-11 学生个人财务管理系统数据流程图底层P8
图2-12 学生个人财务管理系统数据流程图底层P9
图2-13 学生个人财务管理系统数据流程图底层P10
2.5 数据字典
数据流程图描述了系统的分解,即描述了系统由哪几部分构成,各部分之间的联系,但还没有说明系统中各个成分的含义。而数据字典是对数据流程图的补充说明,用来描述数据流程图中的数据流、数据存储、处理过程和外部实体,数据字典将数据的最小组成单位看成是数据元素,若干个数据元素可以组成数据结构(组合数据项)。
建立数据字典虽然任务量较大,但这是一项必不可少的工作,数据字典在系统开发中具有十分重要的意义,不仅在系统分析阶段,而且在整个研制过程中以及今后的系统运行中都要使用它。
表2-1 数据元素
编号 |
名称 |
别名 |
说明 |
类型 |
范围 |
长度 |
有关数据结构 |
1-01 |
账号 |
U-name |
用户登录本系统的账号 |
字符 |
Xxxxxxxxxxx |
10 |
个人资料维护表 |
1-02 |
密码 |
U-passdword |
用户登录本系统的账号的对应的密码 |
字符 |
xxxxxxx |
6 |
个人资料维护表 |
1-03 |
性别 |
sex |
用户的性别 |
字符 |
|
1 |
个人资料维护表 |
1-04 |
年龄 |
age |
用户的年龄 |
字符 |
|
3 |
个人资料维护表 |
1-05 |
银行卡号 |
C-number |
用户绑定的银行卡号 |
字符 |
Xxxxxx |
6 |
账号信息 |
1-06 |
银行卡密码 |
C-password |
用户银行卡对应的密码 |
字符 |
|
6 |
账号信息 |
1-07 |
银行卡余额 |
C-money |
银行卡内的余额 |
字符 |
|
20 |
账号信息 |
1-08 |
收入金额 |
S-money |
用户银行卡的收入的金额 |
字符 |
|
20 |
收入记录、账户余额 |
1-09 |
收入类型 |
S-type |
用户银行卡收入资金的类型 |
字符 |
|
10 |
收入记录 |
1-10 |
收入时间 |
S-time |
用户银行卡收入资金的时间 |
字符 |
Xxxxxxxx-Xxxxxxxx |
10 |
收入记录 |
1-11 |
支出金额 |
Z-money |
用户银行卡的支出的金额 |
字符 |
|
20 |
支出记录、账户余额 |
1-12 |
支出类型 |
Z-type |
用户银行卡支出资金的类型 |
字符 |
|
10 |
支出记录 |
1-13 |
支出时间 |
Z-time |
用户银行卡支出资金的时间 |
字符 |
Xxxxxxxx-Xxxxxxxx |
10 |
支出记录 |
1-14 |
借入金额 |
JR-money |
用户借入资金的金额 |
字符 |
|
20 |
借入记录、账户余额 |
1-15 |
借入类型 |
JR-type |
用户银行卡借入资金的类型 |
字符 |
|
10 |
借入记录 |
1-16 |
借入时间 |
JR-time1 |
用户借入资金的时间 |
字符 |
Xxxxxxxx-Xxxxxxxx |
10 |
借入记录 |
1-17 |
还款时间 |
JR-time2 |
用户借入资金后还款的时间 |
字符 |
Xxxxxxxx-Xxxxxxxx |
10 |
借入记录 |
1-18 |
借出金额 |
JC-money |
用户借出的资金金额 |
字符 |
|
20 |
借出记录、账户余额 |
1-19 |
借出类型 |
JC-type |
用户资金借出的类型 |
字符 |
|
10 |
借出记录 |
1-20 |
借出时间 |
JC-time1 |
用户借出资金的时间 |
字符 |
Xxxxxxxx-Xxxxxxxx |
10 |
借出记录 |
1-21 |
收款时间 |
JC-time2 |
用户借出资金后收款的时间 |
字符 |
Xxxxxxxx-Xxxxxxxx |
10 |
借出记录 |
1-22 |
预算金额 |
Y-money |
用户预算的资金金额 |
字符 |
|
20 |
预算记录、账户余额 |
1-23 |
预算类型 |
Y-type |
用户预算的类型 |
字符 |
|
10 |
借出记录 |
1-24 |
预算时间 |
Y-time |
用户制定该预算的时间 |
字符 |
Xxxxxxxx-Xxxxxxxx |
10 |
借出记录 |
表2-2 数据结构
编号 |
名称 |
说明 |
结构 |
有关数据流 |
2-01 |
个人详细信息 |
用于记录个人账户中的资料信息 |
姓名+账号+密码+头像+所在学校+个性签名 |
F01个人信息、D1个人资料维护 |
2-02 |
账户信息 |
用户记录银行账户信息资料 |
账户信息编号+账户资料(银行卡号+持卡人姓名+开户银行)+账户余额+账户之处记录+账户收入记录 |
F03卡号信息、D2收入记录、D3支出记录、F09未删除成功的记录 |
2-03 |
借款信息 |
用于记录借入借出的信息 |
借款人+借款金额+借款日期+是否超过预算+还款日期 |
F11借入记录、F14借出记录、D4借入记录、D5借出记录 |
2-04 |
收入类型 |
用于描述收入的类型 |
收入类型名称+收入类型编号 |
F16收入类型、D7收入类型 |
2-05 |
支出类型 |
用于描述支出的类型 |
支出类型编号+支出类型名称 |
F17支出类型、D8支出类型 |
2-06 |
预算记录 |
用于描述预算信息 |
收入类型+支出类型+收入金额+支出金额+预算信息(预算时间+预算记录编号+是否拦截) |
F19预算记录、D4预算记录 |
2-07 |
借入提醒 |
记录用户借入提醒 |
借入记录编号+提醒日期+借入金额+借款人 |
F26增加借入提醒、D12借入借出提醒 |
2-08 |
借出提醒 |
记录用户借出提醒 |
借出记录编号+提醒日期+借出金额+借出人 |
F27增加借出提醒、D12借入借出提醒 |
2-09 |
图表类型 |
用于图表显示借入借出比例 |
图表编号+图表类型+反映收入支出记录+反映借入借出记录 |
F30图表反馈、D14图表 |
2-10 |
查询条件 |
记录用户所查询条件 |
查询条件编号+查询类型 |
F31查询条件 |
2-11 |
查询类型 |
记录用户所查询的类型 |
查询类型编号+查询类型名称 |
F32查询类型 |
2-12 |
记录明细 |
记录明细信息 |
卡号+金额+收支类型+时间 |
D15删除记录明细表 |