大规模软件系统已呈现出分布、自适应、动态扩展、开放、异构等特征[4],20世纪90年代出现了一种新的构建复杂软件的方法——面向Agent的软件方法。目前,关于Agent的定义没有统一的概念,但大多数学者总结了强弱两个学术界认同的定义:
1)弱定义:Agent是一种基于软硬件的计算机系统,并且至少具有自主能力、社交能力、反应能力、主动能力。
2)在弱定义的基础上,具有人类精神状态的能力,比如情感、知识等[5]。
由此可见,Agent是应用在某些环境中,通过感知环境做出反应的封闭系统,其主要特点如下:
1)自主性:Agent具有独立性,能够根据自己的意愿行动。不被外界直接操控,在复杂和动态的环境中,根据自身状态和感知到的环境信息,控制自己行动。
2)社交性:Agent与Agent之间可以相互协同或合作,并不是一个孤立的实体。
3)反应性:对外界环境刺激产生及时回应。
4)主动性:主动采取行动的能力。
因此,若想更好地实现Agent系统,选择正确的方法是必不可少的。本文首先介绍Agent三种通用的经典的方法:基于角色模型的Gaia方法、基于需求分析的Tropos方法和基于对象技术的MaSE方法。
1.Gaia方法
Gaia是Wooldridge、Jennings和Kinny提出的一种通用的Agent系统建模方法,该方法支持对Agent社会性质和单个Agent性质的建模。Gaia将Agent系统视为一个组织或社会,其中Agent承担一个或多个角色,这些角色相互通信,完成任务。完成Gaia方法分两个阶段,分析阶段和设计阶段[6,7]。
1)分析阶段。首先将整个组织分解成自组织,然后表示环境模型、初始角色模型、交互模型以及全局组织规则。
2)设计阶段。定义系统的组织结构,根据组织结构,处理功能和效率需求以及对角色模型和交互模型进行修改和完善。
该方法可以使用AgentBuilder开发环境开发,在开发环境中每个Agent都含有信念、能力、承诺、行为规则和意图五种要素[4]。该环境提供的图形化工具,可以对Agent的信念、承诺、行为规则进行描述。并且该软件无需自己构建行为规则,只需构建通信模型,大大提高了开发效率。但是,Gaia也存在一些缺点。例如,不包含需求建模阶段,无具体的技术实现,不适用开放系统,无继承性。
2.Tropos方法
Tropos是由意大利特兰托大学信息和通信技术系及加拿大多伦多大学计算机系的一组学者联合提出的一个面向Agent的软件开发方法。而在Gastro等学者在2002年提出的方法中包括两个重要的特点:(www.xing528.com)
1)以Agent概念和其相关的思维概念为核心,从早期需求分析到最后的实现进行描述。
2)强调早期需求分析。
并且Tropos采用的是由Yu所提出的i∗模型。该模型提出了以参与者、目标、参与者之间的依赖关系作为早期需求分析应用建模时的基本概念。软件开发需要经历早期的需求分析、后期的需求分析、架构设计和详细设计四个阶段。
1)早期的需求分析,主要使用战略依赖模型和战略基本模型。实现行为者之间的关系网络以及根据关系进行推理。
2)后期的需求分析,主要生成需求规格说明书,构件系统的功能性需求和非功能性需求。
3)架构设计,主要描述系统中各个组件是如何一起工作的,即对系统的架构进行整理。
4)详细设计,主要对系统中每一个架构组件进行详细的细节描述,并做出详尽的定义。
3.MaSE方法
MaSE方法是由Wood和Deloach所提出的。这是一种具有完整生命周期的开发方法。其借鉴了面向对象软件开发方法的设计思路,大量的使用UML图形化模型。在开发过程其由分析和设计两个主要阶段组成。在每个阶段都提供一系列的步骤来建立系统模型。并且在每个步骤中都会创建相关的模型,所有步骤都具有模型的跟踪能力[8]。
该方法可以使用JACK工具包进行开发。JACK是第三代Agent系统开发工具,它充分吸收了当前Agent研究与软件工程的思想,为基于Agent开发的分布式应用软件提供了一种核心体系架构。
通用方法适合于开发一般性软件,但是特殊方法可以对软件开发进行改善,方便开发者的工作,缩短开发时间。特殊方法在需求和分析阶段所要实现的任务与其他方法相同尤其在后三个阶段,也就是设计、实现和部署。而设计阶段一般比通用的方法更加详细。接下来详细讨论三种特殊的开发方法:ADELFE、MESSAGE和Prometheus方法。
ADELFE方法是“统一软件开发过程”所主导,但专注于自适应MAS(AMAS)的软件工程。ADELFE是基于AMAS理论开发的。早期需求阶段,完成制定系统的目标协议工作。在后期需求阶段,定义、描述所研究的系统环境。在分析阶段,指导开发人员使用自适应的多Agent技术,同时通过系统和环境模型来识别Agent。最后,ADELFE的“设计工作流”必须能够提供协作Agent的模型,以帮助开发人员定义本地Agent的行为。
MESSAGE方法是一种新的面向Agent的软件工程方法学。该方法涵盖了软件生命周期的各个阶段,但更加侧重于MAS的分析与高层设计。该方法用于主流的软件工程部门。MESSAGE将Agent基本概念集成到一致的AOSE方法中,并采用Agent知识层次的概念来扩展UML,提供相应的图形化符号。扩展的模型包括UML类图和活动图。
Prometheus是一种面向Agent软件开发的方法学。Prometheus的目标是提出一个与交付产品相关的过程,使其能够被工业实践者和在校学生使用,并不需要对Agent有一个前期的背景知识,并且希望其能够覆盖软件开发的所有阶段,目前Prometheus方法学的目标是详细、完整、通用,且具有工具支持。Prometheus方法包括三个阶段:系统规范、框架设计和详细设计。Prometheus在工业上已经具有了广泛的应用,如澳大利亚气象局开发的天气预报系统原型中就使用了Pro-metheus概要图来捕捉设计。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。