小學(xué)教學(xué)管理系統(tǒng)畢業(yè)論文(含外文翻譯)_第1頁(yè)
已閱讀1頁(yè),還剩82頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  實(shí)驗(yàn)小學(xué)教學(xué)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  ——后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘 要</b></p><p>  制定一個(gè)學(xué)校的排課計(jì)劃是一項(xiàng)非常耗時(shí)且相當(dāng)辛苦的工作,而且它還得由有學(xué)校排課工作經(jīng)驗(yàn)或者這方面知識(shí)的人才能做好。在一所高校時(shí)一個(gè)課程表的制定是一個(gè)難題,因?yàn)樵谟嘘P(guān)課程表的問(wèn)

2、題上有很多的限制條件得考慮,還有大量的數(shù)據(jù)空間被挖掘,即便你的輸入數(shù)據(jù)量并不是實(shí)際意義上的大批量。</p><p>  課程編排系統(tǒng)是一個(gè)學(xué)校不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以自動(dòng)課程編排系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠?lái)人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找

3、、更新和維護(hù)都帶來(lái)了不少的困難。</p><p>  隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。</p><p>  關(guān)鍵字 排課;程序開(kāi)發(fā);數(shù)據(jù)庫(kù)</p><p>  Experimental Primary School Teaching Management System D

4、esign and Implementation——Design and Implementation of back-end Database System</p><p><b>  Abstract</b></p><p>  Formulates a school platoon class plan is an item consumes extremely

5、 when also the quite laborious work, moreover it also must by have the school row of class work experience or this aspect knowledge talented person can complete. When a university a class schedule formulation is a diffic

6、ult problem, because has the very many limiting condition in the related class schedule question to result in the consideration, but also has the massive data space to excavate, even if your input data quantity i</p&g

7、t;<p>  The curriculum arranges the system is a school essential part, Its content said regarding the school policy-maker and the superintendent all very important, Therefore the automatic curriculum arranges the

8、system to be supposed to be able to provide the sufficient information and the quick inquiry method for the user. But the people have since always used the traditional artificial way management document file, this manage

9、ment way has many shortcomings, For example: The efficiency low, the secrec</p><p>  Along with science and technology unceasing enhancement, The computer science is mature day after day, Its formidable func

10、tion had profoundly known for the people, t entered the human society each domain and is playing the more and more vital role.</p><p>  Keywords Course arrangement; Program development; DataBase

11、

12、 </p>

13、<p><b>  第一章 引言1</b></p><p>  1.1 選題背景和意義1</p><p>  1.2 國(guó)內(nèi)外研究現(xiàn)狀2</p><p>  1.3 本次設(shè)計(jì)所做的工作3</p><p>  1.4 本文的組織結(jié)構(gòu)3</p><p>  第二章 開(kāi)發(fā)環(huán)境及技

14、術(shù)介紹4</p><p>  2.1 JSP簡(jiǎn)介4</p><p>  2.2 Tomcat簡(jiǎn)介5</p><p>  2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)介紹5</p><p>  2.3.1 定義5</p><p>  2.3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)方法簡(jiǎn)述6</p><p>  2.3.3 設(shè)計(jì)步驟

15、6</p><p>  2.3.4 各級(jí)模式的形成過(guò)程8</p><p>  第三章 項(xiàng)目可行性分析9</p><p>  3.1 技術(shù)可行性9</p><p>  3.2 經(jīng)濟(jì)可行性9</p><p>  3.3 操作可行性9</p><p>  3.4 維護(hù)可行性10<

16、/p><p>  第四章 需求分析11</p><p>  4.1 系統(tǒng)的基本功能11</p><p>  4.2 排課的約束條件11</p><p>  4.3 需求模型12</p><p>  4.3.1 初使用列圖12</p><p>  4.3.2 最后用例圖13</p&

17、gt;<p>  4.3.3 用例描述14</p><p>  4.4 分析模型15</p><p>  4.4.1 分析階段類圖15</p><p>  4.4.2 實(shí)體類關(guān)系圖16</p><p>  4.4.3 序列圖/協(xié)作圖創(chuàng)建17</p><p>  4.5 設(shè)計(jì)模型19</

18、p><p>  4.5.1 組件圖19</p><p>  4.5.2 配置圖19</p><p>  第五章 排課算法分析與設(shè)計(jì)21</p><p>  5.1 背景與研究意義21</p><p>  5.2 解決NP問(wèn)題的幾種算法及其比較22</p><p>  5.2.1 動(dòng)態(tài)規(guī)劃

19、22</p><p>  5.2.2 貪心算法22</p><p>  5.2.3 回溯法23</p><p>  5.3 排課系統(tǒng)流程分析23</p><p>  5.3.1 整理課程信息24</p><p>  5.3.2 按等級(jí)分類24</p><p>  5.3.3 獲取可安

20、排的教室24</p><p>  5.3.4 排課24</p><p>  5.3.5 生成課表24</p><p>  5.4算法分析24</p><p>  5.4.1 問(wèn)題的描述24</p><p>  5.4.2 排課約束條件25</p><p>  5.5 算法設(shè)計(jì)25&

21、lt;/p><p>  第六章 系統(tǒng)概要設(shè)計(jì)28</p><p>  6.1 設(shè)計(jì)思想28</p><p>  6.2 系統(tǒng)功能模塊劃分29</p><p>  6.3 數(shù)據(jù)庫(kù)設(shè)計(jì)29</p><p>  第七章 詳細(xì)設(shè)計(jì)30</p><p>  7.1 登錄模塊設(shè)計(jì)30</p

22、><p>  7.2 主界面及課表生成設(shè)計(jì)30</p><p>  7.2.1 班級(jí)管理設(shè)計(jì)30</p><p>  7.2.2 班級(jí)課程處理設(shè)計(jì)31</p><p>  7.2.3 課表生成部分設(shè)計(jì)32</p><p>  7.2.4 報(bào)表輸出功能設(shè)計(jì)33</p><p>  7.2.

23、5 系統(tǒng)調(diào)課功能設(shè)計(jì)34</p><p>  7.3 數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)35</p><p>  7.3.1 設(shè)計(jì)分析35</p><p>  7.3.2 數(shù)據(jù)表設(shè)計(jì)37</p><p>  7.4 主要界面實(shí)現(xiàn)40</p><p>  7.4.1 登錄頁(yè)面40</p><p>  7.

24、4.2 教學(xué)任務(wù)信息管理頁(yè)41</p><p>  7.4.3 教師信息管理頁(yè)41</p><p>  7.4.4 班級(jí)信息管理頁(yè)42</p><p>  7.4.5 課程信息管理頁(yè)42</p><p>  7.4.6 專業(yè)教室信息管理頁(yè)43</p><p>  7.4.7 課時(shí)數(shù)信息管理頁(yè)44<

25、/p><p>  7.4.8 排課管理頁(yè)44</p><p>  7.4.9 總課表查詢頁(yè)45</p><p>  7.4.10 教師課表查詢頁(yè)45</p><p>  7.4.11 班級(jí)課表查詢頁(yè)46</p><p>  7.4.12 調(diào)課頁(yè)47</p><p>  第八章

26、測(cè)試報(bào)告48</p><p>  8.1 測(cè)試方案48</p><p>  8.2 測(cè)試項(xiàng)目48</p><p>  8.3 主要測(cè)試用例48</p><p>  8.4 測(cè)試進(jìn)度51</p><p>  8.5 測(cè)試方法52</p><p>  8.6 測(cè)試結(jié)果分析5

27、2</p><p>  8.6.1 測(cè)試的局限性52</p><p>  8.6.2 評(píng)價(jià)測(cè)試結(jié)果的準(zhǔn)則52</p><p>  8.7 系統(tǒng)的優(yōu)點(diǎn)及技術(shù)特征53</p><p>  8.8 系統(tǒng)的不足及改進(jìn)方案53</p><p>  8.9 系統(tǒng)的運(yùn)行與維護(hù)53</p><p

28、><b>  結(jié) 論54</b></p><p><b>  致 謝56</b></p><p>  參 考 文 獻(xiàn)57</p><p><b>  附錄A 譯文59</b></p><p>  附錄A 外文原文70</p><p>

