李躍田
摘要:基于UML和.NET的高職院校新生報到系統(tǒng),運用先進的OOD和OOA軟件編程思想和方法,使用先進的UML和.NET開發(fā)工具,解決了高職院校存在的新生報到中的問題,簡化了工作程序,提高了工作效率。
關鍵詞:UML;.NET;高職;報到
1 引言
隨著全國高校網(wǎng)上錄取系統(tǒng)的使用,各高校開始使用信息管理系統(tǒng)來管理學生的報到。但高職院校有著自己的特點,一是招生的層次比較多,有普通高職、對口高職、三二轉(zhuǎn)段、五年一貫制、普通中專、職業(yè)中專等;二是錄取數(shù)據(jù)來源不統(tǒng)一,有通過全國普通高校網(wǎng)上錄取系統(tǒng)錄取的,也有通過省招生辦辦理的,還有通過市招生錄取和自主錄取的;三是退檔、補錄和轉(zhuǎn)專業(yè)等特殊要求,由于高職院校的報到率普遍不高,所以要組織所有未報到的學生退檔,然后補錄新的學生,學生還可以在報到時臨時再調(diào)整專業(yè),這些數(shù)據(jù)都非常重要不能有一點錯誤。數(shù)據(jù)及過程復雜性增加了工作的難度,嚴重影響了工作效率,而錯誤還是很難避免。
面向?qū)ο蟮脑O計方法(OOD)具有封裝性、繼承性和多態(tài)性等特點,在各個領域的應用系統(tǒng)軟件開發(fā)過程中都取得了良好的應用效果,因此也逐漸成為軟件開發(fā)的主流方法。統(tǒng)一建模語言(UML)為面向?qū)ο蟮能浖_發(fā)提供了一個豐富的、統(tǒng)一的平臺,并且已經(jīng)成為當今建模語言的主流標準。
由于要求的復雜性,現(xiàn)在市場上各種管理軟件不能滿足我們實際的需要,為了解決實際工作中存在的問題,我院組織計算機專業(yè)力量,運用面向?qū)ο蟮脑O計思想,基于UML和.NET平臺的C#設計實現(xiàn)了B/S結(jié)構的新生報到系統(tǒng)。
2 需求分析
新生報到過程中,主要涉及招生就業(yè)處和財務處兩個部門參與數(shù)據(jù)的修改,教務處及各系部主要是數(shù)據(jù)的查詢。報到數(shù)據(jù)來源是這樣的:普通高職和對口高職來源于全國普通高校網(wǎng)上錄取系統(tǒng),五年一貫制???、三二轉(zhuǎn)段、普通中專和職業(yè)中專數(shù)據(jù)來源于各級招生主管部門。我們事先把這些數(shù)據(jù)導入到系統(tǒng)中。系統(tǒng)要完成的功能包括:用戶管理、組織新生報到管理、交費管理、各種統(tǒng)計等主要模塊。其流程圖如圖1所示。
3 UML建模
面向?qū)ο蟮慕y(tǒng)一建模語言UML提供了從不同的角度去觀察和展示系統(tǒng)各種特征的標準方法,在UML中,從任何一個角度對系統(tǒng)所做的抽象都可以用用例圖、類圖、對象圖、狀態(tài)圖、時序圖等模型圖來描述,而這些來自不同角度的模型圖最終組成了系統(tǒng)的完整模型。
3.1用例分析
用例是系統(tǒng)參與者與系統(tǒng)在交互過程中所需要完成的事物,識別用例最好的方法就是從系統(tǒng)的參與者開始,考慮每個參與者是如何使用系統(tǒng)的。參與者通過向系統(tǒng)輸入或請求系統(tǒng)輸出某些事件來觸發(fā)系統(tǒng)的執(zhí)行。參與者由參與用例時所擔當?shù)慕巧珌肀硎尽C總€參與者可以參與一個或多個實例。它通過交換信息與用例發(fā)生交互。參與者有三大類:系統(tǒng)用戶、與所建造的系統(tǒng)交互的其他系統(tǒng)、一些可以運行的進程。這里我們只考慮系統(tǒng)用戶。
經(jīng)過分析、與招生工作人員和財務工作人員交談、填寫各種調(diào)查表并把這些原始材料加以抽象,抽象出四種系統(tǒng)用戶:系統(tǒng)管理員、招生工作人員、財務工作人員、學院(系)用戶和普通人員(瀏覽者)。以招生用戶為例,用例圖如圖2所示。
3.2靜態(tài)結(jié)構分析
在分析了系統(tǒng)的用例后,需要對系統(tǒng)進一步地分析,以便發(fā)現(xiàn)其中的類或?qū)ο?并初步確定類的屬性和操作,以及類之間的關系。即分析系統(tǒng)的靜態(tài)結(jié)構。
根據(jù)以前的需求分析,有不同的用戶對軟件系統(tǒng)進行操作,所以用戶及操作的內(nèi)容都稱為對象,根據(jù)分析發(fā)現(xiàn)共有17個對象:用戶、學生報名表、報到通知單、報到名單、未報到名單、錄取名單、未錄取名單、招生計劃表、錄取統(tǒng)計表、未錄取統(tǒng)計表、報到統(tǒng)計表、未報到統(tǒng)計表、收費標準表、收據(jù)、欠費學生名單、欠費統(tǒng)計表。
根據(jù)抽象出的對象,建立類圖,用戶類圖與消息類圖,以招生用戶為例,如圖3所示。
3.3對象之間的交互分析
在描述對象之間的交互時,可以使用時序圖或協(xié)作圖,這里我們重點分析對象間消息傳遞的時間順序,即使用時序圖。每個用例都可以建立一個時序圖,將用例執(zhí)行中各個參與的對象之間的消息傳遞過程表現(xiàn)出來。由于本系統(tǒng)中用例很多,時序圖也很多,以招生工作人員接受統(tǒng)招學生報到時序圖為例,如圖4所示。
4 概要設計
在軟件需求分析階段,已經(jīng)分析出該系統(tǒng)“做什么”的問題,并把這些需求通過通過各種視圖以及規(guī)格說明書描述了出來,這也是目標系統(tǒng)的邏輯模型。進入設計階段,就要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,即著手實現(xiàn)軟件的需求,并將設計的結(jié)果反映在“設計規(guī)格說明書”文檔中,所以軟件設計是一個把軟件需求轉(zhuǎn)換為軟件表示的過程,最初這種表示只是描述了軟件總的體系結(jié)構,稱為軟件概要設計或結(jié)構設計。
4.1概要設計的原則
(1)單一職責原則。即:類的職責簡單而且集中,避免相同的職責分散到不同的類之中,避免一個類承擔過多的職責;減少類之間的耦合;當需求變化時,只修改一個地方。
(2)開放封閉原則。軟件實體(類,模塊,函數(shù))應該是可以擴展的,但是不可修改的,模塊可以操作一個抽象體。由于模塊依賴于一個固定的抽象體,因此它可以是不允許修改的;同時,通過從這個抽象體派生,也可擴展此模塊的行為功能。
(3)合成/聚合復用原則(CARP)。盡量使用合成/聚合、盡量不使用繼承。即在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分,新的對象通過向這些對象委派達到復用已有功能的目的。這樣做的好處是:新對象存取成分對象的惟一方法是通過成分對象的接口;復用是黑箱復用,支持包裝,所需的依賴較少,每一個新的類可以將焦點集中在一個任務上,可以在運行時間內(nèi)動態(tài)進行,新對象可以動態(tài)地引用與成分對象類型相同的對象。只是通過使用這種復用建造的系統(tǒng)會有較多的對象需要管理。
4.2數(shù)據(jù)庫設計
根據(jù)C#語言特點,我們對需求分析中的類進行了必要的調(diào)整。調(diào)整后的類圖如圖5所示。
5 詳細設計
詳細設計階段以概要設計文檔為依據(jù),確定怎樣具體地實現(xiàn)所要求的系統(tǒng),得出對目標系統(tǒng)的精確描述,包括每個模塊的數(shù)據(jù)結(jié)構和算法,確定模塊的細節(jié):外部接口、內(nèi)部接口、輸入輸出和局部數(shù)據(jù)。為模塊內(nèi)的數(shù)據(jù)結(jié)構進行設計。對于需求分析、概要設計確定的概念性的數(shù)據(jù)類型進行確切的定義,對數(shù)據(jù)結(jié)構進行物理設計,即確定數(shù)據(jù)庫的物理結(jié)構。為了提高數(shù)據(jù)的輸入、分類、存儲、檢索等操作,節(jié)約內(nèi)存空間,對數(shù)據(jù)庫中的某些數(shù)據(jù)項的值要進行代碼設計。網(wǎng)站總體設計如圖6所示,并針對每個面頁書寫其中包含的頁面元素(表單,表格、圖像),詳細代碼部分在此不再贅述。
6 結(jié)束語
由于本軟件的構建應用了OO思想,軟件為三層結(jié)構,層與層之間功能劃分清楚,層內(nèi)類與類的依賴程度很低,修改很容易,在使用過程中很好的滿足了用戶的要求,得到用戶的好評。
參考文獻
[1] CRAIG L.UML和模式應用(第三版)[M].李洋,鄭龔,譯.北京:機械工業(yè)出版社,2006.
[2] 邵維忠,楊芙清.面向?qū)ο蟮南到y(tǒng)設計[M].北京:清華大學出版社,2004.
[3] 王凱明.創(chuàng)建基于.NET的通用數(shù)據(jù)庫訪問層[J].電腦編程技巧與維護,2003,10:60-64.
[4] 劉懷亮,相洪貴.軟件質(zhì)量保證與測試[M].北京:冶金工業(yè)出版社,2007.