关于《储蓄综合业务平台》开发系统的项目总结

第一章  项目基本情况

1.1 项目概括

    储蓄综合业务平台是一个基于银行柜员操作系统的抽象和概要的设计应用界面,其中包含了银行柜台用户的开户、存款、取款、查询和销户的基本功能,还延伸了帐号的转帐、挂失、冻结、解挂、解冻和计算利息的扩展功能。

1.1.1 项目简介

    储蓄综合业务平台是一个银行柜员系统的印象和缩影,具有很大的可观性和可操作性。

1.1.2 指导老师

   本项目的实训工程师是刘未昕工程师,多年钻研开发于对日外包项目,有深厚的工作经验和素质能力。项目实训中会遇到棘手的难题,刘未昕工程师给予的热心的帮助和引导,使得项目顺利完工。自学能力的提升,开发软件的过程了解,谨以此向刘老师致敬!

1.2 项目过程的基本回顾

 

1.2.1 项目时间

    项目自2009年7月21日正式发布,结束于2009年7月31日项目评审,过程合计10个工作日。

1.2.2 主要项目内容

    系统模块的划分,各个功能模块的打包设计,数据访问文件的流体和格式化应用及多种程序抛出异常的处理,界面的美化设计。同时还有制定项目进度表和每天的工作日志记录。

1.2.3 主要项目过程

    项目的前4 个工作日进行了类的定义,各种用户操作界面的处理及工具类的实现。后6个工作日主要进行对文件的数据查询、修改并更新数据,以达到与用户交互、保存记录的作用。

第二章 项目任务与完成情况

2.1 本人承担的主要工作

     由于本项目开发基础性知识甚广,因此每个员工均独立进行项目研究,对于本项目个人全权负责。

2.2 完成项目任务的技术方案与步骤

    技术方案:

    在JRE运行环境下,用ant软件开发工具对各个模块的包进行编译和调试,通过数据流对文件进行读写更新操作,并实现格式化处理,得到最终的用户操作界面。

    步骤:

一、根据需求分析定义各个模块的类的实体和属性,以及文件的读存方式,并制定科学合理的具体的项目进度表。

二、编码并将不同的类分包处理,并实现多种测试类的返回方法和包的相互调用,以实现程序的易读性、健壮性和多态性。

三、进行最后阶段的注释编写和程序测试,修改和完善个别异常和BUG,以实现程序的稳定和可靠性,避免程序出现偶然崩溃。

四、制作相应的演讲课件,为介绍自己的项目成果做好充足的准备,调整好平和的心态迎接评审的到来。

   2.3 项目中的问题和解决方法

    在开发的过程中,遇到了文件数据流如何实现文件读写更新的难题,因为由于经验有限在此之前从未使用过类似的流的操作和文件的储存,通过自学能力的提升和JAVA API的使用解决了此关。

在帐户的挂失、冻结和利息结算时牵涉到一个时间差值的问题,通过刘未昕工程师的指导和帮助,实现了时间差的准确定位和计算,最终顺利实现了解挂、解冻等功能。

   2.4 项目任务完成的情况

    截至项目评审时,储蓄综合业务平台的基本功能均已实现,扩展功能也实现有余,主要有银行利率的调整、流通金额的大写验证、帐户明细帐等功能尚待完善,整个项目进行流程进展顺利。

第三章 项目需求提取,评审与交付情况总结

   3.1 项目需求分析与总结

    由于是第一阶段缺乏项目实战经验,项目需求分析文档由刘未昕工程师提供,因此并没有进行个人的需求分析。但从分析文档来看,如何把生活中具体的事物抽象化成JAVA语言中的对象仍然是一个重点,需继续学习领悟。

第四章 项目总结

 

    储蓄综合业务平台,让我对银行柜员的操作系统有了全新的了解,除了用户的开户,存款,取款,销户等各种功能之外,它们背后有很多的细节在考验一个软件开发人员的心思缜密程度。比如存款时用户的余款是不能公布的,转帐的时候不能向自己的帐户转帐,而且转帐金额不仅是整数,不能为0,更不能为负值。但实际情况是这些细节被忽略了,最后在评审的时候异常接踵而至,让人哭笑不得。

    同时,项目开发中运用了大量新的知识,JAVA的打包设计,文件存取时继承Serializable 序列化接口,Decimal金额的各种换算方法以及format方式,还有dateformat的日期格式方法,让人耳目一新。当然新的知识和方法永远都是学不完的,能够有独立的自学能力无论在生活中还是工作中都是至关重要的,而这也是我努力的重点所在。

    这个项目有很多新的亮点,比如实现文件的格式化存取,各种人性化的界面验证等。虽然缺少了接口和抽象类的实现,让类的多态性降低了一个层次,但我们相信通过最终的努力每个人的脑海中都会形成自己独特的思维模式。而且是独一无二的,那将会是我们闪光的财富。

