局域網(wǎng)即時通信軟件(可行性分析報告、軟件需求說明書、軟件設(shè)計、詳細(xì)設(shè)計說明書、數(shù)據(jù)庫設(shè)計說明書)_第1頁
局域網(wǎng)即時通信軟件(可行性分析報告、軟件需求說明書、軟件設(shè)計、詳細(xì)設(shè)計說明書、數(shù)據(jù)庫設(shè)計說明書)_第2頁
局域網(wǎng)即時通信軟件(可行性分析報告、軟件需求說明書、軟件設(shè)計、詳細(xì)設(shè)計說明書、數(shù)據(jù)庫設(shè)計說明書)_第3頁
局域網(wǎng)即時通信軟件(可行性分析報告、軟件需求說明書、軟件設(shè)計、詳細(xì)設(shè)計說明書、數(shù)據(jù)庫設(shè)計說明書)_第4頁
局域網(wǎng)即時通信軟件(可行性分析報告、軟件需求說明書、軟件設(shè)計、詳細(xì)設(shè)計說明書、數(shù)據(jù)庫設(shè)計說明書)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機(jī)與信息技術(shù)學(xué)院局域網(wǎng)即時通信軟件編寫:指導(dǎo)教師:可行性分析報告1引言需求規(guī)格說明書是需求分析的產(chǎn)物,它是軟件系統(tǒng)生存期中軟件定義階段的最后一個步驟。作為整個軟件開發(fā)過程的指南,它也是軟件開發(fā)人員開發(fā)出符合用戶要求的軟件的基礎(chǔ)。1.1編寫目的軟件需求說明書的編制目的是為了使用戶和軟件開發(fā)者雙方對該軟件的初始規(guī)定有一個共同的理解;使之成為整個開發(fā)工作的基礎(chǔ)。本軟件需求說明書的讀者是系統(tǒng)開發(fā)人員或合同約定的人負(fù)。1.2背景a.軟件系統(tǒng)名稱:山西大學(xué)計算機(jī)科學(xué)與信息技術(shù)學(xué)院局域網(wǎng)即時通信軟件b.本項目任務(wù)的提出者:計算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級林真真、金鵬、王超、張拓c.本項目的開發(fā)者為:計

2、算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級林真真、金鵬、王超、張拓d.該軟件系統(tǒng)同其他系統(tǒng)或其他機(jī)構(gòu)的基本的相互來往關(guān)系:該系統(tǒng)是一個局域網(wǎng)內(nèi)部系統(tǒng),獨立于網(wǎng)絡(luò)服務(wù)商和其他系統(tǒng)2.可行性研究的前提2.1要求功能:這是一個通信軟件系統(tǒng),主要負(fù)責(zé)本局域網(wǎng)內(nèi)部人員之間進(jìn)行便捷的互動交流,以便局域網(wǎng)內(nèi)部的交流迅速、快捷,節(jié)省信息傳遞時間。2.2目標(biāo)目前的通信軟件絕大多數(shù)都依賴于通信軟件服務(wù)商提供的軟件質(zhì)量和網(wǎng)絡(luò)服務(wù)商提供的網(wǎng)絡(luò)質(zhì)量。只有在這些通信軟件和網(wǎng)絡(luò)服務(wù)提供商的提供服務(wù)時,才能進(jìn)行局域網(wǎng)內(nèi)部人員之間的網(wǎng)絡(luò)通信。本通信軟件可以滿足局域網(wǎng)內(nèi)部人員不依賴于網(wǎng)絡(luò)服務(wù)提供商和其他軟件服務(wù)商,來完成局域網(wǎng)內(nèi)部人員的即

3、時通訊,實現(xiàn)數(shù)據(jù)發(fā)送,文件傳輸。2.3條件、假定和限制a.開發(fā)者的計算機(jī)性能不夠穩(wěn)定,對Mysql等數(shù)據(jù)庫軟件和Eclipse等開發(fā)工具有不利影響。b.可利用的信息和資源比較單一,客戶的需求分析主要來自開發(fā)者在計算機(jī)科學(xué)與信息技術(shù)學(xué)院學(xué)習(xí)和生活過程中的交流學(xué)習(xí)帶來很大的方便之處;而技術(shù)方面,對Mysql等數(shù)據(jù)庫軟件和Java、以及網(wǎng)絡(luò)編程的掌握和應(yīng)用還有待提高,不足之處靠借閱有關(guān)書籍和向老師請教進(jìn)行補(bǔ)充,組內(nèi)成員間相互討論分析決定。c.經(jīng)費不足d.進(jìn)行系統(tǒng)方案選擇比較的時間較短。e.系統(tǒng)投入使用的時間最晚為本學(xué)期末3.對現(xiàn)有系統(tǒng)的分析3.1處理流程和數(shù)據(jù)流程a.網(wǎng)絡(luò)服務(wù)方面:由網(wǎng)絡(luò)服務(wù)商提供網(wǎng)

