基于Android的个人记账系统分析与设计本科毕业设计论文

上传人:1777****777 文档编号:39555602 上传时间:2021-11-11 格式:DOC 页数:57 大小:1.18MB
收藏 版权申诉 举报 下载
基于Android的个人记账系统分析与设计本科毕业设计论文_第1页
第1页 / 共57页
基于Android的个人记账系统分析与设计本科毕业设计论文_第2页
第2页 / 共57页
基于Android的个人记账系统分析与设计本科毕业设计论文_第3页
第3页 / 共57页
资源描述:

《基于Android的个人记账系统分析与设计本科毕业设计论文》由会员分享,可在线阅读,更多相关《基于Android的个人记账系统分析与设计本科毕业设计论文(57页珍藏版)》请在装配图网上搜索。

1、天津城市建设学院本科毕业论文基于Android平台的个人记账系统分析与设计The Personal Accounting System Analysis and Design Based on the Android Platform学生姓名:林鑫学生学号:08580103专业名称:信息管理与信息系统指导教师:刘 巍经济与管理学院2012年6月15日独创性声明本人声明所呈交的毕业设计(论文)是本人在指导教师指导下进行的研究工作和取得的研究成果,除了文中特别加以引用标注之处外,论文中不包含其他人已经发表或撰写过的研究成果,没有伪造数据的行为。毕业设计(论文)作者签名: 签字日期: 年 月 日毕业

2、设计(论文)版权使用授权书本毕业设计(论文)作者完全了解学校有关保留、使用论文的规定。同意学校保留并向有关管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权天津城市建设学院可以将本论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文。(保密的毕业设计(论文)在解密后适用本授权说明)毕业设计(论文)作者签名: 指导教师签名:签字日期: 年 月 日 签字日期: 年 月 日目 录第 1 章 绪论11.1 个人理财与记账11.1.1 个人理财简述11.1.2 个人记账简述11.2 移动记账应用11.2.1 移动记账应用的意义21.2.2 移动

3、记账的特点21.2.3 移动记账应用现状21.3 关键技术51.3.1 面向对象方法51.3.2 Android移动操作系统51.3.3 Java程序设计语言51.3.4 SSH2系统框架61.3.5 db4o对象型数据库61.4 可行性研究及结论61.4.1 必要性分析61.4.2 技术可行性71.4.3 经济可行性71.4.4 社会可行性71.4.5 可行性研究结论8第 2 章 系统分析92.1 需求分析92.1.1 常用记账方式92.1.2 功能性需求92.1.3 非功能性需求102.2 用例模型102.2.1 识别参与者102.2.2 确定用例102.2.3 确定用例关系112.2.4

4、 描述用例规约122.3 分析模型182.3.1 类图182.3.2 顺序图22第 3 章 系统设计293.1 系统架构293.2 分析模型的细化293.2.1 添加边界类293.2.2 添加实体类303.2.3 边界类详细设计313.2.4 重新绘制类图333.2.5 重新绘制顺序图373.2.6 系统包图423.3 对象持久化与数据库设计44第 4 章 系统实施464.1 系统实施的准备工作464.1.1 系统硬件准备464.1.2 系统软件准备464.1.3 系统人员培训464.1.4 系统数据准备464.2 系统功能实现46致 谢47参考文献48附 录49附件一:综述50附件二:英文翻

5、译51英文原文52第1章 绪论第 1 章 绪论1.1 个人理财与记账1.1.1 个人理财简述人们的生活与消费息息相关,有消费就会有钱财的流动,那么如何管理好自己的钱财,做到花有头,存有绪,个人理财也就成为了人们愈发急需的个人能力之一。有句话说得好,“你不理财,财不理你”。如果你希望自身的财务状况能够良好、健康可持续的发展,学会理财是十分必要的。个人理财,是在对个人收入、资产、负债等数据进行分析整理的基础上,根据个人对风险的偏好和承受能力,结合预定目标运用诸如储蓄、保险、证券、外汇、收藏、住房投资等多种手段管理资产和负债,合理安排资金,从而在各个人风险可以接受范围内实现资产增值的最大化的过程1。

6、宏观概念的生涩,使得大部分人对理财望而却步,但其实个人理财并没有那么复杂,毕竟在生活中,储蓄和投资并不占据主体,而弱化后的理财,主要是在财富的管理、安排和控制这几方面。每个人都有能力实现个人理财。但是对于大部分人的生活来说,个人理财的概念并没有那么复杂,毕竟储蓄和投资并不占据生活的主体,而弱化后的理财,主要以财富的管理、安排和控制这几方面。1.1.2 个人记账简述随着每个人生活水平和消费水平的不断上升,以及自身财富的积累,越来越多的人开始意识到需要为自己做好理财规划。记账,是理财的第一步,也是最基本的一种理财方式。早在距今几万年前的旧石器时代中晚期,人类的祖先就在石器上使用简单刻记的方式进行财

7、产的记录。可以说,记账甚至是人类最古老的理财方式。从广义上说,记账就是将与自身有关的经济业务按照时间顺序,通过某种形式连续地记录下来,可供日后查看和汇总。通过记账,可以简洁明了的对自身的收入、支出和消费都做到知根知底。让你再也不会问自己:“钱都花哪去了?”。当你学会了记账,会在看到清清楚楚的账单数据,然后痛恨自己一把怎么花了这么多钱;当你学会了记账,会时刻提醒自己要节约从而积累下更多的财富。当然,记账不是任务,也不是通过节约就能达到富裕的生活,只是需要通过记账的手段,达到明白花钱,了解自己哪一部分的消费可控,哪一些是不可控的,哪一部分需要进行调控,哪一部分可以适当加大投入,然后尽量控制进而达到

