文章目錄
- 1、檔案介紹
- 1.1 檔案目的
- 1.2 檔案范圍
- 1.3 讀者物件
- 1.4 檔案著作權
- 2、專案介紹
- 2.1專案名稱
- 2.2專案組成
- 2.3專案必備知識體系
- 3、功能性需求
- 3.1功能匯總
- 4、非功能性需求
- 5、系統總體設計
- 5.1系統總體框架(參考)
- 5.2系統流程圖(參考)
- 6、通信程式關鍵流程設計
- 6.1 斷線重連處理
- 6.2 粘包/半包檢測與處理
- 6.3 檔案缺失檢測與處理
- 7、立項標準
- 7.1 專案小組
- 7.2 開發周期要求
- 7.3 編碼規范要求
- 8、考核標準
- 8.1 專案總分為100分,各個模塊考核比重如下:
- 8.2 開發進度考核標準
- 8.3 功能考核標準
- 8.3.1 客戶端
- 8.3.2 服務端
- 8.3.3 壓力測驗
- 8.3.4 網路安全
- 8.4 結項考核標準
- 8.5 日常考核標準
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% |
|---|---|
| 大流量IP | 30% |
| 防火墻 | 20% |
| 團隊合作 | 10% |
8.4 結項考核標準
專案總體介紹
專案亮點介紹
專案不足與改進
專案心得體會
答辯
8.5 日常考核標準
開發周期內,寫周報吧,大家都忙,
開發周報沒有按時填寫或應付性填寫的,每次0~12分,扣滿36分為止,
最后,祝大家順利!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/171736.html
標籤:其他
上一篇:北京985渣碩一枚,收到騰訊、美團等六家大廠offer,淺談大資料面試經歷,特此分享面試題,希望能夠幫助到廣大程式員!