4、絡(luò)服務(wù)b.軟件服務(wù)方面:由軟件服務(wù)商提供軟件;用戶獲得軟件-注冊-登陸-客戶發(fā)送端發(fā)送信息-軟件提供商服務(wù)器-客戶接收端接受信息3.2工作負(fù)荷由于網(wǎng)絡(luò)服務(wù)商提供網(wǎng)絡(luò)服務(wù)、軟件服務(wù)商提供軟件服務(wù),客戶端只是使用軟件,所以工作量幾乎沒有3.3費用開支由于需要網(wǎng)絡(luò)服務(wù)商提供網(wǎng)絡(luò)服務(wù),所以需要承擔(dān)網(wǎng)絡(luò)服務(wù)費用3.4人員由于網(wǎng)絡(luò)服務(wù)商提供網(wǎng)絡(luò)服務(wù)、軟件服務(wù)商提供軟件服務(wù),所以不需要人員來來維護(hù)服務(wù)器。3.5設(shè)備局域網(wǎng)服務(wù)器,個人主機(jī)。3.6局限性由于網(wǎng)絡(luò)服務(wù)商提供網(wǎng)絡(luò)服務(wù)、軟件服務(wù)商提供軟件服務(wù),雖然這樣使用起來很方便,并且省去了維護(hù)人員的維護(hù)費用和硬件設(shè)備費用,但是在這種模式下,軟件使用時嚴(yán)重依賴于軟

5、件服務(wù)提供商和網(wǎng)絡(luò)服務(wù)提供商所提供的服務(wù)質(zhì)量。假若任何一方出現(xiàn)問題,那么現(xiàn)有的客戶端軟件就不能使用。因此開發(fā)局域網(wǎng)內(nèi)部使用的即時通信軟件是非常有必要的。4.所建議的系統(tǒng)4.1對所建議系統(tǒng)的說明a.功能概括:(1)提供局域網(wǎng)內(nèi)部即時文字信息傳輸,語音信息傳輸,文件傳輸(2)對用戶信息進(jìn)行增加、刪除、更改b.系統(tǒng)環(huán)境以及工具系統(tǒng)運行環(huán)境:WINDOWS/LINUX和JVM編程語言:JAVA數(shù)據(jù)庫:Mysql4.2處理流程和數(shù)據(jù)流程處理流程:客戶請求登陸內(nèi)部服務(wù)器接受請求-客戶發(fā)送(接收)信息數(shù)據(jù)流程:客戶請求登陸信息:客戶內(nèi)部服務(wù)器客戶發(fā)送信息:客戶內(nèi)部服務(wù)器客戶4.3改進(jìn)之處本軟件系統(tǒng)完全不依賴

6、外部網(wǎng)絡(luò)服務(wù)提供商和軟件服務(wù)提供商,能夠在局域網(wǎng)內(nèi)部提供便捷的通信服務(wù)。4.4影響4.4.1.對設(shè)備的影響運行該軟件時,必須安裝相應(yīng)操作系統(tǒng)JVM。4.4.2.對軟件的影響JAVA以及Mysql4.4.3.對用戶單位機(jī)構(gòu)的影響使用該系統(tǒng),客戶原有體系幾乎不需要太大的變化,這是個即裝即用的軟件,對人員技術(shù)的要求不高,只要用戶會簡單的計算機(jī)操作即可4.4.4.對系統(tǒng)運行過程的影響該系統(tǒng)工作量小,一般情況下不會由于信息量大而造成麻煩。因為軟件只是的服務(wù)只是在學(xué)院內(nèi)部網(wǎng)絡(luò)中使用,一般同一時間段的使用人數(shù)不會超過1000人,所以該系統(tǒng)的負(fù)擔(dān)不會太大。4.4.5.對開發(fā)的影響影響開發(fā)進(jìn)程,使工程停滯,在開

7、發(fā)過程中給程序員打來很大不便。4.4.6.對地點和設(shè)施的影響由于該系統(tǒng)專門服務(wù)給學(xué)院內(nèi)部,所以需要在學(xué)院內(nèi)部網(wǎng)絡(luò)服務(wù)器上安裝該系統(tǒng)的服務(wù)器端。4.5技術(shù)條件方面的可能性技術(shù)方面,我們選擇的是JAVA和Mysql,都是組員熟悉的語言,即使遇到部分困難,也可以從豐富的參考書中找到解決方案。所以技術(shù)方面是絕對可行的。5.可選擇的其他系統(tǒng)方案由于該系統(tǒng)的結(jié)構(gòu)比較簡單、開發(fā)時間倉促,故只使用這一個方案,無其他備用方案。6.社會因素方面的可能性使用方面的可行性:學(xué)院在沒有使用我們這套系統(tǒng)前,都采用其他軟件服務(wù)商提供的軟件,相對而言服務(wù)質(zhì)量難以得到保證。而根據(jù)現(xiàn)有的硬件條件,在辦公室中,學(xué)院的老師和在實驗室

