面向Agent的软件工程的现状与挑战探究【优质3篇】
面向Agent的软件工程的现状与挑战探究 篇一
随着人工智能技术的发展,Agent技术逐渐成为软件工程领域的热门研究方向。Agent作为一种具备自主决策能力和主动交互能力的软件实体,可以代表用户进行任务的执行和问题的解决,其在各个领域都有广泛的应用前景。本文将探讨面向Agent的软件工程的现状与挑战。
首先,面向Agent的软件工程在现阶段已经取得了一些进展。在Agent的设计和实现方面,研究者们提出了各种不同的Agent模型和架构,如基于规则的Agent、基于代理机构的Agent等。这些模型和架构为Agent的开发提供了一定的指导和支持,使得Agent能够具备更强大的智能和自主性。此外,Agent技术还涉及到Agent的行为建模、Agent的协作与协调等方面,这些研究成果对于Agent的应用场景和效果的提升起到了积极的作用。
然而,面向Agent的软件工程依然面临着一些挑战。首先,Agent的可信性和安全性是一个重要的问题。Agent作为一个具有自主决策能力的软件实体,其行为可能会受到恶意攻击或误操作的影响,从而导致系统的不稳定或不安全。因此,如何保证Agent的可信性和安全性是一个亟待解决的问题。其次,Agent的智能和自主性也是一个挑战。Agent需要具备对环境的感知和理解能力,能够根据环境变化做出适应性决策。然而,目前Agent的智能和自主性还比较有限,需要进一步研究和改进。此外,面向Agent的软件工程还需要解决Agent的协作与协调问题。Agent在执行任务时可能需要与其他Agent进行交互和合作,如何实现Agent之间的协作与协调是一个重要的研究方向。
为了解决这些挑战,我们可以采取一系列的研究方法和技术手段。首先,可以通过引入机器学习和深度学习等技术来提升Agent的智能和自主性。这些技术可以使Agent具备更强的学习和适应能力,从而提高其在复杂环境下的表现。其次,可以通过加强Agent之间的通信和协作机制,实现Agent之间的合作和协调。例如,可以采用多Agent系统中的协议和协商机制来解决Agent之间的冲突和合作问题。最后,可以通过加强Agent的安全防护措施,保证Agent的可信性和安全性。例如,可以引入密码学和安全策略等技术来保护Agent的通信和行为安全。
总之,面向Agent的软件工程在现阶段已经取得了一定的进展,但仍然面临着一些挑战。未来的研究应该着重解决Agent的可信性和安全性、智能和自主性以及协作与协调等问题,以推动Agent技术在实际应用中的发展和应用。
面向Agent的软件工程的现状与挑战探究 篇三
面向Agent的软件工程的现状与挑战探究
伴随软件构造的延展,新颖的Agent类别软件,也拓展了采纳范畴。Agent整合属性的软件技术,含有新框架下的原理及多重工程思维,这就供应了软件构建的有序路径。
摘要:面向Agent软件工程是当下软件工程最前沿的研究方向之一,这种系统结合了Agent理论和技术,同时将软件工程的思想、原理和原则相结合,为基于Agent系统的开发提供工程化手段。最近几年,随着Web应用在Internet上的发展,同时加上软件开发社会化的需求,基于Agent的软件工程在学术界和工业界引起了广泛的关注,本文主要阐述了面向Agent软件工程的产生和发展背景,面向Agent软件工程的研究内容,面向Agent软件工程的研究现状,最后讨论了存在的问题和面临的挑战。
关键词:面向Agent软件工程;基于Agent系统;Agent理论;技术
一、概念
1.1面向Agent软件工程,其工作原理是将Agent看作为模型的构成条件,同时围绕对应的基本条件有条不紊的开展与系统相关的系列活动,被认为是目前技术性较强的软件开发模型。不管是软件系统还是应用系统,它的内部构成都包括多个Agent,Agent表现出来的特点主要有自发性、反应性、社会性和自主性,属于行为自控的行为实体。Agent与Agent之间表现出来的结构关系较为复杂,其作用是由高层相互交换来实现的,在这样的前提下达到系统设计的预期目标。面向Agent软件工程针对系统研发来讲,不仅为其构建了系统平台,同时还完成了理论的提供和技术环境的提供。
1.2它主要通过系统的模块分解,数据建模和抽象理论完成系统数据的阐述和管理,达到了系统设计的基本要求和目标,这样更可以促进系统难度的提升和灵活性的增加,在此基础上还增加了维护性特点和重用性特点。面向Agent软件工程包括的基本思想与定义在理论论与软件工程整体规划处于同一个轨道线。以往的数十年间,软件工程始终在探索一套能够促进其研发能力的系统,而这个系统基本特点要体现出来自然抽象和功能强大,在科学管理的前提下帮助系统建模工程的完成和技术改进。面向Agent软件工程侧重反映出来软件的抽象特点和研发技术水平。
二、研究现状分析
(1)技术方面。面向Agent的需求工程不仅融合了Agent同时还融合了Agent系统定义自身携带的特性,这些特性为系统的建模及研究创造了研发条件。相关领域的分析涉及到的学科不仅有认知学,同时还兼具有社会与组织两个学科。常见的研究内容涉及到的框架是i3框架、ALBERT、Tropos、NFR、RoMAS等。最近一段时期以来,研究者找到了大量面向Agent的建模语言其目的是为Agent系统描述提供支持,为系统描述等工作提供帮助,常见工作内容包括AgentUML,AML,MAS2ML,OrgS,CAMLE等。因为软件Agent具备的特性和内部构造模块的其他特点,面向Agent软件引起研究者关注的侧重点是其应用部分。通过使用面向Agent的软件的工作形式,面向Agent软件开发出现了形式多样的与其相对应的系统模型,所以前提是技术手段必须具备只有这样才可以达到系统规定的精益求精的要求。
(2)管理方面。当前通过使用面向Agent软件工程进行项目研发的成果较少,人们对来Agent软件工程内在需求知之尚少,同时也不了解该软件在实用过程中具体要求是什么,所以未深入开展相关的探索。
(3)工具方面。处于工具状态下的面向Agent软件表现出来的状态较为灵活。一直到现在应用领域和研究领域推向市场的Agent的CASE工具有数十种之多,在此基础上可以为面向Agent软件工程各个研究环节创造更多的研发条件。
2.1面向Agent的开发方法
基于Agent以及其他相关概念、借助于面向Agent的软件开发思想对系统进行工程化开发的方法学是面向Agent的开发方法,包括面向MicrosoftAgent的分析方法、面向Agent的设计方法。它提供了相应的建模语言以及结构化和良定义的过程对基于Agent系统(包含应用系统以及软件系统)进行全方位的分析、描述与建模,支持软件寿命使用中软件设计和需求分析(从大众化需求的分析)两个过程的软件开发工作。到现在人们已经提出了近百种面向Agent的开发方法,并且陆陆续续有新的方法出现。大部分方法是通用的,不限定实现技术平台和应用领域;小部分方法是专用的,专门针对某个平台、特定的应用和某个实现技术。按照现有方法所需求的差异性和主要技术背景,可以将所有的面向Agent设计方法和软件分析分为以下三个方面。实际上基于Agent系统进行分析和设计的方法是以各种技术手段集成在一起来进行的。
(1)基于对象技术。该类别的方法依靠于面向某种软件开发方法,通过将Ag-ent视为一种特殊的对象建模语言(尤其是UML)的扩充以及用现有面向对象软件开发方法来支持对基于Agent系统进行分析、建模和设计。
(2)基于知识工程。对基于Agent系统进行建模、分析和设计的进行依靠于知识工程(如人工智能、认知科学等)领域的逻辑概念、思想和技术。一种常用的方法是将Agent视为由各种认知部件所组成的意向系统,比如信念、目标、意图等。代表性工作包括Tropos,DESIRE,MAS2CommonKADS,Styx,AAII等。
(3)基于组织思想。这种办法的思想基础就是社会学和组织学,并且用这两门学科中不具体的定义来叙述描绘基于,在此前提下再对其进行分析和建模,这些抽象的定义包括社会角色、社会组织以及组织成员共同遵守的规则、需要承担的责任等等。该办法的典型性工作有Gaia,AALAADIN,Ro2MAS等。
①几乎所有的建模方式对软件开发都有着很大的影响,主要是对开发的过程和程度协助,但是因为不同的建模方式运用的定义和语言都是不同的,所以这种帮助的程度也不会一样。对于基于Agent系统来说,每种建模方式都具有独特的理解认识。
②如果用户面对的是Agent的开发方法,那么就很难全面详细的掌握所有方法的优劣、之间存在的不同以及适合使用的场所等等。从而导致根据特点确定合适的开发形式的难度大大增加。
③虽然每一种形式都有优势,但是几乎没有一种形式能集中所有的优势,有优势的同时,也必然存在着一定的劣势。
④软件开发者之间和软件开发者和用户之间要想随时实现即时有效的沟通很难,因为虽然大部分面向Agent的开发方法都差不多,可是其实质还具有很大的差异。根据以上论述可知,形成一个保准统一、具有很大优势,还能被所有相关人员认可的方式,将是整个学术范围和工业范围内的努力方向。当然,这也是一个巨大的挑战,因为这必须要把各个面向Agent的开发方法进行对比研究,集中所有的有点,去掉所有的缺点。
2.2面向Agent的程序设计
面向Agent的程序设计实质上是一种新型的程序设计模型,它的基础是Agent软件系统的开发,基本编程是Agent,而设计的目标就是Agent的运行单元。程序语言对于面向Agent的程序设计来说,是最重要的也是必不可少的一项工作。程序语言是程序员对编程改写目标系统软件的基础。目前来看,相关人员已经研究出了几十种能帮助面向Agent的程序设计的程序语言。通过分析这些语言技术层面上的不同,的一个必要的、同时也是最基本的工具就是该程序设计的语言。程序设计员可以通过它对目标软件系统进行编程和改写。到现在,人们总共提出了数十种。依据这些语言技术层面的差异性,可以大致对其进行如下分类:面向Agent的程序设计语言笼统的分为以下几类别。
(1)以LISP技术为基础。这种程序语言以运用了LISP的语法形式而得名,它就是采用和LISP语法形式差不多的句子对Agent的组成部分进行表达,也包括对Agent系统的行为或者系统之间互相交流沟通。运用这种理论系统比较严谨的语法系统来进行编程和改写,对于提高Agent系统的功能性有很大的帮助。运用LISP的语法形式的工作分类有Shoham开发的AGENT20、还有Thomas开发的PLACA、以及Davies和Edwards提出的AG-ENT2K1。
(2)基于逻辑技术。逻辑系统包括一阶谓词逻辑以及时序逻辑等等,逻辑系统也可以作为Agent的程序设计语言来使用,在程序编写的时候,就用逻辑系统来对Agent系统的各种方式以及内部组成里进行表述和定义,例如相关知识、意图和信念、原子动作和规则等都可以用逻辑技术来表述定义。逻辑技术的理论系统和语义定义都相当严谨。因此运用了逻辑技术的Agent系统可以作为定理证明器来使用,Agent系统的工作过程也可以看做是一个证明定理的过程。它的典型代表有由Fisher提出的并发METATEM、由Giacomo和Lesperance等人提出的CON-GOLOG、由Hindriks等人提出的3APL等等。
(3)基于对象技术。此项面向Agent程序设计的语言是在对拓展原来程序语言的基础上,运用了面向对象的软件开发技术和软部件技术而形成的一种Agent系统程序语言。它属于在语言级上对Ag-ent系统程序语言提供支。通常情况下,这项技术都是把Agent系统当成一个特有的对象,用Agent内部功能的预定义软部件来编程和实现Agent系统,它的前提是使用的软部件必须是一组已经封装的特殊类。运用这种技术,可以利用预编译生成由面向对象程序设计语言(如Java)所描述的程序代码了,也可以把用户编程直接表述成能运行的代码,并且实现其在目标平台上运行的目的。最终生成能够运行的目标代码,还要用面向对象程序设计语言编译器对其进行编译。到2000年为止,面向Agent系统程序语言方面的研究经历了一个由活跃到沉寂的过程,影响研究现状的主要因素就是技术问题。到最近几年,这方面的研究又再次掀起热潮,因为人们已经清楚程序语言的设计是软件开发顺利进行的重要保证,而且是不可或缺的一环。Agent系统系统本身功能性和实用性的提高,也必须要建立在程序语言的不断更新换代上。到目前为止,相关人员研究制定出的'Agent系统程序语言,通常都有下面几个特征:
①原型化。程序语言本身就是已经固化的知识系统,实用性小。
②研究性。程序语言并不能为人类工业化具体服务,只是用来检验一些理论是否正确可行。
③非商业性。程序语言语言目前的开发系统环境都有待改善,其可行程度和简便程度方面的指标还不高。
2.3面向Agent的CASE工具和环境
我们把帮助软件开发者更加快速有家高效的完成Agent系统的一组软件,称作面向Agent的CASE工具和环境。它能够有效支持Agent系统在原有的定义和技术的基础上,对Agent系统进行开发,比如它可以为开发提供需求分析、软件设计、系统实现和验证等等。最近几年年,有关这项技术的研究逐渐升温,到现在为止,学术范围和工业范围已经公布了数十种面向Agent的CASE工具和环境,而且其种类还正呈现不断增多的趋势。虽然其种类繁多,特点也各有不同,可是总体来看AgentCASE工具和环境可以分成下面这几类:
(1)开发包和可重用库。开发包与可重用库的使用在很大程度上节约了软件开发成本。对于Agent软件开发也是一样。对于当下主流的软件开发技术,如针对于软件语言开发类的Java、C++等。其可以通过软件开发包和可重用库如JATLite,MicrosoftAgent实现二次开发。实现创建Agent的软件系统(包括Agent类、Agent接口)的软件重塑,从而集成可用的软部件系统。
(2)体系结构框架。面向Agent的体系结构框架随着计算机软件的发展是非常普遍的,而针对于CASE工具环境的结构数目也是非常多的(如OpenAgentArchitecture,JAFMAS等)这类工具框架的主要作用就是构建软件运行机制,实现内部体系的运作,构建快速通道Agent。
(3)开发工具集。开发工具集工作环境通常只有独立一个,这样是为了后期处理系统的完整性和统一性。主要代表有AgentBuilder,Zeus等,其主要价值是用以支持软件开发人员对目标软件系统进行分析、设计、实现、部署和测试等。
(4)基础设施和平台。基础设施和平台主要是为面向Agent的CASE工具和环境提供服务,主要包括通信服务、安全服务、目录服务、移动服务等在类的基础服务,目前在我国主要流行的面向Agent的CASE工具和环境主要有Voyager,ADE,Grasshopper等。综上所述,在对面向Agent的CASE工具和环境的理论研究方面我们取得了长远的立足,但是就使用价值和使用情况来说,还是一个未知数。因此我们就要避免当下基于Agent系统开发过程中存在的诸多问题和不足。例如①人机交互的困难;②对象混乱,没有实现一对一的使用模式;③缺乏明确的方法论支持;④市场通用价值。
三、问题和挑战
面向Agent软件工程远未成熟,离工业化、大规模的应用尚有很大的差距,还不能为广大软件开发人员所接受,尤其是要成为一种主流的软件工程化开发技术还面临着一系列挑战性的问题。
3.1基础理论
人们很早以前就认识Agent理论的重要性并于1963年开始萌发了Agent理论研究的研究思想,但是知道20世纪90年代年后人们才真正意义上上的重视起来并着手开始研究。自从人们认识到Agent理论的重要性以后,大量的科研人员不断对其进行研究,无论是Agent的理论还是具体的实际应用人们丝毫不放过任何可以进行研究利用的方面。鉴于整个软件系统的质量的好坏受Agent的性能的影响,在我们实际通信中就要按不同的要求设计出高性能和高品质的软件系统。对于用户的不同要求的用户安装不同大小和功能的系统。因此,对于Agent理论的基础理论研究必须掌握得非常牢靠才行。早期人们研究的这个Agent理论模型对原理进行了合理详细的解释,它主要的基本理论基础就是他把微带辐射单元看成了一个在水平方向上不会产生变化的线状的BDI逻辑和模型,而在长度的方向上,电场进行的时余弦变化。我们这样就可以把他看做是拥有两个开路端的原型化语言AGENT20及其解释器。对于这个等效的解释器,我们可以把贴片表示为,且他们做的是相同方向的激励并且都是向地面上方的半空进行辐射的缝隙。不仅如此,科学家还给出了进行这个简单计算的计算公式,这个公式不需要进行大量的数据采集和计算,只适用于工程上的计算,但是只能够运用意图理论和自主计算理论这两种类型。基础理论的研究对于面向Agent软件工程而言是极为重要,他们将为面向Agent的工程实践技术以及工具的研究与发展提供理论指导并奠定扎实的理论基础。
3.2关键技术
(1)软件开发方式。通常情况,软件开发方式主要是语言建模与过程开发的有机融合的过程。针对建模语言来说,如果技术标准进一步统一,那么我们可以完善对应的针对Agent的建模语言。这要在语言表达能力与语言简洁性之间做出考量,包含形式化以及半形式化的语言表义基础,展露多视角、多非具体方面的思维,给予适当的语言设备以表示在Agent系统基础上的特性,比如自然抽象和封装这两方面,可以在维持繁琐Agent系统基础上进行效果性显著的建模。针对建模过程来说,必须给予明确的释义过程以维持针对Agent系统的软件开发项目。特别是因为在软件开发中常常会出现非同一抽象层次、非同一视角的该系统模式,但是众多系统模式从内在逻辑上讲是不可分割的,所以必须给予科学的技术援助以维持模式的转化,必须针对模式间是否一致做出抽查测试。
(2)软件体系结构和设计模式。当前,我们对在Agent系统基础上的软件模式层次探讨还不够深入。一些针对Agent系统的软件开发方式与Agent类系统的技术方式的具体实施是通过基础模板来实现的。如果用对象类和对象来比喻Agent类和Agent的话,那么对象类是Agent类,对象是Agent。可以这样说,在Agent系统软件模板和Agent基础之上的两者关系不但是实际比例关系,还可以包括动态绑定之间的关联性,来切实显露Agent的相关特性、展现Agent技术优点和适应非静态、非封闭系统研发的需求。除此之外,我们更要通过其他科学方法以探讨、设计规划与阐释在Agent系统基础上的软件整体层次,还要凝练和总结出各式各样的设计规划模板。我们在探讨设计规划模板和软件重新的时候,必须要立足于Agent软件开发建设产业,这样的广泛运是十分重要的。
(3)程序设计思想和语言。目前,针对Agent系统设计开发的语言难以满足用户的需求,为数不多的受众是理论界的学者和研究员。同时,使用针对Agent程序设计开发的语言系统在消费市场上并不多见,远远跟不上C++与Java的使用程度,它还是不成熟的技术,因而吸引不了许多软件工作者的青睐,也无法打入软件工程的广阔发展空间。我们对Agent系统设计开发的探讨还不够深入,现在无论是理论界和生产中还没有出现针对Agent程序设计开发理念的系统,以控制Agent设计语言开发和编写结果软件系统进的程序。一些系统设计语言的开发是根据人工智能专家的理念产生的。虽然该语言在具体使用功能上可以稍微适应针对Agent程序设计的需求,然而针对系统自身的简易实用性没有注入很多精力进行研究。针对这方面的理论和实践探究需要尽可能吸收自主研发的Agent执行机制和该系统的整体层次的相关经验。
四、结论和进一步研究
针对Agent的软件设计开发展现了和现在不同的主要采用的技术思想方法。将此用在维持繁琐系统的工程设计研发上,既是软件开发技术的全新尝试和典型模式,同时也为网格、普适计算与语义Web等相关研究给予了良好的范例。所以,这几年理论界与其他科学界十分青睐针对Agent软件工程的研究工作。有的人断言,这是一次全新的工业技术革命。针对Agent软件工程设计研发的理论研究,Agent软件工程不是一个独立的研究分支,其主要贯穿了其他学科的很多知识。在技术手段上融合了当下研究最为热门的学科。例如社会经济学、组织行为学、认知科学等。使得Agent软件工程复杂的运算系统得到了简易处理。随着学科之间的联系更加广泛,Agent软件工程也显示出了自己的学科价值优势。比如,在虚拟计算机研究领域,就利用到了Agent的概念和思想。其起到的作用将更加将计算机的分布资源实现按需整合。这极大的将面向Agent软件工程的应用价值推向市场化。一方面,计算机等计算与Agent软件工程的有机融合将会拓宽Agent软件工程的应用领域;除此之外,计算之间的搭接显露了Agent软件工程的应用缺口和使用价值定向。使得今后的Agent软件工程研究更加趋于方向化,目标研究。这将会使得为面向Agent软件工程走向大规模、工业化应用提供广阔的应用背景。
参考文献:
[1]潘卫华,潘卫红,孙淑琪.移动Agent技术在分布式数据库系统中的应用[J].华北电力大学学报,2003(1).
[2]尹章才.一种新的编程方法——面向Agent的程序设计[J].信息技术,2002(3).
[3]王昱,周成平,丁明跃.基于多代理的网络图像下载模型的设计研究[J].华中科技大学学报(自然科学版),2002(1).
[4]何卫平,蔡鸿明,秦忠宝,李冰.面向工业造型设计的产品设计定位方法研究[J].计算机工程与应用,2002(4).
[5]党辰,王嘉祯,王素贞.基于组件的移动Agent平台设计与实现[J].计算机工程与设计,2009(3).
[6]周文军,刘斌.面向Agent技术[J].微处理机,2009(1).
[7]赵少东.面向对象与面向Agent的比较[J].现代计算机,2005(11).
[8]刘霞,吕翠丽,赵鑫.Agent软件技术应用实例[J].中国校外教育,2012(9).
[9]潘卫红.移动Agent技术及其在分布式系统中的应用研究[D].华北电力大学,2002.
[10]张宇晴.Agent在分布环境中的工程应用[D].华北电力大学(河北).2004.
[11]黄达安.基于MobileAgent的K-WebService系统的设计与实现[D].暨南大学,2006.
[12]於蓓蓓.溪洛渡水电站场内交通系统层次多代理系统及其决策问题的研究[D].天津大学,2006.
[13]高雅田.基于Agent的油井作业施工总结智能分析系统研究[D].大庆石油学院,2007.
[14]朱莉丽.基于移动Agent的分布式电子商务框架研究[D].武汉理工大学,2008.
[15]代春平.基于Agent的数据挖掘模型研究及其在火山岩压裂方案中的应用[D].大庆石油学院,2008.