黃 濤
(北京經(jīng)濟(jì)管理職業(yè)學(xué)院,電子工程系,北京 100102)
面向?qū)ο蟮姆椒ㄒ呀?jīng)成為軟件開發(fā)的一種主要方法[1]。UML(統(tǒng)一建模語(yǔ)言)可以對(duì)軟件系統(tǒng)進(jìn)行面向?qū)ο蟮拿枋龊徒2]。應(yīng)用UML建立軟件模型時(shí),可使用10種圖形:用例圖、類圖、對(duì)象圖、包圖、狀態(tài)圖、序列圖、協(xié)作圖、活動(dòng)圖、構(gòu)件圖和部署圖[3]。本文選用Rat ional Rose為UML工具[5]。
用例圖描述系統(tǒng)的一個(gè)完整的功能需求,使用用例并不等于系統(tǒng)需求,但卻展現(xiàn)和暗示了需求[1]。油壓減震器計(jì)算機(jī)測(cè)試系統(tǒng)包括測(cè)試操作、查詢操作。為了能進(jìn)行測(cè)試,系統(tǒng)要預(yù)先輸入一系列參數(shù)。測(cè)試系統(tǒng)還要對(duì)使用者進(jìn)行權(quán)限管理。用戶權(quán)限包括2方面:(1)決定用戶是否能進(jìn)入系統(tǒng)。(2)決定用戶的操作程度或范圍。能進(jìn)入系統(tǒng)的用戶分為3類:操作員、管理員、廠家人員(該系統(tǒng)開發(fā)人員)。操作人員可以做測(cè)試和查詢操作,管理員做用戶管理操作,包括增加、刪除操作員、修改操作員密碼,設(shè)置油壓減震器測(cè)試時(shí)的運(yùn)行參數(shù);廠家人員進(jìn)行系統(tǒng)初始設(shè)置的操作,包括設(shè)置使用方單位名稱、數(shù)字量輸入輸出地址映射、模擬量參數(shù)、通道參數(shù)等,還可以進(jìn)行通道數(shù)據(jù)測(cè)試。系統(tǒng)用例圖如圖1。
圖1 系統(tǒng)用例圖
訪問(wèn)控制中的類圖如圖2。類CPasswordMain實(shí)現(xiàn)開機(jī)界面,讓合法操作者進(jìn)入相應(yīng)的操作。CUserPassword類定義一個(gè)對(duì)話框,讓操作者輸入密碼。用戶和界面之間是通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)中的用戶密碼來(lái)確定用戶能否進(jìn)入以及進(jìn)入哪一種界面的。CSc r eenNumBd類實(shí)現(xiàn)數(shù)字鍵盤的功能,CSc reenNumBd上有代表數(shù)字鍵和編輯鍵的按鈕,當(dāng)操作者按下1個(gè)代表數(shù)字‘0’到‘9’的按鈕時(shí),該類虛擬相應(yīng)的數(shù)字鍵被按下。由于使用觸摸屏進(jìn)行操作,所以,命令操作以界面上的按鈕為主要的實(shí)現(xiàn)形式。
圖2 訪問(wèn)控制中的類圖
CNormalOperat ion、CMaintain、CFactory-Operat ion分別實(shí)現(xiàn)“油壓減震器測(cè)試”、“參數(shù)設(shè)置及維護(hù)”、“廠家操作”界面。CAccessDataBase是訪問(wèn)數(shù)據(jù)庫(kù)的類。CPassword是個(gè)持久對(duì)象,表示數(shù)據(jù)庫(kù)中的用戶表。為了數(shù)據(jù)庫(kù)數(shù)據(jù)的完整性和一致性,系統(tǒng)要求任何時(shí)候只有1個(gè)該類的對(duì)象處于生存期。
數(shù)據(jù)庫(kù)中的內(nèi)容有4類:用戶表、系統(tǒng)參數(shù)表、油壓減震器測(cè)試參數(shù)表、測(cè)試結(jié)果數(shù)據(jù)表。訪問(wèn)數(shù)據(jù)庫(kù)的類需要有讀取和寫入這4類數(shù)據(jù)的操作方法。把訪問(wèn)數(shù)據(jù)庫(kù)封裝成一個(gè)類,系統(tǒng)在需要的時(shí)候生成一個(gè)該類的對(duì)象去訪問(wèn)數(shù)據(jù)庫(kù)。其中User、Resul t 、TrainType 、SystemConf igData是持久對(duì)象。User對(duì)象包括用戶名稱、用戶密碼、用戶權(quán)限;Resu l t包括測(cè)試結(jié)果的數(shù)據(jù);TrainType包括油壓減震器的測(cè)試參數(shù);SystemConf igData包括廠家設(shè)置的數(shù)據(jù)。這4個(gè)持久對(duì)象將轉(zhuǎn)化成ACCESS數(shù)據(jù)庫(kù)中的4個(gè)關(guān)系表。
測(cè)試操作的序列圖如圖3。類CNormalOperat ion提供給操作者使用測(cè)試操作的前臺(tái)界面。測(cè)試操作包括手動(dòng)操作、自動(dòng)測(cè)試、文檔查詢等3種操作。文檔查詢是結(jié)果查詢,不會(huì)引起后臺(tái)采集和控制線程的運(yùn)行。
圖3 測(cè)試操作序列圖
類CDlgAutoTestSetup設(shè)置待測(cè)試的油壓減震器的編號(hào)、種類、所屬的機(jī)車類型。機(jī)車類型、該機(jī)車類型下的油壓減震器的種類,要預(yù)先輸入,在交付使用后由管理員輸入。修程固定為臨修、大修、中修、小修、輔修幾種,寫入選擇框。類CResul t TabDlg顯示測(cè)試結(jié)果,操作者可以打印和保存測(cè)試結(jié)果。類CDlgManual Setup提示操作者把偏心距調(diào)整到特定的角度。偏心距的角度不同,偏心輪運(yùn)動(dòng)的幅度也不同,偏心輪帶動(dòng)聯(lián)桿做往復(fù)運(yùn)動(dòng)的振幅不同,從而,油壓減震器的振幅不同。測(cè)試時(shí)不同的油壓減震器,有不同的振幅要求。計(jì)算機(jī)軟件根據(jù)選擇的油壓減震器,計(jì)算出其偏心距并顯示出來(lái)。操作者需要手動(dòng)使用工具調(diào)整偏心距。對(duì)力和位移模擬輸入量的采集定義1個(gè)類:CCol lectData。對(duì)于驅(qū)動(dòng)變頻器的模擬量輸出和其它開關(guān)量輸入輸出定義1個(gè)類:CCont rol Thread。同時(shí),這2個(gè)類的實(shí)例由2個(gè)線程驅(qū)動(dòng)。測(cè)試操作的活動(dòng)圖如圖4。
類CRealDisplay 顯示示功圖。給定1塊區(qū)域,該對(duì)象在此區(qū)域中繪制二維曲線。該對(duì)象能自動(dòng)伸縮二維坐標(biāo)的標(biāo)值,標(biāo)值必須是整數(shù),同時(shí),使得顯示的曲線總是在合適的區(qū)域內(nèi)。
圖4 測(cè)試操作的活動(dòng)圖
類CResul tSearchDlg實(shí)現(xiàn)查詢測(cè)試數(shù)據(jù)的界面和顯示、打印示功圖和測(cè)試數(shù)據(jù)報(bào)表的功能。操作過(guò)程為:
(1)系統(tǒng)顯示查詢特征,包括機(jī)車類型、修程、油壓減震器種類、油壓減震器編號(hào)等。
(2)操作者選擇或輸入以上查詢特征中1項(xiàng)或幾項(xiàng)。
(3)操作者按“開始檢索”按鈕,符合條件的已經(jīng)測(cè)試過(guò)的油壓減震器顯示在“檢索結(jié)果”列表框中。
(4)操作者按“打印”按鈕,系統(tǒng)將打印“打印序列”中的記錄所對(duì)應(yīng)的油壓減震器測(cè)試數(shù)據(jù)的示功圖和測(cè)試數(shù)據(jù)報(bào)表。
(5)操作者按“結(jié)束查詢”按鈕,系統(tǒng)將退回到測(cè)試操作界面。
參數(shù)設(shè)置包括增加刪除操作人員、修改操作人員密碼、增加新車型、增加新種類、刪除某車型、油壓減震器參數(shù)設(shè)置、刪除某種類油壓減震器、設(shè)置自動(dòng)測(cè)試的運(yùn)行圈數(shù)等操作。廠家設(shè)置對(duì)采集卡各個(gè)通道、系統(tǒng)內(nèi)部參數(shù)進(jìn)行設(shè)置。
系統(tǒng)通過(guò)接觸器、變頻器控制電機(jī)的啟停和轉(zhuǎn)速。電機(jī)在開關(guān)的時(shí)候,中間需要一定的時(shí)間間隔,一方面接觸器合上后,變頻器才能通電,控制開關(guān)才能起作用;另一方面,為保護(hù)電機(jī)不受瞬間強(qiáng)電流沖擊,在電機(jī)運(yùn)行的各個(gè)狀態(tài),要檢測(cè)24 v傳感器電源和急停開關(guān)。系統(tǒng)通過(guò)電機(jī)狀態(tài)圖描述電機(jī)的運(yùn)行過(guò)程。
在PC機(jī)上需要安裝Windows 2000和Of f ice-2000、延華818HD的驅(qū)動(dòng)與管理程序、觸摸屏驅(qū)動(dòng)程序。系統(tǒng)數(shù)據(jù)庫(kù)使用Of f ice2000的Access;應(yīng)用軟件使用VC++6.0編制;延華818HD的驅(qū)動(dòng)與管理程序用于調(diào)試與故障時(shí)對(duì)采集卡的檢測(cè),系統(tǒng)調(diào)用該卡動(dòng)態(tài)庫(kù)提供的函數(shù)完成數(shù)據(jù)采集與控制的功能。觸摸屏成為計(jì)算機(jī)的輸入設(shè)備,通過(guò)USB與PC相連,只安裝紫光輸入法,同時(shí)修改注冊(cè)表,讓系統(tǒng)啟動(dòng)后直接運(yùn)行該應(yīng)用程序。
油壓減震器計(jì)算機(jī)測(cè)試系統(tǒng),通過(guò)UML建立面向?qū)ο蟮能浖P?,完成測(cè)試系統(tǒng)應(yīng)用軟件的開發(fā)。該系統(tǒng)于2008年交付北京某機(jī)務(wù)段使用,已對(duì)多種油壓減震進(jìn)行測(cè)試,能滿足TB/T2229-2004要求的測(cè)試精度,具有很好的實(shí)用性,解決了實(shí)際工作中迫切需要解決的問(wèn)題。
[1] Grady Booch.面向?qū)ο蠓治雠c設(shè)計(jì)[M]. 北京:機(jī)械工業(yè)出版社,2006,217-243.
[2] Erich Gamma,Richard Helm, Ralph Johnson. 設(shè)計(jì)模式 可復(fù)用面向?qū)ο筌浖A(chǔ)[M]. 北京:機(jī)械工業(yè)出版社,2000(9):5-35.
[3] Martin Fowler,Kendal l Scott. UML 精粹 標(biāo)準(zhǔn)對(duì)象建模語(yǔ)言簡(jiǎn)明指南[M]. 北京:清華大學(xué)出版社,2002,5:70-81.
[4] Wendy Boggs,Michael Boggs. UML與Rational Rose 2000 從入門到精通[M]. 北京:電子工業(yè)出版社,2002,7:77-276.