軟件詳細(xì)設(shè)計說明書(例)_第1頁
軟件詳細(xì)設(shè)計說明書(例)_第2頁
軟件詳細(xì)設(shè)計說明書(例)_第3頁
軟件詳細(xì)設(shè)計說明書(例)_第4頁
軟件詳細(xì)設(shè)計說明書(例)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、案卷號日期00001軟件詳細(xì)設(shè)計說明書(例)作者:完成日期: 簽 收 人: 簽收日期:修改情況記錄:版本號修改批準(zhǔn)人修改人安裝日期簽收人目錄1 引言 . 31.1 編寫目的 . 31.2 范圍. 41.3 定義. 41.4 參考資料 . 42 總體設(shè)計 . 52.1 需求規(guī)定 . 52.2 運(yùn)行環(huán)境 . 52.3 基本設(shè)計概念和處理流程 . 62.4 結(jié)構(gòu). 82.5 功能需求與程序的關(guān)系 . 112.6 人工處理過程 . 132.7 尚未解決的問題 . 133 接口設(shè)計 . 133.1 用戶接口 . 133.2 外部接口 . 143.3 內(nèi)部接口 . 144 運(yùn)行設(shè)計 . 184.1 運(yùn)行模

2、塊組合 . 184.2 運(yùn)行控制 . 184.3 運(yùn)行時間 . 185 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計 . 195.1 邏輯結(jié)構(gòu)設(shè)計要點 . 195.2 物理結(jié)構(gòu)設(shè)計要點 . 15.3 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系 . 46 系統(tǒng)出錯處理設(shè)計 . 46.1 出錯信息 . 46.2 補(bǔ)救措施 . 56.3 系統(tǒng)維護(hù)設(shè)計 . 51 引言1.1 編寫目的隨著證券交易電子化程度的不斷提高,券商對于各種業(yè)務(wù)提出了新的要求,為了滿足券 商的發(fā)展需求,更好的為客戶提供服務(wù),現(xiàn)結(jié)合原有各版本的證券交易軟件的優(yōu)點和特點, 開發(fā)一套采用 client/server 結(jié)構(gòu)的證券交易軟件管理系統(tǒng)(sql 版)。本系統(tǒng)從底層予以優(yōu) 化,使整

3、個系統(tǒng)的運(yùn)行速度得到較大提高,通過重新優(yōu)化數(shù)據(jù)庫內(nèi)部結(jié)構(gòu),使系統(tǒng)的可擴(kuò)充 性得到極大提高。本說明書給出 sql 版證券交易系統(tǒng)的設(shè)計說明,包括最終實現(xiàn)的軟件必須滿足的功能、 性能、接口和用戶界面、附屬工具程序的功能以及設(shè)計約束等。目的在于:為編碼人員提供依據(jù);為修改、維護(hù)提供條件;項目負(fù)責(zé)人將按計劃書的要求布置和控制開發(fā)工作全過程;項目質(zhì)量保證組將按此計劃書做階段性和總結(jié)性的質(zhì)量驗證和確認(rèn)。本說明書的預(yù)期讀者包括:項目開發(fā)人員,特別是編碼人員;軟件維護(hù)人員;技術(shù)管理人員;執(zhí)行軟件質(zhì)量保證計劃的專門人員;參與本項目開發(fā)進(jìn)程各階段驗證、確認(rèn)以及負(fù)責(zé)為最后項目驗收、鑒定提供相應(yīng)報 告的有關(guān)人員。合作

4、各方有關(guān)部門的復(fù)雜人;項目負(fù)責(zé)人和全體參加人員。模擬股票交易系統(tǒng)1.2 范圍說明:a 待開發(fā)的軟件系統(tǒng)的名稱:b 列出本項目的任務(wù)提出者、開發(fā)者、用戶以及將運(yùn)行該項軟件的單位。1.3 定義列出本文件中用到的專門術(shù)語的定義和縮寫詞的原詞組。本報告用到的術(shù)語符合國家標(biāo)準(zhǔn)軟件工程術(shù)語(gb/t11475-1995)。1.4 參考資料列出要用到的參考資料,如:a 本項目的經(jīng)核準(zhǔn)的計劃任務(wù)書或合同、上級機(jī)關(guān)的批文;b 屬于本項目的其他已發(fā)表的文件;c 本文件中各處引用的文件、資料,包括所要用到的軟件開發(fā)標(biāo)準(zhǔn)。列出這些文件的標(biāo)題、文件編號、發(fā)表日期和出版單位,說明能夠得到這些文件資料的 來源。2 總體設(shè)計

