1、基金交易平台系统设计说明书系统设计说明书文件状态: 草稿 正式发布 正在修改文件标识当前版本1.0.0作 者罗豪完成日期2005-12-6版本历史版本/状态修订人修改日期备注V1.0.0罗豪2005-12-15第一部分、概述1、文档说明本文档适用于本项目开发人员阅读,开发人员可据此进行开发。本设计文档主要采用了OOAD的方法,从类图和时序图的角度对系统进行了分析设计。2、系统需求概述本系统是一个关于开发式基金进行交易的平台,它主要包括一下功能 :基金销售人员登陆管理基金产品管理客户资料管理客户资金账户管理基金交易管理第二部分、系统总体结构该系统将采用J2EE技术架构实现,WEB层采用Strut
2、s架构,页面采用了EJB层使用了Session Bean 和Entity Bean,采用了Session Faade的设计模式,其技术架构如下图所示。Browser Server图1:系统技术架构图注:Delegate是指业务逻辑的代理类。另外,当前价格的产生使用WebService进行模拟产生。第三部分、系统设计1、类图由于类图太多,这里只提供所有的实体类图,如下所示。注册用例实现A、时序图B、描述1)输入注册资料输入用户、密码、确认密码和性别。资料必须输入,不能为空。2)获取注册资料在Action里通过Form表单获取用户输入的注册资料。校验两次密码是否一致,并检验用户名是否存在。3)委托
3、注册委托代理类SalesDelegate进行注册。4)获取SessionBean接口SalesDelegate类获取SalesSessionFacade接口,以便调用SalesSessionFacade关于注册的方法。5)注册调用会话Bean SalesSessionFacade的业务逻辑方法进行注册。6)保存注册信息通过实体Bean Sales把注册数据保存到数据库中。7)返回结果注册成功后,通过findForward方法返回到系统登录页面login.jsp。登录用例实现A、时序图B、描述1)输入用户名和密码 在系统首页,输入用户名和密码,都不能为空,提交前作检验。2)获取登录数据 提交后,
4、SalesAction通过Form表单获取登录的用户名和密码。3)委托查找此用户SalesAction委托SalesDelegate查找系统是否存在此用户名和密码的用户。4)获取SessionBean接口SalesDelegate获取一个SalesSessionFacade接口。5)查找此用户SalesDelegate通过SalesSessionFacade接口去查找此用户。6)查找此用户SalesSessionFacade通过Sales接口去查找此用户。7)返回结果 SalesAction通过findForward方法输出结果页面。退出用例实现A、时序图B、描述1)点击退出链接点击功能主页上
5、的退出链接。2)提交退出请求 提交退出请求到SalesAction。3)清除SessionSalesAction清除Session。4)退出到注册登录页SalesAction通过findForward方法输出结果页面。添加基金产品用例实现A、时序图B、描述1)输入添加的基金产品信息 输入添加的基金产品信息产品名称、产品价格和产品描述,并在提交前校验它们是否为空,为空的话,给出提示信息,不准提交。2)获取输入的信息 提交后,FundAction通过Form表单获取输入的数据。3)委托添加产品 委托FundDelegate添加产品。4)获取FundSessionFacde接口FundDelegat
6、e获取FundSessionFacde接口,以便调用Session Bean。5)添加基金产品通过FundSessionFacde的方法添加基金产品。6)基金产品信息入库 通过调用实体Bean Fund接口的create方法添加产品信息。7)返回结果FundAction通过findForward方法输出结果页面。查询基金产品信息用例实现A、时序图B、描述1)输入查询条件 输入查询条件,产品编号或产品名称,提交前检查是否输入了其中的一项数据。2)获取查询条件数据 提交后,FundAction通过Form表单获取输入的数据。3)委托查询委托FundDelegate查询产品基本信息。4)获取Fund
7、SessionFacde接口FundDelegate获取FundSessionFacde接口,以便调用Session Bean。5)查询通过FundSessionFacde的方法查询基金产品。6)查询通过调用实体Bean Fund接口的findByPrimaryKey或findByName方法查询产品基本信息。7)返回结果FundAction通过findForward方法输出结果页面,显示产品基本信息。修改基金产品信息用例实现A、时序图B、描述1)输入基金产品修改数据先通过查询查询出基金产品信息,然后点击修改按钮,进行修改产品信息输入页面,输入修改的数据。2)获取修改数据提交后,FundAct
8、ion通过Form表单获取输入的数据。3)委托修改基金产品委托FundDelegate修改产品基本信息。4)获取FundSessionFacde接口FundDelegate获取FundSessionFacde接口,以便调用Session Bean。5)修改基金产品信息通过FundSessionFacde的方法updateFund修改基金产品。6)修改基金产品信息通过调用实体Bean Fund接口的findByPrimaryKey方法查询并修改产品基本信息。7)返回结果FundAction通过findForward方法输出结果页面,显示修改结果。添加新客户用例实现A、时序图B、描述1)输入客户信
9、息 输入客户基本信息,并校验必输项。2)获取输入的数据 提交后,ClientAction通过Form表单获取输入的数据。3)委托添加客户信息 委托ClientDelegate添加客户基本信息。4)获取ClientSessionFacde接口 ClientDelegate获取ClientSessionFacde接口,以便调用其业务方法。5)添加客户信息 通过调用ClientSessionFacde接口的createClient方法添加客户信息。6)添加客户信息ClientSessionFacde调用实体Bean Client的create方法添加客户信息到数据库。7)返回结果ClientActi
10、on通过findForward方法输出结果页面,显示添加结果。查询客户基本信息用例实现A、时序图B、描述1)输入查询条件 输入查询条件,客户编号或身份证,两者必输其一。 2)获取查询条件 提交后,ClientAction通过Form表单获取输入的数据。3)委托查询委托ClientDelegate查询客户基本信息。4)获取ClientSessionFacde接口ClientDelegate获取ClientSessionFacde接口,以便调用其业务方法。5)查询客户基本信息通过调用ClientSessionFacde接口的clientFindByPrimaryKey或clientFindById
11、CardNo方法查询客户信息。6)查询客户基本信息ClientSessionFacde调用实体Bean Client的findByPrimaryKey方法或findByIdCardNo方法查询客户信息。7)返回结果ClientAction通过findForward方法输出结果页面,显示查询结果。修改客户基本信息用例实现A、时序图B、描述1)输入修改的客户信息 先查询出客户基本信息,然后点击一个修改按钮后,出现修改页面,输入修改的数据。2)获取修改的客户信息提交后,ClientAction通过Form表单获取输入的数据。3)委托修改委托ClientDelegate修改客户基本信息。4)获取Cli
12、entSessionFacde接口ClientDelegate获取ClientSessionFacde接口,以便调用其业务方法。5)修改客户信息通过调用ClientSessionFacde接口的updateClient方法修改客户信息。6)修改客户信息ClientSessionFacde调用实体Bean Client的方法修改客户信息。7)返回结果ClientAction通过findForward方法输出结果页面,显示修改结果。查询客户详细信息用例实现A、时序图B、描述1)点击详细信息链接 在客户基本信息页面上,点击详细信息链接。2)获取指令和客户编号ClientAction获取指令和客户编号
13、。3)委托查询客户基本信息 委托ClientDelegate查询客户基本信息。4)获取ClientSessionFacde接口 获取ClientSessionFacde接口,以便调用其业务逻辑方法。5)查询客户基本信息 通过ClientSessionFacde的方法查询客户基本信息。6)查询客户基本信息ClientSessionFacde调用实体Bean Client的方法获取客户基本信息。7)委托查询客户资金账户信息 委托ClientDelegate查询客户资金帐户信息。8)委托查询客户基金账户信息委托ClientDelegate查询客户基金帐户信息。9)返回结果ClientAction通过
14、findForward方法输出结果页面,显示客户详细信息。开立资金账户用例实现A、时序图B、描述1)输入开户信息 输入开户信心:客户编号、金额、资金账户密码、确认密码。2)提交开户信息 提交开户信息到FinancialAction,并获取其输入数据。3)委托开户 委托FinancialDelegate开立资金帐户。4)获取FinancialAccountSessionFacde接口 获取FinancialAccountSessionFacde接口,以便调用其业务逻辑方法。5)开立资金帐户 调用FinancialAccountSessionFacde的方法,开资金账户。6)建立资金账户 调用实体
15、Bean Financial的方法,创建资金账户。7)返回结果 FinancialAction通过findForward方法显示开立资金帐户结果页面。查询资金账户用例实现A、时序图B、描述1)输入查询条件输入资金账号或客户编号,两者必输其一。2)提交查询条件数据提交查询条件到FinancialAction,并获取其输入数据。3)委托查询委托FinancialDelegate查询资金帐户。4)获取FinancialAccountSessionFacde接口获取FinancialAccountSessionFacde接口,以便调用其业务逻辑方法。5)查询资金账户 调用FinancialAccoun
16、tSessionFacde的方法,查询金账户。6)查询资金账户调用实体Bean Financial的方法,查询资金账户。7)输出查询结果FinancialAction通过findForward方法显示资金帐户信息的结果页面。追加账户资金用例实现A、时序图B、描述1)输入账户号码及追加金额2)提交追加数据 提交输入信息到FinancialAction,并获取其输入数据。3)委托追加 委托FinancialDelegate追加资金。4)获取FinancialAccountSessionFacde接口获取FinancialAccountSessionFacde接口,以便调用其业务逻辑方法。5)追加金
17、额及校验 调用FinancialAccountSessionFacde的方法,追加资金。6)记录追加金额调用实体Bean Financial的方法,追加资金。7)显示追加结果FinancialAction通过findForward方法显示追加资金的结果页面。取出账户资金用例实现A、时序图B、描述1)输入账户和取出金额及密码2)提交输入数据 提交输入信息到FinancialAction,并获取其输入数据。3)委托取钱委托FinancialDelegate取钱。4)获取FinancialAccountSessionFacde接口获取FinancialAccountSessionFacde接口,以便
18、调用其业务逻辑方法。5)取钱调用FinancialAccountSessionFacde的方法,取钱。6)更新账户余额调用实体Bean Financial的方法,更新账户余额。7)显示取钱结果FinancialAction通过findForward方法显示取钱的结果页面。冻结资金账户用例实现A、时序图B、描述1)点击冻结账户按钮先查询出资金账户的基本信息,在此页面上设置一个冻结账户的按钮,点击它可进行账户冻结。2)提交冻结指令及账户提交冻结指令及账户到FinancialAction,并获取相关数据。3)委托冻结委托FinancialDelegate冻结资金账户。4)获取FinancialAcc
19、ountSessionFacde接口获取FinancialAccountSessionFacde接口,以便调用其业务逻辑方法。5)冻结账户调用FinancialAccountSessionFacde相关方法,冻结资金账户。6)冻结账户调用实体Bean Financial相关方法,冻结资金账户。7)显示冻结结果FinancialAction通过findForward方法显示冻结资金账户的结果页面。购买基金用例实现A、时序图B、描述1)输入购买信息选择已经上市的基金、观察当前价格,输入购买数量、资金账户及其密码。2)提交输入的购买信息 提交到FundAccountAction ,并获取取输入数据。
20、3)委托购买 委托FundDelegate进行购买。4)获取FundAccountSessionFacde接口 FundDelegate获取FundAccountSessionFacde接口,以便调用相关方法。5)购买基金 调用FundAccountSessionFacde接口的业务方法,购买基金,并从资金账户中扣除所发生的所有金额。6)生成基金账户调用实体Bean FundAccount的相关方法,生成基金账户。7)显示购买结果FundAccountAction通过findForward方法输出结果页面,显示购买结果。查询基金账户用例实现A、时序图B、描述1)输入查询条件输入基金账户号码,要
21、求必须输入。2)提交输入的数据 提交到FundAccountAction ,并获取取输入数据。3)委托查询委托FundDelegate进行查询。4)获取FundAccountSessionFacde接口FundDelegate获取FundAccountSessionFacde接口,以便调用相关方法。5)查询基金账户调用FundAccountSessionFacde接口的业务方法,查询基金账户。6)查询基金账户数据调用实体Bean FundAccount的相关方法,查询基金账户。7)显示查询结果FundAccountAction通过findForward方法输出结果页面,显示查询结果。赎回基金用
22、例实现A、时序图B、描述1)输入赎回数据 输入基金账户、赎回数量和资金账户密码,都必须输入。2)提交输入数据提交到FundAccountAction ,并获取取输入数据。3)委托赎回委托FundDelegate进行赎回(更新基金账户和资金账户)。4)获取FundAccountSessionFacde接口FundDelegate获取FundAccountSessionFacde接口,以便调用相关方法。5)赎回基金调用FundAccountSessionFacde接口的业务方法,赎回基金。6)更新基金账户调用实体Bean FundAccount的相关方法,更新基金账户。7)显示赎回基金结果Fund
23、AccountAction通过findForward方法输出结果页面,显示赎回结果。第四部分、数据库设计1、逻辑设计该系统的数据库设计实体关系图(E-R图)参考如下2、表设计表名功能说明SALES基金柜台操作人员FUND基金CLIENT客户FINANCIAL_ACCOUNT资金账户FUND_ACCOUNT基金账户2.1 表SALES表名SALES列名数据类型(精度范围)空/非空约束条件其它说明SALES_NO NUMBER (20)非空 主键USERNAME VARCHAR2 (40)UNIQUEPASSWORD VARCHAR2 (40)REALNAME VARCHAR2 (40)SEX V
24、ARCHAR2 (10)CREATED_DATE DATE补充说明CREATE SEQUENCE SALESSEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE NOCYCLE NOORDER ; 2.2 表FUND表名FUND列名数据类型(精度范围)空/非空约束条件其它说明FUND_NO NUMBER (20)非空 主键FUND_NAME VARCHAR2 (40)UNIQUEPRICE FLOATDESCRIPTION VARCHAR2CREATED_DATE DATE补充说明CREATE SEQUENCE FUNDSEQ START WIT
25、H 1 INCREMENT BY 1 MINVALUE 1 NOCACHE NOCYCLE NOORDER ;2.3 表CLIENT表名CLIENT列名数据类型(精度范围)空/非空约束条件其它说明CLIENT_NO NUMBER (20)非空 主键CLIENT_NAME VARCHAR2 (50)UNIQUEID_CARD_NO VARCHAR2 (20)SEX VARCHAR2 (10)PHONE VARCHAR2 (20)ADDRESS VARCHAR2 (100)EMAIL VARCHAR2 (50)HOBBY VARCHAR2 (100)CREATED_DATE DATE补充说明CRE
26、ATE SEQUENCE CLIENTSEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE NOCYCLE NOORDER ;2.4 表FINANCIAL_ACCOUNT表名FINANCIAL_ACCOUNT列名数据类型(精度范围)空/非空约束条件其它说明ACCOUNT_NO NUMBER (20)非空 主键CLIENT_NO NUMBER (20)UNIQUEFINANCING_AMOUNT FLOATCREATED_DATE DATESTATUS VARCHAR2 (20)1 正常2 冻结PASSWORD VARCHAR2 (40)补充说明C
27、REATE SEQUENCE FINANCIALACCOUNTSEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE NOCYCLE NOORDER ;2.5 表FUND_ACCOUNT表名FUND_ACCOUNT列名数据类型(精度范围)空/非空约束条件其它说明FUND_ACC_NO NUMBER (20)非空 主键FINANCIAL_ACC_NO NUMBER (20)FUND_NO NUMBER (20)QUANTITY NUMBER (20)PRICE FLOATStatusStatusVarchar2(1)1 上市2 失效 补充说明CREATE SEQUENCE FUNDACCOUNTSEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE NOCYCLE NOORDER ;第五部分、界面设计1、主界面设计2、用例界面实现注册用例登录用例退出用例添加基金产品用例查询基金产品信息用例 修改基金产品信息用例添加新客户用例查询客户基本信息用例修改客户基本信息用例查询客户详细信息用例开立资金账户用例查询资金账户用例追加账户资金用例取出账户资金用例冻结资金账户用例购买基金用例查询基金账户用例赎回基金用例