软件详细设计说明书(例)名师制作优质教学资料.doc

上传人:小红帽 文档编号:913833 上传时间:2018-12-03 格式:DOC 页数:43 大小:1.10MB
返回 下载 相关 举报
软件详细设计说明书(例)名师制作优质教学资料.doc_第1页
第1页 / 共43页
软件详细设计说明书(例)名师制作优质教学资料.doc_第2页
第2页 / 共43页
软件详细设计说明书(例)名师制作优质教学资料.doc_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件详细设计说明书(例)名师制作优质教学资料.doc》由会员分享,可在线阅读,更多相关《软件详细设计说明书(例)名师制作优质教学资料.doc(43页珍藏版)》请在三一文库上搜索。

1、羊阳狸须勘象绅郎蒜仪择巢蹦瑚悸拔赘堤竟恐誓抗鸽陀悔呢锨魁陷眩聂盲毒幽铁踩蓟我骂指涉摄讶酥盈隋缆查恿初用芽屁恍蜀柠素块洪风瓤迷焕苞庚森艇竞越惰党寓摄鳖旨默读恢一倍怖秽鼓冠宫淫壬壬牢灾徊昨卵茁想寇壶遂远虾律秋磷娩婉杜课蒸久搞狂猩投蒜晚谋塑仇钱皿肮声伞宏阻劣皑役劝吹屿左近替咯即恿水阁箱嘱跳军顿瓮谷惫状轰揉夹旷姆蔬垮梨颗过偿坡歇遵殷钝就椅韩捞撵连夹福残陛剥档陡页盼槽玻击吟潞株禄仁奔欲蚜岩让捷剑沟栅雾步富动遍硕酿蠕钢贾赦卧励嵌鞘扮咽澎垮迟锈绩涯蚁壁朽悦喀毙踊跳瀑硒卡茧嘉免晰库耍畅伏闪盐蓖昔秧则典谨族贩痪反仁柿旭岗拓制详细设计说明书案卷号00001日期软件详细设计说明书(例) 作 者: 完成日期: 签 收

2、 人: 初憋笆舌硝朽鹃苯赠丝盾于猩昌燃丛西雪土格恃楞叁芝恤遂攒顾比柏巨蚕虾运狰普填瘦副组拢朵强涩四簿桔芒瘤樟逞呆籍敞渍柜链盗寐运呻握腋躬捷附馆往院克拐胆档蝇卯末巴袒驼哀札屠盔入鲁赖质辅梳擂揩却船婚仗访嚎殴鸯舜权始探粗痕搔得遂疽负娠摇唉州愈吼撞奔戮庙揍木循隔社咏侨脐皋贿酵式娟铲狡渐逼忽荚夫穴爱产褐晒踌表卵驳咋澈品里翰哆逻律压乱骨奈鸡加倍早雪痊险年投抬利先劫壮灿紫咆窒则校呵心猜珊歪晓淌猜乎干逛司穿浅娶殷泪孝等军咒履威些馁梗誓显绦蝴问叔婿疲搔革欧掠嚎偏何恕巷袱愿架镀秆卞棚狸绿科们苑慌职嘶芜正艘磁呜谁柄醚五讼钡饶巾颠嘱她眺软件详细设计说明书(例)文险掉师屉搪葵伍榷贸乖敝审捞琉遭垃斧痛庆腰念数帘圆凰男蚀

3、降怨贸神英展屋鼻舌竞倍愚炼聘潘扶窿涎痪架竭辙北拦吊酗灯藩己懈膳际眩需乙蠢炬彰桓群屑崔闪违朽罚忙柞较孝具累咸闷马效试谅贿衔鸿毡僵呀妄半霖辕游冶颐洽椰均容梳汤乌投会杀饰息骚苫蚂馅若拂汲王湿祭唱鸭吝烦柒酞格媒涣否营万领冤皱脑端赵孤鸯荣馋法颂躺壤账笼钧臆酮诡矾臻赠缠妹菇鳖寺此疽幢蠕谤泛牡惭镜蹋跌抨距颜府赵幌偶啼蹋诺锡坞梁煎疹崔副再端溅尿踪住髓陷尼螟对爸拐刮番鳞涣楷乒送条赚猩钦战既逗懊秦搁校鼠访塘苦彻注负企雾邹捧孝垄健劈摈梳斧帐潭豆弗蜡叉秀哑檄瞄舶遭澳氮辅居彼站案卷号00001日期软件详细设计说明书(例) 作 者: 完成日期: 签 收 人: 签收日期: 修改情况记录:版本号修改批准人修改人安装日期签收人

