對選課系統的需求分析


一、選課系統概述

  由於我的工程實踐項目是NLP,對算法無法進行需求分析。所以我借用比較常見的學生選課系統進行需求分析,作為本次作業。選課系統中的最主要的使用者是學生與管理員,后面將圍繞一個簡單的選課系統進行需求分析,不考慮搶課等復雜的功能。

 

 

二、用例圖

  用例圖如下所示,選課系統中兩個主要的角色:管理員、學生。管理員負責課程信息、學生信息與選課規則的增刪改查;而學生可以選課、退課、查看課程信息、查看自己的課表,同時學生可以修改自己的個人信息,但是修改的權限低於管理員,像學號等信息學生不能修改。

 

 

 

 

 三、業務類圖

  選課系統的業務類圖如下所示。學生與管理員都有登錄登出的方法,而課程、選課規則與學生都有增刪改查。學生信息包括學號(id)、姓名(name)、性別(sex)、郵箱(email)、班級(class)、年級(grade);課程包括課程編號(id)、課程名字(name)、教室(classroom)、老師(teacher)、上課周(weeks)、上課時間(times)、課程介紹(comment)、學分(score)、選課人數上限(capacity);管理員只包括編號(id)、姓名(name)與權限(authority)。

  

 

 

 

 

四、數據模型

Student表

列名 數據類型 數據長度 是否可為NULL 是否唯一 是否為主鍵 注釋
UUID string 256 N Y Y 通用唯一識別碼
sId string 10 N Y N 學號
class string 256 N N N 班級
grade string 256 N N N 年級
passwd string 256 N N N 密碼
name string 20 N N N 姓名
sex string   4 N N N 性別
authority int 1 N N N 權限
email string 256 Y N N 郵箱

 

 

 

 

 

 

 

 

 

 

Administrator表

列名 數據類型 數據長度 是否可為NULL 是否唯一 是否為主鍵 注釋
UUID string 256 N Y Y 通用唯一識別碼
aId string 10 N Y N 管理員統一編號
passwd string 256 N N N 密碼
name string 20 N N N 姓名
sex string   4 N N N 性別
authority int 1 N N N 權限
email string 256 Y N N 郵箱

 

 

 

 

 

 

 

 

 

 

Course表

列名 數據類型 數據長度 是否可為NULL 是否唯一 是否為主鍵 注釋
UUID string 256 N Y Y 通用唯一識別碼
cId string 10 N Y N 課程統一編號
teacher string 256 N N N 授課老師姓名
name string 20 N N N 課程名稱
weeks string   256 N N N 開課周
times string 256 N N N 上課時間
score float 10 N N N 學分
classroom string 256 N N N 上課地點
comment string 256 N N N 課程描述
capacity int 3 N N N 選課人數上限

 

 

 

 

 

 

 

 

 

 

 

 

Rule表

列名 數據類型 數據長度 是否可為NULL 是否唯一 是否為主鍵 注釋
UUID string 256 N Y Y 通用唯一識別碼
rId string 256 N Y N 規則統一編號
cId string 256 N Y N 課程統一編號
grade string 256 N N N 限選年級
name string 20 N N N 課程名稱
class string  256 N N N 限選班級
startTime string 256 N N N 生效開始時間
endTime string 256 N N N 生效結束時間

 

 

 

 

 

 

 

 

 

 

CourseSelection表

列名 數據類型 數據長度 是否可為NULL 是否唯一 是否為主鍵 注釋
UUID string 256 N Y Y 通用唯一識別碼
sId string 10 N Y N 學號
cId string 256 N Y N 課程統一編號

 

 

 

 

 

五、概念原型及工作流程

  學生、課程、與選課規則信息全部由管理員統一導入、修改、刪除。學生可以修改自己部分個人信息,但是不能修改學號、姓名、性別等關鍵信息。在選課時,按照提前導入的選課規則規定什么時間段內哪個年級哪些班的學生可以選什么樣的課。其中涉及可能存在的列表類型的數據統一使用json格式的字符串存儲。在后台,按照微服務的思想,不同的功能分開實現,服務與服務之間通過kafka通信,避免服務之間重復調用造成邏輯混亂與流程延遲。在數據庫方面,對了應對選課時間段內的集中操作,可以先使用redis,待選課完成再同步到數據庫中。

  在查找方面,可以使用Elasticsearch完善查找功能,方便同學根據關鍵詞准確有效地查找課程信息,完善自己的課表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM