本專案建立在《Linux高階開發基礎》、《Java高階開發基礎》、《web高階開發基礎》學習的相關知識體系的基礎上,以系統全面的應用所學知識為出發點,設計一個學生階段的學習專案,讓學生可以全面應用、鞏固、提升階段的學習內容,在專案實戰的過程中將知識體系貫穿起來,融匯貫通,積累專案開發經驗,並通過專案檢驗階段的學習成果。
本檔案從功能需求的角度,在以知識體系全面應用的目標為指導下,詳細的描述了專案開發鋒功能需求以及功能約束內容,為專案實戰的學生和評測團隊提供一個詳細的功能需求說明檔案。
本檔案描述了專案的功能需求,各個功能設計目標,概要設計目標,概要設計,設計約束及各種人機互動的格式要求。
參與專案開發的學生,參與評測的團隊,以及其他想要了解本專案的讀者。
本檔案屬於CSDN博主「看,未來」所有,如需轉載,請私信我。
專案名稱:集智智慧課程表專案。
本專案實現了課程表自動排課功能。該專案由 智慧課程表前端、智慧課程表電腦使用者端、智慧課程表伺服器端、智慧課程表測試端等部分組成。
前端使用web網頁伺服器搭建技術,基於TCP Socket 封裝了通訊元件、動態陣列等技術的前端通訊框架,以及基於Nginx、SSM架構、MySQL資料庫技術和執行緒池等技術的後臺處理系統框架。
專案採用團隊開發模式,成員不僅在專案實戰中應用技術,積累專案經驗又積累了團隊配合的經驗。
通過學習,參與專案的成員應該掌握以下技術:
web伺服器搭建
web伺服器與後端通訊技術
Nginx負載均衡技術
多程序或多執行緒開發技術
程序間通訊:訊號、管道、訊息佇列、共用記憶體、TCP分散式通訊等
多程序與多執行緒之間的同步技術:號誌、互斥、條件變數等
掌握UI設計
熟練使用資料庫技術
模組名 | 功能類別 | 子功能 |
---|---|---|
使用者端(管理員) | 系統啟動 | 本地雲啟動,初始化介面,軟體版本以及其他初始化資料同步 |
使用者登入 | 使用者輸入使用者名稱、密碼,登入 | |
修改密碼 | 使用者輸入使用者名稱、舊密碼、新密碼,完成修改密碼 | |
教師列表 | 獲取當前應該出現的教師列表 | |
排課查詢 | 查詢指定班級的排課情況 | |
排課批覆 | 是否同意該排課計劃 | |
系統設定 | 設定服務的ip地址與埠等設定 | |
– | – | – |
使用者端(教師端) | 1.0版本暫不開放 | - |
– | – | – |
web端(管理員端) | 使用者登入 | 同用戶端 |
其餘業務 | 一概同用戶端 | |
– | – | – |
web端(學生端) | 登入 | 使用者輸入使用者名稱、密碼,登入 |
查詢課表 | 支援單週查詢、課表匯出 | |
– | – | – |
伺服器端(Java) | 使用者接入 | 接收網頁端、使用者端的連線,管理使用者端資訊 |
業務分配 | 分發網頁端/使用者端的各型別業務 | |
心跳處理 | 自定義 | |
– | – | – |
伺服器端(C++) | 自動排課 | 設計演演算法,配合資料庫,完成高效排課 |
並行負載 | 初始化30的處理執行緒 | |
– | – | – |
資料庫 | 資料庫設計與應用 | 關係模型設計,服務於排課系統 |
– | – | – |
紀錄檔 | 紀錄檔 | 每天生成一個執行紀錄檔,包括業務處理、執行情況、故障記錄等 |
– | – | – |
壓力測試程式 | 單客戶單業務測試 | 主要測試伺服器單筆業務的處理能力和資料準確性 |
多客戶單業務 | 測試伺服器吞吐量 | |
測試報告 | 給出關鍵引數和測試結果,如:業務成功數、失敗數、業務型別等 | |
壓力引數設定 | 每次測試時,使用者可以自定義測試時長、業務型別、模擬使用者端數等,並能儲存到引數檔案中 | |
測試紀錄檔 | 記錄每次測試結果,每天生成一個 | |
– | – | – |
網安 | 閘道器伺服器 | 實現排隊 |
防火牆 | 團隊防火牆設定 | |
流量IP | 模擬大流量IP存取 |
功能類別 | 功能說明 |
---|---|
萬級並行 | 要求一臺伺服器能夠承受10000臺以上的連線數接入 |
大並行業務 | 要求一臺伺服器能承受200-300並行業務處理 |
分佈架構 | 採用TCP流協定進行程序間通訊 |
系統拓展性 | 能夠在儘量不修改原始碼的前提下,拓展業務 |
系統安全 | 承受一些非法操作的轟炸 |
裝置開機後,裝置與伺服器保持長連線,由於種種原因,中間過程可能發生斷線,伺服器需要偵測到斷線情況,使用者端監測到斷線需要在UI介面上提示斷線。
在TCP傳輸過程中,可能出現兩筆業務出現粘包,需要注意區分。解決方案:包頭+包體+包尾。
檔案傳輸過程中若出現傳輸中斷,需要進行妥善處理。
本專案為團隊開發專案,意在讓隊員能夠體會團隊開發的過程以及能在過程中積累團隊配合的經驗。
為了保證每個人的程式碼量和過程中應用技術的水平,建議每個團隊人數在2-3人,最佳組合是3人。
其中一人為開發組長,協調組員開發以及進度控制。
本專案開發的總週期為15個工作日,具體幾個階段的開發時間分配如下
階段名稱 | 佔用時間 |
---|---|
專案規劃 | 2天 |
基準測試 | 3天 |
專案編碼 | 7天 |
專案聯調 | 2天 |
專案總結 | 1天 |
(1)原始碼佈局規範
(2)變數命名規範
(3)函數命名規範
(4)型別定義規範
(5)註釋規範
為了後期覆盤,也為了能讓別人看懂。
專案名稱 | 考核比重 |
---|---|
開發進度 | 6% |
系統設計 | 10% |
功能模組 | 74% |
程式碼規範 | 5% |
專案總結 | 10% |
工作日報 | 5% |
延期一天3分。
功能名稱 | 考核比重 |
---|---|
網路連線 | 15% |
UI設計 | 15% |
資料匯入 | 30% |
使用者功能 | 15% |
團隊共同作業 | 20% |
使用者體驗 | 5% |
使用者連線 | 15% |
---|---|
負載均衡 | 15% |
使用者互動 | 15% |
排課演演算法設計 | 25% |
資料庫互動 | 15% |
紀錄檔互動 | 5% |
成員合作 | 10% |
非功能性需求不作為加分項。
UI介面設定 | 20% |
---|---|
紀錄檔資訊 | 20% |
單業務 | 15% |
多業務 | 35% |
團隊合作 | 10% |
閘道器伺服器 | 40% |
---|---|
大流量IP | 30% |
防火牆 | 20% |
團隊合作 | 10% |
專案總體介紹
專案亮點介紹
專案不足與改進
專案心得體會
答辯
開發週期內,寫週報吧,大家都忙。
開發週報沒有按時填寫或應付性填寫的,每次0~12分,扣滿36分為止。
最後,祝大家順利!