新Java运动:设计驱动开发实践1需求分析

来源:互联网 发布:2017淘宝生意差 编辑:程序博客网 时间:2024/04/30 07:36

在这里我们要开发一个融资融券平台,采用Java技术,用例驱动(TDD)开发模式进行开发。

首先,我们需要充分理解我们要做的系统。由于通常系统都比较复杂,因此我们需要阶段来实施,在第一阶段,先实现一个最小系统,然后逐渐加入新的功能,这就是迭代式增量开发的核心精神。

我们第一步是做一个简单的融资平台,具体业务模式为:用户通过在证券公司系统中开户,可以向证券公司借钱在T日购买股票,然后在T+1日将股票卖出,通过股票差价来获得盈利。然后用户把线还给证券公司,并支付一定的手续费。

业务流程看起来很简单,为了讨论问题方便,我们首先定义如下术语:

用户 User
金币账户 Jinbi
金币是系统的虚拟货币,与人民币的汇率初始设置为1:1,根据国家规定,金币账户只能进行充值,不能取回现金。在交易系统中,金币可以用来支付交易手续费。用户可以通过财付通和快钱来为金币账户充值。
钱包账户 purse
钱包账户中保存用户的现金,可以取现。但是需要经过审批,进行人工转账。
实盘 capital order
可以实际融资购买股票。
清算 clearing
卖出实盘中所有股票
结算 settlement
收取交易手续费,每支股票买卖的印花税、过户费、佣金后,将资金返回给用户钱包账户的过程。
挂单
挂单是指用户或系统直接在证交所申请股票交易的过程。挂单分为市价挂单、委托价挂单、条件挂单,市价挂单为按照当前最新价挂单买入或卖出。委托价挂单是用户指定价格,到证交所挂牌交易。条件挂单在当前系统中主要用于止损,就是以止损价挂条件单。
撤单
撤消已经挂牌交易的请求。在T+1日,系统自动为每个用户做条件挂单(用于止损)。当用户要进行市价交易或委托价交易时,系统先撤消原来的条件单,再将当前用户的交易请求到证交所挂单交易。
止损点
当用户股价交易损失达到多少后,系统将自动以市价对股票进行交易。止损点目前为8%和12%两种。
金币汇率
金币与人民币之间的汇率,初始设定为1:1。
系统账户
系统账户为我的账户,是我们系统的资金池。用于提出实盘申请时,由这个账户借钱给用户进行股票交易。这个账户是通过向财道或金融机构贷款得到,需要按账期支付借款方利息。
股票账户
我们为用户开设的股票交易账户,用户股票交易申请,先将钱汇入此账户,然后进行真实股票交易。

具体需求可以通过应用场景来描述:

用户注册

金币账户充值

钱包账户充值

钱包账户取现

实盘申请

T日购买股票

T+1日卖出股票

超时清算

止损清算

未卖出股票处理

用户结算