胡天翔
(南京工業(yè)職業(yè)技術學院機械工程學院,江蘇南京210023)
林業(yè)生產是一個涉及多學科、多技術交叉的復雜領域,一個好的智能控制與管理系統(tǒng)能幫助林業(yè)生產管理提高效率,在林業(yè)森林病蟲害防治方面提高農藥使用率,降低農藥對環(huán)境的危害,保護生態(tài)平衡和生態(tài)多樣性。
軟構件技術在農業(yè)和林業(yè)領域有非常廣闊的應用和發(fā)展空間。在北美和澳洲等發(fā)達國家,由于其林業(yè)資源相當豐富,因此林業(yè)中的智能系統(tǒng)設備的研發(fā)和應用相對較為廣泛。在中國等發(fā)展中國家根據自身的國情,對智能林業(yè)系統(tǒng)設備也有了一定的研究,以軟構件技術為技術基礎的林業(yè)智能控制系統(tǒng),作為智能化林業(yè)的發(fā)展方向,其應用前景相當的廣闊,如果使其產業(yè)化,將會對生態(tài)環(huán)境的改善有更深遠的影響。
將技術相對比較成熟的軟構件應用在林業(yè)系統(tǒng)中,是對林業(yè)生產的一個補充,同時也使得軟構件技術有了更廣泛的應用空間。在應用和實施的過程中,需要根據其自身的特點提出符合林業(yè)應用的技術標準,使研發(fā)和應用更具有科學依據和可實施性[1]。具體的技術標準有以下幾個方面。
在林業(yè)生產中,智能控制系統(tǒng)的構件獲取主要按照用戶的需求來確定,其獲取方式也根據需求的不同而不一樣。當構件在實例化過程中處于未實現狀態(tài)時,可依據林業(yè)生產的要求有目的性的進行構件生產,以達到想要的目標構件;對系統(tǒng)已有,或者已實例化的構件對象可進行深入的系統(tǒng)挖掘提取,最后實現目的性的構件獲取過程。
構件模型在林業(yè)智能控制系統(tǒng)中起著至關重要的作用。根據構件模型整個應用控制系統(tǒng)能較完整的實施每個系統(tǒng)模塊的劃分和實現。在林業(yè)生產和應用中,對生產環(huán)節(jié)要素的把握以及系統(tǒng)構件的本質特征,能較為完整地搭建出系統(tǒng)的整體框架,同時根據林業(yè)系統(tǒng)中構件之間的關系,完善系統(tǒng)各個模塊部件的組裝,以更科學的方法實現系統(tǒng)的集成。
構件的劃分是按照系統(tǒng)的功能需求來確定的,因此在林業(yè)生產中的智能控制系統(tǒng)都是以構件模型為基礎,通過這種方式來解決系統(tǒng)集成中的高耦合低內聚的問題。構件中需要通過精確的描述才能實現對構件的理解,有了對系統(tǒng)構件的正確完整的理解才能解決系統(tǒng)后期的組裝問題。
在林業(yè)系統(tǒng)中,每個實現的功能都是按照模塊來劃分的,每個劃分的模塊相對于其他模塊來說都是獨立的,因此在構件的實現上需要按照特定的方式進行劃分,例如在智能控制系統(tǒng)中,智能決策構件和智能控制構件的區(qū)分應該以實現策略的不同進行后期歸類。通過對構件的組織模式的定義便于進行后期的構件檢索,在搭建構件庫的同時完成構件檢索策略的訂制,通過這種機制實現構件的有效管理。
有了構件模型后在此基礎上需對構件進行組裝,其依據為構件組裝的機制。在林業(yè)智能控制系統(tǒng)中,程序設計的模式是按照源代碼級的組裝和構件對象來確定的,因此在構件組裝機制上采用構件復合組裝技術以及運用構件對象互操作性的運行級組裝是保證構件模型的標準化和構件庫系統(tǒng)的標準化的根本保障。
應用構件化技術實現整個系統(tǒng)的過程較為復雜,首先通過采用定義和劃分功能模塊的方式進行構件的分類,根據需求實現每個劃分的構件,再通過系統(tǒng)設計定義的構件接口進行組裝和集成。
按照林業(yè)智能控制系統(tǒng)的需求分析和設計要求,將整個系統(tǒng)在設計時定義為信息采集與獲取、數據處理、控制執(zhí)行這三個不同功能的構件,構件之間的通信通過接口訪問的方式進行,在不同的構件中根據需要有相應的接口與訪問對象相連接,如圖1所示,當數據處理構件中類的對象需訪問信息采集構件時,后者提供Information這個接口通道,為其提供服務,同理在控制執(zhí)行構件中類的對象需對數據處理構件進行訪問時,后者也會通過Data這個接口為其提供相應的服務,不同的是每個構件中的類的實例化對象不同、作用不同,其對應的生命周期也不盡相同,所以可以根據具體的智能控制系統(tǒng)需求來實現不同的功能[2]。