29、;<b>  第一章 引言</b></p><p>  1.1 選題背景和意義</p><p>  隨著信息技術(shù)的飛速發(fā)展,各個(gè)行業(yè)的信息化勢(shì)在必行??萍嫉倪M(jìn)步大大地提高了生產(chǎn)率。作為高校,如何才能提高辦學(xué)效率,更好地完成教學(xué)任務(wù),跟上社會(huì)發(fā)展步伐,這是一個(gè)擺在教學(xué)工作者面前的一個(gè)迫切的問(wèn)題。應(yīng)用信息化來(lái)改造傳統(tǒng)的教學(xué)管理模式是一個(gè)重要途徑。</p>

30、<p>  近幾年來(lái),隨著各高校辦公自動(dòng)化工作的推進(jìn),教務(wù)管理自動(dòng)化也被擺上了日程。在教務(wù)工作中占有很大比重的一項(xiàng)就是每學(xué)期的課程表排定工作。由于教工、教室和設(shè)備的相對(duì)緊張,如何進(jìn)行合理地安排和分配,從而充分利用教學(xué)資源是我們不得不面對(duì)的問(wèn)題。而人工進(jìn)行排課不僅任務(wù)重,效率低,而且易出錯(cuò),難于維護(hù),想要排出一張各方面都滿意的課表非常困難。并且隨著高校規(guī)模的擴(kuò)大手工排課的難度和工作量呈幾何級(jí)數(shù)增長(zhǎng)。</p><

31、;p>  在實(shí)際的應(yīng)用中,很多研究者都提出了各種解決排課問(wèn)題的方法,由于排課問(wèn)題的復(fù)雜性,還沒(méi)有找到有效的算法能獲得NP完全問(wèn)題的最優(yōu)解。因此,如何運(yùn)用近似算法和新的軟件技術(shù)來(lái)降低排課問(wèn)題的計(jì)算復(fù)雜度,仍然是頗具挑戰(zhàn)性的研究方向。</p><p>  排課管理系統(tǒng)是利用數(shù)據(jù)庫(kù)管理系統(tǒng)開(kāi)發(fā)的一種應(yīng)用系統(tǒng),其開(kāi)發(fā)主要包括數(shù)據(jù)庫(kù)的建立,充分滿足正常的題庫(kù)管理的前提下,提供了多角度的題庫(kù)信息查詢和題庫(kù)信息分析報(bào)表,

32、使學(xué)校管理人員可以隨時(shí)掌握學(xué)校的排課情況,進(jìn)一步指導(dǎo)學(xué)校的教學(xué)。真正實(shí)現(xiàn)了業(yè)務(wù)一體化,為學(xué)校全方位的信息化管理奠定了基礎(chǔ)。</p><p>  傳統(tǒng)的人工排課使用手工操作存在許多弊端,如重復(fù)勞動(dòng)嚴(yán)重、效率低下、且不能達(dá)到資源的最優(yōu)化配置等,將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。最令人擔(dān)心的問(wèn)題就是——出現(xiàn)教室資源沖突或教師資源沖突的情況,而且工作繁瑣,工作量巨大,尤其是在給大學(xué)校園進(jìn)行

33、排課時(shí)出現(xiàn)的問(wèn)題更多。當(dāng)前高校教務(wù)管理所涉及到的信息資料數(shù)量大、類型多,還</p><p>  可能帶有大量的統(tǒng)計(jì)輸出,同時(shí)學(xué)校規(guī)模的不斷擴(kuò)大和招生人數(shù)的逐年攀升導(dǎo)致傳統(tǒng)的排棵手段已無(wú)法滿足現(xiàn)代化管理的要求。</p><p>  在教學(xué)計(jì)劃的不斷完善和各高校校園網(wǎng)建立的大背景下,設(shè)計(jì)滿足高校教務(wù)要求的排課系統(tǒng)顯得十分必要。而據(jù)了解,排課管理是高校教務(wù)處重復(fù)性比較強(qiáng)且急需得到解決的工作, 且

34、排課系統(tǒng)有安全性要求高、交互性強(qiáng)、處理數(shù)據(jù)量大等人工難以實(shí)現(xiàn)的特點(diǎn)。</p><p>  因此設(shè)計(jì)一個(gè)基于校園網(wǎng)絡(luò)的人工智能化且操作簡(jiǎn)便的排課系統(tǒng)是高校教務(wù)管理信息系統(tǒng)實(shí)現(xiàn)的首要條件,同時(shí)也是一大難點(diǎn),因?yàn)榕耪n管理要求綜合考慮教師、課程、班級(jí)、教室、時(shí)間等諸方面的因素,統(tǒng)籌兼顧,使課表既符合教學(xué)規(guī)律,又能夠充分利用現(xiàn)有資源使其最大限度地發(fā)揮作用。</p><p>  1.2 國(guó)內(nèi)外研究現(xiàn)狀

35、</p><p>  早在20世紀(jì)50年代末,國(guó)外就有人開(kāi)始研究課表編排問(wèn)題。1963年,Gotlieb曾提出一個(gè)課表問(wèn)題的數(shù)學(xué)模型,但由于排課問(wèn)題易受實(shí)際問(wèn)題的影響,求解結(jié)果也不理想。20世紀(jì)70年代,美國(guó)人S.Even等就證明了排課問(wèn)題是一個(gè)NP完全問(wèn)題,其算法的時(shí)間復(fù)雜度呈指數(shù)增長(zhǎng)。S.Even的論證正式確立了排課問(wèn)題的學(xué)術(shù)地位,把人們對(duì)排課問(wèn)題的認(rèn)識(shí)提高到了理論高度。此外,有些文獻(xiàn)試圖從圖論的角度來(lái)求解課

36、表問(wèn)題,但是圖的染色體問(wèn)題也是NP完全問(wèn)題,只有在極為簡(jiǎn)單的情況下才可以將課表編排轉(zhuǎn)化為二部圖匹配問(wèn)題。</p><p>  在國(guó)內(nèi),在20世紀(jì)80年代初期,國(guó)內(nèi)學(xué)者開(kāi)始用從模擬手工排課,也有人工智能構(gòu)建的專家系統(tǒng)等等,具有代表性的有:南京工學(xué)院的UTSS(A University Timetable Seheduling System)系統(tǒng),大連理工大學(xué)的智能教學(xué)組織管理與課程調(diào)度系統(tǒng)等。這些系統(tǒng)大都是模擬手工

37、排課過(guò)程,以“班”為單位,運(yùn)用啟發(fā)式函數(shù)來(lái)進(jìn)行編排的。但是這些課表編排系統(tǒng)往往依賴于各個(gè)學(xué)校的教學(xué)體制,不宜于進(jìn)行大量推廣。</p><p>  1.3 本次設(shè)計(jì)所做的工作 </p><p>  本次畢業(yè)設(shè)計(jì)過(guò)程當(dāng)中,本人主要負(fù)責(zé)實(shí)驗(yàn)小學(xué)教學(xué)管理系統(tǒng)的排課算法的分析與設(shè)計(jì)和后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)2大塊內(nèi)容。在下面的各章中將具體談到本人所負(fù)責(zé)的各個(gè)環(huán)節(jié)的具體設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。</p>

38、<p>  1.4 本文的組織結(jié)構(gòu)</p><p>  本文對(duì)小學(xué)排課系統(tǒng)軟件進(jìn)行了原理和技術(shù)上的討論,詳細(xì)描述了該系統(tǒng)的設(shè)計(jì)思路和方法,在此基礎(chǔ)上開(kāi)發(fā)了可以實(shí)際使用的應(yīng)用軟件。本文包括內(nèi)容如下:</p><p>  引言:描述了系統(tǒng)開(kāi)發(fā)的背景和意義,簡(jiǎn)單介紹了系統(tǒng)的主要功能,并與傳統(tǒng)的語(yǔ)音信箱進(jìn)行了比較。</p><p>  開(kāi)發(fā)環(huán)境:簡(jiǎn)要的講述了本次系

