家庭理财管理系统论文_第1页
家庭理财管理系统论文_第2页
家庭理财管理系统论文_第3页
家庭理财管理系统论文_第4页
家庭理财管理系统论文_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页基于J2EE技术的家庭理财系统的设计与实现摘要随着人们生活水平的提高,信息化显得尤为重要,计算机将继续并将长期占领着任何工作的主导地位,随着人们收入的日益增多,理财将成为人们的必选。谈到理财,不仅只存在于公司中,一些家庭乃至学生和个人都可以进行相关的理财管理。而在人们日益繁忙的今天,一个家庭理财管理系统要比单纯的纸质理财管理方便、快捷的多。在此我根据自己所学的金融及计算机相关专业知识专门为一些有理财想法的家庭以及个人设计了这个家庭理财管理系统,该系统界面美观、操作简单,且相比于纸质的理财工具,减少了容易丢失的风险,大大提高了工作的效率。该系统的主要功能为:用户记录家庭成员的收入及消费情况,根据该记录可以对家庭的收入与支出进行按月以及按年统计并且生成统计图表,便于观察与比较,该系统带有计算器功能可以对家庭资产进行投资计划管理以及消费计划管理,方便操作,对家庭资产的管理不再迷茫,让家庭资产管理变得有条有序。本系统主要采用Java作为开发语言,SSH作为框架,数据库使用MySQL进行数据管理,开发环境为MyEclipse,并且使用流行的tomcat服务器,开发了一个为用户提供方便且实用的家庭理财管理系统。关键词:家庭理财;Java语言;SSH框架;MySQL数据库TheDesignandImplementationofFamilyFinancialManagementSystemBasedonJ2EETechnologyAbstractWiththeimprovementofpeople’slivingstandards,informatizationisbecomeparticularlyimportant,computerwillcontinueandremaintheimportantpositioninanyworkforalongtime.Withtheincreasingofpeople’sincome,financemanagementwillbecomethenecessarychoiceofpeople.Whenitcomestomoney,notonlythecompany,butalsosomefamilies,studentsandindividualsthattheyalsocandosomethingaboutfinancialmanagement.Todaywhenpeoplebecomemoreandmorebusy,afamilyfinancialmanagementsystemismoreconvenientandefficientthanthesimplepaperone.HereIspecificallydesignedafamilyfinancialmanagementsystemaccordingtomyprofessionalknowledgerelatedtofinancialandcomputerforsomefamiliesandpersonalwhohavefinancialideas.Thesystemhasabeautifulinterfaceanditsoperationissimple,ithasalsoreducedtheriskoflosingdatawhencomparedtopaperfinancialtools,atthesametimeithasgreatlyenhancedtheworkefficiency.Themainfunctionofthesystemisthatuserscanrecordtheconditionsofincomeandconsumptionoffamilymembers,accordingtotherecordthesystemcangeneratestatisticalchartsasmonthlyandannual,it’sconvenienttoobserveandcomparethefinancialsituationoffamilies,thesystemcanalsomanagefamilyassetsforinvestmentplanandconsumptionplanwithafunctionofcalculator,it’sconvenienttooperateandnolongerconfusedwiththemanagementoffamilyassets,itmakesfamilyassetmanagementbecomemoreorder.ThesystemismainlyusedJavaasthedevelopmentlanguage,SSHastheframework,andthedatabaseisMySQL,itisusedbyMyEclipseasadevelopmenttoolandpopularTomcatserver.Itisafamilyfinancialmanagementsystemwhichhasprovidedconvenienceandpracticabilitytousers.KeyWords:Familyfinances;Java;SSH;MySQLDatabase1绪论1.1课题背景在当今经济飞速发展的时代,人们对“财富”的积累显得尤为重要,我们每天忙忙碌碌为生活奔波,为的就是能在这大千世界生存下去,我们“买房”、“购车”都离不开“金融储蓄”,当然“财富”一词包含了很多内容,比如:精神财富,但是我认为实现精神财富的条件是在物质财富的基础上,所以掌握“理财”这门学科是我们每个人的必选课。尽管不能只用现金的短缺或者过剩来衡量一个人的痛苦或者幸福,但却可以通过理财的管理来保障未来的幸福生活。每一个人从一出生就需要用钱,也需要通过赚钱来实现现金的收入。通过合理的理财可以合理安排我们未来的现金流收支,有效的促进家庭财产的保值和增值,帮助我们抵御未来可能遇到的种种风险。显然,现代家庭相对于以前的传统家庭,生活水平等一些列方面确实有了显著地提高,但伴随而来的缺点也显现出来。面对着种种压力,人们必须认清理财的重要性,并且进行合理的理财。另一方面,现在中国处于小康社会,不仅北京、上海、广州等地的居民收入和积蓄逐年增加,而且某些小城市、小县城的一些居民收入和积蓄也在增加,那么我们就应该思考怎样不让居民手里的积蓄贬值而是增值呢?富人进行理财,如锦上添花;穷人进行理财,似雪中送炭。身处大变革的时代,在价值观缺失、社会急功近利的背景下,在通胀高起和浮躁高涨的时期,唯一能保护财富的只有自己!而对于一个一般的城市家庭来说,要拥有多少财富才能安度晚年呢?北京师范大学金融学教授钟伟增算了一笔账,根据现在的经济增长速度、居民货币收入增长和人民币发行节奏,25年后,我们大概需要500万元的积蓄才能度过余生,在京、沪、广、深这样的一线城市,预备1000万元养老也未必能够。不管是500万元还是1000万元,今天的货币总是难以衡量明天的购买力,财富的积累似乎永远也赶不上通胀的速度和消费的欲望。要对抗通胀,享受品质生活,就需要通过投资理财,把货币变成优质的财产。因此,一个家庭如何管理分配金融资产?如何安排自己的富余的现金流,如何筹集自己所需的资金,成为了一个现实的问题。随着计算机应用技术的快速发展,它对各种信息的处理提供了很大的帮助,加快了信息处理的效率,计算机技术的进步促进了人类社会的发展,而且计算机也被越来越多的应用到各种领域,当然学习计算机知识的目的就是通过计算机技术更准确、更快捷解决人们日常生活中的种种类似问题。对于理财来说,单纯的纸质理财工具已经满足不了这种快节奏的时代步伐,开发一个简单、快捷、易于操作的理财系统已经成为人们的需要。综上所述,本课题研究的家庭理财管理系统是对家庭成员资金收支的记录管理,易于搜索查找,且数据存储量相对较大,安全性良好,出错概率较小,大大提高了对资金的管理效率。1.2课题研究的意义家庭理财管理系统——即通过计算机语言进行编程,开发一款可以记录家庭成员收支情况,按要求统计生成数据图表,方便用户查找与分析,给用户提供方便的软件。家庭理财系统的设计实现了信息的规范化管理,数据的科学化管理,大大提高了系统的安全性能,其简单易懂的操作页面也使家庭成员便于学习和掌握,我国的信息化水平发展逐渐提升,而家庭理财管理系统也逐渐成为中高收入家庭的理财首选软件。家庭理财系统的用途越来越广泛,从之前单纯的纸质记录家庭成员收支情况到现在的使用电子产品处理一系列的信息数据等等。家庭理财系统提供了一些适合当今家庭的理财方法,已达到家庭的收支平衡和对未来资产的合理分配与管理的效果。同时因为家庭理财管理系统的灵活性,可以对家庭成员的收支记录进行实时的添加与修改,使理财变得更高效。当今世界,随着生活水平的提高,人们对家庭理财的重视也随之增加,而且任何事物的发展都出现了快的节奏,信息更新速度加快,而我国也逐渐成为科技强国,随着计算机应用技术水平的提高,其强大的应用功能逐渐被开发利用,在诸多领域已经取得了显著地成就。所以使用计算机对家庭中的资产进行分配与管理是最明智的选择,家庭理财管理系统与传统的纸质纯手工理财相比有诸多的优势,例如:灵活性强、易于记录、查找快捷、容量较大、保密性能良好、不易出差错、使用寿命延长、经济实惠等等。家庭理财管理系统的使用为用户提供了方便,节省了时间,对家庭资产实现合理与明智的管理。凡事预则立,不预则废。对于理财或者是生活中的其他事情,都要有一个良好的规划,以至于能够处理未来可能发生的种种问题。1.3技术简介1.3.1J2EE体系架构J2EE技术包含许多组件,不同于传统的应用开发技术架构,J2EE是一种利用java平台来简化企业解决方案的开发、部署和管理等相关复杂问题的体系结构,在目前的企业解决方案领域,尤其是高端企业解决方案领域有着广泛的应用[1]。整体架构如图1.1所示。图1.1J2EE整体架构1.3.2JSP技术简介JavaServerPages不足之处在于没有把业务处理和页面输出区分开,导致整个Servlet编码混乱无逻辑。为了解决这个问题,JSP产生了,JSP(JavaServerPages)是由Sun公司提倡、许多企业一起建立的动态网页技术,是一种实现静态HTML和动态HTML混合编码的强大技术。在JSP中可以使用全部Java类。在JSP中结合了JavaServlet所有的优势,而且,当与一个JavaBean结合在一起的时候,提供了使内容和显示逻辑分开的方式。这样做的有一个很大的好处,更新界面外观的人员不需要懂得Java代码,更新JavaBean的人员也不需要是设计网页的行家,可以直接用带JavaBean类的JSP页面定义Web模板,来建立由有相似外观的页面组成的网站[2]。1.3.3Struts技术简介Struts实质上就是MVC框架的具体实现,是企业级JavaWeb应用创建优雅的、可扩展的框架,Struts框架设计贯穿整个软件开发的生命周期中。由图1.2可以看出,struts框架由ServletFilters、StrutsCore、Interceptors以及Userceated模块构成。在Struts框架中,模型是由JavaBean实现业务逻辑,控制器是由ActionServlet和Action实现,视图则由JSP文件构成。当一个采用Struts框架进行开发的Web应用程序被启动时,ActionServlet就会被自动加载并被进行初始化[3]。接着ActionServlet就读取Struts配置文件中的各种信息,并根据配置文件中的各个模块来初始化相应配置对象。图1.2Struts框架的体系架构1.3.4Spring技术简介Spring是一个强大的框架,解决了许多J2EE开发中常见的难题。Spring不仅提供了管理业务对象的方法而且鼓励注入对接口编程不是对类进行编程的好习惯[4]。Spring中最重要的概念是它提倡的Ioc(控制反转)容器的实现,Ioc容器改变了类属性的赋值方法,从容器中主动的把依赖属性注入到类的实例对象中,而非创建对象时才去寻找依赖属性。这样Java类就不会需要管理属性赋值问题的出现,把所有的问题完全交给了Ioc容器去管理并使用。Spring框架主要有核心模块、上下文模块、AOP模块、DAO模块、Web模块等7大模块组成,它们提供了企业级开发需要的所有功能,而且每个模块都可以单独使用,也可以和其他的模块组合使用,灵活且方便的部署可以使开发的程序更加简洁灵活[5]。如图1.3所示。图1.3Spring框架主要模块1.3.5Hibernate技术简介该框架已经广泛替代传统JDBC操作应用于J2EE开发项目。Spring框架是包含了MVC层、中间层和持久层管理的框架,其核心模块的bean管理,现在很多的应用都采用Spring的bean管理机制来管理其逻辑层[6]。Hibernate可以应用在任何的JDBC的场合,可以在Java的客户端程序使用,也可在Servlet/JSP的Web应用中进行使用,最具革命的意义是,Hibernate可在应用EJB的J2EE框架中取代CMP,完成数据持久化这一重任。1.3.6MySQL数据库简介MySQL是当今最流行的开放源代码关系型的数据库管理系统,它是由瑞典公司开发并支持。任何人都能从Internet网站上下载MySQL软件安装包,无需任何费用,“开放源代码”意味着所有人都可以使用该软件。MySQL的运行速度、稳定性以及适应性相对其他数据库性能较好,具有选择它的优势。一般人都认为在不用事务化处理情况下,MySQL是管理内容的首选。1.4文章组织结构第一章绪论部分,主要阐述了该家庭理财管理系统开发背景、目的及意义,并对系统的前景进行展望和对系统所使用技术的进行介绍。第二章需求分析部分,简明介绍了该系统的可行性以及用户对该系统的需求情况。第三章总体设计部分,对该系统总体功能进行概要描述并对数据库进行具体分析。第四章详细设计部分,详细的介绍了各个功能模块实现的流程和界面的设计。第五章测试部分,对该系统进行功能、性能以及模块测试等,并给出了测试用例。2需求分析需求分析在整个软件工程中担任着至关重要的角色,只有分析者们正确的解读用户的需求,并提出相应的解决方案,这样软件开发人员才能根据具体要求向用户交出满意的软件系统。随着人们生活水平的提高,信息化显得尤为重要,计算机将继续并将长期占领着任何工作的主导地位,随着人们收入的日益增多,理财将成为人们的必选,所以人们急需一个操作简单、经济方便的家庭理财系统对家庭资产进行合理的分配管理。2.1可行性分析2.1.1技术可行性分析本系统主要采用JSP作为界面开发语言,SSH作为框架,数据库使用MySQL进行数据管理,开发环境为MyEclipse,并且使用流行的tomcat服务器,这些环境易于程序员进行软件开发且都是免费的开源软件。本系统主要采用Java语言进行编程,因为Java语言简单,方便易学,灵活性强。采用JSP做界面视图设计,采用JSP做界面视图设计,主要采用J2EE技术进行技术搭建。主要采用J2EE技术进行技术搭建。Struts框架由ServletFilters、StrutsCore、Interceptors以及Userceated模块构成。在Struts框架中,模型一般是由JavaBean进行业务逻辑的实现,控制器则是由ActionServlet和Action实现,视图则由JSP文件组成[7]。Struts2以WebWork为核心,采用拦截器的机制来处理用户请求,这样的设计也使得业务逻辑控制器能与ServletAPI完全脱离开。Hibernate是相对盛行框架用来解决O/RMapping的持久层问题,可在Servlet/JSP的Web应用中进行使用,最具有特点的是,Hibernate可以应用EJB的J2EE框架代替CMP,完成数据持久化这一重任[8]。Spring将J2EE各层的开发编码组合起来,是结合Struts和Hibernate两门学科的重要技术。由于所采用的框架技术很稳定,处理简单,而且本系统相对较小,技术上可以实现这些功能,所以本系统在技术上具有可行性。2.1.2经济可行性分析首先,因为开发本系统所需的开发工具和基本环境都是免费的,而且这个系统并不是公司或者企业投资项目,而是本人自己开发管理,所以减少了员工的劳动费用等一些其它的相关费用,即需要较低成本就可以进行开发管理。其次,虽然此系统开发成本较低,但并不会影响系统的功能,而且此系统占用资源相对较少,因为采用SSH框架,模块之间耦合性较低,所以利于后期进行修改和维护。最重要的一点是,因为家庭理财管理系统的目标就是帮助家庭成员进行理财,可以节制人们的花销,减少不必要的浪费,帮助人们进行投资理财,实现资产的增值,培养人们养成了理财的良好习惯,本系统具有低成本高收益的特点,所以本系统在经济上是可行的。2.1.3操作可行性分析由于本系统主要的用户是学生或者从事各种工作的人员,这些群体对电脑的基本操作基本熟悉,而且此系统界面简单,操作方便,在输入运行中都会有相关提示,只要多操作几次,就会对该系统了运用自如,使其成为自己理财的好帮手。所以该系统在操作上具有可行性。2.1.4法律可行性分析本系统在开发过程中,都是本人进行相关技术开发,并未涉及到侵犯他人版权的问题,而且该系统的各种内容合乎中国法律,所以本系统在法律上具有可行性。2.2功能需求分析该家庭理财系统主的要功能是用户使用计算机对自己家庭资产进行管理,让家庭资产管理变得有条有序。包括对家庭成员收支情况进行记录、查询、修改和删除,添加理财日志信息,可以进行统计分析等一些日常用到的功能。为了能让用户对该系统的功能一目了然,下面使用用例图及相关文字进行功能描述,该系统主要存在两种角色:用户和管理员。2.2.1用户功能模块用例图该模块的主要功能有:登录注册模块、个人信息修改模块、收入信息管理模块、消费信息管理模块、计划信息管理模块、数据统计分析模块、理财日志管理模块、计算器模块等等。用户整体用例图如图2.1所示。图2.1用户整体用例图1.登陆注册模块:用户根据自己的实际情况填写注册基本信息并进行系统登录。2.修改个人信息模块:当用户个人信息有变化时可以进行用户名密码等基本信息的修改。3.收入信息管理模块:用户可以对家庭成员每天的收入情况进行添加,并可以对添加的信息进行修改和删除。收入信息管理模块用例图如图2.2所示。图2.2收入信息管理模块用例图4.消费信息管理模块:用户可以对家庭成员每天的消费情况进行添加,并可以对添加的信息进行修改和删除。消费信息管理模块用例图如图2.3所示。图2.3消费信息管理模块用例图5.计划信息管理模块:用户根据自己的家庭资产进行合理的规划,计划每天或者每月要收入多少、要消费多少,勤俭节约,避免不必要的开销。计划信息管理模块用例图如图2.4所示。图2.4计划信息管理模块用例图6.统计信息管理模块:用户可以根据时间进行收入和消费的统计、实际收入和计划收入的统计、实际消费和计划消费的统计,并且可以用图表以及饼状图的形式展现出来,使用户一目了然。统计信息管理模块用例图如图2.5所示。图2.5统计信息管理模块用例图7.理财日志管理模块:当用户看见好的理财文章时可以将其添加到自己的理财日志中,用户也可以自己写一些理财的心得体会,并且可以对理财日志进行修改与删除。理财日志管理模块用例图如图2.6所示。图2.6理财日志管理模块用例图8.计算器模块:用户可以根据自己的收支与消费情况进行一些列的计算,方便用户的使用,而且可以根据自己选择的理财产品进行自计算,比较收益的高低,可以对自己家庭资产进行合理的计算与规划,合理的分配家庭资产。2.2.2管理员功能模块用例图该模块主要功能为:管理员进行系统登录,修改个人信息、管理用户信息。管理员功能模块用例图如图2.7所示。图2.7管理员功能模块用例图2.3业务流程图2.3.1整体业务流程系统业务流图描述:1.用户登录注册,用户根据自己的实际情况填写注册基本信息并进行系统登录。2.修改个人信息,当用户个人信息有变化时可以进行用户名密码等基本信息的修改。3.管理收入信息,用户将家庭成员每天的收入情况按照时间、金额、成员、类型等要求进行填写,可以添加收入备注,并可以进行信息的修改和删除。4.管理消费信息,用户将家庭成员每天的消费花销情况按照时间、金额、成员、类型等要求进行填写,并可以进行信息的修改和删除。5.管理计划信息,用户根据自己的家庭资产进行合理的规划,计划每天或者每月要收入多少、要消费多少,勤俭节约,避免不必要的开销。6.管理理财日志,当用户看见好的理财文章时可以将其添加到自己的理财日志中,并可以将相关网址进行链接,方便用户下一次进行查找使用,用户也可以自己写一些理财的心得体会,并且可以对理财日志进行修改与删除。7.管理员管理用户信息,管理员可以登录系统查看用户信息,并对用户信息进行修改删除等操作。图2.8系统业务流图2.4系统性能分析2.4.1软件环境开发工具:Myeclipse4.3以上。JDK:1.7版本以上。服务器:Tomcat7.0及以上。数据库:MySQL5.5及以上。2.4.2硬件环境内存:4G及以上。硬盘:4G。CPU:1.8HZ以上。2.4.3操作系统WindowsXP操作系统以上。2.5本章小结本章主要对该系统进行可行性分析,功能需求分析,系统性能分析等。经过分析,该系统开发具有可行性,并且通过用例图和流程图将系统的功能和流程清晰的表达出来,易于用户理解。3总体设计软件的总体设计就是设计系统总的处理方案,具体是指在需求分析的基础上,经过对系统总体的概括与总结,详细的整理出用户对系统的功能需求,而且对该系统的总体结构进行了严格明确的规划,确定了软件与数据的整体框架[9]。经过需求分析阶段的工作后,系统应该“做什么”已经清楚了,而现在是该确定“怎么做”的阶段了,即该系统应该如何实现的问题。总体设计阶段最重要的工作就是设计软件的结构。3.1系统概要设计3.1.1系统总体功能模块普通用户功能模块如图3.1所示:管理员功能模块如图3.2所示:图3.1普通用户功能管理模块图3.2管理员功能模块3.1.2各功能模块描述1.普通用户(a)登录注册:为了保证系统信息的安全性,任何人想浏览系统信息必须进行注册和登录。用户可以根据自己的真实情况填写注册基本信息并进行系统登录,系统在数据库中进行验证,并有弹窗提示,信息正确,登录成功;信息错误,登录失败重新填写登录信息。(b)修改个人信息:由于个人基本情况的变化,个人信息会出现必要的更新,这样用户可以根据实际情况进行用户名密码等基本信息的修改,达到信息的及时性。(c)收入管理模块:用户将家庭成员每天的收入情况按照时间、金额、成员、类型等要求进行填写,可以添加收入备注,并可以进行信息的修改和删除。(d)消费管理模块:用户将家庭成员每天的消费情况按照时间、金额、成员、类型等要求进行填写,并可以进行信息的修改和删除。(e)计划管理模块:用户根据自己的家庭资产进行合理的规划,根据自己的喜好购买相应的理财产品,不让资金在手中闲置,同时,将资产进行合理的规划,勤俭节约,避免不必要的开销。(f)统计分析模块:用户可以根据时间分别进行按日统计分析、按月统计分析、收入计划统计、消费计划统计等,而且用图表和饼状图的形式展现出来,使用户一目了然。(g)日志管理模块:当用户看见好的理财文章时可以将其添加到自己的理财日志,并可以将相关网址进行链接,方便用户下一次进行查找使用,用户也可以自己写一些理财的心得体会,并且可以对理财日志进行修改与删除。(h)理财计算:用户可以根据自己的收支与消费情况进行一些列的计算,方便用户的使用,而且可以根据自己选择的理财产品进行自计算,比较收益的高低,可以对自己家庭资产进行合理的计算与规划,合理的分配家庭资产。2.管理员(a)修改个人信息:管理员可以随时因为信息更新进行信息修改,保证个人信息的准确性。(b)管理注册用户信息:管理员可以登录系统查看用户信息,并对用户信息进行一些列的操作。3.2数据库设计随着计算机应用技术的快速发展,对数据处理量的要求也在增加,对计算机中各种数据共享程度的要求也越来越高,选择一个合适的数据库是重要的,而传统的小容量已经满足不了人们愈发膨胀的高要求,从而功能强大的数据库技术应用而生。数据库在计算机系统中扮演着核心的地位,计算机在数据库系统的协助下,可以进行一些信息的收集、查询、处理、更新等一些列操作。要设计一个好的数据库,不仅要考虑系统的功能、执行速度,还要考虑系统工作是否会出现各种异常等等,因此整个系统的程序质量、系统的具体实现等等都取决于数据库的设计是否合理。3.2.1实体属性分析该系统主要是对家庭资产进行管理,主要的功能模块有:管理员模块、用户信息模块、收入信息模块、消费信息模块、计划信息模块、理财日志信息模块等等。这些功能主要涉及到的实体有:用户、管理员、收入信息、消费信息、计划信息、理财日志信息等等。下面依次用实体属性图对各实体的属性进行分析。常用的模型元素如图3.3所示。实体属性实体间关系图3.3模型元素1.用户实体:该实体的属性有id、姓名、性别、联系方式、家庭地址、账号、密码。用户实体属性图如图3.4所示。图3.4用户实体属性图2.管理员实体:该实体属性有编号、用户名、密码。管理员实体属性图如图3.5所示。图3.5管理员实体属性图3.收入信息实体:该实体的属性有编号、时间、金额、成员、类型、备注、用户id。收入信息实体属性图如图3.6所示。图3.6收入信息实体属性图4.消费信息实体:该实体的属性有编号、时间、金额、成员、类型、备注、用户id。消费信息实体属性图如图3.7所示。图3.7消费信息实体属性图5.计划信息实体:该实体属性有编号、时间、金额、项目、用户id。计划信息实体属性图如图3.8所示。图3.8计划信息实体属性图6.理财日志信息实体:该实体属性有编号、时间、内容、标题、用户id。理财日志信息实体属性图如图3.9所示。图3.9理财日志信息实体属性图3.2.2数据库概念结构设计数据库的设计包含了概念结构设计、逻辑结构设计、物理结构设计等一些列相关设计步骤。数据库的概念结构设计,就是对计算机信息世界进行建模。通常会使用E-R模型设计方法。使设计者能够从复杂的实现中找到解决的办法。其中E-R模型涉及的主要元素有:实体、联系和属性。根据以上分析,并且融合数据库概念模型特点与其建立方法,建立该理财系统的E-R模型如下所示:普通用户总体E-R图图3.10普通用户总体E-R图管理员E-R图图3.11管理员E-R图3.2.3数据库逻辑结构设计数据库逻辑结构设计既是把概念结构设计阶段设计好的E-R图转换成逻辑数据表的形式。根据以上的E-R图,该家庭理财系统建立了对应的如下逻辑数据结构表,下面是各表的详细说明。1.收入信息表是记录用户的收入信息,包括时间、金额、成员、类型等等,表结构如表3.1所示。表3.1收入信息表(t_shouru)列名数据类型长度允许空是否主键说明Idint11否是编号Shijianvarchar50是否时间Jinedecimal18,2是否金额Chengyuanvarchar50是否成员Leixingvarchar50是否类型Beizhulongtext100是否备注user_idint11是否用户id2.消费信息表主要是记录用户的消费信息,其中包括时间、金额、成员、类型等,表结构如表3.2所示。表3.2消费信息表(t_xiaofei)列名数据类型长度允许空是否主键说明Idint11否是编号Shijianvarchar50是否时间Jinedecimal18,2是否金额Chengyuanvarchar50是否成员Leixingvarchar50是否类型Beizhulongtext100是否备注user_idint11是否用户id3.计划信息表记录用户计划信息,计划项目、时间和金额,表结构如表3.3所示。表3.3计划信息表(t_jihua)列名数据类型长度允许空是否主键说明Idint11否是编号Shijianvarchar50是否时间Jinedecimal18,2是否金额Xiangmuvarchar50是否项目user_idint11是否用户id4.日志信息表主要记录是用户填写的日志信息,而其中包括标题、时间和内容等等,表结构如表3.4所示。表3.4日志信息表(t_rizhi)列名数据类型长度允许空是否主键说明Idint11否是编号Shijianvarchar50是否时间Contentdecimal18是否内容Titlevarchar50是否标题user_idint11是否用户id5.管理员信息表主要用于记录管理员以及用户的账号信息,其中包括用户名和密码等等,表结构如表3.5所示。表3.5管理员信息表(t_admin)列名数据类型长度允许空是否主键说明userIdint4否是编号userNamevarchar50否否用户名userPwvarchar50否否密码6.用户信息表主要是记录普通用户个人信息,包括用户名、性别、地址、联系电话等等,表结构如表3.6所示。表3.6普通用户信息表(t_user)列名数据类型长度允许空是否主键说明user_idint11否是用户iduser_realnamevarchar50是否用户姓名user_sexvarchar50是否用户性别user_telvarchar50是否联系方式user_addressvarchar50是否家庭地址user_namevarchar50是否用户账号user_pwvarchar50是否用户密码3.3本章小结本章主要介绍基于J2EE技术的家庭理财系统的总体设计,基于上一章的需求分析,主要对该系统的功能进行了总体概括,给出了总体功能概要图,并对数据库进行了分析,给出了实体属性分析图和E-R图以及逻辑结构表,为下一章的详细设计奠定了基础。4详细设计详细设计阶段的目的是确定怎样具体实现该系统的所要求的所有功能,在本过程中要求对第三章中的总体设计进行具体化的设计,使总体设计更加细致化。通过本章的设计,实现了最终的编码,完成了系统的实现。4.1系统文件组织结构图4.1系统文件组织结构图4.1.1文件夹src介绍1.以dao结尾的包这个包主要包含对数据库基本表操作类,主要实现的功能是对各个表的基本操作,并由控制层调用该包下的各种方法。2.以model结尾的包这类包主要存放一些数据库实体文件,hibernate的映射文件等等,这个包中的基本文件在理论上是不允许更改的,除非要求更改表结构并重新映射文件。