8、解决需要钱时却没钱的捉襟见肘的境遇。记账是为了理财,也是为了给自己一个提醒,追忆把握金钱的流向!1.2 移动记账应用移动记账应用,指的是那些运行在便携移动设备如手机、平板电脑上的,能够方便、快捷、轻量级的,可随时随地供设备持有者使用的记账应用软件。1.2.1 移动记账应用的意义说起记账,相信大家的脑海里会浮现出多种多样的记账方式。老一辈的人都有使用算盘记账的经历;后来有了计算器,大家就使用笔和账簿辅以计算结果进行记账;到了二十一世纪的信息化时代,电脑软件的普及,使得大家转向了Excel或是其他一些带有强大分析功能的桌面软件进行电脑记账。然而,以上种种方式,都带有时间、空间的限制,不能做到随时随

9、地的记录,延误了最佳的记账时间,或是需要后期拿出大量时间进行账目的统计分析工作,导致人们的记账习惯不能得以延续下去,功亏一篑,更是达不到规划理财的目的。观察身边的同学朋友,消费可观,但是理财能力偏弱的大有人在。他们不是不想进行理财规划,只是没有找到一个合适自己而又便捷有效的记账理财方式。记账需要坚持,只有坚持记账才能发挥作用,但是怎样才能坚持呢?其中最关键的就是要有一个好的工具能帮助你有效的记账,做到随时随地记账这是必须的,而且还能随时随地对你的历史账簿进行查询统计,这样才能有效的控制你的消费,否则想查的时候查不到,想记的时候不能记,那也是白搭!手机是目前最为普及的便携移动设备,具有最为广泛的

10、普遍性,且随着手机操作系统的智能化,以及日益强大的运算功能,移动记账软件的出现,很好地解决了以上种种方式的弊端。有了移动记账,就可以做到真正随时随地、便捷、高效地记账,并且能够随时随地的根据个人需求进行账目的分析统计,根据结果报表对自己的消费进行有效的控制,达到健康理财的目的。1.2.2 移动记账的特点一个好的移动记账软件,必须具备以下特点:(1) 便携性。由于软件是搭载在手机终端上,因此自然而然的拥有了便捷随身移动的特征,能够让用户随时随地的携带着记账工具。(2) 简单性。搭载于移动终端上的记账软件还应做到操作简单,界面简洁,各类用户均能无障碍操作的特性。(3) 高效性。移动记账软件,应做到

11、快捷的启动方式,并能以最快的速度建立收支条目,并将数据存储下来;还能实时地提供报表分析数据,为用户的经济决策做参考。(4) 完整性。除了便捷、高效以外,对于数据的完整、安全做到应有的保障,能够和Web服务器端的数据进行同步。1.2.3 移动记账应用现状由于手机的智能化始于2008年,而智能手机的流行开始于2010年,到目前为止也都有了一定的时间积累,在国内外开发者的努力下,移动应用方面已取得了一定的成果。目前在诸如国外的Google Play和国内的安智市场、应用汇等各大应用商店、市场中都有大量优秀的各类应用供广大用户下载使用。自然,记账理财方面的应用也不例外,也已小有成就。虽说应用的数量不在

12、少数,但是质量可以说是良莠不齐。在这里选择了6个自己试用之后感觉比较有代表性的记账应用(国内、国外各3个)来从各个方面的功能进行简要的对比,对比结果以表格的形式列出,其中以“”实心圆标识表示具有该项功能,而空白单元格表示没有此项功能。对比结果如表11所示:表11 国内外移动记账应用对比应用 功能国内应用国外应用快捷记账随手记精英理财Finance NoteKeep AccountQuick Track记账功能收入支出转入转出查询明细统计报表统计余额收支趋势图表分析数据操作加密备份同步其他操作货币设置短信监听定期财报固定收支是否收费可以从上表的所示情况中看出,这6个比较有代表性的目前国内外记账应

13、用各有特色,都具有自己的优势,也不可避免的含有一些缺点。总结归纳如下:(1) 快捷记账:是6个现有应用之中功能较为全面的一个,包括各项账目的收支、转出转入,同时也具有了较为强大的数据统计分析功能,对于数据的安全性也提供了相应的保护措施。比较有特色的是短信监听功能,可监听接收到的短信,若是带有交易数据,会自动询问用户是否需要计入账簿。美中不足的是,由于快捷记账没有Web版系统应用,因此所有的功能都局限在了移动终端上,带来些许不便,也意味着不具有数据同步功能。除此之外,还有大家都很关心的一点,快捷记账是需要收费的。仅此一点,可以说是限制了相当一部分的用户。(2) 随手记:是著名的国内IT服务提供商

14、金蝶公司的产品。可想而知,其功能必然不在话下。大体上和快捷记账十分相似,功能也十分全面,除了应有的记录收入、支出、转入、转出转账功能,强大的报表分析功能,由于金蝶自身深厚的软硬件实例,随手记还具有Web版的应用系统,当你在家使用电脑时,就没有必要再使用体格偏小的移动终端设备进行记账了,可以使用Web版的应用系统,而且服务器所具有的强大运算功能也是手机、平板所匹敌不了的,因此在Web端,你可以获得更全面的账务分析。与此同时,随手记也就具有了数据同步功能,使得数据更为安全,不易丢失。但是,随手记并不具有短信监听记账功能,少了一些特色。而且,遗憾的是,随手记也是需要收费的,也因此影响到的了活跃用户的

15、数量。(3) 精英理财:从产品的规模上可以看出是属于国内个人开发者的产品。由于本身技术的局限,本款应用在功能上相比前两者要削弱不少。从功能上来说,只具有最基本的收入、支出记录功能,不支持转入、转出转账功能。但是可喜的是,精英理财同样具有理财数据分析功能,可以进行消费趋势、图标分析等。相比前两者,虽然功能有相对的削弱,但是,该应用是完全免费的,即使功能并不全面,但是基本能够符合普通用户的需求。(4) Finance Note:和国内的精英理财在功能数量上十分相近,都没有转入、转出转账的记录功能。但是在数据分析功能上不必其他应用要来得弱,明细查询、数据分析、报表统计等功能并无不能。相比精英理财,它