5、2.1 需求規(guī)定說明對本系統(tǒng)的主要的輸入輸出項目、處理的功能性能要求,詳細(xì)的說明可參見需求 分析說明書。2.2 運(yùn)行環(huán)境簡要地說明對本系統(tǒng)的運(yùn)行環(huán)境(包括硬件環(huán)境和支持環(huán)境)的規(guī)定,詳細(xì)說明參見需 求分析說明書。數(shù)據(jù)庫服務(wù)器 奔騰 pro 內(nèi)存 128mb 以上 硬盤 9gb100m 網(wǎng)卡應(yīng)用服務(wù)器 奔騰 pro 內(nèi)存 64mb 以上 硬盤 4gb100m 網(wǎng)卡網(wǎng)絡(luò)配置100m / 10m工作站(柜臺) p100 以上內(nèi)存 8mb 以上 硬盤 1g 以上 100m/10m 網(wǎng)卡軟件操作系統(tǒng)windows nt 4.0 以上數(shù)據(jù)庫管理系統(tǒng)sql server 2005相關(guān)軟件工具windows

6、nt workstation/windows nt server windows 2000 professional/ server開發(fā)工具平臺:windows95/98、windows nt、windows 2000開發(fā)工具:visual stidio 2005 sp1,c#.net測試環(huán)境windows31、windows95/98、windows nt、windows 20002.3 基本設(shè)計概念和處理流程說明本系統(tǒng)的基本設(shè)計概念和處理流程,盡量使用圖表的形式。營業(yè)部系統(tǒng)一共有四個對象,即客戶、員工、市場和銀行,市場的概念是交易所的細(xì)化, 比如上海證券交易所的股和股就是兩個市場,有了市場

7、的概念我們就可以把交易所這個 概念細(xì)化,并使同一個市場的共性更突出。銀行則通過銀證轉(zhuǎn)賬業(yè)務(wù)介入,并成為營業(yè)部系 統(tǒng)不可或缺的組成部分。上述四個對象通過一些業(yè)務(wù)流程進(jìn)行相互操作從而形成整個交易活動。因此整個系統(tǒng)模型可以表述為圖 2-1設(shè)計時需要將營業(yè)部系統(tǒng)所使用的各種信息分為描述四個對象的信息和描述業(yè)務(wù)流程 的信息。由于四個對象相對而言是一種穩(wěn)定型信息,而業(yè)務(wù)流程則較易變化,且營業(yè)部之間 差異很大,因此應(yīng)將四個對象盡量定型,而將各種業(yè)務(wù)流程盡可能做成組件,以便營業(yè)部可 根據(jù)實際需求組裝成適合自己的系統(tǒng)。根據(jù)以上思想,在設(shè)計對象模型時應(yīng)充分考慮到可擴(kuò)展性,盡量做到抽象化、參數(shù)化, 從而使對象需求變

8、化時不致影響系統(tǒng)結(jié)構(gòu)。圖 2.12.4 結(jié)構(gòu)用一覽表及框圖的形式說明本系統(tǒng)的系統(tǒng)元素(各層模塊、子程序、公用程序等)的劃分,扼要說明每個系統(tǒng)元素的標(biāo)識符和功能,分層次地給出各元素之間的控制與被控制關(guān)系。本系統(tǒng)采用 c/s 模式的 3 層結(jié)構(gòu)按照不同會話來劃分的話可以分為 3 大系統(tǒng)模塊委托服務(wù)系統(tǒng)監(jiān)控接口處理子系統(tǒng)系統(tǒng)維護(hù)子系統(tǒng)數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)庫日終管理銀證轉(zhuǎn)賬局域網(wǎng)系統(tǒng)管理資金管理報表管理柜臺管理查詢管理圖 2-2 交易系統(tǒng)體系結(jié)構(gòu)客戶端登陸模塊:最關(guān)鍵的交易系統(tǒng)模塊結(jié)構(gòu)圖如下:/cpiptcheckusermoneycount(stockdata)or checkuserstockcount要

9、通過數(shù)據(jù)訪問層來訪問用戶表在撮合隊列中處理并且返回處理結(jié)果 tradeinqueue(stockdatanewstockdata)successunsuccessupdateuserinfoupdatedelegate(stockdata)info(stockdat通過調(diào)用ado層工廠來訪問a)不同的數(shù)據(jù)庫同左更新的是(更新用戶表委托臨時表)buystocksellstockquotestockc anseld elegaterules/model規(guī)范買賣指令傳輸?shù)臄?shù)據(jù)結(jié)adofactory通過該模塊可動態(tài)建立不同數(shù)據(jù)庫的連接orical、sqlserver,access數(shù)據(jù)訪問層access

