胡天翔
(南京工業(yè)職業(yè)技術(shù)學(xué)院機(jī)械工程學(xué)院,江蘇南京210023)
林業(yè)生產(chǎn)是一個(gè)涉及多學(xué)科、多技術(shù)交叉的復(fù)雜領(lǐng)域,一個(gè)好的智能控制與管理系統(tǒng)能幫助林業(yè)生產(chǎn)管理提高效率,在林業(yè)森林病蟲害防治方面提高農(nóng)藥使用率,降低農(nóng)藥對(duì)環(huán)境的危害,保護(hù)生態(tài)平衡和生態(tài)多樣性。
軟構(gòu)件技術(shù)在農(nóng)業(yè)和林業(yè)領(lǐng)域有非常廣闊的應(yīng)用和發(fā)展空間。在北美和澳洲等發(fā)達(dá)國(guó)家,由于其林業(yè)資源相當(dāng)豐富,因此林業(yè)中的智能系統(tǒng)設(shè)備的研發(fā)和應(yīng)用相對(duì)較為廣泛。在中國(guó)等發(fā)展中國(guó)家根據(jù)自身的國(guó)情,對(duì)智能林業(yè)系統(tǒng)設(shè)備也有了一定的研究,以軟構(gòu)件技術(shù)為技術(shù)基礎(chǔ)的林業(yè)智能控制系統(tǒng),作為智能化林業(yè)的發(fā)展方向,其應(yīng)用前景相當(dāng)?shù)膹V闊,如果使其產(chǎn)業(yè)化,將會(huì)對(duì)生態(tài)環(huán)境的改善有更深遠(yuǎn)的影響。
將技術(shù)相對(duì)比較成熟的軟構(gòu)件應(yīng)用在林業(yè)系統(tǒng)中,是對(duì)林業(yè)生產(chǎn)的一個(gè)補(bǔ)充,同時(shí)也使得軟構(gòu)件技術(shù)有了更廣泛的應(yīng)用空間。在應(yīng)用和實(shí)施的過程中,需要根據(jù)其自身的特點(diǎn)提出符合林業(yè)應(yīng)用的技術(shù)標(biāo)準(zhǔn),使研發(fā)和應(yīng)用更具有科學(xué)依據(jù)和可實(shí)施性[1]。具體的技術(shù)標(biāo)準(zhǔn)有以下幾個(gè)方面。
在林業(yè)生產(chǎn)中,智能控制系統(tǒng)的構(gòu)件獲取主要按照用戶的需求來確定,其獲取方式也根據(jù)需求的不同而不一樣。當(dāng)構(gòu)件在實(shí)例化過程中處于未實(shí)現(xiàn)狀態(tài)時(shí),可依據(jù)林業(yè)生產(chǎn)的要求有目的性的進(jìn)行構(gòu)件生產(chǎn),以達(dá)到想要的目標(biāo)構(gòu)件;對(duì)系統(tǒng)已有,或者已實(shí)例化的構(gòu)件對(duì)象可進(jìn)行深入的系統(tǒng)挖掘提取,最后實(shí)現(xiàn)目的性的構(gòu)件獲取過程。
構(gòu)件模型在林業(yè)智能控制系統(tǒng)中起著至關(guān)重要的作用。根據(jù)構(gòu)件模型整個(gè)應(yīng)用控制系統(tǒng)能較完整的實(shí)施每個(gè)系統(tǒng)模塊的劃分和實(shí)現(xiàn)。在林業(yè)生產(chǎn)和應(yīng)用中,對(duì)生產(chǎn)環(huán)節(jié)要素的把握以及系統(tǒng)構(gòu)件的本質(zhì)特征,能較為完整地搭建出系統(tǒng)的整體框架,同時(shí)根據(jù)林業(yè)系統(tǒng)中構(gòu)件之間的關(guān)系,完善系統(tǒng)各個(gè)模塊部件的組裝,以更科學(xué)的方法實(shí)現(xiàn)系統(tǒng)的集成。
構(gòu)件的劃分是按照系統(tǒng)的功能需求來確定的,因此在林業(yè)生產(chǎn)中的智能控制系統(tǒng)都是以構(gòu)件模型為基礎(chǔ),通過這種方式來解決系統(tǒng)集成中的高耦合低內(nèi)聚的問題。構(gòu)件中需要通過精確的描述才能實(shí)現(xiàn)對(duì)構(gòu)件的理解,有了對(duì)系統(tǒng)構(gòu)件的正確完整的理解才能解決系統(tǒng)后期的組裝問題。
在林業(yè)系統(tǒng)中,每個(gè)實(shí)現(xiàn)的功能都是按照模塊來劃分的,每個(gè)劃分的模塊相對(duì)于其他模塊來說都是獨(dú)立的,因此在構(gòu)件的實(shí)現(xiàn)上需要按照特定的方式進(jìn)行劃分,例如在智能控制系統(tǒng)中,智能決策構(gòu)件和智能控制構(gòu)件的區(qū)分應(yīng)該以實(shí)現(xiàn)策略的不同進(jìn)行后期歸類。通過對(duì)構(gòu)件的組織模式的定義便于進(jìn)行后期的構(gòu)件檢索,在搭建構(gòu)件庫(kù)的同時(shí)完成構(gòu)件檢索策略的訂制,通過這種機(jī)制實(shí)現(xiàn)構(gòu)件的有效管理。
有了構(gòu)件模型后在此基礎(chǔ)上需對(duì)構(gòu)件進(jìn)行組裝,其依據(jù)為構(gòu)件組裝的機(jī)制。在林業(yè)智能控制系統(tǒng)中,程序設(shè)計(jì)的模式是按照源代碼級(jí)的組裝和構(gòu)件對(duì)象來確定的,因此在構(gòu)件組裝機(jī)制上采用構(gòu)件復(fù)合組裝技術(shù)以及運(yùn)用構(gòu)件對(duì)象互操作性的運(yùn)行級(jí)組裝是保證構(gòu)件模型的標(biāo)準(zhǔn)化和構(gòu)件庫(kù)系統(tǒng)的標(biāo)準(zhǔn)化的根本保障。
應(yīng)用構(gòu)件化技術(shù)實(shí)現(xiàn)整個(gè)系統(tǒng)的過程較為復(fù)雜,首先通過采用定義和劃分功能模塊的方式進(jìn)行構(gòu)件的分類,根據(jù)需求實(shí)現(xiàn)每個(gè)劃分的構(gòu)件,再通過系統(tǒng)設(shè)計(jì)定義的構(gòu)件接口進(jìn)行組裝和集成。
按照林業(yè)智能控制系統(tǒng)的需求分析和設(shè)計(jì)要求,將整個(gè)系統(tǒng)在設(shè)計(jì)時(shí)定義為信息采集與獲取、數(shù)據(jù)處理、控制執(zhí)行這三個(gè)不同功能的構(gòu)件,構(gòu)件之間的通信通過接口訪問的方式進(jìn)行,在不同的構(gòu)件中根據(jù)需要有相應(yīng)的接口與訪問對(duì)象相連接,如圖1所示,當(dāng)數(shù)據(jù)處理構(gòu)件中類的對(duì)象需訪問信息采集構(gòu)件時(shí),后者提供Information這個(gè)接口通道,為其提供服務(wù),同理在控制執(zhí)行構(gòu)件中類的對(duì)象需對(duì)數(shù)據(jù)處理構(gòu)件進(jìn)行訪問時(shí),后者也會(huì)通過Data這個(gè)接口為其提供相應(yīng)的服務(wù),不同的是每個(gè)構(gòu)件中的類的實(shí)例化對(duì)象不同、作用不同,其對(duì)應(yīng)的生命周期也不盡相同,所以可以根據(jù)具體的智能控制系統(tǒng)需求來實(shí)現(xiàn)不同的功能[2]。
圖1 訪問構(gòu)件接口
在圖1中每個(gè)構(gòu)件的表示模塊反映了林業(yè)智能控制系統(tǒng)中的軟件模塊構(gòu)件與訪問構(gòu)件的接口,目的在于更科學(xué)和清晰的表述軟件系統(tǒng)建模的思想內(nèi)容。而智能控制系統(tǒng)根據(jù)設(shè)計(jì)要求,將來可實(shí)現(xiàn)在林業(yè)領(lǐng)域的不同系統(tǒng)平臺(tái)上。在系統(tǒng)開發(fā)和移植過程中可按照該系統(tǒng)建模的方式對(duì)內(nèi)容進(jìn)行補(bǔ)充和完善。通過這種方式能較好的表現(xiàn)現(xiàn)實(shí)環(huán)境中的建模思想,反應(yīng)真實(shí)的軟件建模情況。
根據(jù)視圖中的表述能明確的顯示構(gòu)件與構(gòu)件之間的關(guān)系,并提供了與之訪問的接口。在林業(yè)智能控制系統(tǒng)中,三個(gè)主要構(gòu)件之間的訪問方式與依賴關(guān)系在訪問構(gòu)件接口圖中能夠較清晰的反映構(gòu)件之間的組織形式。
后期的系統(tǒng)擴(kuò)展與維護(hù)工作可以通過系統(tǒng)構(gòu)件視圖方式進(jìn)行定性和歸類,在系統(tǒng)的完善過程中對(duì)不滿足需要的部分要進(jìn)行必要地修改,將系統(tǒng)其他擴(kuò)充功能部分進(jìn)行升級(jí),從視圖中可根據(jù)現(xiàn)有的構(gòu)件接口情況對(duì)今后擴(kuò)充部分進(jìn)行系統(tǒng)部署,以滿足以后的擴(kuò)充升級(jí)需要。
依據(jù)構(gòu)件圖對(duì)系統(tǒng)構(gòu)件模塊的分配部署情況,可較容易的發(fā)現(xiàn)系統(tǒng)中設(shè)計(jì)不合理的情況,無需閱讀所有的代碼就能從總體設(shè)計(jì)部分發(fā)現(xiàn)現(xiàn)實(shí)中的瓶頸問題,例如系統(tǒng)對(duì)圖像采集處理時(shí)情況,為解決這些存在的問題提供了解決的依據(jù)。
在構(gòu)件與構(gòu)件之間、類與類之間都存在彼此的相互關(guān)聯(lián)與相互依賴,林業(yè)智能控制系統(tǒng)中類之間的聯(lián)系如圖2所示,圖中反應(yīng)了類的繼承對(duì)應(yīng)關(guān)系圖。在圖中所有實(shí)現(xiàn)功能的類都是從三個(gè)大類中繼承而來,即窗體類、對(duì)話框類和窗體應(yīng)用類,這三個(gè)類也是較多使用的VC提供的父類,其派生出的子類繼承了在父類中的方法與屬性。從窗體類派生出來的類包括有 CCapture、CMSComm和CSplash,它們主要實(shí)現(xiàn)對(duì)系統(tǒng)相應(yīng)的功能上的實(shí)現(xiàn)與處理;對(duì)話框類也是從窗體類派生而來,其他類繼承了對(duì)話框類,如 CPPAISSDlg,CButton,CVideoStatusDlg,CComStatusDlg和CAboutDlg類,它們的主要功能是建立相應(yīng)的對(duì)話框提供友好的人機(jī)界面。
圖2 對(duì)象類視圖
林業(yè)智能控制系統(tǒng)設(shè)計(jì)與集成實(shí)現(xiàn)的好壞主要根據(jù)系統(tǒng)的內(nèi)聚性與耦合性作為判斷依據(jù)。內(nèi)聚性是對(duì)對(duì)象質(zhì)量的內(nèi)部評(píng)估,它的目標(biāo)是創(chuàng)建一個(gè)目標(biāo)明確的對(duì)象,但是如果將目標(biāo)限制得太小,就會(huì)造就許多小對(duì)象,它們自身的功能都比較有限,因此必須將許多這樣的小對(duì)象連接起來,然而這樣就造成了緊密耦合。耦合性的目標(biāo)是希望各個(gè)對(duì)象越獨(dú)立越好,如果每個(gè)對(duì)象都是獨(dú)立的,則表示對(duì)象之間沒有連接和通信,這樣每個(gè)對(duì)象必須自己完成所有的事情,會(huì)導(dǎo)致極低的內(nèi)聚性。因此在整個(gè)控制系統(tǒng)中需要找到內(nèi)聚性與耦合性兩者之間的平衡。內(nèi)聚性與耦合性直接影響改動(dòng)應(yīng)用程序的難易程度,在林業(yè)智能控制系統(tǒng)中模塊的功能是不變的,因此低內(nèi)聚性不會(huì)明顯的增加維護(hù)的開銷[3]。
作為圖像采集模塊的關(guān)鍵類——CCapture中與其相關(guān)聯(lián)的類為CPPISSDlg和自身有對(duì)象調(diào)用關(guān)系;圖像處理模塊中的CDibImag類與圖像采集類有數(shù)據(jù)交互關(guān)系,但兩者相互獨(dú)立,體現(xiàn)了模塊之間和類與類之間的低耦合性;在控制執(zhí)行模塊中的CMSComm從CWnd派生而來,并且與CPPISSDlg有通訊,從模塊之間的依賴性來判斷,整個(gè)系統(tǒng)的內(nèi)聚性較高,耦合性較低。
有了類與模塊的具體設(shè)計(jì)后,可根據(jù)它們的劃分與從屬關(guān)系對(duì)系統(tǒng)進(jìn)行后期的集成工作,其中有兩部分內(nèi)容,即實(shí)現(xiàn)形式和人機(jī)交互。
整個(gè)智能控制系統(tǒng)的實(shí)現(xiàn)形式有多種方式,可以將所有的數(shù)據(jù)(包括所用到的類)都封裝在一個(gè)可執(zhí)行文件中,或者將每個(gè)部分都單獨(dú)列出來。按照林業(yè)智能控制系統(tǒng)設(shè)計(jì)的要求,需要根據(jù)硬件環(huán)境和功能需要對(duì)不同的部分作相應(yīng)的調(diào)整的要求,且在系統(tǒng)實(shí)現(xiàn)中應(yīng)考慮將不同功能的類進(jìn)行單獨(dú)的劃分與存儲(chǔ),使其與調(diào)用部分相分離,形成獨(dú)立的部分,便于修改和調(diào)用,因此在程序的實(shí)現(xiàn)形式上采用動(dòng)態(tài)鏈接庫(kù)的方式較為合理[4]。
動(dòng)態(tài)鏈接庫(kù)在系統(tǒng)運(yùn)行中提供相應(yīng)的功能實(shí)現(xiàn),對(duì)外以黑盒的形式存在,只提供調(diào)用方法的接口函數(shù)。在林業(yè)智能控制系統(tǒng)中,功能性的需求并不多,為便于系統(tǒng)擴(kuò)展應(yīng)用,整個(gè)系統(tǒng)的實(shí)現(xiàn)組織形式如圖3所示。圖中反應(yīng)了系統(tǒng)在執(zhí)行時(shí)通過可執(zhí)行部分對(duì)相關(guān)的資源進(jìn)行調(diào)用,不同的資源封裝在不同類中,在調(diào)用窗體時(shí)與窗體類相關(guān)聯(lián)的三個(gè)動(dòng)態(tài)鏈接庫(kù)CComStatusDlg,CSplash類、CVideoStatusDlg類,當(dāng)系統(tǒng)功能調(diào)用時(shí),則調(diào)用 CCapture類、CDibImage類、CMSComm類。
圖3 系統(tǒng)構(gòu)件組織結(jié)構(gòu)形式圖
整個(gè)程序的運(yùn)行完全可以交給系統(tǒng)在后臺(tái)運(yùn)行,而無需人為干預(yù),但為了給用戶有直觀的認(rèn)識(shí)和了解,方便系統(tǒng)的后期維護(hù),在系統(tǒng)的運(yùn)行過程中提供了友好的人機(jī)交互界面以便于操作。根據(jù)硬件所提供的條件,將系統(tǒng)運(yùn)行界面顯示分為兩大部分:1)圖像顯示區(qū)域。該區(qū)域主要提供與硬件采集設(shè)備有關(guān)的數(shù)據(jù)采集信息(如圖像的采集顯示等),以及數(shù)據(jù)處理后顯示的圖像信息(如圖像分割后的顯示等);2)控制調(diào)整區(qū)域。該區(qū)域提供視頻連接的按鈕操作等控制方式,并且對(duì)圖像算法計(jì)算后得到數(shù)值進(jìn)行反饋顯示的區(qū)域。這樣在系統(tǒng)的實(shí)現(xiàn)上就能更進(jìn)一步地做到系統(tǒng)與人的溝通,體現(xiàn)軟件工程的思想[5]。
在精確林業(yè)領(lǐng)域中,通過軟構(gòu)件技術(shù)對(duì)智能控制系統(tǒng)的研發(fā),并將其應(yīng)用在例如智能對(duì)靶施藥和智能森林防火系統(tǒng)等相關(guān)領(lǐng)域中,是解決林業(yè)系統(tǒng)中智能復(fù)雜應(yīng)用系統(tǒng)開發(fā)的科學(xué)方法。通過軟構(gòu)件技術(shù)開發(fā)的智能控制系統(tǒng),能夠跨越進(jìn)程邊界,實(shí)現(xiàn)應(yīng)用程序、開發(fā)工具和操作系統(tǒng)的“即插即用”。研發(fā)的智能系統(tǒng)綜合了軟件平臺(tái)、軟構(gòu)件技術(shù)及智能控制的特點(diǎn),大大增強(qiáng)了其開放性和多技術(shù)的集成能力,便于系統(tǒng)的擴(kuò)展和維護(hù),為精確林業(yè)領(lǐng)域系統(tǒng)的開發(fā)提供了一種構(gòu)件化的思路。
[1]胡天翔.基于構(gòu)件化設(shè)計(jì)的嵌入式軟件測(cè)試方法研究[J].機(jī)械制造與自動(dòng)化,2011,31(01):111-113.
[2]胡天翔,鄭加強(qiáng),周宏平.基于雙目視覺的樹木圖像測(cè)距方法[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2010,41(11):158-162.
[3]朱艷,曹衛(wèi)星,王紹華,等.軟構(gòu)件技術(shù)在作物管理智能決策系統(tǒng)設(shè)計(jì)中的應(yīng)用[J].農(nóng)業(yè)工程學(xué)報(bào),2003,19(01):132-136.
[4]胡天翔,鄭加強(qiáng),周宏平,等.基于DSSA的智能對(duì)靶噴霧機(jī)軟件系統(tǒng)設(shè)計(jì)[J].林業(yè)科技開發(fā),2008,22(02):68-70.
[5]胡天翔,鄭加強(qiáng),周宏平,等.提高動(dòng)態(tài)樹木圖像分割處理速度的方法[J].林業(yè)科學(xué),2009,45(06):62-67.