1. 引言
1.1 編寫目的
該文檔是關於微信小程序自習吧的功能和性能描述,重點描述了小程序的功能需求,並作為小程序開發設計階段的主要輸入。
本文檔的預期讀者包括:triple兔成員,軟件工程老師,用戶。
1.2 項目背景
項目名稱:自習吧。
項目提出者:華中農業大學信息學院Triple兔軟件工程小組。
用戶:全校學生。
1.3 縮寫說明
華農:華中農業大學。
Triple兔:華中農業大學信息學院triple兔軟件工程小組。
1.4 版本信息
版本編號
|
修改日期
|
修改后版本 |
修改內容概述
|
1.0.0
|
2019.6.20
|
|
對圖進行修改
|
2. 任務概述
2.1 系統定義
2.1.1 小項目來源及背景
該項目起初源自Triple兔小組一名成員的想法,經過討論權衡分析最終確定以該想法----華中農業大學空教室查詢作為項目主題,並在此基礎上進行功能拓展:約自習、蹭課,以微信小程序為應用平台,為華農全體學生提供便利的空教室查詢途徑。
2.1.2 項目要達到的目標
該軟件是為了讓學生時時刻刻都能方便找到空教室而研發的,避免每次在找空教室自習的時候浪費很多時間;並且會提供約自習的功能,這樣可以讓同學們找到合適的人一起結對學習,互相監督,有助於提高同學們的學習效率;另外還會提供蹭課功能,幫助同學們方便地根據興趣充分利用校內資源拓展自己。
線上問卷調查顯示該項目很具有實用性,是大多數同學們一致希望能研發出來的產品。
2.1.3 系統整體結構
下圖給出了系統的物理組成結構:
2.1.4 系統各部分組成、與其他部分的關系、各部分的接口等
該軟件是建立在微信原生系統之上,微信提供所有接口。
2.2 運行環境
2.2.1 設備環境
微信內置運行環境。
2.2.2 硬件環境
只針對移動端設備(手機/平板)使用。
2.2.3 軟件環境
支持android、ios系統和各種屏幕尺寸。
2.2.4 網絡環境
設備需要聯網。
2.2.5 操作系統
手機登錄微信小程序。
2.2.6 應用環境
系統總工作流程如下圖所示:
該軟件主要分為四大功能:
1. 登錄
2. 查詢空教室
3. 找同校生約自習
4. 蹭課
描述:
首先用戶打開小程序,一開始的頁面會停留在空教室信息頁面上,在用戶選擇教學樓,樓棟,樓層之后,顯示該樓層的教室的狀態,空閑或忙碌。
點擊tabbar左端頁面,會檢查是否已登錄授權,如果未授權,跳轉到授權頁面;如果已授權,則進入約自習頁面,會出現不同學生所發布的約自習動態,在這里你可以找到自己想要約自習的對象,發布自習邀約的同學會留下聯系方式,用戶自行聯系該同學。注意,用戶不可以在其他人的自習邀請下評論。當邀約達成,發出邀約者自行刪除邀請,該邀請將不再展示在公共、個人頁面中。用戶填寫了約自習信息后,將用戶信息保存到服務器。在約自習界面添加邀約時,會要求用戶填寫邀約信息和個人信息。用戶可在“我的”版塊查看自己發布的邀約,並且可以修改或刪除該條自習邀約。
點擊tabbar右端頁面,是蹭課界面,在這里你可以在頁面上方的搜索欄里查詢自己想蹭的課的課程信息,可以根據專業、課程名、教師名檢索。
2.3 條件限制
2.3.1 列出進行本軟件開發工作的假定和約束,如經費限制、開發期限等
本項目是在微信開發者工具上進行前端開發的,后端用java語言在idea上編程,本項目由Triple 兔小組成員自行完成,並由軟工老師進行指導提建議而完成。無開發經費,並進行了長達半個學期的開發。
2.3.2 列出本軟件的最終用戶、用戶的教育水平和技術專長
最終用戶面向全體華中農業大學學生,使用微信即可登錄此微信小程序。
2.3.3 列出本軟件的預期使用頻度等
經過前期問卷調查,發現該小程序得到廣大華中農業大學學生一致認可,應該會被廣泛運用,用戶數量會很多,可支持很多人共同使用。
3. 數據描述
3.1 靜態數據
1. 全校教學樓課程情況
2. 全校開設的所有課程信息
3. 用戶身份信息
3.2 動態數據
1. 用戶發布的約自習信息
3.3 數據庫描述
本系統需要導入全校課表、需要存儲用戶身份信息、需要存儲用戶發布的約自習信息,涉及到數據庫的使用,數據庫用MySQL 5.7。
3.4 數據字典
數據字典描述系統的實體-關系圖中實體和關系,以及數據流圖中的過程、數據流、數據存儲的部分內容。
數據項名
|
編號
|
數據類型
|
長度
|
用戶ID
|
user_id
|
int
|
11
|
用戶名
|
user_name
|
varchar
|
20
|
性別
|
sex
|
varchar
|
8
|
專業
|
major
|
varchar
|
40
|
學院
|
sdept
|
varchar
|
40
|
自習銘
|
motto
|
varchar
|
100
|
便簽
|
note
|
varchar
|
255
|
微信開放ID
|
open_id
|
varchar
|
100
|
會話ID
|
session_key
|
varchar
|
255
|
約自習ID
|
invitation_id
|
int
|
11
|
期待性別
|
opposite_sex
|
char
|
8
|
描述
|
illustration
|
text
|
0
|
關鍵字
|
key_words
|
varchar
|
255
|
聯系方式
|
contact_information
|
varchar
|
255
|
課程ID
|
id
|
varchar
|
20
|
星期幾
|
weekday
|
varchar
|
20
|
上課節次
|
class_time
|
varchar
|
40
|
上課周
|
week
|
varchar
|
40
|
具體上課周
|
week_detail
|
varchar
|
255
|
課程編號
|
cno
|
varchar
|
20
|
課程名稱
|
cname
|
varchar
|
100
|
教師名稱
|
tname
|
varchar
|
100
|
教學樓名稱
|
site_name
|
varchar
|
100
|
詳細上課時間
|
class_time_detail
|
varchar
|
400
|
詳細上課地點
|
site_name_detail
|
varchar
|
400
|
課程性質
|
course_nature
|
char
|
20
|
教學樓名稱
|
building
|
varchar
|
100
|
專業
|
major
|
varchar
|
300
|
3.5 數據采集
系統運行時需要先預讀數據,從數據庫中導入教室及課程信息。系統啟動時,需要讀取用戶選擇的教學樓和座號的結果信息。
4. 功能需求
4.1 功能划分
4.1.1 系統功能組成
查詢空教室、發布自習邀約、查看自習邀約、檢索自習邀約、管理自己發布的自習邀約、展示可蹭課程的信息、檢索想蹭的課、自習銘(用來激勵自己自習的話)修改與展示
4.1.2 功能編號和優先級
系統功能優先級如表所示:
編號
|
名稱
|
優先級
|
描述
|
主要發起者
|
1
|
查詢空教室
|
極重要
|
展示華農所有教室的實時狀態
|
系統
|
2
|
發布自習邀約
|
重要
|
發布者發布自習邀約
|
用戶、系統
|
3
|
查看自習邀約
|
重要
|
展示自習邀約
|
系統
|
4
|
檢索自習邀約
|
重要
|
提供按關鍵詞檢索自習邀約
|
用戶
|
5
|
管理自己發布的自習邀約
|
重要
|
查看、修改、刪除歷史發布
|
用戶
|
7
|
檢索想蹭的課
|
重要
|
支持關鍵詞檢索相關課程
|
用戶
|
8
|
自習銘修改與展示
|
次要
|
展示用戶自定義(可隨時修改)的自習銘
|
用戶
|
4.1.3 功能定義
(1) 查詢空教室:在小程序“首頁”按教學樓、樓棟號、樓層展示華農所有教室的實時狀態(暫時不支持顯示教室是否被借用)
(2) 發布自習邀約:發布者點擊發布按鈕,留下邀約、聯系方式,同時需要用戶填寫個人信息,最終生成一條自習邀約
(3) 查看自習邀約:在“約自習頁面”,默認按發布時間先后順序展示自習邀約
(4) 檢索自習邀約:在“約自習頁面”頂部的搜索欄內,用戶可按發布者設置的關鍵詞檢索自習邀約
(5) 管理自己發布的自習邀約:在“我的發布”頁面,用戶可查看、修改、刪除歷史發布(默認按時間先后展示)
(6) 展示可蹭課程的信息:在“蹭一蹭”頁面,按學院、年級、專業展示課程,點擊課程可查看詳情
(7) 檢索想蹭的課:在“蹭一蹭”頁面頂部的搜索欄內,用戶可按關鍵詞(專業名稱、課程名稱、教師名字)檢索感興趣的課程
(8) 設置個人信息:在“約自習”頁面,點擊添加約自習邀約button需要用戶同時填寫個人信息,包括:昵稱、性別、專業、期待的對方性別和自習銘。
(9) 自習銘修改與展示:在小程序“首頁”展示用戶自定義(可隨時修改)的自習銘,來勉勵自己好好學習天天向上。
4.2 功能描述
4.2.1 板塊組成
自習吧微信小程序包含四個板塊:空教室查詢、約自習、蹭課、信息管理。
4.2.1.1總數據流圖:
4.2.2 功能划分
4.2.2.1查詢空教室板塊
1.外部用戶
用戶:合法用戶
2.功能
查詢空教室:查詢某棟教學樓某樓層的空教室信息
3.數據流圖
4.2.2.2約自習板塊
1.外部用戶
用戶:合法用戶
2.功能
發布自習邀約
瀏覽自習邀約
刪改自己發布的自習邀約
3.數據流圖
4.2.2.3蹭課板塊
1.外部用戶
用戶:合法用戶
2.功能
蹭課:查詢用戶感興趣的課程信息
3.數據流圖
4.2.2.4信息管理板塊
1.外部用戶
用戶:合法用戶
2.功能
信息管理:填寫或修改個人信息和自習銘
3.數據流圖
5. 性能需求
5.1 數據精確度:
要按照嚴格的數據格式輸入,對符合數據格式要求的輸入進行提示。
5.2 時間特性
1. 軟件啟動時間:
2. 系統實時響應時間:小程序使用過程中,對用戶在各個功能模塊點擊操作的響應時間需在用戶的容忍范圍以內,一般要求小於1秒
3. 數據的轉換傳送時間:對小程序不同模塊間的數據交互,要求數據的轉換和傳送時間不得超過0.5秒
4. 數據更新時間:用戶刷新操作后0.1秒,進行數據更新
5.3 適應性
小程序構建於微信平台之上,為手機端程序,支持用戶觸屏點擊。靈活性要求軟件能夠方便的適應精度和有效時限的變化。
6. 運行需求
6.1 用戶界面
該軟件主要功能為查詢課表、約自習、蹭課,主界面要求簡介易懂,便於操作。約自習界面采用卡紙模式,每位用戶發布的帖子由時間順序依次排列,方便用戶進行查找,篩選。
6.2 軟件接口
1. 該軟件為基於微信平台開發的微信小程序,適用於各種手機系統,如安卓,ios等。
2. mysql數據庫
3. JDK1.8以上
6.3 硬件接口
1. 微信雲服務器
2. 遠程騰訊雲服務器
3. 用戶手機微信小程序客戶端
6.4 故障處理
1. 在軟件的使用過程中,如果出現軟件使用故障,應當具有報警信息提示。
2. 當軟件依賴的文件損毀或丟失時,軟件以對話框的形式進行提示,報告損毀或丟失的文件等相關錯誤,以幫助用戶及時修復軟件的正常功能。
3. 對軟件需要用戶輸入項的情況,如果發生缺少輸入項、輸入項格式錯誤或不符合規則等情況,軟件應以合理的方式予以提示。
4. 為了防止用戶由於未及時保存而導致信息丟失的情況,軟件提供定時保存機制,每隔一定時間自動對信息進行保存,從而保證用戶數據的安全。