3.以service结尾的包这类包中文件主要是实现Service层(业务逻辑层),这个包下的类是以DAO包下的类作为基础,并对其进行包装而完成系统所需的业务逻辑。4.以action结尾的包该包下放的是Struts2中的action类,在JSP界面中的请求通过的action包下类进行加工处理,并得到想要的数据后由前台来显示。

5.以util为结尾的包该类包中的类主要包含的是系统的某些工具类,在系统提出一些常被用到的方法类存放在这里,例如上传下载处理以及一些字符的处理等。4.1.2文件夹web介绍该文件夹中,admin包存放着实现管理员功能的*.jsp文件。ause包里存放了前台的一些jsp页面文件,js文件夹中存放着一些要用到的核心js文件。css文件夹中存放着这个系统总体css样式文件。4.2普通用户功能模块4.2.1用户信息模块1.用户注册(1)系统概述为了保证系统的安全,任何用户使用本家庭理财系统必须首先注册一个账号,否则不能查看该系统的任何信息,点击主界面上的注册按钮进行用户注册,将出现如图4.2所示的界面:根据页面提示填写注册的基本信息,当填写的用户名已经被占用时,将会出现该用户名已经被占用请重新注册的提示信息等一系列的验证。(2)界面设计图4.2普通用户注册界面(3)实现流程图4.3用户注册模块时序图2.用户登录(1)系统概述用户注册成功后,在登录界面上输入正确的用户名及密码,并选择登录身份为管理员还是用户,点登录按钮,将自动跳转到关于登录的service中,在service中将对输入的用户名和密码进行匹配,通过验证则进入对应的下一个页面。对应的关键代码在Service包下的loginService类中。当用户名为空时,将出现用户名为空的弹框提示;当密码为空时,将出现密码为空的弹窗提示;登录身份为必选项,当用户名或者密码错误时,会出现用户名或密码错误的弹框提示;当用户名和密码通过验证时,将弹出验证通过的弹框,如图4.5所示,点击确定将进入到下一界面。如图4.6所示。(2)界面设计登录界面如图4.4所示:图4.4登录界面图4.5系统提示界面图4.6系统主界面(3)实现流程图4.7系统登录模块时序图3.修改个人信息(1)系统概述普通用户登录后进入系统,点击修改个人新按钮,可以进行一些列的除帐号以外的个人信息的修改,如用户密码、联系电话、详细住址等。且用户个人信息修改成功后只有重新登录才能生效。其中修改个人信息对应的关键代码请见action包下的UserAction类中的userEdit()方法。(2)界面设计该程序运行的界面如图4.8所示。图4.8修改个人信息界面(3)实现流程图4.9修改个人信息模块时序图4.2.2收入管理模块1.添加收入信息(1)系统概述当用户点击添加收入信息按钮后会进入如图4.10所示界面,按照页面文字提示,选择时间,并可以添加备注消息,让每一笔收入都清晰易懂,接着点击“提交”即可完成收入信息的添加。其中输入的信息数据通过form表单中的方法onsubmit=“returncheckForm()”进行检查,checkForm()方法是各种日常生活验证输入数据的一种方式。(2)界面设计添加收入信息的页面如图4.10所示。图4.10添加收入信息界面(3)实现流程图4.11添加收入信息模块时序图2.管理收入信息(1)系统概述用户可以点击管理收入信息按钮后进入如图4.12所示收入信息管理界面,此时通过调用后台的action类查询出当前用户的所有收入信息,并将信息传到数据集合List中继而与request对象进行捆绑,最后跳转到相应的页面。用户想要删除收入信息点击“删除”操作即可。关于添加/管理用户收入信息相应的关键代码见:action包下的shouruAction类。(2)界面设计图4.12管理收入信息界面(3)实现流程图4.13管理收入信息模块时序图4.2.3消费管理模块1.添加消费信息(1)系统概述用户通过点击添加消费信息按钮后进入图4.14界面,用户根据自己家庭当日的消费情况进行逐一的添加,根据界面文字选择时间等操作,点击提交按钮即可以完成信息的添加。输入的数据通过form表单中的方法onsubmit=“returncheckForm()”可以进行检查验证,checkForm()方法是各种日常生活校验输入数据的一种方式。(2)界面设计图4.14添加消费信息界面(3)实现流程图4.15添加消费信息模块时序图2.管理消费信息(1)系统概述当用户点击管理消费信息按钮后进入图4.16所示界面,此时通过调用后台的action类可以查询出当前用户的所有消费的信息,并将信息数据传到数据集合List中从而与request对象进行融合,并跳转到相应的页面。用户如果想删除消费信息可以点击“删除”操作即可。关于添加管理用户消费信息的相应关键代码见:action包下的xiaofeiAction类。(2)界面设计图4.16管理消费信息界面(3)实现流程图4.17管理消费模块时序图4.2.4计划管理模块1.添加计划信息(1)系统概述计划信息的管理实现基本与消费、收入管理实现相一致,此功能的实现是为了加强理财规划,实现消费与收支平衡,点击添加计划信息按钮将出现如图4.18所示的界面,选择是计划项目还是消费项目,并按照时间填写所要达到的金额,最后点击提交按钮,即表示你添加成功。(2)界面设计添加计划信息界面如图4.18所示。图4.18添加计划信息界面(3)实现流程图4.19添加计划信息模块时序图2.管理计划信息(1)系统概述通过点击主界面上的管理计划信息按钮,将出现如图4.20所示的管理计划信息界面,在该界面上可以将不想要的计划删除,也可以继续进行计划添加。(2)界面设计图4.20管理计划信息界面(3)实现流程图4.21管理计划信息模块时序图4.2.5统计分析管理1.按日统计分析用户可以任意选择某一特定日期,统计每天收入与消费的情况,给出当日的收支差额,并且分别用表格与饼图两种形式表示出来,清晰且直观,能给用户呈现出良好的视觉效果。其中饼图是使用了JFreechart这个开源控件实现。关于用户按日统计分析收入消费信息的相应关键代码见:WebRoot下的tongji文件。界面如图4.22所示。图4.22按日统计分析界面2.按月统计分析用户可以选择特定的月份,进行收入与消费的查询统计,给出当月的收支差额,并且用表格与饼图的格式表现出来,清晰明朗,一目了然,便于用户观察统计分析。该界面如图4.23所示。图4.23按月统计分析界面3.收入计划统计用户可以按照月份进行查询查看每月实际收入与计划收入的金额,并可以统计出差额,提高了理财的精确度,有利于家庭资产的使用与分配。收入计划统计界面如图4.24所示。图4.24收入计划统计界面4.消费计划统计用户可以按照月份进行查询查看每月实际消费与计划消费的金额,并可以统计出差额,提高了理财的精确度,有利于家庭资产的使用与分配。消费计划统计界面如图4.25所示。图4.25消费计划统计界面4.2.6理财日志管理1.添加理财日志(1)系统概述当用户看到好的与理财相关的文章或有自己的理财心得体会想要记录下来时,可以进入系统点击添加理财日志按钮,根据界面上文字提示进行相应的输入即可发表自己的理财日志。关于此部分理财日志的编辑,这里用到了从网站上下载的一个实用在线编辑器。下载之后需要把相关文件直接导入WebRoot的文件夹下,接着用记事本把ewebeditor.htm的文件打开,并将config.ServerExt中的值“asp”;改成相应的“jsp”,这样可以进行文本的编辑。最后在添加日志的jsp页面中(rizhiAdd.jsp)加入<%@tagliburi=""prefix="FCK"%>即可。(2)界面设计图4.26添加理财日志管理界面(3)实现流程图4.27添加理财日志模块时序图2.管理理财日志(1)系统概述如果用户想要管理添加的理财日志,则点击管理理财日志按钮跳转到管理理财日志界面如图4.28所示,这时调用后台的理财日志从Action类查询该用户所有的相应理财日志信息,并将查询到的信息传到数据集合List中从而绑定到request对象,最后将跳转到相应的jsp页面,并显示用户的添加理财日志信息。关于管理用户理财日志信息相应的关键代码见:action包下的rizhiAction类。(2)界面设计图4.28管理理财日志界面(3)实现流程图4.29管理理财日志模块时序图4.2.7理财计算模块1.系统概述为了方便用户进行理财方面的计算,本系统为用户设计了一个可以使用计算器的功能,该功能为用户点击使用计算器即可弹出系统的计算器,方便用户使用,关于用户使用计算器的功能主要编写的代码为调用用户系统程序中自带的计算器,详细代码见WebRoot下的Calculator文件。2.界面设计图4.30计算器使用界面4.3管理员功能模块4.3.1修改个人密码1.系统概述用管理员身份进行登陆,管理员可以修改密码。2.界面设计图4.31修改个人密码界面3.实现流程图4.32修改密码模块时序图4.3.2.注册用户管理1.系统描述管理员可以对注册的用户进行相应的操作,点击注册用户管理即可进入管理页面。此时会调用后台的action类查询出所有的注册用户的相关信息,并把找到的信息传入到数据集合List中从而与request对象进行绑定,最后跳转到与之对应的JSP页面,显示如图4-33的所有用户信息。如果管理员因为信息的及时性想要删除数据库中的某个用户时,则点击用户信息后面的“删除”按钮,这样即可完成某个用户的删除操作。关于注册用户信息管理对应的关键代码见:action包中的UserAction类。点击“安全退出系统”即可跳转到系统的主界面。2.界面设计图4.33管理员管理注册用户界面3.实现流程图4.34注册用户管理模块时序图4.4本章小结本章主要对家庭理财管理系统进行了详细的具体的设计,主要对该系统各个模块进行具体编码,代码实现,并对该系统的各个功能模块进行系统描述与页面设计,同时给出具体的实现流程,并用时序图表示出来。5软件测试对本系统进行需求分析、软件总体设计、详细编码过程,对该系统整体运行后将进入到软件工程的测试阶段。虽然对于软件系统工作将接近尾声,但是不可忽略软件测试阶段的任务,因为在软件测试阶段之前,每个阶段都避免不了会产生一些缺陷,如果不对这些问题和缺陷进行及时的改正,那么该系统很可能无法正常运行,而且一定会给使用该系统的用户或者公司企业造成无法弥补的损失。5.1测试的目的测试的目的是为了检测出程序中存在的错误,而不是为了验证所开发的程序是否正确,良好得软件开发人员要具备良好的测试能力。要正确理解和认识测试的目的,这样才能设计出具有针对性的测试方案,减少系统的缺陷,我们进行软件测试的目的就是发现程序中存在的bug,其实在公司的大部分软件开发中,大部分的工作就是修改bug,因为代码都是人写的,而人避免不了会出错,所以作为一个软件开发人员具有良好的自检能力很重要。5.2测试的原则对于任何要开发的软件产品或者系统来说,ZeroBug都是一种理想,而Good-Enough是我们追求的原则,对于一个软件产品来说,不可以不测试,也不可以过度的测试,要掌握适度的分寸,抓住核心的模块,不让疏漏成造成公司的损失。而如何能让测试工作介于两者之间呢?答案应该是具体问题具体分析,在不漏掉所有功能的前提下,要达到最低的界限,要满足最低测试通过标准。5.3测试的内容软件测试的内容主要包括:该软件的界面是否达到了要求、是否具有美观性、功能的实现是否具有良好的完整性、性能是否符合要求、系统的稳定性是否达到了标准、操作是否具有简洁性、安全性能是否达到预期标准以及各个功能模块是否具有良好的衔接性等等。5.3.1功能测试功能测试又称黑盒测试,主要是验证在需求分析报告中出现的功能是否被系统实现[10]。功能测试就是对产品的功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求功能。功能测试主要试发现以下错误:功能遗漏、界面错误、数据结构或外部数据库访问错误、性能错误等等。只需要考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码。测试结果表明在需求分析阶段出现的功能均已被实现,有错误的地方也被改正过来。功能测试结果如表5.1所示。表5.1功能测试结果测试内容功能测试目标描述存在的问题处理结果备注新用户的注册用户填写基本信息是否能存入用户表满足功能要求无用户及管理员进行登录查询数据库表进行校验是否能成功登录满足功能要求无修改个人基本信息是否可以对数据库表中的用户信息进行修改满足功能要求无收入以及消费信息管理是否可以对该收入表及消费表进行增、删、改、查操作满足功能要求无计划信息管理是否可以对计划表进行增、删、改、查操作满足功能要求无统计数据及分析是否对数据库中的数据按照要求进行统计分析满足功能要求无理财日志信息管理是否可以添加及管理理财日志满足用户要求无使用计算器是否可以进行简单的计算满足用户要求无管理用户信息管理员是否可以对注册的用户进行管理满足用户要求无5.3.2性能测试性能测试即为在系统进行整体性编码并运行后,该系统信息数据的完整性约束及整个系统的一致性是否达到基本性能指标。性能测试结果如表5.2所示。表5.2性能测试结果测试内容性能测试目标描述存在的问题处理结果备注响应时间对请求作出的响应时间是否过长两处链接时间较长修改后时间缩短数据是否一致数据提交前后是否一致无无容量测试当该系统添加了大量的数据后是否能正常运行前期阶段数据库容量过小在之后程序完善的过程中逐渐被改善系统稳定性测试执行一些列操作系统是否会出现故障问题无无兼容性测试该系统是否与计算机操作系统中的其他程序兼容GOOLE浏览求出现问题,因为不兼容chrome内核采用两种内核都能解释的写法系统安全性系统是否安全无合法的用户可以登录系统,非合法不能登录系统,不允许不登陆访问页面5.3.3模块测试模块测试是为了保证每个模块作为一个独立的单元能够正确运行,所以模块测试通常又被称为单元测试。在这个测试过程中发现的基本是由于编码和设计考虑不足出现的错误。系统功能模块的测试包含了子模块的各个子功能的测试,测试每个模块每个功能时不仅要考虑到界面的友好性、功能是否完善还要兼顾子功能的流程是否合理等。子模块测试的完成是随后整体测试能够完成的前提。用户的系统子模块测试结果如表5.3所示。表5.3用户系统子模块测试结果子模块的名称界面的友好性流程的正确性功能的完善性存在问题处理结果备注用户登录友好正确一般——用户注册友好正确良好——用户修改个人信息友好正确良好——添加收入信息友好正确一般——管理收入信息一般一般一般——添加消费信息一般正确一般——管理消费信息友好正确较好——添加计划信息友好正确较好——管理计划信息一般正确较好——按日统计分析一般正确良好——按月统计分析一般正确良好——收入计划统计一般正确一般——消费计划统计友好正确一般——添加理财日志信息友好正确较好——管理理财日志信息一般正确较好——使用计算取一般正确良好——管理员的系统子模块测试结果如表5.4所示。表5.4管理员系统子模块测试结果子模块的名称界面的友好性流程的正确性功能的完善性存在问题处理结果备注管理员登录友好正确一般——修改密码友好正确良好——管理用

温馨提示

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

评论

0/150

提交评论