軟件工程第四次團隊作業
| 這個作業屬於哪個課程 | 2020春丨w班 |
|---|---|
| 這個作業要求在哪里 | 作業要求 |
| 團隊名稱 | 剛下飛機 |
| 這個作業的目標 | 項目系統設計與數據庫設計 |
| 作業正文 | 如下 |
| 其他參考文獻 | 軟件工程國家標准文檔 |
- deadline:2020-04-10 23:00
一.整體計划安排
| 整體計划安排 | |
|---|---|
| 時間 | 前端 |
| 第9周 | 用戶部分完成:登錄、注冊、修改個人信息、發布問題、查看問題 |
| 第10周 | 用戶部分完成:發布回答、查看回答、采納回答、置頂回答 |
| 第11周(Alpha版本演示) | 用戶部分完成:發布評論、發布回復、細節完善、整體測試 |
| 第12周 | 用戶部分完成:修改密碼、修改綁定郵箱 |
| 第13周 | 用戶部分完成:收藏問題、支持回答、反對回答、查看收藏問題;管理員部分完成:登錄 |
| 第14周 | 用戶部分完成:舉報問題、舉報回答、舉報評論、舉報回復;管理員部分完成:用戶管理 |
| 第15周 | 用戶部分完成:認證、用戶動態 |
| 第16周(Beta版本演示) |
補充
- 第7周:討論並確定項目系統設計方案
- 第11周:前后端交互完成后,交由測試人員測試,測試完成后發布Alpha版本
- 第16周:前后端交互完成后,交由測試人員測試,測試完成后發布Beta版本
二.預期開發計划分工安排
| 學號 | 工作內容 |
|---|---|
| 221701317 | 后端 |
| 221701328 | 前端頁面設計,前后端交互 |
| 221701337 | 前端頁面設計 |
| 221701312 | 后端 |
| 221701319 | 后端 |
| 221701340 | 后端 |
| 221701338 | 前段頁面設計 |
| 221701333 | 后端 |
三.項目系統及數據庫設計
1.體系結構設計+功能模塊層次圖
體系結構設計
項目采用BS(瀏覽器/服務器)模式,主體分為三層:
表現層(視圖層):
表現層使用基於Vue.js的前端開發。
行為層(應用層):
后端使用JavaEE的SSH(Spring + Struts + Hibernate)框架進行開發。
開發模式參照JavaEE分層架構,分別是DAO(數據訪問對象)層、Domain(領域對象)層、Service(業務邏輯)層、Controller(控制器)層。
持久層(數據層):
持久層使用MySql進行數據存儲。
功能層次圖

問題的功能模塊由查看問題、提出問題、搜索問題、收藏問題和舉報問題等主要功能模塊組成。

管理員的功能模塊由登錄,重置密碼,封禁,舉報處理等功能等主要子功能模塊組成,詳細參見下圖:

回答的功能模塊由評論回答、發布回答、舉報回答、置頂回答、采納回答、支持回答、反對回答等主要子功能模塊組成。

評論模塊分為查看評論、點贊評論、發布評論、舉報評論功能

賬戶的功能模塊由注冊、登錄、查看通知消息、查看個人信息、修改個人信息、重置密碼、找回密碼、修改綁定郵箱等主要子功能模塊組成。如下圖所示:

回復的功能模塊由查看回復、舉報回復、點贊回復、發布回復等主要子功能模塊組成。如下圖所示:

2.類圖

3.ER分析+表結構設計
數據實體圖

實體關系圖


表結構設計
例如:用戶表
同義詞(別名):用戶表
主鍵:用戶id
外鍵:用戶狀態id
索引:主鍵索引
約束:id:primary key,unique,not null;
email:unique,not null;


4.系統安全和權限設計
系統安全
a. 對用戶密碼進行hash加密。
b. 在cookie中使用密文來保存用戶信息。
c. 使用阿里雲ECS安全策略防止網絡攻擊。
d. 對輸入數據進行過濾,確保輸入符合我們的預期,以此防止XSS注入。
e. 使用Hibernate持久化框架防止SQL注入。
f. 多次登錄失敗觸發驗證碼機制,防止暴力破解。
權限設計
本系統使用Struts的攔截器進行權限控制。
后台:
a. 沒有登錄無法使用任何功能。
前台:
a. 沒有登錄只能進行瀏覽、搜索,無法進行提問、回答、評論、點贊以及個人系統模塊中的任何功能。
b. 被封禁的用戶無法進行提問、回答、評論、點贊等功能。
只有題主才能對回答進行采納、置頂。
四.問題回答
樂:1、不應該出現列表,應該用一對多關系描述
A:以對類圖進行修改
2、那你們之間是怎么溝通的
A:描述具體功能的實現流程,較好讓對方理解
傅:1、點贊回復是什么意思?
A:這里是添加對回復點贊的記錄,當時對類和類成員方法名的命名方式有誤,以想象中的功能命名方法了
2、你們的貢獻度區分度太小了,基本上就是均分,最好貢獻度不要出現小數了
A:已修改
汪:1、分工有什么心得?是每個人都完成需求模型的一部分嗎?
A:3到5個人進行需求模型的構建,每個人都會參與到每個部分的設計。
2、組織秉承一碗水端平,可是老師和助教不同意,所以麻煩組長重新給予組員不同的貢獻度,不可以通過小數點的不同來區分
A:已進行修改
五.組內分工
| 學號 | 工作內容 | 貢獻度 |
|---|---|---|
| 221701317 | 設計類圖、順序圖3張、系統說明書、參與數據庫說明書編寫與檢查 | 15% |
| 221701328 | 系統設計說明書2、3、5和模塊接口,ER圖和數據庫設計說明書,說明書格式調整 | 14% |
| 221701337 | 系統說明書、數據庫系統設計、結構圖 | 12% |
| 221701312 | 數據庫表建立,系統設計說明書用戶部分,數據庫實體描述,數據表名修改 | 13% |
| 221701319 | 博客撰寫,管理員系統設計 | 10% |
| 221701340 | 編寫了一部分的ER圖,主要完成功能層次結構圖,參與系統設計說明書(20%),數據庫設計說明書(25%) | 14% |
| 221701338 | 系統設計說明書1 2 3 和數據庫設計說明書的3 4 數據庫 | 10% |
| 221701333 | 功能層次圖初設計,系統設計管理員模塊編寫,順序圖兩張,ppt,演講 | 12% |
