【正文】
rsities and colleges enrolls new students , teacher scale ceaselessness expands , the shorting arranging class by hand is more and more outstanding. But adopt a puter to arrange class, information in teaching can be clear at a glance , study a course to optimizing a student39。目前,我院的排課主要采用手工編排方法。同時因為人的思維的隨意性,排課表時非常靈活,沒有嚴格的工作步驟,所以人工排出的課表隨意性大。計算機排課,它是把排課問題化為計算領域的有約束的時空組合優(yōu)化問題進行求解的。由于實際中遇到種種難題,并未能取得滿意成果。進入20世界90年代以后,國外對課表問題的研究仍然十分活躍,比較有代表性的有印度的Vastapur大學管理學院的Arabinda Tripathy、加拿大Montreal大學的Jean Aubin和Jacques Ferland等。但是這些課表編排系統(tǒng)往往比較依賴于各個學校的教學體制,不宜于進行廣泛推廣。如何利用有限的師資力量和有限的教室資源,排出一個合理的課表,對維護高職院校正常的教學秩序和提高教學效果有重要的作用。采用 Visual Basic 為開發(fā)工具,完成了系統(tǒng)功能的開發(fā)。第一章是緒論,主要介紹了系統(tǒng)的開發(fā)背景,以及國內計算機排課的研究現狀,說明了系統(tǒng)需要解決的主要問題和本文的組織結構。第五章是計算機排課系統(tǒng)的實現過程,簡要介紹了排課系統(tǒng)的幾個功能模塊的實現過程,同時對教學計劃和排課算法兩個關鍵問題進行描述,說明了排課系統(tǒng)設計的理論依據。教務處和系部作為課表的設計者和管理者,重點在于對課程的安排和統(tǒng)計數據的分析;教師作為教學計劃的執(zhí)行者,是信息的源頭。 排課處理課程的編排不是任意的,它是一個時間、教師、學生、教室四者的組合規(guī)劃問題,為了達到最好的教學效果應遵循一定的要求。例如:可查詢某班的課程安排、某位教師的課程安排、以及某個教室的使用情況。實行計算機排課的唯一出路就是將排課任務分解,化整為零,實行分布式計算機排課。RUP不是一個簡單的過程,而是一個通用的過程框架,可用于各種不同類型的軟件系統(tǒng)、各種不同的應用領域、各種不同類型的組織、各種不同的功能級別以及各種不同的項目規(guī)模。RUP中的軟件生命周期在時間上被分解為四個順序的階段,分別是:初始階段(Inception)、細化階段(Elaboration)、構造階段(Construction)和交付階段(Transition)。對這些用例要標明其重要程度,對那些影響系統(tǒng)架構的用例要標以很高的重要程度。第四步:編寫整個項目全部迭代計劃(只此一次),每個迭代周期為1周~2周,迭代周期必應該過長。第六步:如果某個類的對象,具有一些非常重要的狀態(tài),則為該類創(chuàng)建狀態(tài)圖,狀態(tài)圖中的事件,動作和行為最后會轉化成相應類的操作。根據所確定的UML模型,將設計階段所確定的類圖和定義的類,轉換成實際開發(fā)工具中所支持的類,并編寫代碼完成各個類的函數實現,在編寫代碼的過程中,可以對設計模型中的缺陷與不足進行相應的修改;創(chuàng)建系統(tǒng)的實現模型,可以使用組件圖和配之圖來表示。RUP模式的最大優(yōu)點是按照角色(Actor)識別用例(Use Case)的方法,該方法可以較為直觀地建立起系統(tǒng)的架構,通過反復識別,避免需求中的漏項。 圖23 系統(tǒng)功能包圖在每個包中,通過用例圖來描述系統(tǒng)的參與者(Actor)和系統(tǒng)的用例(Use Case),每一個用例通過用例活動圖進行詳細的描述。 圖24 排課管理初始用例上面所列出的用例模型,基本上描述了排課系統(tǒng)的主要的功能,將這些基本功能實現,就形成了一個簡單的排課管理系統(tǒng)。圖25 排課管理用例圖 這里給出的用例模型是當前迭代中進行的,并不表示該模型是最優(yōu)最全的,模型會隨著迭代開發(fā)的不斷深入而不斷優(yōu)化和完善。在使用活動圖對自動排課用例進行描述的步驟中,有些活動可能需要優(yōu)化,包括增加一些活動或者合并一些步驟,這些都會隨著迭代開發(fā)的不斷進行而進行優(yōu)化。非功能性需求主要包括系統(tǒng)的約束與假設條件,系統(tǒng)的可用性、可靠性、性能、擴展性、可支持性、系統(tǒng)接口。具體的系統(tǒng)可用性要求如表21所示??删S護性提供方便地系統(tǒng)管理工具,供系統(tǒng)管理員進行系統(tǒng)設置和管理。同時在設計與開發(fā)的過程中嚴格遵守架構的特殊約束,從而保證可以實現架構設計的目標。管理安全是指建立相應的安全管理制度,最終決定是否安全是人來決定的。對于校園內重要的數據實行單獨保存,對排課系統(tǒng)設計安全級別,對于需要在校園網上傳輸的重要數據,需要加密處理, 最大化的重用。把復雜問題簡單化是架構設計的一個重要的目標,明確類以及類之間的職責關系。系統(tǒng)在設計時,充分考慮未來高職院校排課業(yè)務的變化、組織架構的變化、業(yè)務流程的變化等,將因業(yè)務或者需求的變更帶來的系統(tǒng)升級和改造工作,降低到最小的開發(fā)量。因此在系統(tǒng)設計時要達到如下要求:l 系統(tǒng)軟件運行應該速度快、穩(wěn)定、可靠,同時還有具有一定的安全性; l 系統(tǒng)軟件操作上應簡單、方便,界面簡潔明了、美觀;l 排課活動包括很多具有前后時間相關性,相互制約的步驟,各步驟之間層次分明,功能劃分清晰,又相對獨立;l 系統(tǒng)軟件應能支持多用戶訪問、數據共享;l 系統(tǒng)軟件在結構上應具有很好的可擴展性,便于將來的功能擴展和維護;l 數據計算準確無誤,精確度符合業(yè)務的需要。其中系統(tǒng)運行平臺提供其他各個子系統(tǒng)的一個運行平臺與框架,是系統(tǒng)的主窗體,其他各個子系統(tǒng)最終都設計成一個DLL,每個子系統(tǒng)的運行都必須在從系統(tǒng)運行上進行動態(tài)加載。系統(tǒng)運行平臺是一個可執(zhí)行程序,任何一個子系統(tǒng)都不能跨越它進行啟動操作。為了保證數據庫的安全,系統(tǒng)中只為系統(tǒng)管理員和操作人員賦予了操作權限,而普通用戶則沒有操作該模塊的權限。 報表輸出子系統(tǒng) 利用排課算法編排出的結果,重新組織數據,輸出用戶所需的各種形式的、復雜的報表。權限不同的用戶對數據庫的操作范圍不同,對于一些權限低的用戶,甚至不給予處理數據庫的權力。淄博職業(yè)學院計算機自動排課系統(tǒng)是一個基于校園網絡和數據庫應用的系統(tǒng),該系統(tǒng)有3個節(jié)點,分別是系統(tǒng)服務器、數據庫服務器和客戶端PC。圖33系統(tǒng)配置圖信息系統(tǒng)的安全包括多個方面,例如信息的存儲、傳輸、訪問等都屬于信息系統(tǒng)安全的范疇。系統(tǒng)層次涵蓋內容安全手段物理層硬件、網絡拓撲、傳輸介質、環(huán)境防硬件損壞、塵、雷、火、盜、抗干擾等系統(tǒng)層操作系統(tǒng)補丁、訪問控制、信息加密等網絡層邏輯拓撲、通訊協議防火墻、IDS等應用層通用應用程序漏洞掃描、殺毒等管理層管理制度、人員技術、素質網絡資源管理、培訓、制度、責任、考核表31 信息系統(tǒng)安全層次物理層主要是對系統(tǒng)的硬件進行安全保護。如給系統(tǒng)打補丁,定期升級,對重要的信息進行加密處理,實現信息在數據鏈路上的安全。 在應用層主要進行入侵檢測和病毒防護的安全防范。如定期對教務人員進行培訓,明確責任等。在這個階段,我們找出了排課管理系統(tǒng)中涉及的主要的類,并且結合用例模型中的用例,將各個類與用例有機結合起來。在對排課系統(tǒng)的建模中,選擇了類圖和序列圖來構建其對應的分析模型。為了圖的整潔,在上圖中,沒有給出類的關鍵方法和屬性的定義。圖42 排課管理實體類關系類圖 在這之前,所做的所有模型都是屬于UML的靜態(tài)建模機制中的;而現在所要用到的建模元素是屬于UML的動態(tài)建模機制的。在一般的實時系統(tǒng)中,一般采用序列圖,在序列圖中,能夠清楚地看到各個對象之間交互時的時間與順序關系。圖43 自動排課序列圖 我們在創(chuàng)建用例的序列圖的過程中,注意各個類的初級設計,即發(fā)現各個類的方法和屬性,而且,一般在此階段發(fā)現的類的屬性和設計都是非常重要和關鍵的,當然對于這個階段發(fā)現的方法和屬性不需要進行嚴格的定義,對方法和屬性的嚴格定義可以放在設計階段去完成;但是,對于每一個發(fā)現的方法和屬性應該記錄下來,可以使用文字進行詳細的描述。如果在建模過程中,需要增加一些類或刪除一些類,或對一些類進行合并,驗證后,要立即修改相應的類圖。pLimitInfo:當前安排科目和教師的限制信息。NotifyUser:通知用戶。 圖44 access數據表中的關系視圖 表是Access數據庫的基礎,是信息的基本載體。排課系統(tǒng)中各個數據庫表的基本構成如下:院區(qū)數據庫表院區(qū)數據庫表中存放學校中所有院區(qū)的代號和名稱,其結構見表41。表43 專業(yè)數據庫表字段名稱說明功能數據類型寬度小數ZYDH專業(yè)代碼記錄專業(yè)的ID代號int6ZYMC專業(yè)名稱記錄專業(yè)的名稱char30ZYLB專業(yè)類別記錄專業(yè)的類別char10對專業(yè)代號給出一種便于理解又能清楚反映其屬性的表述方式。用一個整數串作為教研室代號,整數串含有8位整數,如圖47所示:例: 整數串 01 01 01 01 院區(qū)代號 教研室代號 系部代號 專業(yè)代號 圖47 教研室代號示例教學樓數據庫表教學樓數據存放于綜合數據庫中,其結構見表45。表47 班級數據庫表字段名稱說明功能數據類型寬度小數BJDH班級代碼記錄班級的ID代號int10BJMC班級名稱記錄班級的名稱char10BJRS班級人數記錄班級的人數int2對班級代號給出一種便于理解又能清楚反映其屬性的表述方式。用一個整數串作為教師的代號,整數串含有10位整數,如圖410所示:例: 整數串 2001 01 01 01 01 222 開始工作時間 教師代號 院區(qū)代號 系部代號 專業(yè)代號 教研室代號 圖410 教師代號示例課程數據庫表課程數據庫表中存放課程與之相應的屬性,包括:課程代號、課程名、課程性質、專業(yè)ID,實驗課時、理論課時、周課時、學分、起始周、授課班級、權值。 表411 開課任務書數據庫表字段名稱說明功能數據類型寬度小數XQDH學期代號記錄開課的學期int16KCDH課程代號記錄所開課程的代號int8JSDH教師代號記錄所開課程任課老師的代號int8XSS學時數記錄所開課程的學時int3QSZ起始周記錄所開課程的起始周int2ZZZ終止周記錄所開課程的終止周int2KKZS開課周數記錄所開課程的周次int2ZXS周學時記錄所開課程的周學時int3KCXZ課程性質記錄所開課程的是考試課還是考查課char8RS人數記錄所開課程講授對象的人數int3JSH教室號記錄各個教室代號int6BJDH班級代號記錄所開課程的班級int6對學期代號給出一種便于理解又能清楚反映其屬性的表述方式。其結構見表413。 沖突信息數據庫:存放有關死鎖課程的相關信息。表416 用戶密碼數據庫表字段名稱說明功能數據類型寬度小數YH用戶記錄用戶名稱char20MM密碼記錄用戶登陸的密碼char20QX權限記錄該用戶所擁有的權限char8以班為單位的課表,其形式如表417所示。按照實體-聯系分析方法,這四類數據對象建立的數據庫,其字段可定義為對象的屬性。按照這一思路,每個教室的一個上課時段為一個記錄,包括有教室編號和上課時間、班級編號、課程名稱、任課教師等字段。數據庫管理系統(tǒng)是整個數據庫系統(tǒng)的核心,ACCESS作為優(yōu)秀的數據庫管理系統(tǒng),提供了數據管理與維護的強大手段,為用戶訪問與操縱數據庫提供了友好的圖形界面與簡便的手段。課表編排過程數據的一致性和可恢復性要求很高,在其中采用了事務處理機制。因此,規(guī)則可以保證輸入的數據滿足要求的條件。第5章 計算機排課系統(tǒng)的實現淄博職業(yè)學院計算機自動排課系統(tǒng)的總體流程圖如圖51所示:失敗開 始用戶登錄讀取用戶信息退出程序初始設置輔助設置排課管理課表管理管理自己的用戶信息管理所有的用戶信息失敗超過3次普通用戶系統(tǒng)管理員成功重試否是 圖51 排課系統(tǒng)流程圖該排課系統(tǒng)由1個主窗體和5個功能模塊組成,基礎數據錄入模塊、自動排課模塊、查詢模塊、報表輸出模塊和用戶管理模塊。圖52計算機自動排課主窗體打開主窗體,在窗體的右邊有班級管理、課程管理、時間段設置和用戶管理等幾個功能模塊,如果要對班級進行管理,點擊班級管理模塊,就可以實現對班級的添加、刪除、修改等各種操作,其它模塊的管理與班級管理類似。部分程序代碼:Dim Classprint As New OpenRs 39。 amp。 amp。獲取教師與班級之間的課程點On Error GoTo finish = 1Dim m As IntegerFor i = 1 To 1 Step