浅析面向Agent的软件工程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅析面向Agent的软件工程
浅析面向Agent的软件工程
【摘要】Agent技术和应用是目前软件研发行业的研究焦点之一,作为一种新颖的软件开发范型,Agent技术常用来解决复杂的大型工程化开发问题。

尽管在过去二十年里面向Agent软件工程领域的研究取得了长足进步,但其仍有很大的挖掘潜力。

本文介绍了Agent的研究背景和开展现状,总结了Agent技术的定义和特点,详述了面向Agent 软件工程的分析和设计步骤,总结了当前Agent应用开发使用的环境语言。

【关键词】软件工程;分析;设计;Agent
Abstract:Agent technology and applications is one of the current focus of the software industry,as a novel software development paradigm,Agent technology used to solve complex large-scale engineering development problems.Despite the past two decades inside the Agent software engineering research has made considerable progress,but it still has a lot of tap potentialhis paper describes the background and development status Agent,summarizes the definition and characteristics of Agent technology,Agent-oriented software engineering detailed analysis and design steps,summed up the problems and challenges facing the current Agent field of study. Key words:Software Engineering;Analysis;Design;Agent
1.概论
随着软件行业的飞速开展,软件产品的标准化生产已经成为研究领域内的共识。

人们已经不能满足于将线下业务原封不动转移到网上,取而代之的是人们迫切的需要人--机协同,具备智能化,个性化的软件产品。

在市场强烈需求的促使下,面向Agent的开发方法成为软件行业开展的必然产物之一。

Agent最初来自于AI领域【1】,Agent概念一经提出就受到相关人员的广泛热议,并受到分布计算、人机交互和计算机辅助协同办公等领域的关注,在多学科相互融合的过程中逐步形成独特的Agent理论和技术。

Agent技术常用于概念化、分析、描述和实现复杂、庞大的系统【2】,在与心理学、工程学、协同科学、认知学、自主计算等学科融合的过程中,逐步形成一种新的软件开发模式―面向Agent的软件工程。

目前AOSE 学科内研究焦点主要集中在Agent的分析、设计和运用方面。

面向Agent的软件工程研究是软件开发领域的一种创新思维,在软件开发的过程中常被用于意愿、信念和意图等具有主观思维逻辑方面的模型设计【3】。

目前已经成功应用于电子商务、信息检索、自动化控制等领域的系统开发,较为成熟的产品包括:美国微软公司的Microsoft Agent,Cerulean Studios 公司的ADK,IBM公司的Aglets和日本富士通的APRIL,这些国际化公司的参加,尤其是国际标准化组织开始致力于Agent技术的标准化工作为Agent领域的研究注入了活力。

2.Agent系统的开展现状和特点
早在1996年,M.J.Pont和E.Moreale【4】提出的软件开发方法只局限于单Agent模式的开发,但这种模式仍然具有里程碑的意义。

由于软件系统的自身特点,单Agent模式的系统开发很难满足复杂多样的业务需求,因此多Agent模式的研究和应用更为活泼。

N.R.Jennings 和M.Wooldridge【5】提出的多Agent系统通过对复杂系统建模来认识世界,我们可以把Agent 看做是面向对象的一种延伸,是在更高层次上的一种抽象。

当前研究人员希望在研究过程中
抽离出更具有普适意义的原理和模型。

目前行业内对Agent的定义比拟广泛,从众多定义中我们可以看出,Agent是一个处于特定环境中,能够感知并灵活自主适应环境,可以代理设计者或使用者实现一定任务的具有较高自治能力的计算机实体;其根本目标是接受另外一个实体的委托或请求并为之提供帮助和效劳,能够在该目标的驱动下主动采取包括社交、互动、学习等手段在内的各种必要的行为,以感知、适应并对动态环境的变化进行适当反响【6】。

从Agent的定义上我们可以看出,Agent是一个被高度封装的计算机系统,将其放置在任何环境下都能主动适应环境并产生自主行为。

主动性、自主性、灵活性、社会性是Agent所具备的显著特征。

主动性:Agent是具备计算能力行为的自控实体,能够在约定的行为标准内遵守承诺,对未知目标采取主动行为,不受外界的直接操控。

自主性:Agent运行时能根据其内部状态和外部环境决定自身状态,不接受外界控制的条件下决定自身行为。