16、还具有了数据加密和定期报表的功能,更胜一筹。在于应用价格方面,其同意是免费的,相信在国外还是具有一定的用户数量的。(5) Keep Account:应用的整体功能和Finance Note十分相似,在记账功能方面,只有收入、支出的记录功能,没有转账条目的记录功能。具有完善的明细查询、数据分析,报表输出等统计功能。相比Finance Note强大的地方在于,具有本地的数据备份功能,虽然笔者认为本地备份在移动终端的用处似乎不大,但也算一个优点吧。除此之外,该应用还具有货币设置和固定收支这两项特殊功能,能方便不同人群的使用,也省去固定周期的固定收入、支出的记录过程。但是,该应用是收费的。(6) Qu

17、ick Track:该应用与Finance Note和Keep Account都十分相似,无论是记账功能还是统计分析功能,都不尽相同,依然是没有转账相关记录功能。但是与前两者国外应用不同的是,其具有定期报表的特色功能,用户可以设置一个时间点和周期进行定期的报表显示,让用户的固定时间固定频率下看到自己的账目统计。该应用也是需要收费的。从以上国内外6个比较具有代表性的应用比较来看,国内的应用目前功能较为丰富,而国外的几个应用在记账功能上则相对简单,所试用的3个应用中,无一具有转账记账功能。而国内应用在这方面都有所考虑,在账目的设置上也自然而然的更适合国内用户的使用习惯。而在数据统计分析方面,国内外

18、应用目前都做的不错,各个应用也都具有此项功能,而且都不弱。在数据管理方面,除了国内较大的两个产商在除了应用以外,还具有Web版的记账系统之外,能够进行数据的云备份和云同步,其余应用都最多只有本地备份功能,并不全面。而数据加密功能,本人觉得本身移动终端就是私人随身携带的物品,极少会到他人手上,被他人查看记账数据的可能也是极小,因此加密功能笔者认为并不重要,可以删去。本地功能也是一样,在移动终端上并不如个人PC端的作用来得大,因此也不建议增加此功能。而其他功能,例如货币设置、固定收支、定期报表等,都可适当增加,但是即使少了也影响不大。最后,还有十分重要的一点,就是应用的价格问题。很明显,现今应用市

19、场和商店中的应用,功能强大的都避免不了需要收费才能使用,或是免费版只具有部分功能,若要使用全部功能需另外购买,免费的版的功能普遍较为弱化。是否收费很大程度的影响到了用户的选择。因此,笔者希望的是,能够设计、开发中一个功能较为完善,移动终端和Web版系统能够同时运行的个人记账系统,最重要的是免费供用户使用全部功能。1.3 关键技术1.3.1 面向对象方法面向对象的方法在系统分析设计中可分为三个阶段:面向对象分析(OOA)、面向对象设计(OOD)以及面向对象编程(OOP)。面向对象分析主要指的是将问题域中存在的客观事物或概念抽象识别为对象建立分析模型,用对象的属性和服务(service)分别描述事

20、物的静态特征和行为,并且保留问题域中事物之间关系的原貌。面向对象分析的是为了理清“做什么”,而面向对象设计是为了解决“怎么做”。面向对象分析是基于面向对象分析得到的模型进行模型的修改、细化和详细设计,建立起设计模型作为面向对象编程的基础。面向对象编程指的是选定面向对象的语言,对应设计模型,实现模型中的类及其中的属性和服务,进而实现整个系统。面向对象的方法能让系统分析、设计、实现阶段平滑的过渡和转换,最大限度的降低差异和转换成本。面向对象中的继承和封装的特点能够大大提高系统的重用性和可拓展性,降低系统升级、维护的成本开销。1.3.2 Android移动操作系统Android移动操作系统是美国的G

21、oogle公司于2008年9月发布,以Linux为核心层并免费开放源代码的一款移动操作系统。因为Android系统免费、开源的特性,很快吸引了众多手机生产商和手机应用开发者投入到生态系统的建设中。第一款采用Android系统的智能手机发布至今不到4年,Android系统已经成为了最炙手可热的生态系统,包括三星、索尼、宏达电等知名手机硬件产商都大力主推搭载Android系统的智能手机。据统计,目前Android系统占全球移动终端市场的50%以上的份额,而在中国国内甚至更高,已十分接近70%。所以选择开发运行于Android系统的应用软件,能够具有很大的用户人群和稳定的技术支持。1.3.3 Jav

22、a程序设计语言Java程序设计语言是Sun公司于1995年5月发布的一门面向对象的程序设计语言。Java具有跨平台的重要特性,能够做到“一次开发,处处运行”,使开发从不同操作系统的区别中解脱出来。自从Java发布以来,就成为了最炙手可热的高级程序设计语言,近年来更是连续占据着权威TIOBE编程语言排行榜领头羊的位置。既然使用了面向对象的系统分析设计方法,因此选择一门像Java这样的纯面向对象的高级程序设计语言,是一个契合的选择,能够实现分析设计到编程实施的平滑过渡,实现模型到程序的完美转换,并为整个系统分析设计过程减少额外的学习成本。1.3.4 SSH2系统框架SSH2即Struts2、Spr