8、的學(xué)生都配備電腦。而且電腦的系統(tǒng)軟件都是WINDOWS98以上的,所以足夠可以來運行我們的軟件;從學(xué)院老師和學(xué)生的文化素質(zhì)來看,我們的軟件操作簡單,運行方便,在用我們的軟件來進(jìn)行通信是沒有什么困難的。7.結(jié)論經(jīng)過了我們整個的可行性研究報告的研究,最終我們得出了一個研究的結(jié)論。結(jié)論是:我們可以立即執(zhí)行我們的軟件設(shè)計,來達(dá)到我們的預(yù)期目標(biāo)。軟件需求說明書1引言需求規(guī)格說明書是需求分析的產(chǎn)物,它是軟件系統(tǒng)生存期中軟件定義階段的最后一個步驟。作為整個軟件開發(fā)過程的指南,它也是軟件開發(fā)人員開發(fā)出符合用戶要求的軟件的基礎(chǔ)。1.1編寫目的軟件需求說明書的編制目的是為了使用戶和軟件開發(fā)者雙方對該軟件的初始規(guī)定

9、有一個共同的理解;使之成為整個開發(fā)工作的基礎(chǔ)。本軟件需求說明書的讀者是系統(tǒng)開發(fā)人員或合同約定的人負(fù)。1.2背景(1)本系統(tǒng)的名稱是:局域網(wǎng)即時通信軟件。(2)本項目的任務(wù)提出者是計算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級林真真、金鵬、王超、張拓,開發(fā)者是計算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級林真真、金鵬、王超、張拓,用戶是企業(yè)人事及相關(guān)部門,實現(xiàn)該軟件的對象:企業(yè)及個人局域網(wǎng)內(nèi)部使用。1.3定義數(shù)據(jù)字典:關(guān)于數(shù)據(jù)的信息的集合,也即是對數(shù)據(jù)流圖中包含的元素的定義的集合。1.4參考資料引用資料計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)軟件說明書計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)概要說明書計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)數(shù)

10、據(jù)庫設(shè)計說明書國家開發(fā)標(biāo)準(zhǔn)文檔軟件工程(第四版-張海藩)UML面向?qū)ο笤O(shè)計與分析(朱麗平等)2任務(wù)概述2.1目標(biāo)局域網(wǎng)即時通信軟件是現(xiàn)代網(wǎng)絡(luò)通信技術(shù)的重要內(nèi)容,也是萬維網(wǎng)通信技術(shù)的基礎(chǔ)性工作。局域網(wǎng)即時通信軟件在開發(fā)過程中有很多不利于實現(xiàn)的地方,不適應(yīng)現(xiàn)代的網(wǎng)絡(luò)通信任務(wù)。局域網(wǎng)即時通信軟件是局域網(wǎng)企業(yè)內(nèi)部及個人局域網(wǎng)內(nèi)部不實現(xiàn)信息化、規(guī)范化,使工作效率及重要信息的可靠傳遞。2.2用戶的特點本軟件的最終用戶是局域網(wǎng)內(nèi)部任何人員。局域網(wǎng)內(nèi)有專門的服務(wù)器管理人員,具有一定的計算機(jī)操作知識;軟件的維護(hù)人員是局域網(wǎng)內(nèi)部的專業(yè)網(wǎng)絡(luò)管理員,對網(wǎng)絡(luò)和數(shù)據(jù)庫的操作比較熟悉,同時對VB或Delphi,Java編程

11、有一定的經(jīng)驗。2.3假定和約束a.開發(fā)者的計算機(jī)性能不夠穩(wěn)定,對Mysql等數(shù)據(jù)庫軟件和Eclipse等開發(fā)工具有不利影響。b.可利用的信息和資源比較單一,客戶的需求分析主要來自開發(fā)者在計算機(jī)科學(xué)與信息技術(shù)學(xué)院學(xué)習(xí)和生活過程中的一些問題;而技術(shù)方面,對Mysql等數(shù)據(jù)庫軟件和Java、以及網(wǎng)絡(luò)編程的掌握和應(yīng)用還有待提高,不足之處靠借閱有關(guān)書籍和向老師請教進(jìn)行補(bǔ)充,組內(nèi)成員間相互討論分析決定。c.經(jīng)費不足d.進(jìn)行系統(tǒng)方案選擇比較的時間較短。e.系統(tǒng)投入使用的時間最晚為本學(xué)期末3需求規(guī)定3.l對功能的規(guī)定3.l.1系統(tǒng)功能主要分為客戶端發(fā)送接收消息和服務(wù)器數(shù)據(jù)庫管理和處理.通信系統(tǒng)功能部分分為2類