唯一让我遗憾的是我试图用ArrayList或HashMap进行文件存取的时候一直无法连接成功,最后只得放弃了这一稍高水平的思路。不知道是水平,还是时间问题,我认为我可以解决它——Just do it!

每一个项目都有它背后的故事,无论这个故事是咸的还是甜的。但既然我们认定了它,就会全力以赴让它散发出自己独特的光彩。

 

    通过第一阶段的学习,我了解了关于软件开发在以前所没有了解到的很多过程细节,但我想在这次项目实战中我得到最多的就是自学能力方面有相当的提升。

    没有永远顺风的船,没有永远逆行的风,既然走上了这条对大部分人来说相当陌生的路,就避免不了风雨的洗礼。在开发项目的过程中,的确遇到了不少的问题,但是通过各种手段最终还是解决了一部分前行的阻碍,有了收获自然是让人欣喜的事情。

    最后通过向同学、老师、网友等多种渠道的学习,我的解决问题的思路已经大致形成了如下几点:

1. 自己写代码测试,并找出原因;

2. 查看JAVA API或教科素材;

3. 请教周围的员工;

4. Google或 百度一下;

5. 发布一些JAVA帖子或 向JAVA高手群请教;

6. 当问题还是无法解决(也有可能时间太仓促),最后会向JAVA实训工程师(也就是上班时公司的经理)虚心请教。

    说实话,遇到问题时我会全力以赴把问题控制在前4条的范围内寻求结果,将问题解决在底层是我的愿望。当然遇到难以跨越、棘手的问题,向工程师请教是非常有必要的,那是一种能力的提升,经验的积累,不同思维模式的碰撞,最后的成果就是胜利的火花。

    有人说,每天面对着毫无思想的枯躁的代码的程序员是没有感情的动物,但是我想说:程序员也有感情,也有喜怒哀乐,也有独特的思想,但他们的思想感情在固定的生存环境模式下只能表现在在外人看来杂乱无章的程序中。有时,程序员会对着一段莫名的程序发笑,那个时候应该会明白程序也有自己的感情,因为它的运行环境中流动着的是开发者的思想。当一个人真正爱上一份工作的时候,那才是他真正的幸福。执着的爱,随和而不僵硬。

    在这段辛苦而欣慰的日子里,很荣幸能够有那么多的人给予我关怀和帮助,并鼓励我勇敢地走下去。我不想说“我想”,而是要说:我一定会义无反顾执着地往前走,起跑后就永不后退!

 

 

参考文献

JAVA程序设计   编著  王建虹 孙波

百度JAVA吧  《JAVA学习之路:不走弯路,就是捷径》

致谢:

    在此我要向刘老师,吴督导,还有帮助过我的熟悉的或者是不认识的员工表示真挚的感谢和敬意,谢谢!