23、ing、Hibernate,这三大框架是目前Java Web应用技术中最为流行的三大框架。其中,Struts2是主要负责表示层和控制层的典型MVC框架,能够对客户端请求进行拦截,对页面数据进行封装并转化为能让后台更为方便处理的对象,在后台对数据处理完之后,Struts2还负责将结果反馈给客户端,使系统的逻辑更为清晰。Spring一般应用于中间层框架,其反转控制(IoC)实现了对象的托管,省去开发者繁琐的对象创建过程;而面向切面编程(AOP)能够使业务逻辑部分和应用服务分离开来,避免相似代码重复编写,尤其是类似数据库事务操作的这类代码,Spring的使用能够大幅降低系统的耦合性,使系统各部分的关

24、联度降低,易于后期修改和扩展。Hibernate是为了解决面向对象编程语言的数据操作和关系型数据库的数据存储之间阻抗不匹配问题的对象-关系映射(ORM)框架,很好的封装了各类关系型数据库的操作,使开发人员可以使用面向对象的方式来进行数据的存取,利用面向对象的思想开发基于关系型数据库的应用系统。良好的框架应用,可以减轻开发者在技术解决方案上消耗的精力和负担,将注意力转移到问题业务的解决上,并且在编码时减少代码的编写量,提高开发效率。另一方面,框架的使用,能让应用系统最大限度的松耦合,这样在应对变化或增加时,能够很好的进行系统的扩展。1.3.5 db4o对象型数据库db4o是一个开源的纯对象型的数

25、据库,功能强大,体积小轻量级,而且性能足够优异,因此特别适合作为嵌入式数据库,运用在Android应用程序中。而且db4o能够实现零管理的模式,不需要额外的DBA技术来进行数据库的管理。因为是100%使用Java写成的数据库,能够让Java应用程序无缝的和db4o数据库连接进行数据的存取操作,大大减少了开发人员花费在对象模型到关系模型的转换时间和代价,提高开发效率。1.4 可行性研究及结论1.4.1 必要性分析记账的形式多种多样,有的人至今仍然随身携带记账本和笔随时随地进行记账,的确不能说这种方式不方便,能够在消费发生的第一时间就拿出来进行记录,但是后期需要进行大量的人工数据统计工作,更不用说

26、报表输出了;而有的人早已废弃纸币,选择了电脑软件进行记账,如Excel工作簿、记账通等,最大的有点就是带有强大的数据分析和报表输出功能,但是缺点是电脑哪怕是笔记本电脑想要随时携带比较麻烦,想要在消费发生的第一时间就进行记账几乎不可能。种种方式,要不就是没有分析功能,要不就是限制了记账时间和地点,往往造成人们不能养成连续记账的习惯,更不用说进行个人的理财规划了。因此,一个便携、小巧,又具有强大数据统计、报表分析的移动记账软件的诞生是十分有必要的,一切的这些都可以在搭载了Android移动操作系统的手机上实现。1.4.2 技术可行性此基于Android平台的个人记账系统所需技术的要求,以及现有掌握

27、熟练程度,存在的差距等方面进行分析可采用下表形式表示:表12 关键技术分析表关键技术项要求现有水平对照分析Android活动及其生命周期熟练熟练可以满足要求Java熟练熟练可以满足要求AJAX了解了解可以满足要求jQuery了解了解可以满足要求JSON熟练熟练可以满足要求XML熟练熟练可以满足要求Struts2熟练熟练可以满足要求Hibernate熟练熟练可以满足要求Spring熟练熟练可以满足要求db4o数据库了解了解可以满足要求依上表可知:对于本系统的所需技术的要求均可满足要求,因此本系统在技术方面是可行的,不存在技术上的问题。1.4.3 经济可行性该系统只笔者一人参与设计开发,因此没有人

28、员的额外开销。而在开发工具上,选用的是由“蓝色巨人”IBM公司开发并开源的Java应用程序IDE工具Eclipse,可免费下载使用,而且在所需的各项技术中,全部都是开源免费技术,每一个下载使用这些技术的开发者都可获得对应技术的GNU通用公共许可证,可自由运用于任何项目,因此也没有技术使用的开销。另外,系统分析设计过程中需要的硬件设备要求也不高,单独的一台配置不高的笔记本电脑就可以满足需求。因此,从经济的角度上来看,系统也是可行的。1.4.4 社会可行性随着生活水平的提高,经济活动占据个人生活的主导地位,在消费的同时,想要通过记账的方式进行个人理财的人必定不在少数。基于Android平台的个人记

29、账系统,再配合上Web版的个人记账系统,在功能上相信能够满足当前具有一定消费能力且有记账习惯的用户的需求,而且应用系统本身也将是完全免费的,相信社会上的广大Android手机用户也会有同等的期待。所以,从社会方面来看,此系统也是可行的。1.4.5 可行性研究结论由以上四点分别从必要性、技术、经济、社会等方面进行了充分的分析论证,在各方面都是符合市场需求、个人能力、经济条件、社会背景,因此基于Android平台的个人记账系统是可行的,可以立即开始系统的分析设计工作。46第2章 系统分析第 2 章 系统分析2.1 需求分析2.1.1 常用记账方式有记账习惯同学不在少数,故从身边同学的记账事例来获取

30、一个移动记账系统应具有怎样的需求。主要的记账形式有如下几种:(1) 记账本使用记账本来记录日常的收入支出,最明显的缺点就是时效性太差,不能在消费的第一时间就将发生额记录到记账本中,总是要等回到宿舍,再拿出笔和记账本进行记录,而常常又因为记不住消费的确切金额或是干脆就忘了有笔账需要记一记,错过了最佳的记账时机就很难再形成连续、完整的记账,造成记录数据与真实收支数据不统一。另一方面,在数据较为完整的情况下,当你需要回头来看看这个月在各方面消费了多少金额的时候,需要花费大量时间进行统计整理,让人十分泄气。(2) Excel工作表笔者的另一位舍友,使用的是Excel工作表进行收支条目的记录。Excel