12、:客戶相關(guān),管理員相關(guān).從使用和操作功能上分,有三種用戶:超級管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用戶(接收發(fā)送信息,更改密碼).為了便于整個系統(tǒng)組織管理,把各個相對獨立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來,我們把各個相對獨立的功能完全獨立設(shè)計,編譯成獨立的目標(biāo)(功能)模塊,各功能模塊最后被集成到一控制臺模塊中.相應(yīng)的將系統(tǒng)分為一個控制臺程序和兩個子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復(fù)解釋,在每個模塊中只列出每個子模塊區(qū)別于其他子模塊的功能實現(xiàn).3.1.2數(shù)據(jù)流圖詳見局域網(wǎng)即時通信軟件

13、詳細(xì)設(shè)計說明書3.1.3E-R圖3.2對性能的規(guī)定靈活性(l)操作方式上應(yīng)該能夠滿足鼠標(biāo)和鍵盤任意切換的需要;(2)能夠支持Windows95、Windows98、Windows2000、WindowsMe和WindowsXP的運行環(huán)境;(3)留有與其他系統(tǒng)的接口。3.3輸入輸出要求輸入:本即時通信軟件所要求的字符格式與文件格式,否則無法傳輸文件及收發(fā)文字信息。輸出:本軟件提供用戶打印聊天記錄功能。3.4故障處理要求在輸入不符合定義格式的數(shù)據(jù)時,軟件應(yīng)出現(xiàn)提示信息,而不是死機(jī)或刪除已經(jīng)輸入的信息,然后再彈出輸入界面重新開始。4運行環(huán)境規(guī)定4.1設(shè)備運行本軟件要求處理器在奔騰III以上、內(nèi)存在2

14、56MB以上的計算機(jī)。4.2支持軟件A.windows2000以上的操作系統(tǒng)或RedHatLinuxAS5:這兩個操作系統(tǒng)是主要的軟件,此系統(tǒng)開發(fā)過程在除了文檔的編寫,其它的工作都在這兩個操作系統(tǒng)中進(jìn)行,這兩個操作系統(tǒng)在開發(fā)過程中承擔(dān)重要的開發(fā)任務(wù)B.Eclipse3.4編程工具:它作為一個集成開發(fā)工具,提供了部分的代碼自動生成和可視化的資源編輯功能,在此系統(tǒng)開發(fā)過程中主要承擔(dān)代碼的編寫任務(wù)C.MySQL5.1應(yīng)用軟件:Mysql數(shù)據(jù)庫軟件是一種使用極其方便的數(shù)據(jù)庫軟件,在處理少量數(shù)據(jù)是很好的,不但操作簡單、效率高,而且適用于多種操作系統(tǒng)的適用,最重要的是它是一個免費的數(shù)據(jù)庫軟件,不會涉及版權(quán)

15、問題,節(jié)約了大量的開發(fā)資金4.3接口本軟件通過若干個中間表實現(xiàn)與其他軟件的通信。4.4控制本軟件通過“昵稱登入”模塊進(jìn)行用戶登錄的控制,根據(jù)不同用戶的昵稱調(diào)用不同的模塊。其他模塊控制情況照此描述。(l)驗證軟件需求需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎(chǔ),一旦對目標(biāo)系統(tǒng)提出完整、具體的要求并寫出了軟件需求說明書之后,就必須嚴(yán)格驗證這些需求的正確性。通常,從以下4個方面進(jìn)行驗證。一致性:所有需求必須是一致的,任何一條需求都不能和其他需求相矛盾。完整性:需求必須是完整的,軟件需求說明書應(yīng)該包含用戶對軟件產(chǎn)品的每一項要求?,F(xiàn)實性:指定的需求應(yīng)該用現(xiàn)有的硬件技術(shù)和軟件技術(shù)可以實現(xiàn)。有效性:需求必

16、須是有效的,確實能解決用戶所面臨的問題,可以達(dá)到開發(fā)軟件的目標(biāo)。軟件概要設(shè)計1引言軟件概要設(shè)計主要是一個把軟件需求轉(zhuǎn)化為軟件表示的過程,這種表示只是描述出軟件總的概貌。1.1編寫目的概要設(shè)計說明書編制的目的是:說明對程序系統(tǒng)的設(shè)計考慮,包括程序系統(tǒng)的基本處理I流程、程序系統(tǒng)的組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計、運行設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計和出錯處理設(shè)計等,為程序的詳細(xì)設(shè)計提供基礎(chǔ)。本軟件概要說明書的讀者是系統(tǒng)開發(fā)人員或合同約定的人員。1.2背景(1) 本系統(tǒng)的名稱是:局域網(wǎng)即時通信軟件。(2)本項目的任務(wù)提出者是計算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級林真真、金鵬、王超、張拓,開發(fā)者是計算機(jī)科學(xué)與信息

