使用UML建构代理人导向软体工程之研究-以「猜数字」为例.docVIP

  • 2
  • 0
  • 约8.4千字
  • 约 8页
  • 2017-04-04 发布于江苏
  • 举报

使用UML建构代理人导向软体工程之研究-以「猜数字」为例.doc

使用UML建构代理人导向软体工程之研究-以「猜数字」为例

使用UML建構代理人導向軟體工程之研究 -以「猜數字」為例 楊錦潭1 簡世宇2 1高雄師大共同科, 2資訊教育研究所 高雄市苓雅區和平一路116號 TEL: (07)7172930 ext 3514 E-mail:yangdav@.tw 摘要 本文目的在於探討智慧型代理人如何透過UML進行代理人之分析設計與在JADE(Java Agent Development Environment)平台的實作,由於代理人導向程式語言(Agent-Oriented Programming; AOP)是一種程式設計的新典範(Agent-Oriented Software Engineering; AOSE)。目前AOSE已然受到全球代理人研究者的矚目。本文以一「簡單而典型」的代理人系統--「猜數遊戲」為例,說明代理人程式系統化開發程式過程,運用建構物件系統模型的視覺化工具--UML搭配RUP的方法論,發揮UML擴充機制進而發展符合AOSE的制式化開發流程。 關鍵詞:AOP、JADE、智慧型代理人(Intelligent Agent)、UML 一、 背景 在時間點上「」(Intelligent Agent; IA(Software Engineering)方法,讓人工智慧的程式設計師可以依樣畫葫蘆的進行程式設計。「」「」(Distributed Web Application)「」[1]旅遊規劃[2]、電子商務[3]、等等,但它是否可以演變成新典範之關鍵則有下列四個必要條件: (一)、智慧型代理人的模式可真正解決網路上或分散式系統所衍生的問題,如果智慧型代理人可以大大提昇由舊典範辦不到或採用新典範下執行效率可以大幅提昇時,則智慧型代理人的技術與模型典範將迅速在5年內取得軟體工程的主流地位,請下「物件導向程式」技術典範目前龍頭的地位[11 ,4]。 (二)、既有系統(Legal system)與應用程式如何轉化成智慧型代理人的模式,如果既有應用程式只要外包住智慧型代理人的框架,則既有的應用程式不用重寫即可達成原來的工作。 (三)、智慧型代理人必需提供標準的開發平台,如:由FIPA[10]所製訂開發平台,提供了AMS(Agent Management System), ACC(Agent Communication Channel), DF(Directive Facility)。未來如:美國Inprise軟體大廠提供整合式開發環境,使低階如:多執行緒(Multiple threading)、代理人的溝通機制可以由開發平台來完成之,如此一來,智慧型代理人程式設計師集中全力於應用程式的分析與設計。 (四)、代理人必需提供分析與設計模型:在「物件導向程式」技術典範下,UML提供視覺化分析與設計開發工具,而RUP(Rational Unified Process)[7]則是提供物件導向設計的方法。UML開發工具就如傳統程式設計的流程圖作為檢驗撰寫程式的邏輯, UML則是為「物件導向程式」流程而設計軟體工具,符合由不同的使用者共同可以確認規格、物件分析、物件設計的基礎。相同的道理,代理人必得提供如: Agent-UML的分析工具來協助代理人程式設計師開發代理人程式[1]。 隨著對於應用代理人技術的需求日益增加,代理人導向的軟體也愈趨龐大且複雜。為有效應用代理人技術,系統化開發程序有其必要性。因此本文將以代理人技術實作一猜數遊戲系統為例,說明如何有系統地完成分析、設計及在JADE(Java Agent Development Environment)[4]實作一代理人導向軟體。而所謂代理人的定義,如今仍然眾說芸芸[12],但基本上代理人應具有立即反應(Reactivity)、Autonomy)、Pro-activity)及合作(Cooperation)等四項特性。 本文針對物件導向技術中常用的塑模語言UML結合其固有的擴充機制,因為UML提供具有良好定義的元素名詞、對應符號及使用的語法,以方便使用者從物件導向的觀點建構相關的模型。 二、 「猜數遊戲」的代理人系統 本系統內有兩類代理人,一為猜數遊戲管理者(Guessing Game Manager Agent,簡稱GGMA),Game Responder Agent,簡稱GRA)。GGMAGGMA與GRA主要任務分別是負責進行出題與猜題,GRA透過互動與GGMA相同配合,共同完成整個遊戲,在本系統之外可以有多個GRA卻只能有一個GGMA。共演算法如表2-2所示,而其執行結果如圖2-1。 GGMA主要虛擬碼: max = random(2000); answer = random(max); send max to GRA; finish = false; repeat w

文档评论(0)

1亿VIP精品文档

相关文档