31、具有强大的统计功能,因此能够快捷地进行各类统计分析,甚至生成图表分析结果。但是和手工记账本记账一样,存在时效性差的特点,一样不能抓住最佳的记账时机,而便携性甚至比不上记账本。而且为了备份数据,需要定期将Excel工作簿备份复制一份,存储在另一个介质中,如U盘、移动硬盘,需要额外的开销。(3) 手机记事本即使现有的手机并不是Android操作系统,并没有可用的移动记账应用,但是仍然具有便携的特性,于是有的同学就使用手机上的记事本进行日常记账。虽然解决了时效性的问题,能在消费发生的第一时间就进行记录,但是因为仅仅是记事本,每次都需要手动录入记账条目,显得十分繁琐和低效。而且和记账本一样,不具有后期

32、的统计分析功能。由上述案例可知,基于Android平台的移动记账应用是十分有必要的,它可以很好的解决以上各种方式的缺点。移动记账应用应该具有便携、即时,能够在消费发生的第一时间就能进行记录,简单快捷的操作方式,还能进行全面的统计分析,数据的安全备份等特点。2.1.2 功能性需求通过案例分析,大致得出以下主要功能需求:(1) 记账功能:收入、支出、转账等条目的记录。(2) 账目查询:可通过设立多个查询条件(如日期区间、账目类别)来获取账目列表。(3) 账户管理:设置例如现金、银行卡、信用卡、一卡通等各类账户。(4) 账目类别管理:设置账目类别如餐饮、交通、娱乐等一级类别;早餐、公交、KTV等二级

33、类别,可供添加账目条目时进行选择。(5) 数据管理:可将数据备份至本机存储空间,或者选择将数据备份至应用的Web系统版。(6) 报表分析:设定若干可选条件,进行符合条件的账目统计,并能按用户要求输出图表,并提供消费建议。(7) Web版同步账号的注册和登陆功能。(8) 理财资讯的获取:通过移动互联网从服务器获取个人理财规划相关资讯。2.1.3 非功能性需求移动互联网时代,一个应用想要获得用户青睐,让用户真正的喜欢上该系统,不仅仅需要满足用户的功能性需求,非功能性需求的满足也是十分必要的,必须具备以下良好的用户体验:(1) 界面简洁明了,不失美感,必须适合全触摸屏的使用习惯(2) 操作应尽量简单

34、、快速(3) 程序页面跳转应流畅、平滑(4) 使用优秀的算法,将明细查询和统计分析的报表生成时间做到最短(5) 金额数字应显示清晰,毕竟手机屏幕的大小仍有限,绝大多数为3.5至4.3英寸2.2 用例模型2.2.1 识别参与者所谓的参与者是系统之外与系统进行交互的任何事物,一般是使用系统的用户或是其他外部系统、外部设备等外部实体。因为记账应用系统是相互独立地安装于每个用户各自的Android手机终端上,可从以下几个方面确定参与者:(1) 该应用系统的数据、信息都是由系统的用户当经济活动发生时进行手动录入的,相关理财资讯均是由系统管理员手动录入的;录入的数据也是供用户自己日后进行查询、统计分析所用

35、;而数据的删除、备份也是由用户自行操作。(2) 位于手机终端上的各项功能均是由安装了该应用系统的用户使用(3) 每个用户均是处于对该记账应用系统的特定功能具有相当需求和兴趣的情况下,进行的下载和安装以及使用(4) 该系统由系统管理员数据的支持和维护由以上四点分析可知,该记账应用系统是由在手机上安装了该应用系统的用户和系统管理员作为参与者。2.2.2 确定用例通过上文分析得到的参与者可以进行系统用例的确定。首先,参与者普通用户是为了记账和理财而使用该系统,系统管理员是为了维护和管理该系统而使用;其次,普通用户会用到的是相关记账和报表分析功能,如:记账、明细查询、数据管理、系统设置等功能,管理员通

36、常用到用户管理、资讯管理等功能。由上分析,很容易就能得到该系统大致应有的用例,按照参与者的类型分为:(1) 用户记账管理:收入管理(增加、编辑、删除),支出管理(增加、编辑、删除),转账管理(增加、编辑、删除),借贷管理(增加、编辑、删除)。明细查询:查询所有、分类查询、账户查询、条件查询报表统计:支出报表、收入报表、逐月支出、逐月收入、条件报表、资产状况数据管理:备份至本机、同步到云端(云端账号注册、登陆)、从本地恢复、从云端恢复、清除本地数据系统设置:支出、收入类别管理(增加、编辑、删除),账户管理(增加、编辑、删除),借贷账户管理(增加、编辑、删除)(2) 管理员用户管理(增加、编辑、删

37、除),2.2.3 确定用例关系由上文分析得到的用例以及用例分类可以得出以下用例关系图:记账功能的相关用例关系,如图21所示:图21 记账管理用例2.2.4 描述用例规约根据上文已确定的用例以及用例关系,制定用例规约。在记账管理用例中,又包含了收入管理、支出管理、转账管理、借贷管理四种用例,每种用例各包含了新增、编辑、删除三个方面的用例。收入管理和支出管理的用例规约十分相近,转账管理和借贷管理稍有区别。表21 记账管理用例规约用例名称记账管理参与者用户假设用户知道当前经济活动未被记录过,系统并不验证此经济活动是否已存在前置条件系统未设置密码保护或用户身份已被识别和授权后置条件系统更新相关数据主事

38、件流1. 选择记账类型(支出、收入、转账、借贷)2. 根据所选记账类型进入相应类型账目记账界面3. 根据所选类型,用户可选择进行新增、编辑、删除操作4. 系统更新账户数据表22 账号管理用例规约用例名称账号管理参与者用户假设无前置条件系统未设置密码保护或用户身份已被识别和授权后置条件系统完成账号的注册或者登录主事件流1. 用户进入账号管理界面2. 用户可选择进行登录账号或者注册账号3. 系统更新账户数据由明细查询用例包含可得查询所有、账户查询、分类查询和条件查询四个用例,它们的用例规约如下:表23 查询所有用例规约用例名称查询所有参与者用户假设系统已有账目记录数据前置条件系统未设置密码保护或用

