工程實踐項目:數據可視化學生管理系統
采取的研究方法:采用面向對象的編程,結合網絡和數據庫技術,實現控制和管理。通過系統分析、需求分析、概要設計、詳細設計、編寫代碼、軟件測試、軟件維護、經驗方法總結等一系列實驗方案,實驗軟件的開發。
用戶的特點
為保證系統安全高效的運行,本系統把用戶划分為3類:教務處(管理員)、教師和學生。不同的用戶在系統中的作用和權限也有所不同,所以它所需要完成的功能也就不同。
本系統所有的功能:
1) 學生信息管理,除學生基本信息外,還可管理學生所選課程、成績等;
2) 教師信息管理,包括教師個人的基本情況和任課情況;
3) 項目及班數的設定:根據學校教務處所排課進行班級數及人數的統計,然后根據統計結果進行項目及班數的設定;
4) 排課:根據上一步分班情況安排任課教師;
5) 報表生成及輸出:生成教師擔任課程分班表、按項目生成學生成績表、按學生行政班生成成績表及所有報表的輸出。
教師在本系統的功能:查詢學生選課情況、自己任課情況、獲取自己所擔任課程分班表、錄入及修改成績等。
學生在本系統的功能:查詢本人信息、教師任課信息、選課、選課信息查詢、成績查詢。
需求規定
對功能的規定
1.可實現學生選課注冊
2.方便實現學生選課信息查詢
3.可對學生成績檔案進行管理,成績表單生成簡便。
4.安全有效的用戶區分,管理
5.檔案數據的高安全性,保密性
6.有幫助文檔
對性能的規定
使用穩定,操作性能好,操作方法易於掌握,系統的安全性強
設計思想
用戶的需求具體表現在對各種信息的提供、編輯、處理及查詢統計上。這就要求數據庫結構能充分滿足各種信息的輸入、處理和輸出。通過分析學生選課管理系統的現實需求,學生選課管理系統各環節的基本數據及數據處理流程,在與管理人員溝通、交流與探討的基礎上,得到以下學生選課系統的數據流程圖
項目中的用例建模
建立用例模型
使用用例的方法來描述系統的功能需求的過程就是用例建模,用例模型主要包括以下兩部分內容:
- 用例圖(Use Case Diagram)
確定系統中所包含的參與者、用例和兩者之間的對應關系,用例圖描述的是關於系統功能的一個概述。 - 用例規約(Use Case Specification)
針對每一個用例都應該有一個用例規約文檔與之相對應,該文檔描述用例的細節內容。
在用例建模的過程中,我們建議的步聚是先找出參與者,再根據參與者確定每個參與者相關的用例,最后再細化每一個用例的用例規約。
項目用例圖
學生用例圖
教師用例圖
管理員用例圖
業務建模
業務建模是以軟件模型方式描述企業管理和業務所涉及的對象和要素、以及它們的屬性、行為和彼此關系,業務建模強調以體系的方式來理解、設計和構架企業信息系統。
業務建模基本步驟
- 收集應用業務領域的信息。聚焦在功能需求層面,也考慮其他類型的需求和資料;
- 頭腦風暴。列出重要的應用業務領域概念,給出這些概念的屬性,以及這些概念之間的關系;
- 給這些應用業務領域概念分類。分別列出哪些是類、哪些屬性和屬性值、以及列出類之間的繼承關系、聚合關系和關聯關系。
- 將結果用 UML 類圖畫出來。
類:教師,學生,教務員,課程。
屬性:教務員編號,教務員姓名,密碼,課程號,學號,教工號,教室,上課時間,學號,學生姓名,班級,密碼,專業,教工號,教師姓名,密碼。
業務概念分類並添加屬性。
UML類圖
數據庫的設計
通過對學生選課管理系統工作內容和相關數據流程分析,根據學生選課管理系統的需要,就可以設計出能滿足用戶需求的各種實體,以及它們之間的關系,由此得到數據庫所支持的數據模型,即數據庫的邏輯結構,具體情況如下:
- 學生信息表:開學時將教務處提供的學生信息庫按系統的要求修改庫結構並導入Access數據庫中,應包括如下信息:姓名、學號、院系、班級、性別、所選課程、任課教師、備注等。
- 教師信息表:包括教師姓名、教師代碼、性別、年齡、職稱、主要教授課程、兼任課程等。
- 課程信息:包括課程目錄、課程、課程代碼、教學內容、任務與目的、考試方法、要求等。
- 課程表:包括課程名稱、課程編號、任課教師、課程學分、上課時間。
- 成績單列表:包括學生姓名、學號、院系、班級、課程、任課教師、成績。
數據庫概念設計
-
根據以上數據流圖導出數據庫所需數據項和數據結構
學生:學號,姓名,性別,生日,所在院系,所在班級:
課程:課程號,課程名,講師,上課時間,地點,課程簡介
選課結果:記錄號,選課學生,所選課程
學籍變更記錄:記錄號,變更情況,記錄時間,詳細描述
-
數據庫概念結構設計的E-R 圖
說明:E-R圖中矩形代表實體,菱形代表實體間的聯系,圓角矩形代表實體的屬性
- 數據庫邏輯結構設計
根據以上E-R圖,需要五個基本表:學生信息表、課程信息表、選課結果表、獎懲信息表、其中教師信息是處部表,不列出,由於使用打開系統的不光是教務人員,每個學生都要登錄到選課系統進行課程的選擇,因此,需要對不同的登錄人員進行密碼的認證和權限的限制,防止越權行為,用戶名,密碼,權限,保存在一個表中。
數據模型
(1)學生
字段名稱 | 字段類型 | 字段描述 |
---|---|---|
Student_id | int | 主鍵 |
account | varchar | 賬號 |
password | varchar | 密碼 |
name | varchar | 姓名 |
varchar | 電子郵件 | |
class | varchar | 班級 |
lessons | set | 課程 |
(2)教師
字段名稱 | 字段類型 | 字段描述 |
---|---|---|
Teacher_id | int | 主鍵 |
account | varchar | 賬號 |
password | varchar | 密碼 |
name | varchar | 姓名 |
varchar | 電子郵件 | |
course | varchar | 課程 |
(3)管理員
字段名稱 | 字段類型 | 字段描述 |
---|---|---|
Administrator_id | int | 主鍵 |
Account | varchar | 賬號 |
password | varchar | 密碼 |
name | varchar | 姓名 |
varchar | 電子郵件 | |
jurisdiction | int | 權限 |
(4)課程
字段名稱 | 字段類型 | 字段描述 |
---|---|---|
Course_id | int | 主鍵 |
Course_name | varchar | 課程名稱 |
Course_location | varchar | 上課地點 |
Course_time | varchar | 上課時間 |
Course_weeks | varchar | 課程的周數 |
Course_teacher | varchar | 授課老師 |
Course_credit | int | 課程學分 |
(5)成績
字段名稱 | 字段類型 | 字段描述 |
---|---|---|
Course_id | Int | 主鍵 |
Course_grade | set | 成績表 |
Course_student | set | 學生表 |
概念原型
概念原型簡介
概念是人對能代表某種事物或者發展過程的特點及其意義所形成的思維結論,而概念原型是一種虛擬化的、理想化的軟件產品形式。我們可以得到這樣的公式:概念原型=用例+數據模型。
項目中的概念原型
概念原型需要結合具體的用例與數據模型去分析,就好像程序是由算法和數據結構兩部分組成的。
本項目中運用到了學生用例、教師用例和管理員用例。涉及的數據模型為學生、教師、管理員、課程和成績表。
學生用戶輸入學號和密碼,登錄系統,可以點擊個人中心修改個人信息(登錄密碼、郵箱、出生年月、聯系方式等);在選課允許的時間內,選擇和退選課程,查看課表和成績,這些都是業務操作的結果。在教師用例下,教師用戶登錄后,可以查看自己的課程安排,在期末的時候也能對學生的課程進行成績評定。而對於管理員用例來說,具有最高的權限,統籌課程、用戶和成績的管理,對於這些信息進行全局的維護與增刪改查,完成相關業務工作后,管理員即可退出系統。
工作過程舉例
學生進行登錄,選擇學生窗口登錄,填入賬號以及密碼進行登錄,系統進行校驗,完成登錄。學生可以在登錄界面點擊修改密碼,通過郵件認證方式進行修改確認;學生可以根據課程名稱,選擇課程,或者推選課程,並可以查看課程成績;教師登錄后,可以查看自己課程信息,如課程地點時間,並對學生打分;管理員掌管對用戶信息以及成績課程數據的增刪改查最高權限。
總結
通過對工程實踐項目的概念模型和需求分析,讓我對項目的理解更加深入,整個開發思路變得更加清晰,這對項目的進展提供了很大的幫助,相信項目可以完成的更快更好。