10、 access.postdate(stockdata) 將數(shù)據(jù)更新到數(shù)據(jù)庫構(gòu)必須是stockdata形式check數(shù)據(jù)訪問層sqlserver sqlserver。postdate(stockdata)股票信息發(fā)布經(jīng)過修改我認(rèn)為每次由客戶端每 5 秒去查詢一次服務(wù)器更新信息不可取,因為這會加重 服務(wù)端和客戶端的負(fù)擔(dān),特別是服務(wù)器端的運(yùn)算。修改后實現(xiàn)變更為:用戶一開始登陸后獲得一次服務(wù)器的全部股票當(dāng)前信息。而服務(wù)器 端每次發(fā)生交易后,給每一個在線用戶發(fā)送當(dāng)前交易需要更新的股票信息,這樣就減輕了客 戶機(jī)和服務(wù)端的信息客戶端第一次登陸發(fā)送請求獲得所有 股票信息,并畫分時線圖stock idstock

11、 pricetcp/ip服務(wù)器每次交易返回最新信息2.5 功能需求與程序的關(guān)系(該關(guān)系由需求分析報告編寫者根據(jù)結(jié)構(gòu)圖說明)本條用一張如下的矩陣圖說明各項功能需求的實現(xiàn)同各塊程序的分配關(guān)系:獲取并發(fā)送 用戶請求繪制分時圖md5 加密解密發(fā)送用戶交易請求接受并識別 用戶請求調(diào)用數(shù)據(jù)層 查詢撮合交易服務(wù)器返回 客戶端信息用戶登陸查看用戶持倉實時指數(shù) 交易委托取消交易 2.6 人工處理過程說明在本軟件系統(tǒng)的工作過程中不得不包含的人工處理過程(如果有的話)。 沒有完成股票管理的模塊設(shè)計,所以股票必須從數(shù)據(jù)庫后臺添加如果有新股發(fā)行,還必須添加有關(guān)股票的交易隊列2.7 尚未解決的問題說明在概要設(shè)計過程中尚未

12、解決而設(shè)計者認(rèn)為在系統(tǒng)完成之前必須解決的各個問題。 3 接口設(shè)計3.1 用戶接口說明將向用戶提供的命令和它們的語法結(jié)構(gòu),以及軟件的回答信息。向用戶提供簡單易用的 ui,以及幫助文檔。客戶端將提供以下功能首先彈出用戶登陸框,供用戶輸入用戶名和密碼菜單項提供個股查詢和分時圖按鈕菜單欄下是選項卡,提供股票實時信息和個股分時圖欄提供用戶交易界面和交易按鈕以及查看用戶盈虧按鍵3.2 外部接口說明本系統(tǒng)同外界的所有接口的安排包括軟件與硬件之間的接口、本系統(tǒng)與各支持軟件 之間的接口關(guān)系。采用基于正確公開標(biāo)準(zhǔn)的部件和技術(shù)以確保最大限度的協(xié)作能力以及與第三方系統(tǒng)與 部件集成的簡便性。這類標(biāo)準(zhǔn)包括但不限于以下幾種