17、技術(shù)學(xué)院2005級林真真、金鵬、王超、張拓,用戶是企業(yè)人事及相關(guān)部門,實現(xiàn)該軟件的對象:企業(yè)及個人局域網(wǎng)內(nèi)部使用。1.3定義數(shù)據(jù)字典:關(guān)于數(shù)據(jù)的信息的集合,也即是對數(shù)據(jù)流圖中包含的元素的定義的集合。VB:VisualBasic。1.4參考資料計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)軟件說明書計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)概要說明書計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)數(shù)據(jù)庫設(shè)計說明書國家開發(fā)標(biāo)準(zhǔn)文檔軟件工程(第四版-張海藩)UML面向?qū)ο笤O(shè)計與分析(朱麗平等)2總體設(shè)計2.1需求規(guī)定主要分為客戶端發(fā)送接收消息和服務(wù)器數(shù)據(jù)庫管理和處理.通信系統(tǒng)功能部分分為2類:客戶相關(guān),管理員相關(guān).從使用和操作功能上分,有

18、三種用戶:超級管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用戶(接收發(fā)送信息,更改密碼).為了便于整個系統(tǒng)組織管理,把各個相對獨立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來,我們把各個相對獨立的功能完全獨立設(shè)計,編譯成獨立的目標(biāo)(功能)模塊,各功能模塊最后被集成到一控制臺模塊中.相應(yīng)的將系統(tǒng)分為一個控制臺程序和兩個子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復(fù)解釋,在每個模塊中只列出每個子模塊區(qū)別于其他子模塊的功能實現(xiàn).2.2運行環(huán)境硬件環(huán)境:運行本軟件要求處理器在奔騰III、內(nèi)存在256MB以上的計算機(jī)。

19、軟件環(huán)境:本系統(tǒng)支持的操作系統(tǒng)包括Windows95、Windows98、Windows2000、WindowsMe和WindowsXP;本系統(tǒng)的支持?jǐn)?shù)據(jù)庫為MySQL;本軟件的開發(fā)工具為Java。2.3結(jié)構(gòu)所有模塊都必須調(diào)用“昵稱等入”模塊進(jìn)行身份驗證,只有合法用戶才能使用系統(tǒng)。2.4功能需求與程序的關(guān)系用戶必須輸入昵稱后,方能登入客戶端,與服務(wù)器連接,程序正常運行。2.5人工處理過程本軟件系統(tǒng)的工作過程中不需要人工處理數(shù)據(jù)。3接口設(shè)計3.1用戶接口本系統(tǒng)采用典型的Windows風(fēng)格作為人機(jī)接口,如使用窗口、菜單、對話框等。3.2外部接口本系統(tǒng)支持處理器在奔騰III以上、內(nèi)存在256MB以上

20、的計算機(jī);支持具有Windows的操作系統(tǒng),如Windows95、Windows98、Windows2000、WindowsMe和WindowsXP支持MySQL關(guān)系數(shù)據(jù)庫3.3內(nèi)部接口“用戶驗證”模塊:提供系統(tǒng)用戶登錄時的身份驗證功能,用戶進(jìn)行角色切換時必裁用此模塊進(jìn)行身份驗證。4運行設(shè)計4.l運行模塊組合不同的用戶登錄此系統(tǒng)獲得的系統(tǒng)功能是不同的,如超級用戶具有系統(tǒng)的全部功能;一些用戶只具有瀏覽數(shù)據(jù)但不具備更新數(shù)據(jù)的功能。4.2運行控制超級用戶對系統(tǒng)的其他用戶設(shè)置系統(tǒng)功能的訪問權(quán)限,這樣權(quán)限受限的用戶就只能訪問部分系統(tǒng)模塊。4.3運行時間“用戶驗證”模塊在完成用戶登錄的身份驗證后立即退出運

21、行,釋放占用的系統(tǒng)資源。5系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計5.1邏輯結(jié)構(gòu)設(shè)計要點邏輯設(shè)計是系統(tǒng)中數(shù)據(jù)庫設(shè)計的的重要步驟之一,其中羅列了文檔需求分析中各種功能實現(xiàn)之間的本質(zhì)關(guān)系,通過E-R圖描述實例化了的文字抽象概念。以下針對本系統(tǒng)的加以闡述其邏輯設(shè)計數(shù)據(jù)表中的基本數(shù)據(jù)結(jié)構(gòu):5.2物理結(jié)構(gòu)設(shè)計要點數(shù)據(jù)庫結(jié)構(gòu)的物理設(shè)計是對一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程主要設(shè)計表的結(jié)構(gòu),一般的試題對應(yīng)于表,實體的屬性對應(yīng)于列,實體之間的關(guān)系為表的約束,邏輯設(shè)計中的實體大部分可以轉(zhuǎn)化為物理設(shè)計中的表,但它們并不是一一對應(yīng)的。5.3數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系輸入登入昵稱,若不匹配,返回結(jié)果到登錄窗口,提示錯誤,

