第三章 系統架構與實作
3.3 系統使用者介面
3.3.2 使用 JavaFX 建制 GUI
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
36
圖 3.3.9:本系統 DSL 完整範例
3.3.2 使用 JavaFX 建制 GUI
JavaFX 是一個構建於 Java 技術上的平台。其目前的版本是 2.2,JavaFX 也 同時向下兼容了較舊的版本。圖 3.3.10 為 JavaFX 的架構圖:
圖 3.3.10:JavaFX 架構
圖 3.3.11:排課系統 GUI 流程
設計 GUI 的過程中,為求排課過程資料的正確性,我們將整個系統使用流程 分成四個步驟:前置設定、資料設定、排課以及結果顯示。流程中,每一個步驟 都含有其必需性,上一步驟未完成則無法進行下一個步驟,例:前置設定未完成 則無法進行資料設定。整個排課設定流程如上圖 3.3.11 所示。系統資料設定完
結果顯示
所有課程結果 個別教室結果 個別教師結果
排課
儲存所有資料 開始排課
資料設定
排課模式 教師喜好 教室狀況 課程資訊
前置設定
教師名稱 教室名稱 課程名稱 教室設備需求 時段代碼序列
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
37
成後,在儲存資料時,希統將把資料自動儲存成兩種檔案類型:YYC 檔以及 XML 檔。其中 YYC 檔為此 GUI 系統的讀取用檔。
3.3.2.1 BaseX 資料庫伺服器
在 GUI 模式中,我們的資料存檔其中之一採用 XML 格式,其中包含了許多關 於科系排課時的相關資訊,譬如:教師資料、教室資料以及課程資料等等。考量 到此等資料的可用性以及延展性,我們搭配了 BaseX 來使我們的存取檔可以和外 界有更多的互動性。
圖 3.3.12:BaseX 與系統關係
BaseX 是 2005 年由康斯坦茨大學首先開始研發,然後進而延展成一個採用 XPath/XQuery 技術的多功能性資料庫。透過 BaseX Client/Server 技術,我們 將我們的資料放置到網路上,可以方便更多有需要的人來查詢資料,如上圖 3.3.12 所示。
此外,由於我們的排課結果採用 XSLT 的方式顯示,所以我們同時也將排課
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
38
完成的所有排課解放置到 BaseX 上提供外界查詢。
圖 3.3.14:資料上傳至 BaseX
如上圖 3.3.13 中我們示範如何將資料上傳至 BaseX。使用者先在 BaseX 上 建立一個資料庫 (databases),並所有資料上傳之後,此資料庫即可提供使用者 做 XQUERY 查詢,如下圖 3.3.14。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
39
圖 3.3.14:BaseX 查詢資料結果顯示
3.3.2.2 前置設定頁面
圖 3.3.15:排課系統前置頁面
在進行排課前,系統需要蒐集現有關於排課的相關資料,以便在排課的過程 中,給予使用者輔助。因此,在前置頁面中,我們需要獲得更多資訊,其中包含:
教室現有設備、教師名稱、教室名稱、課程名稱、一週上課天數以及學校時段代 碼序列等等。這些資訊都將在之後的資料設定時提供使用者排課資訊,如上圖 3.3.15 所示。然而,系統在前置資料尚未獲得以前,除了前置設定頁面外,其 餘的頁面將暫不開放選擇,如下圖 3.3.16。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
40
圖 3.3.16:排課系統未開放頁面
3.3.2.3 共同教師頁面
圖 3.3.17:排課系統新增共同教師頁面
考量到課程授課老師可能會有共同教師,也就是同一堂課可能由兩位以上的 教師來共同授課的狀況,我們必須將這種可能列入考量,因此使用者可透過共同 教師的頁面選擇,來從現有的教師名稱中選擇共同教師名單候選。如上圖 3.3.17 所示:
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
42
6. 設定搜尋秒數
我們建議給與系統更多的時間替使用者找尋更好的可能解,但使用者依然可 以給予搜尋秒數的限制。
7. 指定搜尋模式
搜尋模式中,我們提供所有解搜尋以及最高加權解搜尋兩種模式。
8. 最高加權解所需數目
使用者可以指定最高加權解模式中所需之結果數目,系統將依照最高加權值 作為排序依據,並於其中隨機選定結果,避免結果落入區域最佳解。
9. 不安排課程時段
依照各系所的需求不同,系統提供節次時段限制,如節次 1 選定不安排課程,
則除了有指定節次的課程之外,其餘課程將不會安排在節次 1 的上課時間。
10. 不安排課程時段
系統亦提供時間的區段限制。如節次代碼為 1234 的前置設定,若選定星期一 的 12 時段不給予排課,即選定輸入為 112 時,則除了指定節次且指定週上課 日的課程之外,其餘課程將不會安排在星期一節次 12 的上課時間。
排課模式頁面如圖 3.3.18 所示:
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
43
圖 3.3.18:排課系統模式設定頁面
3.3.2.5 儲存教師資料頁面
我們提供各系所老師對於每個學期排課上的喜好選擇。諸如:喜好時段、厭 惡時段、教師無法上課時段以及喜好教室。需注意的是,時間選擇有輸入方式之 限制。若學校節次代碼序列為 123456789,則選定星期一時段 678 的輸入方式為 1678。教室資料設定頁面如圖 3.3.19 所示:以下為各選擇區塊進行說明:
1. 教師喜好時段:
教師喜好時段為週上課日及日上課時段的交集、如星期一的 123 節次。
2. 教師厭惡時段:
教師厭惡時段亦為週上課日及日上課時段的交集、如星期二的 234 節次。
3. 教師無法上課時段:
教師厭惡時段同為週上課日及日上課時段的交集、如星期 2 的 234 節次。選 定後,該教師的所有課程將不會排入至所有指定的無法上課時段。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
44
4. 教師個人加權增額值:
個別教師可指定個別的加權增額值,系統除了排課模式頁面的加權增額值外,
此加權增額值亦在篩選課表時被考慮。例:系統的加權增額值設定為 10、個 人加權增額值設定為 5,則該老師的課加權增額值為 15。此加權增額值同步 增額於所有系統增額模式。
5. 教師喜好教室:
教室可選擇多個喜好教室。
圖 3.3.19:排課系統教師資料頁面
3.3.2.6 儲存教室資料頁面
除了上課時段的設定之外,依據每個教室資源限制的不同,也可能會影響到 課程的分配結果。我們依照每間教室的不同情況,給予其不同的描述。
1. 教室可容納人數
教室可容納的學生數量。
2. 教室現有設備
教室所提供的設備、如:投影機、麥克風、冷氣等。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
45
3. 教室不開放時間
不允許學生或老師使用的時間,該教室於指定的時段內將不會安排課程。
教室資料設定頁面如圖所示 3.3.20:
圖 3.3.20:排課系統教室資料頁面
3.3.2.7 儲存課程資料頁面
課程的資料是決定排課結果的重要一環。在課程資料設定頁面中,使用者給 予學期每堂課不同的描述,這些描述都將影響排課結果的搜尋。我們提供授課教 師、課程總節次、授課人數、修課學級、課程所需設備、課程不安排教室、課程 修別、週上課指定日、日上課指定時段、上課指定教室等課程相關資料。同時,
使用者亦可決定該課程是否加入排課結果的搜尋過程。以下對於課程資料設定頁 面選項更多描述:
1. 授課教師
課程的授課老師,同老師的課程將被安排在不同的時段內。
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
47
圖 3.3.21:排課系統課程資料頁面
3.3.2.8 開始排課頁面
在排課模式設定、教師資料設定、教室資料設定以及課程資料設定頁面設定 完成後,系統將要求資料儲存以檢查所有資料設定上是否有錯誤或尚未完成,所 有資料儲存順利完成後即可開始排課。開始排課頁面如圖 3.3.22 所示:
圖 3.3.22:排課系統開始排課頁面
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
48