版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、详细设计说明书案号 00001日软件细设说明(例作者:完成日期: 签 收 人: 签收日期:修改情况记录:版本号修改批准人修改人安装日期签收人详细设计说明书目录1 引 . 编目的 . 范. 4 定. 4 参资料 . 2 总设 . 5 需规定 . 运环境 . 基设计概念和处理流程 结. 8 功需求与程序的关系 11 人处理过程 . 13 尚解决的问题 . 133 接设 . 13 用接口 . 13 外接口 . 14 内接口 . 144 运设 . 18 运模块组合 . 18 运控制 . 18 运时间 . 185 系数结构设 . 19 逻结构设计要点 . 19 物结构设计要点 . 1 数结构与程序的关系
2、 46 系出处理设 . 出信息 . 补措施 . 系维护设计 . 详细设计说明书1 引言 编写目的随着证券交易电子化程度的不断提高商对于各种业务提出了新的要求了满足券 商的发展需求,更好的为客户提供服务,现结合原有各版本的证券交易软件的优点和特点, 开发一套采用 结构的证券交易软件管理系统SQL 版系统从底层予以优 化使个系统的运行速度得到较大提高过重新优化数据库内部结构使系统的可扩充 性得到极大提高。本说明书给出 SQL 版证券交易系统的设计说明括终实现的软件必须满足的功能、 性能、接口和用户界面、附属工具程序的功能以及设计约束等。目的在于:为编码人员提供依据;为修改、维护提供条件;项目负责人
3、将按计划书的要求布置和控制开发工作全过程;项目质量保证组将按此计划书做阶段性和总结性的质量验证和确认。本说明书的预期读者包括:项目开发人员,特别是编码人员;软件维护人员;技术管理人员;执行软件质量保证计划的专门人员;参与本项目开发进程各阶段验证、确认以及负责为最后项目验收、鉴定提供相应报 告的有关人员。合作各方有关部门的复杂人;项目负责人和全体参加人员。模拟股模拟股票易系统详细设计说明书 范围说明: 待发的软件系统的名称: 列本项目的任务提出者、开发者、用户以及将运行该项软件的单位。 定义列出本文件中用到的专门术语的定义和缩写词的原词组。本报告用到的术语符合国家标准软件工程术语 参考资料列出要
4、用到的参考资料,如: 本目的经核准的计划任务书或合同、上级机关的批文; 属本目的其他已发表的文件; 本件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题文件编号表日期和出版单位说明能够得到这些文件资料的 来源。详细设计说明书 2 总体设计 需求规定说明对本系统的主要的输入输出项目理的功能性能要求详细的说明可参需求 分析说明书 运行环境简要地说明对本系统的运行环括件环境和支持环境规定细明参需 求分析说明书数据库服务器 奔腾 Pro 内存 128MB 以上 硬盘 9GB100M 网卡应用服务器 奔腾 Pro 内存 64MB 以上 硬盘 4GB100M 网卡网络配置100M /
5、 10M工作站柜台 以内存 8MB 以 硬盘 1G 以 100M/10M 网软件详细设计说明书操作系统Windows NT 4.0 以数据库管理系统SQL Server 2005相关软件工具Windows NT Workstation/Windows NT server Windows 2000 Professional/ Server开发工具平台:、Windows NTWindows 2000开发工具: stidio 2005 sp1,C#.Net测试环境Windows31、Windows NT、Windows 基本设计概念和处理流程说明本系统的基本设计概念和处理流程,尽量使用图表的形式。营
6、业部系统一共有四个对象客工场和银行场的概念是交易所的细化, 比如上海证券交易所的股和股就是两个市场场的概念我们就可以把交易所这个 概念细化并同一个市场的共更突出行则通过银证转账业务介入并成为营业部系 统不可或缺的组成部分。上述四个对象通过一些业务流程进行相互操作从而形成整个交易活动整系统模详细设计说明书型可以表述为图 2-1设计时需要将营业部系统所使用的各种信息分为描述四个对象的信息和描述业务流程 的信息由于四个对象相对而言一种稳定型信息而业务流程则较易变化且营业部之间 差异很大因应将四个对象尽定型将各种业务流程尽可能做成组件便业部可 根据实际需求组装成适合自己的系统。根据以上思想,在设计对象
7、模型时应充分考虑到可扩展性,尽量做到抽象化、参数化, 从而使对象需求变化时不致影响系统结构。详细设计说明书图 2.1 结构用一览表及框图的形式说明本系统的系统元各层模块、子程序、公用程序等分说每个系统元素的标识符和功能次地给出各元素之间的控制与被控制关系。本系统采用 c/s 模的 3 层结构按照不同会话来划分的话可以分为 大统模块详细设计说明书委托服务系统监控接口处理子系统系统维护子系统数据转换数据库日终管理银证转账局域网系统管理资金管理报表管理柜台管理查询管理图 2-2 交系统体系结构客户端登陆模块:详细设计说明书最关键的交易系统模块结构图如下:/c/c详细设计说明书pipTcheckUse
8、rMoneyCount(Or checkUserStockCount tradeInQueuenewstockData)(stockDat用ADObuyStocksellStockquoteStockanselelegate规范买卖指令传输的数据结通过该模块可动态建立不同数据库的连接rical、sqlserver,access数据访问ccess access.postDate(stockData) 将数据更新到数据库构必须是stock形式Check数据访问 Sqlserver。postDate(详细设计说明书股票信息发布经过修改我认为每次由客户端每 去查询一次服务器更新信息不可取这加重 服务端
9、和客户端的负担,特别是服务器端的运算。修改后实现变更为户一开始登陆后获得一次服务器的全部股票当前信息服器 端每次发生交易后每一个在线用户发送当前交易需要更新的股票信息样减轻了客 户机和服务端的信息客户 Stock idStock priceTCP/IP服务详细设计说明书 功能需求与程序的关系(该关系由需求分析报告编写者根据结构图说明)本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:获取并发送 用户请求绘制分时图MD5 加解密发送用户交易请求接受并识别 用户请求调用数据层 查询撮合交易服务器返回 客户端信息用户登陆查看用户持仓实时指数 交易委托取消交易 人工处理过程说明在本软件
10、系统的工作过程中不得不包含的人工处理过程(如果有的话 没有完成股票管理的模块设计,所以股票必须从数据库后台添加如果有新股发行,还必须添加有关股票的交易队列 尚未解决的问题说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。 3 接口设计 用户接口说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。详细设计说明书向用户提供简单易用的 UI,以帮助文档。客户端将提供以下功能首先弹出用户登陆框,供用户输入用户名和密码菜单项提供个股查询和分时图按钮菜单栏下是选项卡,提供股票实时信息和个股分时图栏提供用户交易界面和交易按钮以及查看用户盈亏按键 外部接口说明本系统同外界的所有
11、接口的安排包括软件与硬件之间的接口统与各支持软件 之间的接口关系。采用基于正确公开标准的部件和技术以确保最大限度的协作能力以及与第三方系统与 部件集成的简便性。这类标准包括但不限于以下几种:网络协议与标准 HTTP, SSL, etc) 语言(SQL, C#.net, etc.)数据库连接(ADO。net) 内部接口说明本系统之内的各个系统元素之间的接口的安排。逻辑层和数据访问层通过以经的 接,限定访问 类的数详细设计说明书据客户端通过调用 buyStock(stockData)和 ()来访问逻辑层,在这个 函数中包含了访问逻辑层的接口 dealTransaction(stockData)通过
12、 访不同的数据库客户端登陆协议D(二节+(客户名字长度(4 字)客户名字客户密码长) 字)客户密); 客户买卖协议B(二字节)股票 ID)(4 节+(股票数量)(4 字S(二字节)股 ID)(4 字+(股票数量) 字)查询交易信息并返回给客户端二节具体有拆包解包的类using System;using System.Collections.Generic;using System.Text;namespace ProjectCenterTradingSyspublic class Protocalprivate byte messagebuffer;private byte messagele
13、ngth;public byte messagebag;/该函数是将字符串转换为字节数组public byte StringtoByte( string stringInfo) 详细设计说明书messagebuffer = System.Text. ASCIIEncoding.ASCII.GetBytes(stringInfo); return messagebuffer;该函数将整型转换为个字节public byte InttoByte( number)messagelength= BitConverter.GetBytes(number);returnmessagelength;将浮点型转
14、换为个字节public byte DoubletoByte( double price)byte pricebyte = BitConverter.GetBytes(price); return pricebyte;合并一个字符串(字节数组)和他的长度作为一个包public byte Combinarray( messle, byte messinfo) messagebag= byteint index;for (index 0; index messle.Length; index+) messagebagindex = messagelengthindex;for int index1
15、= 0; index1 newlist.price 利 用 入 排 将 newlist 插入到买队列 BuyQueue 中,转 1;3.) if SellQueue0.countnewlist.count 完全撮合,SellQueue0.countSellQueue0.count详细设计说明书newlist.count,转 2;4.) if SellQueue0.count=newlist.count SellQueue0 合 SellQueue0 SellQueue 队 newlist.count=newlist.count-SellQueue0.count 2;5.)取买单队列头BuyQu
16、eue0,ifBuyQueue0.pricenewlist.countnewlist 完全撮合,BuyQueue0.countBuyQueue0.countnewlist.count 转 1;7.) if BuyQueue0.count=newlist.count,BuyQueue0撮合, 将 BuyQueue0从 BuyQueue 列中删 除, newlist.count=newlist.count-BuyQueue0.count 转 5;如下面流程图 所示:卖单 买单卖单 买单ist.count-BuyQueue0.countBuyQueue 中的位 详细设计说明书BuyQueue 断其为
17、 是否为空 单还是卖单 是否为为空不为空不为空为空无法差价 判断差价 无法 小于大于找,判断差其 置 大于 大于BuyQueue0 被完全磨合 全被磨合 完全磨合非 空成员向前进一位返回成交信息图 部非空成员向前进一位详细设计说明书5.2.2 集合竞价集合竞价是指对所有有效委托进行集中处理两市的集合竞价时间为 交易日上午 9:15 至 9:25。集合竞价原则:凡是高于开盘价的买单一定成交; 凡是低于开盘价的卖单一定成交; 凡是高于开盘价的卖单一定不成交; 凡是低于开盘价的买单一定不成交;集合竞价分四步完成:第一步:确定有效委托在有涨跌幅限制的情况下,有效委托是这样确定的: 根据该只证券上一交易
18、日收盘价以及确定的涨跌幅度来计算当日的最高限价、 最低限价。有效价格范围就是该只证券最高限价、最低限价之间的所有价 位。限价超出此范围的委托为无效委托,系统作自动撤单处理。第二步统根据竞价规则自动确定集合竞价的成交价个价格就是当日 的开盘价, 所有高于开盘价的买盘和所有低开开盘价的卖盘均以此价格成交, 集合竞价的成交价确定原则是:以此价格成交,能够得到最大成交量。第三步处理所有的买委托按照委托限价由高到低的顺序排列 价相同者按照进入系统的时间先后排列委托按委托限价由低到高的顺序 排列 , 限价相同者按照进入系统的时间先后排列序逐笔将排在前面的买委 托与卖委托配对成交按照价格优先等价格下时间优先
19、的成交顺序依次 成交至成交条件不满足为止不存在限价高于等于成交价的叫买委托 不存在限价低于等于成交价的叫卖委托。所有成交都以同一成交价成交。 这同一成交价成交的买卖单一般量都是很 大的,如图 3.2.3 所示详细设计说明书列队卖开盘撮合列队买图 3.2.3 所示第四步:行情揭示:)如该只证券的成交量为零,则将成交价位揭示为开盘价、最 近成交价、最高价、最低价,并揭示出成交量、成交金额。 剩余有效委托中,实际的最高叫买价揭示为叫买揭示价,若 最高叫买价不存在,则叫买揭示价揭示为空;实际的最低叫 卖价揭示为叫卖揭示价,若最低叫卖价不存在,则叫卖揭示 价揭示为空。集合竞价中未能成交的委托,自动进入连
20、续竞价。按照这样的原则和要求,我们设计了如下的集合竞价撮合算法。如 3.2.4 所示。详细设计说明书BuyQueue 判断两队列是 否都不为空否开盘价为昨日收 盘价,成交量 是小i=j=0, 分SellQueue 空元素判断差价BuyQueue0.price-SellQueue0.price大于等的数 BOOL k; 判断差价BuyQueuei.price-SellQueuej.price大于等判断差Buy.count-Sell.count小小于等 Buy1.count=Buy.count;大 k=true; Sell1.count=Sell.count;Sell.count=Sell.cou
21、nt+SellQueueiSellQueue.count;是判断是否判断是否是判Buy.count-Sell.count开盘价总 成交量Sell.count小开盘价SellQueuej.price; 总成交量等开盘价总 成交量sell.count判Buy1.count-Sell1.count等开盘价(SellQueuej-1.price+BuyQueuei-1.price)/2;总 成交量Sell1.counttrue大开盘价总 成交量Sell1.count判值false等判Buy1.count-Sell.count小开盘价 总成交量Buy1.count图 3.2.4开盘价SellQueuej
22、.price; 交量Buy1.count详细设计说明书 : ,首 定 QueueStruct 列 BuyQueue 和 。 个 这 。 中 BuyQueue 而 SellQueue 时 、 。 , 别 。 : 转 2 转 ; 断 BuyQueue0.prince与 SellQueue0.prince 于 转 3 于 0 转 ; 义 int i=j=0 M N 素 BOOL k QueueStruct Buy=BuyQueue0;Sell=SellQueue0 Buy1 Sell1 转 4 断 BuyQueuei.prince与 SellQueuej.prince 于 转 5 于 0 转 ; 断
23、 Buy.count与 Sell.count 于 0 转6 于 转 9 j+ ;k=true ;Sell1.count=Sell.count;Sell.count=Sell.count+SellQueueiSellQueue. count 转 7 断 j 于 转 转 开 盘 价 为BuyQueuei.price; 总 成 交 量 为Sell.count ;i+; k=false;Buy1.count=Buy.count;Buy.count=Buy.count+BuyQueuei.count 转 ; 断 i 于 转 转 11 详细设计说明书 断 Buy.count与 Sell.count 于 0
24、 转 于 0 转 ;开 盘 价 为SellQueuej.price; 总 成 交 量 为Buy.count ;开盘价为(SellQueuej.price+BuyQueuei-1.price)/2; 为 sell.count 并 ; 断 k 为 转 15 为 false 转 ; 断 Buy1.count与 Sell1.count 于 0 转 于 转 17 开 盘 价 为BuyQueuei.price; 总 成 交 量 为Sell1.count ;开盘价为(SellQueuej-1.price+BuyQueuei-1.price)/2 为 Sell1.count , ; 断 Buy1.count与
25、 , 于 0 转 于 0 转 ;开 盘 价 为SellQueuej.price; 总 成 交 量 为Buy1.count ;开盘价为(SellQueuej.price+BuyQueuei -1.price)/2; 为 Buy1.count 并 ; , 为 0 至 ;详细设计说明书5.2.3 买卖队列排序 ,但 要 很 。 ,最 了 。 个 , , 在 , ,直 。 :int low=0; int high=N-1; /N 数 while(lowprice=high+1; -i)SellQueuei+1=SellQueuei;SellQueuehigh+1=*newlist; 列 。详细设计说明
26、书 、时 的 。 ,而 了 的 t 将 t N( 元 ) 移 t 。 :for (int p=0; *t *N; p+,*t+)QueueStruct temp;temp=Queue*t;Queue*t=Queuep;Queuep=temp;5.2.4 撮合算法的运行机制在交易所正常运行时,一天内分为开市、开盘、休市、复开、收市 个步 骤。开市:每天上午 9:15 开市。这时候,股民可以通过券商向交易所递单。同 一只股票的买卖单开始分别进入这只股票的买卖队列中但并不进行撮合该过 程一直持续到 开盘:每天上午 9:30 正式开盘。9:25-9:30 为盘前处理,这段时间也就是集 合竞价撮合算法运行的时间。买卖两队列开市不再接收新的单子。新的单 子这时都放在缓冲区中,直到两队列运行完整个集合竞价算法后开市重新进单 时再依序将单子从缓存区取出读入买卖队列进行连续竞价的撮合买卖队列于 9:25 开始合竞价运算完毕得出开盘价等所有统计数据并发布行情以及发送 完所有回报之后重新接收单子进入该日正常交易中使用连续竞价算法进行撮 合。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小米销售心理测试题及答案
- 移动式发电车应急应用技能测试题及答案详解
- 医学类综合测试卷及答案详解
- 小钱致富测试题及答案大全
- 小米招聘编程能力测试题及答案
- 医疗卫生行业安全生产知识题库及答案解析
- 医学基础知识考试试题及答案收录
- 医学生专业知识水平测试题库及答案
- 广东省汕头市澄海区2024-2025学年七年级上学期语文期末质量监测科试卷(含答案)
- 2025年高级值班机工职称晋升《机工业务》考试考试题库及答案
- 武装押运考试题目及答案
- 党的二十届四中全会精神题库
- 2025国务院发展研究中心有关直属事业单位第二轮招聘10人笔试题库附答案解析
- 2026年产品外观设计委托合同
- 2025中智科技集团有限公司招聘4人笔试历年难易错考点试卷带答案解析试卷3套
- 2025年检验竞赛试题及答案
- 烘培师傅劳动合同范本
- 2025年普法考试试题及答案
- GB/T 6540-2025石油产品颜色的测定
- 酒店采摘活动策划方案
- 食堂消防安全知识培训
评论
0/150
提交评论