开题报告银行贷款系统.docx
《开题报告银行贷款系统.docx》由会员分享,可在线阅读,更多相关《开题报告银行贷款系统.docx(9页珍藏版)》请在冰豆网上搜索。
开题报告银行贷款系统
毕业设计(论文)开题报告
学院:
软件学院
专业:
软件工程
设计(论文)题目银行贷款系统WEB应用的设计与实现
学生姓名谢开浪学号********
指导教师戚晓芳
顾问教师
教研室主任
教学院长(教学系主任)
2014年3月15日
毕业设计(论文)开题报告
论文题目
银行贷款系统WEB应用的设计与实现
一、选题背景和意义:
在公司参与某银行贷款系统部署的项目。
本人对贷款系统有了一定的认识与了解。
企业贷款管理系统的建立就是为银行经营决策提供更加可靠的数据依据。
该系统是建立在银行各种业务系统之上,从各业务系统中进行数据的抽取和分析,保证了数据的可靠和完整,通过后台服务器的计算,保证了所得到的结果更加准确、反映的内容也更加的全面。
在风险控制方面,贷款系统的应用能够更加及时的反应出各项指标的预期与发展趋势,为银行决策者提供接近实时的数据反馈,使高效敏捷的风险控制成为可能。
贷款系统的建立可以帮助银行更快的响应贷款申请,优化审批流程,进一步推进银行效率改革的步伐。
客户关系是银行的关键资源,在贷款审批过程中,对客户与其他相关人员之间的关系的管理,并由此引申出来的其他种种,都需要一个整合的平台来管理。
并且使小微型企业或个人的贷款的响应时间,批复速度得到质的提升。
这种平台为小微型企业的融资提供了更多可能性,解决了这些企业与个人在发展中的一大难题。
所以想结合实际工作中的内容和自身对Ruby程序设计语言的爱好,来进行毕业设计。
对原贷款系统的业务逻辑进行分析与改进,基于自身技术水平对系统设计进行简化,并使用自己感兴趣的技术RubyonRails(以下简称RoR)应用框架来实现。
这样选题的意义在于,既能将工作中的一些心得体会进行梳理和总结提炼,也可以锻炼自己的系统设计能力,编程能力,乃至创新能力,以及可以积累代码排错与测试方面的经验。
我将尝试在做毕设的过程中使用一些以前没有使用过的方式方法,工具。
之所以选择开发网页应用,目的在于B/S结构易于把握成本,实施成本较低,并且可以在多个平台上运行,这一点对于应对银行复杂的运行环境是至关重要的。
采用ROR开发平台有以下有点:
首先要提的就是RoR的生产力,相比于其他WEB开发框架而言,RoR大大降低了开发的成本,缩短了开发时间,毕业设计作为个人项目而言,使用RoR开发是的当的。
使用更少的代码完成更多的内容,是Ruby语言的精神,也是RoR的精神,我本人也很希望能做到这一点。
这就是我选择这个开发平台的原因。
二、课题关键问题及难点:
1实际应用系统的的设计能力与对银行贷款业务逻辑的梳理。
借助同事的帮助和SAP内部文档,进行主动学习。
2.对贷款系统业务数据的抽象;银行贷款的业务流程是十分复杂的,而且期间掺杂了与很多系统之间的交互与通信。
我准备参照SAP在这方面的经验,并结合自身实际与编程语言的特性,进行系统设计。
3贷款系统与其他业务系统比如客户关系管理系统,会计系统等之间的交互接口的设计与预留;这需要我了解贷款系统需要与哪些系统会有交互,这一点,SAP内部文档有一定的帮助,也要结合自身理解来设计。
4在使用RoRweb开发框架进行开发时注意分析这种开发框架是否适合开发类似的商业应用。
由于银行系统本身的特殊性质,其对应用的安全性,稳定性有着更加严格的要求。
RoR能否适应这样的需求,就现有的文献资料来看,还是不能确定的。
所以,在测试的过程中,需要针对以上两点有针对性的进行分析。
5测试阶段,快速高效完成系统测试;因为动态语言很容易实现反射等动态特性(JUnit也是等到Java支持了反射以后才出现的),因此测试也更为容易实现。
RoR有默认的测试工具Test:
:
Unit,我将使用它来进行一些测试工作。
之后,使用RSpec(一套改良版的xUnit测试框架)来进行之后的工作。
因为RSpec的测试代码可读性更强,能增进开发效率。
注:
开题报告可单独装订,但在院(系)范围内,封面和装订格式必须统一。
三、文献综述(或调研报告):
我搜集到了一些关于贷款系统应用设计的论文,以及有关WEB应用开发与测试的论文。
大体上,对于贷款系统的UML流程图都是相类似的。
1.关于银行贷款业务系统。
信贷业务是构成银行业务利润的重要组成部分,与其他银行业务不同,信贷需要更多其他辅助信息的支持,如客户的基本资料,信用等级,是否有逾期贷款未还等。
各银行对于这些信息的管理都是需要有一个系统作为支撑。
在系统设计与分析方面:
根据不同银行的不同业务规范有一定的调整。
关键流程一般都是,申请,审批,发放,监控,收款(同时还有催收,展期,提前还款等扩展)。
而在数据设计方面,则得到了很多不同的理解。
作者基于不同的设计思路,进行自己的数据设计。
每一种设计思路对我来说都是很好的参考。
在进行系统设计时,通过从用例描述中提取和筛选系统类的语法分析过程,在进行类之间的关系的分析,随后建立银行贷款系统的类图模型(已经数据库表的设计),实现了从业务需求分析到系统设计和编码的无缝连接。
同时,有关贷款系统设计的论文中,大多都有提及风险控制。
可见,这一点对于贷款管理系统来说是一个重要组成部分。
如何应对复杂情况下的贷款风险也是需要系统设计者乃至贷款产品管理人员关注的。
一般需要在审核资格时,需要将所有与用户相关的信息从系统(甚至包括其他外部系统与数据库)中提取出来,再放入内部的风险评估模块(该模块完全可以重新设计一个专门的系统来维护),最后在返回结果过程中通过短信网关或者邮件方式将结果告知给贷款申请人。
在业务流程分析与抽象的方面,需要将不同业务流程中的不同阶段进行明确划分,其中贷款人资格审核,贷款发放等在流程中无法完全体现的关键点,再进行重点的划分与标注。
2.Web程序之所以开发难度大,一是因为调试比较困难,二是因为一般Web程序在开发。
我喜欢他精简代码的特点。
通过极少的代码来实现复杂的功能。
提到RoR就不得不提Ruby这门开发语言,对于RoR而言,Ruby和发布时都需要做大量的设置,这些设置有的是在配置文件中进行的,有的是在程序中进行的。
这使得开发周期大大延长了。
而RoR的诞生正在告诉人们,“Web开发完全可以变得再简单些,不,也许不是简单些,是变得非常简单,甚至比桌面程序的开发还简单!
”由于RoR放弃了Web开发中所需要的大量的配置文件,从而以确定来代替这些配置文件,这也就是著名的“约定重于配置”。
RoR除了使用约定外,还使用了模板技术。
通过这种技术你可以在几分钟之内建立一个简单的网站。
RoR不光在开发效率上更胜一筹,而且在开发模式上也有独到之处。
需要提及的是它的MVC组织架构。
明确划分了不同模块的不同职能,以及模块之间的交互。
其特性精炼起来就是:
优雅、简单、高效
最大的优点就是极大的动态性和自省自由,这导致了Rails的开发极大的组件化,使得开发速度加快。
大多都是在探讨这种WEB开发方式的开发效率。
对于编程者来说,RoR是极具诱惑力的,它可以帮助编程者在短时间内完成开发与测试,极大的提高生产力。
在Rails与传统开发框架SSH进行比较,RoR最大的不同就是,它集成了MVC模式的所有组成部分,除了WEB服务器和数据库以外,这个架构可以完成做一个网站的全部内容,这也是其为何如此迅速的在开发者之间流行的原因之一。
3.关于WEB测试,论文更加纷繁复杂。
测试必须在整个项目周期中进行,对每个阶段都要用相应的方式和工具进行测试,才能保证开发的质量,降低开发的风险。
我选取了一篇有关WEB应用测试理论与WEB测试工具的文章。
Web应用测试可以从测试角度划分为功能性测试与非功能性测试。
从测试内容划分,可分为单元测试,集成测试,系统测试;测试策略则有白盒,黑盒,灰盒。
针对Web应用程序的特性,还需要针对不同的浏览器进行稳定性测试。
从软件工程领域的测试方法一个好的测试方法的使用和测试工具的选取对于测试的效率而言,至关重要。
在这方面,需要更加谨慎。
4.为了更加高效的开发,我引入了测试驱动开发(Test-DriveDevelopment,TDD)和行为驱动开发(Behavior-DrivenDevelopment,BDD)的概念。
TDD又有一个名字叫做Red-Green-Refactor。
先写好测试,运行,错误一堆(红色提示),撰写可以通过测试的代码(绿色提示),测试通过后再重构,确保代码仍然工作。
这样子的好处是:
一来先写测试可以先让你想想程序的思路,与下棋有异曲同工之妙,只不过下棋咱是在脑里演练;二来写测试可以确保你的程序正常工作,预期未来可能发生的错误。
RoR自带有一些专门针对RoR的测试工具与测试插件。
比如Test:
:
Unit,RSpec。
一个是RoR的预设基于TDD思想的测试工具,一个是基于BDD思想的测试工具。
(在项目中,将主要使用RSpec来进行测试工作。
)RSpec旨在描述程序该有什么行为,语言看起来更像人类的语言。
这是一种优良的设计,因为可以让一些并不懂编程语言的人,也能轻松的看懂测试代码。
让更多的人(比如客户)可以参与到软件测试过程中的讨论。
5.重构以及性能调优。
RoR开发效率是很高的,但是随之而来的是应用在性能上的不足。
太多的自动化,使程序在面对极大数据量时,显得有些捉襟见肘。
所以,这就需要采取措施写出效率更高的代码。
比如,帮数据库表加上索引;在关键搜索或者涉及大量数据调用的地方,自己编写SQL语句。
当然在效率还没有构成问题之前,就为了优化效率而去修改程序代码甚至架构,只会让程序更加混乱不好维护。
根据80/20法则,拖慢整个系统的代码只是占到了总代码的一小部分。
所以,在改进效率的过程中,是需要找到拖慢效率的代码,并有针对性的进行改进,并在修改前后使用效率测试工具进行效率的比较。
四、方案(设计方案、或研究方案、研制方案)论证:
由于是基于RoR的WEB应用,所以系统设计是基于RoR特性的。
控制层(controller)将根据业务流程设计出的操作界面(Views)与数据层(Database)进行交互。
而ActiveRecords则是RoR用来操作数据库的库。
设计方案是我基于SAP对某银行定制的贷款系统的系统设计进行了一定的简化,调整并结合自身理解的解决方案。
所以在业务流程上,我也进行了相应的调整。
我首先是使用用例图来分析借贷双方与系统之间的交互。
然后,画出了流程图。
最终,将所有信息提取出来后,画出类图。
用例图:
流程图1.申请贷款流程
流程图2.还款流程
最后,得出数据层建模的UML图:
这是整个系统的后台数据设计。
主要的模块有BusinessPartner模块(左下,包括了基本信息,联系信息,付款信息,信用信息等),MortgageLoan模块(右下,包括了基本信息,金融数据,金融条件项),contract模块(中间),apply模块(左,apply模块的大部分信息其实是在审批通过后,可以直接复制到contract的),disbursement模块(右,还款模块里我设置了现金流模块。
),BusinessOperationRecord模块(上,用于记录不同的业务操作)。
将不同的模块进行整理之后,可以得到一个更加简单的关系表:
数据层的设计主要涵盖了BusinessPartner模块,Contract模块,Loan模块,Apply模块。
在业务上,保留原系统设计的精华部分,比如客户模型,合同模型,申请处理逻辑,存储逻辑等。
而它的贷款类型与产品类型的划分思想,客户关系管理思想,资金管理模块,贷款审批流程等模块我就进行了删减,但仍旧留有接口。
保持了程序的可扩展性。
五、进度安排:
起止日期
工作内容
2013-12-20至2014-01-18
课题选择和确定
2014-01-18至2014-03-04
系统需求分析和主要功能划分,同时熟悉开发工具和技术
2014-03-04至2014-03-28
确定开发范围和主要内容,完成开题报告
2014-03-28至2014-05-01
设计完成和实现系统,主要完成文档和代码编写及测试
2014-05-01至2014-05-30
完善系统功能,撰写论文
六、指导教师意见:
签名:
年月日
七、开题审查小组意见:
签名:
年月日