13、:網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn) (tcp/ip, http, ssl, etc) 語言(sql, c#.net, etc.)數(shù)據(jù)庫連接性(ado。net)3.3 內(nèi)部接口說明本系統(tǒng)之內(nèi)的各個系統(tǒng)元素之間的接口的安排。邏輯層和數(shù)據(jù)訪問層通過以經(jīng)的 stockdatamodel 接口,來限定訪問 stockdata 類型的數(shù)據(jù)客戶端通過調(diào)用 buystock(stockdata)和 sellstock(stockdata)來訪問邏輯層,在這個 函數(shù)中包含了訪問邏輯層的接口 dealtransaction(stockdata)通過 adofactory 訪問不同的數(shù)據(jù)庫客戶端登陸協(xié)議d(二字節(jié))+(客戶名字長度)

14、(4 字節(jié))+(客戶名字)+(客戶密碼長度)(4 字節(jié))+(客戶密碼); 客戶買賣協(xié)議b(二字節(jié))+(股票 id)(4 字節(jié))+(股票數(shù)量)(4 字節(jié))s(二字節(jié))+(股票 id)(4 字節(jié))+(股票數(shù)量)(4 字節(jié))查詢交易信息并返回給客戶端c(二字節(jié))具體有拆包解包的類using system;using system.collections.generic;using system.text;namespace projectcentertradingsyspublic class protocalprivate byte messagebuffer;private byte messa

15、gelength;public byte messagebag;/該函數(shù)是將字符串轉(zhuǎn)換為字節(jié)數(shù)組public byte stringtobyte( string stringinfo) messagebuffer = system.text. asciiencoding.ascii.getbytes(stringinfo); return messagebuffer;/該函數(shù)將整型轉(zhuǎn)換為個字節(jié)public byte inttobyte(int number)messagelength= bitconverter.getbytes(number);returnmessagelength;/將浮點

16、型轉(zhuǎn)換為個字節(jié)public byte doubletobyte( double price)byte pricebyte = bitconverter.getbytes(price); return pricebyte;/合并一個字符串(字節(jié)數(shù)組)和他的長度作為一個包public byte combinarray(byte messle, byte messinfo) messagebag=new bytemessle.length+messinfo.length;int index;for (index = 0; index messle.length; index+) messagebag

17、index = messagelengthindex;for (int index1 = 0; index1 newlist.price , 利 用 插 入 排 序 將 newlist 插入到買隊列 buyqueue 中,轉(zhuǎn) 1;3.) if sellqueue0.countnewlist.count,newlist 完全撮合,sellqueue0.countsellqueue0.countnewlist.count,轉(zhuǎn) 2;4.) if sellqueue0.count=newlist.count , sellqueue0 撮 合 , 并 將 sellqueue0 從 sellqueue 隊

18、 列 中 刪 除 , newlist.count=newlist.count-sellqueue0.count,轉(zhuǎn) 2;5.)取買單隊列頭buyqueue0,ifbuyqueue0.pricenewlist.count,newlist 完全撮合,buyqueue0.countbuyqueue0.countnewlist.count, 轉(zhuǎn) 1;7.) if buyqueue0.count=newlist.count,buyqueue0撮合, 并將 buyqueue0從 buyqueue 隊列中刪 除, newlist.count=newlist.count-buyqueue0.count ,轉(zhuǎn)

19、5;如下面流程圖 5.2.2所示:賣單 買單可交易,判斷差量通2過插入排序找到其分buyqueue newlist selqueue 判buyqueue斷 判斷其為買判sel斷l(xiāng)queue 是否為空 單還是賣單 是否為空為空不為空不為空為空無法交newlist易進(jìn),大0于判斷差價 判斷差價 小0于無法交newlist易進(jìn), 入selqueue排序 newlist.price-buyqueue0.pricenewlist.price-selqueue0.price入buyqueue排序 小于0等于大于0等于通2過分插入排序找到其 可交易,判斷差量在selqueue中的位置newlist.coun

20、t-buyqueue0.countnewlist.count-selqueue0.count在buyqueue中的位置大于0等于小0于 小0于大于0等于buyqueue0newlist完 selqueue0被 被完全磨合 全被磨合 完全磨合buyqueue內(nèi)全部非 空成員向前進(jìn)一位返回成交信息圖 3.2.2selqueue內(nèi)全部非空成員向前進(jìn)一位5.2.2 集合競價集合競價是指對所有有效委托進(jìn)行集中處理,深、滬兩市的集合競價時間為 交易日上午 9:15 至 9:25。集合競價原則:凡是高于開盤價的買單一定成交; 凡是低于開盤價的賣單一定成交; 凡是高于開盤價的賣單一定不成交; 凡是低于開盤價的

21、買單一定不成交;集合競價分四步完成:第一步:確定有效委托在有漲跌幅限制的情況下,有效委托是這樣確定的:根據(jù)該只證券上一交易日收盤價以及確定的漲跌幅度來計算當(dāng)日的最高限 價、 最低限價。有效價格范圍就是該只證券最高限價、最低限價之間的所有價 位。限價超出此范圍的委托為無效委托,系統(tǒng)作自動撤單處理。第二步:系統(tǒng)根據(jù)競價規(guī)則自動確定集合競價的成交價,這個價格就是當(dāng)日 的開盤價, 所有高于開盤價的買盤和所有低開開盤價的賣盤均以此價格成交, 集合競價的成交價確定原則是:以此價格成交,能夠得到最大成交量。第三步:集中撮合處理所有的買委托按照委托限價由高到低的順序排列, 限 價相同者按照進(jìn)入系統(tǒng)的時間先后排