39、統(tǒng)中所采用的環(huán)境和技術(shù)。</p><p>  項(xiàng)目可行性:從4個(gè)方面論證了本次項(xiàng)目的可實(shí)施性。</p><p>  需求分析:利用面向?qū)ο蟮姆治龇椒?,建立各種環(huán)境下的用例模型,描繪出系統(tǒng)的功能、性能和其它需求。</p><p>  系統(tǒng)設(shè)計(jì):使用面向?qū)ο蟮脑O(shè)計(jì)方法,在需求分析確定的模型基礎(chǔ)上,設(shè)計(jì)出軟件的邏輯模型、軟件各組成部分間的內(nèi)在結(jié)構(gòu)及實(shí)現(xiàn)方法。這一過(guò)程分為概

40、要設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)和詳細(xì)設(shè)計(jì)三部分。</p><p>  系統(tǒng)實(shí)現(xiàn):論述了系統(tǒng)各功能模塊的實(shí)現(xiàn)方法。</p><p>  測(cè)試報(bào)告:對(duì)開(kāi)發(fā)完成的軟件進(jìn)行測(cè)試分析。</p><p>  結(jié)論:總結(jié)本軟件的特點(diǎn),展望系統(tǒng)未來(lái)的發(fā)展方向。</p><p>  第二章 開(kāi)發(fā)環(huán)境及技術(shù)介紹</p><p><b> 

41、 2.1 JSP簡(jiǎn)介</b></p><p>  JSP應(yīng)用程序不同于其他語(yǔ)言開(kāi)發(fā)的單一性程序。使用Jsp編程時(shí),必須首先確定應(yīng)用程序如何與用戶交互,如鼠標(biāo)單擊,用戶必須編寫(xiě)代碼控制這些事件的響應(yīng)方法。</p><p>  使用JSP開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的一般步驟如下所示:</p><p><b>  建立數(shù)據(jù)庫(kù)</b></p&

42、gt;<p><b>  建立用戶界面</b></p><p><b>  編寫(xiě)代碼</b></p><p><b>  調(diào)試運(yùn)行</b></p><p><b>  編譯應(yīng)用程序</b></p><p><b>  發(fā)布應(yīng)用程序&

43、lt;/b></p><p><b>  界面設(shè)計(jì):</b></p><p><b>  控件的位置</b></p><p><b>  界面元素的一致性</b></p><p><b>  保持界面的簡(jiǎn)明</b></p><p&

44、gt;  使用顏色和圖像:增加視覺(jué)的感染力</p><p>  圖像和圖標(biāo):增加應(yīng)用程序的視覺(jué)上的趣味</p><p><b>  選取字體</b></p><p>  JSP應(yīng)用程序的結(jié)構(gòu):</p><p>  由于JSP應(yīng)用程序是基于對(duì)象的,所以應(yīng)用程序的代碼結(jié)構(gòu)就是該程序在屏幕上物理表示的模型。根據(jù)定義,對(duì)象包含數(shù)

45、據(jù)和代碼。在屏幕上看到的窗體代表屬性,這些屬性定義了窗體的外觀和內(nèi)在特性14。</p><p>  2.2 Tomcat簡(jiǎn)介</p><p>  Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開(kāi)發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的 </p><p>  Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在本系統(tǒng)中當(dāng)在

46、一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。 </p><p>  當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat具有處理HTML頁(yè)面的功能,同時(shí)它還

47、是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式16</p><p>  2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)介紹</p><p><b>  2.3.1 定義</b></p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì) (Database Design)是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫(kù)管理系統(tǒng)上,設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和建立數(shù)據(jù)庫(kù)的過(guò)程。數(shù)據(jù)

48、庫(kù)系統(tǒng)需要操作系統(tǒng)的支持。 </p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)是建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開(kāi)發(fā)和建議中的核心技術(shù)。由于數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的復(fù)雜性,為了支持相關(guān)程序運(yùn)行,數(shù)據(jù)庫(kù)設(shè)計(jì)就變得異常復(fù)雜,因此最佳設(shè)計(jì)不可能一蹴而就,而只能是一種“反復(fù)探尋,逐步求精”的過(guò)程,也就是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象以及這些數(shù)據(jù)對(duì)象之間關(guān)系的過(guò)程。</p><p>  2.3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)方法簡(jiǎn)述

49、</p><p>  1 手工試湊法  設(shè)計(jì)質(zhì)量與設(shè)計(jì)人員的經(jīng)驗(yàn)和水平有直接關(guān)系  缺乏科學(xué)理論和工程方法的支持,工程的質(zhì)量難以保證  數(shù)據(jù)庫(kù)運(yùn)行一段時(shí)間后常常又不同程度地發(fā)現(xiàn)各種問(wèn)題,增加了維護(hù)代價(jià)  2 規(guī)范設(shè)計(jì)法 基本思想:過(guò)程迭代和逐步求精  典型方法:  (1)新奧爾良(New Orleans)方法:將數(shù)據(jù)庫(kù)設(shè)計(jì)分為四個(gè)階段  S.B.Yao方法:將數(shù)據(jù)庫(kù)設(shè)計(jì)分為五個(gè)步驟  I.R.

50、Palmer方法:把數(shù)據(jù)庫(kù)設(shè)計(jì)當(dāng)成一步接一步的過(guò)程  (2)計(jì)算機(jī)輔助設(shè)計(jì)  ORACLE Designer 2000  SYBASE PowerDesigner</p><p>  2.3.3 設(shè)計(jì)步驟</p><p><b>  1需求分析</b></p><p>  調(diào)查和分析用戶的業(yè)務(wù)活動(dòng)和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍

51、、數(shù)量以及它們?cè)跇I(yè)務(wù)活動(dòng)中交流的情況,確定用戶對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。 </p><p><b>  2概念設(shè)計(jì)</b></p><p>  對(duì)用戶要求描述的現(xiàn)實(shí)世界(可能是一個(gè)工廠、一個(gè)商場(chǎng)或者一個(gè)學(xué)校等),通過(guò)對(duì)其中諸處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。這個(gè)概念模型應(yīng)反映現(xiàn)實(shí)世界各部門的信息結(jié)構(gòu)、信息流動(dòng)情況、信息間的互

52、相制約關(guān)系以及各部門對(duì)信息儲(chǔ)存、查詢和加工的要求等。所建立的模型應(yīng)避開(kāi)數(shù)據(jù)庫(kù)在計(jì)算機(jī)上的具體實(shí)現(xiàn)細(xì)節(jié),用一種抽象的形式表示出來(lái)。以擴(kuò)充的實(shí)體—(E-R模型)聯(lián)系模型方法為例,第一步先明確現(xiàn)實(shí)世界各部門所含的各種實(shí)體及其屬性、實(shí)體間的聯(lián)系以及對(duì)信息的制約條件等,從而給出各部門內(nèi)所用信息的局部描述(在數(shù)據(jù)庫(kù)中稱為用戶的局部視圖)。第二步再將前面得到的多個(gè)用戶的局部視圖集成為一個(gè)全局視圖,即用戶要描述的現(xiàn)實(shí)世界的概念數(shù)據(jù)模型。 </p&

53、gt;<p><b>  3邏輯設(shè)計(jì)</b></p><p>  主要工作是將現(xiàn)實(shí)世界的概念數(shù)據(jù)模型設(shè)計(jì)成數(shù)據(jù)庫(kù)的一種邏輯模式,即適應(yīng)于某種特定數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式。與此同時(shí),可能還需為各種數(shù)據(jù)處理應(yīng)用領(lǐng)域產(chǎn)生相應(yīng)的邏輯子模式。這一步設(shè)計(jì)的結(jié)果就是所謂“邏輯數(shù)據(jù)庫(kù)”。</p><p><b>  4物理設(shè)計(jì)</b>&l

