论文部分内容阅读
面向Agent软件工程(Agent-Oriented Software Engineering,AOSE),多Agent系统(Multi-Agent System,MAS)以及面向Agent编程(Agent-Oriented Programming,AOP)近年来受到软件工程领域越来越多的关注,甚至被认为是软件工程领域的一项革命。与此同时,基于Agent的社会仿真(Agent-Based Social Simulation,ABSS)也得到了社会学研究人员的认同。上述两种研究方向的结合,如RoboCup仿真足球比赛已经成为ABSS和MAS理想的试验目标。此外,国际上对MAS的开发与应用日益增多,其中不乏重要的军方应用,如美国军方在2001年间开发的“基于联合网格的综合定位打击系统”。 鉴于基于MAS的应用日趋重要,因此,有关MAS开发方法的研究也被提上日程。到目前为止,研究人员已经设计出二十多种MAS开发方法。这些方法或基于知识工程,或基于面向对象技术,或基于角色与意图理论,其具体过程与特点难以一言以蔽之。但是正如本文后面将指出的,它们共同的缺点是缺乏一个完整的方法设计指导。就目前的MAS开发方法研究而言,如何重新理解Agent,构建具有开放性的MAS,已经成为MAS开发方法的一个研究重点和难点。本文以MAS为应用领域,主要进行MAS开发方法的研究,提出了从概念模型、产品模型、过程模型以及原型系统四个方面进行AMS开发方法的设计的思路,并设计了一种基于角色的AMS开发方法RoMAS。主要工作包括: 1.对上述研究领域的关注焦点Agent,我们首先需要回答什么是Agent。为了回答这个问题,当前研究提出了许多定义,一种被广泛采纳的定义认为Agent是一种具有自治性(autonomous)、社会性(social)、反应性(reactive)等特性的实体。但是这个定义并不是一种构造性的定义,换而言之,从这样的定义出发并不能设计并创建具有上述特性的Agent。为了弥补这种不足,本文通过对社会学、人类学等相关领域的研究和分析,总结出人类社会与MAS的潜在同构特性,提出一种新的Agent定义以及与之相应的Agent体系结构。Agent是特定角色的实例。由此定义出发,本文设计了一种新的基于角色的MAS概念模型,它采用角色、Agent和交互协议等模型为MAS建模。通过分析,该模型能够较好地适应动态开放MAS。 2.本文需要回答的另外一个重要问题是Agent是如何行动的。为了回答这个问题,本文提取出相关的Agent静态模型和行为模型,这就是产品模型。为了刻画这些模型,本文选择以被业界广为接受的统一建模语言UML为基础,使用扩展机制,创建出一种适用于本文所提出的概念模型的图形化建模语言,它能够描述角色、Agent、交互协议等建模元素,同时还可以描述角色组织视图、角色交互视图、Agent合成视图、Agent角色转换视图和Agent行为状态图。 3.本文回答的第三个重要问题是按照什么过程对一个MAS系统进行分析和设计。在概念模型和产品模型的基础上,本文提出并设计了RoMAS开发方法,即过程模型,它能够引导设计人员完成从系统分析、设计到实现的完整过程。需要指出的是,在MAS研究的数十年来,研究人员已经对Agent体系结构、意图国防科学技术大学研究生院学位论文 理论等进行了深入的研究,但也许是出于对人工智能的偏爱,现有的对多Agent 系统开发方法的研究不够深入,尽管已经出现了一些广为人知的软件开发方法, 比如MasE,Gaia, MEssAGE用ML等,但这些方法并没有清晰地给出其所依赖 的概念模型:此外,在基于角色的面向Agent开发方法中,往往对角色概念以 及角色与Agent的关系没有给出明确而深入的刻画。本文提出的开发方法注重 于对角色概念以及角色与Ageni间关系的刻画,通过为角色引入对Ageni的实 例化机制,使得此方法能够更好地适应动态、开放MAS的分析与设计。论文 通过对RoboCuP案例的研究展示了这种方法的详细步骤,并为这种方法提供了 一种形式化描述机制。 4.本文研究的第四个方面是对在前三个问题的工作基础上构造针多RoMAS方法 的支持工具。本文以开放源码项目沁goUML为基础,扩展并开发了适用于 RoMAS的可视化建模工具,为基于角色的面向Agent建模元素和各种模型提供 建模能力。该工具还能够对经过分析和设计得到的模型进行一定程度的自动代 码生成。 相对于现有的多Agent系统开发方法而言,本文以一种更加系统化的方式对此类方法进行分析和设计:通过采用概念模型、产品模型和过程模型,更加全面而系统地设计了RoMAS方法。该方法支持从物理世界到计算机世界的自然建模,并且开发出相应的支持工具以便辅助开发人员进行系统分析、设计和实现.本文的研究结果能够支持对包括军事红蓝对抗系统在内的典型MAS系统的分析、设计和开发。关键词:Agent,角色,MAs,AosE,多Agent系统开发方法第11页