22、相反登錄成功。6系統(tǒng)出錯處理設(shè)計6.l出錯信息當(dāng)輸入信息超出字符的標(biāo)準(zhǔn)時,軟件將會彈出警戒窗口提示,不會死機(jī)或軟件自動關(guān)閉。6.2補(bǔ)救措施本系統(tǒng)中,當(dāng)用戶沒有輸入非空字段而進(jìn)行數(shù)據(jù)提交時,系統(tǒng)提示字段數(shù)據(jù)不得為空,請重新輸入再提交。此時輸入界面保留剛剛輸入信息的界面,而不是清空全部輸入界面上的所有數(shù)據(jù);要求用戶重新輸入。本系統(tǒng)提供數(shù)據(jù)備份功能,方便用戶對數(shù)據(jù)的備份。6.3系統(tǒng)維護(hù)設(shè)計詳細(xì)編寫各階段的文檔資料,以利于未來版本升級及移植等二次開發(fā)。詳細(xì)設(shè)計說明書1引言1.1編寫目的本文檔為計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)詳細(xì)說明書,主要是為了實現(xiàn)系統(tǒng)的功能而進(jìn)行的系統(tǒng)詳細(xì)設(shè)計說明,詳細(xì)系統(tǒng)各個軟件

23、組成模塊的實現(xiàn)流程、功能、接口、編譯、測試要點等內(nèi)容,便于對系統(tǒng)的編碼進(jìn)行指導(dǎo)和約束,本文檔供全體組員和測試人員閱讀。1.2參考資料計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)軟件說明書計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)概要說明書計算機(jī)科學(xué)與信息技術(shù)學(xué)院通信系統(tǒng)數(shù)據(jù)庫設(shè)計說明書國家開發(fā)標(biāo)準(zhǔn)文檔軟件工程(第四版-張海藩)UML面向?qū)ο笤O(shè)計與分析(朱麗平等)2系統(tǒng)功能實現(xiàn)從前面的需求分析可知,系統(tǒng)的功能不是很龐雜,主要分為客戶端發(fā)送接收消息和服務(wù)器數(shù)據(jù)庫管理和處理.通信系統(tǒng)功能部分分為2類:客戶相關(guān),管理員相關(guān).從使用和操作功能上分,有三種用戶:超級管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用

24、戶(接收發(fā)送信息,更改密碼).為了便于整個系統(tǒng)組織管理,把各個相對獨立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來,我們把各個相對獨立的功能完全獨立設(shè)計,編譯成獨立的目標(biāo)(功能)模塊,各功能模塊最后被集成到一控制臺模塊中.相應(yīng)的將系統(tǒng)分為一個控制臺程序和兩個子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復(fù)解釋,在每個模塊中只列出每個子模塊區(qū)別于其他子模塊的功能實現(xiàn).3.1系統(tǒng)控制臺模塊功能:各個子功能之間的調(diào)用;統(tǒng)一的登錄界面實現(xiàn)到數(shù)據(jù)庫服務(wù)器的登陸設(shè)計:3.1.1登陸數(shù)據(jù)庫輸入用戶賬號(id),密碼(pwd),以賬號Mana

25、gerPerson_id和密碼ManagerPerson_pwd登陸的用戶擁有對普通用戶管理的權(quán)限,以賬號Manager_id和密碼Manager_pwd登陸的用戶擁有對所由用戶進(jìn)行管理的權(quán)限.檢索系統(tǒng)權(quán)限表,根據(jù)權(quán)限設(shè)置相應(yīng)的功能模塊,a.無此用戶或禁止權(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=true;M=true3.1.2程序組、程序項的原理組織各執(zhí)行模塊可執(zhí)

26、行功能模塊的調(diào)用執(zhí)行,通過程序項名稱獲取可執(zhí)行目標(biāo)代碼文件名,應(yīng)用接口類Main開始執(zhí)行,界面如下:部分程序代碼JButtonbt=newJButton(登陸);JLabellabel=newJLabel(用戶名);JPanelpanel=newJPanel();panel.add(label);panel.add(field);frame.add(panel,BorderLayout.NORTH);JPanelpane=newJPanel();JTextFieldfieldpwd=newJTextField(10);JLabellabe=newJLabel(密碼);pane.add(labe

27、);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=null)return;start();frame.dispose();publicvoidkeyReleased(KeyEvente)publicvoidke

28、yTyped(KeyEvente);privateJTextFieldfield=newJTextField(10);privateJFrameframe=newJFrame();3.2用戶子系統(tǒng)總體功能設(shè)計:用戶子系統(tǒng)包含用戶信息管理用戶之間數(shù)據(jù)的傳遞下面給出設(shè)計方案和實現(xiàn)方法3.2.1用戶子系統(tǒng)包含用戶信息管理超級管理員信息管理輸入:用戶ID、初始密碼處理:將用戶信息按相同的格式導(dǎo)入數(shù)據(jù)庫輸出:提示信息數(shù)據(jù)表:將Manager表中存放超級管理員數(shù)據(jù),表存放在數(shù)據(jù)庫DB中管理員信息和普通用戶信息與超級管理員的信息管理方式基本相同,區(qū)別在于管理員信息存放在表personManager表中,而普

