面向Agent的软件工程方法浅析

(整期优先)网络出版时间:2015-11-21
/ 2

面向Agent的软件工程方法浅析

罗伟

黄山学院图书馆安徽黄山245041

摘要:Agent系统经常被描述为面向对象系统的扩展,面向Agent的软件开发方法成了人们研究的热点,本文比较详细介绍了Gaia和MaSE方法,并且分析了他们在实际应用中的不足。

关键词:Agent;MAS;UML;Gaia方法;MaSE方法;

面向Agent软件开发方法是指以Agent概念为基础,以Agent技术为手段,采用工程化的思想对软件进行开发的方法。它提供结构化的过程以及相应的建模语言对软件系统进行描述、分析和建模,并支持软件生命周期中需求分析和软件设计阶段的各种活动[1]。与其它软件开发方法的区别在于,面向Agent的软件开发方法基于Agent元概念模型,其核心思想是:系统由一组Agent组成,这些Agent本身具有自主性、反应性、自发性和交互性等基本特征,通过Agent之间的社会性交互来实现系统的功能和目标。

目前已经有很多面向Agent软件开发方法,本文比较详细地分析了Gaia和MaSE这两种方法的原理和过程,并指出了二者的优缺点。

1、Gaia方法

Gaia方法[2]覆盖了分析和设计阶段,但并没有包括需求收集和实现阶段。其过程是由一系列模型组成,从宏观和微观角度来描述MAS,将MAS看作是由大量自治、交互的实体组成的一个有组织的社会。在分析阶段,构建角色模型和交互模型,将系统描述成一组交互的抽象角色。然后将这两个模型用作设计阶段的输入,设计阶段主要包括Agent模型、服务模型和熟人模型,最终形成MAS的一个完整设计规范,可以用于后续的实现阶段。可以用图1表示:

图1Gaia方法中的模型

(1)分析阶段

分析阶段的任务是建立角色模型和交互模型。

首先通过分析确认系统中的角色,然后对它们之间的交互进行建模。角色是用来对系统进行概念化描述的抽象结构,在现实系统中并没有具体的对应物。Gaia中的角色不能使用其他角色来定义,因为Gaia的所有角色都是原子结构。角色范型主要用来对Agent行为进行半形式化的描述,角色范型从权限、职责、行为和协议四个属性对角色进行定义,角色模型即角色范型集合。

交互模型由一组协议定义组成。Gaia方法的协议定义内容包括:目的、发起者、响应者、协议的输入/输出、以及处理过程等,着重于交互的本质特性和交互的目的,而不是具体的消息交换序列。

(2)设计阶段

设计阶段的主要任务就是将分析阶段构建的角色模型和交互模型映射成在运行时能够实例化的Agent类型,产生Agent模型(确定构成实际系统的Agent类型)、服务模型(表示这些Agent类型提供的服务)和熟人模型(描述了Agent类型之间的通信链接)。

2、MaSE方法

MaSE方法[2]即多Agent系统工程方法,把MAS看做是面向对象范型的进一步抽象,把Agent看做是特殊的对象。简单对象的方法需要依靠别的对象来激活,而Agent是通过对话来进行相互协作,自发行动来完成个体或全局的目标。因此,MaSE是建立在完善的对象技术上,并将它们用于MAS的规范与设计。分析阶段由捕捉目标、使用用例、定义角色三个步骤组成。设计阶段由创建Agent类、构建对话、组建Agent类、系统设计四个步骤组成。各步骤之间是迭代的,设计者可以在不同的阶段和步骤之间自由往返,最终完成完整的系统设计。

(1)分析阶段

MaSE在分析阶段用角色和任务来描述系统如何满足它的整体目标。

1.捕捉目标

捕捉目标即确定系统的要求是什么,包括识别目标和构建目标两个子步骤。识别目标主要是捕捉核心的初始需求,根据初始系统上下文识别出目标。构造目标即将目标及其层次结构用图形化方式来描述。

2.使用用例

用例由系统需求派生而来,定义了所期望系统行为的事件顺序,为了帮助确定MAS中的实际通信,用例图被转化成时序图。MaSE中的时序图类似于标准UML时序图,但是可以用于描述角色之间的时间顺序,并定义扮演这些角色的Agent的通信。

3.定义角色

定义角色的目的是为了将目标层次图和时序图转换成角色和相关任务,也就是更适合实际MAS的形式。角色形成了Agent类的基础,对应于设计阶段的系统目标。

(2)设计阶段

在MaSE设计系统时,一般有四个步骤:第一步是创建Agent类,建立Agent类模型;第二步是构建对话,即定义Agent类之间的对话;第三步是组装Agent类,设计Agent类的内部结构和推理过程,包括两个子步骤:定义Agent的架构,定义架构的组件;第四步是系统设计,定义系统中部署Agent的数目和位置,使用部署图展示。

3、总结

Gaia方法在过去几年中有着非常大的影响,但是它的设计目标就是处理小规模的、封闭的Agent系统。局限性表现在,目前Gaia方法还不能对MAS的社会层面进行清晰的建模表示,同时,Gaia使用了特定的符号用于表示角色和协议,这些符号虽然简单且易于捕捉,但是却难以表示复杂问题。因此,Gaia方法不太适用于像Agent市场这样的复杂开放系统。

MaSE方法希望通过利用目前已有的成熟工具和成功经验,尤其是基于UML的面向对象软件开发方法,通过对已有工具的扩展来支持面向Agent系统的开发。但是该方法仍然局限于仅支持对封闭系统的开发,而不能适应开发动态系统的建模。

目前已经有很多面向Agent软件开发方法,按其所依赖的技术背景上的差异可分为三类:基于角色模型的方法(如Gaia方法)、基于对象技术的方法(如MaSE方法)和基于知识工程的方法(如DESIRE、ADEPT)。但是,总体来说Agent技术还不成熟,要想将Agent技术普遍地应用于工业化生产,还需要更多的专家和学者们做更多的研究。

参考文献

[1]樊晓聪.面向Agent软件工程:Agent计算、编程风范与语言设计[J].计算机科学,1998,25

[2]毛新军.面向Agent的软件开发方法[M].计算机科学,2003,5

作者简介:罗伟(1981-),男,安徽黄山人,黄山学院图书馆馆员,硕士,研究方向需求工程。