22、列;所有賣委托按委托限價由低到高的順序 排列 , 限價相同者按照進(jìn)入系統(tǒng)的時間先后排列。依序逐筆將排在前面的買委 托與賣委托配對成交,即按照價格優(yōu)先,同等價格下時間優(yōu)先的成交順序依次 成交,直至成交條件不滿足為止,即不存在限價高于等于成交價的叫買委托、或 不存在限價低于等于成交價的叫賣委托。所有成交都以同一成交價成交。 這同一成交價成交的買賣單一般量都是很 大的,如圖 3.2.3 所示列隊賣開盤撮合列隊買圖 3.2.3 所示第四步:行情揭示:1. )2. )如該只證券的成交量為零,則將成交價位揭示為開盤價、最 近成交價、最高價、最低價,并揭示出成交量、成交金額。 剩余有效委托中,實際的最高叫買

23、價揭示為叫買揭示價,若 最高叫買價不存在,則叫買揭示價揭示為空;實際的最低叫 賣價揭示為叫賣揭示價,若最低叫賣價不存在,則叫賣揭示 價揭示為空。集合競價中未能成交的委托,自動進(jìn)入連續(xù)競價。按照這樣的原則和要求,我們設(shè)計了如下的集合競價撮合算法。如圖 3.2.4 所示。buyqueue 判斷兩隊列是 否都不為空否開盤價為昨日收 盤價,成交量為0小于0sellqueue 是判斷差價buyqueue0.price-sellqueue0.price大于等于0i=j=0, m、n分別為buyqueue與sellqueue非空元素的數(shù)目; bool k; buy=buyqueue0; sell=sellq

24、ueue0判斷差價buyqueuei.price-sellqueuej.price大于等于0判斷差量buy.count-sell.count小于0小于等于0i+; k=false; buy1.count=buy.count;buy.count=buy.count+buyqueuei.count;大于0j+; k=true; sell1.count=sell.count;sell.count=sell.count+sellqueueisellqueue.count;是判斷是否im否判斷是否jn否是判斷buy.count-sell.count開盤價為buyqueuei.price;總 成交量為se

25、ll.count小于0開盤價為sellqueuej.price; 總成交量為buy.count等于0開盤價為(sellqueuej.price+buyqueuei-1.price)/2;總 成交量為sell.count判斷buy1.count-sell1.count等于0開盤價為(sellqueuej-1.price+buyqueuei-1.price)/2;總 成交量為sell1.counttrue大于0開盤價為buyqueuei.price;總 成交量為sell1.count判斷k值false等于0判斷buy1.count-sell.count小于0開盤價為(sellqueuej.pric

26、e+buyqueuei-1.price)/2; 總成交量為buy1.count圖 3.2.4開盤價為sellqueuej.price;總成 交量為buy1.count集 合 競 價 算 法 描 述 :和 連 續(xù) 競 價 一 樣 ,首 先 設(shè) 定 queuestruct 隊 列 buyqueue 和 sellqueue 。結(jié) 構(gòu) 為 元 素 的 買 賣 兩 個為 了 盡 可 能 的 提 高 效 率 , 減 少 資 源 占 用 , 我 們 用 靜 態(tài) 數(shù) 組 構(gòu) 建 這 兩 個 隊 列 。其 中 buyqueue是 時 間 優(yōu) 先 、 買 價 降 序 排 序 , 而 sellqueue是 時間 優(yōu)

27、 先 、賣 價 升 序 排 序 。在 開 市 到 開 盤 這 段 時 間 內(nèi) ,買 賣 單 已 經(jīng) 分 別 進(jìn) 入 了 買 賣 隊 列 內(nèi) 排 好 了 序 。一 旦 宣 布 開 盤 , 則 觸 發(fā) 集 合 撮 合 , 如 下 :判 斷 兩 隊 列 是 否 都 不 為 空 , 如 是 , 轉(zhuǎn) 2 ; 如 否 , 轉(zhuǎn) 21 ;判 斷 buyqueue0.prince與 sellqueue0.prince之 差 , 如 大 于 等 于 0 , 轉(zhuǎn) 3 : 如 小 于 0 , 轉(zhuǎn) 21 ; 定 義 int i=j=0 ; m 、 n 分 別 為 買 賣 兩 隊 列 非 空 元 素的 個 數(shù) ; bool k ; queuestruct buy=buyqueue0;sell=sellqueue0; buy1 ; sell1 ; 轉(zhuǎn) 4 ;判 斷 buyqueuei.prince與 sellqueuej.prince之 差 , 如 大 于 等 于 0 , 轉(zhuǎn) 5 :

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論