54、t;/p><p>  根據(jù)特定數(shù)據(jù)庫(kù)管理系統(tǒng)所提供的多種存儲(chǔ)結(jié)構(gòu)和存取方法等依賴于具體計(jì)算機(jī)結(jié)構(gòu)的各項(xiàng)物理設(shè)計(jì)措施,對(duì)具體的應(yīng)用任務(wù)選定最合適的物理存儲(chǔ)結(jié)構(gòu)(包括文件類型、索引結(jié)構(gòu)和數(shù)據(jù)的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設(shè)計(jì)的結(jié)果就是所謂“物理數(shù)據(jù)庫(kù)”。 </p><p><b>  5驗(yàn)證設(shè)計(jì)</b></p><p>  在上述

55、設(shè)計(jì)的基礎(chǔ)上,收集數(shù)據(jù)并具體建立一個(gè)數(shù)據(jù)庫(kù),運(yùn)行一些典型的應(yīng)用任務(wù)來(lái)驗(yàn)證數(shù)據(jù)庫(kù)設(shè)計(jì)的正確性和合理性。一般,一個(gè)大型數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程往往需要經(jīng)過(guò)多次循環(huán)反復(fù)。當(dāng)設(shè)計(jì)的某步發(fā)現(xiàn)問(wèn)題時(shí),可能就需要返回到前面去進(jìn)行修改。因此,在做上述數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)就應(yīng)考慮到今后修改設(shè)計(jì)的可能性和方便性。 </p><p><b>  6運(yùn)行與維護(hù)設(shè)計(jì)</b></p><p>  在數(shù)據(jù)庫(kù)系統(tǒng)正

56、式投入運(yùn)行的過(guò)程中,必須不斷地對(duì)其進(jìn)行評(píng)調(diào)整與修改。 </p><p>  至今,數(shù)據(jù)庫(kù)設(shè)計(jì)的很多工作仍需要人工來(lái)做,除了關(guān)系型數(shù)據(jù)庫(kù)已有一套較完整的數(shù)據(jù)范式理論可用來(lái)部分地指導(dǎo)數(shù)據(jù)庫(kù)設(shè)計(jì)之外,尚缺乏一套完善的數(shù)據(jù)庫(kù)設(shè)計(jì)理論、方法和工具,以實(shí)現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)的自動(dòng)化或交互式的半自動(dòng)化設(shè)計(jì)。所以數(shù)據(jù)庫(kù)設(shè)計(jì)今后的研究發(fā)展方向是研究數(shù)據(jù)庫(kù)設(shè)計(jì)理論,尋求能夠更有效地表達(dá)語(yǔ)義關(guān)系的數(shù)據(jù)模型,為各階段的設(shè)計(jì)提供自動(dòng)或半自動(dòng)的設(shè)計(jì)

57、工具和集成化的開(kāi)發(fā)環(huán)境,使數(shù)據(jù)庫(kù)的設(shè)計(jì)更加工程化、更加規(guī)范化和更加方便易行,使得在數(shù)據(jù)庫(kù)的設(shè)計(jì)中充分體現(xiàn)軟件工程的先進(jìn)思想和方法。</p><p>  2.3.4 各級(jí)模式的形成過(guò)程</p><p>  1.需求分析階段:綜合各個(gè)用戶的應(yīng)用需求 </p><p>  2.概念設(shè)計(jì)階段:形成獨(dú)立于機(jī)器特點(diǎn),獨(dú)立于各個(gè)DBMS產(chǎn)品的概念模式(E-R圖) </p&g

58、t;<p>  3.邏輯設(shè)計(jì)階段:首先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫(kù)產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫(kù)邏輯模式;然后根據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎(chǔ)上再建立必要的視圖(View),形成數(shù)據(jù)的外模式</p><p>  4.物理設(shè)計(jì)階段:根據(jù)DBMS特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,建立索引,形成數(shù)據(jù)庫(kù)內(nèi)模式。</p><p>  第三章 項(xiàng)目可行性分

59、析</p><p><b>  3.1 技術(shù)可行性</b></p><p>  該系統(tǒng)對(duì)軟、硬件系統(tǒng)要求較低,所需硬件設(shè)備,市場(chǎng)上銷售且價(jià)格較低,甚至可以使用原有的設(shè)備。軟件上,操作系統(tǒng)采用Windows7或XP操作系統(tǒng)、MyEclipse作為前臺(tái)開(kāi)發(fā)工具,它具有的“編輯后繼續(xù)運(yùn)行”的特性,超越了舊的編輯—編譯—測(cè)試模式。它還引入了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想和“控件”概念

60、,使得大量已經(jīng)編好的JSP程序可以直接拿來(lái)使用。同時(shí),JSP又是最容易學(xué)習(xí)與應(yīng)用的程序語(yǔ)言之一。它的功能非常強(qiáng)大,已成為一種專業(yè)化的開(kāi)發(fā)語(yǔ)言和環(huán)境。采用MySQL作為后臺(tái)數(shù)據(jù)庫(kù)平臺(tái)的管理系統(tǒng),它在電子商務(wù)、數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)庫(kù)解決方案等應(yīng)用中起著核心作用,可為企業(yè)的數(shù)據(jù)管理提供強(qiáng)大的支持,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)提供有效的管理,并采用有效的措施實(shí)現(xiàn)數(shù)據(jù)的完整性、數(shù)據(jù)的安全性以及數(shù)據(jù)的可靠易用性等等。這些軟件在實(shí)驗(yàn)室排課及教學(xué)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)開(kāi)發(fā)中已被

61、大量應(yīng)用,技術(shù)上都比較成熟。因此在技術(shù)上是可行的。</p><p><b>  3.2 經(jīng)濟(jì)可行性</b></p><p>  當(dāng)今學(xué)校內(nèi)部沒(méi)有完善的實(shí)驗(yàn)室排課系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),管理水平差,學(xué)校課程不能得到合理分配,學(xué)生,教師管理檔案問(wèn)題重重。迫切需要提高現(xiàn)代化管理水平、管理質(zhì)量和管理高校課程。實(shí)驗(yàn)室排課及教學(xué)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的初步現(xiàn)代化的開(kāi)發(fā)和使用,能夠大大提高學(xué)校管理

62、者的工作效率,節(jié)省成本提高經(jīng)濟(jì)效益。它把從事人力資源管理的人員從繁重的手工操作中解脫出來(lái),用更多精力從事創(chuàng)造性的管理活動(dòng)和其它重要的活動(dòng)中去,從而達(dá)到節(jié)省人力、物力,財(cái)力的目標(biāo);它能使決策、計(jì)劃和其它管理活動(dòng)更加科學(xué)、精確、靈活。因此,開(kāi)發(fā)一個(gè)專門針對(duì)實(shí)驗(yàn)室排課系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),在經(jīng)濟(jì)上也是可行的。</p><p><b>  3.3 操作可行性</b></p><p>

63、;  本系統(tǒng)靈活方便,快捷迅速,適應(yīng)處理多項(xiàng)數(shù)據(jù)。采用友好、直觀的視窗界面,鼠標(biāo)、鍵盤兩種操作方式任意選擇,方便快捷。界面統(tǒng)一規(guī)范,提示信息功能完整,稍一接觸就可以上手進(jìn)行所有操作。</p><p><b>  3.4 維護(hù)可行性</b></p><p>  在做工作流變更時(shí)應(yīng)慎重考慮其必要性、可行性和對(duì)現(xiàn)有系統(tǒng)影響的風(fēng)險(xiǎn)??偟膩?lái)說(shuō)應(yīng)把握的基本原則是對(duì)于已經(jīng)完成的工作

64、流實(shí)例不做改動(dòng),對(duì)于在變更點(diǎn)之前正在執(zhí)行的工作流不做改動(dòng),而對(duì)于在變更點(diǎn)之后正在執(zhí)行的工作流予以終止(如果終止的代價(jià)較低)或者重新填充所涉及用戶工作列表(如果終止的代價(jià)較高)。另外,必須考慮工作流引擎的實(shí)際情況,對(duì)工作流變更支持較好的工作流引擎可能已經(jīng)為工作流變更做了充分的考慮,但大多數(shù)情況下需要開(kāi)發(fā)人員編碼解決。采用工作流驅(qū)動(dòng)方案設(shè)計(jì)的系統(tǒng)在應(yīng)對(duì)工作流變更時(shí)應(yīng)考慮一下2 種情況:增加、刪除新的局部工作流可能會(huì)影響已經(jīng)實(shí)例化的全局工作流