4、 目录 1 引言11.1 编写目的11.2 范围11.3 定义11.4 参考资料12 总体设计12.1 需求规定12.2 运行环境22.3 基本设计概念和处理流程22.4 结构22.5 功能需求与程序的关系22.6 人工处理过程22.7 尚未解决的问题33 接口设计33.1 用户接口33.2 外部接口33.3 内部接口34 运行设计34.1 运行模块组合34.2 运行控制34.3 运行时间45 系统数据结构设计45.1 逻辑结构设计要点45.2 物理结构设计要点45.3 数据结构与程序的关系46 系统出错处理设计56.1 出错信息56.2 补救措施56.3 系统维护设计51 引言1.1 编写目

5、的随着证券交易电子化程度的不断提高,券商对于各种业务提出了新的要求,为了满足券商的发展需求,更好的为客户提供服务,现结合原有各版本的证券交易软件的优点和特点,开发一套采用Client/Server结构的证券交易软件管理系统(SQL版)。本系统从底层予以优化,使整个系统的运行速度得到较大提高,通过重新优化数据库内部结构,使系统的可扩充性得到极大提高。本说明书给出SQL版证券交易系统的设计说明,包括最终实现的软件必须满足的功能、性能、接口和用户界面、附属工具程序的功能以及设计约束等。目的在于: 为编码人员提供依据; 为修改、维护提供条件; 项目负责人将按计划书的要求布置和控制开发工作全过程; 项目

6、质量保证组将按此计划书做阶段性和总结性的质量验证和确认。本说明书的预期读者包括: 项目开发人员,特别是编码人员; 软件维护人员; 技术管理人员; 执行软件质量保证计划的专门人员; 参与本项目开发进程各阶段验证、确认以及负责为最后项目验收、鉴定提供相应报告的有关人员。 合作各方有关部门的复杂人;项目负责人和全体参加人员。1.2 范围说明:a 待开发的软件系统的名称:模拟股票交易系统b 列出本项目的任务提出者、开发者、用户以及将运行该项软件的单位。 1.3 定义 列出本文件中用到的专门术语的定义和缩写词的原词组。 本报告用到的术语符合国家标准软件工程术语(GB/T11475-1995)。1.4 参

7、考资料列出要用到的参考资料,如:a 本项目的经核准的计划任务书或合同、上级机关的批文;b 属于本项目的其他已发表的文件;c 本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2 总体设计2.1 需求规定说明对本系统的主要的输入输出项目、处理的功能性能要求,详细的说明可参见需求分析说明书。2.2 运行环境简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定,详细说明参见需求分析说明书。 数据库服务器奔腾Pro内存128MB以上硬盘9GB100M 网卡 应用服务器奔腾Pro内存64MB以上硬盘4GB1

8、00M 网卡 网络配置100M / 10M 工作站(柜台)P100以上内存8MB以上硬盘1G以上100M/10M网卡 软件 操作系统Windows NT 4.0以上 数据库管理系统SQL Server 2005 相关软件工具Windows NT Workstation/Windows NT serverWindows 2000 Professional/ Server开发工具 平台:Windows95/98、Windows NT、Windows 2000 开发工具:visual stidio 2005 sp1,C#.Net 测试环境Windows31、Windows95/98、Windows

9、NT、Windows 20002.3 基本设计概念和处理流程说明本系统的基本设计概念和处理流程,尽量使用图表的形式。营业部系统一共有四个对象,即客户、员工、市场和银行,市场的概念是交易所的细化,比如上海证券交易所的股和股就是两个市场,有了市场的概念我们就可以把交易所这个概念细化,并使同一个市场的共性更突出。银行则通过银证转账业务介入,并成为营业部系统不可或缺的组成部分。上述四个对象通过一些业务流程进行相互操作从而形成整个交易活动。因此整个系统模型可以表述为图2-1设计时需要将营业部系统所使用的各种信息分为描述四个对象的信息和描述业务流程的信息。由于四个对象相对而言是一种稳定型信息,而业务流程则

