薛 媛
(陜西廣播電視大學資源建設與現代教育技術中心,陜西西安 710004)
隨著教學規模的不斷擴大,教務部門工作量越來越大,傳統的教務管理模式不能滿足日益復雜的教務管理工作。設計了一種排考信息系統,目的是減少教務員的工作量,提高其工作效率,實現教務部門的排考工作的辦公自動化。
應用UML建模技術進行軟件開發,要經過初始、細化、構造和移交4個階段,是一種以用例為驅動、以體系結構為中心、迭代及無間隙性的過程,此過程以噴泉模型作為其工作模型,軟件生存期各階段沒有明顯的界限。在每個階段,UML都提供了相應的視圖和元素,以滿足系統的分析與設計。其中,用例圖、類圖、組件圖和配置圖用于系統的靜態建模;時序圖、協作圖、狀態圖和活動圖用于系統的動態建模。
在建模過程中,各階段的主要工作如下:
(1)在初始階段,根據用戶提出的需求產生角色、用例,并采用用例圖進行可視化描述。在此階段可以使用用例和用例圖從高層建模系統描述要實現的功能。對于每個用例,使用用例描述模板描述角色和系統交互的事件流等,并建檔保存。
(2)細化階段的主要任務是進一步分析并細化初始階段產生的用例模型,對用例要進行詳細描述,包括用例的處理流程與用例交互的角色;然后從用例中分析、提取出相關的類,用類圖建立類以及相互關系,同時還要添加必要的邊界類或控制類。若類之間的交互關系復雜,可用時序圖描述詳細的交互過程;若某類的狀態多樣并且遷移復雜,可用狀態圖描述類狀態之間的轉換。
(3)構造階段是根據細化階段已建檔的類規范和類圖,結合具體的程序設計語言,建立系統組件圖,以反映系統的實際結構和組件之間的依賴關系。并通過具體的程序設計語言和一系列迭代過程構造并測試實際可用的系統。
(4)移交階段是系統向用戶做最后準備和運行部署階段,主要是對系統進行測試,繼續改善系統,根除錯誤等[1-2]。
2.1.1 業務描述
根據排考需求,該系統具有以下功能模塊:
(1)系統基礎信息設置模塊。分為當前學期、場次時間、基礎大類代碼、基礎子類代碼、課程信息、教師信息、場地信息設置。
(2)排考基礎信息設置模塊。分為行政班設置,教學計劃設置,對教學班的基礎信息,如教學班編號、教學班名稱等信息進行設置。
(3)排考模塊。主要進行排考的相關操作。將選擇的考試科目、監考教師等信息安排到相應的場地。
(4)查詢統計模塊。分為班級考試信息查詢,主要對各班的排考信息、各教師的排考信息、各場地的排考信息進行查詢打印。
2.1.2 系統的用例分析
用例模型主要包括用例圖和用例規約兩部分。用例圖用來確定系統中包含的參與者、用例以及兩者之間的關系。用例規約針對每個用例,用規約文檔來描述用例的細節內容[3]。從前面的需求可以得到,整個系統的角色分為教務員、班級和教師和場地4類,其關系如圖1所示。