65、和新增局部工作流在全局工作流插入點(diǎn)前后(如果存在)的局部工作流。對(duì)于后一種情況應(yīng)注意工作流之間的銜接,包括數(shù)據(jù)格式是否一致、流程鏈?zhǔn)欠袢匀贿B續(xù)(類似向鏈表中插入節(jié)點(diǎn))。</p><p><b>  第四章 需求分析</b></p><p>  4.1 系統(tǒng)的基本功能 </p><p>  1 掌握學(xué)校所有的課程和教師的信息。包括每門課程的時(shí)間

66、、班級(jí)以及任課老師的姓名等。</p><p>  2 針對(duì)不同的人員授予不同的權(quán)限。提供靈活的瀏覽、查詢功能??梢圆榭茨硞€(gè)系、某個(gè)班級(jí)所有課程的信息。</p><p>  3 可以對(duì)一個(gè)或多個(gè)班級(jí)進(jìn)入課程管理與排課表管理,可以不限次的生成該班級(jí)課程表。</p><p>  4 可以對(duì)課程進(jìn)行變動(dòng)管理。既可以手工排課,又可以實(shí)現(xiàn)自動(dòng)排序功能。</p>&

67、lt;p>  5 幫助系統(tǒng)維護(hù)可以實(shí)現(xiàn):重新登錄、打印設(shè)置(包括統(tǒng)計(jì)各種報(bào)表及打印等)、退出等操作。</p><p>  6 提供一種或多種課程表輸出功能。</p><p>  7 實(shí)現(xiàn)功能全面化,由于每個(gè)學(xué)?;虬嗉?jí)的每天課程數(shù)目或時(shí)間都不太一樣,實(shí)現(xiàn)智能計(jì)算總課程數(shù)目和管理對(duì)應(yīng)的時(shí)間段,并且根據(jù)每門課程的獨(dú)立分布式來(lái)進(jìn)行排列(例如:語(yǔ)文自動(dòng)排列的分布方式可以是周一至周五,那么系統(tǒng)就

68、會(huì)自動(dòng)將其平均分布在周一至周五這5天)。</p><p>  8用戶管理:設(shè)置兩個(gè)級(jí)別用戶:管理員和普通用戶(教師),管理員有權(quán)限操作系統(tǒng)中的所有數(shù)據(jù),普通用戶只能以執(zhí)行查詢,輸出之類的功能,無(wú)法對(duì)系統(tǒng)進(jìn)行實(shí)質(zhì)性的操作,用戶使用本系統(tǒng)之前必須先通過(guò)身份認(rèn)證。</p><p>  4.2 排課的約束條件</p><p>  在我的排課系統(tǒng),主要對(duì)不同類型課程進(jìn)行等級(jí)劃

69、分,排列出課程的排課優(yōu)先級(jí)別,通過(guò)優(yōu)先次序?qū)Σ煌愋偷恼n程使用不同的算法進(jìn)行排課,能夠非常方便地處理各種排課約束條件的限制。</p><p>  例如教師和教室沖突、班級(jí)沖突、教師上課時(shí)間和地點(diǎn)選擇、分層次教學(xué)、單雙周排課、一課多教師教學(xué)和課程連上等各種各樣的約束。同時(shí)該系統(tǒng)還能夠非常迅速地得到排課結(jié)果,例如排一千門課只需幾分鐘時(shí)間等一系列問(wèn)題。</p><p><b>  4.

70、3 需求模型</b></p><p>  使用用例模型來(lái)表示需求階段的系統(tǒng)模型,用例模型主要有用例圖組成,從該子系統(tǒng)開(kāi)始到子系統(tǒng)最終的發(fā)布,每一個(gè)思路整合其用例模型都不相同;隨著思路整合的不斷進(jìn)行,用例模型也在不斷地發(fā)生變化,由于篇幅所限,本文只給出第一次思路整合確定的用例模型和現(xiàn)今最后一次思路整合所確定的用例模型。</p><p>  通過(guò)需求分析,確定了排課管理的功能需求,

71、其需求簡(jiǎn)要概括如下:</p><p>  1排課信息設(shè)置:包括教學(xué)科目信息,上課時(shí)間,科目和教師限制信息,班級(jí)排課信息,排課管理系統(tǒng)根據(jù)這些排課信息和限制信息對(duì)系統(tǒng)進(jìn)行自動(dòng)排課。</p><p>  2自動(dòng)排課和手工排課:對(duì)于用戶設(shè)定了排課信息之后,系統(tǒng)能夠自動(dòng)對(duì)課表進(jìn)行安排,而且能夠手工對(duì)安排完的課表進(jìn)行調(diào)整,在排課過(guò)過(guò)程當(dāng)中,能夠?qū)Σ缓侠淼呐耪n結(jié)果給用戶進(jìn)行提示。</p>

72、;<p>  3課表報(bào)表和課表查詢,給出全校教師總課表,班級(jí)課表;在課表查詢中,用戶可以選擇不同的教師、班級(jí),系統(tǒng)根據(jù)用戶的選擇給出相應(yīng)的課表。</p><p>  4.3.1 初使用列圖 </p><p>  在項(xiàng)目開(kāi)始階段,需求不是非常清楚,但是,其需求的中心內(nèi)容仍然是上面幾點(diǎn),在通過(guò)對(duì)需求的分析,我們確立了如下幾個(gè)非常重要的用例:</p><p

73、><b>  科目信息設(shè)置</b></p><p><b>  班級(jí)排課信息設(shè)置</b></p><p><b>  自動(dòng)排課</b></p><p><b>  課表調(diào)整</b></p><p><b>  課表顯示與打印</b&g

74、t;</p><p>  上面所列出的用例即為排課管理系統(tǒng)的主要用例。根據(jù)這些主要用例,在項(xiàng)目的初始階段,為排課管理系統(tǒng)確定了初始用例模型,描述了排課管理系統(tǒng)應(yīng)該完成的功能,即從用戶的角度看,系統(tǒng)應(yīng)該具有哪些功能。初始用例模型表示如下:</p><p>  圖4.1 排課管理初始用例圖</p><p>  上面所列出的用例模型,基本上描述了排課系統(tǒng)的主要的功能,將這

75、些基本功能實(shí)現(xiàn),就形成了一個(gè)簡(jiǎn)單的排課管理系統(tǒng)。在項(xiàng)目開(kāi)發(fā)的第一次思路整合開(kāi)發(fā)中,就是以上面確定的系統(tǒng)原型為基礎(chǔ)的,這也確定了系統(tǒng)排課管理系統(tǒng)的初始架構(gòu)。</p><p>  4.3.2 最后用例圖</p><p>  通過(guò)幾次思路整合,在新的需求的增加下和對(duì)系統(tǒng)的進(jìn)一步理解,逐步完善了排課管理系統(tǒng)的用例模型,下面給出的用例圖是當(dāng)前排課系統(tǒng)的最新的用例模型:</p><

76、;p>  圖4.2 排課管理用例圖</p><p>  為方便顯示,上面給出的排課管理用例圖包括了排課管理子系統(tǒng)中的全部角色和用例。</p><p>  4.3.3 用例描述</p><p>  在建模時(shí),必須給出每個(gè)用例的說(shuō)明,描述該用例所完成的功能,以及完成該用例功能的步驟。當(dāng)然,對(duì)用例的描述也可以使用用例說(shuō)明文檔來(lái)表示。為了說(shuō)明如何使用活動(dòng)圖來(lái)表示一個(gè)用

77、例的行為,在此給出“自動(dòng)排課”用例的活動(dòng)圖,如下所示:</p><p>  圖4.3自動(dòng)排課活動(dòng)圖</p><p><b>  4.4 分析模型</b></p><p>  在這個(gè)階段,找出排課管理系統(tǒng)中涉及的主要的類,并且結(jié)合用例模型中的用例,將各個(gè)類與用例有機(jī)結(jié)合起來(lái)。對(duì)系統(tǒng)中的類,建立相應(yīng)的類圖來(lái)表示各個(gè)類之間的關(guān)系。而如何讓用例與這些類

