張曉紅,薛培軍,周曉莉
(中州大學(xué) 實(shí)驗(yàn)中心,鄭州450044)
實(shí)驗(yàn)教學(xué)是高等院校教學(xué)工作的重要組成部分,它在培養(yǎng)學(xué)生綜合素質(zhì)和創(chuàng)新能力方面有著不可替代的重要作用。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,高校實(shí)驗(yàn)室的功能已經(jīng)由過(guò)去單一的“做實(shí)驗(yàn)”功能,發(fā)展為集教學(xué)、科研、開(kāi)發(fā)等多種功能為一體的功能,其工作也隨之復(fù)雜,主要包括設(shè)備管理、教學(xué)任務(wù)、試驗(yàn)項(xiàng)目、規(guī)章制度等。為此,本文分析研究了集方便性、實(shí)用性和易操作性于一體的實(shí)驗(yàn)管理系統(tǒng)。
UML(Unified Modeling Language)是一種標(biāo)準(zhǔn)的圖形建模語(yǔ)言,是一種用于對(duì)軟件系統(tǒng)模型繪制可視化描述的工具,它是面向?qū)ο蠓治龊驮O(shè)計(jì)過(guò)程中重要的建模工具,不僅支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開(kāi)始的軟件開(kāi)發(fā)的全過(guò)程。使用UML建模有助于軟件開(kāi)發(fā)人員繪制出有利于交流的清晰模型,使軟件開(kāi)發(fā)易于實(shí)施。本文以實(shí)驗(yàn)室管理系統(tǒng)為實(shí)例,討論如何使用UML進(jìn)行面向?qū)ο蟮南到y(tǒng)建模。
統(tǒng)一建模語(yǔ)言UML是面向?qū)ο筌浖_(kāi)發(fā)中的一種可視化的、通用的、統(tǒng)一的圖形模型語(yǔ)言,是面向?qū)ο蠓治龊驮O(shè)計(jì)過(guò)程中重要的建模工具。UML的定義包括UML語(yǔ)義和UML表示法兩部分。
(1)UML語(yǔ)義通過(guò)其元模型來(lái)嚴(yán)格定義,元模型為UML的所有元素在語(yǔ)法和語(yǔ)義上提供了簡(jiǎn)單、一致和通用的定義性說(shuō)明,使開(kāi)發(fā)者能在語(yǔ)義上取得一致,消除了因人而異的表達(dá)方法所造成的影響,并且還支持對(duì)元模型的擴(kuò)展定義。
(2)UML表示法 定義了UML符號(hào)的表示法,為軟件開(kāi)發(fā)者或者開(kāi)發(fā)工具使用這些圖形符號(hào)和文本語(yǔ)法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。這些圖形符號(hào)和文字所表達(dá)的是應(yīng)用級(jí)的模型,在語(yǔ)義上,它是UML元模型的實(shí)例。
標(biāo)準(zhǔn)建模語(yǔ)言UML共包括10種圖:用例圖、類(lèi)圖、對(duì)象圖、包圖、狀態(tài)圖、活動(dòng)圖、順序圖、協(xié)作圖、組件圖和配置圖。
UML是一種通用的標(biāo)準(zhǔn)建模語(yǔ)言,其建模機(jī)制包括靜態(tài)建模和動(dòng)態(tài)建模兩大類(lèi)。
靜態(tài)建模機(jī)制定義了系統(tǒng)中重要對(duì)象的屬性和操作以及這些對(duì)象相互之間的關(guān)系,包括用例圖、類(lèi)圖、對(duì)象圖、包圖、構(gòu)件圖和配置圖。其中用例圖主要描述系統(tǒng)的外部行為;類(lèi)圖和對(duì)象圖分別定義類(lèi)和對(duì)象以及它們的屬性和操作;包圖描述系統(tǒng)的分層結(jié)構(gòu);組件圖描述代碼組件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。配置圖定義了系統(tǒng)中軟硬件的物理體系結(jié)構(gòu),動(dòng)態(tài)建模機(jī)制定義了對(duì)象的時(shí)間特性和對(duì)象為完成目標(biāo)任務(wù)而相互進(jìn)行通信的機(jī)制,用狀態(tài)圖、順序圖、協(xié)作圖、活動(dòng)圖來(lái)表示。其中狀態(tài)圖描述了類(lèi)的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件;順序圖用于顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)也顯示對(duì)象之間的交互過(guò)程;協(xié)作圖與順序圖相似,它描述對(duì)象間的動(dòng)態(tài)合作關(guān)系,除顯示信息交換外,協(xié)作圖還顯示對(duì)象以及它們之間的關(guān)系?;顒?dòng)圖描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)。
本系統(tǒng)主要針對(duì)實(shí)驗(yàn)室管理中需要解決的各種具體問(wèn)題進(jìn)行開(kāi)發(fā)。系統(tǒng)主要功能模塊為基本信息管理、實(shí)驗(yàn)管理、教學(xué)管理、資產(chǎn)管理、系統(tǒng)維護(hù)等,實(shí)現(xiàn)對(duì)實(shí)驗(yàn)室基本信息提供在線維護(hù)和查詢。而在進(jìn)行數(shù)據(jù)交換及客戶端數(shù)據(jù)顯示時(shí),采用WEB技術(shù),集課程安排,課程演示及答疑、考試,管理員、教師、學(xué)生互動(dòng)等多種功能為一體。系統(tǒng)能產(chǎn)生較好的社會(huì)經(jīng)濟(jì)效益和廣泛的應(yīng)用前景。
以實(shí)驗(yàn)管理系統(tǒng)為例,結(jié)合UML工具軟件繪制圖形,主要使用UML中的用例圖、順序圖來(lái)進(jìn)行系統(tǒng)分析。
UML是用來(lái)建立模型的,用模型來(lái)描述系統(tǒng)的靜態(tài)特征及其動(dòng)態(tài)特征。用例圖強(qiáng)調(diào)從用戶的角度看到的或需要的系統(tǒng)功能,被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖。因此在分析階段針對(duì)不同參與者在實(shí)驗(yàn)過(guò)程中所承擔(dān)的角色和工作內(nèi)容的不同,采用用例圖作為與用戶的溝通方式,建立系統(tǒng)的靜態(tài)模型。
(1)發(fā)現(xiàn)參與者(Actors)
參與者是指與系統(tǒng)交互的人或物。參與者也叫角色,它觸發(fā)用例,并與用例進(jìn)行信息交換,分為3類(lèi):系統(tǒng)的使用者(即用戶),外部系統(tǒng),時(shí)間。其中系統(tǒng)使用者是最重要的參與者,要弄明白誰(shuí)是參與者首先要確定系統(tǒng)的邊界,可以通過(guò)詢問(wèn)用戶以下問(wèn)題來(lái)幫助確定參與者:
誰(shuí)使用系統(tǒng)的主要功能(主要使用者是誰(shuí))?
誰(shuí)需要系統(tǒng)支持他們的日常工作?
誰(shuí)來(lái)維護(hù)、管理系統(tǒng)使它正常工作(輔助使用者)?
系統(tǒng)需要控制其他外部資源嗎?
系統(tǒng)需要與其他系統(tǒng)進(jìn)行交互嗎?
有對(duì)系統(tǒng)產(chǎn)生的結(jié)果感興趣的人或事物嗎?
在本系統(tǒng)中通過(guò)分析得出系統(tǒng)參與者為學(xué)生、教師、管理員。在命名這些角色時(shí),應(yīng)該注意是按照作用命名而不是按位置命名,這樣容易得到穩(wěn)定的角色,位置名隨時(shí)改變,而利用作用命名,就不必在每次增加新位置或改變位置時(shí)更新模型。
(2)用例(Use Case)的獲取
一旦獲取了參與者,就可以較為容易地對(duì)每個(gè)參與者提出問(wèn)題以獲取用例。常見(jiàn)的問(wèn)題有如下:
參與者要求系統(tǒng)必須提供哪些功能(也就是參與者需要做什么)?
參與者需要讀、產(chǎn)生、刪除、修改或者存儲(chǔ)的系統(tǒng)信息有哪些類(lèi)型?
必須提醒參與者的系統(tǒng)事件有哪些?或者參與者必須提醒系統(tǒng)的事件有哪些?怎樣把這些事件表示成用例中的某項(xiàng)功能?
為了完整地描述用例,還需要知道參與者的某些典型功能能否被系統(tǒng)自動(dòng)實(shí)現(xiàn)。在處理參與者和用例時(shí),不必過(guò)分關(guān)心它們之間的確切關(guān)系,因?yàn)槲覀冋嬲P(guān)心的是用例,參與者只不過(guò)是獲取這些用例的途徑之一。針對(duì)一個(gè)比較復(fù)雜的系統(tǒng),要列出所有用例的清單常常十分困難,確定用例時(shí)有兩個(gè)準(zhǔn)則:首先,每個(gè)用例都應(yīng)該對(duì)其角色提供有價(jià)值的服務(wù),視角色實(shí)現(xiàn)預(yù)定的目標(biāo),這個(gè)準(zhǔn)則有助于避免確定的用例太小;其次,確保每個(gè)用例都向主要角色提供有價(jià)值的服務(wù),這個(gè)準(zhǔn)則有助于避免用例太大。
通過(guò)分析確定出實(shí)驗(yàn)管理系統(tǒng)的用例有基本信息管理、實(shí)驗(yàn)管理、教學(xué)管理、資產(chǎn)管理、系統(tǒng)維護(hù)。
(3)創(chuàng)建參與者與用例關(guān)系圖
在參與者和用例之間存在關(guān)聯(lián)關(guān)系,這種類(lèi)型的關(guān)聯(lián)關(guān)系通常涉及到Actors和Use Case之間的通信關(guān)聯(lián)關(guān)系。通過(guò)分析業(yè)務(wù)模型,結(jié)合上面我們提到的用例的獲取方法,在對(duì)整個(gè)系統(tǒng)的結(jié)構(gòu)有了大致了解之后,需要在不同層次上對(duì)實(shí)驗(yàn)管理系統(tǒng)中的基本信息管理、實(shí)驗(yàn)管理、教學(xué)管理、資產(chǎn)管理、系統(tǒng)維護(hù)的用例進(jìn)行抽象,描述系統(tǒng)中用例的關(guān)系。如圖1所示頂層用例圖。
圖1 系統(tǒng)頂層用例圖
接下來(lái)對(duì)頂層用例圖進(jìn)行細(xì)化,例如對(duì)教學(xué)管理用例細(xì)化如下:
圖2 教學(xué)管理用例圖
表現(xiàn)系統(tǒng)流程以及系統(tǒng)元素之間的交互關(guān)系可以用兩種視圖:順序圖與協(xié)作圖。其中順序圖是最常用的動(dòng)態(tài)模型,順序圖是按時(shí)間排序的交互圖,顯示對(duì)象之間消息的線性流動(dòng)。而協(xié)作圖以對(duì)象實(shí)例為中心,著重顯示與對(duì)象之間的關(guān)系。在建模工具ROSE中可以利用功能菜單在兩個(gè)圖之間進(jìn)行轉(zhuǎn)換,以學(xué)生查詢課表為例建立的順序圖如圖3所示。從該圖中可以清晰地看到各個(gè)對(duì)象的順序信息。
本系統(tǒng)在分析實(shí)驗(yàn)室管理系統(tǒng)的基礎(chǔ)上,給出了采用UML和建模工具對(duì)其進(jìn)行面向?qū)ο蟮慕7治觯瑥亩档土讼到y(tǒng)的復(fù)雜性,提高了軟件的開(kāi)發(fā)質(zhì)量及效率。在對(duì)系統(tǒng)做核心的建模分析和設(shè)計(jì)后,本系統(tǒng)開(kāi)發(fā)采用C#.net技術(shù),后臺(tái)數(shù)據(jù)庫(kù)則采用微軟的SQL Server 2005系統(tǒng),基于B/S模式實(shí)現(xiàn)。該系統(tǒng)可使廣大的師生都參與到實(shí)驗(yàn)室管理中來(lái),減少實(shí)驗(yàn)室管理人員的工作量,有助于提高學(xué)生的實(shí)驗(yàn)技能和自我管理能力;在規(guī)范實(shí)驗(yàn)室的使用和管理上有很強(qiáng)的實(shí)用性。
圖3 查詢課表順序圖
[1]劉超,張莉.可視化面向?qū)ο蠼<夹g(shù)[M].北京:北京航空航天大學(xué)出版社,1999.
[2]邵維忠,梅宏.統(tǒng)一建模語(yǔ)言UML述評(píng)[J].計(jì)算機(jī)研究與發(fā)展,1999,36(4).
[3]邵維忠,楊芙清.面向?qū)ο蟮南到y(tǒng)分析[M].北京:清華大學(xué)出版社,南寧:廣西科學(xué)技術(shù)出版社,1998.
[4]董愛(ài)美.UML建模技術(shù)在機(jī)房管理系統(tǒng)中的應(yīng)用研究[J].山東輕工業(yè)學(xué)院:自然科學(xué)版,2010(1).
[5]梁卓韜.基于構(gòu)件模型和UML建模的信息系統(tǒng)的分析與應(yīng)用[D].合肥工業(yè)大學(xué),2010.