39、户身份已被识别和授权后置条件显示指定日期区间内所有账目记录数据主事件流1. 从数据库获取指定日期的所有账目记录数据2. 系统显示所获取的账目记录数据备选事件流无表24 账户查询用例规约用例名称账户查询参与者用户假设系统已有账目记录数据前置条件系统未设置密码保护或用户身份已被识别和授权后置条件显示指定日期区间内所有账户明细主事件流1. 系统从数据库获取各账户明细2. 系统显示各账户明细数据备选事件流无表25 分类查询用例规约用例名称分类查询参与者用户假设系统已有账目记录数据前置条件系统未设置密码保护或用户身份已被识别和授权后置条件显示指定日期区间内所有分类的账目明细主事件流1. 系统从数据库获取

40、各分类明细数据2. 系统显示各账户明细数据备选事件流无表 26 条件查询用例规约用例名称条件查询参与者用户假设系统已有账目记录数据前置条件系统未设置密码保护或用户身份已被识别和授权后置条件显示用户指定条件的账目明细主事件流1. 用户根据界面提示录入、选择各条件2. 系统从数据库获取指定条件的明细数据3. 系统显示获取的明细数据由报表统计用例包含得到支出报表、收入报表、逐月支出、逐月收入四个用例,它们的用例规约如下:表27 支出报表用例规约用例名称支出报表参与者用户假设系统已有账目记录数据前置条件系统未设置密码保护或用户身份已被识别和授权后置条件显示用户指定日期区间的支出报表主事件流1. 用户指

41、定日期区间2. 系统从数据库获取指定日期区间的支出账目数据3. 系统显示获取的支出数据的报表表28 逐月支出用例规约用例名称逐月支出参与者用户假设系统已有账目记录数据前置条件系统未设置密码保护或用户身份已被识别和授权后置条件显示用户指定月份区间的逐月支出报表主事件流1. 用户指定月份区间2. 系统从数据库获取指定月份区间的逐月支出总数据3. 系统显示获取的逐月支出数据的报表收入报表、逐月收入报表的用例规约与支出报表、逐月支出报表的用例规约十分相似,故不一一列举。在系统设置用例中,包含了收入类别管理、支出类别管理、账户管理、借贷账户管理四大用例,这四个用例各包含了新增、编辑、删除三个方面的用例。

42、收入类别管理和支出类别管理的用例规约十分相近。表29 新增收入类别用例规约用例名称收入类别管理参与者用户假设无前置条件系统未设置密码保护或用户身份已被识别和授权后置条件系统将新收入类别存入数据库主事件流1. 用户进入收入类别管理界面2. 系统显示现有收入类别列表3. 用户可选择对收入类别进行增加、编辑、删除等操作4. 系统更新收入类别数据支出类别管理、账户管理、借贷账户管理四大用例包含的新增、编辑、删除三个方面的用例与上述所示的收入类别管理包含用例的用例规约十分相似,故不一一列举。数据管理用例包含得到数据备份和数据恢复用例,而数据备份和数据恢复又各自包含为本地和云端两个方面。其用例规约如下:表

43、210 数据备份至本地用例规约用例名称备份至本地参与者用户假设系统取得本地文件读写权限前置条件系统未设置密码保护或用户身份已被识别和授权后置条件系统将数据库数据以文件的形式备份至本地主事件流1. 系统将数据库数据以文件形式备份至本地2. 系统告知用户文件所在位置3. 系统在数据库中存储文件的保存位置表 211从本地恢复数据用例规约用例名称从本地恢复参与者用户假设系统取得本地文件读写权限前置条件系统未设置密码保护或用户身份已被识别和授权后置条件系统从本地文件中恢复数据库数据主事件流1. 系统读取保存在本地的数据库数据文件2. 系统将文件中的数据写入数据库表 212 数据备份至云端用例规约用例名称

44、备份至云端参与者用户假设系统取得网络访问权限前置条件系统未设置密码保护或用户身份已被识别和授权后置条件系统将数据库数据发送到云端进行备份主事件流1. 系统将数据库数据发送到云端2. 云端系统将数据保存至云端数据库中表 213 从云端恢复数据用例规约用例名称从云端恢复参与者用户假设系统取得网络访问权限前置条件系统未设置密码保护或用户身份已被识别和授权后置条件系统将云端获取的数据恢复至本地数据库主事件流1. 系统接收从云端发送而来的数据库数据2. 系统将接收到的数据写入本地数据库Web版个人记账系统(云端系统)的管理员用例主要为:用户管理用例。其用例规约如下:表214 用户管理用例规约用例名称用户

45、管理参与者管理员假设系统管理员无论何时均可登录系统进行操作前置条件管理员身份和权限已被系统识别和授权后置条件显示可管理的用户信息主事件流1. 系统显示可管理的用户信息2. 管理员可选择进行用户的新增、编辑、删除操作3. 系统更新用户数据2.3 分析模型2.3.1 类图通过Wirfs-Brock名词短语策略,对个人记账系统的关键问题,如记账、明细查询、数据设置等问题的需求和过程进行分析,以及上文的众多用例规约中可以分析得到如表215所示的候选概念类清单:表215 候选概念类清单名词类别概念类列表显而易见的对象用户、账目、收入、支出、转账、借贷、账户明显无意义的对象本地密码、网络权限不确定类别的对

