- 相關推薦
面向Agent的軟件工程的現狀與挑戰探究
伴隨軟件構造的延展,新穎的Agent類別軟件,也拓展了采納范疇。Agent整合屬性的軟件技術,含有新框架下的原理及多重工程思維,這就供應了軟件構建的有序路徑。
摘要:面向Agent軟件工程是當下軟件工程最前沿的研究方向之一,這種系統結合了Agent理論和技術,同時將軟件工程的思想、原理和原則相結合,為基于Agent系統的開發提供工程化手段。最近幾年,隨著Web應用在Internet上的發展,同時加上軟件開發社會化的需求,基于Agent的軟件工程在學術界和工業界引起了廣泛的關注,本文主要闡述了面向Agent軟件工程的產生和發展背景,面向Agent軟件工程的研究內容,面向Agent軟件工程的研究現狀,最后討論了存在的問題和面臨的挑戰。
關鍵詞:面向Agent軟件工程;基于Agent系統;Agent理論;技術
一、概念
1.1面向Agent軟件工程,其工作原理是將Agent看作為模型的構成條件,同時圍繞對應的基本條件有條不紊的開展與系統相關的系列活動,被認為是目前技術性較強的軟件開發模型。不管是軟件系統還是應用系統,它的內部構成都包括多個Agent,Agent表現出來的特點主要有自發性、反應性、社會性和自主性,屬于行為自控的行為實體。Agent與Agent之間表現出來的結構關系較為復雜,其作用是由高層相互交換來實現的,在這樣的前提下達到系統設計的預期目標。面向Agent軟件工程針對系統研發來講,不僅為其構建了系統平臺,同時還完成了理論的提供和技術環境的提供。
1.2它主要通過系統的模塊分解,數據建模和抽象理論完成系統數據的闡述和管理,達到了系統設計的基本要求和目標,這樣更可以促進系統難度的提升和靈活性的增加,在此基礎上還增加了維護性特點和重用性特點。面向Agent軟件工程包括的基本思想與定義在理論論與軟件工程整體規劃處于同一個軌道線。以往的數十年間,軟件工程始終在探索一套能夠促進其研發能力的系統,而這個系統基本特點要體現出來自然抽象和功能強大,在科學管理的前提下幫助系統建模工程的完成和技術改進。面向Agent軟件工程側重反映出來軟件的抽象特點和研發技術水平。
二、研究現狀分析
(1)技術方面。面向Agent的需求工程不僅融合了Agent同時還融合了Agent系統定義自身攜帶的特性,這些特性為系統的建模及研究創造了研發條件。相關領域的分析涉及到的學科不僅有認知學,同時還兼具有社會與組織兩個學科。常見的研究內容涉及到的框架是i3框架、ALBERT、Tropos、NFR、RoMAS等。最近一段時期以來,研究者找到了大量面向Agent的建模語言其目的是為Agent系統描述提供支持,為系統描述等工作提供幫助,常見工作內容包括AgentUML,AML,MAS2ML,OrgS,CAMLE等。因為軟件Agent具備的特性和內部構造模塊的其他特點,面向Agent軟件引起研究者關注的側重點是其應用部分。通過使用面向Agent的軟件的工作形式,面向Agent軟件開發出現了形式多樣的與其相對應的系統模型,所以前提是技術手段必須具備只有這樣才可以達到系統規定的精益求精的要求。
(2)管理方面。當前通過使用面向Agent軟件工程進行項目研發的成果較少,人們對來Agent軟件工程內在需求知之尚少,同時也不了解該軟件在實用過程中具體要求是什么,所以未深入開展相關的探索。
(3)工具方面。處于工具狀態下的面向Agent軟件表現出來的狀態較為靈活。一直到現在應用領域和研究領域推向市場的Agent的CASE工具有數十種之多,在此基礎上可以為面向Agent軟件工程各個研究環節創造更多的研發條件。
2.1面向Agent的開發方法
基于Agent以及其他相關概念、借助于面向Agent的軟件開發思想對系統進行工程化開發的方法學是面向Agent的開發方法,包括面向MicrosoftAgent的分析方法、面向Agent的設計方法。它提供了相應的建模語言以及結構化和良定義的過程對基于Agent系統(包含應用系統以及軟件系統)進行全方位的分析、描述與建模,支持軟件壽命使用中軟件設計和需求分析(從大眾化需求的分析)兩個過程的軟件開發工作。到現在人們已經提出了近百種面向Agent的開發方法,并且陸陸續續有新的方法出現。大部分方法是通用的,不限定實現技術平臺和應用領域;小部分方法是專用的,專門針對某個平臺、特定的應用和某個實現技術。按照現有方法所需求的差異性和主要技術背景,可以將所有的面向Agent設計方法和軟件分析分為以下三個方面。實際上基于Agent系統進行分析和設計的方法是以各種技術手段集成在一起來進行的。
(1)基于對象技術。該類別的方法依靠于面向某種軟件開發方法,通過將Ag-ent視為一種特殊的對象建模語言(尤其是UML)的擴充以及用現有面向對象軟件開發方法來支持對基于Agent系統進行分析、建模和設計。
(2)基于知識工程。對基于Agent系統進行建模、分析和設計的進行依靠于知識工程(如人工智能、認知科學等)領域的邏輯概念、思想和技術。一種常用的方法是將Agent視為由各種認知部件所組成的意向系統,比如信念、目標、意圖等。代表性工作包括Tropos,DESIRE,MAS2CommonKADS,Styx,AAII等。
(3)基于組織思想。這種辦法的思想基礎就是社會學和組織學,并且用這兩門學科中不具體的定義來敘述描繪基于,在此前提下再對其進行分析和建模,這些抽象的定義包括社會角色、社會組織以及組織成員共同遵守的規則、需要承擔的責任等等。該辦法的典型性工作有Gaia,AALAADIN,Ro2MAS等。
①幾乎所有的建模方式對軟件開發都有著很大的影響,主要是對開發的過程和程度協助,但是因為不同的建模方式運用的定義和語言都是不同的,所以這種幫助的程度也不會一樣。對于基于Agent系統來說,每種建模方式都具有獨特的理解認識。
②如果用戶面對的是Agent的開發方法,那么就很難全面詳細的掌握所有方法的優劣、之間存在的不同以及適合使用的場所等等。從而導致根據特點確定合適的開發形式的難度大大增加。
③雖然每一種形式都有優勢,但是幾乎沒有一種形式能集中所有的優勢,有優勢的同時,也必然存在著一定的劣勢。
④軟件開發者之間和軟件開發者和用戶之間要想隨時實現即時有效的溝通很難,因為雖然大部分面向Agent的開發方法都差不多,可是其實質還具有很大的差異。根據以上論述可知,形成一個保準統一、具有很大優勢,還能被所有相關人員認可的方式,將是整個學術范圍和工業范圍內的努力方向。當然,這也是一個巨大的挑戰,因為這必須要把各個面向Agent的開發方法進行對比研究,集中所有的有點,去掉所有的缺點。
2.2面向Agent的程序設計
面向Agent的程序設計實質上是一種新型的程序設計模型,它的基礎是Agent軟件系統的開發,基本編程是Agent,而設計的目標就是Agent的運行單元。程序語言對于面向Agent的程序設計來說,是最重要的也是必不可少的一項工作。程序語言是程序員對編程改寫目標系統軟件的基礎。目前來看,相關人員已經研究出了幾十種能幫助面向Agent的程序設計的程序語言。通過分析這些語言技術層面上的不同,的一個必要的、同時也是最基本的工具就是該程序設計的語言。程序設計員可以通過它對目標軟件系統進行編程和改寫。到現在,人們總共提出了數十種。依據這些語言技術層面的差異性,可以大致對其進行如下分類:面向Agent的程序設計語言籠統的分為以下幾類別。
(1)以LISP技術為基礎。這種程序語言以運用了LISP的語法形式而得名,它就是采用和LISP語法形式差不多的句子對Agent的組成部分進行表達,也包括對Agent系統的行為或者系統之間互相交流溝通。運用這種理論系統比較嚴謹的語法系統來進行編程和改寫,對于提高Agent系統的功能性有很大的幫助。運用LISP的語法形式的工作分類有Shoham開發的AGENT20、還有Thomas開發的PLACA、以及Davies和Edwards提出的AG-ENT2K1。
(2)基于邏輯技術。邏輯系統包括一階謂詞邏輯以及時序邏輯等等,邏輯系統也可以作為Agent的程序設計語言來使用,在程序編寫的時候,就用邏輯系統來對Agent系統的各種方式以及內部組成里進行表述和定義,例如相關知識、意圖和信念、原子動作和規則等都可以用邏輯技術來表述定義。邏輯技術的理論系統和語義定義都相當嚴謹。因此運用了邏輯技術的Agent系統可以作為定理證明器來使用,Agent系統的工作過程也可以看做是一個證明定理的過程。它的典型代表有由Fisher提出的并發METATEM、由Giacomo和Lesperance等人提出的CON-GOLOG、由Hindriks等人提出的3APL等等。
(3)基于對象技術。此項面向Agent程序設計的語言是在對拓展原來程序語言的基礎上,運用了面向對象的軟件開發技術和軟部件技術而形成的一種Agent系統程序語言。它屬于在語言級上對Ag-ent系統程序語言提供支。通常情況下,這項技術都是把Agent系統當成一個特有的對象,用Agent內部功能的預定義軟部件來編程和實現Agent系統,它的前提是使用的軟部件必須是一組已經封裝的特殊類。運用這種技術,可以利用預編譯生成由面向對象程序設計語言(如Java)所描述的程序代碼了,也可以把用戶編程直接表述成能運行的代碼,并且實現其在目標平臺上運行的目的。最終生成能夠運行的目標代碼,還要用面向對象程序設計語言編譯器對其進行編譯。到2000年為止,面向Agent系統程序語言方面的研究經歷了一個由活躍到沉寂的過程,影響研究現狀的主要因素就是技術問題。到最近幾年,這方面的研究又再次掀起熱潮,因為人們已經清楚程序語言的設計是軟件開發順利進行的重要保證,而且是不可或缺的一環。Agent系統系統本身功能性和實用性的提高,也必須要建立在程序語言的不斷更新換代上。到目前為止,相關人員研究制定出的Agent系統程序語言,通常都有下面幾個特征:
①原型化。程序語言本身就是已經固化的知識系統,實用性小。
②研究性。程序語言并不能為人類工業化具體服務,只是用來檢驗一些理論是否正確可行。
③非商業性。程序語言語言目前的開發系統環境都有待改善,其可行程度和簡便程度方面的指標還不高。
2.3面向Agent的CASE工具和環境
我們把幫助軟件開發者更加快速有家高效的完成Agent系統的一組軟件,稱作面向Agent的CASE工具和環境。它能夠有效支持Agent系統在原有的定義和技術的基礎上,對Agent系統進行開發,比如它可以為開發提供需求分析、軟件設計、系統實現和驗證等等。最近幾年年,有關這項技術的研究逐漸升溫,到現在為止,學術范圍和工業范圍已經公布了數十種面向Agent的CASE工具和環境,而且其種類還正呈現不斷增多的趨勢。雖然其種類繁多,特點也各有不同,可是總體來看AgentCASE工具和環境可以分成下面這幾類:
(1)開發包和可重用庫。開發包與可重用庫的使用在很大程度上節約了軟件開發成本。對于Agent軟件開發也是一樣。對于當下主流的軟件開發技術,如針對于軟件語言開發類的Java、C++等。其可以通過軟件開發包和可重用庫如JATLite,MicrosoftAgent實現二次開發。實現創建Agent的軟件系統(包括Agent類、Agent接口)的軟件重塑,從而集成可用的軟部件系統。
(2)體系結構框架。面向Agent的體系結構框架隨著計算機軟件的發展是非常普遍的,而針對于CASE工具環境的結構數目也是非常多的(如OpenAgentArchitecture,JAFMAS等)這類工具框架的主要作用就是構建軟件運行機制,實現內部體系的運作,構建快速通道Agent。
(3)開發工具集。開發工具集工作環境通常只有獨立一個,這樣是為了后期處理系統的完整性和統一性。主要代表有AgentBuilder,Zeus等,其主要價值是用以支持軟件開發人員對目標軟件系統進行分析、設計、實現、部署和測試等。
(4)基礎設施和平臺。基礎設施和平臺主要是為面向Agent的CASE工具和環境提供服務,主要包括通信服務、安全服務、目錄服務、移動服務等在類的基礎服務,目前在我國主要流行的面向Agent的CASE工具和環境主要有Voyager,ADE,Grasshopper等。綜上所述,在對面向Agent的CASE工具和環境的理論研究方面我們取得了長遠的立足,但是就使用價值和使用情況來說,還是一個未知數。因此我們就要避免當下基于Agent系統開發過程中存在的諸多問題和不足。例如①人機交互的困難;②對象混亂,沒有實現一對一的使用模式;③缺乏明確的方法論支持;④市場通用價值。
三、問題和挑戰
面向Agent軟件工程遠未成熟,離工業化、大規模的應用尚有很大的差距,還不能為廣大軟件開發人員所接受,尤其是要成為一種主流的軟件工程化開發技術還面臨著一系列挑戰性的問題。
3.1基礎理論
人們很早以前就認識Agent理論的重要性并于1963年開始萌發了Agent理論研究的研究思想,但是知道20世紀90年代年后人們才真正意義上上的重視起來并著手開始研究。自從人們認識到Agent理論的重要性以后,大量的科研人員不斷對其進行研究,無論是Agent的理論還是具體的實際應用人們絲毫不放過任何可以進行研究利用的方面。鑒于整個軟件系統的質量的好壞受Agent的性能的影響,在我們實際通信中就要按不同的要求設計出高性能和高品質的軟件系統。對于用戶的不同要求的用戶安裝不同大小和功能的系統。因此,對于Agent理論的基礎理論研究必須掌握得非常牢靠才行。早期人們研究的這個Agent理論模型對原理進行了合理詳細的解釋,它主要的基本理論基礎就是他把微帶輻射單元看成了一個在水平方向上不會產生變化的線狀的BDI邏輯和模型,而在長度的方向上,電場進行的時余弦變化。我們這樣就可以把他看做是擁有兩個開路端的原型化語言AGENT20及其解釋器。對于這個等效的解釋器,我們可以把貼片表示為,且他們做的是相同方向的激勵并且都是向地面上方的半空進行輻射的縫隙。不僅如此,科學家還給出了進行這個簡單計算的計算公式,這個公式不需要進行大量的數據采集和計算,只適用于工程上的計算,但是只能夠運用意圖理論和自主計算理論這兩種類型。基礎理論的研究對于面向Agent軟件工程而言是極為重要,他們將為面向Agent的工程實踐技術以及工具的研究與發展提供理論指導并奠定扎實的理論基礎。
3.2關鍵技術
(1)軟件開發方式。通常情況,軟件開發方式主要是語言建模與過程開發的有機融合的過程。針對建模語言來說,如果技術標準進一步統一,那么我們可以完善對應的針對Agent的建模語言。這要在語言表達能力與語言簡潔性之間做出考量,包含形式化以及半形式化的語言表義基礎,展露多視角、多非具體方面的思維,給予適當的語言設備以表示在Agent系統基礎上的特性,比如自然抽象和封裝這兩方面,可以在維持繁瑣Agent系統基礎上進行效果性顯著的建模。針對建模過程來說,必須給予明確的釋義過程以維持針對Agent系統的軟件開發項目。特別是因為在軟件開發中常常會出現非同一抽象層次、非同一視角的該系統模式,但是眾多系統模式從內在邏輯上講是不可分割的,所以必須給予科學的技術援助以維持模式的轉化,必須針對模式間是否一致做出抽查測試。
(2)軟件體系結構和設計模式。當前,我們對在Agent系統基礎上的軟件模式層次探討還不夠深入。一些針對Agent系統的軟件開發方式與Agent類系統的技術方式的具體實施是通過基礎模板來實現的。如果用對象類和對象來比喻Agent類和Agent的話,那么對象類是Agent類,對象是Agent。可以這樣說,在Agent系統軟件模板和Agent基礎之上的兩者關系不但是實際比例關系,還可以包括動態綁定之間的關聯性,來切實顯露Agent的相關特性、展現Agent技術優點和適應非靜態、非封閉系統研發的需求。除此之外,我們更要通過其他科學方法以探討、設計規劃與闡釋在Agent系統基礎上的軟件整體層次,還要凝練和總結出各式各樣的設計規劃模板。我們在探討設計規劃模板和軟件重新的時候,必須要立足于Agent軟件開發建設產業,這樣的廣泛運是十分重要的。
(3)程序設計思想和語言。目前,針對Agent系統設計開發的語言難以滿足用戶的需求,為數不多的受眾是理論界的學者和研究員。同時,使用針對Agent程序設計開發的語言系統在消費市場上并不多見,遠遠跟不上C++與Java的使用程度,它還是不成熟的技術,因而吸引不了許多軟件工作者的青睞,也無法打入軟件工程的廣闊發展空間。我們對Agent系統設計開發的探討還不夠深入,現在無論是理論界和生產中還沒有出現針對Agent程序設計開發理念的系統,以控制Agent設計語言開發和編寫結果軟件系統進的程序。一些系統設計語言的開發是根據人工智能專家的理念產生的。雖然該語言在具體使用功能上可以稍微適應針對Agent程序設計的需求,然而針對系統自身的簡易實用性沒有注入很多精力進行研究。針對這方面的理論和實踐探究需要盡可能吸收自主研發的Agent執行機制和該系統的整體層次的相關經驗。
四、結論和進一步研究
針對Agent的軟件設計開發展現了和現在不同的主要采用的技術思想方法。將此用在維持繁瑣系統的工程設計研發上,既是軟件開發技術的全新嘗試和典型模式,同時也為網格、普適計算與語義Web等相關研究給予了良好的范例。所以,這幾年理論界與其他科學界十分青睞針對Agent軟件工程的研究工作。有的人斷言,這是一次全新的工業技術革命。針對Agent軟件工程設計研發的理論研究,Agent軟件工程不是一個獨立的研究分支,其主要貫穿了其他學科的很多知識。在技術手段上融合了當下研究最為熱門的學科。例如社會經濟學、組織行為學、認知科學等。使得Agent軟件工程復雜的運算系統得到了簡易處理。隨著學科之間的聯系更加廣泛,Agent軟件工程也顯示出了自己的學科價值優勢。比如,在虛擬計算機研究領域,就利用到了Agent的概念和思想。其起到的作用將更加將計算機的分布資源實現按需整合。這極大的將面向Agent軟件工程的應用價值推向市場化。一方面,計算機等計算與Agent軟件工程的有機融合將會拓寬Agent軟件工程的應用領域;除此之外,計算之間的搭接顯露了Agent軟件工程的應用缺口和使用價值定向。使得今后的Agent軟件工程研究更加趨于方向化,目標研究。這將會使得為面向Agent軟件工程走向大規模、工業化應用提供廣闊的應用背景。
參考文獻:
[1]潘衛華,潘衛紅,孫淑琪.移動Agent技術在分布式數據庫系統中的應用[J].華北電力大學學報,2003(1).
[2]尹章才.一種新的編程方法——面向Agent的程序設計[J].信息技術,2002(3).
[3]王昱,周成平,丁明躍.基于多代理的網絡圖像下載模型的設計研究[J].華中科技大學學報(自然科學版),2002(1).
[4]何衛平,蔡鴻明,秦忠寶,李冰.面向工業造型設計的產品設計定位方法研究[J].計算機工程與應用,2002(4).
[5]黨辰,王嘉禎,王素貞.基于組件的移動Agent平臺設計與實現[J].計算機工程與設計,2009(3).
[6]周文軍,劉斌.面向Agent技術[J].微處理機,2009(1).
[7]趙少東.面向對象與面向Agent的比較[J].現代計算機,2005(11).
[8]劉霞,呂翠麗,趙鑫.Agent軟件技術應用實例[J].中國校外教育,2012(9).
[9]潘衛紅.移動Agent技術及其在分布式系統中的應用研究[D].華北電力大學,2002.
[10]張宇晴.Agent在分布環境中的工程應用[D].華北電力大學(河北).2004.
[11]黃達安.基于MobileAgent的K-WebService系統的設計與實現[D].暨南大學,2006.
[12]於蓓蓓.溪洛渡水電站場內交通系統層次多代理系統及其決策問題的研究[D].天津大學,2006.
[13]高雅田.基于Agent的油井作業施工總結智能分析系統研究[D].大慶石油學院,2007.
[14]朱莉麗.基于移動Agent的分布式電子商務框架研究[D].武漢理工大學,2008.
[15]代春平.基于Agent的數據挖掘模型研究及其在火山巖壓裂方案中的應用[D].大慶石油學院,2008.
【面向Agent的軟件工程的現狀與挑戰探究】相關文章:
面向Agent的軟件工程的現狀與挑戰探索12-10
建筑裝飾裝修現狀探究11-21
我國風險投資的現狀與挑戰03-20
面向航空領域的軟件工程專業人才培養03-27
關于WTO對我國金融監管現狀的挑戰03-02
探究城鎮園林綠化養護與管理現狀論文12-02
土木工程發展現狀及趨勢探究03-05
大學新生入學教育現狀調查對策探究論文12-02
探究泡沫夾層結構復合材料應用現狀論文04-30