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