第一篇:火車票售票系統(tǒng) 需求分析報(bào)告
三、需求規(guī)格說明書
三、需求規(guī)格說明書
1.引言...........................................................................................................................1 1.1編寫目的.............................................................................................................1 1.2項(xiàng)目背景.............................................................................................................2 1.3定義....................................................................................................................2 1.4參考資料.............................................................................................................2 2.任務(wù)概述....................................................................................................................2 2.1目標(biāo)....................................................................................................................2 2.2運(yùn)行環(huán)境.............................................................................................................3 2.3條件與限制..........................................................................................................3 3.?dāng)?shù)據(jù)描述....................................................................................................................3 3.1靜態(tài)數(shù)據(jù).............................................................................................................3 3.2動(dòng)態(tài)數(shù)據(jù).............................................................................................................3 3.3數(shù)據(jù)庫(kù)介紹..........................................................................................................4 3.4數(shù)據(jù)詞典.............................................................................................................4 3.5數(shù)據(jù)采集.............................................................................................................8 4.功能需求....................................................................................................................8 4.1功能劃分.............................................................................................................8 4.2功能描述.............................................................................................................9 5.性能需求....................................................................................................................9 5.1數(shù)據(jù)精確度..........................................................................................................9 5.2時(shí)間特性.............................................................................................................9 5.3適應(yīng)性.................................................................................................................9 6.運(yùn)行需求....................................................................................................................9 6.1用戶界面.............................................................................................................9 6.2硬件接口...........................................................................................................10 6.3軟件接口...........................................................................................................10 6.4故障處理...........................................................................................................10 7.其它需求..................................................................................................................10
1.引言
1.1編寫目的
本需求分析報(bào)告的目的是規(guī)范化本軟件的編寫,旨在于提高軟件開發(fā)過程中的能見度,便于對(duì)軟件開發(fā)過程中的控制與管理,同時(shí)提出了本火車售票系統(tǒng)的軟件開發(fā)過程,便于程
三、需求規(guī)格說明書
序員與客戶之間的交流、協(xié)作,并作為工作成果的原始依據(jù),同時(shí)也表明了本軟件的共性,以期能夠獲得更大范圍的應(yīng)用。本文檔供項(xiàng)目經(jīng)理、設(shè)計(jì)人員、開發(fā)人員參考。
1.2項(xiàng)目背景
a.項(xiàng)目的委托單位:中國(guó)鐵路局 b.開發(fā)單位:xx大學(xué) c.主管部門:計(jì)算機(jī)學(xué)院 d.軟件名稱:火車售票系統(tǒng) e.軟件開發(fā)者:
1.3定義
a.鐵路售票應(yīng)用系統(tǒng)軟件:基本元素為構(gòu)成鐵路售票及相關(guān)行為所必須的各種部分。
b.需求:用戶解決問題或達(dá)到目標(biāo)所需的條件或功能;系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn),規(guī)范或其它正式規(guī)定文檔所需具有的條件或權(quán)能。
c.需求分析:包括提煉,分析和仔細(xì)審查已收集到的需求,以確保所有的風(fēng)險(xiǎn)承擔(dān)者都明其含義并找出其中的錯(cuò)誤,遺憾或其它不足的地方。
d.模塊的獨(dú)立性:是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡(jiǎn)單的。
1.4參考資料
a.《實(shí)用軟件工程》(第二版)鄭人杰,殷人昆,陶永雷。清華大學(xué)出版社,1997。b.《JAVA網(wǎng)絡(luò)高級(jí)編程》金勇華,曲俊生。人民郵電出版社,2001。
c.《JBUILDER培訓(xùn)教程》Borland software corporation。機(jī)械工業(yè)出版社,2002。
2.任務(wù)概述
2.1目標(biāo)
(1)完善目前火車售票系統(tǒng),使之能跟上時(shí)代的發(fā)展。同時(shí)通過實(shí)踐來提高自己的動(dòng)手能
三、需求規(guī)格說明書
(2)應(yīng)用范圍:理論上能夠?qū)崿F(xiàn)于鐵路部門的售票系統(tǒng),其目的在于在原有的系統(tǒng)基礎(chǔ)使得火車售票便捷化,以期實(shí)現(xiàn)完善日常生活中火車售票的各種缺陷。
(3)可實(shí)現(xiàn)旅客對(duì)于火車票的查詢與購(gòu)買功能,售票員則可實(shí)現(xiàn)查詢、添加和刪除等功能;對(duì)于所查詢的車次結(jié)果提供列表顯示輸出;有一定的安全機(jī)制,普通旅客不能對(duì)車次信息隨意刪改,只有授權(quán)的售票員可通過密碼識(shí)別進(jìn)行維護(hù)。
2.2運(yùn)行環(huán)境
操作系統(tǒng):Microsoft Windows 2000 Advanced Server 支持環(huán)境:IIS 5.0 數(shù) 據(jù) 庫(kù):Microsoft SQL Server 2000 2.3條件與限制
一個(gè)更完善的火車票售票系統(tǒng),應(yīng)提供更為便捷與強(qiáng)大的查詢購(gòu)買功能,如相應(yīng)的網(wǎng)絡(luò)操作及服務(wù),由于開發(fā)時(shí)間和計(jì)算機(jī)數(shù)量有限,該系統(tǒng)并未提供這一功能,對(duì)于信息的保護(hù)手段僅限制于設(shè)置用戶級(jí)別,以記名提供數(shù)據(jù)文件的備份,比較簡(jiǎn)單,不能防止惡意的破壞,安全性能有待進(jìn)一步完善。
3.?dāng)?shù)據(jù)描述
3.1靜態(tài)數(shù)據(jù)
火車票:列車車號(hào)
(int SerialNumber)
列車始發(fā)時(shí)間(struct time SetOut)
列車始發(fā)站(char DeparturePoint)
列車終點(diǎn)站(char TerminalPoint)
票務(wù):列車車號(hào)
(int SerialNumber)
已售出車票票數(shù)(int FixedNumber)
額定載量(int FixNumber)
售票員:用戶名(char name)
密碼(char password)3.2動(dòng)態(tài)數(shù)據(jù)
輸入數(shù)據(jù):根據(jù)界面提示,鍵盤輸入操作;
查詢方式:查詢車次、查詢始發(fā)站;
三、需求規(guī)格說明書
旅客購(gòu)買時(shí)的票務(wù)信息,售票員添加、購(gòu)票、退票時(shí)的票務(wù)信息;
售票員備份數(shù)據(jù)恢復(fù)所需的數(shù)據(jù)備份文件;
售票員操作需密碼,旅客操作受限; 輸出信息:查詢車次確定的數(shù)據(jù)庫(kù)記錄的子集;
統(tǒng)計(jì)結(jié)果;
車次信息錄入、刪除(成功或失敗);
車次信息查詢、購(gòu)買的操作結(jié)果;
數(shù)據(jù)備份輸出的數(shù)據(jù)備份文件; 內(nèi)部數(shù)據(jù):查詢操作建立的索引;
3.3數(shù)據(jù)庫(kù)介紹
數(shù)據(jù)庫(kù)采用Microsoft Access數(shù)據(jù)庫(kù)
3.4數(shù)據(jù)詞典
《火車售票系統(tǒng)》的總體功能如下: 車票的售出; 車票的退還; 車票信息的查詢;
車票的增刪改;
售票員查詢統(tǒng)計(jì)車票信息; 售票系統(tǒng)數(shù)據(jù)備份; 售票管理者口令修改; 1.售票員登陸系統(tǒng):(1)數(shù)據(jù)流圖
售票退票選擇檢驗(yàn)錯(cuò)誤售票員選擇用戶名密碼身份驗(yàn)證售票員信息密碼正確登陸系統(tǒng)選擇選擇選擇授權(quán)信息表查詢錄入新的班次信息
(2)數(shù)據(jù)詞典
? 數(shù)據(jù)源點(diǎn)及匯點(diǎn)描述: ① 名稱:售票員
簡(jiǎn)要描述:管理售票員信息
有關(guān)數(shù)據(jù)流:用戶名、密碼、系統(tǒng)選擇:售票系統(tǒng)、退票系統(tǒng)、查詢系統(tǒng)、錄入信息系統(tǒng) 數(shù)目:1
三、需求規(guī)格說明書
? 加工邏輯詞條描述: ① 加工名:身份檢驗(yàn)
加工編號(hào):1
簡(jiǎn)要描述:檢驗(yàn)用戶身份 輸入數(shù)據(jù)流:用戶名、密碼
輸出數(shù)據(jù)流:密碼正確、身份驗(yàn)證錯(cuò)誤 加工邏輯: IF 用戶名為空 THEN
發(fā)出“用戶名為空錯(cuò)誤”
ELSE IF 密碼為空 THEN
發(fā)出“密碼為空錯(cuò)誤”
ELSE IF 用戶名和密碼不符 THEN
發(fā)出“用戶名和密碼不匹配錯(cuò)誤”
ENDIF
ENDIF
ENDIF
ENDIF ? 數(shù)據(jù)流名詞條描述: ① 數(shù)據(jù)流名:用戶名
說明:售票員姓名
數(shù)據(jù)流來源:售票員 數(shù)據(jù)流去向:身份檢驗(yàn)
數(shù)據(jù)流組成:用戶名=字符型字符串 ② 數(shù)據(jù)流名:密碼
說明:與用戶名相匹配的密碼 數(shù)據(jù)流來源:售票員
數(shù)據(jù)流去向:身份檢驗(yàn)
數(shù)據(jù)流組成:密碼=短整型字符串 每個(gè)數(shù)據(jù)量流通量: ③ 數(shù)據(jù)流名:出錯(cuò)信息
說明:用于指示身份驗(yàn)證錯(cuò)誤的信息
數(shù)據(jù)流來源:身份檢驗(yàn) 數(shù)據(jù)流去向:售票員
數(shù)據(jù)流組成:出錯(cuò)信息=任意字符串 ④ 數(shù)據(jù)流名:系統(tǒng)名稱
說明:系統(tǒng)的名稱 數(shù)據(jù)流來源: 數(shù)據(jù)流去向:選擇 數(shù)據(jù)流組成: ? 數(shù)據(jù)文件詞條描述: ① 數(shù)據(jù)文件名:授權(quán)信息表
簡(jiǎn)述:存放售票員信息
輸入數(shù)據(jù):
輸出數(shù)據(jù):售票員信息
數(shù)據(jù)文件組成:授權(quán)信息表由“售票員信息”組成
三、需求規(guī)格說明書
2.售票員相關(guān)操作(售票、退票、查詢、錄入)
票務(wù)信息表車票信息車票信息售票退票選擇檢驗(yàn)錯(cuò)誤售票員選擇用戶名密碼身份驗(yàn)證售票員信息密碼正確登陸系統(tǒng)選擇選擇選擇授權(quán)信息表查詢車票信息錄入新的班次信息車票信息列車信息表
(2):數(shù)據(jù)詞典:
? 數(shù)據(jù)源點(diǎn)及匯點(diǎn)描述: 1 名稱:售票員 ○簡(jiǎn)要描述:管理售票員信息 有關(guān)數(shù)據(jù)流:用戶名、密碼
數(shù)目:1 ? 加工邏輯詞條描述: 1加工名:身份檢驗(yàn) ○加工編號(hào):1
簡(jiǎn)要描述:檢驗(yàn)用戶身份
輸入數(shù)據(jù)流:用戶名、密碼
輸出數(shù)據(jù)流:密碼正確、身份驗(yàn)證錯(cuò)誤 2加工名:售票 ○加工編號(hào):2 簡(jiǎn)要描述:根據(jù)所讀入的操作信息,售出火車票
輸入數(shù)據(jù)流:操作信息,火車票信息
輸出數(shù)據(jù)流:火車票信息
加工邏輯:根據(jù)所讀入的操作信息,售出火車票
? 數(shù)據(jù)流名詞條描述: 數(shù)據(jù)流名:用戶名 ○
三、需求規(guī)格說明書
說明:售票員的姓名
數(shù)據(jù)流來源:售票員 數(shù)據(jù)流去向:身份檢驗(yàn)
數(shù)據(jù)流組成:用戶名=字符型字符串 2數(shù)據(jù)流名:密碼 ○說明:與職工名稱相匹配的密碼 數(shù)據(jù)流來源:售票員 數(shù)據(jù)流去向:身份檢驗(yàn)
數(shù)據(jù)流組成:密碼=短整型字符串 每個(gè)數(shù)據(jù)量流通量: 3數(shù)據(jù)流名:車票信息 ○說明:車票信息
數(shù)據(jù)流來源:售票員
數(shù)據(jù)流去向:列車信息表
? 數(shù)據(jù)文件詞條描述:
① 數(shù)據(jù)文件名:列車信息表
簡(jiǎn)述:車票信息
輸入數(shù)據(jù):車票信息
輸出數(shù)據(jù):
數(shù)據(jù)文件組成:列車信息表由“車票信息”組成 存儲(chǔ)方式:關(guān)鍵碼 存取頻率:頻繁 2數(shù)據(jù)文件名:票務(wù)信息表 ○簡(jiǎn)述:票務(wù)信息
輸入數(shù)據(jù):票務(wù)信息 輸出數(shù)據(jù):
數(shù)據(jù)文件組成:票務(wù)信息表由“列車號(hào)、已售票、剩余票”組成 存儲(chǔ)方式:關(guān)鍵碼 存取頻率:頻繁
3.旅客查詢購(gòu)票過程:(1)數(shù)據(jù)流圖
三、需求規(guī)格說明書
旅客 登錄系統(tǒng)選擇選擇選擇選擇訂票退票查詢
(2)數(shù)據(jù)詞典:
● 數(shù)據(jù)源點(diǎn)及匯點(diǎn)描述: 名稱:旅客
簡(jiǎn)要描述:訂票,退票,查詢
有關(guān)數(shù)據(jù)流:系統(tǒng)選擇:訂票系統(tǒng)、退票系統(tǒng)、查詢系統(tǒng) ●數(shù)據(jù)流名詞條描述:
⑤ 數(shù)據(jù)流名:系統(tǒng)名稱
說明:系統(tǒng)的名稱 數(shù)據(jù)流來源:
數(shù)據(jù)流去向:選擇
數(shù)據(jù)流組成:
3.5數(shù)據(jù)采集
數(shù)據(jù)采集采用鍵盤輸入
4.功能需求
4.1功能劃分
該軟件具有如下主要功能: 1.瀏覽功能 2.查詢功能 3.添加功能 4.修改功能 5.刪除功能
三、需求規(guī)格說明書
6.授權(quán)功能
4.2功能描述
1.瀏覽功能
列出當(dāng)前數(shù)據(jù)庫(kù)文件中車票的所有記錄 可選定一項(xiàng)紀(jì)錄,顯示說有域 2.查詢功能
車次信息匹配查詢 始發(fā)站信息匹配查詢 3.添加功能
增加一條車票的信息 4.修改功能
修改某一已存在的記錄內(nèi)容,提供確認(rèn)機(jī)制 5.刪除功能
刪除一條記錄,提供確認(rèn)機(jī)制 6.授權(quán)功能
授權(quán)票務(wù)管理人員修改數(shù)據(jù)的權(quán)限
5.性能需求
5.1數(shù)據(jù)精確度
查詢時(shí)應(yīng)保證查全率,所有在相應(yīng)域中包含查詢車次的記錄都應(yīng)能查到,同時(shí)保證查準(zhǔn)率。
5.2時(shí)間特性
一般操作的相應(yīng)時(shí)間應(yīng)在1~2秒內(nèi)
5.3適應(yīng)性
滿足運(yùn)行環(huán)境在允許操作系統(tǒng)之間的安全轉(zhuǎn)換和雨其它又能夠用軟件的獨(dú)立運(yùn)行要求。
6.運(yùn)行需求
6.1用戶界面
采取對(duì)話框方式,多功能窗口運(yùn)行
三、需求規(guī)格說明書
6.2硬件接口
(1)硬件接口:支持x86系列PC機(jī)
(2)網(wǎng)絡(luò)硬件接口要求:現(xiàn)實(shí)中要求具有高速以太網(wǎng)組網(wǎng)一實(shí)現(xiàn)聯(lián)網(wǎng)銷售,但是在理論實(shí)驗(yàn)驗(yàn)證軟件本身的目的來看,無需網(wǎng)絡(luò)通訊接口。
6.3軟件接口
運(yùn)行于Windows2000及更高版本并裝有JAVA虛擬機(jī)的操作系統(tǒng)之上。
6.4故障處理
正常使用時(shí)不用出錯(cuò),對(duì)于用戶的輸入錯(cuò)誤應(yīng)及時(shí)給出適當(dāng)?shù)母恼畔⑻崾荆暨\(yùn)行遇到不可恢復(fù)的系統(tǒng)錯(cuò)誤,也必須保證數(shù)據(jù)庫(kù)完好無損。
7.其它需求
(1)可用性:該軟件也可以通過單步跟蹤的操作進(jìn)行檢查處理。
(2)安全性:由于軟件運(yùn)行數(shù)據(jù)放在數(shù)據(jù)庫(kù)中,所以參數(shù)不容易被錯(cuò)改、破壞,萬一參數(shù)受到破壞也不會(huì)影響源程序。
(3)可維護(hù)性:該軟件利用數(shù)據(jù)庫(kù)進(jìn)行編程,系統(tǒng)結(jié)構(gòu)由程序基本確定,大量的參數(shù)及文本內(nèi)容全部放于數(shù)據(jù)庫(kù)中。修改、更新數(shù)據(jù)只要在數(shù)據(jù)庫(kù)進(jìn)行修改添加,而不需要對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行修改,這樣系統(tǒng)維護(hù)性、升級(jí)都十分方便。
(4)兼容性:由于尚未測(cè)試,故無法對(duì)兼容性進(jìn)行評(píng)析。
第二篇:課程設(shè)計(jì)火車票售票系統(tǒng)的需求分析
二.需求分析
經(jīng)過對(duì)程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為八個(gè)模塊,每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù)。在這些函數(shù)當(dāng)中,添加車次數(shù)據(jù)函數(shù)、售票函數(shù)、查詢總額函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而顯示時(shí)間函數(shù)和顯示車次函數(shù)屬于附加功能。讀取文件函數(shù)和保存信息函數(shù)對(duì)其它函數(shù)的實(shí)現(xiàn)起輔助作用,主函數(shù)及菜單函數(shù)控制程序的整體運(yùn)行。
1.添加車次函數(shù)
主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)車次的錄入 2.旅客買票函數(shù)
實(shí)現(xiàn)的功能是按照旅客所需車次幾所購(gòu)買車票的數(shù)目 3.查詢車票總額
按照題目的具體要求實(shí)現(xiàn)的是總額的查詢 4.顯示函數(shù)
實(shí)現(xiàn)的是顯示目前所有的有效車次信息
除上面介紹的功能之外,程序還具有顯示當(dāng)?shù)貢r(shí)間,以及退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。
每一個(gè)車次都包含車次、日期,始發(fā)、終點(diǎn)以及所受票數(shù)和所需費(fèi)用,在程序當(dāng)中,將車次類型定義為結(jié)構(gòu)體類型,添加的車次信息直接寫入E盤的train.txt文件中,其它函數(shù)每次對(duì)車次記錄的訪問,其數(shù)據(jù)來源都是train.txt文件,這樣做不但可以保證學(xué)生數(shù)據(jù)的一致性,而且可以對(duì)車次數(shù)據(jù)進(jìn)行永保存,保證每次運(yùn)行程序都可以采用原來的數(shù)據(jù)
近年來,中國(guó)乃至世界的人口急劇增加,人口流動(dòng)量也隨之增加,火車作為一種便捷且相對(duì) 比較便宜的交通工具也受到廣大出行者的青睞,為了減輕鐵道部售票的壓力,特此編寫此程序,便于乘客在網(wǎng)上購(gòu)票。
3.1.2 軟件項(xiàng)目概述
本系統(tǒng)擁有四大功能,分別是查詢、訂票、改簽和退票。在使用不能系統(tǒng)之前,用戶必須注 冊(cè)用戶名,用戶名必須包括乘客的身份證號(hào),這樣可以實(shí)行實(shí)名制購(gòu)票,防止在購(gòu)票高峰,非法 分子以高價(jià)倒賣火車票,以此來保證乘客的利益。用戶在利用用戶名登陸本系統(tǒng)以后,方可經(jīng)行 查詢、訂票、改簽和退票的相關(guān)操作。其中,查詢?cè)试S乘客對(duì)自己所需乘坐的列車經(jīng)行查詢,來 判斷是否有票,如果有票,乘客則可以選擇訂票,訂票以后,用戶的信息將被修改,用戶信息將 會(huì)添加剛才購(gòu)買的火車票的列車車次以及起始地和目的地。如果乘客已經(jīng)購(gòu)票,需要換票,則必 須先查詢是否有需要換的票,如果有票,則可以經(jīng)行換票操作,同樣,用戶信息將也會(huì)被修改。
當(dāng)乘客已經(jīng)訂票,需要退票,點(diǎn)擊退票,則可以退票,但同時(shí)會(huì)彈出
需要用戶支付手續(xù)費(fèi)的窗
口,用戶支付完手續(xù)費(fèi)后,退票成功,用戶信息將被修改,推掉的車票對(duì)應(yīng)的列車號(hào)以及相關(guān)信 息將從用戶信息中刪除。
3.2 訂票流程設(shè)計(jì)
3.2.1 訂票流程描述
乘客在使用系統(tǒng)之前,首先注冊(cè)新用戶,需要輸入自己相關(guān)個(gè)人信息,包括自己的身份證號(hào) 碼,名稱,登陸密碼等。當(dāng)已經(jīng)注冊(cè)好用戶以后,用戶可以利用自己的證件號(hào)碼和登陸密碼登陸 火車票訂票系統(tǒng),乘客需先查詢自己所需要乘坐的列車,看是否有票,如果有票則可以選擇訂票,進(jìn)行訂票;如果用戶已經(jīng)購(gòu)票,需要換票,則需要查詢目標(biāo)票看其是否有剩余,如果有剩余,則 可以進(jìn)行換票,當(dāng)用戶輸入已擁有的火車票的列車號(hào)點(diǎn)擊退票,則可以經(jīng)行退票。當(dāng)然,以上操 作都必須建立在用戶已登錄的基礎(chǔ)上
階段通過對(duì)系統(tǒng)目標(biāo)的初步調(diào)研和分析,提出可行性方案并進(jìn)行論證。我們?cè)谶@ 里主要從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性三方面進(jìn)行分析。2.1.1 經(jīng)濟(jì)可行性
本系統(tǒng)其他應(yīng)用軟件、硬件系統(tǒng)也易于獲得.因此 , 開發(fā)成本較低。而引進(jìn)使用本系
統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質(zhì)量的特點(diǎn),可以節(jié)省不少人力、物 力及財(cái)力。所以,從經(jīng)濟(jì)的角度來看,該系統(tǒng)可行。2.1.2 技術(shù)可行性
開發(fā)工具: VS2005
數(shù)據(jù)庫(kù)環(huán)境: SQL Server 2005 系統(tǒng)環(huán)境:
Microsoft Windows 2000 或以上版本。
系統(tǒng)實(shí)現(xiàn)依靠相對(duì)熟悉的 c 語言和 SQL Server2008 數(shù)據(jù)庫(kù)系統(tǒng),其基本操作實(shí)質(zhì)還
是對(duì)數(shù)據(jù)庫(kù)進(jìn)行添加、刪除、查找等操作。2.1.3 操作可行性
系統(tǒng)采用菜單式,實(shí)現(xiàn)用戶與數(shù)據(jù)庫(kù)的交互,界面簡(jiǎn)潔友好,操作方便。2.2 需求分析
需求分析是軟件設(shè)計(jì)的一個(gè)重要的環(huán)節(jié)。本階段對(duì)訂票系統(tǒng)的應(yīng)用情況作全面調(diào)
查,以確定系統(tǒng)目標(biāo),并對(duì)系統(tǒng)所需要的基礎(chǔ)數(shù)據(jù)以及數(shù)據(jù)處理要求進(jìn)行分析,從而確 定用戶的需求。用戶對(duì)系統(tǒng)的需求我們從以下幾方面進(jìn)行分析。2.2.1 功能需求
本網(wǎng)上售票系統(tǒng)應(yīng)該具備如下功能: 1.查詢
分為對(duì)車次信息的查詢和客戶對(duì)已訂車票信息的查詢。要求: 1)對(duì)車次的查詢,可以按照發(fā)車車次進(jìn)行查詢; 2)車次信息包括:車號(hào)、出發(fā) 地、目的地、發(fā)車日期、開出時(shí)刻、票價(jià)。3)座位類型設(shè)定。4)車次信息只允許用戶查詢,不能修改。2.添加車票
通過查詢系統(tǒng),客戶根據(jù)自己的需求找到滿意的車次,再輸入個(gè)人信息后直接通過 網(wǎng)上售票確定已預(yù)訂選中的車票。要求 :
售票記錄應(yīng)包括:會(huì)員名、車號(hào)、發(fā)車日期、訂購(gòu)票數(shù)、總價(jià)。3.退票
可退票,通過查詢系統(tǒng),客戶可以根據(jù)自己的名字找到自己的訂票信息,通過退票 模塊退去已購(gòu)車票。2.2.2 數(shù)據(jù)需求 信息需求,即在系統(tǒng)中需要處理哪些數(shù)據(jù)。根據(jù)對(duì)火車站網(wǎng)上訂票系統(tǒng)的分析,本 系統(tǒng)的信息需求如表 2-1 所示。表 2-1 信息輸入輸出 信息輸 入 信息 處理 信息 輸出 用戶輸 入所需車次 檢索 系統(tǒng)數(shù)據(jù)庫(kù) 符合 用戶需求的車次及相關(guān) 信息 用戶輸
入個(gè)人信息及所需 購(gòu)的車 票信息 更新
系統(tǒng)中的訂票信息,將新
信息存入系統(tǒng)數(shù)據(jù)庫(kù) 操作
反饋(如找零)2.2.3 性能需求
為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,本系統(tǒng)應(yīng)該滿足以下的 性能需求。1.準(zhǔn)確性和及時(shí)性
系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。系統(tǒng)應(yīng)能及時(shí)而且準(zhǔn)確的根據(jù)用戶 權(quán)限及所輸入的信息做出響應(yīng)。
由于本系統(tǒng)的查詢功能對(duì)于整個(gè)系統(tǒng)的功能和性能完成
舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來源,而車票的數(shù)量和時(shí)間又影響用戶的決策活動(dòng),其 準(zhǔn)確性和及時(shí)性很大程度上決定了系統(tǒng)的成敗。在系統(tǒng)開發(fā)過程中,必須采用一定的方 法保證系統(tǒng)的準(zhǔn)確性和及時(shí)性。2.易用性
本系統(tǒng)是直接面對(duì)用戶的,而用戶往往對(duì)計(jì)算機(jī)并不是非常熟悉。這就要求系統(tǒng)能 夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使 用用戶熟悉的術(shù)語和中文信息的界面,從而保證系統(tǒng)的易用性。
第三篇:火車站售票系統(tǒng)需求分析
火車票銷售系統(tǒng)需求分析
一、引言
隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)領(lǐng)域不斷取得日新月異的研究成果。計(jì)算機(jī)在代替和延伸腦力勞動(dòng)方面發(fā)揮越來越重要的作用,在日常生活中隨處都離不開計(jì)算機(jī)。尤其是在交通發(fā)達(dá)的今天,新時(shí)代的人們?cè)絹碓揭蕾囉诜奖?、快捷的網(wǎng)絡(luò)購(gòu)票,計(jì)算機(jī)優(yōu)勢(shì)更加體現(xiàn)出來。在數(shù)字化的今天,為了使旅客更方便地購(gòu)票、使火車售票系統(tǒng)更加利于管理,開發(fā)火車票銷售系統(tǒng)更加顯得重要,我們結(jié)合本次課程設(shè)計(jì)開發(fā)以下的火車票銷售系統(tǒng)方案。
二、編寫目的
本系統(tǒng)主要為了更好地實(shí)現(xiàn)火車票的自動(dòng)化銷售,給旅客提供一個(gè)方便快捷的購(gòu)票平臺(tái)。同時(shí)也為系統(tǒng)管理員提供一個(gè)井然有序的管理平臺(tái), 防止手工管理混亂,避免一些人為的錯(cuò)誤。
三、功能需求
通過對(duì)火車票銷售系統(tǒng)所需要實(shí)現(xiàn)的功能的分析:一個(gè)火車站售票系統(tǒng)主要由管理員管理系統(tǒng)和用戶系統(tǒng)兩部分組成。劃分如下圖:
四. 數(shù)據(jù)流圖 頂
層
:
0層:
1層:
五. E-R圖
六、數(shù)據(jù)字典
1.用戶信息數(shù)據(jù)流,包括用戶信息表,屬性(ER圖小框框里的)主要操作:用戶注冊(cè)后將用戶信息添加進(jìn)去,用戶申請(qǐng)修改信息,管理員審核后修改數(shù)據(jù)表等。
2.火車票信息數(shù)據(jù)流,包括火車票數(shù)據(jù)表、售票數(shù)據(jù)表,屬性的基本操作:用戶購(gòu)買、預(yù)定、退票等操作,管理員對(duì)火車票信息的修改、更新等操作,站點(diǎn)與火車票是一對(duì)多關(guān)系。
3.站點(diǎn)信息數(shù)據(jù)流,包括站點(diǎn)數(shù)據(jù)表,主要操作:管理員根據(jù)路況情況(維修、建造等)及時(shí)更新站點(diǎn)信息等操作,與火車票是一對(duì)多關(guān)系。
七、接口要求
?
硬件接口:無特別要求;
?
網(wǎng)絡(luò)硬件接口要求:現(xiàn)實(shí)中要求具有高速以太網(wǎng)組網(wǎng)一實(shí)現(xiàn)聯(lián)網(wǎng)銷售,但是在理論實(shí)驗(yàn)驗(yàn)證軟件本身的目的來看,無需網(wǎng)絡(luò)通訊接口。?
軟件接口要求:無
八、軟件屬性
?
可用性:本軟件也可以通過單步跟蹤的操作進(jìn)行檢查處理。?
安全性:由于軟件運(yùn)行數(shù)據(jù)放在數(shù)據(jù)庫(kù)中,所以參數(shù)不容易被錯(cuò)改、破壞,萬一參數(shù)受到破壞也不會(huì)影響源程序。?
可維護(hù)性:本軟件利用數(shù)據(jù)庫(kù)進(jìn)行編程,系統(tǒng)結(jié)構(gòu)由程序基本確定,大量的參數(shù)及文本內(nèi)容全部放于數(shù)據(jù)庫(kù)中。修改、更新數(shù)據(jù)只要在數(shù)據(jù)庫(kù)進(jìn)行修改添加,而不需要對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行修改,這樣系統(tǒng)維護(hù)性、升級(jí)都十分方便。?
兼容性:由于尚未測(cè)試,故無法對(duì)兼容性進(jìn)行評(píng)析。
九、支持信息及運(yùn)行環(huán)境
?
軟件支持:本系統(tǒng)網(wǎng)頁(yè)端采用Myeclipes軟件編寫,手機(jī)端采用android stdio軟件編寫
? 設(shè)備支持:推薦配置:Windows8及以上版本、android4.0及以上版本; ?
數(shù) 據(jù) 庫(kù):Mysql。
十、參考資料
《數(shù)據(jù)庫(kù)設(shè)計(jì)》Stephens著 機(jī)械工業(yè)出版社 《數(shù)據(jù)庫(kù)系統(tǒng)概論》(第三版)薩師煊、王珊著 高教出版社
《數(shù)據(jù)庫(kù)原理、編程與性能》作者:(美)Patrick O'Neil Elizabeth O'Neil 譯者: 周傲英 俞榮華 季文赟 錢衛(wèi)寧 等
《數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)教程》清華大學(xué)出版社等
第四篇:一個(gè)簡(jiǎn)單的火車票售票管理系統(tǒng)
一個(gè)簡(jiǎn)單的火車票售票管理系統(tǒng)(原創(chuàng))#include
typedef struct time
//時(shí)間類型 {
int x,y,z;
//分別對(duì)應(yīng)年,月,日 }TIME;
typedef struct cnode
//票信息類型 {
int no;
//票號(hào)
int id;
//購(gòu)票人證件號(hào)
TIME date;
//購(gòu)票日期
struct cnode *next;}CNODE;
typedef struct tnode
//車次信息類型 {
char data;
//車次編號(hào)
struct tnode *lchild,*rchild;
CNODE *head;}TNODE;
void create();
//按車次建立二叉排序樹
void insert(int);
//增加新的車次(二叉排序樹的插入)void del();
//取消車次(二叉排序樹節(jié)點(diǎn)刪除)
void inorder(TNODE *);
//中序遍歷車次二叉排序樹(僅顯示車次信息)void inorder_all(TNODE *);
//中序遍歷車次二叉排序樹(顯示車次及售票信息)void preorder(TNODE *);
//先序遍歷車次二叉排序樹(僅顯示車次信息)TNODE *search();
//按車次編號(hào)搜索
CNODE *insert_c(CNODE *);
//插入新的售票信息(單張)CNODE *insert_c_more(CNODE *);
//插入新的售票信息(批量)CNODE *del_c(CNODE *,CNODE *);
//退票處理(刪除售票信息)CNODE *search_c(CNODE *,int);
//按票號(hào)查詢
void search_c_id(CNODE *,int);
//按購(gòu)票人證件號(hào)搜索(限定某車次)void search_c_id_all(TNODE *,int);
//按購(gòu)票人證件號(hào)搜索(所有車次)void search_date(CNODE *,TIME);
//按購(gòu)票日期搜索(限定某車次)void search_date_all(TNODE *,TIME);
//按購(gòu)票日期搜索(所有車次)void print_c(CNODE *);
//輸出售票紀(jì)錄(單張)void print_c_all(CNODE *);
//輸出售票紀(jì)錄(批量)
TNODE *root=NULL;
void main(){
int i,func,no,ok;
TNODE *t;
CNODE *c;
TIME d;
printf(“nnn”);
for(i=0;i<15;i++)printf(“=”);
printf(“列車售票信息管理系統(tǒng)”);
for(i=0;i<15;i++)printf(“=”);
printf(“n”);
printf(“t1.車次信息管理n”);
printf(“t2.售票記錄管理n”);
printf(“t3.售票記錄查詢n”);
printf(“t4.售票記錄一覽n”);
printf(“t5.退出系統(tǒng)n”);
for(i=0;i printf(“n請(qǐng)選擇您所需要的功能:”); fflush(stdin); scanf(“%d”,&func); switch(func){ case 1: printf(“nn車次信息管理>>>>n”); for(i=0;i printf(“nt1.增加新的車次”); printf(“nt2.取消車次”); printf(“nt3.返回上級(jí)菜單n”); for(i=0;i printf(“n請(qǐng)選擇您所需要的功能:”); fflush(stdin); scanf(“%d”,&func); switch(func){ case 1: create(); printf(“n售票信息更新成功!nn”); break; case 2:del();break; case 3:main();break; default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!請(qǐng)重新輸入!”); } break; case 2: printf(“nn售票記錄管理>>>>n”); for(i=0;i printf(“nt1.增加新的售票記錄”); printf(“nt2.退票”); printf(“nt3.返回上級(jí)菜單n”); for(i=0;i printf(“n請(qǐng)選擇您所需要的功能:”); fflush(stdin); scanf(“%d”,&func); switch(func){ case 1: t=search(); if(t!=NULL)t->head=insert_c_more(t->head); break; case 2: t=search(); printf(“需要退票的票號(hào):”); scanf(“%d”,&no); t->head=del_c(t->head,search_c(t->head,no)); break; case 3:main();break; default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!請(qǐng)重新輸入!”); } break; case 3: printf(“nn售票記錄查詢>>>>n”); for(i=0;i printf(“nt1.按票號(hào)搜索”); printf(“nt2.按購(gòu)票者證件號(hào)搜索”); printf(“nt3.按購(gòu)票日期搜索”); printf(“nt4.返回上級(jí)菜單n”); for(i=0;i printf(“n請(qǐng)選擇您所需要的功能:”); fflush(stdin); scanf(“%d”,&func); switch(func){ case 1: t=search(); if(t!=NULL){ printf(“n請(qǐng)輸入您所要查詢的票號(hào):”); scanf(“%d”,&no); c=search_c(t->head,no); if(c==NULL)printf(“[錯(cuò)誤]沒有該票號(hào)的紀(jì)錄!該票還未售出或?yàn)閺U票!自動(dòng)返回上級(jí)菜單n...”);} break; case 2: printf(“n請(qǐng)輸入您所要查詢的購(gòu)票者證件號(hào):”); scanf(“%d”,&no); search_c_id_all(root,no); printf(“搜索完畢!自動(dòng)返回上級(jí)菜單n...”); break; case 3: do{ printf(“n請(qǐng)輸入您所要查詢的日期(格式: yy-mm-dd):”); scanf(“%d-%d-%d”,&d.x,&d.y,&d.z); if(d.y<13&&d.y>0){ if(d.y==1||d.y==3||d.y==5||d.y==7||d.y==8||d.y==10||d.y==12) if(d.z<32&&d.z>0)ok=1; else if(d.z==2) if(d.z<30&&d.z>0)ok=1; else if(d.z<31&&d.z>0)ok=1; } else ok=0; if(!ok)printf(“n[錯(cuò)誤]日期輸入有誤!請(qǐng)重新輸入!”); }while(!ok); printf(“n指定車次嗎?(1->是,0->否):”); scanf(“%d”,&ok); if(ok)search_date(search()->head,d); else search_date_all(root,d); break; case 4:main();break; default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!自動(dòng)返回上級(jí)菜單n...”); } break; case 4: printf(“nn售票記錄一覽>>>>n”); for(i=0;i printf(“nt1.僅瀏覽車次”); printf(“nt2.指定車次已售票記錄”); printf(“nt3.所有車次已售票記錄”); printf(“nt4.測(cè)試:先序遍歷車次”); printf(“nt5.返回上級(jí)菜單n”); for(i=0;i printf(“n請(qǐng)選擇您所需要的功能:”); fflush(stdin); scanf(“%d”,&func); switch(func){ case 1: printf(“n+++僅瀏覽車次n”); if(root==NULL)printf(“[錯(cuò)誤]無車次紀(jì)錄!”); else{inorder(root);printf(“n”);} break; case 2: printf(“n+++指定車次已售票記錄n”); t=search(); if(t!=NULL){ print_c_all(t->head); printf(“n”); } break; case 3: printf(“n+++所有車次已售票記錄n”); if(root==NULL)printf(“[錯(cuò)誤]無車次紀(jì)錄!”); else{inorder_all(root);printf(“n”);} break; case 4: printf(“n+++測(cè)試:先序遍歷車次n”); if(root==NULL)printf(“[錯(cuò)誤]無車次紀(jì)錄!”); else{preorder(root);printf(“n”);} break; case 5:main();break; default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!自動(dòng)返回上級(jí)菜單n...”); } break; case 5:exit(0); default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!請(qǐng)重新輸入!”); } main();} void inorder_all(TNODE *ptr){ if(ptr!=NULL) { inorder_all(ptr->lchild); printf(“%d:n”,ptr->data); print_c_all(ptr->head); printf(“n”); inorder_all(ptr->rchild); } } void inorder(TNODE *ptr){ if(ptr!=NULL) { inorder(ptr->lchild); printf(“%dt”,ptr->data); inorder(ptr->rchild); } } void preorder(TNODE *ptr){ if(ptr!=NULL) { printf(“%dt ”,ptr->data); preorder(ptr->lchild); preorder(ptr->rchild); } } void print_c(CNODE *tkt){ if(tkt!=NULL)printf(“t%dt%dt%d-%d-%dn”,tkt->no,tkt->id,tkt->date.x,tkt->date.y,tkt->date.z);} void print_c_all(CNODE *head){ int i=0,j=0; if(head==NULL){printf(“n記錄為空!n”);return;} for(i=0;i printf(“nNOt票號(hào)t購(gòu)票者證件號(hào)t購(gòu)票日期(年-月-日)n”); for(i=0;i for(j=0;head!=NULL;j++){ printf(“n%d”,j); print_c(head); head=head->next; } printf(“n”); for(i=0;i printf(“n總計(jì) %d 條記錄n”,j); for(i=0;i printf(“n”);} void create(){ int n,i;int k[MAX];printf(“n您所希望增加車次的數(shù)量:”);scanf(“%d”,&n);for(i=0;i printf(“新增第%d列車次:”,i+1); scanf(“%d”,&k[i]);} for(i=0;i insert(k[i]);} void insert(int m){ TNODE *p1,*p2;if(root==NULL) { root=(TNODE *)malloc(sizeof(TNODE)); root->data=m; root->lchild=root->rchild=NULL; root->head=NULL; } else { p1=root; while(m!=p1->data) { if((m data)&&(p1->lchild!=NULL))p1=p1->lchild; else if((m>p1->data)&&(p1->rchild!=NULL))p1=p1->rchild; else if((m data)&&(p1->lchild==NULL)) { p2=(TNODE *)malloc(sizeof(TNODE)); p2->data=m; p2->lchild=p2->rchild=NULL; p2->head=NULL; p1->lchild=p2; return; } else if((m>p1->data)&&(p1->rchild==NULL)) { p2=(TNODE *)malloc(sizeof(TNODE)); p2->data=m; p2->lchild=p2->rchild=NULL; p2->head=NULL; p1->rchild=p2; return; } } printf(“n[錯(cuò)誤]未能成功增加車次%d,車次號(hào) %d 已存在!”,m,m); } } TNODE *search(){ int key; TNODE *p; p=root; printf(“n輸入您所要查找的車次編號(hào):”); scanf(“%d”,&key); while(p!=NULL&&p->data!=key){ if(key data){p=p->lchild;} else if(key>p->data){p=p->rchild;} } if(p==NULL)printf(“n該車次不存在!”); return(p);} void del(){ int key; TNODE *p1,*p2,*p3,*temp; p1=p2=root; p3=temp=NULL; printf(“n請(qǐng)輸入您想要取消的車次編號(hào):”); scanf(“%d”,&key); while(p2!=NULL&&p2->data!=key){ if(key data){p1=p2;p2=p2->lchild;} else if(key>p2->data){p1=p2;p2=p1->rchild;} } if(p2==NULL){printf(“n[錯(cuò)誤]該車次不存在!返回上級(jí)菜單n...”);return;} else if(p2->lchild==NULL&&p2->rchild==NULL) { if(p1->lchild==p2)p1->lchild=NULL; if(p1->rchild==p2)p1->rchild=NULL; temp=p2; if(root==p2){temp=root;root=NULL;} } else{ if(p2->rchild==NULL){ temp=p2->lchild; p2->data=temp->data; p2->lchild=temp->lchild; p2->rchild=temp->rchild; } else if(p2->lchild==NULL){ temp=p2->rchild; p2->data=temp->data; p2->lchild=temp->lchild; p2->rchild=temp->rchild; } else{ p3=p2; temp=p2->lchild; while(temp->rchild!=NULL){p3=temp;temp=temp->rchild;} p2->data=temp->data; if(p3==p2)p3->lchild=temp->lchild; else p3->rchild=temp->lchild; } } free(temp); printf(“車次 %d 已取消!nn”,key);} CNODE *insert_c(CNODE *head){ CNODE *k,*p; k=(CNODE *)malloc(sizeof(CNODE)); do{ printf(“n車票編號(hào):”); scanf(“%d”,&k->no); p=search_c(head,k->no); if(p!=NULL)printf(“n[錯(cuò)誤]該票已被購(gòu)買!請(qǐng)重新選擇!n”); }while(p!=NULL); printf(“購(gòu)票者證件號(hào):”); scanf(“%d”,&k->id); printf(“購(gòu)票日期(格式:yy-mm-dd):”); scanf(“%d-%d-%d”,&k->date.x,&k->date.y,&k->date.z); k->next=head; head=k; return(head);} CNODE *insert_c_more(CNODE *head){ int n,i; printf(“n請(qǐng)輸入批量新增售票記錄數(shù):”); fflush(stdin); scanf(“%d”,&n); for(i=0;i printf(“n售票記錄更新成功!n”); return(head);} CNODE *search_c(CNODE *head,int id){ CNODE *temp,*s; s=temp=head; while(temp!=NULL&&temp->id!=id){s=temp;temp=temp->next;} print_c(temp); if(temp!=NULL)return(s); else return NULL;} void search_c_id(CNODE *head,int id){ CNODE *s,*head_s; s=head_s=NULL; if(head==NULL)printf(“無該證件號(hào)紀(jì)錄!n”); while(head!=NULL){ if(head->id==id){ s=(CNODE *)malloc(sizeof(CNODE)); s->no=head->no;s->id=head->id;s->date=head->date; s->next=head_s;head_s=s; } head=head->next; } print_c_all(head_s); printf(“n”);} void search_c_id_all(TNODE *ptr,int id){ if(ptr!=NULL){ search_c_id_all(ptr->lchild,id); printf(“n車次:%dn”,ptr->data); search_c_id(ptr->head,id); search_c_id_all(ptr->rchild,id); } } void search_date(CNODE *head,TIME t){ CNODE *s,*head_s; s=head_s=NULL; while(head!=NULL){ if(t.x==head->date.x) if(t.y==head->date.y) if(t.z==head->date.z) { s=(CNODE *)malloc(sizeof(CNODE)); s->no=head->no;s->id=head->id;s->date=head->date; s->next=head_s;head_s=s; } head=head->next; } print_c_all(head_s); printf(“n”);} void search_date_all(TNODE *ptr,TIME t){ if(ptr!=NULL){ search_date_all(ptr->lchild,t); printf(“n車次:%dn”,ptr->data); search_date(ptr->head,t); search_date_all(ptr->rchild,t); } } CNODE *del_c(CNODE *head,CNODE *p){ CNODE *temp; if(p==NULL)printf(“[錯(cuò)誤]該票未售出或?yàn)閺U票!返回上級(jí)菜單n...”); else if(p==head){head=NULL;free(p);} else{ temp=p->next; p->next=temp->next; free(temp); } return(head);} 系統(tǒng)需求分析報(bào)告 目錄 目錄.............................................................................................................I 1、項(xiàng)目描述...............................................................................................1 1.1 背景................................................................................................1 1.2研究意義........................................................................................1 2、需求分析...............................................................................................1 2.1功能需求分析................................................................................2 2.1.1 系統(tǒng)管理功能......................................................................2 2.1.2 流量劫持功能....................................................................2 2.2性能需求分析................................................................................2 I 1、項(xiàng)目描述 1.1 背景 隨著網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)業(yè)務(wù)應(yīng)用向深度和廣度不斷發(fā)展,方便用戶的同時(shí),也因用戶終端存在網(wǎng)絡(luò)安全漏洞或用戶網(wǎng)絡(luò)安全意識(shí)的疏忽,使得網(wǎng)絡(luò)上涉及如:電子商務(wù)、在線游戲、DNS授權(quán)服務(wù)、網(wǎng)銀支付系統(tǒng)、社交網(wǎng)站、論壇、博客、門戶網(wǎng)站等在線業(yè)務(wù)受到黑客及網(wǎng)絡(luò)犯罪份子的攻擊,對(duì)個(gè)人用戶信息(網(wǎng)銀、支付錢包賬號(hào)密碼等)的保密和對(duì)國(guó)家互聯(lián)網(wǎng)信息管理與審計(jì)構(gòu)成嚴(yán)重威脅。 1.2研究意義 本項(xiàng)目針對(duì)以上問題,主要利用了以下兩種技術(shù):僵尸網(wǎng)絡(luò)反制技術(shù)及HTTP/HTTPS協(xié)議通信的監(jiān)控技術(shù)。 網(wǎng)絡(luò)攻擊已嚴(yán)重威脅著網(wǎng)絡(luò)的安全,及時(shí)的發(fā)現(xiàn)網(wǎng)絡(luò)攻擊并在必要的時(shí)候劫持與反制網(wǎng)絡(luò)攻擊,成為保障互聯(lián)網(wǎng)正常運(yùn)行、保障在線業(yè)務(wù)系統(tǒng)正常訪問的重要方法。 2、需求分析 經(jīng)過與項(xiàng)目委托方多次討論,設(shè)計(jì)系統(tǒng)的目的是為實(shí)現(xiàn)對(duì)特定非法用戶Web(HTTP/HTTPS協(xié)議)通信進(jìn)行監(jiān)控及反制,具體要求實(shí)現(xiàn)的功能有:監(jiān)控系統(tǒng)遠(yuǎn)程控制、針對(duì)特定非法用戶上網(wǎng)流量劫持、針對(duì)特定非法用戶Web通信進(jìn)行JS腳本注入、獲取非法用戶賬號(hào)和密碼、獲取非法用戶訪問某些網(wǎng)站的Cookie。 第 1 頁(yè) 2.1功能需求分析 根據(jù)監(jiān)控系統(tǒng)的要求對(duì)系統(tǒng)的功能進(jìn)行分析,明確了系統(tǒng)需要實(shí)現(xiàn)的功能。系統(tǒng)的功能結(jié)構(gòu)模塊:系統(tǒng)管理功能、流量劫持功能、監(jiān)控與反制功能。 2.1.1 系統(tǒng)管理功能 系統(tǒng)管理模塊主要負(fù)責(zé)系統(tǒng)登錄、系統(tǒng)遠(yuǎn)程控制、黑名單庫(kù)配置、數(shù)據(jù)存儲(chǔ)和展示。數(shù)據(jù)展示包含數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)展示,數(shù)據(jù)存儲(chǔ)負(fù)責(zé)接收后端和前端JS探針采集的數(shù)據(jù)并存儲(chǔ)到數(shù)據(jù)庫(kù),數(shù)據(jù)展示負(fù)責(zé)提取數(shù)據(jù)庫(kù)數(shù)據(jù)并顯示。 2.1.2 流量劫持功能 本文流量劫持指DNS協(xié)議劫持,主要由四個(gè)部分組成:報(bào)文捕獲、協(xié)議解析、IP及域名查找匹配、DNS協(xié)議欺騙。 2.2性能需求分析 1.DNS流量劫持成功率 為了達(dá)到項(xiàng)目委托單位的要求,需要對(duì)特定用戶訪問特定網(wǎng)站的流量進(jìn)行準(zhǔn)確監(jiān)控,同時(shí)保證流量劫持的成功率(90%以上)。 2.監(jiān)控與反制系統(tǒng)并發(fā)量 監(jiān)控與反制系統(tǒng)服務(wù)器的并發(fā)性能直接決定同時(shí)能夠監(jiān)聽的用戶數(shù)。當(dāng)被監(jiān)控用戶數(shù)過大,監(jiān)控與反制系統(tǒng)并發(fā)處理能力到極大挑戰(zhàn)。 3.系統(tǒng)運(yùn)行穩(wěn)定性 第 2 頁(yè) 系統(tǒng)穩(wěn)定性是系統(tǒng)最基本也是最重要的要求,運(yùn)行穩(wěn)定性關(guān)系到系統(tǒng)能否長(zhǎng)時(shí)間穩(wěn)定運(yùn)行。系統(tǒng)的穩(wěn)定性體現(xiàn)在:隨著運(yùn)行時(shí)間的增加,系統(tǒng)并不會(huì)出現(xiàn)內(nèi)存泄露、甚至系統(tǒng)崩潰等情況。其中內(nèi)存泄露可通過內(nèi)存消耗、CPU使用率指標(biāo)度量。 第 3 頁(yè)第五篇:系統(tǒng)需求分析報(bào)告