1 引言
1.1 編寫目的
本文內容的編寫目的是為了更好地使用戶、研發人員、測試人員了解本項目,旨在幫助開發者進行編碼,同時使測試人員更清楚地了解系統架構和具體功能設計。
1.2 定義
a. 待開發項目名稱:公共課程資源網站
b. 項目目標用戶:高校學生
c. 項目任務提出者及項目開發者:軟工第九組
d. 開發環境:java、mysql、tomcat以及前端開發語言
e. 開發框架:Java Maven Web、SSM
1.3 預期讀者
用戶、項目開發人員、項目測試人員、項目文檔編寫人員、指導老師
1.4 參考資料
與本設計說明書相關的參考資料如下:
a. 屬於本項目的其他已發表文檔
b. 軟件開發文檔模板GB856T-88中的概要設計說明書(GB8567——88)、詳細設計說明書(GB8567——88)以及數據庫設計說明書(GB8567——88)
2 概要設計
2.1 需求規定
本網站系統主要的輸入項目包括學院信息、課程信息、用戶信息、用戶操作,主要輸出項目包含用戶操作界面、課表界面、查詢信息展示界面等。關於輸入輸出的詳細需求說明可參照本項目已發布的需求分析文檔第3部分動態模型和第4部分功能模型。處理的功能性能要求包括課程信息、用戶信息、crud操作的正確性要求以及系統數據的安全性需求。
2.2 基本設計概念和處理流程
基本設計:網站將用戶分類為游客、用戶、管理員三類,其中游客與用戶之間、用戶與管理員之間的功能需求有交叉,系統的主要輸出項用戶界面會因此有所不同。詳細的需求設計可參照本項目已發布的需求分析文檔第1部分需求陳述
處理流程:詳細的設計可參照本項目已發布的需求分析文檔第4部分功能模型。
2.3 功能結構
為了更好的說明系統結構,根據功能的不同將本系統划分成五個模塊:
a. 賬戶管理模塊:用戶在注冊成功后通過登錄進入課程系統,登錄信息提交后檢驗登錄信息是否正確,如果正確則轉入相對應的操作界面,否則提示錯誤信息。
b. 信息瀏覽模塊:信息瀏覽包括課程信息瀏覽、公共信息瀏覽、個人信息瀏覽。課程信息瀏覽是為用戶提供已發布的課程具體信息;公共信息瀏覽適用於用戶查看系統信息等群體公告類消息;個人信息瀏覽是用於用戶查看包括收藏的課程等個人信息。
c. 信息查詢模塊:信息查詢就包括學院查詢、課程查詢、條件篩選等操作。
d. 信息修改模塊:信息修改包括課程信息修改、個人信息修改、賬戶密碼修改等。
e. 課程發布模塊:用於管理員發布新的課程信息。
2.4 人工處理功能
在正常運行中,除用戶輸入數據及運維人員定期進行數據庫管理外系統無需額外人工處理,在特殊情況下,可能需要運維人員進行一定人工處理。例如在網絡爬蟲無法正常進行課程信息獲取的時候需要由管理員管理課程信息;機房斷電時,運維人員需重啟服務器;在用戶誤操作導致數據丟失時,運營人員可為用戶人工恢復數據備份。
3 部分關鍵功能詳細設計
3.1用戶管理設計說明
3.1.1程序描述
本程序用於用戶的注冊登錄驗證。對於擁有賬號信息的用戶,輸入賬號、密碼,系統驗證賬號密碼是否匹配,匹配才能進入系統,否則需要重新輸入賬號、密碼進行登錄。對於沒有賬號信息的用戶,需要先進行注冊,注冊時需輸入用戶名、密碼、確認密碼、驗證碼,注冊之后即可登錄進入系統。
3.1.2 ipo表及ipo圖
該模塊的IPO表如下表所示:
系統 | 公共課程資源網站 |
---|---|
模塊 | 用戶管理 |
輸入 | 用戶賬號:用戶注冊或登錄輸入 密碼: 用戶注冊設置或登錄輸入 驗證碼:圖片形式給出 |
處理 | 對於注冊用戶: 驗證用戶輸入的用戶名,訪問數據庫的用戶表,查詢是否含有賬號注冊信息,若沒有,通過該賬號,否則,返回“該賬號已注冊”; 驗證前后兩次輸入的密碼是否相同,若相同則通過,若不相同,返回賬號密碼錯誤 驗證用戶輸入的驗證碼,若驗證成功,用戶賬號、密碼信息存儲到用戶表,返回“注冊成功”,並跳轉到登錄界面;若驗證失敗,返回“驗證碼錯誤”。 對於登錄用戶: 驗證用戶輸入的賬號、密碼,訪問數據庫的用戶表,查詢對應賬號和密碼,若匹配成功,返回“登錄成功”並跳轉到系統主頁面;若匹配失敗 ,返回“密碼錯誤” |
輸出 | 注冊:“注冊成功”、“該賬號已注冊”、“賬號格式錯誤”或“驗證碼錯誤、“密碼錯誤”” 登錄:“登錄成功”或“賬號或密碼錯誤” |
局部數據元素 | 用戶賬號、用戶密碼、驗證碼 |
注釋 | 涉及到的數據庫表:用戶表 |
該模塊的IPO圖如下圖所示:
3.1.3 輸入項
a. 用戶賬號
數據類型及格式:字符串類型
數據值的有效范圍:首字不為空
輸入方式:用戶注冊或登錄賬號欄填寫
b. 密碼
數據類型及格式:字符串類型,長度至少為6
數據值的有效范圍:由字母和數字組成
輸入方式:用戶注冊或登錄密碼欄填寫
c. 驗證碼
數據類型及格式:字符串類型,長度為4
數據值的有效范圍:由數字和字母組成
輸入方式:以圖片形式給出並在注冊或登錄驗證碼欄填寫
d. 確認密碼
數據類型及格式:字符串類型,長度至少為6
數據值的有效范圍:與密碼完全相同
輸入方式:用戶注冊確認欄填寫
3.1.4輸出項
a. 注冊成功
數據類型及格式:字符串類型
輸出方式:系統彈窗提示
b. 該賬號已被注冊
數據類型及格式:字符串類型
輸出方式:系統彈窗提示
c.賬號格式錯誤
數據類型及格式:字符串類型
輸出方式:系統彈窗提示
d. 驗證碼錯誤
數據類型及格式:字符串類型
輸出方式:系統彈窗提示
e. 登錄成功
數據類型及格式:字符串類型
輸出方式:系統彈窗提示
f. 賬號或密碼錯誤
數據類型及格式:字符串類型
輸出方式:系統彈窗提示
3.2 課程查詢功能設計說明
3.2.1程序描述
本程序用於課程查詢功能的支持。用戶在查詢框內輸入想要查詢的課程信息,可以是課程號、課程名、學院名等,系統將根據輸入信息在數據庫中進行查找,並將符合條件的課程信息展示到搜索結果界面,若沒有符合條件的課程則在搜索結果界面顯示“沒有查找到相關課程”。
3.2.2 ipo表及ipo圖
該模塊的ipo表如下表所示:
系統 | 公共課程資源網站 |
---|---|
模塊 | 課程查詢功能 |
輸入 | 課程關鍵字 |
處理 | 將根據輸入信息在數據庫中進行查找,並將查找結果返回給前端 |
輸出 | 如果有相關課程,將相關課程的信息展示在搜索結果頁面 如果沒有相關課程,在搜索結果頁面顯示“沒有查找到相關課程 |
局部數據元素 | 課程關鍵字 |
注釋 | 涉及到的數據庫表:課程信息表,學院信息表 |
該模塊的IPO圖如下圖所示:
3.2.3 輸入項
課程關鍵字
數據類型及格式:字符串類型
數據值的有效范圍:由數字或漢字組成
輸入方式:在主頁面查詢輸入欄填寫
3.2.4 輸出項
a. 課程信息
輸出方式:以前端設計好的相應格式在搜索結果頁面輸出
b. 沒有查找到相關課程
輸出方式:以字符串形式在搜索結果頁面輸出
4 數據庫設計
4.1.編寫目的
作為軟件設計文檔的重要組成部分,本文檔主要對該軟件后台數據庫的概念模型設計和物理模型設計作出了統一的規定,同時確定了每個表的數據字典結構。
4.2結構設計
4.2.1概念結構設計
全局體統ER圖
4.2.2邏輯結構設計
根據上述er圖可以得到需要設計的實體以及實體之間的關系,需要建立表:User、Course、Evaluation、Discussion、College、user_course、Admin。
表User
字段名 | 數據類型 | 長度 | 描述 |
---|---|---|---|
userId | int | 15 | 主鍵非空,自增id |
userName | varchar | 255 | 用戶名 |
userPassword | varchar | 255 | 用戶密碼 |
cellphone | varchar | 255 | 用戶手機 |
varchar | 255 | 用戶郵箱 | |
userIntroduce | varchar | 255 | 用戶介紹 |
表Course
字段名 | 數據類型 | 長度 | 描述 |
---|---|---|---|
courseId | int | 15 | 主鍵非空,自增id |
courseName | varchar | 255 | 課程名 |
courseIntroduce | varchar | 255 | 課程介紹 |
coucontent | varchar | 255 | 課程內容 |
collegeId | int | 15 | 課程院校 |
表Evaluation
字段名 | 數據類型 | 長度 | 描述 |
---|---|---|---|
evaluationId | int | 15 | 主鍵非空,自增id |
evacontent | varchar | 255 | 評價內容 |
userId | int | 15 | 評價用戶 |
courseId | int | 15 | 評價課程 |
evatime | DATE | 3 | 評價時間 |
表Discussion
字段名 | 數據類型 | 長度 | 描述 |
---|---|---|---|
discussionId | int | 15 | 主鍵非空,自增id |
discontent | varchar | 255 | 討論內容 |
userId | int | 15 | 討論用戶 |
courseId | int | 15 | 討論課程 |
distime | DATE | 3 | 討論時間 |
表user_course
字段名 | 數據類型 | 長度 | 描述 |
---|---|---|---|
id | int | 15 | 主鍵非空,自增id |
userId | int | 15 | 用戶id |
courseId | int | 15 | 課程id |
表College
字段名 | 數據類型 | 長度 | 描述 |
---|---|---|---|
collegeId | int | 15 | 主鍵非空,自增id |
collegeName | varchar | 255 | 院校名 |
collegeIntroduce | varchar | 255 | 院校介紹 |
表Admin
字段名 | 數據類型 | 長度 | 描述 |
---|---|---|---|
adminId | int | 15 | 主鍵非空,自增id |
adminName | varchar | 255 | 管理員用戶名 |
adminPassword | varchar | 255 | 管理員密碼 |
5系統出錯處理設計
為了便於平台的開發、測試,以及帶給更好的使用體驗,平台需具有良好的錯誤捕獲和提示機制。在平台運行過程中出現任何錯誤時都必須有清晰、友好的提示信息,以提醒用戶或指示錯誤發生的原因、位置,幫助用戶進行更好的操作。
出錯狀況及處理方法如下表
出錯類別 | 出錯提示信息 | 出錯原因 | 處理方法 |
---|---|---|---|
一般錯誤 | 數據庫異常 | 前端與后端連接異常或后端處理異常 | 檢查后端出錯原因並通知管理人員 |
一般錯誤 | 未查詢到相關結果 | 用戶查詢輸入沒有符合條件的結果 | 提示用戶進行重新輸入或取消操作 |
網絡錯誤 | 網絡連接不可用 | 用戶設備為正常連接網絡或網絡出現問題 | 檢查網絡章台,正常連接后重新運行 |
程序錯誤 | 在網絡正常的時候網站無法正常打開 | 網站異常 | 檢查出錯原因並通知管理人員 |