项目名称:Bank Account Management System 银行账户管理系统 简称BAM 项目描述:这是一个基于C/S结构的银行账户在线管理系统,用户可以通过ATM终端界面来操作自己的银行账户. 项目实施方式:这是一个同步练习,随着达内CoreJava课程的深入,这个项目将趋于完整,学员的任务是随着知识点的深入,完成每一个进阶的项目要求. 项目一 练习1:(面向对象基础语法) 写一个账户类(Account),属性: id:账户号码 长整数 password:账户密码 name:真实姓名 personId:身份证号码 字符串类型 email:客户的电子邮箱 balance:账户余额 方法: deposit: 存款方法,参数是double型的金额 withdraw:取款方法,参数是double型的金额 构造方法: 有参和无参,有参构造方法用于设置必要的属性 练习2:(封装) 将Account类作成完全封装,注意:要辨别每个属性的set/get方法是否需要公开 练习3:(继承,多态) 银行的客户分为两类,储蓄账户(SavingAccount)和信用账户(CreditAccount),区别在于储蓄账户不允许透支,而信用账户可以透支,并允许用户设置自己的透支额度. 注意:CreditAccount需要多一个属性 ceiling 透支额度 为这两种用户编写相关的类 同时要求编写Bank类,属性: 1.当前所有的账户对象的集合,存放在数组中 2.当前账户数量 方法: 1.用户开户,需要的参数:id,密码,密码确认,姓名,身份证号码,邮箱,账户类型(int),返回新创建的Account对象 2.用户登录,参数:id,密码 返回Account对象,提示 用s1.equals(s2)判断s1和s2两个字符串内容是否相等 3.用户存款,参数:id,存款数额,返回修改过的Account对象 4.用户取款,参数:id,取款数额,返回修改过的Account对象 5.设置透支额度 参数:id,新的额度 ,返回修改过的Account对象.这个方法需要验证账户是否是信用账户 用户会通过调用Bank对象以上的方法来操作自己的账户,请分析各个方法需要的参数 另外,请为Bank类添加几个统计方法 1.统计银行所有账户余额总数 2.统计所有信用账户透支额度总数 写个主方法测试你写的类 项目二 练习4:(语言高级特性,三个修饰符) 1.修改Account类,银行用户的账号(id)是自动生成的,初始值为100000,第一个开户的用户id为100001,第二个为100002,依此类推. 提示:构造对象的时候采用static属性为id赋值 2.对于Account类,有两个方法,存款方法和取款方法,请修改这两个方法. 存款方法改为不允许子类修改 取款方法根据不同的子类而不同,因此,改为抽象方法,在两个子类中分别实现 3.将Bank类作成单例 项目三 练习5:(接口) 为SavingAccount和CreditAccount各自添加一个子类 LoanSavingAccount类:用户可以贷款,不可以透支 LoanCreditAccount类:用户可以贷款,可以透支 说明:贷款和透支是不一样的,透支指的是账户余额小于0,而贷款用户需要一个贷款额的属性. 在ATM机上,用户可以选择贷款,也可以选择还贷款,而还贷款就是要把账户余额上的资金转到贷款额上 例如:用户余额10000元,贷款额100000元,用户可以选择还款5000元,则用户余额变为5000,贷款额变为95000元. 利用接口来抽象出LoanSavingAccount类和LoanCreditAccount类的共性 接口中的方法: requestLoan:贷款 payLoan:还贷 getLoan:获取用户贷款总额 为Bank类添加三个方法, 贷款:参数 id,贷款额,返回修改过的Account对象 还贷款:参数 id,还款额,返回修改过的Account对象 统计所有账户贷款的总数 练习6:(Object) 为Account类及其子类添加toString方法和equals方法 项目四 练习7:(Exception) 为BAM添加几个异常类 BalanceNotEnoughException :用于取钱的时候余额不足的情况(包括账户余额超过透支额的情况) RegisterException:用于开户异常的情况,例如密码两次输入不一致等情况 LoginException:用户登录异常的情况,例如id错误,密码错误 LoanException:贷款额不能为负数,如果用户试图将贷款额置为负数,则会抛出这个异常 以上四个异常类有一个共同的父类 BusinessException 并妥善的处理这些异常 项目五 练习8:(集合) 改写Bank类,采用集合的方式来管理多个Account对象 为Bank类添加一个方法 打印所有用户的总资产排名 说明:一个用户可能会有多个账号,以身份证号为准.总资产指多个账户余额的总和,不需要考虑贷款账户的贷款额 项目六 练习9:(GUI) 为BAM添加用户界面 需要以下几个类: BAMClient 其中会包含一个Frame,这是用户主界面 MainPanel:主界面,用户可以选择开户或者登录 RegisterPanel:用户开户具体用到的界面 LoginPanel:用户登录需要的界面 BusinessPanel:界面上会显示账户的功能 至少包括存款和取款,对于可透支的用户,还允许用户修改透支额度,对于贷款用户,还允许用户贷款和还贷款 注:本练习的界面布局不做要求,请阅读现有代码,添加事件处理代码 提示:在开户或者登录之后都会跳到BusinessPanel,而用户点击了交易之后,界面停留在BusinessPanel 要随时注意在BusinessPanel上根据数据的变化更新显示信息 项目七 在该加资源保护的地方加上,没有标准 项目八 练习10:(I/O) 修改Bank类,账户信息会采用对象序列化的方式存放在文件中.当Bank对象生成的时候会读取文件,设置账户集合.当账户信息改变的时候,会随时更新文件 设计一个FileDAO类(文件数据访问对象),负责对文件的访问,包括存放账户,提取账户等方法,在Bank类中,会通过FileDAO对象来访问文件 注意:如果已有的账户对象会存在文件中,那么为新的账户对象分配id的做法也应相应的改变,过去的用static属性的做法不再合适,应该改为,把下一个可用的id存放在一个文件中,每创建一个新对象的时候都会读取这个文件,获得新对象的id,并且修改文件中的id,使其加1.这个工作可以放在Account类的构造方法中 项目九 练习11:(网络) 在现有的BAM中,用户是通过界面直接访问Bank对象的,将其改为C/S结构,由界面充当客户端,通过TCP协议访问服务器端的Bank对象. 提示:客户端和服务器端需要通过对象来传递信息,这里会使用对象序列化技术.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值