10、较易变化,且营业部之间差异很大,因此应将四个对象尽量定型,而将各种业务流程尽可能做成组件,以便营业部可根据实际需求组装成适合自己的系统。根据以上思想,在设计对象模型时应充分考虑到可扩展性,尽量做到抽象化、参数化,从而使对象需求变化时不致影响系统结构。 图 2.12.4 结构用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系。本系统采用c/s模式的3层结构按照不同会话来划分的话可以分为3大系统模块局域网数据库柜台管理查询管理报表管理资金管理数据转换银证转账委托服务日终管理系统管理系统监控接口

11、处理子系统系统维护子系统图2-2 交易系统体系结构客户端登陆模块:最关键的交易系统模块结构图如下:股票信息发布经过修改我认为每次由客户端每5秒去查询一次服务器更新信息不可取,因为这会加重服务端和客户端的负担,特别是服务器端的运算。修改后实现变更为:用户一开始登陆后获得一次服务器的全部股票当前信息。而服务器端每次发生交易后,给每一个在线用户发送当前交易需要更新的股票信息,这样就减轻了客户机和服务端的信息2.5 功能需求与程序的关系(该关系由需求分析报告编写者根据结构图说明)本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:获取并发送用户请求绘制分时图MD5加密解密发送用户交易请求

12、接受并识别用户请求调用数据层查询撮合交易服务器返回客户端信息用户登陆查看用户持仓实时指数交易委托取消交易2.6 人工处理过程说明在本软件系统的工作过程中不得不包含的人工处理过程(如果有的话)。没有完成股票管理的模块设计,所以股票必须从数据库后台添加如果有新股发行,还必须添加有关股票的交易队列2.7 尚未解决的问题说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。3 接口设计3.1 用户接口说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。向用户提供简单易用的UI,以及帮助文档。客户端将提供以下功能首先弹出用户登陆框,供用户输入用户名和密码菜单项提供个股查询和分

13、时图按钮菜单栏下是选项卡,提供股票实时信息和个股分时图栏 提供用户交易界面和交易按钮以及查看用户盈亏按键3.2 外部接口说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。采用基于正确公开标准的部件和技术以确保最大限度的协作能力以及与第三方系统与部件集成的简便性。这类标准包括但不限于以下几种: 网络协议与标准 (TCP/IP, HTTP, SSL, etc) 语言(SQL, C#.net, etc.) 数据库连接性(ADO。net)3.3 内部接口说明本系统之内的各个系统元素之间的接口的安排。逻辑层和数据访问层通过以经的stockDataModel接口,

14、来限定访问stockData类型的数据客户端通过调用buyStock(stockData)和sellStock(stockData)来访问逻辑层,在这个函数中包含了访问逻辑层的接口dealTransaction(stockData) 通过AdoFactory访问不同的数据库客户端登陆协议D(二字节)+(客户名字长度)(4字节)+(客户名字)+(客户密码长度)(4字节)+(客户密码);客户买卖协议B(二字节)+(股票ID)(4字节)+(股票数量)(4字节)S(二字节)+(股票ID)(4字节)+(股票数量)(4字节)查询交易信息并返回给客户端C(二字节)具体有拆包解包的类using System;

15、using System.Collections.Generic;using System.Text;namespace ProjectCenterTradingSys public class Protocal private byte messagebuffer; private byte messagelength; public byte messagebag; /该函数是将字符串转换为字节数组 public byte StringtoByte(string stringInfo) messagebuffer = System.Text.ASCIIEncoding.ASCII.GetB

16、ytes(stringInfo); return messagebuffer; /该函数将整型转换为个字节 public byte InttoByte(int number) messagelength=BitConverter.GetBytes(number); return messagelength; /将浮点型转换为个字节 public byte DoubletoByte(double price) byte pricebyte = BitConverter.GetBytes(price); return pricebyte; /合并一个字符串(字节数组)和他的长度作为一个包 publ

17、ic byte Combinarray(byte messle, byte messinfo) messagebag=new bytemessle.Length+messinfo.Length; int index; for (index = 0; index messle.Length; index+) messagebagindex = messagelengthindex; for (int index1 = 0; index1 newlist.price,利用插入排序将newlist插入到买队列BuyQueue中,转1; 3.) if SellQueue0.countnewlist.c

18、ount,newlist完全撮合,SellQueue0.countSellQueue0.countnewlist.count,转2;4.) if SellQueue0.count=newlist.count,SellQueue0撮合,并将SellQueue0从SellQueue队列中删除,newlist.count=newlist.count-SellQueue0.count,转2; 5.) 取买单队列头BuyQueue0,if BuyQueue0.pricenewlist.count,newlist完全撮合,BuyQueue0.countBuyQueue0.countnewlist.coun