29、通用戶的信息存放在person表中。功能:普通用戶更改自己密碼的功能(超級)管理員添加刪除用戶更改密碼的界面如下:部分程序代碼:JFrameframe=newJFrame(更改密碼);JButtonbt=newJButton(確定);JLabellabel=newJLabel(舊密碼);JLabellabe=newJLabel(新密碼);JLabellabe1=newJLabel(確認(rèn)密碼);JPanelpanel=newJPanel();JPanelpane=newJPanel();JPanelpane1=newJPanel();JPaneljpanel=newJPanel(newGridL

30、ayout(2,1);JTextFieldfield=newJTextField(20);JTextFieldfieldpwd=newJTextField(20);JTextFieldfieldpwd1=newJTextField(20);panel.add(label);panel.add(field);pane.add(labe);pane.add(fieldpwd);pane1.add(labe1);pane1.add(fieldpwd1);jpanel.add(pane1);jpanel.add(bt);frame.add(pane);frame.add(panel,BorderLay

31、out.NORTH);frame.add(jpanel,BorderLayout.SOUTH);frame.pack();frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);部分?jǐn)?shù)據(jù)庫代碼:/連接數(shù)據(jù)庫代碼Stringurl=jdbc:mysql:/:3306/test;Stringname=root;Stringpwd=1234567890;Connectioncon=null;con=DriverManager.getConnection(url,name,pwd);/更新

32、密碼代碼Statementstmt=con.createStatement();stmt.executeUpdate(updatepersonsetpwd=+temp+whereid=+id);/其中temp為新密碼刪除用戶界面為部分界面代碼:JButtonbt=newJButton(確定);JLabellabel=newJLabel(請輸入你要刪除的用戶號碼:);JPanelpanel=newJPanel();panel.add(label);panel.add(field);frame.add(panel);frame.add(bt,BorderLayout.SOUTH);.JOption

33、Pane.showMessageDialog(null,確定刪除該用戶,警告,JOptionPane.WARNING_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ā)送信息以及接受某個用戶所給該用戶發(fā)送的消息給某個發(fā)送文本文件給所有人發(fā)送信息的界面如下:部分代碼如下:if(!ClientFace

34、.getSendText().getText().isEmpty()PrintWriterpw=null;trypw=newPrintWriter(ClientFace.getSocket().getOutputStream();Stringstr=ClientFace.getSendText().getText();pw.println(message:+(String)ClientFace.getUsers().getSelectedItem()+:+str);pw.flush();ClientFace.getSendText().setText();接收在線用戶給所有人發(fā)送的信息界面如下

35、部分代碼如下:booleanb=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

36、:)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);elseClientFace.getReceiveText().setTe

