集智智慧課程表專案 實戰指南

2020-10-13 11:01:21

1、檔案介紹

1.1 檔案目的

本專案建立在《Linux高階開發基礎》、《Java高階開發基礎》、《web高階開發基礎》學習的相關知識體系的基礎上,以系統全面的應用所學知識為出發點,設計一個學生階段的學習專案,讓學生可以全面應用、鞏固、提升階段的學習內容,在專案實戰的過程中將知識體系貫穿起來,融匯貫通,積累專案開發經驗,並通過專案檢驗階段的學習成果。

本檔案從功能需求的角度,在以知識體系全面應用的目標為指導下,詳細的描述了專案開發鋒功能需求以及功能約束內容,為專案實戰的學生和評測團隊提供一個詳細的功能需求說明檔案。

1.2 檔案範圍

本檔案描述了專案的功能需求,各個功能設計目標,概要設計目標,概要設計,設計約束及各種人機互動的格式要求。

1.3 讀者物件

參與專案開發的學生,參與評測的團隊,以及其他想要了解本專案的讀者。

1.4 檔案版權

本檔案屬於CSDN博主「看,未來」所有,如需轉載,請私信我。

2、專案介紹

2.1專案名稱

專案名稱:集智智慧課程表專案。

2.2專案組成

本專案實現了課程表自動排課功能。該專案由 智慧課程表前端智慧課程表電腦使用者端智慧課程表伺服器端智慧課程表測試端等部分組成。

前端使用web網頁伺服器搭建技術,基於TCP Socket 封裝了通訊元件、動態陣列等技術的前端通訊框架,以及基於Nginx、SSM架構、MySQL資料庫技術和執行緒池等技術的後臺處理系統框架。

專案採用團隊開發模式,成員不僅在專案實戰中應用技術,積累專案經驗又積累了團隊配合的經驗。

2.3專案必備知識體系

通過學習,參與專案的成員應該掌握以下技術:

web伺服器搭建
web伺服器與後端通訊技術
Nginx負載均衡技術
多程序或多執行緒開發技術
程序間通訊:訊號、管道、訊息佇列、共用記憶體、TCP分散式通訊等
多程序與多執行緒之間的同步技術:號誌、互斥、條件變數等
掌握UI設計
熟練使用資料庫技術

3、功能性需求

3.1功能彙總

模組名功能類別子功能
使用者端(管理員)系統啟動本地雲啟動,初始化介面,軟體版本以及其他初始化資料同步
使用者登入使用者輸入使用者名稱、密碼,登入
修改密碼使用者輸入使用者名稱、舊密碼、新密碼,完成修改密碼
教師列表獲取當前應該出現的教師列表
排課查詢查詢指定班級的排課情況
排課批覆是否同意該排課計劃
系統設定設定服務的ip地址與埠等設定
使用者端(教師端)1.0版本暫不開放-
web端(管理員端)使用者登入同用戶端
其餘業務一概同用戶端
web端(學生端)登入使用者輸入使用者名稱、密碼,登入
查詢課表支援單週查詢、課表匯出
伺服器端(Java)使用者接入接收網頁端、使用者端的連線,管理使用者端資訊
業務分配分發網頁端/使用者端的各型別業務
心跳處理自定義
伺服器端(C++)自動排課設計演演算法,配合資料庫,完成高效排課
並行負載初始化30的處理執行緒
資料庫資料庫設計與應用關係模型設計,服務於排課系統
紀錄檔紀錄檔每天生成一個執行紀錄檔,包括業務處理、執行情況、故障記錄等
壓力測試程式單客戶單業務測試主要測試伺服器單筆業務的處理能力和資料準確性
多客戶單業務測試伺服器吞吐量
測試報告給出關鍵引數和測試結果,如:業務成功數、失敗數、業務型別等
壓力引數設定每次測試時,使用者可以自定義測試時長、業務型別、模擬使用者端數等,並能儲存到引數檔案中
測試紀錄檔記錄每次測試結果,每天生成一個
網安閘道器伺服器實現排隊
防火牆團隊防火牆設定
流量IP模擬大流量IP存取

4、非功能性需求

功能類別功能說明
萬級並行要求一臺伺服器能夠承受10000臺以上的連線數接入
大並行業務要求一臺伺服器能承受200-300並行業務處理
分佈架構採用TCP流協定進行程序間通訊
系統拓展性能夠在儘量不修改原始碼的前提下,拓展業務
系統安全承受一些非法操作的轟炸

5、系統總體設計

5.1系統總體框架(參考)

在這裡插入圖片描述

5.2系統流程圖(參考)

在這裡插入圖片描述

6、通訊程式關鍵流程設計

6.1 斷線重連處理

裝置開機後,裝置與伺服器保持長連線,由於種種原因,中間過程可能發生斷線,伺服器需要偵測到斷線情況,使用者端監測到斷線需要在UI介面上提示斷線。

6.2 粘包/半包檢測與處理

在TCP傳輸過程中,可能出現兩筆業務出現粘包,需要注意區分。解決方案:包頭+包體+包尾。

6.3 檔案缺失檢測與處理

檔案傳輸過程中若出現傳輸中斷,需要進行妥善處理。

7、立項標準

7.1 專案小組

本專案為團隊開發專案,意在讓隊員能夠體會團隊開發的過程以及能在過程中積累團隊配合的經驗。
為了保證每個人的程式碼量和過程中應用技術的水平,建議每個團隊人數在2-3人,最佳組合是3人。
其中一人為開發組長,協調組員開發以及進度控制。

7.2 開發週期要求

本專案開發的總週期為15個工作日,具體幾個階段的開發時間分配如下

階段名稱佔用時間
專案規劃2天
基準測試3天
專案編碼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 使用者端

功能名稱考核比重
網路連線15%
UI設計15%
資料匯入30%
使用者功能15%
團隊共同作業20%
使用者體驗5%

8.3.2 伺服器端

使用者連線15%
負載均衡15%
使用者互動15%
排課演演算法設計25%
資料庫互動15%
紀錄檔互動5%
成員合作10%

非功能性需求不作為加分項。

8.3.3 壓力測試

UI介面設定20%
紀錄檔資訊20%
單業務15%
多業務35%
團隊合作10%

8.3.4 網路安全

閘道器伺服器40%
大流量IP30%
防火牆20%
團隊合作10%

8.4 結項考核標準

專案總體介紹
專案亮點介紹
專案不足與改進
專案心得體會
答辯

8.5 日常考核標準

開發週期內,寫週報吧,大家都忙。
開發週報沒有按時填寫或應付性填寫的,每次0~12分,扣滿36分為止。

最後,祝大家順利!
在這裡插入圖片描述