78、進(jìn)行結(jié)合,則需要建立相應(yīng)的序列圖/協(xié)作圖來(lái)進(jìn)行建模。</p><p>  4.4.1 分析階段類圖</p><p>  在分析模型中的給出的類圖,并不需要為每個(gè)類詳細(xì)定義方法和屬性,在這個(gè)階段的類圖,主要反映的是系統(tǒng)中應(yīng)該有的類和各個(gè)類之間的關(guān)系;當(dāng)然,對(duì)于一些非常重要的方法和屬性,特別是反映各個(gè)類之間的關(guān)系的方法和屬性,在此階段可以給出定義。在排課管理系統(tǒng)的分析模型中,通過(guò)對(duì)排課系統(tǒng)的

79、分析和幾次思路整合,找出了排課管理系統(tǒng)中涉及的類,并給出了如下的類圖和各個(gè)類之間的關(guān)系:</p><p>  圖4.4 排課管理類圖(分析)</p><p>  上面類圖中,將排課管理中的類分成三種,并構(gòu)建了類圖,這種表示方法能夠清楚地表示各個(gè)類在系統(tǒng)中所處的位置,更加直觀;當(dāng)然,在實(shí)際建模中,也不一定要選擇這種表示,開(kāi)發(fā)人員可以根據(jù)自己項(xiàng)目的實(shí)際情況來(lái)選擇相應(yīng)的建模元素。</p&g

80、t;<p>  4.4.2 實(shí)體類關(guān)系圖</p><p>  在分析模型中,使用的類分為三類的,其圖形的表示也比較簡(jiǎn)單;而在設(shè)計(jì)模型中,采用了UML標(biāo)準(zhǔn)的類的表示圖形,每個(gè)圖被分為三個(gè)部分,分別表示類名字、屬性欄和方法欄,在后面的設(shè)計(jì)階段的排課管理類圖中可以看到。</p><p>  在上面的類圖中,僅僅給出了三種類之間的關(guān)系,但是這樣表示還是不夠的。實(shí)體類之間也是有一定的關(guān)

81、系的,對(duì)此,我們使用了另一個(gè)類圖來(lái)表示各個(gè)實(shí)體類之間的關(guān)系,如下圖:</p><p>  圖4.5 排課管理實(shí)體類關(guān)系類圖</p><p>  4.4.3 序列圖/協(xié)作圖創(chuàng)建</p><p>  在這之前,所做的所有模型都是屬于UML的靜態(tài)建模機(jī)制中的;而現(xiàn)在所要用到的建模元素是屬于UML的動(dòng)態(tài)建模機(jī)制的。</p><p>  在此,給出了

82、自動(dòng)排課用例的序列圖,如下圖所示:</p><p>  圖4.6 排課工作人員的序列圖</p><p>  圖4.7 查看課表時(shí)的時(shí)序圖</p><p><b>  4.5 設(shè)計(jì)模型</b></p><p>  在設(shè)計(jì)階段的工作,簡(jiǎn)單來(lái)說(shuō),是根據(jù)分析模型,建立相應(yīng)的設(shè)計(jì)模型;確切地說(shuō),是定義分析階段所確定的每一個(gè)類,即定

83、義每個(gè)類的方法和屬性,并確定每個(gè)成員的可見(jiàn)性;可見(jiàn)性包括每個(gè)類成員是私有、保護(hù)、還是公有的。</p><p><b>  4.5.1 組件圖</b></p><p>  組件圖描述了排課系統(tǒng)各個(gè)子系統(tǒng)之間的依賴關(guān)系。組成自動(dòng)排課系統(tǒng)的頁(yè)面包括:主頁(yè)面,班級(jí)管理頁(yè)面,教師管理頁(yè)面,教室管理頁(yè)面,課程管理頁(yè)面,課表管理頁(yè)面。</p><p><

84、;b>  圖4.8 組件圖</b></p><p><b>  4.5.2 配置圖</b></p><p>  配置圖主要是用來(lái)說(shuō)明如何配置系統(tǒng)的軟件和硬軟。自動(dòng)排課系統(tǒng)的應(yīng)用服務(wù)器主要負(fù)責(zé)整個(gè)系統(tǒng)運(yùn)行的總體協(xié)調(diào)工作,數(shù)據(jù)庫(kù)則是負(fù)責(zé)數(shù)據(jù)管理。查詢管理是用戶可以用該頁(yè)面對(duì)未安排的或已安排的進(jìn)行快速的查看。教室管理是用來(lái)對(duì)教室的安排。課程管理是對(duì)每個(gè)班級(jí)

85、,教師所授課程的管理。教師管理是對(duì)是是否有課老師的管理。班級(jí)管理是每個(gè)班級(jí)的課程管理。</p><p><b>  4.9 配置圖</b></p><p>  第五章 排課算法分析與設(shè)計(jì)</p><p>  5.1 背景與研究意義</p><p>  排課問(wèn)題早在70年代就證明是一個(gè)NP完全問(wèn)題,即算法的計(jì)算時(shí)間是呈指

86、數(shù)增長(zhǎng)的,這一論斷確立了排課問(wèn)題的理論深度。對(duì)于NP問(wèn)題完全問(wèn)題目前在 數(shù)學(xué)上是沒(méi)有一個(gè)通用的算法能夠很好地解決。然而很多NP完全問(wèn)題目具有很重要的實(shí)際意義,例如。大家熟悉地路由算法就是很典型的一個(gè)NP完全問(wèn)題,路由 要在從多的節(jié)點(diǎn)中找出最短路徑完成信息的傳遞。既然都是NP完全問(wèn)題,那么很多路由算法就可以運(yùn)用到解決排課問(wèn)題上,如Dijkstra算法、節(jié)點(diǎn)子樹(shù)剪 枝構(gòu)造網(wǎng)絡(luò)最短路徑法等等。</p><p>  目前

87、大家對(duì)NP 完全問(wèn)題研究的主要思想是如何降低其計(jì)算復(fù)雜度。即利用一個(gè)近似算法來(lái)代替,力爭(zhēng)使得解決問(wèn)題的時(shí)間從指數(shù)增長(zhǎng)化簡(jiǎn)到多項(xiàng)式增長(zhǎng)。結(jié)合到課表問(wèn)題就是建立 一個(gè)合適的現(xiàn)實(shí)簡(jiǎn)約模型,利用該簡(jiǎn)約模型能夠大大降低算法的復(fù)雜度,便于程序?qū)崿F(xiàn),這是解決排課問(wèn)題一個(gè)很多的思路。</p><p>  在高等院校中,培養(yǎng)學(xué)生的主要途徑是教學(xué)。在教學(xué)活動(dòng)中,有一系列管理工作,其中,教學(xué)計(jì)劃的實(shí)施是一個(gè)重要的教學(xué)環(huán)節(jié)。每學(xué)期管理人

88、員都要整理教 學(xué)計(jì)劃,根據(jù)教學(xué)計(jì)劃下達(dá)教學(xué)任務(wù)書(shū),然后根據(jù)教學(xué)任務(wù)書(shū)編排課程表。在這些教學(xué)調(diào)度工作中,既有大量繁瑣的數(shù)據(jù)整理工作,更有嚴(yán)謹(jǐn)思維的腦力勞動(dòng),還要 填寫(xiě)大量的表格。因此工作非常繁重。</p><p>  加之,隨著教學(xué)改革的進(jìn)行及“211”工程的實(shí)施,新的教育體制對(duì)課表的編排提出了更高的要求。手工排課時(shí),信息的上通下達(dá)是極其麻煩的,而采用計(jì) 算機(jī)排課,教學(xué)中的信息可以一目了然,對(duì)于優(yōu)化學(xué)生的學(xué)習(xí)進(jìn)程,

89、評(píng)估每位教師對(duì)教學(xué)的貢獻(xiàn),領(lǐng)導(dǎo)合理決策等都具有重要的意義,必將會(huì)大大推進(jìn)教學(xué)的良性循 環(huán)。</p><p>  5.2 解決NP問(wèn)題的幾種算法及其比較</p><p>  解決NP完全問(wèn)題只能依靠近似算法,所以下面介紹幾種常用算法的設(shè)計(jì)思想,包括動(dòng)態(tài)規(guī)劃、貪心算法、回溯法等。</p><p>  5.2.1 動(dòng)態(tài)規(guī)劃</p><p>  動(dòng)態(tài)