46、象账目类型、账户类型、账户余额对于不确定类别的对象进行讨论:“账目类型”给人的第一印象像是作为“账目”的一个属性,但是仔细推敲之后便觉得不应该简单的作为“账目”对象的一个属性,而通过账目的泛化得到收入账目、支出账目、转账账目和借贷账目四种账目类型的对象,故“账目类型”对象应该被舍弃。“账户类型”的情况正相反,经过分析账户对象的属性有名称和当前余额,而后分析得账户类型可分为较为固定的7种:现金、信用卡、储蓄(卡、存折等)、投资账户(股票、基金等)、储值卡(购物卡、一卡通等)、网上支付(支付宝、PayPal等)和虚拟账户(Q币、人人豆),不会再次基础上进行自我设置,故应将“账户类型”作为“账户”的

47、一个属性,舍弃作为对象的想法。“账户余额”与“账户类型”相似,应作为“账户”的一个简单属性,舍弃该对象。通过对概念类的检查,得出如图22所示的概念类图:图22 个人记账系统中的概念类在得出概念类的基础上,根据需求和上文分析所得的用例规约,对各概念类添加属性,得到定义了属性的概念类图:图23 定义了属性的概念类图添加了类的属性之后,接着进行类的关联关系的建立。一个用户可以有0个或者多个账目记录:图24 用户和账目关联一条支出账目都属于一种二级支出类别,一种二级支出类别可以有0或多个支出账目,一种二级支出类别属于一种一级支出类别,而一种支出类别可以有0或多种二级支出类别:图25 支出与支出类别的关

48、联一条借贷记录都与一个账户想关联,一个账户可以与0或多条借贷记录相关联,一条借贷记录与一个借贷账户相关联,一个借贷账户与0或多条借贷记录相关联:图26 借贷与账户、借贷账户的关联除了进行类的关联以外,有的类之间还需建立类的泛化关系。在个人记账系统中,账目根据账目类型的不同分别与支出、收入、转账、借贷之间有着泛化关联关系,支出、收入、转账、借贷均是根据账目类型的不同由账目泛化而来:图27 账目与支出、收入、转账、借贷的泛化关联在定义概念类、添加属性、识别对象之间的关联之后,就可以得出完整的个人记账系统的类图了,如图28所示:图28 个人记账系统的类图2.3.2 顺序图多个对象之间的交互行为需要使

49、用顺序图来描述,本文针对系统中的典型用例的主事件流,进行了顺序图的绘制。对于“支出管理”事件流,用户可以根据需要进行新增、编辑和删除操作:(1) “新增支出”:用户填入支出相关信息,支出需要关联支出类别,所以需要获取一级支出类别对象,再根据一级支出类别获取其下属的二级支出类别对象,然后再选择与支出相关联的账户,最后将所填数据进行验证、封装成支出记录对象,最后成功创建一条支出账目记录;(2) “编辑支出”:系统首先取出支出账目对象,显示给用户,用户编辑修改相关信息,包括一级支出类别对象和一级支出类别获取其下属的二级支出类别对象的编辑修改,然后再修改与支出相关联的账户,最后将所填数据进行验证、封装

50、成支出记录对象,最后更新支出账目记录;(3) “删除支出”:系统删除指定支出账目记录。“支出管理”的顺序图如图29所示:图29 新增支出顺序图对于“收入管理”用例,用户可根据需要进行新增、编辑和删除操作:(1) “新增收入”:用户根据界面提示填入相关信息,收入记录需要关联收入类别,所以需要获取收入类别对象,然后再选择收入相关联的账户,获取账户对象,界面对数据进行验证、封装成收入账目对象,最后成功创建一条收入账目记录;(2) “编辑收入”:系统首先获取收入账目对象,用户根据需要编辑修改相关信息,如收入类别和关联的账户,系统再将更新后的信息验证、封装成收入账目对象,更新数据库内的收入账目信息;(3

51、) “删除收入”:系统直接删除指定的收入账目记录。“收入管理”的顺序图如图210所示:图210 收入管理顺序图“转账管理”用例,用户可根据需要进行新增、编辑和删除操作:(1) “新增转账”:增转账界面填入相关信息,转账账目对象需要关联转出账户和转入账户,分别依次选择转出账户和转入账户,页面对填入的相关数据进行验证、封装,创建转账账目对象,最后成功创建一条转账账目记录;(2) “编辑转账”:系统获取指定转账账目对象,用户根据界面提示,编辑相关联的转入和转出账户,修改金额等操作,系统对数据进行验证、封装后进行转账账目的更新。(3) “删除转账”:系统删除指定转账账目记录。“转账管理”的顺序图如图2

52、11所示:图211 新增转账顺序图对于“借贷管理”用例,用户可根据需要选择进行新增、编辑和删除三种操作:(1) “新增借贷”:首先是填入相关信息,需要选择借贷账户(债权人)和相关联账户,所以依次获取账户对象和借贷账户对象进行对象的关联,然后界面对录入的数据进行验证、封装创建借贷账目对象,最后成功创建一条转账账目记录;(2) “编辑借贷”:系统首先从数据库中获取指定借贷账目对象,用户进行借贷账户(债权人)和相关联账户的编辑修改,然后重新对数据进行验证、封装创建借贷账目对象,最后更新原有的转账账目记录;(3) “删除借贷”:系统直接删除指定的借贷账目记录。“借贷管理”的顺序图如图212所示:图21

53、2 借贷管理顺序图“支出报表”用例,首先的事件流是用户在界面中选择支出账目的筛选条件,系统根据用户的指定条件获取支出账目记录,系统根据支出账目对象所关联的支出类别对象进行金额的分类统计,最后显示给用户。其顺序图如图213所示:图213 支出报表顺序图第3章 系统设计第 3 章 系统设计3.1 系统架构在Android平台上,个人记账系统被分为了三层,分别是:表现层、业务逻辑层、数据持久层。表现层:主要是Android应用程序的界面提供数据录入、数据的校验与呈现以及事件响应的一系列UI控件。除此之外,还将负责将用户的事件响应请求消息传递给下一层进行业务逻辑处理。Activity活动类作为Andr

