APP下载

面向Agent软件工程方法的研究

2012-03-19李丽

网络安全技术与应用 2012年12期
关键词:对象规范语言

李丽

青海广播电视大学 青海 810001

0 引言

面向对象的计算思想强调直接从待解的问题域出发,认为现实世界是由具有本质特征的事物组成,可以根据这些本质特征将其抽象为系统的基本单位—对象,通过对象间的分工和合作构成现实世界运行,并利用封装、继承等机制来构建计算系统。而面向Agent的计算是一种基于Agent社会观的新兴计算模式,其思想是从人类、事物和环境的现实世界出发,强调事物的属性是动态的,且在很大程度上受到与其密切相关的人和环境的影响,将影响事物的主观和客观特征相结合,并抽象为系统的基本单位—Agent,通过Agent的协商、合作来实现系统的整体目标。

与面向对象的思想不同,Agent通过引入心智属性,一方面将人类主观意识与客观世界紧密结合,另一方面使得Agent对环境的感知在经过一系列的心智活动后,能相应地调整其解决问题的意图和策略。因而面向Agent方法更贴近客观世界的真实情况,更准确地反映了客观世界事物之间的深层联系及其静态和动态特征的本质和根源,更接近人类解决问题的一般方法和习惯。

1 面向Agent软件工程方法

面向Agent软件工程(Agent—Oriented Software Engineering AOSE)研究有效的面向Agent的软件方法和支持方法的工具,用以开发高质量的复杂软件产品—多Agent系统(MAS)。AOSE的方法是基于Agent交互和组织关键抽象集问题域和计算域建立模型的原则和活动集。AOSE方法可以分为形式化和非形式化两类。

(1) 形式化方法:形式化方法以数理逻辑作为模型语言。认为形式方法的过程由系统规范、系统实现和系统验证三个阶段组成。系统规范是说明Agent系统的框架。目前最成功的框架是用时序模态逻辑表示的规范,两个著名的逻辑框架是Cohen-Levesque的意图理论和Rao-Georgeff的BDI模型。系统实现将抽象规范转换为具体的计算系统。系统实现有解释执行和编译两种方法,解释执行是指给定用逻辑语言L描述的系统规范S,将S作为执行规范,直接解释S以产生Agent行为;编译是把Agent规范通过自动编译过程将抽象的规范转换成具体的计算模型,编译后的系统执行很少或根本不需要进行符号推理。系统验证用来确定计算系统是否正确地实现了规范。系统验证可分为公理验证和模型检查两种方法。

(2) 形式化方法的主要问题在于以下几点:

① 时序模态逻辑的可能世界语义存在逻辑全知问题,认为Agent具有无限的推理能力,而实际的Agent无法满足这种要求。

② 可能世界语义缺乏现实基础,Agent状态的抽象表示与具体计算模型没有直接的联系。

③ 对交互、组织的形式化描述问题研究不足。

(3) 非形式化方法:非形式化方法以图、表、文本等作为模型语言。相对于形式化方法,非形式化方法的研究比较活跃。以下是集中非形式化方法的介绍。

① Prometheus是基于功能分解的方法,使用文本和AUML作为模型语言,其过程分为系统说明、结构设计、细节设计三个阶段。Prometheu的目标是为开发者提供一个包括全部开发活动的、迭代的、具备模型一致性检查能力的方法。Prometheus将待求解问题划分为Agent系统和环境两部分,将从环境的输入信息称为感知,将Agent系统对环境的影响称为行动。

② ODAC使用 RM-ODP(开放分布过程参考模型)的框架和模型,以UML作为模型语言,其过程分为分析、设计和实现三个阶段。ODAC的目标是以标准化的方法有效降低由复杂软件系统的分布性而产生的开发难度。RM-ODP是由ISO和ITU-T共同制定的开发分布式系统的结构框架,包括对象模型和结构模型两部分,结构模型含有企业、信息、计算、工程、技术等六个视图,其中企业视图由企业对象、对象社会等组成,计算视图描述交互等分布式计算结构。ODAC的设计和实现阶段目前仍在发展中。ODAC的主要问题是没有区分Agent与对象,使用UML作为模型语言不能充分描述AOSE的关键抽象集。

③ SONIA的目标是使用独立于设计的一般性分析方法和自底向上识别Agent的设计过程,以自然的方式开发Agent系统。SONIA分析阶段使用问题域术语为模型语言,设计阶段没有指定模型语言。SONIA的主要问题是没有建立组织模型,分析与设计阶段使用不同的模型语言,不利于分析模型到设计模型的平滑转换。

