版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程管理系統(tǒng)</b></p><p> 摘 要:本文為適應(yīng)高校分校管理體制下校區(qū)教學(xué)管理信息化的需要,采用Visual Basic數(shù)據(jù)庫技術(shù),開發(fā)了一套簡(jiǎn)單靈活、方便通用的學(xué)生課程管理系統(tǒng)。本文主要介紹的是該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。</p><p> 關(guān)鍵詞:課程管理系統(tǒng);數(shù)據(jù)庫</p><p> Abstract
2、: In order to meet management at the University campus under the system of teaching management information needs, using Visual Basic database technology, developed a simple and flexible to facilitate a common course mana
3、gement system students. This paper describes the system is the Design and Implementation. Key words: course management system, database</p><p><b> 目錄</b></p><p><b> 第一章 緒論3
4、</b></p><p> 第二章 Visual Basic 6.0 簡(jiǎn)介4</p><p> 第三章系統(tǒng)需求分析6</p><p> 3. 1需求獲取方法6</p><p> 3. 2業(yè)務(wù)需求的描述7</p><p> 3. 2. 1總體業(yè)務(wù)流程7</p><p&g
5、t; 3.2.2業(yè)務(wù)描述7</p><p> 3. 3需求分析9</p><p> 3. 3. 1系統(tǒng)需求獲取9</p><p> 3. 3. 2系統(tǒng)分析模型14</p><p> 第四章系統(tǒng)設(shè)計(jì)17</p><p> 4. 1系統(tǒng)功能框架17</p><p> 4.1
6、.1功能框架總述17</p><p> 4. 2設(shè)計(jì)類建模19</p><p> 4. 3數(shù)據(jù)庫建模21</p><p> 4. 3. 1數(shù)據(jù)庫建模步驟21</p><p> 4.3.2成績報(bào)表的視圖設(shè)計(jì)23</p><p> 第五章系統(tǒng)實(shí)現(xiàn)27</p><p> 5.
7、1課程管理系統(tǒng)的實(shí)現(xiàn)27</p><p> 5. 2培養(yǎng)方案管理的實(shí)現(xiàn)28</p><p> 5. 3 XML配置部署文件的實(shí)現(xiàn)30</p><p> 5. 4成績表的實(shí)現(xiàn)34</p><p> 5. 5內(nèi)容管理掛接問題36</p><p> 5. 5. 1課程表實(shí)現(xiàn)方式36</p>
8、<p> 5. 5. 2 SVG實(shí)現(xiàn)方式36</p><p><b> 參考文獻(xiàn)39</b></p><p><b> 致 謝40</b></p><p><b> 第一章 緒論</b></p><p> 學(xué)生課程管理系統(tǒng)是一個(gè)學(xué)校不可缺少的部分,它
9、的內(nèi)容對(duì)于管理者和學(xué)生來說都至關(guān)重要,所以學(xué)生課程管理系統(tǒng)應(yīng)該能夠?yàn)楣芾碚咛峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以來人們使用傳統(tǒng)人工的方式管理學(xué)生課程,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少的困難。</p><p> 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來
10、越重要的作用。</p><p> 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)人事勞資信息進(jìn)行管理,具有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。如今隨著學(xué)生的擴(kuò)招各個(gè)高校都有好幾個(gè)校區(qū),如果沒有相應(yīng)的管理系統(tǒng)互相銜接,仍然停留在傳統(tǒng)的紙質(zhì)和手工管理方式上,則必將成為
11、高校發(fā)展的瓶頸、制約管理效能的提高。針對(duì)這一情況,我們結(jié)合學(xué)校教學(xué)管理實(shí)際,利用Viusal Basic數(shù)據(jù)庫技術(shù)開發(fā)了一套簡(jiǎn)單靈活的學(xué)生課程管理系統(tǒng)。</p><p> 第二章 Visual Basic 6.0 簡(jiǎn)介</p><p> 20世紀(jì)60年代初,美國Dartmouth學(xué)院的兩位學(xué)者G.Keneny和Thomos E.Kurty發(fā)明了一種稱為“BASIC”的語言,它的誕生稱得
12、上是計(jì)算機(jī)語言發(fā)展史上的一件大事,對(duì)計(jì)算機(jī)的推廣應(yīng)用起到了重要的作用。</p><p> 自從Basic語言問世以來,“Basic”已經(jīng)成為了編程入門者學(xué)習(xí)語言的代名詞。Basic語言以其易學(xué)易用的特點(diǎn)風(fēng)靡全球。然而自從微軟公司推出了劃時(shí)代的 Visual Basic,Basic又從一門“玩具語言”一躍而成為功能強(qiáng)大的應(yīng)用軟件開發(fā)語言。它功能強(qiáng)大,語法簡(jiǎn)單,執(zhí)行代碼效率高。據(jù)統(tǒng)計(jì),開發(fā)同樣的應(yīng)用軟件,采用 VB
13、開發(fā)要比用 VC++的效率提高 70%。因此,VB已經(jīng)成為每一個(gè)編程工作者學(xué)習(xí)時(shí)的首選語言[14]。</p><p> 1991年,微軟推出了Visual Basic1.0版。這在當(dāng)時(shí)引起了很大的轟動(dòng)。接著于1992年微軟推出Visual BasicB2.0,1993年推出Visual Basic3.0,1995年推出Visual Basic4.0,1997年推出Visual Basic5.0,1998年推出V
14、isual Basic6.0。并且從Visual Basic3.0開始,微軟將ACCESS的數(shù)據(jù)庫驅(qū)動(dòng)集成到了Visual Basic中,這使得Visual Basic的數(shù)據(jù)庫編程能力大大提高。從Visual Basic4.0開始,Visual Basic也引入了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。而且,Visual Basic還引入了“控件”的概念,使得大量已經(jīng)編好的Visual Basic程序可以被我們直接拿來使用,如今,Visual Basi
15、c已經(jīng)有了6.0版。Visual Basic已逐漸成為簡(jiǎn)單易學(xué)、功能強(qiáng)大的編程工具[15]。它不但在一般程序設(shè)計(jì)方面比傳統(tǒng)的程序設(shè)計(jì)語言具有明顯的優(yōu)勢(shì),而且可作為多媒體創(chuàng)作工具,支持程序跳轉(zhuǎn),具有脫機(jī)播放動(dòng)畫的能力,并采用了動(dòng)畫過渡技術(shù)等。它的軟件費(fèi)用支出低,易學(xué)習(xí)</p><p> Visual Basic 6.0作為Visual Studio 6.0的一員發(fā)布,證明微軟正在改變Visual Basic的產(chǎn)品
16、定位,他想讓Visual Basic成為企業(yè)級(jí)快速開發(fā)的利器。Visual Basic 6.0在數(shù)據(jù)訪問方面有了很大的改進(jìn),新的ADO組件讓對(duì)大量數(shù)據(jù)快速訪問成為可能。數(shù)據(jù)環(huán)境和新的報(bào)表功能也讓數(shù)據(jù)開發(fā)有了全新的體驗(yàn)。Visual Basic 借助COM/COM+強(qiáng)大的功能,可以開發(fā)具有N層結(jié)構(gòu)的分布式應(yīng)用程序。同時(shí),Visual Basic還可以在IIS上開發(fā)性能超群的Web應(yīng)用程序。Visual Basic 6.0在語言方面和IDE
17、方面的改進(jìn)都不大,但是許多新增的組件成為Visual Basic開發(fā)人員手中的利器,如File System Object等[16]。新的字符串函數(shù)Split和Replace等也給Visual Basic的程序員帶來很大方便。</p><p> 總之Visual Basic 6.0已經(jīng)是非常成熟穩(wěn)定的開發(fā)系統(tǒng),能讓企業(yè)快速建立多層的系統(tǒng)以及Web應(yīng)用程序,成為當(dāng)前Windows上最流行的Visual Basic
18、版本。</p><p><b> 第三章系統(tǒng)需求分析</b></p><p> 本章對(duì)系統(tǒng)采用需求的獲取方法進(jìn)行描述,分析了系統(tǒng)各個(gè)模塊的功能性需求,針對(duì)系統(tǒng)中的需求描述和分析的問題,采用面向?qū)ο蟮乃枷牒蚒ML中的用例模型和分析模型對(duì)系統(tǒng)需求進(jìn)行分析描述,并且得出系統(tǒng)中各部分的用例模型。</p><p> 3. 1需求獲取方法</p
19、><p> 需求階段包括需求獲取和需求分析兩個(gè)主要的過程。需求獲取的主要任務(wù)在于明晰用戶的業(yè)務(wù)流程,獲取用戶需求。與學(xué)院及培養(yǎng)辦人員組成項(xiàng)目組,共同負(fù)責(zé)需求的設(shè)計(jì),系統(tǒng)采用下面需求獲取方法。</p><p> 圖3-1業(yè)務(wù)需求獲取方法</p><p> 業(yè)務(wù)流程的確定,鑒于項(xiàng)目組作為系統(tǒng)得開發(fā)者和使用者的雙重角色,熟悉需要開發(fā)的系統(tǒng)的主要業(yè)務(wù)流程。通過與業(yè)務(wù)人員的
20、交流協(xié)商確定業(yè)務(wù)基本流程。業(yè)務(wù)字段的獲取,由于系統(tǒng)需要考慮與學(xué)校已有的信息系統(tǒng)的數(shù)據(jù)兼容問題,針對(duì)系統(tǒng)中的業(yè)務(wù)字段主要從己有的系統(tǒng)中的字段獲取。另外,從學(xué)校所具備的特點(diǎn)來看需要得到的主要是各種類型的上報(bào)表格,所以也可以由己有的各種業(yè)務(wù)表格中獲取業(yè)務(wù)字段。業(yè)務(wù)需求確認(rèn),獲取以上業(yè)務(wù)信息后對(duì)需求進(jìn)行描述,然后與學(xué)校業(yè)務(wù)人員進(jìn)行交流并且確認(rèn)。業(yè)務(wù)需求的挖掘,鑒于開發(fā)人員的特殊性,作為兩重角色的項(xiàng)目組可以從系統(tǒng)中發(fā)掘出業(yè)務(wù)人員不曾關(guān)注的需求。及
21、時(shí)溝通是指開發(fā)人員在開發(fā)過程中遇到的業(yè)務(wù)問題以及發(fā)掘出的新需求及時(shí)與學(xué)校業(yè)務(wù)人員溝通;同時(shí),由于學(xué)校業(yè)務(wù)流程的更新性,在開發(fā)周期中業(yè)務(wù)流程發(fā)生變化也需要與開發(fā)人員及時(shí)溝通。</p><p> 3. 2業(yè)務(wù)需求的描述</p><p> 3. 2. 1總體業(yè)務(wù)流程</p><p> 課程管理系統(tǒng)是針對(duì)培養(yǎng)過程中,從培養(yǎng)方案的制定,到學(xué)生教學(xué)計(jì)劃安排再到學(xué)生選課和學(xué)
22、生成績管理等一系列連貫性的教學(xué)活動(dòng)的管理。由系統(tǒng)的業(yè)務(wù)描述可以發(fā)現(xiàn),整個(gè)系統(tǒng)的業(yè)務(wù)是依據(jù)培養(yǎng)過程為主線,實(shí)現(xiàn)了整個(gè)系統(tǒng)的可跟蹤性和可維護(hù)性;通過各個(gè)單獨(dú)的模塊可以完成對(duì)某一業(yè)務(wù)需求的管理,另外系統(tǒng)各個(gè)模塊間又是可依賴的,比如說成績的錄入需要學(xué)生選課的結(jié)果、學(xué)生選課又與各個(gè)班級(jí)的排課結(jié)果密切相關(guān)。</p><p> 培養(yǎng)過程中各業(yè)務(wù)之間的流程如圖3-2;首先,由各個(gè)學(xué)院確定本學(xué)院各個(gè)專業(yè)的培養(yǎng)方案;然后,在具體每
23、個(gè)學(xué)期的培養(yǎng)過程中由學(xué)院確定該學(xué)期需要上的課程以及課程安排;學(xué)生依據(jù)教學(xué)計(jì)劃和本人的培養(yǎng)計(jì)劃選定自己需要上的課程;最后,本學(xué)期末通過考試由教師或者秘書錄入學(xué)生成績;通過學(xué)生各個(gè)學(xué)期直到畢業(yè)的各門課程成績最終生成軟件工程的培養(yǎng)計(jì)劃;另外通過學(xué)院教學(xué)計(jì)劃的安排結(jié)果可以計(jì)算出教師個(gè)人的工作量。</p><p><b> 3.2.2業(yè)務(wù)描述</b></p><p> 系統(tǒng)
24、的目的在于通過系統(tǒng)對(duì)培養(yǎng)過程中課程管理形成一個(gè)統(tǒng)一的管理,通過系統(tǒng)提高課程管理的效率,并可以很方便的提取各個(gè)學(xué)期各學(xué)院的課程基本情況如新申請(qǐng)的課程的統(tǒng)計(jì)、學(xué)生課程的安排情況、教師各個(gè)學(xué)期工作量的計(jì)算情況、學(xué)生每個(gè)學(xué)期的選課情況以及學(xué)生各個(gè)學(xué)期和最終教學(xué)成績、各個(gè)學(xué)院的培養(yǎng)方案等。</p><p> 通過對(duì)系統(tǒng)的分析得到系統(tǒng)業(yè)務(wù)需求主要包括課程基本維護(hù)、新課程申請(qǐng)、選課管理、排課管理以及培養(yǎng)方案和成績的管理,其主
25、要的描述如下。</p><p> 1、課程基本維護(hù),主要是由學(xué)院秘書和院管理人員對(duì)課程進(jìn)行維護(hù),包括添加、刪除、修改、查詢課程。院管理少、員可以維護(hù)整個(gè)學(xué)校的課程,學(xué)院秘書維護(hù)各自學(xué)院的課程。</p><p> 2、新課程申請(qǐng),每年各個(gè)學(xué)院都會(huì)增加很多新的課程,而增加的課程院不能夠很好的掌握和控制;該部分功能就是更好的掌握新課程的增加情況。教師網(wǎng)上提交開設(shè)新課程申請(qǐng),經(jīng)過院系和學(xué)校審核
26、后轉(zhuǎn)為正式課程。教師、院系、學(xué)??煞謩e查看本人、本院、本校的歷史申請(qǐng)記錄和申請(qǐng)結(jié)果。業(yè)務(wù)流程如圖3-3所示,每個(gè)學(xué)期開始首先由各個(gè)學(xué)院的教師填寫</p><p><b> 圖3-3新課程申請(qǐng)</b></p><p> 3、培養(yǎng)方案管理,由各院系向?qū)W校提交本院各專業(yè)的培養(yǎng)方案。主要包括課程要求和學(xué)分、以及對(duì)學(xué)生培養(yǎng)情況的要求,學(xué)校進(jìn)行統(tǒng)一管理。并且能按照專業(yè)和學(xué)科一
27、級(jí)代碼對(duì)培養(yǎng)方案進(jìn)行查詢,學(xué)生可以通過界面查看各個(gè)專業(yè)的培養(yǎng)方案。</p><p> 4、選課管理,各院系秘書設(shè)置選課的起止期限,學(xué)生根據(jù)學(xué)校教學(xué)任務(wù)的安排在網(wǎng)上選課,系統(tǒng)自動(dòng)統(tǒng)計(jì)選課結(jié)果供秘書進(jìn)行綜合查詢和打印,如每門課有多少人選,學(xué)生都選了哪些課等。</p><p> 5、成績管理,系統(tǒng)根據(jù)選課結(jié)果初始化成績單,由各院系秘書和任課教師網(wǎng)上在線錄入學(xué)生成績,秘書對(duì)成績進(jìn)行統(tǒng)計(jì)和排名,
28、學(xué)生可查詢自己的成績;秘書和學(xué)生可以選擇打印學(xué)生的個(gè)人成績表。</p><p> 6、課程內(nèi)容管理,課程內(nèi)容管理主要包括課程靜態(tài)模板的制定和動(dòng)態(tài)交互部分,靜態(tài)部分包括課程簡(jiǎn)介、教學(xué)資源、教師師資等內(nèi)容,動(dòng)態(tài)交互部分包括網(wǎng)上答疑和作業(yè)管理兩部分。另外,還包括與系統(tǒng)其它部分的無縫鏈接,為學(xué)生的學(xué)習(xí)和瀏覽提供方便。</p><p><b> 3. 3需求分析</b>&l
29、t;/p><p> 應(yīng)用軟件系統(tǒng),就其本質(zhì)來說,是使用計(jì)算機(jī)對(duì)現(xiàn)實(shí)世界進(jìn)行的數(shù)字化模擬。應(yīng)用軟件的制造過程,按照UML的方法,就是建立這一系列模型的過程。系統(tǒng)需求階段主要包括需求獲取和需求分析兩個(gè)重要階段。需求獲取主要就是獲取用戶的業(yè)務(wù)需求,而需求分析就是將業(yè)務(wù)需求轉(zhuǎn)化為軟件需求的過程。在面向?qū)ο蟮能浖こ谭椒ㄖ?,用例模型是系統(tǒng)需求獲取的有效手段,它定義系統(tǒng)用來做什么; 需求分析是從開發(fā)者的角度來描述問題,其建模過
30、程包括靜態(tài)模型和動(dòng)態(tài)模型建立。下面通過成績管理系統(tǒng)建模的實(shí)例對(duì)需求獲取和需求分析階段的需求方法進(jìn)行描述。</p><p> 3. 3. 1系統(tǒng)需求獲取</p><p> 在成績管理系統(tǒng)中,通過用例模型獲取系統(tǒng)的需求。用例模型由“角色”(Actor)和“用例”(UseCase)組成。在構(gòu)建一個(gè)用例的時(shí)候,通常要做的第一件事情是識(shí)別角色,或者說,參與者。然后識(shí)別系統(tǒng)為參與者提供的服務(wù),或者
31、說,參與者的行為,也就是用例。最后確定角色和用例之間的關(guān)系。確定有效用例的關(guān)鍵是,檢查用例是否包含了一個(gè)完整的功能。用例不能定的過細(xì),不能把一個(gè)完整的功能的一個(gè)部分作為一個(gè)用例,也不能在一個(gè)用例中包含過多的功育旨。</p><p><b> 1、用例建模</b></p><p> 用例模型由用例圖和用例描述兩部分組成。用例圖描述系統(tǒng)中的角色和參與者提供的服務(wù);用例
32、描述是從軟件系統(tǒng)角度對(duì)用例工作流程和工作參與者進(jìn)行的一段規(guī)范的文字性描述。為了保證在用例建模過程中描述的一致性,在課程管理系統(tǒng)中采用RUP推薦的描述用例的完整結(jié)構(gòu)。用例模型是在業(yè)務(wù)流程和描述的基礎(chǔ)上建立的,主要包括軟件系統(tǒng)實(shí)現(xiàn)的部分,對(duì)業(yè)務(wù)功能需求進(jìn)行了描述。用例描述模板如表3-1所示;</p><p><b> 表3-1用例模板</b></p><p> 在用例
33、描述中,用例名稱用來書寫用例的名稱,使用形象的詞語對(duì)用例進(jìn)行概括描述,一般采用動(dòng)賓結(jié)構(gòu)的詞組來為用例取名如添加成績:用例參與者說明了系統(tǒng)發(fā)出請(qǐng)求人;用例的前置條件聲明了用例啟動(dòng)之前的系統(tǒng)必須滿足的條件,該條件由系統(tǒng)負(fù)責(zé)實(shí)施,并要求確保為真;用例的后置條件表示一個(gè)條件列表,如果其中包含條件,則這些條件將在用例成功完成以后得到滿足;用例基本事件流是指參與者在用例中所遵循的主邏輯路徑。因?yàn)樗枋隽烁黜?xiàng)工作都正常進(jìn)行時(shí)用例的工作方式,通常稱其為
34、適當(dāng)路徑(happy path)或主路徑(mainpath);用例擴(kuò)展事件流是用例中很少使用的邏輯路徑,包括在變更工作方式、出現(xiàn)異常或發(fā)生錯(cuò)誤的情況下所遵循的路徑;修改記錄是指當(dāng)系統(tǒng)業(yè)務(wù)需求發(fā)生改變時(shí),相應(yīng)的用例也要進(jìn)行修改;修改記錄用來記錄修改的內(nèi)容。</p><p> 圖3-4成績管理用例圖</p><p> 如圖3-4,系統(tǒng)成績管理部分的用例圖,成績管理中主要包括秘書(教務(wù)員)、
35、教師、學(xué)生三種角色;主要用例有學(xué)生成績查詢、管理員錄入、修改成績、秘書初始化成績?cè)O(shè)置、成績匯總以及教師錄入成績等。</p><p> 系統(tǒng)中的用例圖及其用例描述是對(duì)系統(tǒng)中包括的主要功能進(jìn)行描述,但是在整個(gè)功能運(yùn)行的流程上不能夠很好的顯示和描述,對(duì)于跨角色的業(yè)務(wù)細(xì)節(jié)也不能夠清晰的描述。在課程管理系統(tǒng)需求的分析過程中,引入了UML中的活動(dòng)圖對(duì)需求進(jìn)行分析和描述。</p><p> 圖3-5
36、為成績錄入設(shè)置流程的活動(dòng)圖。各院系秘書登陸系統(tǒng)后進(jìn)入成績初始化設(shè)置界面,選擇具體的學(xué)年學(xué)期和班級(jí),系統(tǒng)顯示該班級(jí)本學(xué)年學(xué)期的所有課程;秘書可依據(jù)實(shí)際情況選擇對(duì)某一門課程或全部課程進(jìn)行初始化操作;同時(shí)選擇郵件提醒功能,提醒相應(yīng)課程的教師進(jìn)行成績錄入操作,系統(tǒng)返回郵件提醒結(jié)果。</p><p> 圖3-5成績?cè)O(shè)置活動(dòng)圖</p><p> 2、系統(tǒng)中主要的用例模型</p>&l
37、t;p> 由需求分析方法可以得出系統(tǒng)中各主要部分的用例模型,主要包括選課管理、培養(yǎng)方案管理以及課程維護(hù)管理等。其描述分析如下。</p><p> 圖3-6為選課管理的用例圖,主要包括了學(xué)生和秘書兩個(gè)角色;其主要用例有學(xué)生選擇課程、查看選課結(jié)果,秘書設(shè)置選課時(shí)間、查詢選課結(jié)果等。</p><p> 圖3-6選課管理用例圖</p><p> 圖3-7為培養(yǎng)
38、方案管理的用例圖,主要包括學(xué)院秘書和院管理人員以及學(xué)生等三種角色。主要用例包括學(xué)院管理添加專業(yè)培養(yǎng)方案、修改和刪除專業(yè)培養(yǎng)方案;學(xué)校院管理人員審核各個(gè)專業(yè)的培養(yǎng)方案;學(xué)生通過專業(yè)或者是一級(jí)學(xué)科查詢培養(yǎng)方案。</p><p> 圖3-7培養(yǎng)方案用例圖</p><p> 其中,主要用例學(xué)院秘書添加培養(yǎng)方案的用例描述如表3-3。</p><p> 表3-3添加培養(yǎng)方
39、案用例描述</p><p> 圖3-8描述了系統(tǒng)中關(guān)于新課程申請(qǐng)審核、課程基本維護(hù)的主要用例。主要包括教師填寫、修改課程申請(qǐng),查看個(gè)人課程審核結(jié)果;學(xué)院秘書查看教師審核,并且填寫學(xué)院審核意見、維護(hù)課程;學(xué)校院管理人員填寫各個(gè)學(xué)院教師申請(qǐng)的審核意見、為審核通過的課程賦予課程號(hào)、維護(hù)各個(gè)學(xué)院課程等用例。</p><p> 圖3-8課程維護(hù)管理用例圖</p><p>
40、 3. 3. 2系統(tǒng)分析模型</p><p> 在系統(tǒng)分析過程中,所關(guān)注的仍然是問題。但同用例模型不同的是,用例模型是從最終用戶的角度來看待問題,而分析模型是從開發(fā)者的角度來描述問題。用例模型的主要工作是描述現(xiàn)實(shí)世界的業(yè)務(wù)流程,而很少涉及系統(tǒng)的概念。分析,則是從系統(tǒng)的角度來來看待軟件應(yīng)該為用戶提供的服務(wù)。</p><p><b> 1、靜態(tài)模型的建立</b>&l
41、t;/p><p> 分析建模通常是識(shí)別對(duì)象和提取類的過程??紤]著名的htvc模式需要識(shí)別實(shí)體、控制和邊界三種對(duì)象。按照MVC模式來為識(shí)別對(duì)象做指導(dǎo),是非常好的做法。對(duì)象識(shí)別的結(jié)果,就是需要的靜態(tài)模型。首先識(shí)別出實(shí)體對(duì)象,這些對(duì)象通常是比較明顯的,例如系統(tǒng)中的角色,系統(tǒng)需要處理的資料等;有些實(shí)體對(duì)象需要分析后得到,例如,在本系統(tǒng)中,為了記錄學(xué)生成績等的信息,需要一個(gè)對(duì)象來專門記錄這一信息。然后識(shí)別為了完成系統(tǒng)業(yè)務(wù)邏輯
42、而需要的業(yè)務(wù)邏輯對(duì)象,以及同用戶進(jìn)行交互的界面類,在MVC模式中,他們分別對(duì)應(yīng)于控制類(Control)和邊界類(View)。在分析階段,這些對(duì)象通常都按照比較自然的方式來組織,例如,為了完成一個(gè)業(yè)務(wù)功能,通常需要一個(gè)控制類和一個(gè)邊界類,控制類執(zhí)行業(yè)務(wù)邏輯,邊界類同客戶進(jìn)行交互。當(dāng)然,這不是絕對(duì)的,在進(jìn)行進(jìn)一步深入的分析后,這些類可能會(huì)被分解和合并,同時(shí)需要對(duì)用例進(jìn)行逐個(gè)分析。.下面以系統(tǒng)中初始化設(shè)置成績用例為例進(jìn)行分析。</p&
43、gt;<p> 在這個(gè)用例中首先可以識(shí)別出一些直接的對(duì)象,包括秘書(Teacher),課程(Subject);分析會(huì)發(fā)現(xiàn)需要實(shí)體類StudentMark和實(shí)體類Mail,分別用來處理選課信息和郵件提醒;完成了實(shí)體對(duì)象的識(shí)別。同時(shí)需要一個(gè)控制類和一個(gè)界面類(工nit工nterface)來接受用戶的交互操作以及需要一個(gè)業(yè)務(wù)邏輯類(MarkManger)完成對(duì)數(shù)據(jù)庫操作。最后完成系統(tǒng)模型的建立。根據(jù)以上描述得出初始化用例的靜態(tài)
44、模型圖。</p><p><b> 圖3-9靜態(tài)模型</b></p><p> 在分析模型中還要識(shí)別出類的一些屬性和方法。為了避免過早的陷入細(xì)節(jié)當(dāng)中,并且適應(yīng)將來在設(shè)計(jì)類時(shí)的變化,在分析模型中,一般只是識(shí)別一些主要的屬性和方法。例如,Teacher類只需要Id和password,對(duì)于Subject類只需要課程Id和課程名稱Name等。</p><
45、;p><b> 2、動(dòng)態(tài)模型的建立</b></p><p> 在面向?qū)ο蟮南到y(tǒng)中,業(yè)務(wù)流程表現(xiàn)為對(duì)象之間的交互,利用分析得到的對(duì)象可以描述他們是怎樣進(jìn)行交互和協(xié)作的。在UML中可以使用順序圖、活動(dòng)圖或者狀態(tài)圖來建模這些靜態(tài)過程。在圖3-10成績?cè)O(shè)置的順序圖中,用成績?cè)O(shè)置的順序圖來說明需求分析的動(dòng)態(tài)模型的建立。矩形框表示一個(gè)基本類,在矩形框內(nèi)標(biāo)有類的名稱。垂直虛線稱為類的生命線,代表
46、在各個(gè)類之間的交互作用中概念的生命期。在生命線上的窄矩形條被稱作激活,表示該對(duì)象正在執(zhí)行某個(gè)操作。激活矩形的長度表示計(jì)劃的持續(xù)時(shí)間,頂部表示動(dòng)作的開始,底部表示動(dòng)作的結(jié)束。</p><p> 圖3-10成績?cè)O(shè)置順序圖</p><p> 圖中清楚顯示了成績?cè)O(shè)置用例中各個(gè)靜態(tài)模型之間進(jìn)行消息傳遞的順序。成績管理員選擇需要初始化的班級(jí)和學(xué)期,提交初始化請(qǐng)求到控制類,控制類獲取某門課程選課結(jié)果
47、后,傳遞選課結(jié)果到成績邏輯類對(duì)數(shù)據(jù)庫進(jìn)行操作完成初始化過程并且返回成功信息。</p><p><b> 第四章系統(tǒng)設(shè)計(jì)</b></p><p> 本章對(duì)系統(tǒng)的功能框架以及各個(gè)功能模塊之間的關(guān)系進(jìn)行描述;使用面向?qū)ο蟮乃枷雽?duì)系統(tǒng)的設(shè)計(jì)方法進(jìn)行分析,設(shè)計(jì)了系統(tǒng)中的相關(guān)類和數(shù)據(jù)庫模型;著重分析了成績單打印功能中的數(shù)據(jù)庫視圖設(shè)計(jì)以及培養(yǎng)方案的數(shù)據(jù)庫設(shè)計(jì),排課管理的相關(guān)設(shè)計(jì)
48、將在第6章中給出詳細(xì)描述,本章不再祥述。</p><p> 4. 1系統(tǒng)功能框架</p><p> 在設(shè)計(jì)系統(tǒng)的功能架構(gòu)時(shí),按照軟件工程中子系統(tǒng)劃分的思想,盡量實(shí)現(xiàn)各個(gè)子系統(tǒng)之間的獨(dú)立性以及減少系統(tǒng)間的依賴性。子系統(tǒng)的劃分采用了功能劃分的方法,其具體描述如下。</p><p> 4.1.1功能框架總述</p><p> 課程管理系統(tǒng)是
49、整個(gè)學(xué)院信息化系統(tǒng)的一部分,同時(shí)包括基本資料維護(hù)、權(quán)限管理系統(tǒng)和新聞系統(tǒng)等輔助功能模塊。其基本信息庫功能模塊如圖4-l;</p><p><b> 圖4-1基本信息庫</b></p><p> 基本信息庫主要包括學(xué)?;举Y源及教學(xué)單位信息等功能模塊。其中,院系管理是指學(xué)校各個(gè)院、系、所的添加、刪除等基本維護(hù);班級(jí)管理是指某個(gè)系所轄下的班級(jí)的管理維護(hù);學(xué)期管理是指學(xué)
50、生各個(gè)學(xué)年學(xué)期的基本維護(hù)。數(shù)據(jù)字典管理是指,對(duì)于系統(tǒng)中經(jīng)常使用但平時(shí)數(shù)據(jù)變化不頻繁的一類數(shù)據(jù),作為數(shù)據(jù)字,典的一個(gè)數(shù)據(jù)項(xiàng)進(jìn)行存儲(chǔ),并且可以對(duì)該數(shù)據(jù)項(xiàng)進(jìn)行維護(hù);這樣即滿足了數(shù)據(jù)的動(dòng)態(tài)變化又減少了系統(tǒng)維護(hù)量。</p><p> 為了實(shí)現(xiàn)系統(tǒng)的網(wǎng)絡(luò)粼數(shù)據(jù)安全問題,系統(tǒng)中采用基于角色的訪問控制(RBAC)思想,實(shí)現(xiàn)了系統(tǒng)的權(quán)限管理系統(tǒng)。在基于角色訪問控制(role-based;access control, RBAC
51、)中,權(quán)限和角色相關(guān),用戶被當(dāng)作相應(yīng)角色的成員而獲得角色的權(quán)限,簡(jiǎn)化了權(quán)限的管理。角色針對(duì)組織中的各種功能創(chuàng)建,用戶依據(jù)責(zé)任和資歷被指派角色,并且可以容易地完成角色的轉(zhuǎn)換。用戶對(duì)信息的訪問在指派角色的基礎(chǔ)上被管制.RBAC的策略基于角色,可以使用映射組織結(jié)構(gòu)的方式來闡述安全策略?;诮巧脑L問控制允許管理員根據(jù)組織結(jié)構(gòu)來指定訪問控制 , RBAC通過創(chuàng)建稱為角色( role )的新對(duì)象來達(dá)到此目的??梢詾橛脩舴峙蓤?zhí)行某種工作職能的角色,
52、然而與組不同的是,角色將授權(quán)權(quán)限定義在資源的某些局部上。在RBAC模型中,管理員使用角色來管理和分派權(quán)限。</p><p> 圖4-2課程管理系統(tǒng)功能框架</p><p> 如圖4-2,課程管理系統(tǒng)主要描述了從學(xué)生入學(xué)到離校期間培養(yǎng)過程中的課程管理。按照培養(yǎng)過程,系統(tǒng)主要分為培養(yǎng)方案管理、新課程申請(qǐng)管理、課程基術(shù)維護(hù)、課程內(nèi)容管理、排課管理、選課管理和成績管理等功能模塊。</p&
53、gt;<p> 課程基本維護(hù)模塊作為各個(gè)功能模塊的基礎(chǔ),包括各個(gè)學(xué)院課程的基本維護(hù)。新課程申請(qǐng)模塊包括教師提交新課程申請(qǐng)、學(xué)院審核、學(xué)院審核以及跟蹤新課程申請(qǐng)情況等功能、培養(yǎng)方案模塊包括學(xué)院秘書提交培養(yǎng)方案、學(xué)院審核發(fā)布培養(yǎng)方案以及對(duì)培養(yǎng)方案查詢等功能。排課管理模塊包括教學(xué)任務(wù)設(shè)置、教師申請(qǐng)、管理員交互式排課以及課程表查詢等功能。選課管理模塊主要包括管理員時(shí)間設(shè)置、學(xué)生網(wǎng)上選課、選課查詢等功能。成績管理模塊包括成績表的初
54、始化、學(xué)生成績錄入、學(xué)生成績補(bǔ)錄、學(xué)生成績查詢以及學(xué)生成績和培養(yǎng)計(jì)劃報(bào)表等功能。課程內(nèi)容管理主要包括課程內(nèi)容模板設(shè)計(jì)、交流平臺(tái)的建立、內(nèi)容管理的掛接等功能。</p><p> 2、功能模塊間的流程</p><p> 由系統(tǒng)的業(yè)務(wù)描述可以發(fā)現(xiàn),整個(gè)系統(tǒng)的業(yè)務(wù)以培養(yǎng)過程為主線,包括了培養(yǎng)過程中課程管理各環(huán)節(jié)。通過各單獨(dú)的模塊可以完成對(duì)某一環(huán)節(jié)的管理,另外系統(tǒng)各個(gè)模塊間又是可依賴的,比如成績
55、錄入需要學(xué)生選課的結(jié)果、學(xué)生選課又需要各個(gè)班級(jí)的開課結(jié)果作為前提。這樣,為了保持各個(gè)模塊間的低禍合性,系統(tǒng)每一模塊又增加了秘書手工維護(hù)功能,而在學(xué)生成績單生成過程中增加了學(xué)生手動(dòng)選擇需要打印成績的功能。</p><p> 各功能模塊之間的流程關(guān)系如圖4-3。秘書維護(hù)本學(xué)院的所有課程,當(dāng)有教師申請(qǐng)新的課程的時(shí)候進(jìn)行審核,通過后添加到學(xué)院課程中去。學(xué)院依照實(shí)際情況指定本學(xué)院各個(gè)專業(yè)的培養(yǎng)方案,其中包括課程信息。每個(gè)
56、學(xué)期開學(xué)前,秘書按照教學(xué)計(jì)劃進(jìn)行排課,然后學(xué)生依照培養(yǎng)方案選定課程,選課后通過成績管理最終生成學(xué)生在校期間的成績單。</p><p><b> 圖4-3模塊流程圖</b></p><p><b> 4. 2設(shè)計(jì)類建模</b></p><p> 在系統(tǒng)的設(shè)計(jì)階段,按照面向?qū)ο蟮姆椒▽?duì)系統(tǒng)詳細(xì)描述并且提供具體可行的解決方
57、案。設(shè)計(jì)同分析所使用的工具一樣,也需要建立靜態(tài)和動(dòng)態(tài)的模型,并且使用類圖、順序圖、協(xié)作圖、活動(dòng)圖、狀態(tài)圖等來表示。設(shè)計(jì)類圖是對(duì)靜態(tài)模型的進(jìn)一步細(xì)化的過程,在課程管理系統(tǒng)中是指在Struts框架Mvc模式的指導(dǎo)下對(duì)類進(jìn)行細(xì)化并且按照struts框架的結(jié)構(gòu)來分解和描述整個(gè)靜態(tài)模型。</p><p> 從靜態(tài)模型得到設(shè)計(jì)類圖的過程就是設(shè)計(jì)類建模的過程,主要流程包括依據(jù)MVC模式把靜態(tài)模型的類進(jìn)行分離,然后再根據(jù)系統(tǒng)中
58、需要的方法和屬性給各個(gè)類添加屬性和方法,最終為各個(gè)類之間添加依賴和關(guān)聯(lián)關(guān)系。</p><p> 在MVC設(shè)計(jì)模式中,有一個(gè)宗旨就是不能將功能性的代碼和顯示性的代碼混合在一起,否則再更改頁面或者擴(kuò)展新功能時(shí)會(huì)增加修改難度。首先,系統(tǒng)中需要把表現(xiàn)的細(xì)分為視圖(View)、控制器(Controller)和業(yè)務(wù)對(duì)象模型(BusinessObject Model)。按照MVC設(shè)計(jì)模式把InterFace類定義為視圖層,把
59、初始化類Initial細(xì)分為控制器和業(yè)務(wù)對(duì)象模型。按照Struts框架的各部分結(jié)構(gòu),視圖類就是JsP頁面并且通過ActionForm類InitialForm與Action之間交換數(shù)據(jù)。Initial初始化類定義為控制器InitialAction和MarkManager。然后,需要為每個(gè)靜態(tài)模型中的屬性添加到實(shí)體類中,為每個(gè)類添加方法。在實(shí)體類中除了創(chuàng)建方法和屬性的存取方法,其余實(shí)體相關(guān)的添加、刪除以及查詢方法我們把它封裝在系統(tǒng)管理類中也
60、就是MarkManager中。最后,在各個(gè)類之間添加關(guān)聯(lián)和依賴關(guān)系。最終的初始化成績?cè)O(shè)計(jì)類模型如圖4-40</p><p><b> 圖4-4</b></p><p> 各個(gè)類之間的關(guān)系為由View配置文件struts-config.xml初始化成績的設(shè)計(jì)類模型層的JsP頁面發(fā)送請(qǐng)求,通過服務(wù)器和Struts找到控制器類InitialAction。然后,調(diào)用Mar
61、kManager中的業(yè)務(wù)邏輯方法InitialMethod最后得到結(jié)果。通過系統(tǒng)的用例建模和用例分析以及設(shè)計(jì)類過程,最終形成系統(tǒng)的核心業(yè)務(wù)邏輯類圖。如圖4-6}系統(tǒng)中的核心邏輯處理集中在SubjectManager, ElectManager, MarkManager,CultivateMana}er中。</p><p><b> 4. 3數(shù)據(jù)庫建模</b></p><
62、p> 4. 3. 1數(shù)據(jù)庫建模步驟</p><p> 數(shù)據(jù)庫建模主要包括兩個(gè)過程:第一步是在細(xì)化類圖中尋找需要持久化的類,第二步將需要持久化的類的邏輯模型進(jìn)行整合轉(zhuǎn)化為物理‘模型并完成數(shù)據(jù)庫建模。在系統(tǒng)開發(fā)過程中,通過分析各部分功能模塊并且從中獲取需要的持久化類,然后采用PowerDesigner工具把系統(tǒng)的邏輯模型轉(zhuǎn)化為數(shù)據(jù)庫物理模型并完成整個(gè)系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)。</p><p>
63、;<b> 1、需要持久化的類</b></p><p> 在系統(tǒng)開發(fā)過程中主要把課程管理相關(guān)模塊中的持久化類抽取出來。在成績初始化過程中持久化類主要包括成績類Mark、課程類Subjecl:、選課類Elective 。通過相同的方法,抽取系統(tǒng)中其余模塊的持久化類,主要包括培養(yǎng)類、成績類、課程類、選課類、新課程申請(qǐng)類等。</p><p> 2、建立的數(shù)據(jù)庫模型&l
64、t;/p><p> 依據(jù)抽取出來的持久化類對(duì)數(shù)據(jù)庫進(jìn)行建模,需要對(duì)持久化的類進(jìn)行持久化。建立模型的過程就是將邏輯模型轉(zhuǎn)化成物理模型并最終完成數(shù)據(jù)庫建模的過程。持久化是指把暫時(shí)性的對(duì)象永久保留下來并把對(duì)象轉(zhuǎn)換成一定格式的數(shù)據(jù),存放到磁盤或其他媒介。正如一般的持久數(shù)據(jù)一樣,持久對(duì)象由數(shù)據(jù)庫管理系統(tǒng)負(fù)責(zé)管理。一般采用“映射法”將對(duì)象存到關(guān)系數(shù)據(jù)庫。普遍原則是一個(gè)類映射為一個(gè)表格,表格的列或字段對(duì)應(yīng)類的屬性,而行記錄則對(duì)應(yīng)
65、類的實(shí)例。系統(tǒng)開發(fā)過程中,選擇PowerDesigner數(shù)據(jù)庫建模工具對(duì)數(shù)據(jù)庫進(jìn)行建模;最終生成的課程相關(guān)的主要的數(shù)據(jù)庫模型如圖4-7 。</p><p> 圖4-6數(shù)據(jù)庫物理模型圖</p><p> 表4-1是對(duì)數(shù)據(jù)庫主要表格及其具體內(nèi)容的說明。系統(tǒng)中主要包括課程主表、學(xué)生成績表、選課表、排課相關(guān)表格以及培養(yǎng)方案相關(guān)的培養(yǎng)方案和培養(yǎng)方案課程表。</p><p>
66、; 表4-1課程相關(guān)表格及說明</p><p> 除了課程相關(guān)的主要表外,系統(tǒng)還牽涉到系所、班級(jí)、學(xué)年學(xué)期、學(xué)生、教師、教室場(chǎng)所、權(quán)限維護(hù)等相關(guān)基本信息的數(shù)據(jù)庫設(shè)計(jì),本文對(duì)其他的表的細(xì)節(jié)不再詳述。</p><p> 4.3.2成績報(bào)表的視圖設(shè)計(jì)</p><p> 學(xué)生成績相關(guān)的信息主要存儲(chǔ)在成績表中。在設(shè)計(jì)數(shù)據(jù)庫表格的時(shí)候,為了保持?jǐn)?shù)據(jù)庫設(shè)計(jì)的3NF范式,與
67、其余表格相關(guān)的字段主要以外鍵關(guān)聯(lián)。在成績報(bào)表打印的時(shí)候,需要顯示相關(guān)實(shí)體的具體信息。由于成績表中需要關(guān)聯(lián)的字段過多,如果利用數(shù)據(jù)庫的聯(lián)合查詢勢(shì)必增加系統(tǒng)的復(fù)雜性和不可讀性。所以在設(shè)計(jì)成績單報(bào)表的數(shù)據(jù)庫時(shí),引入了相關(guān)的兩個(gè)視圖。</p><p> 成績報(bào)表中具體的字段包括學(xué)生基本信息和學(xué)生成績信息等。學(xué)生基本信息如學(xué)號(hào)、姓名、性別、入學(xué)時(shí)間、學(xué)生專業(yè)、導(dǎo)師信息以及研究方向;學(xué)生的成績基本信息包括課程名稱、學(xué)分、備
68、注、學(xué)生已修總學(xué)分、實(shí)踐學(xué)分等。通過分析,在系統(tǒng)中設(shè)計(jì)了學(xué)生信息視圖MarkSheetBaseInfoView和學(xué)生成績視圖BASE_ CJXX_VIEWo</p><p> 如表4-2所示,視圖BASE_ CJXX_V工EW主要關(guān)聯(lián)以下九個(gè)表格和視圖,其中以成績表為主表然后從其余各個(gè)表格中獲取課程名稱、課程學(xué)分、課程類別、考核方式、指導(dǎo)教師等信息。</p><p> 表4-2成績信息
69、視圖說明</p><p> 如表4-3所示,視圖MarkSheetBaseInfoView是學(xué)生成績單需要的學(xué)生基本信息視圖,主要包括五個(gè)表格。其中以學(xué)生基本信息為主表,從學(xué)生教師表中獲取學(xué)生的指導(dǎo)教師信息,從其余表中獲取學(xué)生所屬專業(yè)等信息。</p><p> 表4-3學(xué)生成績單基本信息視圖說明</p><p> 4.3.3培養(yǎng)方案數(shù)據(jù)庫設(shè)計(jì)</p>
70、;<p> 培養(yǎng)方案管理包括網(wǎng)上提交培養(yǎng)方案、網(wǎng)上審核方案以及網(wǎng)上查詢、查看培養(yǎng)方案。培養(yǎng)方案主要包括三種類型,而且不同的類型其培養(yǎng)方案又包括不同的內(nèi)容項(xiàng)。另外,培養(yǎng)方案中又包括具體的培養(yǎng)方案課程和文獻(xiàn)要求信息。</p><p> 通過系統(tǒng)數(shù)據(jù)庫建模過程對(duì)培養(yǎng)方案的數(shù)據(jù)庫進(jìn)行分析建模。該部分的數(shù)據(jù)庫表格包括培養(yǎng)方案表、培養(yǎng)方案審核表以及培養(yǎng)方案課程表,其中培養(yǎng)方案表為系統(tǒng)主表,培養(yǎng)方案課程表為輔
71、表??紤]到培養(yǎng)方案課程表中包括課程的一些基本信息,培養(yǎng)方案課程表中由培養(yǎng)方案ID和課程ID作為聯(lián)合主鍵;培養(yǎng)方案審核表中存儲(chǔ)培養(yǎng)方案的審核信息和審核跟蹤情況。</p><p> 培養(yǎng)方案表中包括了三種類型培養(yǎng)方案所包括的所有內(nèi)容,通過方案類別進(jìn)行區(qū)分。表格中主要的字段如學(xué)位論文、參考文獻(xiàn)等由于字段過長,在數(shù)據(jù)庫中采用了大數(shù)據(jù)字段Text進(jìn)行存儲(chǔ)。如表4-4所示,</p><p><
72、b> 表4-4培養(yǎng)方案表</b></p><p> 由培養(yǎng)方案表可以發(fā)現(xiàn),培養(yǎng)方案包括院系、專業(yè)以及類型三個(gè)與其它表信息相關(guān)的信息,為了方便對(duì)培養(yǎng)方案的讀取以及處理學(xué)生專業(yè)、院系、學(xué)生類型相關(guān)信息設(shè)計(jì)了culti_ xszy_view視圖。如表4-5,列出了視圖所關(guān)聯(lián)的所有表格,主要包括培養(yǎng)方案以及專業(yè)、院系信息。從視圖中可以獲取已經(jīng)提交的所有培養(yǎng)方案的所屬專業(yè)、院系以及學(xué)生類型信息,從而簡(jiǎn)
73、化了培養(yǎng)方案顯示部分的數(shù)據(jù)庫處理。</p><p> 表4-5培養(yǎng)專業(yè)視圖表說明</p><p> 由于基于周模板的交互排課的設(shè)計(jì)比較復(fù)雜,與之相關(guān)的類和數(shù)據(jù)庫的設(shè)計(jì)這里不再給出,排課管理的設(shè)計(jì)與實(shí)現(xiàn)將在第6章中給出詳細(xì)描述。</p><p><b> 第五章系統(tǒng)實(shí)現(xiàn)</b></p><p> 本章闡述了培養(yǎng)方案
74、管理系統(tǒng)的實(shí)現(xiàn)并且對(duì)系統(tǒng)實(shí)現(xiàn)中的主要問題進(jìn)行了分析并且提出了解決方案。實(shí)現(xiàn)過程中的主要問題包括XML配置文件問題、成績報(bào)表的實(shí)現(xiàn)以及課程內(nèi)容管理的人性化掛接問題。</p><p> 5. 1課程管理系統(tǒng)的實(shí)現(xiàn)</p><p> 課程管理系統(tǒng)是為了滿足校、院兩級(jí)建制的業(yè)務(wù)需要而設(shè)計(jì)和實(shí)現(xiàn)的。課程管理中的培養(yǎng)方案和新課程申請(qǐng)子系統(tǒng)是依據(jù)學(xué)院的業(yè)務(wù)需求進(jìn)行開發(fā)的;其余子系統(tǒng)包括課程維護(hù)、選課
75、管理、排課管理以及成績管理是依據(jù)軟件學(xué)院的實(shí)際情況進(jìn)行開發(fā)的。后者作為學(xué)院綜合系統(tǒng)中的一部分與學(xué)院其它部分整合在一起,采用了學(xué)院系統(tǒng)的統(tǒng)一登陸和管理;前者是面向全校培養(yǎng)管理的系統(tǒng),采用了獨(dú)立的界面設(shè)計(jì)風(fēng)格以及獨(dú)立的登陸界面。</p><p><b> 1.系統(tǒng)軟硬件環(huán)境</b></p><p> 課程管理系統(tǒng)目前已經(jīng)在學(xué)院部署使用。系統(tǒng)部署機(jī)器操作系統(tǒng)采用Wind
76、ows操作系統(tǒng),Web服務(wù)器采用開源的Tomcat服務(wù)器,數(shù)據(jù)庫服務(wù)器采用SqlServer2000。數(shù)據(jù)庫連接采用了Tomcat服務(wù)器自帶的數(shù)據(jù)庫連接池。</p><p><b> 2、系統(tǒng)實(shí)現(xiàn)功能</b></p><p> 課程管理系統(tǒng)實(shí)現(xiàn)了課程維護(hù)、新課程申請(qǐng)、選課管理、排課管理、成績管理、培養(yǎng)方案管理功能。課程維護(hù)功能包括課程的增加、刪除、修改和院系課程查
77、詢;新課程申請(qǐng)功能包括教師申請(qǐng)、學(xué)院審核、院審核;選課管理包括時(shí)間設(shè)置、學(xué)生網(wǎng)上選課、管理員選課查詢;排課管理包括教學(xué)任務(wù)設(shè)置、交互式排課、各種課表的生成查詢、教師工作量計(jì)算;成績管理包括成績初始化、成績錄入、成績查詢、成績表打印、培養(yǎng)計(jì)劃打印;培養(yǎng)方案管理包括培養(yǎng)方案維護(hù)、培養(yǎng)方案審核、培養(yǎng)方案發(fā)布等功能。</p><p> 軟件學(xué)院課程管理登陸入口為軟件學(xué)院主頁,系統(tǒng)中的各類用戶包括學(xué)生、教師等都可以從頁面
78、登陸。系統(tǒng)資源的分配采用了基于資源角色的權(quán)限管理系統(tǒng),不同角色的用戶登錄后看到不同的資源。在系統(tǒng)中,課程管理員是作為秘書角色分配的權(quán)限,除了課程維護(hù)、選課管理以及成績管理的權(quán)限外還包括教務(wù)通知發(fā)布、論文工作管理等權(quán)限。課程管理員的界面如圖5-1所示。</p><p><b> 略</b></p><p> 圖5-1學(xué)院課程管理界面</p><p
79、> 5. 2培養(yǎng)方案管理的實(shí)現(xiàn)</p><p> 培養(yǎng)方案管理作為系統(tǒng)中的重要部分,主要是由系統(tǒng)中的課程維護(hù)、新課程申請(qǐng)以及培養(yǎng)方案的網(wǎng)上提交等各部分組合而成。系統(tǒng)中主要的功能為培養(yǎng)方案的網(wǎng)上提交、審核以及網(wǎng)上展示等功能。</p><p><b> 1、系統(tǒng)的界面設(shè)計(jì)</b></p><p> 由于該部分是面向全校管理的系統(tǒng),因此
80、設(shè)計(jì)了獨(dú)立的用戶界面風(fēng)格以符合院風(fēng)格。如圖5-1,為培養(yǎng)管理系統(tǒng)的主界面。</p><p><b> 略</b></p><p> 圖5-2培養(yǎng)管理主界面</p><p><b> 2、培養(yǎng)方案的提交</b></p><p> 院系管理員主要包括基本信息和課程信息的添加。系統(tǒng)依據(jù)管理員的身份
81、確定管理員所屬院系并且在系統(tǒng)界面下列不同學(xué)生類型所對(duì)應(yīng)的專業(yè);然后由管理員選擇專業(yè)和學(xué)生類型并添加相應(yīng)的培養(yǎng)方案以及培養(yǎng)方案對(duì)應(yīng)的課程。院系添加并且提交后,由院對(duì)培養(yǎng)方案進(jìn)行審核、修改,通過后在網(wǎng)上發(fā)布。</p><p><b> 3、培養(yǎng)方案的展示</b></p><p> 培養(yǎng)方案提交審核通過后,需要通過網(wǎng)頁的形式展示給學(xué)生和教師。學(xué)生可以依據(jù)本專業(yè)的培養(yǎng)方案
82、制定個(gè)人的培養(yǎng)計(jì)劃。為了能夠?yàn)閷W(xué)生提供便捷的瀏覽方式,系統(tǒng)把學(xué)校培養(yǎng)方案按照院系及專業(yè)劃分顯示。如圖5-2所示,系統(tǒng)從設(shè)計(jì)的視圖culti_ xszy view中讀取數(shù)據(jù),在頁面上按照院系和專業(yè)進(jìn)行顯示。用戶進(jìn)入該頁面后只需要點(diǎn)擊相應(yīng)的專業(yè)名就可以查看該專業(yè)的培養(yǎng)方案。</p><p><b> 略</b></p><p> 圖5-3查看培養(yǎng)方案</p>
83、;<p> 如圖5-3所示,某專業(yè)某學(xué)生類型的培養(yǎng)方案主要包括培養(yǎng)目標(biāo)、研究方向以及學(xué)習(xí)年限等內(nèi)容。另外,培養(yǎng)方案還包括具體課程要求和文獻(xiàn)要求頁面,由于兩者的顯示相對(duì)獨(dú)立所以在附頁中進(jìn)行顯示。課程要求部分主要把課程分為選修課、必修課以及補(bǔ)修課,系統(tǒng)從培養(yǎng)方案課程要求表中讀取某一培養(yǎng)方案的課程要求并且在課程要求頁面上顯示。</p><p><b> 略</b></p&g
84、t;<p><b> 圖5-4培養(yǎng)方案圖</b></p><p> 由第四章的數(shù)據(jù)庫設(shè)計(jì)可知,系統(tǒng)培養(yǎng)方案中的重要字段需要從數(shù)據(jù)庫中讀取并且在WEB頁面上顯示。數(shù)據(jù)庫字段中存儲(chǔ)的字符串中的回車、換行、空格等與WEB頁面的字符不一致。如果對(duì)字符串不進(jìn)行處理直接顯示將會(huì)導(dǎo)致字符串不顯示空格,也不進(jìn)行換行。在系統(tǒng)中我們引入了DataFormat類中的格式轉(zhuǎn)換方法toHtml來實(shí)現(xiàn)
85、兩種字符之間的轉(zhuǎn)化。具體實(shí)現(xiàn)代碼如下:</p><p> public static String toHtml(String s)</p><p><b> {</b></p><p> if (s是null) return s;</p><p> 調(diào)用strReplace,s中的””用” ”
86、代替;</p><p> 調(diào)用strReplace,s中的”\n”用”<br>”代替:</p><p> 調(diào)用strReplace,s中的”\”用”"”代替:</p><p><b> return s:</b></p><p> public static String strRe
87、place(String sBody,String sFrom,String sTo)</p><p> int i, j, k, 1;</p><p> if(sBody是null或者sBody是空串)</p><p><b> return“”;</b></p><p><b> i=0:</
88、b></p><p> j=sFrom的長度:</p><p><b> k=sTo的長度;</b></p><p> 創(chuàng)建StringBuffer的實(shí)例buf,大小是sBody的長度:</p><p> 定義布爾值bFirst初始化為true;</p><p><b>
89、 1=i;</b></p><p> while(sBody中有與sFrom匹配的字符子串)</p><p><b> {</b></p><p> i=從第i個(gè)字符開始,找到sBody中與sForm匹配的字符串第一個(gè)字符的位置;</p><p> 取出sBody中從1到i的字符子串,加到buf中;&
90、lt;/p><p> 在buf中加入需要替換的字符串sTo;</p><p><b> i+=J</b></p><p><b> 1=i:</b></p><p> return buf轉(zhuǎn)為的字符串類型;</p><p> 5. 3 XML配置部署文件的實(shí)現(xiàn)</
91、p><p> 在系統(tǒng)中有很多系統(tǒng)的配置和部署參數(shù)需要不時(shí)的修改,比如說選課系統(tǒng)中的選課時(shí)間設(shè)置參數(shù)、發(fā)送郵件的信箱地址參數(shù)等都需要進(jìn)行設(shè)置而不能在系統(tǒng)中定死。在系統(tǒng)中,以上的配置文件主要使用XML進(jìn)行存儲(chǔ)。 XML稱為可擴(kuò)充標(biāo)記語一言,是類似于HTML定義文檔標(biāo)記語言的一個(gè)框架。XML以結(jié)構(gòu)嚴(yán)謹(jǐn)著稱,因此用來保存數(shù)據(jù)是非常合適的,這樣在數(shù)據(jù)庫之外,又多了一個(gè)持久化保存數(shù)據(jù)的方式。</p><p&
92、gt;<b> 1, XML的選擇</b></p><p> 系統(tǒng)中提到的配置和部署文件在這之前主要使用properties文件來保存。該類配置文件使用方法簡(jiǎn)單直接,但是只適合配置文件簡(jiǎn)單的情況。在配置文件復(fù)雜的情況下就不適合了。相對(duì)而言,用XML文檔存儲(chǔ)監(jiān)控信息,具有下面的這些優(yōu)點(diǎn):</p><p> 1)具有良好的可讀性</p><p&g
93、t; XML文檔的結(jié)構(gòu)決定了用這種格式存儲(chǔ)監(jiān)控信息,具有良好的可讀性。用</p><p> XML格式存儲(chǔ)監(jiān)控信息,結(jié)構(gòu)清晰,含義明確,易于理解。</p><p><b> 2)易于信息的解析</b></p><p> 現(xiàn)在己經(jīng)有了成熟的XML文檔的解析工具,如SAX, DOM, JDOM等。利用這些工具,能夠很方便的對(duì)XML文檔形式的
94、配置信息進(jìn)行解析并且獲得相應(yīng)的結(jié)構(gòu)和含義,對(duì)于復(fù)雜的信息解析比較容易。</p><p> 2, XML的配置文件</p><p> 依據(jù)系統(tǒng)的需要,把系統(tǒng)中不同模塊的配置和部署參數(shù)存在XML文件中,然后放在web應(yīng)用系統(tǒng)目錄下面進(jìn)行存儲(chǔ),系統(tǒng)的設(shè)置文件設(shè)計(jì)如下。</p><p> </moduleList></p><p>
95、 XML配置文件中各部分配置信息依照樹型結(jié)構(gòu)存儲(chǔ)。在以上配置文件中,<moduleList>表示總的模塊列表,<subject>代表系統(tǒng)中的課程管理模塊,下一級(jí)目錄代表系統(tǒng)中的某個(gè)功能,再下一級(jí)表示該功能下的某一個(gè)屬性。通過以上XML文件存儲(chǔ)系統(tǒng)中的配置參數(shù),使得系統(tǒng)的配置文件簡(jiǎn)單明了。</p><p> 3, XML的操作實(shí)現(xiàn)</p><p> 通過以上XM
96、L文件對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),使復(fù)雜的配置問題得以解決。分析讀取XML數(shù)據(jù)有很多工具,如DOM和SAX。這兩種是標(biāo)準(zhǔn)的XML分析器,可以使用任何語言來實(shí)現(xiàn)。DOM分析XML數(shù)據(jù)時(shí),是將整個(gè)文檔一下子讀入內(nèi)存,如果文檔很大,性能就發(fā)生影響;而SAX則是動(dòng)態(tài)的對(duì)每一行進(jìn)行分析,無需全部讀入,因此在解析大文檔時(shí)速度比較快。但是,這兩種分析方法都是圍繞XML樹形結(jié)構(gòu)展開的。在編制這兩種分析器時(shí),會(huì)涉及到大量的XML概念的API,需要一定的基礎(chǔ)知識(shí),使用
97、起來有一定難度。</p><p> 系統(tǒng)采用了JDOM對(duì)XML文件進(jìn)行解析,JDOM封裝了DOM/SAX的具體使用技術(shù),在分析速度方面比DOM要快但比SAX要慢。但在配置文件分析上,分析速度不是重要的,因此可以使用lazy initialization。它類似于緩存機(jī)制,在第一次讀取后就保存到內(nèi)存,以后每次直接從內(nèi)存讀取。在系統(tǒng)中,其解析工作主要是由XMLOperation類來完成的。從下面代碼中可以發(fā)現(xiàn),通過
98、以上方法對(duì)XML文件讀寫非常方便。首先通過loadProperties()方法轉(zhuǎn)入XML文件,然后使用properties.getProperty(name)就可以獲得name的配置值。通過properties. setProperty(name, value)一句就可以將name和其值value保存到XML文件中,非常類似與HashTable的讀取和存入。</p><p> XMLProperties是JDO
99、M的一個(gè)屬性文件輔助包,它主要是對(duì)屬性名進(jìn)行分解和合成。如上面配置文件中的數(shù)據(jù)項(xiàng)planScore的值是28,在系統(tǒng)中使用properties. getProperty( "mark. planScore")得到數(shù)據(jù)項(xiàng)的值。注意到,這里的key的組合是mark.planScore,這種特定寫法是XMLProperties可以支持的。在對(duì)XML文件保存細(xì)節(jié)中,由XMLProperties將這種屬性名稱寫法具體轉(zhuǎn)化成XM
100、L文檔操作。具體內(nèi)部代碼如下,代碼首先從緩存中獲取XML文件,然后把mark.planScore轉(zhuǎn)化為String數(shù)組,并且通過propName數(shù)組循環(huán)、遍歷樹形結(jié)構(gòu)層次,尋找出對(duì)應(yīng)屬性。</p><p> 5. 4成績表的實(shí)現(xiàn)</p><p> 通過上一節(jié)成績單視圖的數(shù)據(jù)庫建模,系統(tǒng)可以獲取成績單需要的基本數(shù)據(jù)。系統(tǒng)的結(jié)構(gòu)是基于MVC設(shè)計(jì)模式,主要分為數(shù)據(jù)展示的View層、邏輯控制的
101、Controller控制器和后臺(tái)邏輯數(shù)據(jù)獲取的Model層。通過NfVC設(shè)計(jì)模式的實(shí)現(xiàn),當(dāng)成績表單的樣式發(fā)生變化而系統(tǒng)需要顯示的數(shù)據(jù)不發(fā)生變化時(shí),系統(tǒng)只需要改變系統(tǒng)的前臺(tái)顯示也就是View層,減少了系統(tǒng)的維護(hù)量。在系統(tǒng)中,數(shù)據(jù)報(bào)表的顯示和生成采用了開源的iReport和jasperreport結(jié)合的B/S報(bào)表設(shè)計(jì)工具。后臺(tái)數(shù)據(jù)的獲取是由具體的Action調(diào)用業(yè)務(wù)邏輯類并且對(duì)成績單的兩個(gè)邏輯視圖進(jìn)行操作獲取。</p><
102、;p><b> 3、業(yè)務(wù)邏輯的處理</b></p><p> 成績報(bào)表主要內(nèi)容包括學(xué)生基本信息部分、學(xué)生成績列表部分、學(xué)生學(xué)分情況和畢業(yè)年級(jí)等部分。學(xué)生基本信息的獲取主要通過查詢視圖MarkSheetBaseInfoView獲得:學(xué)生成績列表部分的獲取主要是通過查詢學(xué)生成績基本信息視圖BASS_ CJXX一IEW獲得;學(xué)生的總學(xué)分也通過Sql語句查詢視圖BASE_ CJXX_ VI
103、EW獲取;畢業(yè)年級(jí)以及總學(xué)分、畢業(yè)實(shí)踐學(xué)分等信息主要存放在以上提到的XML配置文件中,系統(tǒng)通過JDOM解析XML文件獲取。</p><p><b> 4、報(bào)表生成的實(shí)現(xiàn)</b></p><p> 數(shù)據(jù)報(bào)表的生成系統(tǒng)中使用了開源項(xiàng)目jasperreport以及jasperreport的報(bào)表設(shè)計(jì)器iReport完成。通過以上工具可以很快完成成績報(bào)表的設(shè)計(jì)工作,并且能夠
104、達(dá)到以上成績單報(bào)表的表現(xiàn)效果。</p><p><b> 1>報(bào)表生成原理</b></p><p> 系統(tǒng)中采用的報(bào)表生成系統(tǒng)主要包括jasperreport和iReport。其中,jasperreport作為Web報(bào)表服務(wù)器引擎用來在Web服務(wù)器端解析報(bào)表內(nèi)容。該引擎通過接受、解析應(yīng)用系統(tǒng)傳遞來的控制參數(shù)來挖掘并分析處理數(shù)據(jù)源數(shù)據(jù),從而形成完整的Web報(bào)表
105、包傳遞給瀏覽端。iReport作為jasperreport的報(bào)表設(shè)計(jì)器,通過可視化界面對(duì)Web報(bào)表主體進(jìn)行設(shè)計(jì),包括Web報(bào)表版面的設(shè)計(jì)、數(shù)據(jù)源定義、數(shù)據(jù)重組(過濾、計(jì)算等)的函數(shù)設(shè)計(jì)、Web報(bào)表被引用參數(shù)的定義等。通過報(bào)表設(shè)計(jì)器iReport生成基于服務(wù)器引擎指定規(guī)則的.jasper文件,它實(shí)際上是一個(gè)特殊形式的XML;文件。Jasperreport作為Web報(bào)表服務(wù)器引擎,通過接受應(yīng)用程序傳遞的參數(shù)并且解析jasper文件,然后進(jìn)行
106、相應(yīng)處理后生成報(bào)表。</p><p><b> 2>報(bào)表生成步驟</b></p><p> 報(bào)表的生成步驟包括報(bào)表模板的生成和應(yīng)用程序的編寫。報(bào)表模板的生成是通過可視化工具iReport對(duì)報(bào)表的頁面布局、數(shù)據(jù)源和顯示數(shù)據(jù)項(xiàng)進(jìn)行定義描述,然后運(yùn)行后生成.jasper的模板文件。應(yīng)用程序的編寫,在系統(tǒng)中主要是編寫成績單生成的」sp文件。成績表數(shù)據(jù)通過業(yè)務(wù)邏輯控制
107、器。reatMarkSheetAction類調(diào)用后臺(tái)業(yè)務(wù)數(shù)據(jù)獲取方法取到數(shù)據(jù),然后將數(shù)據(jù)存儲(chǔ)到基本類StudentMark中。然后傳到createSheet.jsp中,jsp頁面把jasper文件需要的基本參數(shù)傳到resultCard.jasper模板后通過jasperreport報(bào)表服務(wù)器引擎解析處理后生成報(bào)表。如圖5-4為最終生成的報(bào)表格式。</p><p><b> 略</b><
108、;/p><p> 圖5-5學(xué)生成績報(bào)表圖</p><p><b> 3>報(bào)表的部署</b></p><p> 通過上面的分析可知報(bào)表的部署主要包括服務(wù)器引擎和生成的*. j asper文件在Web服務(wù)器端的部署。服務(wù)器引擎的部署十分簡(jiǎn)單,只需要把相應(yīng)得.jar文件放置到系統(tǒng)所在應(yīng)用的\\WEB-INF\lib文件夾下面然后把*.jasp
109、er文件放置到相應(yīng)Web應(yīng)用的reports文件夾下。</p><p> 3、可選擇式打印的實(shí)現(xiàn)</p><p> 由數(shù)據(jù)庫系統(tǒng)中的視圖獲得的數(shù)據(jù)包括了學(xué)生所有課程的成績。如果不進(jìn)行進(jìn)一步處理,那么生成的個(gè)人成績單就包括了所有課程的成績??墒擒浖W(xué)院的實(shí)際情況是學(xué)生可以在個(gè)人成績中選擇達(dá)到要求學(xué)分的成績,然后組成個(gè)人成績單,必修課成績除外。為了解決以上問題,系統(tǒng)中提供了可選擇性打印的功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文---vb學(xué)生管理系統(tǒng)
- 畢業(yè)論文---vb文檔管理系統(tǒng)
- 畢業(yè)論文----vb倉庫管理系統(tǒng)論文
- [vb畢設(shè)]畢業(yè)論文管理系統(tǒng)
- vb077畢業(yè)論文管理系統(tǒng)
- 【下載】vb學(xué)生畢業(yè)論文管理系統(tǒng)
- vb077畢業(yè)論文管理系統(tǒng)
- vb書店管理系統(tǒng)畢業(yè)論文--書店管理系統(tǒng)
- [vb畢設(shè)]vb本科畢業(yè)論文-工資管理系統(tǒng)畢業(yè)論文+源碼
- 基于vb圖書管理系統(tǒng)畢業(yè)論文
- 基于vb圖書管理系統(tǒng)畢業(yè)論文
- 基于vb圖書管理系統(tǒng)畢業(yè)論文
- 基于vb圖書管理系統(tǒng)畢業(yè)論文
- vb企業(yè)人事管理系統(tǒng)畢業(yè)論文
- vb學(xué)生信息管理系統(tǒng)a畢業(yè)論文
- vb藥房管理系統(tǒng)設(shè)計(jì)畢業(yè)論文
- [vb畢設(shè)]vb人事管理系統(tǒng)(vb畢設(shè)成品)畢業(yè)論文
- 畢業(yè)論文----vb+access公司管理系統(tǒng)設(shè)計(jì)
- vb+sql畢業(yè)論文----圖書管理系統(tǒng)
- 畢業(yè)論文-----vb+access公司管理系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論