圖1 訪問構件接口
在圖1中每個構件的表示模塊反映了林業(yè)智能控制系統(tǒng)中的軟件模塊構件與訪問構件的接口,目的在于更科學和清晰的表述軟件系統(tǒng)建模的思想內容。而智能控制系統(tǒng)根據設計要求,將來可實現在林業(yè)領域的不同系統(tǒng)平臺上。在系統(tǒng)開發(fā)和移植過程中可按照該系統(tǒng)建模的方式對內容進行補充和完善。通過這種方式能較好的表現現實環(huán)境中的建模思想,反應真實的軟件建模情況。
根據視圖中的表述能明確的顯示構件與構件之間的關系,并提供了與之訪問的接口。在林業(yè)智能控制系統(tǒng)中,三個主要構件之間的訪問方式與依賴關系在訪問構件接口圖中能夠較清晰的反映構件之間的組織形式。
后期的系統(tǒng)擴展與維護工作可以通過系統(tǒng)構件視圖方式進行定性和歸類,在系統(tǒng)的完善過程中對不滿足需要的部分要進行必要地修改,將系統(tǒng)其他擴充功能部分進行升級,從視圖中可根據現有的構件接口情況對今后擴充部分進行系統(tǒng)部署,以滿足以后的擴充升級需要。
依據構件圖對系統(tǒng)構件模塊的分配部署情況,可較容易的發(fā)現系統(tǒng)中設計不合理的情況,無需閱讀所有的代碼就能從總體設計部分發(fā)現現實中的瓶頸問題,例如系統(tǒng)對圖像采集處理時情況,為解決這些存在的問題提供了解決的依據。
在構件與構件之間、類與類之間都存在彼此的相互關聯與相互依賴,林業(yè)智能控制系統(tǒng)中類之間的聯系如圖2所示,圖中反應了類的繼承對應關系圖。在圖中所有實現功能的類都是從三個大類中繼承而來,即窗體類、對話框類和窗體應用類,這三個類也是較多使用的VC提供的父類,其派生出的子類繼承了在父類中的方法與屬性。從窗體類派生出來的類包括有 CCapture、CMSComm和CSplash,它們主要實現對系統(tǒng)相應的功能上的實現與處理;對話框類也是從窗體類派生而來,其他類繼承了對話框類,如 CPPAISSDlg,CButton,CVideoStatusDlg,CComStatusDlg和CAboutDlg類,它們的主要功能是建立相應的對話框提供友好的人機界面。