灵活性:Agent能与其它Agent或人实施复杂的交互和协同,解决自身问题或帮助其他Agent 完成活动。

社会性:Agent并不是孤立存在的,它能与其他的Agent 或者人进行交互,在特定环境下根据相关知识实现对外部的理解。

除了上述主要特性,Agent还同时具备移动性、理智性、顺从性、老实性等特点【7】。

3.面向Agent的分析和设计
面向Agent的分析过程离不开面向对象的开发方法,在分析复杂的大型系统时,将具有主动行为的实体抽象为Agent,不具备这种行为能力的实体抽象为Object。

在面向Agent的分析和设计过程中,需要考虑Agent、事务和资源三个根本要素,Agent代表目标系统的实体组元或任务,事务表示实现系统目标应采取的活动,资源那么是活动进行的重要根底信息,包括:人,其他Agent,时间等多重复杂条件。

在分析和设计过程中只要牢牢把握住三要素和它们之间的关联关系,就可以实现一个基于Agent方法智能性系统。

采用Agent的软件工程方法在解决具体问题时可由下述4个活动组成。

分解:将复杂系统分解成为多个灵活运行并交互作用的Agent 子系统,按照其功能和它们之间的关系进行划分,并尽力作到每一个子系统尽可能的在功能和目标上相互独立,保持只处理一种问题,并实现自成一完整的系统。

这将有助于对子系统的设计、开发,并在组合上减少复杂的对应关系。

提取:对分解后的每个子系统进行分析。

定义要实现的功能,找出适合的解决该问题的模型。

定义相应的内外接口。

软件实现:针对每一个子问题进行编码,应做到内部算法自我完善性,即周围环境的变化只影响输入输出的结果,而不影响其内部的算法。

组合:组合的过程就是根据复杂系统问题解决的要求,将各种子问题的解决方法通过关联关系将它们组织起来。

由各种最根本问题的解决部件组合成更高级复杂问题的解决系统,并且每个子系统根据需求可重复地被使用【8】。

4.Agent开发语言
由于Agent内部结构独特的复杂性,在模型设计和研发的过程中很难研发出一种具有普适意义的编程语言,因此当前Agent开发环境多数基于Java语言,例如:ZEUE,JACK等利用Java语言的解释执行。

Java语言同时支持分布式计算、可移植和平台无关等特点,更值得提
起的是采用Java语言开发的系统工具还满足复杂软件的系统开放、分布、异构的要求。

Java 环境是支持多线程的,这一显著特征能够很好的支持Agent的多线程运行。

5.总结
面向Agent的软件工程是计算机科学和人工智能领域的结合,是一种正在兴起的软件工程方法。

Agent是软件工程研究领域深化开展的产物,它反映了人类对客观世界的深刻认识。

从早期结构化的开发方法,到当前主流的面向对象开发方法,面向Agent的软件工程是软件开发领域下阶段的重要开展方向之一。

随着实际开发过程中解决复杂问题能力的提高,面向Agent的软件开发方法必将成为下一代智能化的软件开发方法。

参考文献
【1】Wooldridge M.Agent-Based software engineering[J].IEEE Proceed-Software Engineering,1997,144.
【2】Wooldridge M,Jennings N R.Intelligent Agent:theory and practice[J].Knowledge Engineering Review,1995,10.
【3】Ferber J.Multi-Agent System[M].Addison Wesley,1999.2:55-59.
【4】Gamma E,Helm R,Johnson Retal.Design Patterns:Elements of Reusable Object Oriented Software[M].Addison Wesley,1995.3:15-24.
【5】Kolp M,DoTT,Faulkner Setal.Introspecting Agent Oriented Design Patterns[C].Advances in Software Engineering and Knowledg Engin eering,Vol III,2005:151-175.
【6】张琳,钱丽萍.基于Agent的软件工程方法与实践[J].北京:北京建筑工程学院学报,2006.3,22:35-36
【7】嵇海明,杨宗源,黄海涛.软件工程方法的新进展:面向Agent的软件工程[J].计算机应用研究,2003:4-6.
【8】毛新军.面向Agent软件工程:现状、挑战与展望[J].计算机科学,2021.1,38:10-24.。

相关文档
最新文档