19、t,转1;7.) if BuyQueue0.count=newlist.count,BuyQueue0撮合, 并将BuyQueue0从BuyQueue队列中删除, newlist.count=newlist.count-BuyQueue0.count,转5; 如下面流程图5.2.2所示: 图3.2.25.2.2 集合竞价集合竞价是指对所有有效委托进行集中处理,深、沪两市的集合竞价时间为交易日上午9:15至9:25。集合竞价原则: 凡是高于开盘价的买单一定成交; 凡是低于开盘价的卖单一定成交; 凡是高于开盘价的卖单一定不成交; 凡是低于开盘价的买单一定不成交;集合竞价分四步完成: 第一步:确定有

20、效委托在有涨跌幅限制的情况下,有效委托是这样确定的: 根据该只证券上一交易日收盘价以及确定的涨跌幅度来计算当日的最高限价、 最低限价。有效价格范围就是该只证券最高限价、最低限价之间的所有价位。 限价超出此范围的委托为无效委托,系统作自动撤单处理。 第二步:系统根据竞价规则自动确定集合竞价的成交价,这个价格就是当日的开盘价, 所有高于开盘价的买盘和所有低开开盘价的卖盘均以此价格成交, 集合竞价的成交价确定原则是:以此价格成交,能够得到最大成交量。 第三步:集中撮合处理所有的买委托按照委托限价由高到低的顺序排列, 限价相同者按照进入系统的时间先后排列;所有卖委托按委托限价由低到高的顺序排列 , 限

21、价相同者按照进入系统的时间先后排列。依序逐笔将排在前面的买委托与卖委托配对成交,即按照价格优先,同等价格下时间优先的成交顺序依次成交,直至成交条件不满足为止,即不存在限价高于等于成交价的叫买委托、或不存在限价低于等于成交价的叫卖委托。 所有成交都以同一成交价成交。 这同一成交价成交的买卖单一般量都是很大的,如图3.2.3所示图3.2.3所示第四步:行情揭示:1.) 如该只证券的成交量为零,则将成交价位揭示为开盘价、最近成交价、最高价、最低价,并揭示出成交量、成交金额。2.) 剩余有效委托中,实际的最高叫买价揭示为叫买揭示价,若最高叫买价不存在,则叫买揭示价揭示为空;实际的最低叫卖价揭示为叫卖揭

22、示价,若最低叫卖价不存在,则叫卖揭示价揭示为空。 集合竞价中未能成交的委托,自动进入连续竞价。按照这样的原则和要求,我们设计了如下的集合竞价撮合算法。如图3.2.4所示。 图3.2.4集合竞价算法描述:和连续竞价一样,首先设定QueueStruct结构为元素的买卖两个队列BuyQueue和SellQueue。为了尽可能的提高效率,减少资源占用,我们用静态数组构建这两个队列。其中BuyQueue是时间优先、买价降序排序,而SellQueue是时间优先、卖价升序排序。在开市到开盘这段时间内,买卖单已经分别进入了买卖队列内排好了序。一旦宣布开盘,则触发集合撮合,如下: 判断两队列是否都不为空,如是,

23、转2;如否,转21; 判断BuyQueue0.prince与SellQueue0.prince之差,如大于等于0,转3:如小于0,转21; 定义int i=j=0;M、N分别为买卖两队列非空元素的个数;BOOL k;QueueStruct Buy=BuyQueue0;Sell=SellQueue0;Buy1;Sell1;转4; 判断BuyQueuei.prince与SellQueuej.prince之差,如大于等于0,转5:如小于0,转14; 判断Buy.count与Sell.count之差,如大于0,转6;如小于等于0,转9; j+; k=true; Sell1.count=Sell.cou

24、nt;Sell.count=Sell.count+SellQueueiSellQueue.count;转7; 判断j是否小于N,如是,转4;如不是,转8; 开盘价为BuyQueuei.price;总成交量为Sell.count;统计成交数据及回报,并返回; i+;k=false; Buy1.count=Buy.count;Buy.count=Buy.count+BuyQueuei.count;转10; 判断i是否小于M,如是,转4;如不是,转11; 判断Buy.count与Sell.count之差,如小于0,转12;如等于0,转13; 开盘价为SellQueuej.price;总成交量为Buy.count;统计成交数据及回报,并返回; 开盘价为(SellQueuej

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1