90、規(guī)劃法是將求解的問(wèn)題一層一層地分解成一級(jí)一級(jí)、規(guī)模逐步縮小的子問(wèn)題,直到可以直接求出其解的子問(wèn)題為止。分解成的所有子問(wèn)題按層次 關(guān)系構(gòu)成一顆子問(wèn)題樹(shù)。樹(shù)根是原問(wèn)題。原問(wèn)題的解依賴于子問(wèn)題樹(shù)中所有子問(wèn)題的解。動(dòng)態(tài)規(guī)劃算法通常用于求一個(gè)問(wèn)題在某種意義下的最優(yōu)解。設(shè)計(jì)一個(gè)動(dòng)態(tài)規(guī) 劃算法,通??砂匆韵聨讉€(gè)步驟進(jìn)行:</p><p>  1. 分析最優(yōu)解的性質(zhì),并刻劃其結(jié)構(gòu)特征。</p><p> 

91、 2. 遞歸的定義最優(yōu)解。</p><p>  3. 以自底向上的方式計(jì)算出最優(yōu)解。</p><p>  4. 根據(jù)計(jì)算最優(yōu)解時(shí)得到的信息,構(gòu)造一個(gè)最優(yōu)解。</p><p>  步驟1~3是動(dòng)態(tài)規(guī)劃算法的基本步驟。在只需要求出最優(yōu)解的情形,步驟4可以省去。若需要求出問(wèn)題的一個(gè)最優(yōu)解,則必須執(zhí)行步驟4。此時(shí),在步驟3中計(jì)算最優(yōu)解時(shí),通常需記錄更多的信息,以便在步驟4中

92、,根據(jù)所記錄的信息,快速地構(gòu)造出一個(gè)最優(yōu)解。</p><p>  5.2.2 貪心算法</p><p>  當(dāng)一個(gè)問(wèn)題具有最優(yōu)子結(jié)構(gòu)性質(zhì)時(shí),我們會(huì)想到用動(dòng)態(tài)規(guī)劃法去解它,但有時(shí)會(huì)有更簡(jiǎn)單、更有效的算法,即貪心算法。顧名思義,貪心算法總是做出在當(dāng)前 看來(lái)最好的選擇。也就是說(shuō)貪心算法并不是整體最優(yōu)上加以考慮,他所作出的選擇只是在某種意義上的局部最優(yōu)的選擇。雖然貪心算法不是對(duì)所有問(wèn)題都能得到整體

93、 最優(yōu)解,但對(duì)范圍相當(dāng)廣的許多問(wèn)題它能產(chǎn)生整體最優(yōu)解,如圖的算法中單源最短路徑問(wèn)題,最小支撐樹(shù)問(wèn)題等。在一些情況下,即使貪心算法不能得到整體最優(yōu) 解,但其最終結(jié)果卻是最優(yōu)解的很好的近似解。</p><p>  在貪心算法中較為有名的算法是Dijkstra算法。它作為路由算法用來(lái)尋求兩個(gè)節(jié)點(diǎn)間的最短路徑。Dijkstra算法的思想是:假若G有n個(gè)頂 點(diǎn),于是我們總共需要求出n-1條最短路徑,求解的方法是:初試,寫(xiě)出

94、V0(始頂點(diǎn))到各頂點(diǎn)(終頂點(diǎn))的路徑長(zhǎng)度,或有路徑,則令路徑的長(zhǎng)度為邊上的權(quán) 值;或無(wú)路經(jīng),則令為∞。再按長(zhǎng)度的遞增順序生成每條最短路徑。事實(shí)上生成最短路徑的過(guò)程就是不斷地在始頂點(diǎn)V何終頂點(diǎn)W間加入中間點(diǎn)的過(guò)程,因?yàn)樵诿可?成了一條最短路徑后,就有一個(gè)該路徑的終頂點(diǎn)U,那么那些還未生成最短路徑的路徑就會(huì)由于經(jīng)過(guò)U而比原來(lái)的路徑短,于是就讓它經(jīng)過(guò)U。</p><p><b>  5.2.3 回溯法<

95、;/b></p><p>  回溯法有“通用的解題法”之稱。用它可以求出問(wèn)題的所有解或任一解。概括地說(shuō),回溯法是一個(gè)既帶有系統(tǒng)性又帶有跳躍性的搜索法。它在包含問(wèn)題所有解 的一顆狀態(tài)空間樹(shù)上,按照深度優(yōu)先的策略,從根出發(fā)進(jìn)行搜索。搜索每到達(dá)狀態(tài)空間樹(shù)的一個(gè)節(jié)點(diǎn),總是先判斷以該節(jié)點(diǎn)為根的子樹(shù)是否肯定不包含問(wèn)題的解。如 果肯定不包含,則跳過(guò)對(duì)該子樹(shù)的系統(tǒng)搜索,一層一層地向它的祖先節(jié)點(diǎn)繼續(xù)搜索,直到遇到一個(gè)還有未被

96、搜索過(guò)的兒子的節(jié)點(diǎn),才轉(zhuǎn)向該節(jié)點(diǎn)的一個(gè)未曾搜索過(guò)的 兒子節(jié)點(diǎn)繼續(xù)搜索;否則,進(jìn)入子樹(shù),繼續(xù)按深度優(yōu)先的策略進(jìn)行搜索。回溯法在用來(lái)求問(wèn)題的所有解時(shí),要回溯到根,且根的所有兒子都已被搜索過(guò)才結(jié)束;而在 用來(lái)求問(wèn)題的任一解時(shí),只要搜索到問(wèn)題的一個(gè)解就可結(jié)束。</p><p>  5.3 排課系統(tǒng)流程分析</p><p>  課程安排的流程跟教務(wù)工作的順序有很大的關(guān)系, 被安排的課程的信息來(lái)源主要

97、是前期很多教務(wù)工作的總結(jié)。其基本流程見(jiàn)下圖。</p><p><b>  生成課表</b></p><p>  5.3.1 整理課程信息</p><p>  整理本學(xué)期需要安排課程的基本信息, 包括教學(xué)任務(wù)信息,課程安排信息。</p><p>  5.3.2 按等級(jí)分類</p><p>  根據(jù)整

98、理出的課程需求, 我們對(duì)每門課程根據(jù)情況進(jìn)行優(yōu)先級(jí)別分類, 作為排課隊(duì)列的順序。</p><p>  5.3.3 獲取可安排的教室</p><p>  教室是根據(jù)每個(gè)系的情況進(jìn)行分配的, 部分特殊教室的使用也是有限制的, 因此在排課前必須獲得所有能夠安排課程的教室情況。</p><p><b>  5.3.4 排課</b></p>

99、<p>  根據(jù)課程的優(yōu)先級(jí)別按順序再依據(jù)規(guī)則依次對(duì)課程進(jìn)行時(shí)間安排, 在這里重點(diǎn)是規(guī)則的定義和在上課時(shí)間和教室空間縱橫軸組成的二維空間中對(duì)每個(gè)課單元的排課許可。排課的過(guò)程是一個(gè)搜索的過(guò)程, 當(dāng)最后的課程搜索不到時(shí)間段時(shí), 表示課程安排有沖突, 可通過(guò)回溯的方法通過(guò)改變前一門課的定位來(lái)增加可選的機(jī)會(huì), 當(dāng)最后仍然出現(xiàn)課程沖突時(shí), 可列出所有與該課沖突的信息, 以便教務(wù)管理員分析和重新對(duì)某些屬性進(jìn)行設(shè)定。</p>

100、<p>  5.3.5 生成課表</p><p>  將排好課的節(jié)次時(shí)間和教室空間縱橫軸組成的二維表的每個(gè)單元數(shù)據(jù)存入數(shù)據(jù)庫(kù)。通過(guò)各種檢索可以生成課表。</p><p><b>  5.4算法分析</b></p><p>  5.4.1 問(wèn)題的描述</p><p>  我們討論的自動(dòng)排課問(wèn)題的簡(jiǎn)化描述如下:&

