第一篇:軟件工程課程設(shè)計(jì)報(bào)告 之 詳細(xì)設(shè)計(jì)報(bào)告
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
詳細(xì)設(shè)計(jì)說明書
1、引言: 1、1編寫目的:
在前一階段(概要設(shè)計(jì)說明書)中,已解決了實(shí)現(xiàn)該系統(tǒng)需求的程序模塊設(shè)計(jì)問題。包括如何把該系統(tǒng)劃分成若干個(gè)模塊、決定各個(gè)模塊之間的接口、模塊之間傳遞的信息,以及數(shù)據(jù)結(jié)構(gòu)、模塊結(jié)構(gòu)的設(shè)計(jì)等。在以下的詳細(xì)設(shè)計(jì)報(bào)告中將對(duì)在本階段中對(duì)系統(tǒng)所做的所有詳細(xì)設(shè)計(jì)進(jìn)行說明。
在本階段中,確定應(yīng)該如何具體地實(shí)現(xiàn)所要求的系統(tǒng),從而在編碼階段可以把這個(gè)描述直接翻譯成用具體的 程序語言書寫的程序。主要的工作有:根據(jù)在《需求分析說明書》中所描述的數(shù)據(jù)、功能、運(yùn)行、性能需求,并依照《概要設(shè)計(jì)說明書》所確定的處理流程、總體結(jié)構(gòu)和模塊外部設(shè)計(jì),設(shè)計(jì)軟件系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)、逐個(gè)模塊的程序描述(包括各模塊的功能、性能、輸入、輸出、算法、程序邏輯、接口等等)
在以下的各個(gè)階段中,《用戶操作手冊(cè)》將與本階段的工作緊密結(jié)合,努力作到 讓用戶易懂易學(xué)?!稖y(cè)試報(bào)告》和《維護(hù)報(bào)告》也將參考本說明書,檢驗(yàn)本系統(tǒng)的各項(xiàng)性能指標(biāo),及時(shí)發(fā)現(xiàn)紕漏及時(shí)修補(bǔ),一定要把功能強(qiáng)大、穩(wěn)定可靠、便于維護(hù)的機(jī)票預(yù)定系統(tǒng)交到用戶手中。1、2項(xiàng)目背景:
在本即時(shí)聊天工具項(xiàng)目的前一階段,也就是需求分析階段,已經(jīng)將系統(tǒng)用戶對(duì)本系統(tǒng)的需求做了詳細(xì)的闡述,這些用戶需求已經(jīng)在上一階段中對(duì)不同用戶所提出的不同功能,實(shí)現(xiàn)的各種效果做了調(diào)研工作,并在需求規(guī)格說明書中得到詳盡得敘述及闡明。
本 飛Q即時(shí)聊天系統(tǒng)項(xiàng)目主要由兩部分形成:
1、客戶端;
2、數(shù)據(jù)庫(kù)服務(wù)器端;
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com 1、3文中特殊的定義和縮寫:
1.3.1定義
SQL SERVER: 系統(tǒng)服務(wù)器所使用的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。SQL: 一種用于訪問查詢數(shù)據(jù)庫(kù)的語言
事務(wù)流:數(shù)據(jù)進(jìn)入模塊后可能有多種路徑進(jìn)行處理。主鍵:數(shù)據(jù)庫(kù)表中的關(guān)鍵域。值互不相同。
外部主鍵:數(shù)據(jù)庫(kù)表中與其他表主鍵關(guān)聯(lián)的域。ROLLBACK: 數(shù)據(jù)庫(kù)的錯(cuò)誤恢復(fù)機(jī)制。
1.3.2 縮寫
系統(tǒng):若未特別指出,統(tǒng)指本機(jī)票預(yù)定系統(tǒng)。
SQL: Structured Query Language(結(jié)構(gòu)化查詢語言)。ATM: Asynchronous Transfer Mode(異步傳輸模式)。1、4參考資料:
1. 以下列出在概要設(shè)計(jì)過程中所使用到的有關(guān)資料: 2. 需求規(guī)格說明書
飛Q軟件開發(fā)小組
3. 概要設(shè)計(jì)說明書 飛Q軟件開發(fā)小組
4. 用戶操作手冊(cè)(初稿)
飛Q軟件開發(fā)小組 5. 軟件工程及其應(yīng)用 周蘇、王文等 天津科學(xué)技術(shù)出版社 6. 軟件工程
張海藩 清華大學(xué)出版社
7. Computer Network A.S.Tanenbaun Prentice Hall
8.網(wǎng)絡(luò)上的資料
文檔所采用的標(biāo)準(zhǔn)是參照《軟件工程導(dǎo)論》沈美明著 的“計(jì)算機(jī)軟件開發(fā)文檔編寫指南”。
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com 2.總體設(shè)計(jì): 2、1需求概要:
應(yīng)廣大用戶的要求,要求做一個(gè)性能更高更人性化的即使聊天工具,我飛Q軟件設(shè)計(jì)小組努力為大家寫一個(gè)更好的即時(shí)聊天工具。
飛Q2012聊天系統(tǒng)的總目標(biāo)是:在計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫(kù)和先進(jìn)的開發(fā)平臺(tái)上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個(gè)具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)交互界面的飛Q2012聊天系統(tǒng),實(shí)現(xiàn)添加好友,刪除好友,相互聊天系統(tǒng),為人們聊天提供準(zhǔn)確、精細(xì)、迅速的信息。
根據(jù)可行性研究的結(jié)果和客戶的要求,分析現(xiàn)有情況及問題,采用Client/Server結(jié)構(gòu),將飛Q2012聊天系統(tǒng)劃分為兩個(gè)子系統(tǒng):客戶端子系統(tǒng),服務(wù)器端子系統(tǒng)。
要求系統(tǒng)能有效、快速、安全、可靠和無誤的完成上述操作。并要求客戶機(jī)的界面要單明了,易于操作,服務(wù)器程序利于維護(hù)。2、2 軟件結(jié)構(gòu):
各模塊之間的關(guān)系已由概要設(shè)計(jì)給出
下面介紹詳細(xì)的設(shè)計(jì)
登陸模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
登錄找回密碼輸入錯(cuò)誤輸入飛Q帳號(hào)和密碼申請(qǐng)帳號(hào)輸入格式是否正確正確進(jìn)入找回密碼界面點(diǎn)擊登錄進(jìn)入申請(qǐng)界面密碼正確?密碼正確進(jìn)入飛Q聊天主界面密碼錯(cuò)誤登錄失敗結(jié)束 申請(qǐng)模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
開始輸入基本信息N點(diǎn)擊新用戶注冊(cè)信息是否完整Y顯示已申請(qǐng)的QQ帳號(hào),密碼點(diǎn)擊登錄QQ進(jìn)入QQ登陸界面結(jié)束
安全模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
開始點(diǎn)擊安全概述點(diǎn)擊修改密碼點(diǎn)擊常見欺騙點(diǎn)擊修改密保常見欺詐立即完成是否設(shè)置密保Y判斷安全狀況隱患危險(xiǎn)N密保是否正確Y提交輸入驗(yàn)證密保設(shè)置密保N密保問題是否正確提交Y提交N是否設(shè)置密保Y輸入原密保問題輸入密保問題N修改密碼修改密保輸入新密保提交良好結(jié)束
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
聊天模塊聊天窗口1聊天窗口2窗口1窗口2發(fā)送發(fā)送窗口2信息轉(zhuǎn)換站窗口1信息轉(zhuǎn)換站
服務(wù)器端:
1、申請(qǐng)模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)線程將可申請(qǐng)帳號(hào)預(yù)讀到內(nèi)存中等待用戶申請(qǐng)。。返回繼續(xù)監(jiān)聽客戶端返回申請(qǐng)到的QQ用戶請(qǐng)求啟動(dòng)線程調(diào)用子線程次數(shù)過多此ip是否申請(qǐng)次數(shù)過多取出一個(gè)可申請(qǐng)的qq返回申請(qǐng)到的QQ在數(shù)據(jù)庫(kù)中建立此人的基本信息檔案結(jié)束c
2、登錄模塊山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)線程將密碼預(yù)讀到內(nèi)存中等待用戶申請(qǐng)。。返回繼續(xù)監(jiān)聽該帳號(hào)另一客戶端客戶端返回申請(qǐng)到的QQ用戶請(qǐng)求啟動(dòng)線程調(diào)用子線程重復(fù)則發(fā)送終止命令判斷是否是重復(fù)登錄不重復(fù)密碼錯(cuò)誤判斷密碼是否正確給其他好友發(fā)送登錄信息、讀取系統(tǒng)消息讀取系統(tǒng)消息所以在線好友返回申請(qǐng)到的QQ返回用戶的好友列表讀取好友列表數(shù)據(jù)庫(kù)結(jié)束
3、添加好友模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)接收添加好友同意與否信息線程10
等待用戶。。返回繼續(xù)監(jiān)聽客戶端發(fā)送同意與否信息啟動(dòng)子線程調(diào)用子線程讀取同意與否信息不同意同意否?同意寫入數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)客戶端同意信息子線程結(jié)束 10 山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)接收添加好友請(qǐng)求線程11
等待用戶申請(qǐng)。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程不允許任何人加入判斷要添加的用戶的添加權(quán)限允許任何人加入數(shù)據(jù)庫(kù)需要驗(yàn)證結(jié)束 11 山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)接收添加好友驗(yàn)證線程12
等待用戶申請(qǐng)。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取驗(yàn)證信息判斷要添加的用戶是否在線發(fā)送同意與否不在線數(shù)據(jù)庫(kù)在線子線程結(jié)束要添加的用戶同意的同時(shí)數(shù)據(jù)庫(kù)相應(yīng)添加
4、刪除好友模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)刪除好友請(qǐng)求線程13
等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程刪除成功讀取要?jiǎng)h除的人在雙方數(shù)據(jù)庫(kù)中刪除對(duì)方數(shù)據(jù)庫(kù)發(fā)送刷新界面命令另一客戶端結(jié)束
5修改好友昵稱模塊山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)修改好友昵稱請(qǐng)求線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取要修改的人在數(shù)據(jù)庫(kù)中修改數(shù)據(jù)數(shù)據(jù)庫(kù)結(jié)束
6、查找用戶模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)查找用戶請(qǐng)求線程15
等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取要?jiǎng)h除的人判斷是精確查找還是按條件按條件精確構(gòu)造SQL語句構(gòu)造SQL語句返回結(jié)果列表數(shù)據(jù)庫(kù)構(gòu)造搜索結(jié)果列表返回結(jié)果結(jié)束
7、安全模塊
7.1、設(shè)置密保模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)監(jiān)聽用戶設(shè)置密保請(qǐng)求線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取此用戶的信息,及密保設(shè)置信息返回成功信息構(gòu)造SQL語句寫入數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)寫入數(shù)據(jù)庫(kù)完成后結(jié)束
7.2、判斷是否設(shè)置密保模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)監(jiān)聽用戶請(qǐng)求線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求沒有設(shè)置密保啟動(dòng)子線程調(diào)用子線程判斷是否設(shè)置密保讀取密保問題返回密保問題信息數(shù)據(jù)庫(kù)得到該用戶密保問題結(jié)束 山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com 7.3、判斷密保答案是否正確模塊
啟動(dòng)接收用戶密保答案線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程錯(cuò)誤調(diào)用子線程獲得密保答案讀取密保問題及答案數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)判斷密保答案是否正確返回正確信息子線程結(jié)束
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com 7.4、修改密保模塊
啟動(dòng)接收用戶密保答案線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程錯(cuò)誤調(diào)用子線程獲得密保答案讀取密保問題及答案數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)判斷密保答案是否正確返回正確信息子線程結(jié)束
7.5、修改密碼模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)接收用戶重設(shè)密碼線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求調(diào)用子線程啟動(dòng)子線程讀取密碼信息返回成功信息重設(shè)密碼在數(shù)據(jù)庫(kù)中重寫此用戶密碼數(shù)據(jù)庫(kù)子線程結(jié)束
7.6、找回密碼
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)監(jiān)聽用戶請(qǐng)求線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求沒有設(shè)置密保啟動(dòng)子線程調(diào)用子線程讀取密保問題判斷是否設(shè)置密保舊密碼不正確判斷舊密碼是否正確返回重設(shè)成功信息數(shù)據(jù)庫(kù)重設(shè)密碼寫入數(shù)據(jù)庫(kù)子線程結(jié)束
8、移動(dòng)好友模塊 山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)移動(dòng)好友昵稱請(qǐng)求線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取基本信息在數(shù)據(jù)庫(kù)中修改數(shù)據(jù)數(shù)據(jù)庫(kù)結(jié)束
9、組操作模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)組操作請(qǐng)求線程23
等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取基本信息判斷是對(duì)組的什么操作贈(zèng)加組刪除組修改組的名稱生成SQL語句在數(shù)據(jù)庫(kù)中修改數(shù)據(jù)數(shù)據(jù)庫(kù)結(jié)束
10、發(fā)送系統(tǒng)消息模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
開始服務(wù)器線程產(chǎn)生的不通的發(fā)送消息要求判斷是發(fā)哪種類型的系統(tǒng)消息用戶1用戶3用戶2用戶4給相應(yīng)的用戶發(fā)送相應(yīng)的系統(tǒng)消息。。結(jié)束
11、更新個(gè)人信息模塊
啟動(dòng)修改個(gè)人信息請(qǐng)求線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取信息生成SQL語句在數(shù)據(jù)庫(kù)中修改數(shù)據(jù)數(shù)據(jù)庫(kù)結(jié)束
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
12、請(qǐng)求ipPort 模塊
啟動(dòng)修改個(gè)人信息請(qǐng)求線程等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取信息讀取ip和port讀取另一用戶ip和portHashmap返回此人ip和chatport判斷ipport是否為空返回不在線信息結(jié)束、心跳模塊
13.1、用戶心跳接收處理模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)修改個(gè)人信息請(qǐng)求線程26
等待用戶請(qǐng)求。。返回繼續(xù)監(jiān)聽客戶端用戶請(qǐng)求啟動(dòng)子線程調(diào)用子線程讀取信息讀取ip和port讀取另一用戶ip和portHashmap返回此人ip和chatport判斷ipport是否為空返回不在線信息結(jié)束
13.2、服務(wù)器定時(shí)檢測(cè)超時(shí)模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)循環(huán)檢測(cè)用戶是否在線的線程得到hashmap中的一個(gè)用戶是否超時(shí)?是推拉檢測(cè)模塊否得到hashmap中的下一個(gè)用戶
13.3、服務(wù)器推拉檢測(cè)在線模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
啟動(dòng)循環(huán)檢測(cè)用戶是否在線的線程客戶端是否在線我在線向用戶詢問是否在限定時(shí)間得到用戶客戶端響應(yīng)是更新記錄接收用戶心跳時(shí)刻的hashmap否在數(shù)據(jù)庫(kù)中相應(yīng)修改從記錄接收用戶狀態(tài)的hashmap刪除此用戶從記錄接收用戶在線信息的hashmap刪除此用戶從記錄接收用戶心跳時(shí)刻的hashmap刪除此用戶數(shù)據(jù)庫(kù)此線程結(jié)束
14、添加可利用飛Q號(hào)
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
開始否讀取數(shù)據(jù)庫(kù)中可申請(qǐng)的帳號(hào)數(shù)Sleep 一小時(shí)判斷數(shù)量是否過少否是添加一些可利用的帳號(hào)添加到內(nèi)存中的可申請(qǐng)帳號(hào)arraylist中
3、程序描述:
客戶端總模塊:
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com 30
登陸模塊 登錄過程
對(duì)在飛Q登錄信息界面中輸入的各項(xiàng)信息進(jìn)行初步檢驗(yàn)。若發(fā)現(xiàn)錯(cuò)誤,輸入數(shù)據(jù)全部清空,以讓用戶重新輸入一次。若未發(fā)現(xiàn)錯(cuò)誤,轉(zhuǎn)入主界面。其中的錯(cuò)誤種類有:
輸入數(shù)據(jù)不匹配
帳號(hào) 數(shù)據(jù)庫(kù)沒有該帳號(hào)
密碼 與對(duì)應(yīng)賬號(hào)的密碼不匹配 2 輸入數(shù)據(jù)不能為空 if(賬號(hào)為空){ 請(qǐng)輸入賬號(hào)再登陸 } else if(賬號(hào)長(zhǎng)度小于6或?qū)τ?0){ 請(qǐng)輸入正確的賬號(hào),賬號(hào)可以位數(shù)字或Email地址。
} else if(密碼為空){ 請(qǐng)輸入密碼后再登陸 } else { 通知服務(wù)器 賬號(hào)為:xxx 密碼為:xxx的請(qǐng)求登陸 } 2申請(qǐng)過程
對(duì)之前沒有申請(qǐng)飛Q的用戶,不能登錄飛Q,而必須點(diǎn)擊申請(qǐng),成為飛Q大家庭點(diǎn)擊之后轉(zhuǎn)入申請(qǐng)界面
尋找忘記密碼過程
對(duì)之前申請(qǐng)飛Q的用戶,如果忘記密碼,請(qǐng)不要擔(dān)心,點(diǎn)擊界面上的“忘記密碼”,點(diǎn)擊之后轉(zhuǎn)入尋找密碼界面
1.的一員。
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
2申請(qǐng)模塊
對(duì)在飛Q申請(qǐng)信息界面中輸入的各項(xiàng)信息進(jìn)行賬號(hào)申請(qǐng)。若發(fā)現(xiàn)錯(cuò)誤,輸入數(shù)據(jù)全部清空,以讓用戶重新輸入一次。若未發(fā)現(xiàn)錯(cuò)誤,轉(zhuǎn)入賬號(hào)申請(qǐng)成功界面。
if(昵稱為空){ 請(qǐng)輸入昵稱 } else if(密碼格式錯(cuò)誤(小于6或大于20)){ 密碼必須6-20個(gè)字符!
密碼框清空,重新輸入 } else if(兩次密碼輸入不匹配){ 兩次密碼輸入不一致
密碼框清空,重新輸入 } else { 獲取注冊(cè)信息
點(diǎn)擊新用戶注冊(cè),向服務(wù)器傳輸注冊(cè)信息 }
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
3 增刪改查模塊
3.1 查找好友模塊
對(duì)在飛Q查找好友界面中選擇查找類型(精確查找或條件查找),輸入各項(xiàng)查找信息進(jìn)行好友查找。若發(fā)現(xiàn)錯(cuò)誤,輸入數(shù)據(jù)全部清空,以讓用戶重新輸入一次。若未發(fā)現(xiàn)錯(cuò)誤,轉(zhuǎn)入查找結(jié)果界面。在查找結(jié)果界面中選擇要添加的好友,雙擊,查看該好友的詳細(xì)資料,點(diǎn)擊添加,轉(zhuǎn)入好友信息驗(yàn)證界面。在好友信息界面,輸入驗(yàn)證信息,完成好友的添加。
Search類
if(查找聯(lián)系人){ if(精確查找){
if(查詢條件為空)
{
請(qǐng)至少填一個(gè)查詢條件
}
else { 獲取查找信息
點(diǎn)擊查找把查找信息傳遞給服務(wù)器 } }
else if(條件查找)
{ 獲取查找信息
點(diǎn)擊查找把查找信息傳遞給服務(wù)器
} Search_rasult類 if(點(diǎn)擊添加好友){ if(添加好友選擇的是自己)
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
{
對(duì)不起,自己不能加自己為好友!
重新選擇
} else { 把選擇的好友發(fā)送給服務(wù)器
} } else if(關(guān)閉){ 放棄添加為好友
} Addfriends類
if(確定添加為好友){ 把選擇的好友信息發(fā)送給服務(wù)器 } else if(取消){ 放棄添加為好友 } 3.2 刪除好友模塊
找到你要?jiǎng)h除的對(duì)象所在的用戶組,展開,找到該用戶,右擊,點(diǎn)擊好友刪除,然后刷新好友列表;
3.3.3 修改個(gè)人資料模塊
點(diǎn)擊自己頭像,轉(zhuǎn)入個(gè)人資料界面,更新你所需要的信息選項(xiàng);確定更新點(diǎn)擊確定,如果不想更新,點(diǎn)擊取消即可;
更改頭像:點(diǎn)擊更換頭像,即可轉(zhuǎn)入更換頭像界面,界面中陳列了各種頭像,點(diǎn)擊你想要的頭像,即可顯示該頭像的不同樣式,一供你參考。思考之后確實(shí)想更換,點(diǎn)擊確定,立刻刷新所有界面,確保頭像更換。如果不想更換,點(diǎn)擊取消即可。
3.4 好友移動(dòng)模塊
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
找到你要移動(dòng)的對(duì)象所在的用戶組,展開,找到該用戶,右擊,點(diǎn)擊移動(dòng),在彈出框中選擇移動(dòng)的組對(duì)象,向服務(wù)器發(fā)送相應(yīng)的數(shù)據(jù),然后刷新好友列表;
3.5 組操作模塊 <1> 修改
找到你要修改的用戶組,右擊點(diǎn)擊重命名,向服務(wù)器發(fā)送該賬號(hào)的修改組信息,刷新好友列表,即可看見修改成果.<2> 刪除
找到你要?jiǎng)h除用戶組,展開,右擊,點(diǎn)擊刪除分組,向服務(wù)器發(fā)送該賬號(hào)的刪除組信息,然后刷新好友列表;
如果,要?jiǎng)h除的是默認(rèn)分組“我的好友”,系統(tǒng)不提供刪除權(quán)限。<3> 添加
在好友列表中右擊,點(diǎn)擊添加分組,輸入分組名,點(diǎn)擊確定,向服務(wù)器發(fā)送該賬號(hào)的組信息,不想添加,點(diǎn)擊取消。安全模塊
對(duì)在飛Q安全界面中,分為“安全概述”,“常見欺詐”,“修改密碼”,“修改密?!保?<1> 安全概述
安全概述 概述了你當(dāng)前飛Q的安全狀況 if(設(shè)置密保并且密碼等級(jí)為良好以上){
安全狀況良好請(qǐng)繼續(xù)保持良好的習(xí)慣
可立即完成設(shè)置密碼 } else if(設(shè)置密保并且密碼等級(jí)為中等以下){ 安全狀況存在隱患請(qǐng)定期修改密碼
立即完成設(shè)置密碼 } else { 安全狀況危險(xiǎn)請(qǐng)立刻設(shè)置密保問題
立即完成設(shè)置密保 } <2> 常見欺詐
常見的集中欺詐方式:釣魚網(wǎng)址,視頻欺詐,中獎(jiǎng)欺詐,冒充好友欺詐;
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
<3> 修改密碼
修改密碼之前請(qǐng)確保設(shè)置密保;
如果沒有設(shè)置密保問題,請(qǐng)先設(shè)置密保問題,以確保該賬戶的安全性。如果設(shè)置了密保問題,請(qǐng)先輸入原密保問題,核對(duì)用戶身份。密保正確才可以修改,如果錯(cuò)誤,對(duì)不起,不能修改密碼。
if(三個(gè)密保問題有空){ 對(duì)不起,密保問題回答不能為空!
沒填寫的須不完整
} else { 向服務(wù)器獲取對(duì)應(yīng)密保問題的答案
If(回答錯(cuò)誤){ 提示:對(duì)不起,密保問題回答不能正確
全部清空,重新輸入 }
else { 修改密碼
輸入舊密碼
if(輸入的舊密碼正確){
if(新密碼為空)
{
提示:密碼不能為空
}
else if(兩次密碼輸入不一致)
{
提示:兩次密碼輸入不一致
}
else if(兩次密碼輸入一致并且不空){ 向服務(wù)器發(fā)送該賬號(hào)的新密碼
} }
else
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
{ 提示:密碼有誤,請(qǐng)重新輸入
} } } <4> 修改密保
如果沒有設(shè)置密保問題,設(shè)置密保問題。
如果設(shè)置了密保問題,請(qǐng)先輸入原密保問題,核對(duì)用戶身份。密保正確才可以修改,如果錯(cuò)誤,對(duì)不起,不能修改密保。
if(沒有設(shè)置密保){ 選擇密保問題回答
If(選擇的密保問題重復(fù)){ 提示:選擇的密保問題重復(fù)
重新選擇密保問題 }
Else if(修改密保時(shí)驗(yàn)證密保問題為空){ 提示:修改密保時(shí)驗(yàn)證密保問題為空 } Else { 服務(wù)器發(fā)送該賬號(hào)的新密保問題和新密保問題對(duì)應(yīng)的答案 }
} else { 已經(jīng)設(shè)置設(shè)置密保
向服務(wù)器獲取對(duì)應(yīng)密保問題的答案
輸入密保問題答案(用戶)If(回答錯(cuò)誤){ 提示:對(duì)不起,密保問題回答不能正確
全部清空,重新輸入 }
else { 修改密保
選擇密保問題回答
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
If(選擇的密保問題重復(fù)){ 提示:選擇的密保問題重復(fù)
重新選擇密保問題 }
Else if(修改密保時(shí)驗(yàn)證密保問題為空){ 提示:修改密保時(shí)驗(yàn)證密保問題為空 } Else { 服務(wù)器發(fā)送該賬號(hào)的新密保問題和新密保問題對(duì)應(yīng)的答案 } } } 聊天模塊
所有的聊天窗口的即時(shí)聊天信息 只要點(diǎn)擊發(fā)送,聊天信息會(huì)發(fā)送到服務(wù)器中信息中轉(zhuǎn)站中;在信息中轉(zhuǎn)站中判斷該發(fā)送的對(duì)象,再由服務(wù)器發(fā)送給對(duì)。
服務(wù)器模塊:
1、申請(qǐng)模塊
將用戶發(fā)送過來的申請(qǐng)信息寫入臨時(shí)變量對(duì)象中并存入數(shù)據(jù)庫(kù)中 在數(shù)據(jù)庫(kù)中建立如下信息
在main數(shù)據(jù)庫(kù)的各表中插入申請(qǐng)的號(hào)碼
在users 數(shù)據(jù)庫(kù)中建立該帳號(hào)的檔案,包括好友列表、添加好友驗(yàn)證表、歷史記錄表等等
2、登錄模塊
接收數(shù)據(jù)并存入loginpot中
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
判斷接收的密碼和服務(wù)器中的密碼是否相同,相同則返回登錄成功,并發(fā)送一系列信息(見下),不相同則返回登錄失敗,3、添加好友模塊
1、發(fā)送添加好友請(qǐng)求:
用戶發(fā)送添加好友請(qǐng)求包,服務(wù)器解析出要添加的好友,然后從數(shù)據(jù)庫(kù)中查找出該用戶的添加好友權(quán)限jugde 然后進(jìn)行一下判斷: switch(judge){ case 1://假如統(tǒng)一任何人加入
在雙方數(shù)據(jù)庫(kù)中分別添加對(duì)方,并且向被添加的的用戶發(fā)送的界面刷新命令
break;
case 2: 對(duì)方需要驗(yàn)證信息,通知客戶端
break;
case 0: 對(duì)方不允許任何人加入,通知客戶端
break;
}
2、發(fā)送驗(yàn)證信息:
用戶發(fā)送驗(yàn)證信息包,服務(wù)器解析出數(shù)據(jù),判斷要發(fā)送驗(yàn)證信息的用戶是否在線
If(在線){
在線的話,就把驗(yàn)證信息發(fā)送到該用戶客戶端上并顯示 } Else {
不在線的話,就把驗(yàn)證信息存入要發(fā)送的用戶的數(shù)據(jù)庫(kù)中,等到該用戶下次登錄時(shí)候并會(huì)提示該用戶有添加好友驗(yàn)證信息 }
3、發(fā)送同意以否信息
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
用戶發(fā)送同意與否信息包,服務(wù)器解析出數(shù)據(jù),判斷要發(fā)送同意與否信息的用戶是否在線,判斷同意與否信息是否
If(同意){
寫入數(shù)據(jù)庫(kù)相應(yīng) 的信息。} Else {
不對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。}
If(在線){
在線的話,就把同意與否信息發(fā)送到該用戶客戶端,同時(shí)把此人的基本信息發(fā)送到客戶端 } Else {
不在線的話,就把同意與否信息存入要發(fā)送的用戶的數(shù)據(jù)庫(kù)中,等到該用戶下次登錄時(shí)候并會(huì)提示該用戶有添加好友成功與否信息 }
4、刪除好友模塊
刪除好友模塊設(shè)計(jì)思路比較簡(jiǎn)單,如下
用戶發(fā)送刪除好友信息包,服務(wù)器解析出基本數(shù)據(jù),刪除發(fā)送請(qǐng)求用戶的數(shù)據(jù)庫(kù)中要?jiǎng)h除的好友的信息,同時(shí)在對(duì)方的數(shù)據(jù)庫(kù)中也相應(yīng)的刪除此人信息,并且將刪除成功與否信息發(fā)送回去,同時(shí)給要?jiǎng)h除的用戶發(fā)送刷新界面命令,當(dāng)然得先判斷該用戶是否在線
If(在線){
在線的話,給要?jiǎng)h除的用戶發(fā)送刷新界面命令,刪除點(diǎn)發(fā)送請(qǐng)求的用戶的信息 } Else {
不在線的話,不用再進(jìn)行任何操作 }
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
5修改好友昵稱模塊
同樣,修改好友昵稱模塊,也很簡(jiǎn)單明了,不需要進(jìn)行復(fù)雜的邏輯判斷,詳細(xì)過程如下:
用戶發(fā)送修改好友昵稱信息包,服務(wù)器解析成基本數(shù)據(jù),在數(shù)據(jù)庫(kù)中找到該好友的好友列表,修改該用戶要修改的好友的昵稱,然后子線程就可以終止了
6、查找用戶模塊
用戶發(fā)送修改好友昵稱信息包,服務(wù)器解析成基本數(shù)據(jù),首先判斷該用戶用的是什么搜索模式,If(搜索模式是精確查找模式){
根據(jù)內(nèi)容構(gòu)造出SQL語句,在數(shù)據(jù)庫(kù)中查找出相應(yīng)的用戶,構(gòu)造出列表發(fā)回客戶端 }
Else if(搜索模式是按條件查找模式){
根據(jù)內(nèi)容構(gòu)造出SQL語句,在數(shù)據(jù)庫(kù)中查找出相應(yīng)的用戶,構(gòu)造出列表發(fā)回客戶端 }
7.1、設(shè)置密保模塊
用戶發(fā)送修改好友昵稱信息包,服務(wù)器解析成基本數(shù)據(jù),在數(shù)據(jù)庫(kù)中找到該用戶的的信息,將密保問題和答案寫入該用戶的數(shù)據(jù)庫(kù)中,假如已有密保問題則轉(zhuǎn)到重設(shè)密保模塊
7.2、判斷是否設(shè)置密保模塊
用戶發(fā)送請(qǐng)求后,服務(wù)器解析出數(shù)據(jù),在數(shù)據(jù)庫(kù)中找到該好友,查看該好友是否設(shè)置密保,If(設(shè)置了密保){
返回密保問題
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
}
Else if(沒有設(shè)置密保){
發(fā)送回去沒有設(shè)置密保的標(biāo)識(shí) }
7.3、判斷密保答案是否正確模塊
用戶發(fā)送給服務(wù)器密保答案信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中查找該用戶的信息,得到密保問題和答案,進(jìn)行判斷三個(gè)問題是否全部回答對(duì)
If(三個(gè)密保問題全回答對(duì))
{
向該用戶客戶端發(fā)送驗(yàn)證成功的消息 }
Else(三個(gè)問題不全對(duì)或全不對(duì)){
向該用戶客戶端發(fā)送驗(yàn)證失敗信息 }
7.4、修改密保模塊
這里說明一下,修改密保的模塊是在驗(yàn)證密保答案正確的前提下才能進(jìn)入的,所以此模塊僅僅是覆蓋掉該用戶的,特此聲明,呵呵,聲明有點(diǎn)晚了。
沒有復(fù)雜邏輯判斷,思路如下:
用戶發(fā)送給服務(wù)器新密保信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中查找該用戶,在數(shù)據(jù)庫(kù)中重寫此人的密保問題和答案,然后子線程接收。
7.5、修改密碼模塊
聲明如7.4所示,不再重復(fù) 思路如下:
用戶發(fā)送給服務(wù)器新密碼信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中查找該用戶,在數(shù)據(jù)庫(kù)中重寫此人的密碼,同時(shí)將新設(shè)置的密碼加入內(nèi)存中用戶密碼hashmap中,然后子線程接收。
7.6、找回密碼
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
找回密碼其實(shí)和重設(shè)密保有什么相識(shí)的地方,都是先驗(yàn)證信息密保信息是否正確,然后根據(jù)正確與否做出相應(yīng)的處理
用戶發(fā)送請(qǐng)求后,服務(wù)器解析出數(shù)據(jù),在數(shù)據(jù)庫(kù)中找到該好友,查看該好友是否設(shè)置密保,If(設(shè)置了密保){
返回密保問題
。。
判斷接受的密保答案是否正確
If(三個(gè)問題都回答正確){
返回驗(yàn)證成功信息,通知客戶端轉(zhuǎn)入重設(shè)密碼模塊
} Else {
返回驗(yàn)證失敗信息
} }
Else if(沒有設(shè)置密保){
發(fā)送回去沒有設(shè)置密保的標(biāo)識(shí),通知該用戶由于沒有設(shè)置密碼,通過此方法不能找回密碼。
}
8、移動(dòng)好友模塊
移動(dòng)好友模塊設(shè)計(jì)思路比較簡(jiǎn)單,如下
用戶發(fā)送移動(dòng)好友信息包,服務(wù)器解析出基本數(shù)據(jù),在數(shù)據(jù)庫(kù)中查到該用戶的用戶列表信息,更新列表信息,在數(shù)據(jù)庫(kù)中做相應(yīng)的修改
9、組操作模塊
由于基本的幾個(gè)組操作有很多相似之處,所以將幾個(gè)組操作劃為一個(gè)模塊,設(shè)計(jì)思路如下:
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
用戶發(fā)送組操作 信息包,服務(wù)器解析出基本數(shù)據(jù)和命令,判斷要進(jìn)行的組操作是什么操作,然后進(jìn)行相應(yīng)的操作,具體設(shè)計(jì)思路如下:
If(組操作命令為增加組){ 在users數(shù)據(jù)庫(kù)中找到此用戶的groupsList表,在此表中添加相應(yīng)的組 } Else if(組操作為刪除組){
1、在users數(shù)據(jù)庫(kù)中找到此用戶的friendsList表,把相應(yīng)組的好友的組屬性改為 我的好友,即將要?jiǎng)h除組中的好友放到我的好友 中,而不是直接將他們刪除,2、在users數(shù)據(jù)庫(kù)中找到此用戶的groupsList表,在此表中刪 除相應(yīng)的組
} Else if(組操作為修改組的名稱){
1、在users數(shù)據(jù)庫(kù)中找到此用戶的friendsList表,把相應(yīng)組的 好友的組屬性改為 要修改的組名
2、在users數(shù)據(jù)庫(kù)中找到此用戶的groupsList表,在此表中刪 找到相應(yīng)的組,修改此組的名稱為要修改的名稱
}
10、發(fā)送系統(tǒng)消息模塊
發(fā)送系統(tǒng)消息模塊是由服務(wù)器直接調(diào)用的,來完成一些必須的用戶響應(yīng),此模塊發(fā)送消息的不同是由器構(gòu)造函數(shù)決定的,其構(gòu)造函數(shù)共有7種,如下:
//
public sendSystemMessageThread(String qq, int status)throws SQLException {
1、發(fā)送改變狀態(tài)
}
public sendSystemMessageThread(String text)throws SQLException { 43 山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
2、發(fā)送系統(tǒng)消息(全部人)
}
public sendSystemMessageThread(String qq, int sign, String ip_od, String t)throws SQLException {
3、發(fā)送上次登錄信息(登陸者)
}
public sendSystemMessageThread(String qq, String text)throws SQLException {
4、發(fā)送系統(tǒng)消息(對(duì)登錄者)
}
public sendSystemMessageThread(String qq, systemMessage sys)throws SQLException {
5、發(fā)送添加好友請(qǐng)求信息
}
public sendSystemMessageThread(int sign, String qq)throws SQLException {
6、當(dāng)在其他地方登錄時(shí)給另一個(gè)QQ發(fā)送下線通知
}
public sendSystemMessageThread(String qq, systemMessage sys, int agree){
7、給該用戶發(fā)送好友狀態(tài)改變
}
由服務(wù)器根據(jù)不同的需要構(gòu)造不同 的發(fā)送系統(tǒng)消息線程,實(shí)現(xiàn)相應(yīng)的響應(yīng)
11、更新個(gè)人信息模塊
用戶發(fā)送給服務(wù)器新個(gè)人信息信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中查找該用戶,在數(shù)據(jù)庫(kù)中重寫已經(jīng)更改了的此人的信息
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
12、請(qǐng)求ipPort 模塊
此模塊是服務(wù)器中唯一和聊天相關(guān)的監(jiān)聽線程,此種設(shè)計(jì)方法極大的降低了服務(wù)器的壓力,獲取ip 和聊天port 是聊天中很重要的一個(gè)環(huán)節(jié),設(shè)計(jì)思路如下:
用戶發(fā)送給服務(wù)器請(qǐng)求另一個(gè)人的port的信息包,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從內(nèi)存中查找另一個(gè)用戶的ip 和聊天 port,判斷是否得到此人信息
If(查詢到此人的在線信息){
給客戶端返回找到的在線信息 } Else {
給客戶端返回沒有找到此人信息,也就是此人不在線,客戶端
然后做出相應(yīng)地相應(yīng)
}
13、心跳模塊
心跳相互協(xié)作的工作組及即時(shí)聊天領(lǐng)域發(fā)揮著詳單重要的角色,通過發(fā)送心跳報(bào),來判斷各個(gè)部分工作是否正常,以防某個(gè)部分運(yùn)作異常發(fā)現(xiàn)不了,造成嚴(yán)重錯(cuò)誤。
心跳包就是在客戶端和服務(wù)器間定時(shí)通知對(duì)方自己狀態(tài)的一個(gè)自己定義的命令字,按照一定的時(shí)間間隔發(fā)送,類似于心跳,所以叫做心跳包。
用來判斷對(duì)方(設(shè)備,進(jìn)程或其它網(wǎng)元)是否正常運(yùn)行,采用定時(shí)發(fā)送簡(jiǎn)單的通訊包,如果在指定時(shí)間段內(nèi)未收到對(duì)方響應(yīng),則判斷對(duì)方已經(jīng)離線。用于檢測(cè)TCP的異常斷開?;驹蚴欠?wù)器端不能有效的判斷客戶端是否在線,也就是說,服務(wù)器無法區(qū)分客戶端是長(zhǎng)時(shí)間在空閑,還是已經(jīng)掉線的情況。所謂的心跳包就是客戶端定時(shí)發(fā)送簡(jiǎn)單的信息給服務(wù)器端告訴它我還在而已。代碼就是每隔幾分鐘發(fā)送一個(gè)固定信息給服務(wù)端,服務(wù)端收到后回復(fù)一個(gè)固定信息如果服務(wù)端幾分鐘內(nèi)沒有收到客戶端信息則視客戶端斷開。
比如有些通信軟件長(zhǎng)時(shí)間不使用,要想知道它的狀態(tài)是在線還是離線就需要心跳包,定時(shí)發(fā)包收包。發(fā)包方:可以是客戶也可以是服務(wù)端,看哪邊實(shí)現(xiàn)方便合理,一般是客戶端。服務(wù)器也可以定時(shí)發(fā)心跳下去。一般來說,出于效率的考慮,是由客戶端主動(dòng)向服務(wù)器端發(fā)包,而不是服務(wù)器向客戶端發(fā)??蛻舳嗣扛粢欢螘r(shí)間發(fā)一個(gè)包,使用TCP的,用send發(fā),使用UDP的,用sendto發(fā),服務(wù)器收到后,就知道當(dāng)前客戶端還處于“活著”的狀態(tài),否則,如果隔一定時(shí)間未收到這樣的包,則服務(wù)器認(rèn)為客戶端已經(jīng)斷開,進(jìn)行相應(yīng)的客戶端斷開邏輯處理。
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
13.1、用戶心跳接收處理模塊
客戶端發(fā)送心跳包,服務(wù)器心跳接收模塊解析出此用戶的狀態(tài),判斷此人的狀態(tài)與上一次心跳的狀態(tài)是否相同
If(狀態(tài)相同){ 將系統(tǒng)此時(shí)的時(shí)間寫入內(nèi)存中此用戶的hashmap節(jié)點(diǎn) } Else if(狀態(tài)不同){
將系統(tǒng)此時(shí)的時(shí)間寫入內(nèi)存中此用戶的hashmap節(jié)點(diǎn)
If(是下線信息){
刪除此人的在線信息
} 給其好友發(fā)送狀態(tài)改變信息
}
13.2、服務(wù)器定時(shí)檢測(cè)超時(shí)模塊
此模塊用于定時(shí)檢測(cè)用戶心跳超時(shí)與否,設(shè)計(jì)詳細(xì)如下:
While(true){ 從內(nèi)存中的hashmap 中的第一個(gè)用戶到最后一個(gè)用戶,進(jìn)行如下操作:
If(此用戶心跳超時(shí)){
超時(shí)意味著此用戶極有可能已經(jīng)掉線了,但是不確定,所以此時(shí)要調(diào)用推拉檢測(cè)用戶在線模塊,來確認(rèn)此人到底在不在線
} Else {
不執(zhí)行操作
} 休眠5秒后,繼續(xù) }
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
13.3、服務(wù)器推拉檢測(cè)在線模塊
此模塊是服務(wù)器中很特殊的模塊,是主動(dòng)聯(lián)系客戶端 的模塊,在次模塊中,服務(wù)器會(huì)主動(dòng)詢問客戶端是否在線,形象的描述如下:
服務(wù)器問:******你在線嗎? 客戶端答:我在線?;蛘呖蛻舳藳]反應(yīng)
這里就要判斷在規(guī)定的時(shí)間內(nèi)客戶端是否返回響應(yīng) If(在規(guī)定的時(shí)間能收到相應(yīng)){ 證明此用戶是活著的,將系統(tǒng)此時(shí)的時(shí)間寫入內(nèi)存中此用戶的 hashmap節(jié)點(diǎn)
} Else { 此用戶已經(jīng)意外掉線,所以應(yīng)刪除此人的所有在線信息 }
14、添加可利用飛Q號(hào)
添加可利用的帳號(hào)就是,假如可申請(qǐng)的號(hào)碼低于規(guī)定的個(gè)數(shù)時(shí),服務(wù)器添加帳號(hào)現(xiàn)在立即自動(dòng)添加適當(dāng)?shù)膸ぬ?hào),保持適當(dāng)數(shù)量的可利用的帳號(hào),描述如下
While(ture){
If(數(shù)據(jù)庫(kù)中的可申請(qǐng)的帳號(hào)數(shù)量小于某個(gè)值){
向數(shù)據(jù)庫(kù)中添加適當(dāng)數(shù)量的帳號(hào),同時(shí)向內(nèi)存中的可申請(qǐng)帳號(hào)
hashmap表中添加這些帳號(hào)
} Else {
不執(zhí)行操作
} 線程休眠1小時(shí)
}
山東科技大學(xué) 王昌帥 wangchangshuai0010.iteye.com
第二篇:軟件工程課程設(shè)計(jì)報(bào)告 之 總結(jié)性報(bào)告
總結(jié)性報(bào)告
1. 時(shí)間
飛Q2012項(xiàng)目從擬定好課題起,經(jīng)過問題定義,可行性研究,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),主要編程,分布測(cè)試,總體測(cè)試,到整體裝配完成歷時(shí)一個(gè)半月。
2. 人員
主程序員(組長(zhǎng)):王昌帥
輔程序員:司吉峰、王璐、紀(jì)曉文、王松松
文檔管理員:王璐、紀(jì)曉文
3. 遇到的困難
服務(wù)器方面:最開始我們選用的登錄模式是利用sqlsever從硬盤上的數(shù)據(jù)庫(kù)中讀取賬號(hào)密碼進(jìn)行匹配登錄,但這種讀取機(jī)制降低了登錄速度,經(jīng)過修改,改用了將好友賬號(hào)密碼預(yù)讀入內(nèi)存中,直接在內(nèi)存中進(jìn)行讀取,大幅度節(jié)省了登錄時(shí)間。
客戶端方面:區(qū)別于類似的大多數(shù)即時(shí)聊天工具的消息傳送機(jī)制(即向服務(wù)器發(fā)送消息經(jīng)服務(wù)器轉(zhuǎn)發(fā)),我們利用了典型的p2p(點(diǎn)對(duì)點(diǎn))機(jī)制,當(dāng)好友聊天時(shí),服務(wù)器避免了接收和轉(zhuǎn)發(fā)消息的負(fù)荷,減少了線程數(shù)量,既減輕了服務(wù)器壓力同時(shí)又提高了好友間消息傳送的速度和質(zhì)量。
4. 系統(tǒng)性總結(jié)
本系統(tǒng)具有以下特點(diǎn):
?采用 C/S通信模型設(shè)計(jì),有效減輕了服務(wù)器的負(fù)擔(dān),便于后臺(tái)的管理。將任務(wù)合理分配到 Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。
?采用了Java語言,因?yàn)橛肑ava設(shè)計(jì)的系統(tǒng)是跨平臺(tái)的,在任何操作系統(tǒng)上,只要安裝了Java虛擬機(jī),就可以運(yùn)行本系統(tǒng),不用受平臺(tái)的限制。
? 在客戶端都和服務(wù)器端都實(shí)現(xiàn)了多線程編程技術(shù),以提高系統(tǒng)的效率。使用線程可以把占據(jù)長(zhǎng)時(shí)間的程序中的任務(wù)放到后臺(tái)去處理。
本系統(tǒng)這實(shí)現(xiàn)了網(wǎng)絡(luò)聊天工具所具備的基本功能,即注冊(cè)、登錄、查找好友,添加好友、更改個(gè)人資料、查看好友資料、添加刪除分組、各分組之間轉(zhuǎn)移好友、發(fā)送消息、接收消息、接收系統(tǒng)消息等,還添加了一些特色功能,如隱身,頭像的變化,系統(tǒng)管理員可以向每個(gè)客戶端發(fā)送系統(tǒng)消息,上線下線在好友客戶端都有提示,密碼丟失可以通過密碼找回功能通過設(shè)置的密保問題找回密碼,并可以判斷密碼的安全等級(jí)等。本系統(tǒng)實(shí)現(xiàn)了一個(gè)與Tencent QQ相似的友好操作界面,簡(jiǎn)單,易用,適合用戶的操作習(xí)慣。
該系統(tǒng)具備了網(wǎng)絡(luò)聊天工具所具備的基本功能,但還有一些功能還沒完善,如用戶聊天之間的方式僅限于文本通信,還沒實(shí)現(xiàn)文本傳輸功能。還沒實(shí)現(xiàn)修改用戶資料的功能等。系統(tǒng)或許存在一些未知的Bug,還需要進(jìn)一步的改進(jìn)和測(cè)試。在以后的研究中,我們還會(huì)研究安全通信協(xié)議,保障通信的安全,提高系統(tǒng)的實(shí)用性等
本課題需要繼續(xù)完善的功能有:
?
?
?
?設(shè)計(jì)測(cè)試用例,全面、系統(tǒng)地測(cè)試該系統(tǒng)所存在的一些缺陷;
? 擴(kuò)展即時(shí)消息系統(tǒng)的服務(wù)范圍,增強(qiáng)系統(tǒng)工作的穩(wěn)定性和健壯性。
5. 收獲與經(jīng)驗(yàn)
本次課程設(shè)計(jì)是自大一以來工作量最大的同時(shí)也是歷時(shí)最長(zhǎng)的一次大作業(yè)任務(wù)。與之前大作業(yè)不同的在于,這次課程設(shè)計(jì)所設(shè)計(jì)的項(xiàng)目課題,所用的編程語言,用到的知識(shí)都是以前沒有接觸過的,完全通過自學(xué)掌握。所以工作進(jìn)度最初進(jìn)展很慢,不過通過對(duì)新知識(shí)的學(xué)習(xí),和項(xiàng)目實(shí)踐的鍛煉,深入學(xué)習(xí)java可視化編程,完善操作界面,使其更加適合用戶的操作習(xí)慣; 設(shè)計(jì)安全通信機(jī)制,保障通信的安全; 加入文件傳輸功能,豐富用戶的信息交流方式;
掌握專業(yè)知識(shí)的同時(shí),更重要的是項(xiàng)目經(jīng)驗(yàn),以及實(shí)踐中處理各種問題能力的培養(yǎng)。
通過本次項(xiàng)目的復(fù)習(xí),我們了解了一個(gè)完整的軟件開發(fā)過程,包括課題定義、可行性研究,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),測(cè)試工作,進(jìn)一步完善,設(shè)計(jì)使用說明書,總結(jié)提交實(shí)驗(yàn)報(bào)告。以及其中不同人員和不同的工作,主程序員是一個(gè)項(xiàng)目團(tuán)隊(duì)的核心,指導(dǎo)整個(gè)項(xiàng)目組各個(gè)成員的工作,規(guī)劃整個(gè)項(xiàng)目的結(jié)構(gòu),統(tǒng)一各個(gè)部分函數(shù)接口,承擔(dān)著編程過程中最核心的任務(wù),以其為核心各個(gè)部分才可以慢慢擴(kuò)展開來。輔助程序員主要負(fù)責(zé)各個(gè)獨(dú)立部分的編程設(shè)計(jì),對(duì)輔助程序員來說,獨(dú)立性較主程序員的任務(wù)更大一些,但是,卻要求輔助程序員對(duì)自己承擔(dān)的任務(wù)有必須清晰的了解,因?yàn)榈胶笃诟鱾€(gè)部分連接的時(shí)候肯定會(huì)出現(xiàn)一些問題,修改這些錯(cuò)誤要求必須對(duì)不同部分有很詳細(xì)的了解。文檔管理員承擔(dān)著大部分文檔編輯工作,但對(duì)具體的程序代碼也要有一定的了解。
本次課程設(shè)計(jì)最重要的是讓我們收獲了一些寶貴的項(xiàng)目開發(fā)經(jīng)驗(yàn):項(xiàng)目最開始的全局規(guī)劃,接口統(tǒng)一工作很重要以及數(shù)據(jù)結(jié)構(gòu)的選擇因?yàn)檫@涉及到以后各部分連接時(shí)的統(tǒng)一問題,一旦剛開始沒有統(tǒng)一好,連接時(shí)會(huì)有很多問題,導(dǎo)致各部分不能很好的連接,很多功能或?qū)傩詻]有很好的利用。另外,項(xiàng)目后期的bug修改也很重要,因?yàn)橛刹煌绦騿T編寫程序在正確性、高效性,和格式上都有很大的不同,自然會(huì)在連接時(shí)產(chǎn)生一些問題,更改這些問題時(shí)便不再是某個(gè)部分的問題,而是全局的問題,需要各個(gè)程序員協(xié)調(diào)完成修改工作,而且我們也了解到,工程項(xiàng)目越大,后期產(chǎn)生的bug也會(huì)越多,起初我們忽視了后期bug修改的工作量,導(dǎo)致在完成時(shí)間上一拖再拖。
總而言之,盡管本次課程設(shè)計(jì)使我們糾結(jié)了很長(zhǎng)的時(shí)間,遇到了很多困難,但我們真心的為我們所獲得工作經(jīng)驗(yàn)和成果而高興,截止到完成文檔時(shí),我們的飛QQ2012已經(jīng)實(shí)現(xiàn)了局域網(wǎng)內(nèi)以及校園內(nèi)網(wǎng)各個(gè)客戶端的即時(shí)聊天,并且速度和質(zhì)量得到了各用戶的好評(píng),我們還將繼續(xù)完善飛Q2012,讓更多人知道了解它,繼續(xù)學(xué)習(xí)繼續(xù)努力。
第三篇:軟件工程課程設(shè)計(jì)報(bào)告(個(gè)人)2010
軟件工程課程設(shè)計(jì)報(bào)告(個(gè)人)
課程設(shè)計(jì)題目:研究生教務(wù)管理系統(tǒng)
專業(yè):信息與計(jì)算科學(xué)班級(jí):
報(bào)告人姓名:學(xué)號(hào)課程教師:實(shí)驗(yàn)指導(dǎo)教師:
實(shí)驗(yàn)地點(diǎn):
完成起止日期:
[正文]
一、課程設(shè)計(jì)概述(目的、任務(wù)、參考資料)
1.項(xiàng)目的目的根據(jù)研究生管理部門的要求,面向針對(duì)研究生和導(dǎo)師這一特殊的群體,針對(duì)教務(wù)信息數(shù)據(jù)混亂的情況,利用電腦信息化的優(yōu)勢(shì),為理學(xué)院研究生系統(tǒng)建立研究生教務(wù)管理系統(tǒng),使研究生管理中的各項(xiàng)實(shí)際業(yè)務(wù)工作切實(shí)的映射在系統(tǒng)內(nèi)部,為學(xué)院提供一個(gè)方便的、快捷的、一體化的集成信息化環(huán)境。
2.項(xiàng)目的任務(wù)
根據(jù)研究生教務(wù)管理中的具體需求,該項(xiàng)目的任務(wù)可分為7個(gè)模塊進(jìn)行
設(shè)計(jì)劃分,每個(gè)模塊都要完成具體的任務(wù)
? 任務(wù)一:基礎(chǔ)平臺(tái)
任務(wù):建立導(dǎo)航登陸界面,使用戶能用密碼登陸頁(yè)面,了解信息,下載表格文件,獲得具體操作權(quán)限。
? 任務(wù)二:學(xué)籍管理
任務(wù):研究生登路后,可進(jìn)行基本信息查詢、成績(jī)查詢、修改密碼的功能操作;管理員則可進(jìn)行修改用戶信息、創(chuàng)建賬戶、數(shù)據(jù)上傳或下載的操作
? 任務(wù)三:智能排課:
任務(wù):包括完成自動(dòng)排課、手動(dòng)調(diào)整、選課管理、課表查詢及打印等更能
? 任務(wù)四:導(dǎo)師管理
任務(wù):建業(yè)數(shù)據(jù)庫(kù),使研究生和導(dǎo)師、管理員可以查詢導(dǎo)師的基本信息,并且管理員可以對(duì)數(shù)據(jù)等做出修改和調(diào)整。
? 任務(wù)五:教學(xué)教務(wù)管理
任務(wù):該部分主要針對(duì)管理員展開建設(shè)。管理員的職責(zé)是以管理、統(tǒng)計(jì)、修改數(shù)據(jù)信息為主。建議以基本信息維護(hù)、入學(xué)、畢業(yè)信息管理、任課安排和考試安排為主要功能的模塊。
? 任務(wù)六:科研管理
任務(wù):主要完成的任務(wù)是,研究生能夠順利提交科研項(xiàng)目,管理員能無誤的將項(xiàng)目掛在網(wǎng)頁(yè)上
? 任務(wù)七:評(píng)優(yōu)管理
任務(wù):管理員能將通過審核的名單公示在網(wǎng)頁(yè)上。
3.項(xiàng)目的參考資料
[1] 《LoadRunner使用手冊(cè)》
北京長(zhǎng)江軟件有限公司編制
[2] 《軟件測(cè)試:第二版》
Paul C.Jorgensen著/機(jī)械工業(yè)出版社
[3]《ASP.NET網(wǎng)站開發(fā)》(丁昊凱、許靜雯、謝黎文編著 出版社:電子工業(yè)出版社)
[4]《數(shù)據(jù)庫(kù)系統(tǒng)概論(第四版)》(作者:薩師煊王珊出版社:高等教育出版社)
[5]《軟件工程導(dǎo)論(第五版)》(作者:張海藩出版社:清華大學(xué)出版社)
二、采用的主要技術(shù)與方法
1.項(xiàng)目采用的主要技術(shù):
? 技術(shù)路線:
基于微軟ASP.NET框架及應(yīng)用環(huán)境,遵循Web Service和XML技術(shù)、B/S模式,采用三層結(jié)構(gòu)開發(fā)
? 系統(tǒng)平臺(tái):
Windows 2003 Server SP1(以上包括SP1)
MS Sql Server 2005
IIS 6.0及以上
? 開發(fā)工具:
Microsoft Visual Studio.NET 2005
PhotoShop 7.0
CorelDraw 12
Dream Weaver 8.0
? 開發(fā)語言
C# 2.0
ASP.NET 2.0(3.0)
XML/XSL
JavaScript
? 測(cè)試軟件
LoadRunner
三、實(shí)現(xiàn)步驟與在實(shí)現(xiàn)項(xiàng)目中我獲得的主要成果
1.項(xiàng)目的實(shí)現(xiàn)步驟
1)首先,小組成員根據(jù)研究生管理部門提供的資料,針對(duì)研究生的具
體要求,討論研究后編寫需求分析文檔,將項(xiàng)目軟件分為7個(gè)模塊,并完成初步的界面設(shè)計(jì);
2)之后,在需求文檔的基礎(chǔ)上,針對(duì)研究生、導(dǎo)師以及管理員的不同
需求,根據(jù)模塊進(jìn)行設(shè)計(jì)文檔的編寫,并著手進(jìn)行軟件的設(shè)計(jì)以及
完善界面設(shè)計(jì)。
3)在完善需求文檔和設(shè)計(jì)文檔之后,小組成員制作PPT,并通過審核。
4)在完成項(xiàng)目前期工作之后,小組中的軟件編寫成員依據(jù)軟件工程的原則開始進(jìn)行具體的軟件編程,另外的部分成員則進(jìn)行測(cè)試計(jì)劃文
檔及測(cè)試設(shè)計(jì)文檔的編寫。并在之后的幾天中對(duì)其進(jìn)行整理修改以
完善文檔。
5)在軟件基本完成之后,小組成員分工進(jìn)行軟件的測(cè)試,完成測(cè)試結(jié)
果。針對(duì)測(cè)試中發(fā)現(xiàn)的問題,討論并對(duì)軟件進(jìn)行修改。
6)最后,對(duì)項(xiàng)目進(jìn)行總結(jié),編寫總結(jié)報(bào)告。
2.我獲得的主要成果:
由于我在軟件編程方面比較薄弱,在完成項(xiàng)目的過程中,我主要負(fù)責(zé)的是文檔的編寫以及項(xiàng)目的測(cè)試方面的工作。包括如下部分:
? 研究生教務(wù)管理系統(tǒng)需求分析書中,第四部分需求規(guī)格以及第五部分項(xiàng)
目具體的功能規(guī)格;
? 研究生教務(wù)管理系統(tǒng)軟件設(shè)計(jì)文檔的大體框架以及其中的第一部分引言
以及第二部分系統(tǒng)設(shè)計(jì)概述;
? 研究生教務(wù)管理系統(tǒng)客戶端測(cè)試計(jì)劃(全部);
? 研究生教務(wù)管理系統(tǒng)客戶端測(cè)試設(shè)計(jì)的大體框架以及第一部分引言、第二部分測(cè)試設(shè)計(jì);
? 研究生教務(wù)管理系統(tǒng)用戶使用手冊(cè)(除第三部分運(yùn)行環(huán)境)
四、個(gè)人小結(jié)
主要困難:
? 在項(xiàng)目進(jìn)行的初期,雖然我們對(duì)用戶的需求有大致的了解,并有參照模版,但由于本科生教務(wù)管理系統(tǒng)和研究生教務(wù)管理系統(tǒng)的具體項(xiàng)目上有著某些差異,這要求我們要注重了解其中的區(qū)別,并對(duì)模版進(jìn)行分析及修改。在對(duì)需求文檔進(jìn)行編寫時(shí),文字表述不足的弱點(diǎn)很輕易的就顯示出來,這要求我們對(duì)網(wǎng)絡(luò)教學(xué)上給出的資料及范例進(jìn)行詳細(xì)的閱讀,才能寫好需求文檔;在接下來的文檔編寫時(shí)也有同樣的問題。
? 在項(xiàng)目進(jìn)行的中期,即軟件的設(shè)計(jì)階段。在了解具體需求之后,編寫設(shè)計(jì)
文檔困難不大,但是由于編程能力的強(qiáng)弱問題,小組成員不可能完全都進(jìn)行編程,雖然這是小組分工后可以解決蓋的問題,但是由于軟件編程能力的缺乏,會(huì)造成在小組討論和文檔書寫上出現(xiàn)代溝,所以個(gè)人認(rèn)為,小組成員擁有對(duì)程序編成有一定的了解是有必要的。
? 在項(xiàng)目的測(cè)試后面階段,即軟件的測(cè)試階段。初次接觸具體測(cè)試的我們,對(duì)新的軟件不了解,導(dǎo)致產(chǎn)生一定的困難,這要求我們對(duì)LoadRunner軟件自主的進(jìn)行學(xué)習(xí)并掌握如何運(yùn)用該軟件進(jìn)行項(xiàng)目的測(cè)試。
五、附錄(個(gè)人完成的文檔)
第四篇:《軟件工程》課程設(shè)計(jì)個(gè)人報(bào)告
軟件工程課程設(shè)計(jì)報(bào)告
海天一色網(wǎng)上書店
《軟件工程》課程設(shè)計(jì)個(gè)人報(bào)告
題 目 網(wǎng)上書店
學(xué) 院 名
稱 :信息科學(xué)與工程學(xué)院 專 業(yè) 班
級(jí) :計(jì)算機(jī)09-2 班
報(bào) 告 人姓名 :
梁宏
報(bào) 告 人學(xué)號(hào) : 200901051413
承 擔(dān) 角
色 : 網(wǎng)頁(yè)設(shè)計(jì)員
同 組 組
長(zhǎng) :
安文龍
同組其他成員 : 李金閃、呂穎、孫娜
指 導(dǎo) 教 師 : 孫紅梅
完成起止日期:2011-10-17至2011-12-20 軟件工程課程設(shè)計(jì)報(bào)告
海天一色網(wǎng)上書店
一、課程設(shè)計(jì)實(shí)驗(yàn)概述
1.目的與任務(wù)
1)通過本課程設(shè)計(jì)的實(shí)踐及其前后的準(zhǔn)備與總結(jié),復(fù)習(xí)、領(lǐng)會(huì)、鞏固和運(yùn)用軟件工程課堂上所學(xué)的軟件開發(fā)方法和知識(shí),為適應(yīng)畢業(yè)后團(tuán)隊(duì)合作開發(fā)規(guī)模稍大項(xiàng)目和綜合應(yīng)用本專業(yè)所學(xué)習(xí)的多門課程知識(shí)創(chuàng)造實(shí)踐機(jī)會(huì),為學(xué)生提供主動(dòng)學(xué)習(xí)、積極探索與大膽創(chuàng)新的機(jī)會(huì)。
2)學(xué)習(xí)研究課程設(shè)計(jì)指導(dǎo)書,進(jìn)行分組并且明確每個(gè)人在開發(fā)小組中扮演的角色及承擔(dān)的職責(zé),確定目標(biāo)、初步方案,準(zhǔn)備、試用開發(fā)環(huán)境與工具,以及學(xué)習(xí)與搜集素材,借閱、購(gòu)置必要的書籍與材料,做好小組與個(gè)人的開發(fā)記錄、總結(jié),做好小組內(nèi)外的交流與互助。
2.開發(fā)環(huán)境
本項(xiàng)目采用客戶機(jī)/服務(wù)器原理,客戶端和用戶端的程序是建立在Windows XP/Win7 系統(tǒng)上。
3.參考資料
1)《軟件工程》錢樂秋、趙文耕、齊治昌 等清華大學(xué)出版社鄭人杰等 2)覃劍鋒 張鋼編著,ASP網(wǎng)站建設(shè)專家,機(jī)械工業(yè)出版社,2001 3)武延軍 趙彬編著,精通ASP網(wǎng)絡(luò)編程,人民郵電出版社,2000 4)李赫雄等,SQL SERVER 2000應(yīng)用程序開發(fā),郵電出版社,2001 5)劉育楠著,動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn)教程,清華大學(xué)出版社,2001 4.任務(wù)完成的一般過程
學(xué)習(xí)課程設(shè)計(jì)指導(dǎo)書—>分組并明確角色—>對(duì)項(xiàng)目進(jìn)行分析確定目標(biāo)、初步確定方案,選擇開發(fā)環(huán)境及工具—>進(jìn)行課程設(shè)計(jì)—>進(jìn)行總結(jié)
5.軟件配置
以Microsoft Visual Studio 2008為開發(fā)軟件的應(yīng)用程序,是采用SQL Server Management Studio Express的為開發(fā)軟件的數(shù)據(jù)庫(kù)服務(wù)程序。
6.個(gè)人完成的程序模塊和文檔清單 參與各個(gè)文檔的討論及修改母版、首頁(yè)的設(shè)計(jì),網(wǎng)頁(yè)整體設(shè)計(jì),角色劃分及 軟件工程課程設(shè)計(jì)報(bào)告
海天一色網(wǎng)上書店 權(quán)限的設(shè)計(jì),參與小組課程設(shè)計(jì)報(bào)告的完成。
二、本小組個(gè)人承擔(dān)部分的主題、構(gòu)思與創(chuàng)意 1.小組選題特色:
小組內(nèi)承擔(dān)著網(wǎng)頁(yè)設(shè)計(jì)員的職責(zé)。首先我們網(wǎng)站主要提供的基本服務(wù)項(xiàng)目有:用戶的注冊(cè),登錄;用戶的分級(jí)瀏覽或圖書選購(gòu);店主對(duì)進(jìn)書、售書、庫(kù)存、帳目、客戶的管理;以及網(wǎng)站的日常維護(hù)(比如,網(wǎng)上書店簡(jiǎn)介;網(wǎng)上書店信息發(fā)布;客戶留言及對(duì)客戶留言的反饋)。這些都是需要大量網(wǎng)頁(yè)來呈現(xiàn)的,網(wǎng)站的前臺(tái)就是我們程序的臉面,因?yàn)樗俏覀兂绦蛭ㄒ荒芘c執(zhí)行者關(guān)聯(lián)的模塊,所以我認(rèn)為網(wǎng)站的設(shè)計(jì)員同樣也是一個(gè)軟件開發(fā)團(tuán)隊(duì)里不可缺少的一部分。
經(jīng)過我們小組討論,網(wǎng)頁(yè)首先用的動(dòng)態(tài)的,所以這就要求我作為網(wǎng)站設(shè)計(jì)員必須熟練的運(yùn)用ASP和C#的一部分內(nèi)容,盡我最大的能力把網(wǎng)也弄的符合人們現(xiàn)在的觀賞能力,讓我們的用戶能喜歡而不是討厭我們的網(wǎng)站,讓用戶能在使用我們網(wǎng)站的時(shí)候有個(gè)愉快的購(gòu)物體驗(yàn),讓他們能記住我們的網(wǎng)站。
2. 個(gè)人貢獻(xiàn):
本人承擔(dān)的角色是網(wǎng)頁(yè)設(shè)計(jì)員,參與各個(gè)文檔的討論及修改母版、首頁(yè)的設(shè)計(jì),網(wǎng)頁(yè)整體設(shè)計(jì),角色劃分及權(quán)限的設(shè)計(jì),參與小組課程設(shè)計(jì)報(bào)告的完成。軟件工程課程設(shè)計(jì)報(bào)告
海天一色網(wǎng)上書店
三、本人實(shí)現(xiàn)項(xiàng)目的過程與步驟以及遇到的困難
1、因?yàn)橐郧皼]有做過這個(gè)大規(guī)模的程序,也沒有動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)的經(jīng)驗(yàn),好在以前自己為了滿足自己的好奇心做過靜態(tài)的網(wǎng)頁(yè),對(duì)html網(wǎng)頁(yè)語言和Dreamweaver,photoshop軟件的使用都有一定的了解,但是這些知識(shí)的積累還不足以滿足我們這次項(xiàng)目的要求,所以我是邊學(xué)習(xí)邊應(yīng)用。
首先在網(wǎng)上了解了網(wǎng)頁(yè)設(shè)計(jì)的基本步驟:
一、用“原型法”細(xì)化網(wǎng)站設(shè)計(jì)需求
二、網(wǎng)頁(yè)鏈接的深度、廣度和耦合程度
三、網(wǎng)頁(yè)基本布局
四、網(wǎng)頁(yè)空間中的視覺導(dǎo)向
五、網(wǎng)頁(yè)空間的秩序及運(yùn)動(dòng)趨勢(shì)
六、網(wǎng)頁(yè)中的留白
七、文字信息的設(shè)計(jì)和編排
八、圖片和動(dòng)畫
九、網(wǎng)頁(yè)空間中的運(yùn)動(dòng)趨勢(shì)線
十、使用Web標(biāo)準(zhǔn)設(shè)計(jì)網(wǎng)頁(yè)
因?yàn)槲业闹饕巧蔷W(wǎng)頁(yè)設(shè)計(jì),所以要把我的網(wǎng)頁(yè)框架思路介紹給同組中負(fù)責(zé)編碼的成員,因此,為了實(shí)現(xiàn)網(wǎng)頁(yè)設(shè)計(jì),我還參與了網(wǎng)頁(yè)模板的設(shè)計(jì)。
母版的設(shè)計(jì)要綜合考慮各方面的因素,不能過于簡(jiǎn)單,因?yàn)檫^于簡(jiǎn)單不能體現(xiàn)母版的使用價(jià)值,也不能過于復(fù)雜,因?yàn)檫^于復(fù)雜會(huì)影響其他頁(yè)板頁(yè)的設(shè)計(jì),使其影響面板設(shè)計(jì)的靈活性,有的頁(yè)面因?yàn)樘厥獾男枰踔敛挥美^承模板頁(yè)。
2、首頁(yè)的設(shè)計(jì)要注重對(duì)整個(gè)網(wǎng)站的引導(dǎo)作用,網(wǎng)頁(yè)版面設(shè)計(jì)要力求簡(jiǎn)單但是有特色,具有良好的網(wǎng)絡(luò)購(gòu)書界面,讀者可以通過分類查找方式選擇自己所需購(gòu)買的圖書。一個(gè)網(wǎng)站,能否吸引顧客的經(jīng)常光顧,界面的美觀也顯得非常重要。本書店系統(tǒng)通過精心打造,讓書店的設(shè)計(jì)充分體現(xiàn)軟件的時(shí)尚、大眾化。
1)首頁(yè)中擁有顯示進(jìn)入各個(gè)模塊的導(dǎo)航按鈕,用戶可以直接點(diǎn)擊進(jìn)入相應(yīng)的模塊。
海天一色網(wǎng)上書店首頁(yè)如下圖所示: 軟件工程課程設(shè)計(jì)報(bào)告
海天一色網(wǎng)上書店
2)要在本網(wǎng)上書店進(jìn)行購(gòu)書,首先要注冊(cè)為網(wǎng)站會(huì)員,填寫詳細(xì)個(gè)人信息。通過會(huì)員注冊(cè)提取用戶基本信息。注冊(cè)內(nèi)容包括登錄名,密碼,真實(shí)姓名,E—ail等信息。
會(huì)員注冊(cè)頁(yè)面如下:
3)為了便于對(duì)網(wǎng)上書店進(jìn)行管理,以及從網(wǎng)站的安全性考慮,我們將科大書店首頁(yè)與后臺(tái)管理系統(tǒng)進(jìn)行了分離,以防不法分子進(jìn)行攻擊。海天一色書店的內(nèi)部管理系統(tǒng)的界面: 軟件工程課程設(shè)計(jì)報(bào)告
海天一色網(wǎng)上書店
對(duì)于有關(guān)圖片編輯的地方,因?yàn)閷?duì)于Photoshop掌握的并不好,所以選取了另一款簡(jiǎn)易的軟件:ACDSee,具有多照片疊加等功能,更有50余種照片特效,數(shù)秒即可制作出影樓級(jí)的專業(yè)照片。因此相對(duì)于Photoshop來說,ACDSee更加容易上手。
3、網(wǎng)站設(shè)計(jì)過程中遇到的大問題不多但小問題還真得挺多的,光是網(wǎng)頁(yè)設(shè)計(jì)就費(fèi)了很長(zhǎng)時(shí)間,起初為了接觸網(wǎng)頁(yè),翻閱了很多資料,最終確定的方就是邊查資料邊學(xué)習(xí)。
網(wǎng)頁(yè)頁(yè)面的設(shè)計(jì)中最主要的就是頁(yè)面風(fēng)格的設(shè)計(jì),為了使客戶在登陸網(wǎng)站之后又一個(gè)舒適的頁(yè)面,單純的依靠自己的喜好設(shè)計(jì)頁(yè)面鮮艷不合乎情理,為此,我專門登陸了一項(xiàng)大型公司的網(wǎng)站做了相應(yīng)的比較和分析,例如,東軟和華維的網(wǎng)站,他們的首頁(yè)想對(duì)于一些娛樂網(wǎng)站來說都是比較簡(jiǎn)單,給我一種簡(jiǎn)單的舒適的感覺。結(jié)合我們網(wǎng)站的特點(diǎn),經(jīng)過和其他組員的商定最終確定了現(xiàn)在的網(wǎng)頁(yè)格式。
四、實(shí)驗(yàn)個(gè)人小結(jié)
因?yàn)橐郧皼]有做過這個(gè)大規(guī)模的程序,也沒有動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)的經(jīng)驗(yàn),好在以前自己為了滿足自己的好奇心做過靜態(tài)的網(wǎng)頁(yè),對(duì)html網(wǎng)頁(yè)語言和Dreamweaver,photoshop軟件的使用都有一定的了解,但是這些知識(shí)的積累還不足以滿足我們這次項(xiàng)目的要求,所以我是邊學(xué)習(xí)邊應(yīng)用。由于自己一開始的不自信,覺著這樣的任務(wù)也許自己并不能很好的完成,也許會(huì)拖累自己組的人。但是當(dāng)我做完整個(gè)項(xiàng)目回過頭看時(shí),才發(fā)現(xiàn)自己一開始的想法是錯(cuò)誤的,其實(shí)并沒 軟件工程課程設(shè)計(jì)報(bào)告
海天一色網(wǎng)上書店 有自己想象的那么困難。
通過此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)軟件工程方面的知識(shí),在設(shè)計(jì)過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。
過而能改,善莫大焉。在課程設(shè)計(jì)過程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問題,最后在老師的指導(dǎo)下,終于游逆而解。在今后社會(huì)的發(fā)展和學(xué)習(xí)實(shí)踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收獲成功,收獲喜悅,也永遠(yuǎn)不可能得到社會(huì)及他人對(duì)你的認(rèn)可!
回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。
實(shí)驗(yàn)過程中,也對(duì)團(tuán)隊(duì)精神的進(jìn)行了考察,讓我們?cè)诤献髌饋砀幽酰诔晒笠黄痼w會(huì)喜悅的心情。果然是團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。
第五篇:軟件工程課程設(shè)計(jì)報(bào)告 之 用戶操作手冊(cè)
用戶操作手冊(cè)
1.引言
1.1編寫目的本操作手冊(cè)供本系統(tǒng)操作人員參考之用,分別為客戶機(jī)端使用人員說明本系統(tǒng)操作方法。
1.2項(xiàng)目背景
本項(xiàng)目(飛Q2012系統(tǒng))由計(jì)算機(jī)系軟件開發(fā)小組負(fù)責(zé)開發(fā)。
1.3定義
WINDOWS NT:本系統(tǒng)所采用的操作系統(tǒng)。
SQL SERVER:系統(tǒng)服務(wù)器所使用的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。
1.4參考資料
[1]黃凱,陶宏才.即時(shí)通訊系統(tǒng)服務(wù)器端簡(jiǎn)要設(shè)計(jì)[J].成都信息工程學(xué)院學(xué)報(bào),2006,(4),20-23.[2]馬丹.即時(shí)通信系統(tǒng)終端的設(shè)計(jì)與實(shí)現(xiàn)[C].電子科技大學(xué),2005.[3] 潭獻(xiàn)海等編著.網(wǎng)絡(luò)編程技術(shù)及應(yīng)用[M].北京:清華大學(xué)出版社,2006.12.[4] 鄭人杰,殷人昆,陶永雷.實(shí)用軟件工程(第二版)[M].北京:清華大學(xué)出版社,1997.4.[5] 徐國(guó)平等編著,JSP網(wǎng)絡(luò)開發(fā)務(wù)實(shí),電子工業(yè)出版社,2001年9月
2.1目標(biāo)
本系統(tǒng)分為服務(wù)器端和客戶機(jī)端兩個(gè)部分,用戶為客戶機(jī)端??蛻魴C(jī)和
服務(wù)器通過網(wǎng)絡(luò)進(jìn)行通信。用戶網(wǎng)絡(luò)把信息(qq號(hào),密碼等)傳輸?shù)?/p>
服務(wù)器,服務(wù)器程序通過對(duì)數(shù)據(jù)庫(kù)的查詢來為用戶安排登陸查詢等信息
服務(wù),并把結(jié)果傳輸?shù)娇蛻魴C(jī),客戶機(jī)就可以使用了。
2.2功能
系統(tǒng)實(shí)現(xiàn)了在各個(gè)客戶機(jī)端聊天,文件傳輸?shù)墓δ?,并在分布式系統(tǒng)的基礎(chǔ)上采用了一些實(shí)時(shí)處理,以達(dá)到快速響應(yīng)??蛻魴C(jī)端除了簡(jiǎn)單的聊
天之外,本系統(tǒng)還可進(jìn)行查詢和檢索的功能。服務(wù)器端還實(shí)現(xiàn)了用戶信
息的自動(dòng)管理和數(shù)據(jù)庫(kù)查詢,維護(hù)功能。
2.3性能
輸入數(shù)據(jù):
用戶輸入:
飛Q號(hào)碼:String
密碼:Sring
輸出數(shù)據(jù):
好友列表:
飛Q號(hào)碼:String
時(shí)間特性:
要求數(shù)據(jù)傳輸時(shí)間在10秒鐘以內(nèi),服務(wù)器響應(yīng)時(shí)間在10秒以內(nèi),總響應(yīng)時(shí)間為0.5分鐘。
3.運(yùn)行環(huán)境
3.1硬件
服務(wù)器端:Pentium II 450以上,1024M RAM,36G HD
客戶機(jī)端:支持java se 虛擬機(jī)的pc機(jī)
系統(tǒng)軟件:服務(wù)器端:Windows NT Server
客戶機(jī)端:Windows NT Workstation
數(shù)據(jù)庫(kù)管理系統(tǒng):SQL Server
4.使用說明
4.1安裝和初始化
由于使用了安裝自動(dòng)生成工具,安裝變的非常簡(jiǎn)單,只需運(yùn)行飛Qserver_SQLServer_fat.jar即可根據(jù)提示安裝服務(wù)器端程序或是客戶機(jī)端程序。
在安裝的過程中,系統(tǒng)將自動(dòng)初始化,為第一次運(yùn)行作準(zhǔn)備。
4.2輸入
4.2.1 數(shù)據(jù)背景
數(shù)據(jù)的來源參見需求分析說明書和概要設(shè)計(jì)說明書。
4.2.2 數(shù)據(jù)格式
用戶輸入:
飛Q賬號(hào)String
密碼String
4.2.3 輸入舉例
旅客輸入:
飛Q賬號(hào)1000005
密碼1234567
4.3輸出
4.3.1 數(shù)據(jù)背景
數(shù)據(jù)的來源參見需求分析說明書和概要設(shè)計(jì)說明書。
4.4出錯(cuò)和恢復(fù)
如果輸入數(shù)據(jù)出錯(cuò),可立即進(jìn)行取消操作,重新輸入。
如果突然斷電或系統(tǒng)沒有響應(yīng),則關(guān)機(jī),等系統(tǒng)重新啟動(dòng)時(shí),會(huì)根據(jù)日志文件自動(dòng)ROLLBACK到正確的階段。需要等待一段時(shí)間。如果系統(tǒng)繁忙,也要等待一段時(shí)間。
5. 程序文件和數(shù)據(jù)文件一覽表
客戶機(jī)端:飛Q2012.jar
readme.txt
客戶機(jī)端主文件 說明文件