薛 媛
(陜西廣播電視大學(xué)資源建設(shè)與現(xiàn)代教育技術(shù)中心,陜西西安 710004)
隨著教學(xué)規(guī)模的不斷擴(kuò)大,教務(wù)部門工作量越來(lái)越大,傳統(tǒng)的教務(wù)管理模式不能滿足日益復(fù)雜的教務(wù)管理工作。設(shè)計(jì)了一種排考信息系統(tǒng),目的是減少教務(wù)員的工作量,提高其工作效率,實(shí)現(xiàn)教務(wù)部門的排考工作的辦公自動(dòng)化。
應(yīng)用UML建模技術(shù)進(jìn)行軟件開(kāi)發(fā),要經(jīng)過(guò)初始、細(xì)化、構(gòu)造和移交4個(gè)階段,是一種以用例為驅(qū)動(dòng)、以體系結(jié)構(gòu)為中心、迭代及無(wú)間隙性的過(guò)程,此過(guò)程以噴泉模型作為其工作模型,軟件生存期各階段沒(méi)有明顯的界限。在每個(gè)階段,UML都提供了相應(yīng)的視圖和元素,以滿足系統(tǒng)的分析與設(shè)計(jì)。其中,用例圖、類圖、組件圖和配置圖用于系統(tǒng)的靜態(tài)建模;時(shí)序圖、協(xié)作圖、狀態(tài)圖和活動(dòng)圖用于系統(tǒng)的動(dòng)態(tài)建模。
在建模過(guò)程中,各階段的主要工作如下:
(1)在初始階段,根據(jù)用戶提出的需求產(chǎn)生角色、用例,并采用用例圖進(jìn)行可視化描述。在此階段可以使用用例和用例圖從高層建模系統(tǒng)描述要實(shí)現(xiàn)的功能。對(duì)于每個(gè)用例,使用用例描述模板描述角色和系統(tǒng)交互的事件流等,并建檔保存。
(2)細(xì)化階段的主要任務(wù)是進(jìn)一步分析并細(xì)化初始階段產(chǎn)生的用例模型,對(duì)用例要進(jìn)行詳細(xì)描述,包括用例的處理流程與用例交互的角色;然后從用例中分析、提取出相關(guān)的類,用類圖建立類以及相互關(guān)系,同時(shí)還要添加必要的邊界類或控制類。若類之間的交互關(guān)系復(fù)雜,可用時(shí)序圖描述詳細(xì)的交互過(guò)程;若某類的狀態(tài)多樣并且遷移復(fù)雜,可用狀態(tài)圖描述類狀態(tài)之間的轉(zhuǎn)換。
(3)構(gòu)造階段是根據(jù)細(xì)化階段已建檔的類規(guī)范和類圖,結(jié)合具體的程序設(shè)計(jì)語(yǔ)言,建立系統(tǒng)組件圖,以反映系統(tǒng)的實(shí)際結(jié)構(gòu)和組件之間的依賴關(guān)系。并通過(guò)具體的程序設(shè)計(jì)語(yǔ)言和一系列迭代過(guò)程構(gòu)造并測(cè)試實(shí)際可用的系統(tǒng)。
(4)移交階段是系統(tǒng)向用戶做最后準(zhǔn)備和運(yùn)行部署階段,主要是對(duì)系統(tǒng)進(jìn)行測(cè)試,繼續(xù)改善系統(tǒng),根除錯(cuò)誤等[1-2]。
2.1.1 業(yè)務(wù)描述
根據(jù)排考需求,該系統(tǒng)具有以下功能模塊:
(1)系統(tǒng)基礎(chǔ)信息設(shè)置模塊。分為當(dāng)前學(xué)期、場(chǎng)次時(shí)間、基礎(chǔ)大類代碼、基礎(chǔ)子類代碼、課程信息、教師信息、場(chǎng)地信息設(shè)置。
(2)排考基礎(chǔ)信息設(shè)置模塊。分為行政班設(shè)置,教學(xué)計(jì)劃設(shè)置,對(duì)教學(xué)班的基礎(chǔ)信息,如教學(xué)班編號(hào)、教學(xué)班名稱等信息進(jìn)行設(shè)置。
(3)排考模塊。主要進(jìn)行排考的相關(guān)操作。將選擇的考試科目、監(jiān)考教師等信息安排到相應(yīng)的場(chǎng)地。
(4)查詢統(tǒng)計(jì)模塊。分為班級(jí)考試信息查詢,主要對(duì)各班的排考信息、各教師的排考信息、各場(chǎng)地的排考信息進(jìn)行查詢打印。
2.1.2 系統(tǒng)的用例分析
用例模型主要包括用例圖和用例規(guī)約兩部分。用例圖用來(lái)確定系統(tǒng)中包含的參與者、用例以及兩者之間的關(guān)系。用例規(guī)約針對(duì)每個(gè)用例,用規(guī)約文檔來(lái)描述用例的細(xì)節(jié)內(nèi)容[3]。從前面的需求可以得到,整個(gè)系統(tǒng)的角色分為教務(wù)員、班級(jí)和教師和場(chǎng)地4類,其關(guān)系如圖1所示。
圖1 系統(tǒng)的用例圖
用例圖描述了系統(tǒng)提供的各種服務(wù),下面介紹排考這一用例的規(guī)約。
用例描述如下:用例的標(biāo)識(shí)號(hào)003;用例名稱為排考;簡(jiǎn)要說(shuō)明,管理員把每門考試科目、監(jiān)考教師安排到對(duì)應(yīng)的場(chǎng)地上;前提條件,即必須已設(shè)置好行政班、教學(xué)計(jì)劃信息。
事件流包括:教務(wù)員選擇要安排考試的行政班科目;教務(wù)員給此考試科目安排監(jiān)考教師;選擇要安排的場(chǎng)地班級(jí);對(duì)所有信息核對(duì)無(wú)誤后,點(diǎn)擊提交按鈕,系統(tǒng)會(huì)把排考信息存入數(shù)據(jù)庫(kù)中,并在場(chǎng)地界面上顯示出來(lái)。
后至條件:如果排考用例成功后,教務(wù)員便可以查詢打印出相關(guān)的報(bào)表。
系統(tǒng)設(shè)計(jì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。概要設(shè)計(jì)階段主要考慮的問(wèn)題可以用UML的邏輯視圖和動(dòng)態(tài)視圖來(lái)描述。邏輯視圖用于顯示系統(tǒng)內(nèi)部的功能設(shè)計(jì),它利用靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為來(lái)描述系統(tǒng)功能;類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu);協(xié)作圖、狀態(tài)圖、時(shí)序圖、活動(dòng)圖描述系統(tǒng)的動(dòng)態(tài)特征。在詳細(xì)設(shè)計(jì)階段,把概要設(shè)計(jì)階段的結(jié)果擴(kuò)展成技術(shù)解決方案,包括用戶界面、數(shù)據(jù)結(jié)構(gòu)和算法流程等,為系統(tǒng)實(shí)現(xiàn)階段提供詳細(xì)的規(guī)格說(shuō)明,推動(dòng)不斷進(jìn)行詳細(xì)設(shè)計(jì)的方法是對(duì)每個(gè)用例進(jìn)行動(dòng)態(tài)建模。
2.2.1 類圖設(shè)計(jì)
對(duì)于信息處理系統(tǒng)靜態(tài)結(jié)構(gòu)的描述,要依據(jù)類圖、對(duì)象圖和包圖來(lái)實(shí)現(xiàn)。其中,類圖尤為重要,它不僅定義系統(tǒng)中的類,表示系統(tǒng)中對(duì)象之間的抽象聯(lián)系如關(guān)聯(lián)、聚合、泛化等,也包括類的內(nèi)部結(jié)構(gòu)。下面采用分層式設(shè)計(jì)來(lái)表示類圖,分層式設(shè)計(jì)是為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”。采用“分而治之”的思想,把問(wèn)題劃開(kāi)解決,易于控制、延展和分配資源[4]。依據(jù)目前流行分層設(shè)計(jì)3層結(jié)構(gòu)模式設(shè)計(jì)的,它由表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層3個(gè)層次結(jié)構(gòu)組成。這樣有利于系統(tǒng)的開(kāi)發(fā)、維護(hù)、部署和擴(kuò)展。高校排考信息系統(tǒng)的層次結(jié)構(gòu)分為3層:用戶界面層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層。圖2是UML的類圖模型,主要給出考試安排這個(gè)模塊的類圖模型。
圖2 系統(tǒng)類圖模型
用戶界面層中的類主要是排考主界面類,它主要顯示排考信息,例如班級(jí)信息、場(chǎng)地信息、課程信息、教師和一些操作控件等,實(shí)現(xiàn)用戶與系統(tǒng)的交互。
業(yè)務(wù)邏輯層有ExamArrange類。為使系統(tǒng)層次結(jié)構(gòu)清晰、程序更易于編寫,把一些簡(jiǎn)單的業(yè)務(wù)邏輯則放在用戶界面層或數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程中處理,只把復(fù)雜的業(yè)務(wù)邏輯放到業(yè)務(wù)邏輯層。
數(shù)據(jù)訪問(wèn)層中的類有 CommandBuilder、PaikaoMenthod。其作為業(yè)務(wù)邏輯層與數(shù)據(jù)管理層之間的中介,CommandBuilder類封裝了用于數(shù)據(jù)庫(kù)連接的方法。PaikaoMenthod類實(shí)現(xiàn)對(duì)數(shù)據(jù)的增加、刪除、修改和讀取操作。
2.2.2 時(shí)序圖設(shè)計(jì)
對(duì)于系統(tǒng)設(shè)計(jì),除建立靜態(tài)模型之外,更重要的是分析各種信息處理時(shí)序,恰當(dāng)?shù)乜刂铺幚泶祟愋畔?,而?dòng)態(tài)建模能實(shí)現(xiàn)此目標(biāo)。這里用時(shí)序圖描述用例的動(dòng)態(tài)行為。時(shí)序圖是按時(shí)間排序的交互圖,采用從上到下的順序來(lái)表示時(shí)間的順序。圖3是排考用例的時(shí)序圖。其主要過(guò)程是:教務(wù)員登錄后進(jìn)入排考主界面,選擇排考的時(shí)間,然后選擇要排考的行政班級(jí),當(dāng)選中班級(jí)后,系統(tǒng)會(huì)在界面下方顯示該班級(jí)待排的科目;教務(wù)員選擇一到多個(gè)科目,顯示在界面上;教務(wù)員選擇排考場(chǎng)地,系統(tǒng)會(huì)將場(chǎng)地信息顯示在界面下方;教務(wù)員選擇相應(yīng)的監(jiān)考教師,系統(tǒng)也會(huì)將信息顯示在界面下方;最后,教務(wù)員核對(duì)無(wú)誤后,點(diǎn)擊保存排考信息,系統(tǒng)會(huì)把該條排考信息現(xiàn)在相應(yīng)的場(chǎng)地上。
圖3 排考用例的時(shí)序圖
在上述需求分析和UML建模的基礎(chǔ)上,進(jìn)行了系統(tǒng)的開(kāi)發(fā)。開(kāi)發(fā)系統(tǒng)的工具為Microsoft Visual Studio 2008,以 C#語(yǔ)言作為開(kāi)發(fā)語(yǔ)言,數(shù)據(jù)庫(kù)采用的是SQL Server2005。系統(tǒng)的關(guān)鍵模塊是排考模塊,排考類是該模塊的最重要的類。圖4是排考模塊的運(yùn)行界面。
圖4 排考模塊的運(yùn)行界面
通過(guò)對(duì)排考過(guò)程的分析,設(shè)計(jì)了排考信息系統(tǒng),實(shí)現(xiàn)了排考信息化實(shí)現(xiàn)方案。該系統(tǒng)采用了面向?qū)ο蠓治龊驮O(shè)計(jì)方法。采用UML對(duì)系統(tǒng)進(jìn)行建模,提高了代碼的質(zhì)量和軟件復(fù)用。
[1]IVAR J,GRADY B,JAMES R.統(tǒng)一軟件開(kāi)發(fā)過(guò)程[M].周伯生,馮學(xué)民,譯.北京:機(jī)械工業(yè)出版社,2002.
[2]婁雅斌,張恩勝,顧紅生,等.UML技術(shù)在城市消防預(yù)案演示系統(tǒng)開(kāi)發(fā)中的應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2004(10):115-119.
[3]傅純一.UML用例建模指南[EB/OL].(2008-08-19)[2010 - 09 - 18]http://www.uml.org.cn/SoftWareProcess/200501281.htm.
[4]唐政,房大偉.C#項(xiàng)目開(kāi)發(fā)全程實(shí)錄[M].北京:清華大學(xué)出版社,2008.