版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、山西大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 x管理系統(tǒng)程序設(shè)計(jì): 指導(dǎo)教師: 可行性分析報(bào)告1引言需求規(guī)格說(shuō)明書(shū)是需求分析的產(chǎn)物,它是軟件系統(tǒng)生存期中軟件定義階段的最后一個(gè)步驟。作為整個(gè)軟件開(kāi)發(fā)過(guò)程的指南,它也是軟件開(kāi)發(fā)人員開(kāi)發(fā)出符合用戶要求的軟件的基礎(chǔ)。1.1編寫(xiě)目的軟件需求說(shuō)明書(shū)的編制目的是為了使用戶和軟件開(kāi)發(fā)者雙方對(duì)該軟件的初始規(guī)定有一個(gè)共同的理解;使之成為整個(gè)開(kāi)發(fā)工作的基礎(chǔ)。本軟件需求說(shuō)明書(shū)的讀者是系統(tǒng)開(kāi)發(fā)人員或合同約定的人負(fù)。1.2背景a.軟件系統(tǒng)名稱:山西大學(xué)計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院xxb.本項(xiàng)目任務(wù)的提出者:計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院2010級(jí) c.本項(xiàng)目的開(kāi)發(fā)者為: 計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院2
2、010級(jí) d.該軟件系統(tǒng)同其他系統(tǒng)或其他機(jī)構(gòu)的基本的相互來(lái)往關(guān)系: xxxxxxxxxxxxxxxxxx2.可行性研究的前提2.1要求功能:這是一個(gè)xxxx系統(tǒng),主要負(fù)責(zé)xxxxxxxxxxxx(本軟件的功能)2.2目標(biāo)目前xxxxxxxxxxxxxxxxxxxxxxxx(現(xiàn)在已有的軟件狀況)2.3條件、假定和限制a.編程實(shí)戰(zhàn)經(jīng)驗(yàn)不足。b.進(jìn)行系統(tǒng)方案選擇和設(shè)計(jì)的時(shí)間較短。3.對(duì)現(xiàn)有系統(tǒng)的分析3.1處理流程和數(shù)據(jù)流程a.軟件服務(wù)方面:軟件通過(guò)讀取有關(guān)的貨物存儲(chǔ)信息,反饋給使用者3.2工作負(fù)荷僅僅使用本地資源,所以工作負(fù)荷基本沒(méi)有3.3費(fèi)用開(kāi)支軟件需要少量的維護(hù)使用費(fèi)用3.4人員需要數(shù)據(jù)維護(hù)人員
3、對(duì)數(shù)據(jù)的維護(hù)3.5設(shè)備個(gè)人主機(jī),信息存儲(chǔ)服務(wù)器(硬盤)3.6局限性 系統(tǒng)比較封閉,暫時(shí)無(wú)法進(jìn)行網(wǎng)絡(luò)查詢服務(wù)4.所建議的系統(tǒng) Windows 95/98/xp/20034.1對(duì)所建議系統(tǒng)的說(shuō)明a.功能概括:(1)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(2)對(duì)用戶信息進(jìn)行增加、刪除、更改b.系統(tǒng)環(huán)境以及工具系統(tǒng)運(yùn)行環(huán)境:Windows xp/2003編程語(yǔ)言:visual c+ 6.0數(shù)據(jù)庫(kù):無(wú)4.2處理流程和數(shù)據(jù)流程處理流程:客戶端存儲(chǔ)系統(tǒng)(或服務(wù)器)客戶端數(shù)據(jù)流程:客戶請(qǐng)求登陸信息:存儲(chǔ)系統(tǒng)(或服務(wù)器)4.3改進(jìn)之處本軟件系統(tǒng)暫時(shí)不依賴外部網(wǎng)絡(luò),僅能在本機(jī)上
4、查詢使用,建議后續(xù)版本建立局域網(wǎng)(互聯(lián)網(wǎng)查詢功能)4.4影響4.4.1.對(duì)設(shè)備的影響不明4.4.2.對(duì)軟件的影響不明4.4.3.對(duì)用戶單位機(jī)構(gòu)的影響使用該系統(tǒng),客戶原有體系幾乎不需要太大的變化,這是個(gè)xxxxx件,對(duì)人員技術(shù)的要求不高,只要用戶會(huì)簡(jiǎn)單的計(jì)算機(jī)操作即可4.4.4.對(duì)系統(tǒng)運(yùn)行過(guò)程的影響該系統(tǒng)工作量小,一般情況下不會(huì)由于信息量大而造成麻煩。4.4.5.對(duì)開(kāi)發(fā)的影響不明4.4.6.對(duì)地點(diǎn)和設(shè)施的影響暫時(shí)不需要特殊的設(shè)備,以后網(wǎng)絡(luò)版可能需要添置服務(wù)器4.5技術(shù)條件方面的可能性Visual C+ 語(yǔ)言穩(wěn)定可靠,適用范圍廣 5.可選擇的其他系統(tǒng)方案由于該系統(tǒng)的結(jié)構(gòu)比較簡(jiǎn)單、開(kāi)發(fā)時(shí)間倉(cāng)促,故只
5、使用這一個(gè)方案,無(wú)其他備用方案。6.社會(huì)因素方面的可能性使用方面的可行性:物理行業(yè),商店需要貨物進(jìn)出,商場(chǎng)、超市也需要,所以引用范圍廣泛, 7.結(jié)論經(jīng)過(guò)了我們整個(gè)的可行性研究報(bào)告的研究,最終我們得出了一個(gè)研究的結(jié)論。結(jié)論是:我們可以立即執(zhí)行我們的軟件設(shè)計(jì),來(lái)達(dá)到我們的預(yù)期目標(biāo)。軟件需求說(shuō)明書(shū)1引言需求規(guī)格說(shuō)明書(shū)是需求分析的產(chǎn)物,它是軟件系統(tǒng)生存期中軟件定義階段的最后一個(gè)步驟。作為整個(gè)軟件開(kāi)發(fā)過(guò)程的指南,它也是軟件開(kāi)發(fā)人員開(kāi)發(fā)出符合用戶要求的軟件的基礎(chǔ)。1.1編寫(xiě)目的軟件需求說(shuō)明書(shū)的編制目的是為了使用戶和軟件開(kāi)發(fā)者雙方對(duì)該軟件的初始規(guī)定有一個(gè)共同的理解;使之成為整個(gè)開(kāi)發(fā)工作的基礎(chǔ)。本軟件需求說(shuō)明
6、書(shū)的讀者是系統(tǒng)開(kāi)發(fā)人員或合同約定的人員。1.2背景(1)本系統(tǒng)的名稱是:(2)開(kāi)發(fā)者是計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院2010軟件一班 用戶面向物流也以及商業(yè)部門實(shí)現(xiàn)該軟件的對(duì)象:企業(yè)及個(gè)人局域網(wǎng)內(nèi)部使用。1.3參考資料引用資料 c+程序設(shè)計(jì) 清華大學(xué)出版社 標(biāo)準(zhǔn)c+庫(kù)大全 電子工業(yè)出版社 visual c+ 6.0 編程基礎(chǔ)與范例 電子工業(yè)出版社 visual c+庫(kù)大全 電子工業(yè)出版社2任務(wù)概述2.1目標(biāo)局域網(wǎng)即時(shí)通信軟件是現(xiàn)代網(wǎng)絡(luò)通信技術(shù)的重要內(nèi)容,也是萬(wàn)維網(wǎng)通信技術(shù)的基礎(chǔ)性工作。局域網(wǎng)即時(shí)通信軟件在開(kāi)發(fā)過(guò)程中有很多不利于實(shí)現(xiàn)的地方,不適應(yīng)現(xiàn)代的網(wǎng)絡(luò)通信任務(wù)。局域網(wǎng)即時(shí)通信軟件是局域網(wǎng)企業(yè)內(nèi)部及
7、個(gè)人局域網(wǎng)內(nèi)部不實(shí)現(xiàn)信息化、規(guī)范化,使工作效率及重要信息的可靠傳遞。2.2用戶的特點(diǎn)本軟件的用戶是需要對(duì)貨物2.3假定和約束a.可利用的信息和資源比較單一,客戶的需求分析主要來(lái)自開(kāi)發(fā)者在計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院學(xué)習(xí)和生活過(guò)程中的一些問(wèn)題;而技術(shù)方面,對(duì)Mysql等數(shù)據(jù)庫(kù)軟件和Java、以及網(wǎng)絡(luò)編程的掌握和應(yīng)用還有待提高,不足之處靠借閱有關(guān)書(shū)籍和向老師請(qǐng)教進(jìn)行補(bǔ)充,組內(nèi)成員間相互討論分析決定。c.經(jīng)費(fèi)不足d.進(jìn)行系統(tǒng)方案選擇比較的時(shí)間較短。e.系統(tǒng)投入使用的時(shí)間最晚為本學(xué)期末3需求規(guī)定3.l對(duì)功能的規(guī)定3.l.1系統(tǒng)功能主要分為客戶端發(fā)送接收消息和服務(wù)器數(shù)據(jù)庫(kù)管理和處理.通信系統(tǒng)功能部分分為2類
8、:客戶相關(guān),管理員相關(guān).從使用和操作功能上分,有三種用戶:超級(jí)管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用戶(接收發(fā)送信息,更改密碼).為了便于整個(gè)系統(tǒng)組織管理,把各個(gè)相對(duì)獨(dú)立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來(lái),我們把各個(gè)相對(duì)獨(dú)立的功能完全獨(dú)立設(shè)計(jì),編譯成獨(dú)立的目標(biāo)(功能)模塊,各功能模塊最后被集成到一控制臺(tái)模塊中.相應(yīng)的將系統(tǒng)分為一個(gè)控制臺(tái)程序和兩個(gè)子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復(fù)解釋,在每個(gè)模塊中只列出每個(gè)子模塊區(qū)別于其他子模塊的功能實(shí)現(xiàn).3.1.2數(shù)據(jù)流圖詳見(jiàn)局域網(wǎng)即時(shí)通信軟件
9、詳細(xì)設(shè)計(jì)說(shuō)明書(shū)3.2對(duì)性能的規(guī)定靈活性(l)操作方式上應(yīng)該能夠滿足鼠標(biāo)和鍵盤任意切換的需要;(2)能夠支持Windows95、Windows98、Windows2000、WindowsMe和WindowsXP的運(yùn)行環(huán)境;(3)留有與其他系統(tǒng)的接口。3.3輸入輸出要求輸入:本即時(shí)通信軟件所要求的字符格式與文件格式,否則無(wú)法傳輸文件及收發(fā)文字信息。輸出:本軟件提供用戶打印聊天記錄功能。3.4故障處理要求在輸入不符合定義格式的數(shù)據(jù)時(shí),軟件應(yīng)出現(xiàn)提示信息,而不是死機(jī)或刪除已經(jīng)輸入的信息,然后再?gòu)棾鲚斎虢缑嬷匦麻_(kāi)始。4運(yùn)行環(huán)境規(guī)定4.1設(shè)備運(yùn)行本軟件要求處理器在奔騰III以上、內(nèi)存在256MB以上的計(jì)算
10、機(jī)。4.2支持軟件A.windows2000以上的操作系統(tǒng)或RedHatLinuxAS5:這兩個(gè)操作系統(tǒng)是主要的軟件,此系統(tǒng)開(kāi)發(fā)過(guò)程在除了文檔的編寫(xiě),其它的工作都在這兩個(gè)操作系統(tǒng)中進(jìn)行,這兩個(gè)操作系統(tǒng)在開(kāi)發(fā)過(guò)程中承擔(dān)重要的開(kāi)發(fā)任務(wù)B.Eclipse3.4編程工具:它作為一個(gè)集成開(kāi)發(fā)工具,提供了部分的代碼自動(dòng)生成和可視化的資源編輯功能,在此系統(tǒng)開(kāi)發(fā)過(guò)程中主要承擔(dān)代碼的編寫(xiě)任務(wù)C.MySQL5.1應(yīng)用軟件:Mysql數(shù)據(jù)庫(kù)軟件是一種使用極其方便的數(shù)據(jù)庫(kù)軟件,在處理少量數(shù)據(jù)是很好的,不但操作簡(jiǎn)單、效率高,而且適用于多種操作系統(tǒng)的適用,最重要的是它是一個(gè)免費(fèi)的數(shù)據(jù)庫(kù)軟件,不會(huì)涉及版權(quán)問(wèn)題,節(jié)約了大量的
11、開(kāi)發(fā)資金4.3接口本軟件通過(guò)若干個(gè)中間表實(shí)現(xiàn)與其他軟件的通信。4.4控制本軟件通過(guò)“昵稱登入”模塊進(jìn)行用戶登錄的控制,根據(jù)不同用戶的昵稱調(diào)用不同的模塊。其他模塊控制情況照此描述。(l)驗(yàn)證軟件需求需求分析階段的工作結(jié)果是開(kāi)發(fā)軟件系統(tǒng)的重要基礎(chǔ),一旦對(duì)目標(biāo)系統(tǒng)提出完整、具體的要求并寫(xiě)出了軟件需求說(shuō)明書(shū)之后,就必須嚴(yán)格驗(yàn)證這些需求的正確性。通常,從以下4個(gè)方面進(jìn)行驗(yàn)證。一致性:所有需求必須是一致的,任何一條需求都不能和其他需求相矛盾。完整性:需求必須是完整的,軟件需求說(shuō)明書(shū)應(yīng)該包含用戶對(duì)軟件產(chǎn)品的每一項(xiàng)要求。現(xiàn)實(shí)性:指定的需求應(yīng)該用現(xiàn)有的硬件技術(shù)和軟件技術(shù)可以實(shí)現(xiàn)。有效性:需求必須是有效的,確實(shí)能
12、解決用戶所面臨的問(wèn)題,可以達(dá)到開(kāi)發(fā)軟件的目標(biāo)。軟件概要設(shè)計(jì)1引言軟件概要設(shè)計(jì)主要是一個(gè)把軟件需求轉(zhuǎn)化為軟件表示的過(guò)程,這種表示只是描述出軟件總的概貌。1.1編寫(xiě)目的概要設(shè)計(jì)說(shuō)明書(shū)編制的目的是:說(shuō)明對(duì)程序系統(tǒng)的設(shè)計(jì)考慮,包括程序系統(tǒng)的基本處理I流程、程序系統(tǒng)的組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計(jì)、運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,為程序的詳細(xì)設(shè)計(jì)提供基礎(chǔ)。本軟件概要說(shuō)明書(shū)的讀者是系統(tǒng)開(kāi)發(fā)人員或合同約定的人員。1.2背景(1) 本系統(tǒng)的名稱是:局域網(wǎng)即時(shí)通信軟件。(2)本項(xiàng)目的任務(wù)提出者是計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級(jí)林真真、金鵬、王超、張拓,開(kāi)發(fā)者是計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級(jí)
13、林真真、金鵬、王超、張拓,用戶是×××企業(yè)人事及相關(guān)部門,實(shí)現(xiàn)該軟件的對(duì)象:企業(yè)及個(gè)人局域網(wǎng)內(nèi)部使用。1.3定義數(shù)據(jù)字典:關(guān)于數(shù)據(jù)的信息的集合,也即是對(duì)數(shù)據(jù)流圖中包含的元素的定義的集合。VB:VisualBasic。1.4參考資料計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)軟件說(shuō)明書(shū)計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)概要說(shuō)明書(shū)計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)國(guó)家開(kāi)發(fā)標(biāo)準(zhǔn)文檔軟件工程(第四版-張海藩)UML面向?qū)ο笤O(shè)計(jì)與分析(朱麗平等)2總體設(shè)計(jì)2.1需求規(guī)定主要分為客戶端發(fā)送接收消息和服務(wù)器數(shù)據(jù)庫(kù)管理和處理.通信系統(tǒng)功能部分分為2類:客戶相關(guān),管理員相關(guān).從使用
14、和操作功能上分,有三種用戶:超級(jí)管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用戶(接收發(fā)送信息,更改密碼).為了便于整個(gè)系統(tǒng)組織管理,把各個(gè)相對(duì)獨(dú)立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來(lái),我們把各個(gè)相對(duì)獨(dú)立的功能完全獨(dú)立設(shè)計(jì),編譯成獨(dú)立的目標(biāo)(功能)模塊,各功能模塊最后被集成到一控制臺(tái)模塊中.相應(yīng)的將系統(tǒng)分為一個(gè)控制臺(tái)程序和兩個(gè)子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復(fù)解釋,在每個(gè)模塊中只列出每個(gè)子模塊區(qū)別于其他子模塊的功能實(shí)現(xiàn).2.2運(yùn)行環(huán)境硬件環(huán)境:運(yùn)行本軟件要求處理器在奔騰III、內(nèi)存在256
15、MB以上的計(jì)算機(jī)。軟件環(huán)境:本系統(tǒng)支持的操作系統(tǒng)包括Windows95、Windows98、Windows2000、WindowsMe和WindowsXP;本系統(tǒng)的支持?jǐn)?shù)據(jù)庫(kù)為MySQL;本軟件的開(kāi)發(fā)工具為Java。2.3結(jié)構(gòu)所有模塊都必須調(diào)用“昵稱等入”模塊進(jìn)行身份驗(yàn)證,只有合法用戶才能使用系統(tǒng)。2.4功能需求與程序的關(guān)系用戶必須輸入昵稱后,方能登入客戶端,與服務(wù)器連接,程序正常運(yùn)行。2.5人工處理過(guò)程本軟件系統(tǒng)的工作過(guò)程中不需要人工處理數(shù)據(jù)。3接口設(shè)計(jì)3.1用戶接口本系統(tǒng)采用典型的Windows風(fēng)格作為人機(jī)接口,如使用窗口、菜單、對(duì)話框等。3.2外部接口本系統(tǒng)支持處理器在奔騰III以上、內(nèi)
16、存在256MB以上的計(jì)算機(jī);支持具有Windows的操作系統(tǒng),如Windows95、Windows98、Windows2000、WindowsMe和WindowsXP支持MySQL關(guān)系數(shù)據(jù)庫(kù)3.3內(nèi)部接口“用戶驗(yàn)證”模塊:提供系統(tǒng)用戶登錄時(shí)的身份驗(yàn)證功能,用戶進(jìn)行角色切換時(shí)必裁用此模塊進(jìn)行身份驗(yàn)證。4運(yùn)行設(shè)計(jì)4.l運(yùn)行模塊組合不同的用戶登錄此系統(tǒng)獲得的系統(tǒng)功能是不同的,如超級(jí)用戶具有系統(tǒng)的全部功能;一些用戶只具有瀏覽數(shù)據(jù)但不具備更新數(shù)據(jù)的功能。4.2運(yùn)行控制超級(jí)用戶對(duì)系統(tǒng)的其他用戶設(shè)置系統(tǒng)功能的訪問(wèn)權(quán)限,這樣權(quán)限受限的用戶就只能訪問(wèn)部分系統(tǒng)模塊。4.3運(yùn)行時(shí)間“用戶驗(yàn)證”模塊在完成用戶登錄的身
17、份驗(yàn)證后立即退出運(yùn)行,釋放占用的系統(tǒng)資源。5系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)5.1邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)邏輯設(shè)計(jì)是系統(tǒng)中數(shù)據(jù)庫(kù)設(shè)計(jì)的的重要步驟之一,其中羅列了文檔需求分析中各種功能實(shí)現(xiàn)之間的本質(zhì)關(guān)系,通過(guò)E-R圖描述實(shí)例化了的文字抽象概念。以下針對(duì)本系統(tǒng)的加以闡述其邏輯設(shè)計(jì)數(shù)據(jù)表中的基本數(shù)據(jù)結(jié)構(gòu):5.2物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)數(shù)據(jù)庫(kù)結(jié)構(gòu)的物理設(shè)計(jì)是對(duì)一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過(guò)程主要設(shè)計(jì)表的結(jié)構(gòu),一般的試題對(duì)應(yīng)于表,實(shí)體的屬性對(duì)應(yīng)于列,實(shí)體之間的關(guān)系為表的約束,邏輯設(shè)計(jì)中的實(shí)體大部分可以轉(zhuǎn)化為物理設(shè)計(jì)中的表,但它們并不是一一對(duì)應(yīng)的。5.3數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系輸入登入昵稱,若不匹配,返回結(jié)果到登
18、錄窗口,提示錯(cuò)誤,相反登錄成功。6系統(tǒng)出錯(cuò)處理設(shè)計(jì)6.l出錯(cuò)信息當(dāng)輸入信息超出字符的標(biāo)準(zhǔn)時(shí),軟件將會(huì)彈出警戒窗口提示,不會(huì)死機(jī)或軟件自動(dòng)關(guān)閉。6.2補(bǔ)救措施本系統(tǒng)中,當(dāng)用戶沒(méi)有輸入非空字段而進(jìn)行數(shù)據(jù)提交時(shí),系統(tǒng)提示××字段數(shù)據(jù)不得為空,請(qǐng)重新輸入再提交。此時(shí)輸入界面保留剛剛輸入信息的界面,而不是清空全部輸入界面上的所有數(shù)據(jù);要求用戶重新輸入。本系統(tǒng)提供數(shù)據(jù)備份功能,方便用戶對(duì)數(shù)據(jù)的備份。6.3系統(tǒng)維護(hù)設(shè)計(jì)詳細(xì)編寫(xiě)各階段的文檔資料,以利于未來(lái)版本升級(jí)及移植等二次開(kāi)發(fā)。詳細(xì)設(shè)計(jì)說(shuō)明書(shū)1引言1.1編寫(xiě)目的本文檔為"計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)詳細(xì)說(shuō)明書(shū)",
19、主要是為了實(shí)現(xiàn)系統(tǒng)的功能而進(jìn)行的系統(tǒng)詳細(xì)設(shè)計(jì)說(shuō)明,詳細(xì)系統(tǒng)各個(gè)軟件組成模塊的實(shí)現(xiàn)流程、功能、接口、編譯、測(cè)試要點(diǎn)等內(nèi)容,便于對(duì)系統(tǒng)的編碼進(jìn)行指導(dǎo)和約束,本文檔供全體組員和測(cè)試人員閱讀。1.2參考資料計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)軟件說(shuō)明書(shū)計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)概要說(shuō)明書(shū)計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)國(guó)家開(kāi)發(fā)標(biāo)準(zhǔn)文檔軟件工程(第四版-張海藩)UML面向?qū)ο笤O(shè)計(jì)與分析(朱麗平等)2系統(tǒng)功能實(shí)現(xiàn)從前面的需求分析可知,系統(tǒng)的功能不是很龐雜,主要分為客戶端發(fā)送接收消息和服務(wù)器數(shù)據(jù)庫(kù)管理和處理.通信系統(tǒng)功能部分分為2類:客戶相關(guān),管理員相關(guān).從使用和操作功能上分,有三種用戶:
20、超級(jí)管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用戶(接收發(fā)送信息,更改密碼).為了便于整個(gè)系統(tǒng)組織管理,把各個(gè)相對(duì)獨(dú)立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來(lái),我們把各個(gè)相對(duì)獨(dú)立的功能完全獨(dú)立設(shè)計(jì),編譯成獨(dú)立的目標(biāo)(功能)模塊,各功能模塊最后被集成到一控制臺(tái)模塊中.相應(yīng)的將系統(tǒng)分為一個(gè)控制臺(tái)程序和兩個(gè)子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復(fù)解釋,在每個(gè)模塊中只列出每個(gè)子模塊區(qū)別于其他子模塊的功能實(shí)現(xiàn).3.1系統(tǒng)控制臺(tái)模塊功能:各個(gè)子功能之間的調(diào)用;統(tǒng)一的登錄界面實(shí)現(xiàn)到數(shù)據(jù)庫(kù)服務(wù)器的登陸設(shè)計(jì):3.1
21、.1登陸數(shù)據(jù)庫(kù)輸入用戶賬號(hào)(id),密碼(pwd),以賬號(hào)ManagerPerson_id和密碼ManagerPerson_pwd登陸的用戶擁有對(duì)普通用戶管理的權(quán)限,以賬號(hào)Manager_id和密碼Manager_pwd登陸的用戶擁有對(duì)所由用戶進(jìn)行管理的權(quán)限.檢索系統(tǒng)權(quán)限表,根據(jù)權(quán)限設(shè)置相應(yīng)的功能模塊,a.無(wú)此用戶或禁止權(quán)限Enable=false;Able=false;M=falseb.普通用戶Enable=true;Able=false;M=falseb.可管理普通用戶權(quán)限Enable=true;Able=true;M=falsec.可管理所有用戶權(quán)限Enable=true;Able=tr
22、ue;M=true3.1.2程序組、程序項(xiàng)的原理組織各執(zhí)行模塊可執(zhí)行功能模塊的調(diào)用執(zhí)行,通過(guò)程序項(xiàng)名稱獲取可執(zhí)行目標(biāo)代碼文件名,應(yīng)用接口類Main開(kāi)始執(zhí)行,界面如下:部分程序代碼JButtonbt=newJButton("登陸");JLabellabel=newJLabel("用戶名");JPanelpanel=newJPanel();panel.add(label);panel.add(field);frame.add(panel,BorderLayout.NORTH);JPanelpane=newJPanel();JTextFieldfieldpwd
23、=newJTextField(10);JLabellabe=newJLabel("密碼");pane.add(labe);pane.add(fieldpwd);frame.add(pane);frame.add(bt,BorderLayout.SOUTH);bt.addActionListener(this);field.addKeyListener(newKeyListener()publicvoidkeyPressed(KeyEvente)if(e.getKeyCode()=e.VK_ENTER&&e.isControlDown()if(field=nu
24、ll)return;start();frame.dispose();publicvoidkeyReleased(KeyEvente)publicvoidkeyTyped(KeyEvente);privateJTextFieldfield=newJTextField(10);privateJFrameframe=newJFrame();3.2用戶子系統(tǒng)總體功能設(shè)計(jì):用戶子系統(tǒng)包含用戶信息管理用戶之間數(shù)據(jù)的傳遞下面給出設(shè)計(jì)方案和實(shí)現(xiàn)方法3.2.1用戶子系統(tǒng)包含用戶信息管理超級(jí)管理員信息管理輸入:用戶ID、初始密碼處理:將用戶信息按相同的格式導(dǎo)入數(shù)據(jù)庫(kù)輸出:提示信息數(shù)據(jù)表:將Manager表中存放超
25、級(jí)管理員數(shù)據(jù),表存放在數(shù)據(jù)庫(kù)DB中管理員信息和普通用戶信息與超級(jí)管理員的信息管理方式基本相同,區(qū)別在于管理員信息存放在表personManager表中,而普通用戶的信息存放在person表中。功能:普通用戶更改自己密碼的功能(超級(jí))管理員添加刪除用戶更改密碼的界面如下:部分程序代碼:JFrameframe=newJFrame("更改密碼");JButtonbt=newJButton("確定");JLabellabel=newJLabel("舊密碼");JLabellabe=newJLabel("新密碼");JLab
26、ellabe1=newJLabel("確認(rèn)密碼");JPanelpanel=newJPanel();JPanelpane=newJPanel();JPanelpane1=newJPanel();JPaneljpanel=newJPanel(newGridLayout(2,1);JTextFieldfield=newJTextField(20);JTextFieldfieldpwd=newJTextField(20);JTextFieldfieldpwd1=newJTextField(20);panel.add(label);panel.add(field);pane.add
27、(labe);pane.add(fieldpwd);pane1.add(labe1);pane1.add(fieldpwd1);jpanel.add(pane1);jpanel.add(bt);frame.add(pane);frame.add(panel,BorderLayout.NORTH);frame.add(jpanel,BorderLayout.SOUTH);frame.pack();frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);部分?jǐn)?shù)據(jù)庫(kù)代碼:/連接數(shù)據(jù)庫(kù)代碼Stringurl
28、="jdbc:mysql:/:3306/test"Stringname="root"Stringpwd="1234567890"Connectioncon=null;con=DriverManager.getConnection(url,name,pwd);/更新密碼代碼Statementstmt=con.createStatement();stmt.executeUpdate("updatepersonsetpwd="+temp+"whereid="+id);/其中temp為
29、新密碼刪除用戶界面為部分界面代碼:JButtonbt=newJButton("確定");JLabellabel=newJLabel("請(qǐng)輸入你要?jiǎng)h除的用戶號(hào)碼:");JPanelpanel=newJPanel();panel.add(label);panel.add(field);frame.add(panel);frame.add(bt,BorderLayout.SOUTH);.JOptionPane.showMessageDialog(null,"確定刪除該用戶","警告",JOptionPane.WARNIN
30、G_MESSAGE);部分刪除用戶數(shù)據(jù)代碼:stmt.executeUpdate("deletefrompersonwhereid="+id);3.2.2用戶之間數(shù)據(jù)的傳遞數(shù)據(jù)傳遞間數(shù)據(jù)的管理輸入:發(fā)送用戶ID、用戶所發(fā)送的信息以及信息類型,目的用戶的ID處理:將用戶所發(fā)信息傳遞給服務(wù)器輸出:功能:給所有人發(fā)送信息以及接收在線用戶給所有人發(fā)送的信息給某用戶發(fā)送信息以及接受某個(gè)用戶所給該用戶發(fā)送的消息給某個(gè)發(fā)送文本文件給所有人發(fā)送信息的界面如下:部分代碼如下:if(!ClientFace.getSendText().getText().isEmpty()PrintWriter
31、pw=null;trypw=newPrintWriter(ClientFace.getSocket().getOutputStream();Stringstr=ClientFace.getSendText().getText();pw.println("message:"+(String)ClientFace.getUsers().getSelectedItem()+":"+str);pw.flush();ClientFace.getSendText().setText("");接收在線用戶給所有人發(fā)送的信息界面如下部分代碼如下:bo
32、oleanb=true;BufferedReaderbr=null;trybr=newBufferedReader(newInputStreamReader(s.getInputStream();catch(IOExceptione)e.printStackTrace();while(b)if(ClientFace.getSocket().isClosed()b=false;break;Stringstr=null;trystr=br.readLine();catch(IOExceptione)e.printStackTrace();if(str.startsWith("all:&q
33、uot;)str=str.substring(4);StringTokenizerst=newStringTokenizer(str,"/");ClientFace.getUsers().removeAllItems();ClientFace.getUsers().addItem("所有人");while(st.hasMoreTokens()Stringuser=st.nextToken();if(!user.equals(ClientFace.getName()ClientFace.getUsers().addItem(user);elseClient
34、Face.getReceiveText().setText(ClientFace.getReceiveText().getText()+str+'n');Pointp=newPoint();if(!ClientFace.getReceiveText().getScrollableTracksViewportHeight()p.setLocation(0,ClientFace.getReceiveText().getHeight();ClientFace.getSp().getViewport().setViewPosition(p);以上這部分代碼應(yīng)該是放在一個(gè)線程中的,使得客
35、戶端能夠隨時(shí)接收并顯示服務(wù)器傳遞來(lái)的數(shù)據(jù)以下界面是用戶給其他某個(gè)特定的用戶發(fā)送信息:其部分實(shí)現(xiàn)代碼為:pw.println("message:"+(String)ClientFace.getUsers().getSelectedItem()+":"+str);接受某個(gè)用戶所給該用戶發(fā)送的消息:客戶端會(huì)一直等待從服務(wù)器接收消息,至于接收消息的類型由服務(wù)器控制而不由客戶端來(lái)控制,所以接受某個(gè)用戶所給該用戶發(fā)送的消息模塊將會(huì)在服務(wù)器系統(tǒng)中說(shuō)明3.3服務(wù)器子系統(tǒng)總體功能設(shè)計(jì):接收客戶端客戶所發(fā)送的信息,并將其轉(zhuǎn)發(fā)給合適的目的用戶(為了便于測(cè)試,我們暫時(shí)給服務(wù)器增
36、加了一個(gè)功能-查看所有用戶所發(fā)送的所有信息,在真正的生產(chǎn)中,應(yīng)當(dāng)將此功能去掉)下面給出設(shè)計(jì)方案和設(shè)計(jì)方法在這里有一個(gè)輔助的功能就是,當(dāng)用戶登陸是,用戶會(huì)將自己的Socket和ID號(hào)發(fā)送給服務(wù)器,服務(wù)器會(huì)將該用戶的信息存儲(chǔ)在服務(wù)器中,同時(shí)服務(wù)器將該用戶的id分發(fā)出去,使得所有用戶直到此用戶上線具體代碼如下:ServerSocketserverSocket=newServerSocket(2046);while(true)StringclientName;Socketsocket=serverSocket.accept();ObjectInputStreamobj=null;obj=newObje
37、ctInputStream(socket.getInputStream();Stringname=(String)obj.readObject();if(!"".equals(name)clientName=name;elseclientName="貓熊"+String.valueOf(NO+);Messagemess=newMessage(socket,clientName);clients.add(mess);PrintWriterpw=null;pw=newPrintWriter(mess.getSocket().getOutputStream()
38、;for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream();pw.println(clientName+"來(lái)了.");pw.flush();ServerFace.getAreas().setText(ServerFace.getAreas().getText()+"n"+clientName+"來(lái)了.");Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewpor
39、tHeight()p.setLocation(0,ServerFace.getAreas().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);ServerFace.getArea().setText(ServerFace.getArea().getText()+"n"+clientName+"來(lái)了.");p=newPoint();if(!ServerFace.getArea().getScrollableTracksViewportHeight()p.setLocation
40、(0,ServerFace.getArea().getHeight();ServerFace.getAr().getViewport().setViewPosition(p);pw.flush();mess.setSocketName(clientName);StringallClients=""for(Messagemes:clients)allClients+=mes.getSocketName()+'/'PrintWriterpww=null;for(Messagemes:clients)pww=newPrintWriter(mes.getSocket
41、().getOutputStream();pww.println("all:"+allClients);pww.flush();轉(zhuǎn)發(fā)功能的部分代碼:BufferedReaderbr=null;PrintWriterpw=null;Stringstr=null;Messagees;booleanb=true;while(b)trybr=newBufferedReader(newInputStreamReader(s.getSocket().getInputStream();str=br.readLine();if(str.startsWith("message:&q
42、uot;)str=str.substring(8);StringtoUser=str.substring(0,str.indexOf(":");/用戶發(fā)送的信息是給所有在線用戶時(shí),服務(wù)器的處理方式if("所有人".equals(toUser)for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream();pw.println(s.getSocketName()+"對(duì)所有人說(shuō):"+str.substring(str.indexOf(":&qu
43、ot;)+1);pw.flush();ServerFace.getArea().setText(ServerFace.getArea().getText()+"n"+s.getSocketName()+"對(duì)所有人說(shuō):"+str.substring(str.indexOf(":")+1);Pointp=newPoint();if(!ServerFace.getArea().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getArea().getHeight()
44、;ServerFace.getAr().getViewport().setViewPosition(p);/用戶發(fā)送的信息是給某個(gè)特定的在線用戶時(shí),服務(wù)器的處理方式es=getUser(toUser);if(es.getSocket().isClosed()continue;pw=newPrintWriter(es.getSocket().getOutputStream();pw.println(s.getSocketName()+"悄悄地說(shuō):"+str.substring(str.indexOf(":")+1);pw.flush();pw=newPri
45、ntWriter(s.getSocket().getOutputStream();pw.println("悄悄地對(duì)"+es.getSocketName()+"說(shuō):"+str.substring(str.indexOf(":")+1);pw.flush();ServerFace.getArea().setText(ServerFace.getArea().getText()+"n"+s.getSocketName()+"悄悄地對(duì)"+getUser(toUser).getSocketName()+&
46、quot;說(shuō):"+str.substring(str.indexOf(":")+1);Pointp=newPoint();if(!ServerFace.getArea().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getArea().getHeight();ServerFace.getAr().getViewport().setViewPosition(p);查看所有用戶的狀態(tài)的設(shè)計(jì)原理:如果客戶端上線,則記錄用戶上線,直到用戶下線時(shí),記錄用戶離線,其根據(jù)的也是用戶端發(fā)送的消息,只不
47、過(guò)是格式的不同而已,具體代碼如下:if(str.startsWith("exit:")str=str.substring(5);clients.remove(getUser(str);for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream();pw.println(str+"走了.");pw.flush();ServerFace.getAreas().setText(ServerFace.getAreas().getText()+"n"+str+
48、"走了.");Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getAreas().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);b=false;break;catch(Exceptione)e.printStackTrace();ServerFace.getAreas().setText(ServerFace.getAreas(
49、).getText()+"n"+str+"意外退出.");Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getAreas().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);ServerFace.getArea().setText(ServerFace.getArea().getText()+"n&q
50、uot;+s.getSocketName()+"意外退出.");服務(wù)器端界面(暫時(shí))如下數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)1引言1.1編寫(xiě)目的通信系統(tǒng)在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,進(jìn)行用戶信息的添加、整理、存儲(chǔ)、檢索、更新等操作。對(duì)于數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)人員來(lái)說(shuō),如何利用數(shù)據(jù)庫(kù)管理系統(tǒng)、系統(tǒng)軟件和相關(guān)硬件系統(tǒng),將用戶信息轉(zhuǎn)化成要有效的數(shù)據(jù)結(jié)構(gòu),并使數(shù)據(jù)庫(kù)結(jié)構(gòu)易于實(shí)現(xiàn)用戶新的要求。確切的說(shuō),數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,提供一個(gè)確定最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計(jì),以及一個(gè)確定數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)與存取方法的物理設(shè)計(jì),建立起既能反映現(xiàn)實(shí)世界信息和信息聯(lián)系,滿足用戶數(shù)據(jù)要求和加工要求,有能被某個(gè)數(shù)據(jù)庫(kù)管
51、理系統(tǒng)所接受,同時(shí)能實(shí)現(xiàn)系統(tǒng)目標(biāo),并有效存取數(shù)據(jù)的數(shù)據(jù)庫(kù)1.2背景a.待開(kāi)發(fā)軟件系統(tǒng)的名稱:山西大學(xué)計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院局域網(wǎng)即時(shí)通信軟件b.本項(xiàng)目的任務(wù)提出者:計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級(jí)林真真、金鵬、王超、張拓開(kāi)發(fā)者:林真真、金鵬、王超、張拓用戶:計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院相關(guān)人員。1.3定義列出本文件中用到的專門術(shù)語(yǔ)的定義、外文首字母組詞的原詞組。1.4參考資料軟件設(shè)計(jì)文檔國(guó)家標(biāo)準(zhǔn)軟件工程導(dǎo)論(第4版)張海藩MySQL5.1官方簡(jiǎn)體中文手冊(cè)2外部設(shè)計(jì)2.1標(biāo)識(shí)符和狀態(tài)基本描述:每個(gè)數(shù)據(jù)表中只能有一個(gè)Person_id,即Person_id在同一個(gè)表中必須唯一,所以Person_id唯一地標(biāo)識(shí)了單個(gè)字段。由于整個(gè)開(kāi)發(fā)系統(tǒng)還在開(kāi)發(fā)中,所以數(shù)據(jù)庫(kù)的開(kāi)發(fā)還沒(méi)有完成,這個(gè)屬性必須在開(kāi)發(fā)過(guò)程中和開(kāi)發(fā)結(jié)束后有效。本系統(tǒng)中有唯一標(biāo)識(shí)的見(jiàn)下表數(shù)據(jù)表名稱標(biāo)識(shí)符名稱標(biāo)識(shí)符名稱屬性PersonManagerPerson_id管理員用戶名PersonPerson_id普通用戶名2.2使用它的程序由于數(shù)據(jù)的存取是通過(guò)界面的接口和數(shù)據(jù)庫(kù)進(jìn)行連接的,所以在實(shí)現(xiàn)過(guò)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度企業(yè)合規(guī)審計(jì)與風(fēng)險(xiǎn)評(píng)估與咨詢合同3篇
- 平屋面工程施工方案
- 2024年私人投資黃金租賃合同范本(含回購(gòu)條款)3篇
- 市政先行施工方案
- 2024年軟件許可合同:某企業(yè)購(gòu)買某軟件的使用權(quán)
- 裝修項(xiàng)目吊頂施工方案
- 二零二五年賓館股份收購(gòu)與長(zhǎng)期合作協(xié)議3篇
- 不銹鋼風(fēng)管施工方案
- 柵欄板施工方案
- 鋼筋混凝土樁施工方案
- 計(jì)算與人工智能概論知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋湖南大學(xué)
- 2024年度油漆涂料生產(chǎn)線租賃合同3篇
- 2024-2024年上海市高考英語(yǔ)試題及答案
- 慶祝澳門回歸25周年主題班會(huì) 課件 (共22張)
- 《藥事管理與法規(guī)》期末考試復(fù)習(xí)題及答案
- 血液病染色體
- 幼兒園膳食管理委員會(huì)組織結(jié)構(gòu)概述
- 介入治療的臨床應(yīng)用
- 第四章 牛頓運(yùn)動(dòng)定律 章末檢測(cè)題(基礎(chǔ)卷)(含答案)2024-2025學(xué)年高一上學(xué)期物理人教版(2019)必修第一冊(cè)
- 華中師范大學(xué)《高等代數(shù)與解析幾何》2023-2024學(xué)年第一學(xué)期期末試卷
- QC課題提高金剛砂地面施工一次合格率
評(píng)論
0/150
提交評(píng)論