54、oid平台应用程序的表现层,在系统中的每一个显示屏幕都是一个Activity。业务逻辑层:专门完成业务逻辑的处理。常用来对表现层传入的数据进行业务逻辑处理。为了完成某个业务功能,它可能会跟多个数据访问对象DAO打交道。使用POJO类来实现。通常由业务服务Service类和业务实体类Entity组成。数据持久层:该层次专著于数据持久化逻辑的实现,将内存数据模型(如实例化对象)转换为持久化的存储模型数据(数据库记录),也可将持久的存储模型数据转换为内存数据模型。系统架构的层次图如下所示:图31 系统架构层次图3.2 分析模型的细化3.2.1 添加边界类一个具有良好用户体验的系统,需要优秀的边界类提

55、供给参与者,使参与者能够与系统进行良好的交互,并且获取参与者录入的数据,反应触发的事件并将结果反馈给参与者。在Android应用中,边界类主要以Activity界面类来表示。在系统的表示层中添加以下边界类:系统主页边界类、记账界面边界类、明细查询界面边界类、统计报表界面边界类、数据管理界面边界类、基础设置界面边界类等。系统主界面显示本日支出和本月支出,以及进行支出、收入、转账和借贷的记账按钮,底部工具栏显示进入其他界面的按钮。图32 系统首页界面边界类记账界面由4个Tab选项卡组成,用户可分别通过选项卡来选择进行支出、收入、转账和借贷四种账目的记录,每个选项卡具有符合各账目类型的输入框和下拉菜

56、单,并验证用户录入数据的合法性,最后将数据传递至业务层进行业务逻辑的处理。图33 记账界面边界类3.2.2 添加实体类在第二章的分析模型中,对系统中的概念类进行了分析,在设计阶段,需要在概念类的基础上设计出实体类。实体类是系统的重要组成部分,系统的大部分功能都是通过实体类来传递信息与数据的,所以实体类往往需要进行持久化。根据系统功能需求,分析得出“用户”、“账目”、“收入”、“支出”、“转账”、“借贷”、“账户”等类是需要进行持久化的实体类。对各个实体类,进行属性和方法的添加,进行实体类图的绘制,由于每个实体类都具有若干的private私有属性,因此也具有每个私有属性对应的getter与set

57、ter方法以供外部类调用,为了使类图的简洁明了的体现重要的核心属性和方法,因此类图中并未将属性的getter、setter的方法画出。得到的实体类图如下所示:图34 实体类图3.2.3 边界类详细设计(1) 系统输入设计:输入内容:账目金额、记账日期、关联账户、账目备注、账目搜索条件、报表统计条件、收入支出类别信息、账户信息、借贷账户信息等。输入方式:通过触摸屏的手势操作文本框的输入和下拉菜单的选择输入设备:触摸屏、软键盘、手指(2) 系统输出设计:输出内容:账目信息、账户信息、报表统计结果、账目明细、收入支出类别信息、接待人账户信息等。输出方式:滚动列表、柱状图、折线图输出设备:显示屏(3)

58、 人机界面设计系统首页界面设计:首页界面的顶部有一标题栏,正中位置显示本系统的名称“iFinance”,其最右端有一循环箭头图标,点击此图标可将手机上的数据同步至服务器端的Web版的个人记账系统;标题栏下方,是简要的收入、支出统计,分别为本日、本周、本月三个时期的收入和支出金额统计,让用户在首页就能简要了解自己的近期收入、支出的金额;再下方是四个功能按钮,分别为“新增支出”、“新增收入”、“新增转账”、“新增借贷”,用户只要点击这些按钮,就能进入相应的记账界面;最底部是快速工具栏,包括“首页”、“明细”、“报表”、“数据”、“设置”等五个菜单项,点击相应的菜单项即可进入相应界面。系统首页界面设

59、计如图32所示:图35 系统首页人机界面设计新增账目界面设计:界面顶部为标题栏“新增账目”,标题栏下方是由4个Tab选项卡组件组成的组合页面,分别为“支出”、“收入”、“转账”和“借贷”记录界面,用户可根据选项卡进行所需记账账目类型的选择进入相应的记账界面。每个选项卡所包含的用户数据录入域各不相同,例如“支出”界面,包含“金额”、“支出类别”、“时间”、“账户”和“备注”等五个输入域(文本域和选择菜单)。选项卡组件下方,是“保存”和“返回”按钮,分别完成账目保存和撤销功能,二者在完成时间响应之后,都将返回至系统首页界面。新增账目界面的设计如图33所示:图36 新增账目人机界面设计3.2.4 重

60、新绘制类图通过概念类的分析,以及边界类、实体类的设计,对系统中的业务逻辑层的Service服务类和数据访问层的DAO接口以及实现类进行设计。首先,在数据访问层中定义了一个IBaseDao公共基础接口,在此接口中定义了基本的CRUD方法声明,例如:add(T entity)、update(T entity)、delete(Serializable id)、get(Serializable id)、getAll()等。然后,定义了一个BaseDaoImpl类实现IBaseDao接口,并实现所有声明的方法。其类图如图37所示:图37 数据访问层基础接口和实现类有了基础接口和基础实现类,以后每一个需要持久化的实体类需要增加相应的DAO接口和DAO实现类的时候,只需要将其DAO接口继承自IBaseDao,DAO实现类实现其DAO接口并继承自BaseDaoImpl就可以了,在没有复杂业务逻辑的情况下,甚至不用写任何额外的属性和方法,例如,“账户”相关的DAO接口和实现类的类图结构,如图3

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!