(4) 将已提出的非形式化方法划分为以下三类:

① 基于Agent和多Agent技术的方法。该类方法将Agent作为与传统对象不同的新抽象,如Gaia、SONIA等。

② 基于面向对象技术的方法。该类方法将Agent作为复杂对象,扩展OO技术以表示Agent的复杂行为,如Prometheus、ODAC、MaSE等。

③ 基于知识工程的方法。该类方法着重于对Agent使用知识的识别、获取和建模,如MAS-CommonKADS。

(5) 非形式化方法研究存在的主要问题是:

① 没有形成较一致的Agent、交互、组织建模原则。

② 求解结构是固定的,不能体现Agent灵活的问题求解能力。

③ 没有对 Agent本身具备的独立控制线程的控制机制建模。

④ Agent模型达不到系统级抽象程度和粒度的要求。

⑤ 使用自顶向下的分解还原方法而不是复杂系统要求的综合集成方法。

2 面向Agent软件工程工具

2.1 Agent统一模型语言(AUML)

统一建模语言(Unified Modeling Language,UML)是一种图形化的表示语言,最初用于标准化对象类的设计,后来被扩展为支持面向对象系统中所涉及的所有部件。如组件、包等。Odell,Parunak和 Bauer提出了 AIP(Agent Interactions Protocols)的三层表示模型。在UML的基础之上进行了扩展。扩展后的模型被定义为AUML(Agent UML)。在AUML中。对 UML中的其本元素作了适当的改变,主要包括:包(Packages)、模板(Templates)、序列图(Sequence Diagrams)、合作图(Collaboration Diagrams)、活动图(Activity Diagrams)和状态图(Statecharts)。OMG和FIPA(Foundation of Intelligent Physical Agent)都支持扩展 UML作为 Agent统一模型语言(AUML),主要扩展工作包括:

(1) 扩展包和模板描述交互协议。

(2) 扩展UML中的类图、对象图以允许Agent承担多个角色。

(3) 扩展动态模型中的顺序图、协作图、状态图等支持并发描述,使UML能够描述Agent的复杂交互行为。

(4) 扩展部署图支持描述Agent的移动性。AUML研究存在的主要问题是扩展工作集中于描述Agent的描述。

2.2 开发工具

开发工具大多基于Java语言,如ZEUE,JACK等利用Java语言的解释执行、支持分布式计算、平台无关等特性满足复杂软件系统开放、分布、异构的要求,Java环境是多线程的而且内置多线程控制,支持Agent的多线程运行。

3 结束语

面向Agent软件工程是软件工程领域重要的新技术,发展有原则的非形式化Agent系统开发方法是Agent技术被广泛使用的根本。Agent理论和技术源于人工智能领域,在AI的研究中Agent的对应物是人,MAS的对应物是人类社会,人和人类社会是社会学的研究对象;AOSE的目标是建造具备正确性、可维护性等质量因素的高质量多Agent系统,社会学是研究人类社会良性运行和协调发展的条件和机制的综合性具体社会科学;MAS本质上是自底向上建造的系统,人类社会本身也是自底向上形成的复杂系统;面向Agent编程范型是一种计算的社会观点,而人类社会是开发者最为熟悉和理解的社会,因此我们认为以社会学理论为原则的非形式化Agent系统开发方法是AOSE的下一步发展方向。

[1]Lin Padgham and Michael Winiko.Prometheus:A brief summary.Technical note, available from the authors.2003.

[2]Weiss G.Multi-Agent Systems:A Modern Approach to Distributed Artificial Intelligence [M]. Cambridge, MA: The MIT Press.2005.

[3]M E Bratman1 Intentions, Plants, and Practical Reason[M].Cambridge,MA: Harvard University Press.1987.

[4]Rao A S,Georgeff M P.BDI Agents: From Theory to Practice[A]. Proc of the 1st Int’l Conf on Multi-Agent Systems(IC2MAS295) [C].1995.

猜你喜欢

对象规范语言
来稿规范
来稿规范
PDCA法在除颤仪规范操作中的应用
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
来稿规范
语言是刀
让语言描写摇曳多姿
攻略对象的心思好难猜
基于熵的快速扫描法的FNEA初始对象的生成方法
累积动态分析下的同声传译语言压缩