37、xt(ClientFace.getReceiveText().getText()+str+n);Pointp=newPoint();if(!ClientFace.getReceiveText().getScrollableTracksViewportHeight()p.setLocation(0,ClientFace.getReceiveText().getHeight();ClientFace.getSp().getViewport().setViewPosition(p);以上這部分代碼應(yīng)該是放在一個線程中的,使得客戶端能夠隨時接收并顯示服務(wù)器傳遞來的數(shù)據(jù)以下界面是用戶給其他某個特定的用戶

38、發(fā)送信息:其部分實現(xiàn)代碼為:pw.println(message:+(String)ClientFace.getUsers().getSelectedItem()+:+str);接受某個用戶所給該用戶發(fā)送的消息:客戶端會一直等待從服務(wù)器接收消息,至于接收消息的類型由服務(wù)器控制而不由客戶端來控制,所以接受某個用戶所給該用戶發(fā)送的消息模塊將會在服務(wù)器系統(tǒng)中說明3.3服務(wù)器子系統(tǒng)總體功能設(shè)計:接收客戶端客戶所發(fā)送的信息,并將其轉(zhuǎn)發(fā)給合適的目的用戶(為了便于測試,我們暫時給服務(wù)器增加了一個功能-查看所有用戶所發(fā)送的所有信息,在真正的生產(chǎn)中,應(yīng)當(dāng)將此功能去掉)下面給出設(shè)計方案和設(shè)計方法在這里有一個輔助的

39、功能就是,當(dāng)用戶登陸是,用戶會將自己的Socket和ID號發(fā)送給服務(wù)器,服務(wù)器會將該用戶的信息存儲在服務(wù)器中,同時服務(wù)器將該用戶的id分發(fā)出去,使得所有用戶直到此用戶上線具體代碼如下:ServerSocketserverSocket=newServerSocket(2046);while(true)StringclientName;Socketsocket=serverSocket.accept();ObjectInputStreamobj=null;obj=newObjectInputStream(socket.getInputStream();Stringname=(String)obj.

40、readObject();if(!.equals(name)clientName=name;elseclientName=貓熊+String.valueOf(NO+);Messagemess=newMessage(socket,clientName);clients.add(mess);PrintWriterpw=null;pw=newPrintWriter(mess.getSocket().getOutputStream();for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream();pw.printl

41、n(clientName+來了.);pw.flush();ServerFace.getAreas().setText(ServerFace.getAreas().getText()+n+clientName+來了.);Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getAreas().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);ServerFac

42、e.getArea().setText(ServerFace.getArea().getText()+n+clientName+來了.);p=newPoint();if(!ServerFace.getArea().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getArea().getHeight();ServerFace.getAr().getViewport().setViewPosition(p);pw.flush();mess.setSocketName(clientName);StringallClient

43、s=;for(Messagemes:clients)allClients+=mes.getSocketName()+/;PrintWriterpww=null;for(Messagemes:clients)pww=newPrintWriter(mes.getSocket().getOutputStream();pww.println(all:+allClients);pww.flush();轉(zhuǎn)發(fā)功能的部分代碼:BufferedReaderbr=null;PrintWriterpw=null;Stringstr=null;Messagees;booleanb=true;while(b)trybr

44、=newBufferedReader(newInputStreamReader(s.getSocket().getInputStream();str=br.readLine();if(str.startsWith(message:)str=str.substring(8);StringtoUser=str.substring(0,str.indexOf(:);/用戶發(fā)送的信息是給所有在線用戶時,服務(wù)器的處理方式if(所有人.equals(toUser)for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream

45、();pw.println(s.getSocketName()+對所有人說:+str.substring(str.indexOf(:)+1);pw.flush();ServerFace.getArea().setText(ServerFace.getArea().getText()+n+s.getSocketName()+對所有人說:+str.substring(str.indexOf(:)+1);Pointp=newPoint();if(!ServerFace.getArea().getScrollableTracksViewportHeight()p.setLocation(0,Serve

46、rFace.getArea().getHeight();ServerFace.getAr().getViewport().setViewPosition(p);/用戶發(fā)送的信息是給某個特定的在線用戶時,服務(wù)器的處理方式es=getUser(toUser);if(es.getSocket().isClosed()continue;pw=newPrintWriter(es.getSocket().getOutputStream();pw.println(s.getSocketName()+悄悄地說:+str.substring(str.indexOf(:)+1);pw.flush();pw=new

47、PrintWriter(s.getSocket().getOutputStream();pw.println(悄悄地對+es.getSocketName()+說:+str.substring(str.indexOf(:)+1);pw.flush();ServerFace.getArea().setText(ServerFace.getArea().getText()+n+s.getSocketName()+悄悄地對+getUser(toUser).getSocketName()+說:+str.substring(str.indexOf(:)+1);Pointp=newPoint();if(!S

48、erverFace.getArea().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getArea().getHeight();ServerFace.getAr().getViewport().setViewPosition(p);查看所有用戶的狀態(tài)的設(shè)計原理:如果客戶端上線,則記錄用戶上線,直到用戶下線時,記錄用戶離線,其根據(jù)的也是用戶端發(fā)送的消息,只不過是格式的不同而已,具體代碼如下:if(str.startsWith(exit:)str=str.substring(5);clients.remove(getU

49、ser(str);for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream();pw.println(str+走了.);pw.flush();ServerFace.getAreas().setText(ServerFace.getAreas().getText()+n+str+走了.);Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getAre

50、as().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);b=false;break;catch(Exceptione)e.printStackTrace();ServerFace.getAreas().setText(ServerFace.getAreas().getText()+n+str+意外退出.);Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewportHeight()p.setLocation(0,ServerFac

51、e.getAreas().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);ServerFace.getArea().setText(ServerFace.getArea().getText()+n+s.getSocketName()+意外退出.);服務(wù)器端界面(暫時)如下數(shù)據(jù)庫設(shè)計說明書1引言1.1編寫目的通信系統(tǒng)在數(shù)據(jù)庫管理系統(tǒng)的支持下,進(jìn)行用戶信息的添加、整理、存儲、檢索、更新等操作。對于數(shù)據(jù)庫應(yīng)用開發(fā)人員來說,如何利用數(shù)據(jù)庫管理系統(tǒng)、系統(tǒng)軟件和相關(guān)硬件系統(tǒng),將用戶信息轉(zhuǎn)化成要有效的數(shù)據(jù)結(jié)構(gòu),并使數(shù)據(jù)庫結(jié)構(gòu)易于實現(xiàn)用戶新的要求。確切的說,數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,提供一個確定最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計,以及一個確定數(shù)據(jù)庫存儲結(jié)構(gòu)與存取方法的物理設(shè)計,建立起既能反映現(xiàn)實世界信息和信息聯(lián)系,滿足用戶數(shù)據(jù)要求和加工要求,有能被某個數(shù)據(jù)庫管理系統(tǒng)所接受,同時能實現(xiàn)系統(tǒng)目標(biāo),并有效存取數(shù)據(jù)的數(shù)據(jù)庫1.2背景a.待開發(fā)軟件系統(tǒng)的名稱:山西大學(xué)計算機(jī)科學(xué)與信息技術(shù)學(xué)院局域網(wǎng)即時通信軟件b.本項目的任務(wù)提出者:計算機(jī)科學(xué)與信息技術(shù)學(xué)院2005級林真真、金鵬、王

溫馨提示

  • 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

提交評論