本文檔由蹭一蹭軟工項目小組撰寫,任何復制、使用本文的全部或部分內容的行為必須先征得小組同意,謝謝。
項目文檔:概要設計文檔
1. 引言部分
引言部分主要說明編寫目的、系統的范圍和參考資料等。
1.1目的
該文檔的目的是描述學生蹭課軟件的概要設計,主要內容包括系統功能簡介、系統結構設計、模塊設計和界面設計等。
本文檔的預期讀者包括:設計人員,開發人員,項目管理人員,測試人員。
1.2 范圍
1.2.1 系統目標
開發一個滿足大學生在課余時間的蹭課需求的安卓端app。既可以供大家查閱自己感興趣課程的相關信息,又可以滿足同學們在公告板跳轉到教務處網頁及時收到通知的需要,還可以提供社區板塊查看別人的討論、留言、以及對相關課程的點評。
1.2.2 主要軟件需求
該系統的主要功能包括:
l 系統初始化設置
l 用戶管理
l 搜索相關課程
l 社區討論
l 公告板服務(對教務系統和百度等網站的跳轉)
l 個人頁面
1.2.3 軟件設計約束、限制
軟件支持多客戶端同時使用的分布式物理結構。
1.3縮寫說明
無。
1.4術語定義
無。
1.5參考資料
[1]竇萬峰.軟件工程與實踐[M].北京:機械工業出版社,2017.
[2]軟件概要設計文檔格式標注[S].GB 856D-1988.
1.6版本信息
具體版本信息如表A-1所示
表A-1 具體版本信息
修改編號 |
修改日期 |
修改后版本 |
修改位置 |
修改內容概述 |
1 |
2018-5-1 |
1.0 |
全部 |
完成第一次編寫 |
|
|
|
|
|
2. 數據設計
本部分主要描述軟件所涉及的外部數據的結構描述。如果數據以數據庫文件呈現,則描述表的名稱和表字段結構;如果數據以外部文件形式呈現,則要描述文件的內部結構。
2.1數據對象和形成的數據結構
“蹭一蹭”app所設計的主要數據結構如下:
課程表:課程編號,課程名,課程類型,課程所屬學院,任課老師,課程時間,課程學分,課程開課學期,課程所用課本名稱。
社區表:用戶編號,用戶昵稱,博客編號,博客名,發博客所在日期。
個人信息表:用戶編號,用戶昵稱,用戶密碼,偏好課程編號,偏好課程名,偏好課程類型,偏好課程所屬學院,偏好課程任課老師,課程時間,偏好課程學分,偏好課程開課學期,課程所用課本名稱。
用戶總表:用戶名,用戶密碼,用戶注冊用手機號,用戶是否綁定郵箱號,用戶郵箱號,用戶創建日期,用戶更新日期。
2.2 文件和數據庫結構
描述文件的數據庫結構。
2.2.1 外部文件結構
包括文件的邏輯結構、邏輯記錄描述、訪問方法。
2.2.2全局數據
“蹭一蹭”app的全局變量有:
系統時鍾Timer
2.2.3 文件和數據交叉索引
l 用戶信息文件在用戶管理和用戶個人信息(即“我的”)功能中;
l 課程表文件用於課程搜索功能中;
l 社區表文件用於社區功能中;
l 個人信息表文件用於個人信息模塊記錄搜索偏好功能中。
3 體系結構設計
這一部分主要描述軟件的邏輯組成接口,即軟件結構圖的繪制。但本小組使用的是面向對象的設計方法,因此,在此處用活動圖替換了數據流圖。
3.1數據和控制流復審
對需求規格說明書中要實現的功能進行歸納分析,對涉及的數據和控制流進行匯總和歸並,為概要設計做准備。
一般對數據流圖的精化分析包括兩個方面的內容,一是復審整個數據流圖,查看有沒有遺漏的地方,並補充和完善。二是分析每一個數據流圖(活動圖),去掉一些細節的內容,這里去掉數據存儲和外部用戶。
對部分數據流圖(活動圖)的精化場景描述如下:
待添加。
3.2 得出的程序結構
根據復審的數據流圖(活動圖),逐步得出軟件的邏輯結構組成。利用優化思想,對軟件結構圖進行優化設計,得出模塊層次結構適中的軟件結構圖。如下所示:
4.界面設計
這一部分主要給出界面設計的總體要求和界面序列,以及界面設計約規。
4.1 人機界面規約
給出界面風格,約定和操作要求,設計出用戶的所有界面。“蹭一蹭”手機APP的界面主要包括以下幾種。
(1)登錄首界面:該界面能夠輸入用戶名和短信驗證碼;用戶名是用戶的合法手機號,然后通過獲取驗證碼的方式進行登錄,同時,登錄界面還要有用戶注冊功能。
(2)蹭課查詢界面:該界面主要是通過用戶所選擇的搜索方式來進行搜索,最后顯示結果;搜索方式應分為按上課時間搜索,授課教師搜索,課程名字搜索。最后顯示的結果應包括課程名稱,課程編號,課程類型,開課學院,授課老師,上課時間,上課地點,學分,學期。同時對於自己喜歡的課程用戶可以收藏。
(3)公告板界面:該界面主要是用戶能通過提供的教務處和百度鏈接,及時查看消息,公告;在該界面處應有兩個鏈接,用戶在選擇某一鏈接時能實現跳轉功能。方便用戶閱讀信息。
(4)社區界面:該界面主要是顯示所有用戶的發言記錄,通過下拉界面還會不斷進行刷新,同時還應提供自己發言功能。
(5)個人信息界面:該界面主要是能夠進行個人信息設置和顯示偏好課程信息;設置的個人信息應包括昵稱,院系,頭像。其中院系應為華中農業大學十四個院系中之一,設置完成后,進行保存,所顯示的偏好課程信息應包括:偏好課程學期,偏好課程名稱,偏好課程編號,偏好課程學分,偏好課程類型,偏好開設學院,偏好課程老師姓名,偏好課程上課地點,偏好課程上課時間,教材名字。
(6)總控界面:是該軟件的主界面,主要完成與用戶的交互任務,接收用戶請求,並調用相應模塊。
4.2人機界面設計規約
給出界面序列關系,以及每個界面的操作規則和處理規則。“蹭一蹭”手機APP有以下幾種界面序列。
登錄首界面:
新用戶的界面序列:注冊—進入總控界面(搜索界面)。
老用戶的界面序列:登錄—進入總控界面(搜索界面)。
總控界面與蹭課查詢界面序列:總控界面—按所選擇的方式進行搜索—得出搜索結果。
總控界面與公告板界面序列:總控界面—公告板界面—點擊鏈接實現跳轉。
總控界面與社區界面序列:總控界面—社區界面—選擇發言或瀏覽—刷新界面。
總控界面與個人信息界面序列:總控界面—個人信息序列—選擇設置個人信息活查看偏好課程—保存或顯示結果。
5 接口設計
本部分主要描述模塊的接口類型和參數等。
待編碼確定后再進行更新
6 模塊過程設計
6.1查閱課程子系統
1.外部用戶
用戶:系統的合法用戶。
2.功能
通過課程名稱查閱課程;
通過上課老師查閱課程;
通過上課時間查閱課程。
3.用例模型視圖
4.活動圖
5.場景描述
用例名稱:通過課程名稱查閱課程。
范圍:查閱課程子系統。
級別:重要。
主要參與者:用戶(關注身份的合法性)。
涉眾及其關注點:無。
前置條件:合法用戶。
成功保證:進入app。
主成功場景:
(1)選擇按照課程名稱查閱課程按鈕。
(2)輸入課程名稱。
(3)得到查閱的課程結果。
擴展:
(2a)選擇了按照其他條件查找課程的按鈕
特殊需求:無。
技術和數據變元素:采用數據庫管理。
發生頻率:經常
用例名稱:通過上課老師查閱課程。
范圍:查閱課程子系統。
級別:重要。
主要參與者:用戶(關注身份的合法性)。
涉眾及其關注點:無。
前置條件:合法用戶。
成功保證:進入app。
主成功場景:
(1)選擇按照上課老師查閱課程按鈕。
(2)輸入課程名稱。
(3)得到查閱的課程結果。
擴展:
(2a)選擇了按照其他條件查找課程的按鈕
特殊需求:無。
技術和數據變元素:采用數據庫管理。
發生頻率:經常
用例名稱:通過上課時間查閱課程。
范圍:查閱課程子系統。
級別:重要。
主要參與者:用戶(關注身份的合法性)。
涉眾及其關注點:無。
前置條件:合法用戶。
成功保證:進入app。
主成功場景:
(1)選擇按照上課時間查閱課程按鈕。
(2)輸入課程名稱。
(3)得到查閱的課程結果。
擴展:
(2a)選擇了按照其他條件查找課程的按鈕
特殊需求:無。
技術和數據變元素:采用數據庫管理。
發生頻率:經常
6.2公告板子系統
1.外部用戶
用戶:系統的合法用戶。
2.功能
跳轉教務處網站;
跳轉百度網站。
3.用例模型視圖、
4 .活動圖
5 .場景描述
用例名稱:跳轉教務處網站。
范圍:公告板子系統。
級別:重要。
主要參與者:用戶(關注身份合法性)。
涉眾及其關注點:無。
前置條件:合法用戶。
成功保證:進入app並連接上互聯網。
主成功場景:
(1)選擇跳轉教務處網站按鈕。
(2)跳轉至教務處網站(仍在app內部)。
擴展:
(2a)選擇了跳轉其他網站的按鈕
特殊要求:無。
技術和數據變元素:
發生頻率:經常
用例名稱:跳轉百度網站。
范圍:公告板子系統。
級別:重要。
主要參與者:用戶(關注身份合法性)。
涉眾及其關注點:無。
前置條件:合法用戶。
成功保證:進入app並連接上互聯網。
主成功場景:
1) 選擇跳轉百度網站按鈕。
2) 跳轉至百度網站(仍在app內部)。
6.3社區子系統
1.外部用戶
用戶:系統的合法用戶。
2.功能
用戶發言;
用戶評價蹭課;
用戶推薦課程;
用戶查看其他用戶發言。
3.用例模型視圖
4 .活動圖
5.場景描述
用例名稱:發言。
范圍:社區子模塊。
級別:重要。
主要參與者:用戶。
涉眾及其關注點:用戶關注如何發言。
前置條件:合法用戶。
成功保證:登錄成功。
主成功場景:
(1)在文本框中輸入想要發言的內容。
(2)點擊發言按鈕以請求發言。
(3)發送發言請求。
(4)系統同意發言請求。
(5)系統接受發言文本並在界面上顯示出來。
拓展:
(5a)輸入內容是空白,發言失敗。
特殊需求:無
技術和數據變元素:用戶的發言內容既可以用文件來存儲,也可以在數據庫中存儲和管理。
發生頻率:經常。
用例名稱:評價蹭課。
范圍:社區子模塊。
級別:重要。
主要參與者:用戶。
涉眾及其關注點:用戶關注如何評價蹭課。
前置條件:合法用戶。
成功保證:登錄成功。
主成功場景:
(1)在文本框中輸入想要評價蹭課的內容。
(2)點擊發言按鈕以請求評價蹭課。
(3)發送評價蹭課請求。
(4)系統同意評價蹭課請求。
(5)系統接受評價蹭課文本並在界面上顯示出來。
拓展:
(5a)輸入內容是空白,評價蹭課失敗。
特殊需求:無
技術和數據變元素:用戶的評價蹭課內容既可以用文件來存儲,也可以在數據庫中存儲和管理。
發生頻率:經常。
用例名稱:推薦課程。
范圍:社區子模塊。
級別:重要。
主要參與者:用戶。
涉眾及其關注點:用戶關注如何推薦課程。
前置條件:合法用戶。
成功保證:登錄成功。
主成功場景:
(1)在文本框中輸入想要推薦課程的內容。
(2)點擊發言按鈕以請求推薦課程。
(3)發送推薦課程請求。
(4)系統同意推薦課程請求。
(5)系統接受推薦課程文本並在界面上顯示出來。
拓展:
(5a)輸入內容是空白,推薦課程失敗。
特殊需求:無
技術和數據變元素:用戶的推薦課程內容既可以用文件來存儲,也可以在數據庫中存儲和管理。
發生頻率:經常。
用例名稱:查看。
范圍:社區子模塊。
級別:重要。
主要參與者:用戶。
涉眾及其關注點:用戶關注如何查看。
前置條件:合法用戶。
成功保證:登錄成功。
主成功場景:
(1)點擊社區板塊。
(2)進入社區板塊。
(3)查看本頁發言、評價蹭課、推薦課程的內容。
(4)單擊下一頁查看下一頁的發言、評價蹭課、推薦課程的內容。
拓展:
(5a)無發言內容,查看失敗。
特殊需求:無
技術和數據變元素:用戶的評價蹭課內容既可以用文件來存儲,也可以在數據庫中存儲和管理。
發生頻率:經常。
6.4我的子系統
1.外部用戶
用戶:系統的合法用戶。
2.功能
設置個人信息(設置昵稱等);
查看偏好課程。
3.用例模型視圖
4 .活動圖
5.場景描述
用例名稱:設置個人信息(設置昵稱)
范圍:“我的”子系統。
級別:重要。
主要參與者:用戶(關注身份的合法性)。
涉眾及其關注點:無。
前置條件:合法用戶。
成功保證:進入app。
主成功場景:
(1)選擇設置個人信息按鈕。
(2)輸入昵稱。
(3)保存修改的信息。
擴展:
(2a)輸入不合法字符空格,單擊重填;
特殊需求:無。
技術和數據變元素:采用數據庫管理。
發生頻率:經常
用例名稱:查看偏好課程
范圍:“我的”子系統。
級別:重要。
主要參與者:用戶(關注身份的合法性)。
涉眾及其關注點:無。
前置條件:合法用戶。
成功保證:進入app。
主成功場景:
(1)選擇我的偏好課程按鈕。
(2)得到偏好課程的相關信息。
擴展:
無
特殊需求:無。
技術和數據變元素:采用數據庫管理。
發生頻率:經常
7.邏輯分析與建模
7.1搜索子系統建模
7.1.2類模型
7.2公告板子系統建模
7.2.2類模型
7.3社區子系統建模
7.3.2類模型
7.4我的子系統建模
7.4.2類模型
8.需求交叉索引
描述需求與模塊的關系,存在交叉部分,即共享模塊的調用關系。
l 用戶管理:登錄,注冊
l 搜索相關課程:按按上課時間搜索,授課教師搜索,課程名字搜索。
l 社區討論:保存記錄發言,瀏覽其他發言。
l 公告板服務:對教務系統和百度等網站的跳轉
l 個人頁面:設置個人信息(昵稱,院系),查看偏好課程信息。
本文檔由蹭一蹭軟工項目小組撰寫,任何復制、使用本文的全部或部分內容的行為必須先征得小組同意,謝謝。