1、文檔介紹
1.1 文檔目的
本項目建立在《Linux高級開發基礎》學習的相關知識體系的基礎上,以系統全面的應用所學知識爲出發點,設計一個學生階段的學習項目,讓學生可以全面應用、鞏固、提升階段的學習內容,在項目實戰的過程中將知識體系貫穿起來,融匯貫通,積累項目開發經驗,並通過項目檢驗階段的學習成果。
本文檔從功能需求的角度,在以知識體系全面應用的目標爲指導下,詳細的描述了項目開發鋒功能需求以及功能約束內容,爲項目實戰的學生和評測團隊提供一個詳細的功能需求說明文檔。
1.2 文檔範圍
本文檔描述了項目的功能需求,各個功能設計目標,概要設計目標,概要設計,設計約束及各種人機交互的格式要求。
1.3 讀者對象
參與項目開發的學生,參與評測的團隊,以及其他想要了解本項目的讀者。
1.4 文檔版權
本文檔屬於CSDN博主“看,未來”所有,如需轉載,請私信我。
2、項目介紹
2.1項目名稱
項目名稱:本地雲。
2.2項目組成
本項目實現了基於局域網的文件傳輸與管理功能。該項目由本地雲服務器、本地雲客戶端、本地雲測試程序三部分組成。
基於TCP Socket 封裝了通信組件、動態數組等技術的前端通信框架,以及基於FTP協議、數據庫技術和線程池等技術的後臺處理系統框架。
項目採用團隊開發模式,成員不僅在項目實戰中應用技術,積累項目經驗又積累了團隊配合的經驗。
2.3項目必備知識體系
通過學習,參與項目的成員應該掌握以下技術:
多進程或多線程開發技術
進程間通信:信號、管道、消息隊列、共享內存、TCP分佈式通信等
多進程與多線程之間的同步技術:信號量、互斥、條件變量等
重點掌握了SOCKET API 以及瞭解TCP/IP協議模型
重點掌握Linux下文件管理系統
重點掌握FTP協議模型
掌握UI設計
熟練使用數據庫技術
3、功能性需求
3.1功能彙總
模塊名 | 功能類別 | 子功能 |
---|---|---|
本地雲客戶端 | 系統啓動 | 本地雲啓動,初始化界面,軟件版本以及其他初始化數據同步 |
用戶註冊 | 用戶輸入用戶名、密碼、密保手機號,註冊一個新賬號 | |
用戶登錄 | 用戶輸入用戶名、密碼,登錄到服務器獲取用戶儲存的文件列表 | |
修改密碼 | 用戶輸入用戶名、舊密碼、新密碼,完成修改密碼 | |
找回密碼 | 用戶輸入用戶名、密保手機,發送到服務器獲取密碼 | |
文件列表 | 獲取當前文件夾下應該出現的文件列表 | |
文件上傳 | 上傳文件到指定文件夾 | |
文件下載 | 從指定文件夾下載文件 | |
本地下載文件管理 | 下載之後的文件應由本地文件夾管理 | |
通信紀錄 | 文件上傳紀錄、下載紀錄獲取 | |
文件共享 | 生成鏈接與提取碼,可將文件分享給其他用戶 | |
系統設置 | 配置服務的ip地址與端口等設置 | |
– | – | – |
本地雲服務器 | 用戶接入 | 接收客戶端的連接,管理客戶端信息 |
各業務處理 | 處理客戶端的各類型業務 | |
心跳處理 | 各組自定義 | |
文件管理 | 對客戶傳輸的文件進行管理 | |
數據庫設計與應用 | 各組自定義,服務於文件管理 | |
併發負載 | 初始化30的處理線程 | |
日誌 | 每天生成一個運行日誌,包括業務處理、運行情況、故障記錄等 | |
– | – | – |
壓力測試程序 | 單客戶單業務測試 | 主要測試服務器單筆業務的處理能力和數據準確性 |
多客戶多業務 | 不同種類業務,測試服務器吞吐量 | |
測試報告 | 給出關鍵參數和測試結果,如:業務成功數、失敗數、業務類型等 | |
壓力參數設置 | 每次測試時,用戶可以自定義測試時長、業務類型、模擬客戶端數等,並能保存到參數文件中 | |
測試日誌 | 記錄每次測試結果,每天生成一個 |
4、非功能性需求
功能類別 | 功能說明 |
---|---|
萬級併發 | 要求一臺服務器能夠承受10000臺以上的連接數接入 |
大併發業務 | 要求一臺服務器能承受200-300併發業務處理 |
分佈架構 | 採用TCP流協議進行進程間通信 |
系統拓展性 | 能夠在儘量不修改源代碼的前提下,拓展業務 |
系統安全 | 承受一些非法操作的轟炸 |
5、系統總體設計
5.1系統總體框架(參考)
5.2接入服務器邏輯結構(參考)
5.3本地雲客戶端邏輯結構(參考)
6、通信程序關鍵流程設計
6.1 斷線重連處理
設備開機後,設備與服務器保持長連接,由於種種原因,中間過程可能發生斷線,服務器需要偵測到斷線情況,客戶端監測到斷線需要在UI界面上提示斷線。
6.2 粘包/半包檢測與處理
在TCP傳輸過程中,可能出現兩筆業務出現粘包,需要注意區分。解決方案:包頭+包體+包尾。
6.3 文件缺失檢測與處理
文件傳輸過程中若出現傳輸中斷,需要進行妥善處理。
7、立項標準
7.1 項目小組
本項目爲團隊開發項目,意在讓隊員能夠體會團隊開發的過程以及能在過程中積累團隊配合的經驗。
爲了保證每個人的代碼量和過程中應用技術的水平,建議每個團隊人數在2-3人,最佳組合是3人。
其中一人爲開發組長,協調組員開發以及進度控制。
7.2 開發週期要求
本項目開發的總週期爲12個工作日,具體幾個階段的開發時間分配如下
階段名稱 | 佔用時間 |
---|---|
項目規劃 | 2天 |
項目編碼 | 7天 |
項目聯調 | 2天 |
項目總結 | 1天 |
7.3 編碼規範要求
(1)源碼佈局規範
(2)變量命名規範
(3)函數命名規範
(4)類型定義規範
(5)註釋規範
爲了後期覆盤,也爲了能讓別人看懂。
8、考覈標準
8.1 項目總分爲100分,各個模塊考覈比重如下:
項目名稱 | 考覈比重 |
---|---|
開發進度 | 6% |
系統設計 | 10% |
功能模塊 | 74% |
代碼規範 | 5% |
項目總結 | 10% |
工作日報 | 5% |
8.2 開發進度考覈標準
延期一天3分。
8.3 功能考覈標準
8.3.1 客戶端
功能名稱 | 考覈比重 |
---|---|
網絡連接 | 20% |
UI設計 | 15% |
收發文件 | 20% |
文件管理 | 20% |
用戶基礎功能 | 15% |
團隊協作 | 10% |
8.3.2 服務器
用戶連接 | 15% |
---|---|
文件收發 | 20% |
文件管理 | 30% |
數據庫設計 | 15% |
交易日誌 | 10% |
成員合作 | 10% |
非功能性需求不作爲加分項。
8.3.3 壓力測試
UI界面設置 | 20% |
---|---|
日誌信息 | 20% |
單客戶 | 15% |
多客戶 | 35% |
團隊合作 | 10% |
8.4 結項考覈標準
項目總體介紹
項目亮點介紹
項目不足與改進
項目心得體會
答辯
8.5 日常考覈標準
開發週期內,日報每天要寫。
開發日報沒有按時填寫或應付性填寫的,每次3分,扣滿36分爲止。
最後,祝大家順利!