圖1 系統的用例圖
用例圖描述了系統提供的各種服務,下面介紹排考這一用例的規約。
用例描述如下:用例的標識號003;用例名稱為排考;簡要說明,管理員把每門考試科目、監考教師安排到對應的場地上;前提條件,即必須已設置好行政班、教學計劃信息。
事件流包括:教務員選擇要安排考試的行政班科目;教務員給此考試科目安排監考教師;選擇要安排的場地班級;對所有信息核對無誤后,點擊提交按鈕,系統會把排考信息存入數據庫中,并在場地界面上顯示出來。
后至條件:如果排考用例成功后,教務員便可以查詢打印出相關的報表。
系統設計分為概要設計和詳細設計兩個階段。概要設計階段主要考慮的問題可以用UML的邏輯視圖和動態視圖來描述。邏輯視圖用于顯示系統內部的功能設計,它利用靜態結構和動態行為來描述系統功能;類圖描述系統的靜態結構;協作圖、狀態圖、時序圖、活動圖描述系統的動態特征。在詳細設計階段,把概要設計階段的結果擴展成技術解決方案,包括用戶界面、數據結構和算法流程等,為系統實現階段提供詳細的規格說明,推動不斷進行詳細設計的方法是對每個用例進行動態建模。
2.2.1 類圖設計
對于信息處理系統靜態結構的描述,要依據類圖、對象圖和包圖來實現。其中,類圖尤為重要,它不僅定義系統中的類,表示系統中對象之間的抽象聯系如關聯、聚合、泛化等,也包括類的內部結構。下面采用分層式設計來表示類圖,分層式設計是為了實現“高內聚、低耦合”。采用“分而治之”的思想,把問題劃開解決,易于控制、延展和分配資源[4]。依據目前流行分層設計3層結構模式設計的,它由表示層、業務邏輯層和數據訪問層3個層次結構組成。這樣有利于系統的開發、維護、部署和擴展。高校排考信息系統的層次結構分為3層:用戶界面層、業務邏輯層和數據訪問層。圖2是UML的類圖模型,主要給出考試安排這個模塊的類圖模型。

圖2 系統類圖模型
用戶界面層中的類主要是排考主界面類,它主要顯示排考信息,例如班級信息、場地信息、課程信息、教師和一些操作控件等,實現用戶與系統的交互。
業務邏輯層有ExamArrange類。為使系統層次結構清晰、程序更易于編寫,把一些簡單的業務邏輯則放在用戶界面層或數據庫的存儲過程中處理,只把復雜的業務邏輯放到業務邏輯層。
數據訪問層中的類有 CommandBuilder、PaikaoMenthod。其作為業務邏輯層與數據管理層之間的中介,CommandBuilder類封裝了用于數據庫連接的方法。PaikaoMenthod類實現對數據的增加、刪除、修改和讀取操作。
2.2.2 時序圖設計
對于系統設計,除建立靜態模型之外,更重要的是分析各種信息處理時序,恰當地控制處理此類信息,而動態建模能實現此目標。這里用時序圖描述用例的動態行為。時序圖是按時間排序的交互圖,采用從上到下的順序來表示時間的順序。圖3是排考用例的時序圖。其主要過程是:教務員登錄后進入排考主界面,選擇排考的時間,然后選擇要排考的行政班級,當選中班級后,系統會在界面下方顯示該班級待排的科目;教務員選擇一到多個科目,顯示在界面上;教務員選擇排考場地,系統會將場地信息顯示在界面下方;教務員選擇相應的監考教師,系統也會將信息顯示在界面下方;最后,教務員核對無誤后,點擊保存排考信息,系統會把該條排考信息現在相應的場地上。

圖3 排考用例的時序圖
在上述需求分析和UML建模的基礎上,進行了系統的開發。開發系統的工具為Microsoft Visual Studio 2008,以 C#語言作為開發語言,數據庫采用的是SQL Server2005。系統的關鍵模塊是排考模塊,排考類是該模塊的最重要的類。圖4是排考模塊的運行界面。

圖4 排考模塊的運行界面
通過對排考過程的分析,設計了排考信息系統,實現了排考信息化實現方案。該系統采用了面向對象分析和設計方法。采用UML對系統進行建模,提高了代碼的質量和軟件復用。
[1]IVAR J,GRADY B,JAMES R.統一軟件開發過程[M].周伯生,馮學民,譯.北京:機械工業出版社,2002.
[2]婁雅斌,張恩勝,顧紅生,等.UML技術在城市消防預案演示系統開發中的應用[J].計算機系統應用,2004(10):115-119.
[3]傅純一.UML用例建模指南[EB/OL].(2008-08-19)[2010 - 09 - 18]http://www.uml.org.cn/SoftWareProcess/200501281.htm.
[4]唐政,房大偉.C#項目開發全程實錄[M].北京:清華大學出版社,2008.