101、lt;/p><p>  設(shè)要安排的課程為{ C1 , C2 , ., Cn} ,課程總數(shù)為n , 而各門課程每周安排次數(shù)為{ N1 , N2 , ., Nn} ;每周教學(xué)日共5 天,即星期一到星期五;每個(gè)教學(xué)日最多安排6 次課程教學(xué),即上午3節(jié),下午3節(jié)。 在這種假設(shè)下,顯然每周的教學(xué)總時(shí)間段數(shù)為5 ×6 = 30 ,并存在以下約束關(guān)系:</p><p><b>  n ≤

102、30 </b></p><p>  Ni ≤30-n(每門課程至少占有一次課程教學(xué))</p><p>  自動(dòng)排課問(wèn)題是:設(shè)計(jì)適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)和算法, 以確定{ C1 , C2 , ., Cn } 中每個(gè)課程的教學(xué)應(yīng)占據(jù)的時(shí)間段,并且保證任何一個(gè)時(shí)間段僅由一門課程占據(jù)。</p><p>  5.4.2 排課約束條件</p><p>

103、  小學(xué)排課與其他高校排課相比,具有一定的差異性。具體表現(xiàn)在以下幾個(gè)方面:</p><p>  教室固定:除專業(yè)課外,小學(xué)上課地點(diǎn)全部在固定教室。專業(yè)教室資源數(shù)量比較有限。</p><p>  課程優(yōu)先級(jí)關(guān)系:由于課程之間的差異性,課程之間具有不同程度的優(yōu)先級(jí)關(guān)系。例如,小學(xué)語(yǔ)數(shù)外3門主課大多都排在上午時(shí)段,下午時(shí)段則排副課</p><p>  課程不能連上:一周課

104、程教學(xué)小于5次的課程要均勻分布一周,同一天不能出現(xiàn)有2次以上教程;若是程教學(xué)一周大于5次,則除了一周5天都有一次教學(xué)課程之外,剩下的也是均勻分布在一周5天,且同一課程不能連上。</p><p>  課程安排較多:小學(xué)一周30節(jié)課基本全都要排,剩余時(shí)段較少,由于教師資源的稀缺,會(huì)給排課帶來(lái)極大的約束 。</p><p><b>  5.5 算法設(shè)計(jì)</b></p&

105、gt;<p>  在教師資源和教室資源滿足但是緊缺的條件下,排課算法主要解決的就是課程時(shí)間段合理安排的問(wèn)題。</p><p><b>  設(shè)計(jì)思想:</b></p><p>  1.獲得所有老師的教師工號(hào),將每一個(gè)教師工號(hào)和30個(gè)課時(shí)的集合封裝成一個(gè)對(duì)象,該對(duì)象表示對(duì)應(yīng)教學(xué)工號(hào)的教師所擁有的授課時(shí)間,如果有特殊要求,比如某個(gè)教師在星期五下午不教課,那就在

106、其工號(hào)對(duì)應(yīng)的對(duì)象中去除周五下午的3個(gè)課時(shí)。</p><p>  2.按年級(jí)、班級(jí)從低到高進(jìn)行循環(huán),以班級(jí)為單位進(jìn)行排課。排課的優(yōu)先級(jí)按照設(shè)定的來(lái)排列。一般主課先排。</p><p>  循環(huán)進(jìn)入班級(jí)時(shí),首先會(huì)生成該班班號(hào)與可授課時(shí)間段的對(duì)象,表明該班級(jí)可以上課的時(shí)間段,需要注意一點(diǎn)的是班級(jí)可授課課時(shí)分為上午和下午2個(gè)集合。如同教師一樣,可以安排不上課的時(shí)段。同時(shí)也將與該班相關(guān)的教學(xué)任務(wù)查

107、詢出來(lái)放進(jìn)一個(gè)集合。其中,每一條教學(xué)任務(wù)也封裝成一個(gè)集合。具體包含字段信息有:年級(jí)、班級(jí)、課程名、課程id、課時(shí)、教師id、教師名字。</p><p>  3.按照優(yōu)先級(jí)獲取語(yǔ)數(shù)外的課程id,然后循環(huán)3個(gè)主課id。</p><p>  首先,獲取該班級(jí)數(shù)學(xué)課的教學(xué)任務(wù),取得該教學(xué)任務(wù)對(duì)象,判斷其課時(shí)是否大于5,分2種不同的策略來(lái)排課。如果小于5,則每天只安排一次課時(shí)。按照其課時(shí)大小,繼續(xù)

108、進(jìn)入循環(huán),在此循環(huán),則開(kāi)始隨機(jī)抽取班級(jí)對(duì)象可授課的時(shí)間,按照策略,隨機(jī)抽取主課的時(shí)間段大多在上午區(qū)間。每次一個(gè)循環(huán),都會(huì)抽出一個(gè)時(shí)間段,接著再判斷該班級(jí)數(shù)學(xué)教師對(duì)象的時(shí)間集合中是否包含,如果包含,則表明該時(shí)間段老師可以教授該門課程,然后同時(shí)將該時(shí)間段與該教學(xué)任務(wù)已抽取的時(shí)間段判斷是否在同一天,如果不在同一天,則表明該時(shí)間段完全符合。最后將該課時(shí)段插入教學(xué)任務(wù)記錄中,班級(jí)授課對(duì)象和教師授課對(duì)象同時(shí)去除該課時(shí)段,同時(shí)記錄該課時(shí)段用來(lái)與下一個(gè)

109、抽取課時(shí)段進(jìn)行是否在同一天判斷。</p><p>  如果授課課時(shí)大于5小于10,則判斷條件改為每天最多2次并且不能連續(xù)。</p><p>  4.主課排好后,進(jìn)行副課循環(huán)排課,排課策略與主課相同,只是隨機(jī)抽取的時(shí)間段集中在下午。</p><p>  5.此時(shí)一個(gè)班級(jí)排好課,相關(guān)的教師可授課對(duì)象已被修改,安排好的時(shí)間段全部去除。然后進(jìn)入下一輪班級(jí)排課,再次生成該班

110、可授課時(shí)間對(duì)象。而修改的教師可授課對(duì)象保持不變。</p><p>  6.一直循環(huán),直到排課結(jié)束。</p><p>  當(dāng)然,此種設(shè)計(jì)思想存在缺陷,當(dāng)資源緊張時(shí),則會(huì)發(fā)生資源沖突,表現(xiàn)為抽取的時(shí)間段始終不滿足要求,此時(shí)就要進(jìn)行回溯處理,重新排課。當(dāng)然也可以將此沖突記錄下來(lái),跳過(guò)該次排課,在排課結(jié)束后提醒用戶,讓其手工調(diào)課來(lái)規(guī)避次沖突</p><p>  課程循環(huán)算

111、法流程圖:</p><p>  圖5.1 課程循環(huán)算法流程圖</p><p>  第六章 系統(tǒng)概要設(shè)計(jì)</p><p><b>  6.1 設(shè)計(jì)思想</b></p><p>  本系統(tǒng)采用各班級(jí)獨(dú)立劃分管理,所有教師均可為任何班級(jí)服務(wù),各班級(jí)根據(jù)每天課程數(shù)目來(lái)進(jìn)行自動(dòng)排序,同時(shí)各教師允許教學(xué)多門課程,因此為了每名教師

112、配置了時(shí)間占用表,只要與班級(jí)對(duì)應(yīng)的時(shí)間空間表未被占用,都可以參與排課,并根據(jù)用戶定義的要求排出課程。</p><p>  數(shù)據(jù)管理類:由于班級(jí),時(shí)間,教師,課程等信息都需要一個(gè)活動(dòng)的管理過(guò)程,因?yàn)樵诠?jié)省資源的情況下,將各數(shù)據(jù)所需要的代碼合并在一起進(jìn)行編寫(xiě)和使用。</p><p><b>  圖6.1 數(shù)據(jù)管理</b></p><p>  6.2

113、 系統(tǒng)功能模塊劃分</p><p>  教務(wù)排課系統(tǒng)在功能上分四個(gè)模塊,如圖6.2:</p><p>  圖6.2 系統(tǒng)功能模塊劃分</p><p><b>  6.3 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  利用SQL Server2005來(lái)管理排課資源、排課約束條件等信息,利用數(shù)據(jù)庫(kù)技術(shù)來(lái)實(shí)現(xiàn)設(shè)置排課優(yōu)先級(jí)、課時(shí)和

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論