![請您幫幫忙系統(tǒng)需求分析及設(shè)計文檔_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/54f2b370-d792-48f3-82ca-b27a5062713c/54f2b370-d792-48f3-82ca-b27a5062713c1.gif)
![請您幫幫忙系統(tǒng)需求分析及設(shè)計文檔_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/54f2b370-d792-48f3-82ca-b27a5062713c/54f2b370-d792-48f3-82ca-b27a5062713c2.gif)
![請您幫幫忙系統(tǒng)需求分析及設(shè)計文檔_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/54f2b370-d792-48f3-82ca-b27a5062713c/54f2b370-d792-48f3-82ca-b27a5062713c3.gif)
![請您幫幫忙系統(tǒng)需求分析及設(shè)計文檔_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/19/54f2b370-d792-48f3-82ca-b27a5062713c/54f2b370-d792-48f3-82ca-b27a5062713c4.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、請您幫幫忙系統(tǒng)需求分析及設(shè)計文檔李杰胡海亮曹楊摘要隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,智能手機已經(jīng)成為人們?nèi)粘I钪胁豢珊鋈钡囊徊糠?,人們使用智能手機收發(fā)郵件、網(wǎng)上購物、查找路線等現(xiàn)象隨處可見。傳統(tǒng)日常生活中,當人們遇到困難需要幫助時,尋求對象總是局限在親戚、同學(xué)、同事、朋友圈,人際范圍小,搜索速度慢,并且不能對幫助結(jié)果進行客觀的評價。本文設(shè)計并實現(xiàn)了“請您幫幫忙”系統(tǒng),旨在提供一個可在線尋求幫助,查找別人尋求幫助的請求并且?guī)椭鷦e人的平臺。“請您幫幫忙”系統(tǒng)包括服務(wù)器和Android 客戶端兩個部分,服務(wù)器采用Java 語言實現(xiàn),擁有跨平臺的優(yōu)良特性,可運行于Windows 、Linux 和 Mac等多
2、種支持Java 的操作系統(tǒng)中,Android 客戶端同樣采用Java 語言編寫實現(xiàn)。用戶通過 Android 客戶端注冊、登陸之后,可以發(fā)起尋求幫助的請求,查看平臺內(nèi)其他用戶發(fā)起的, 未經(jīng)處理的請求,處理其他用戶提出的一個請求、查看自己發(fā)起幫助請求歷史以及評價一個用戶等操作?!罢埬鷰蛶兔Α?系統(tǒng)采用點贊機制評價一個用戶的熱心程度,鼓勵用戶多幫助他人,達到“我為人人,人人為我”的效果。關(guān)鍵字: Android ,幫忙,幫助,移動互聯(lián)網(wǎng)第一章系統(tǒng)需求分析 .31.1功能需求 .31.2性能需求 .3第二章請您幫幫忙系統(tǒng)總體設(shè)計 .4第三章平臺服務(wù)器的設(shè)計和實現(xiàn) .53.1服務(wù)器的總流程 .53.2
3、SocketHandler 通信功能的實現(xiàn) .53.3服務(wù)器和客戶端的通信業(yè)務(wù)流程.73.3.1用戶注冊通信業(yè)務(wù)流程 .73.3.2用戶登陸通信業(yè)務(wù)流程 .73.3.3用戶發(fā)起幫助請求業(yè)務(wù)流程 .83.3.4用戶查看所有未處理請求業(yè)務(wù)流程.83.3.5用戶處理請求業(yè)務(wù)流程 .93.3.6用戶查看所有平臺用戶業(yè)務(wù)流程.93.3.7用戶評價某用戶業(yè)務(wù)流程 .103.3.8用戶查看請求歷史業(yè)務(wù)流程 .103.4服務(wù)器端數(shù)據(jù)庫的設(shè)計 .11第四章Android 客戶端的設(shè)計和實現(xiàn) .134.1客戶端業(yè)務(wù)流程 .134.2客戶端狀態(tài)的維護和與服務(wù)器之間的通信.134.3Android 客戶端展示 .14
4、第五章全文總結(jié) .175.1主要的工作 .175.2不足和后續(xù)工作 .17第一章系統(tǒng)需求分析1.1 功能需求( 1)用戶注冊:Android客戶端需要提供新用戶輸入用戶名、密碼進行注冊的界面,平臺服務(wù)器應(yīng)處理新用戶的注冊請求,并返回注冊結(jié)果,Android 客戶端應(yīng)將注冊結(jié)果反饋給用戶。( 2)用戶登陸:Android客戶端需要提供已注冊用戶輸入用戶名、密碼進行登陸的界面,平臺服務(wù)器應(yīng)處理用戶的登陸請求,并返回登陸結(jié)果,Android 客戶端應(yīng)將登陸結(jié)果反饋給用戶。( 3)用戶發(fā)起幫助請求:Android客戶端需要提供用戶輸入主題、內(nèi)容進行發(fā)起幫助請求的界面,平臺服務(wù)器應(yīng)處理用戶發(fā)起幫助請求的
5、操作,并返回請求結(jié)果,Android 客戶端應(yīng)將請求結(jié)果反饋給用戶。( 4)用戶查看未處理請求: Android 客戶端需要提供用戶查看平臺內(nèi)未經(jīng)處理的請求的界面。界面應(yīng)包含一個列表,列出未經(jīng)處理請求的主題。( 5)用戶處理請求: Android 客戶端需要提供查看一個未經(jīng)處理請求的所有信息的界面,并讓用戶處理請求的操作, 平臺服務(wù)器應(yīng)處理用戶處理請求的操作,并且返回操作結(jié)果,( 6)查看平臺用戶: Android 客戶端需要提供用戶查看所有平臺用戶的界面,界面應(yīng)包含一個列表,列出所有平臺用戶的用戶名。( 7)評價平臺用戶: Android 客戶端需要提供查看某用戶詳細信息的界面,并提供點贊操
6、作,使用戶得到評價;平臺服務(wù)器應(yīng)處理用戶點贊操作,并且返回操作結(jié)果,Android客戶端應(yīng)將操作結(jié)果反饋給用戶。( 8)查看請求歷史: Android 客戶端需要提供查看用戶請求歷史的界面,界面包含一個列表,列出用戶歷史請求的主題。( 9)查看歷史請求詳細信息: Android 客戶端需要提供查看用戶某歷史請求的詳細,包括是否被處理,如被處理,處理人的用戶名等信息。( 10)安全和保密需求:用戶注冊和登陸時密碼應(yīng)加密處理,存儲在數(shù)據(jù)庫內(nèi)。( 11)數(shù)據(jù)庫連接:用戶信息和幫助請求應(yīng)存儲在數(shù)據(jù)庫內(nèi)。1.2 性能需求( 1)Android 客戶端應(yīng)在市面上大部分 Android 智能手機中流暢運行。
7、( 2)平臺服務(wù)器應(yīng)能夠在所有支持 Java 的操作系統(tǒng)中穩(wěn)定運行, 盡量處理所有可能的異常,不崩潰。( 3)Android 客戶端界面應(yīng)美觀大方,操作方式符合大多數(shù)用戶的操作思維和習(xí)慣。( 4)Android 客戶端和平臺服務(wù)器之間的交互應(yīng)迅速,網(wǎng)絡(luò)流量不應(yīng)過大。( 5)Android 客戶端響應(yīng)應(yīng)快速第二章請您幫幫忙系統(tǒng)總體設(shè)計請您幫幫忙系統(tǒng)由兩個部分組成: 平臺服務(wù)器和 Android 客戶端。平臺服務(wù)器負責(zé)訪問數(shù)據(jù)庫,管理用戶的注冊、登陸、登出等狀態(tài),并且響應(yīng)客戶端的發(fā)起幫助請求、查看未處理請求、處理某請求、查看平臺用戶、評價平臺用戶、查看用戶所有請求歷史、查看用戶某歷史請求詳細信息等
8、操作; Android 客戶端是負責(zé)與用戶交互的終端,負責(zé)提供用戶發(fā)起幫助請求、查看未處理請求、處理某請求、查看平臺用戶、評價平臺用戶、查看用戶所有請求歷史、 查看用戶某歷史請求詳細信息等操作的界面, 并且與服務(wù)器交互, 將服務(wù)器的處理結(jié)果反饋給用戶。請您幫幫忙系統(tǒng)的總體框架設(shè)計如圖2-1 所示:圖2-1請您幫幫忙系統(tǒng)總體框架設(shè)計如圖 2-1 所示,“請您幫幫忙”系統(tǒng)包括服務(wù)器和用 Java 語言實現(xiàn),擁有跨平臺的優(yōu)良特性,可運行于Android 客戶端兩個部分,服務(wù)器采Windows 、Linux 和 Mac 等多種支持Java 的操作系統(tǒng)中, Android 客戶端同樣采用Java 語言編
9、寫實現(xiàn)。 服務(wù)器通過訪問數(shù)據(jù)庫進行用戶信息和請求信息的存儲、訪問, Android 客戶端和平臺服務(wù)器之間通信,共同完成業(yè)務(wù)。第三章平臺服務(wù)器的設(shè)計和實現(xiàn)3.1 服務(wù)器的總流程服務(wù)器的總流程圖如圖3-1 所示:圖 3-1 服務(wù)器總流程圖Java 中的線程池擁有資源消耗低, 響應(yīng)速度快, 線程可管理性高的特點, 所以本服務(wù)器端采用線程池來解決多線程多用戶同時訪問的需求。 服務(wù)器啟動之后, 先進行一些初始化工作(初始化線程池,打開 Server Socket,連接數(shù)據(jù)庫) ,然后等待客戶端 socket 的連接。SocketHandler 類實現(xiàn)了Java Runnable 接口,負責(zé)一個客戶端和
10、服務(wù)器端的通信。服務(wù)器端接受了一個socket 連接后,將以這個接收到的socket 構(gòu)造一個SocketHandler 對象,并把它交給線程池去執(zhí)行。3.2 SocketHandler通信功能的實現(xiàn)平臺服務(wù)器端和Android 客戶端之間傳輸XML文件通信,每個XML 文件結(jié)尾都被添加字符 '0',通信功能的實現(xiàn)采用command 設(shè)計模式,服務(wù)器端接收到客戶端發(fā)來的XML文件后, 生成相應(yīng)的 command 實體對象, 然后根據(jù)不同的 command 實體對象采取不同的響應(yīng)。Parser 類負責(zé)讀取socket 內(nèi)容,并解析出XML 文件。其流程圖如圖3-2所示。圖 3-2
11、 Parser 類讀取XML文件流程圖服務(wù)器端 ICommand 類被設(shè)計為抽象類,有兩個純虛函數(shù),分別為init 和 act,其中需要一個Document 實體對象作為參數(shù)來初始化command 對象。 ICommand 的類圖如圖所示。服務(wù)器端其他所有command 實體類均繼承自ICommand 。init3-3圖 3-3 ICommand 類圖服務(wù)器端采用 DataSender 類向客戶端發(fā)送數(shù)據(jù), 它維護了一個需要發(fā)送的 XML 文件的隊列,繼承了 Runnable 接口,作為一個進程一直在運行。當需要向客戶端發(fā)送數(shù)據(jù)時,只需要將要發(fā)送的XML 文件添加到隊列的尾部。DataSend
12、er 發(fā)送數(shù)據(jù)的流程圖如圖3-4所示。圖 3-4 DataSender 類發(fā)送 XML 文件流程圖3.3 服務(wù)器和客戶端的通信業(yè)務(wù)流程用戶注冊通信業(yè)務(wù)流程當服務(wù)器接收到用戶注冊的請求RegisterCommand 時,會檢查用戶名是否已經(jīng)被注冊,如沒有則注冊用戶并返回注冊成功的信息,否則返回注冊失敗的信息。時序圖如圖 3-5所示。圖 3-5 用戶注冊時序圖用戶登陸通信業(yè)務(wù)流程當服務(wù)器接收到用戶登陸的請求 LoginCommand 時,會檢查用戶名是否已經(jīng)注冊和尚未登陸,如果滿足這兩個條件, 則返回登陸成功的信息, 否則返回登陸失敗的信息。時序圖如圖 3-6 所示。圖 3-6 用戶登陸時序圖用戶
13、發(fā)起幫助請求業(yè)務(wù)流程當服務(wù)器接收到用戶發(fā)起幫助請求RaiseRequestCommand 時,會檢查該用戶是否發(fā)起過相同主題的請求,若沒有則返回發(fā)起請求成功,否則返回發(fā)起請求失敗。時序圖如圖 3-7 所示。圖 3-7 用戶發(fā)起幫助請求時序圖用戶查看所有未處理請求業(yè)務(wù)流程當服務(wù)器接收到用戶查看所有未處理請求理請求的列表并發(fā)送給客戶端。時序圖如圖FetchRequestsCommand 時,會生成所有未處3-8 所示。圖 3-8 用戶查看未處理請求時序圖用戶處理請求業(yè)務(wù)流程當服務(wù)器收到用戶處理請求HandleRequestCommand 時,會檢查該請求是否已經(jīng)被處理,若沒有,則返回處理成功,否則
14、返回處理失敗。時序圖如圖3-9 所示。圖 3-9 用戶處理請求時序圖用戶查看所有平臺用戶業(yè)務(wù)流程當服務(wù)器收到用戶查看平臺所有用戶FetchAllUsersCommand時,會生成平臺所有用戶的列表,并返回給用戶。時序圖如圖3-10 所示。圖 3-10 用戶查看所有平臺用戶時序圖用戶評價某用戶業(yè)務(wù)流程當服務(wù)器收到評價某用戶請求AddScoreCommand 時,會檢查被評價用戶是否存在,若存在則將被評價用戶的積分加一,并返回操作成功,否則返回操作失敗。時序圖如圖 3-11 所示。圖 3-11 用戶評價某用戶時序圖用戶查看請求歷史業(yè)務(wù)流程當服務(wù)器接收到用戶查看請求歷史FetchRequestsBy
15、Id 時,會生成該用戶的所有歷史請求列表,并返回給用戶,時序圖如圖3-12 所示。圖 3-12 用戶查看歷史請求時序圖3.4 服務(wù)器端數(shù)據(jù)庫的設(shè)計請您幫幫忙系統(tǒng)使用 SQLite 數(shù)據(jù)庫存儲用戶和請求數(shù)據(jù), SQLite 數(shù)據(jù)庫具有輕量,高性能的優(yōu)點,能夠處理 90%以上的商業(yè)網(wǎng)站的日常請求。本系統(tǒng)數(shù)據(jù)庫中的User 表和 Request 表設(shè)計如下:圖 3-13 User 表的設(shè)計圖 3-14 Request 表的設(shè)計創(chuàng)建表的 SQL 語句分別為:CREATE TABLE USERS(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,PASSWOR
16、D TEXT,SCORE INT,FRIENDS TEXT,RAISEDREQUESTS TEXT,HANDLEDREQUESTS TEXT);CREATE TABLE REQUESTS(ID INT PRIMARY KEY NOT NULL,THEME TEXT,CONTENT TEXT,TIME TEXT,LOCATION TEXT,OWNER INT NOT NULL,HANDLERID INT,HANDLEDINT);第四章Android客戶端的設(shè)計和實現(xiàn)4.1 客戶端業(yè)務(wù)流程請您幫幫忙系統(tǒng)Android 客戶端組要有以下幾個activity組成 ,MainActivity:負責(zé)與服務(wù)
17、器的連接初始化;LogInActivity:負責(zé)用戶的注冊和登陸;MenuActivity:負責(zé)提供菜單界面; RaiseRequestActivity:負責(zé)處理用戶發(fā)起幫助請求;ShowRequestsActivity:顯示平臺內(nèi)所有未處理的請求界面;ShowRequestDetailActivity:顯示一個幫助請求的詳細信息界面; ShowUsersActivity:顯示所有平臺用戶界面;ShowUserDetailActivity:顯示某用 戶 詳 細 信 息 界 面 ; MyRequestsActivity:顯 示 用 戶 歷 史 請 求 界 面 ;MyRequestDetailAc
18、tivity:顯示用戶某請求詳細信息界面。各 activity之間的轉(zhuǎn)換流程圖如圖4-1所示。圖 4-1 Android客戶端各activity轉(zhuǎn)換流程圖4.2 客戶端狀態(tài)的維護和與服務(wù)器之間的通信Android Activity中消息的發(fā)送和接收要通過Handler 類來實現(xiàn)。在每個Activity 中可以定義一個 Handler 對象,Activity 外部可以用這個Handler 對象來發(fā)送消息 Message給 Activity ,Activity 內(nèi)部使用這個Handler 對象來接收外部發(fā)來的消息,并根據(jù)消息的來源和內(nèi)容采取相應(yīng)的動作。請您幫幫忙系統(tǒng)Android 客戶端同樣使用C
19、ommand 設(shè)計模式,通過XML 文件與服務(wù)器交互,與服務(wù)器一樣,使用SocketHandler 類管理數(shù)據(jù)的接收和發(fā)送,使用Parser 類獲取XML 文件,使用 DataSender 類發(fā)送 XML 文件。當接收到 XML文件時,從 XML 文件中提取出當前 Command 的名稱,利用Java 的類反射機制生成對應(yīng)的Command 對象。所有的Command 實體類同樣繼承自抽象類ICommand 。由于 SocketHandler 運行在自己獨立的線程中,當接收到Command 進行動作響應(yīng)時需要知道客戶端當前的狀態(tài),即客戶端當前所處的Activity ,所以需要一個維護客戶端的狀態(tài)
20、的類。StateManager 類管理著客戶端的狀態(tài)。StateManager 類的設(shè)計采用單例設(shè)計模式,內(nèi)部只有一個private static 的 StateManager 實體對象,對外提供 public static 的函數(shù)以獲得這個實體對象。這樣的設(shè)計可以提高程序的健壯性。StateManager 類維護了一個 Handler 類的實體對象 currentHandler ,客戶端程序每進入到一個Activity 時,都會在這個 Activity 的 onResume()函數(shù)中設(shè)定 currentHandler 為自己內(nèi)部定義的Handler 對象,這樣 currentHandler 將始終指向客戶端當前所在Activity 中的 Handler 對象。這樣,當 SocketHandler 接收到 Command 進行響應(yīng)時,可以從StateManager 里獲得 currentHandler 對象,用它來發(fā)送消息,客戶端當前所在的 Activity 接收到消息后,根據(jù)消息的來源和內(nèi)容,采取相應(yīng)的動作。消息的來源常量定義在類 HandlerConstants 里。4.3 Android客戶端展示這里展示一些Android 客戶端運行
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)策劃辦公用品采購合同協(xié)議
- 2025年醫(yī)療器械設(shè)備年維護服務(wù)合同范例
- 2025年泳池水處理設(shè)備項目申請報告模板
- 2025年銷售合同范例寶典
- 2025年合作銷售利潤分配協(xié)議書模板
- 2025年微波等離子炬光譜儀項目立項申請報告模范
- 2025年協(xié)同輔導(dǎo)協(xié)議書
- 2025年個人信用質(zhì)押合同樣式
- 2025年豪華游輪項目立項申請報告模板
- 2025年上海市電網(wǎng)建設(shè)與施工安全合作協(xié)議
- 新生兒黃疸早期識別課件
- 冷鏈產(chǎn)業(yè)園招商實施方案建議
- 干燥綜合征護理查房課件
- 修理鉗工培訓(xùn)課件
- (完整版)ERP流程及操作手冊
- 接上童氣:小學(xué)《道德與法治》統(tǒng)編教材研究
- 高速公路養(yǎng)護施工標準化技術(shù)指南
- 新生兒氣管插管操作評分標準
- 支委委員辭去職務(wù)申請書
- 變更更正戶口項目申請表
- 冷軋工程專業(yè)詞匯匯編注音版
評論
0/150
提交評論