2.1 引 言
面向Agent的范型(Agent Oriented Paradigm)认为,软件系统是由自治的预动实体(Agent)组成,并通过交互来实现总体目标。虽然分布式人工智能领域的研究表明,Agent范型适合于模拟动态环境中的复杂系统运行(Zambonelli等,2001a),但是需要一些基于Agent的工程化应用来将它推广到其他领域,以及真实世界中的计算应用。这就要求以一种系统化的方式来开发应用程序,同时能够被一般专业人员充分理解。传统的软件方法论提出了一种工程化计算应用的方式。具体来说,方法论在有效性、重用性、健壮性和可管理性方面是有益于应用软件发展的,并且有助于降低开发成本,提高软件质量。
虽然最初为了开发基于Agent的系统,研究人员采用传统方法做了一些尝试(Kinny等,1996),但是现在一致认为需要采用一种新的方法来利用Agent的所有特点。在过去的10年中,MAS(Multi-Agent System)的开发经历了从艺术到结构化的转变。MAS现有的研究成果能够使开发人员比以前更加易于构造MAS。这些成果几乎涵盖了软件开发的全部活动,包括需求工程(Yu,1997a)、分析(Wooldridge等,2000b)、设计(DeLoach,2001)、实现(Massonet等,2002)和代码生成(Juan等,1999)。不过,大部分工作还处于试验阶段或探索阶段(Weiss,2003)。
本章的目的有两个:一方面,介绍面向Agent软件工程的关键要素和典型方法;另一方面,调查目前面向Agent软件工程对软件开发过程的覆盖情况。不过,面向Agent的软件工程是一个很宽泛的领域,在这里不可能完全覆盖。由于这个原因,我们把焦点放在了方法论和直接相关的概念上。尽管如此,可用的文献数量依然庞大,不可能做到毫无遗漏,这里只考虑一些有代表性的案例。