圖2 對象類視圖
林業(yè)智能控制系統(tǒng)設計與集成實現的好壞主要根據系統(tǒng)的內聚性與耦合性作為判斷依據。內聚性是對對象質量的內部評估,它的目標是創(chuàng)建一個目標明確的對象,但是如果將目標限制得太小,就會造就許多小對象,它們自身的功能都比較有限,因此必須將許多這樣的小對象連接起來,然而這樣就造成了緊密耦合。耦合性的目標是希望各個對象越獨立越好,如果每個對象都是獨立的,則表示對象之間沒有連接和通信,這樣每個對象必須自己完成所有的事情,會導致極低的內聚性。因此在整個控制系統(tǒng)中需要找到內聚性與耦合性兩者之間的平衡。內聚性與耦合性直接影響改動應用程序的難易程度,在林業(yè)智能控制系統(tǒng)中模塊的功能是不變的,因此低內聚性不會明顯的增加維護的開銷[3]。
作為圖像采集模塊的關鍵類——CCapture中與其相關聯的類為CPPISSDlg和自身有對象調用關系;圖像處理模塊中的CDibImag類與圖像采集類有數據交互關系,但兩者相互獨立,體現了模塊之間和類與類之間的低耦合性;在控制執(zhí)行模塊中的CMSComm從CWnd派生而來,并且與CPPISSDlg有通訊,從模塊之間的依賴性來判斷,整個系統(tǒng)的內聚性較高,耦合性較低。
有了類與模塊的具體設計后,可根據它們的劃分與從屬關系對系統(tǒng)進行后期的集成工作,其中有兩部分內容,即實現形式和人機交互。
整個智能控制系統(tǒng)的實現形式有多種方式,可以將所有的數據(包括所用到的類)都封裝在一個可執(zhí)行文件中,或者將每個部分都單獨列出來。按照林業(yè)智能控制系統(tǒng)設計的要求,需要根據硬件環(huán)境和功能需要對不同的部分作相應的調整的要求,且在系統(tǒng)實現中應考慮將不同功能的類進行單獨的劃分與存儲,使其與調用部分相分離,形成獨立的部分,便于修改和調用,因此在程序的實現形式上采用動態(tài)鏈接庫的方式較為合理[4]。
動態(tài)鏈接庫在系統(tǒng)運行中提供相應的功能實現,對外以黑盒的形式存在,只提供調用方法的接口函數。在林業(yè)智能控制系統(tǒng)中,功能性的需求并不多,為便于系統(tǒng)擴展應用,整個系統(tǒng)的實現組織形式如圖3所示。圖中反應了系統(tǒng)在執(zhí)行時通過可執(zhí)行部分對相關的資源進行調用,不同的資源封裝在不同類中,在調用窗體時與窗體類相關聯的三個動態(tài)鏈接庫CComStatusDlg,CSplash類、CVideoStatusDlg類,當系統(tǒng)功能調用時,則調用 CCapture類、CDibImage類、CMSComm類。

圖3 系統(tǒng)構件組織結構形式圖
整個程序的運行完全可以交給系統(tǒng)在后臺運行,而無需人為干預,但為了給用戶有直觀的認識和了解,方便系統(tǒng)的后期維護,在系統(tǒng)的運行過程中提供了友好的人機交互界面以便于操作。根據硬件所提供的條件,將系統(tǒng)運行界面顯示分為兩大部分:1)圖像顯示區(qū)域。該區(qū)域主要提供與硬件采集設備有關的數據采集信息(如圖像的采集顯示等),以及數據處理后顯示的圖像信息(如圖像分割后的顯示等);2)控制調整區(qū)域。該區(qū)域提供視頻連接的按鈕操作等控制方式,并且對圖像算法計算后得到數值進行反饋顯示的區(qū)域。這樣在系統(tǒng)的實現上就能更進一步地做到系統(tǒng)與人的溝通,體現軟件工程的思想[5]。
在精確林業(yè)領域中,通過軟構件技術對智能控制系統(tǒng)的研發(fā),并將其應用在例如智能對靶施藥和智能森林防火系統(tǒng)等相關領域中,是解決林業(yè)系統(tǒng)中智能復雜應用系統(tǒng)開發(fā)的科學方法。通過軟構件技術開發(fā)的智能控制系統(tǒng),能夠跨越進程邊界,實現應用程序、開發(fā)工具和操作系統(tǒng)的“即插即用”。研發(fā)的智能系統(tǒng)綜合了軟件平臺、軟構件技術及智能控制的特點,大大增強了其開放性和多技術的集成能力,便于系統(tǒng)的擴展和維護,為精確林業(yè)領域系統(tǒng)的開發(fā)提供了一種構件化的思路。
[1]胡天翔.基于構件化設計的嵌入式軟件測試方法研究[J].機械制造與自動化,2011,31(01):111-113.
[2]胡天翔,鄭加強,周宏平.基于雙目視覺的樹木圖像測距方法[J].農業(yè)機械學報,2010,41(11):158-162.
[3]朱艷,曹衛(wèi)星,王紹華,等.軟構件技術在作物管理智能決策系統(tǒng)設計中的應用[J].農業(yè)工程學報,2003,19(01):132-136.
[4]胡天翔,鄭加強,周宏平,等.基于DSSA的智能對靶噴霧機軟件系統(tǒng)設計[J].林業(yè)科技開發(fā),2008,22(02):68-70.
[5]胡天翔,鄭加強,周宏平,等.提高動態(tài)樹木圖像分割處理速度的方法[J].林業(yè)科學,2009,45(06):62-67.