Agent概念来自于分布式人工智能研究领域,目前关于Agent概念的定义还有许多争论。一般认为Agent是一个具有自主性、交互性、反应性、社会性等特征、能在某一环境下持续发挥作用以实现设计目标的行为实体。Agent与对象是两个完全不同的概念,对象只是封装了属性和方法并且通过传递消息与其它对象进行交互的实体,而Agent由于具有自主性等特征,所以它的抽象程度比对象更高,更贴近现实世界中的行为实体。
面向Agent软件开发方法基于Agent概念,它给软件开发带来新的思维观念,新的思维观念认为:任何一个系统,无论是应用系统还是软件系统,是由一个或者多个Agent构成的,每个Agent都是自主的行为实体,Agent间存在着复杂的结构关系,并通过高层的交互(如合作、协商和竞争等)来进行Agent间的相互作用,从而实现系统的整体设计目标。
目前将面向Agent软件开发方法分为三类:基于知识工程的方法、基于对象技术的方法和基于角色、组织模型的方法。基于对象技术的方法借助于面向对象软件开发方法,将Agent视为一种特殊的对象,通过对现有面向对象软件开发方法以及建模语言(尤其是UML)的扩充来支持对基于Agent系统进行建模、分析和设计,MaSE方法和AgentUML方法是这类方法的代表。基于知识工程的方法借助于知识工程(如人工智能、认知科学等)领域的概念、思想和技术对基于Agent系统进行建模、分析和设计。一种常用的方法是将Agent视为由各种认知部件所组成的意向系统,如信念、目标、意图、规划等等,MAS-CommonKADS方法和Tropos方法是这类方法的代表。基于角色、组织模型的方法借助于组织学和社会学的思想,将基于Agent系统视为是一个组织或者社会,利用社会学和组织学中的抽象概念(如角色、组织、组织规则、职责、权利)和思想来对基于Agent系统进行描述、分析和建模,Gaia方法是这类方法的代表。
上述各种面向Agent软件开发方法都不成熟距离大规模的实际应用还有很大的差距,无法像面向对象软件开发方法那样为人们所接受。总体上看,面向aen軟件工程方法的研究与应用仍然处于探索阶段,目前还没有形成一个吸取了各种方法优点的、能为大家所接受的、统一的面向Agent软件开发方法。
分析面向Agent欺件开发方法的创新发展过程,对照结构化和面向对象软件开发方法创新发展过程的四个环节,可以看出,面向Agent軟件开发方法的创新发展经历了环节1和环节2目前处于环节3环节1所找出的问题主要是“开发具有更高智能特征、更高灵活性并能更友好地与人类进行交互的计算机系统。”;环节2所提出新的思维观念是“将任何一个系统都看成是由若干个具有自主性、交互性、反应性、社会性等特征的Agent构成的,它们能在某一环境下持续发挥作用以实现设计目标。”,环节3是按照新的思维观念来构建软件开发方法的核心部分,虽然目前各种面向Agent软件开发方法百花齐放,但没有形成统一的方法,并且没有一种成熟的面向Agen程序设计语言,所以面向Agent軟件开发方法的核心部分的形成还有很长的路要走。
4结束语
软件开发方法创新发展过程的四个环节,体现出了软件开发方法创新发展过程的规律,可以帮助我们加深对软件开发方法的本质的认识,对新的软件开发方法的产生和完善有重要的指导意义。
在这四个环节中,最重要的是在于思维观念创新这个环节。只有改变传统的思维观念,勇敢地进行思维观念创新,提出新的思维观念,才能为解决问题找到一条道路。按照新的思维观念,研究和解决问题的过程,就是探索和构建新方法的过程,新方法随着解决问题的过程逐渐形成和完善起来。
创新发展的过程是逐步深入、逐渐展开的一个长期过程。新的思维观念的提出、形成和完善要经过很长时间,被人们接受也需要一个较长的过程;按照新的思维观念,探索和构建新方法的过程,是一个渐进的过程,一般是先解决核心问题,然后再全面地展开和完善,所以这个过程所用时间比较长。
参考文献:
[1]沈备军,陈诚,居德华.敏捷软件过程的研究[J.计算机研究与发展,200239(11)1456-14563
[2]高禹,冯相忠.软件开发方法演变的几个主要因素[J|.自然辨证法通讯,200729(5)88-93
[3]郑人杰,殷人昆,陶永雷.实用软件工程(第二版)[M].清华大学出版社,19996-9.
[4]张海藩.软件工程导论(第四版)[M].清华大学出版社,2003107-109.
[5]史济民.软件工程一原理、方法与应用[M].高等教育出版社,199082-84
[6]齐治昌,谭庆平,宁洪.软件工程[M].高等教育出版社1997.10-14
[7]董荣胜,古天龙.计算机科学与技术方法论[M].人民邮电出版社,2002126
[8]陈维兴,林小茶.C++面向对象程序设计[M].中国铁道出版社,200416
[9]易文韬,陈颖平.Jaa手册[M].科学出版社,1997.8-9
[10]张敬周,钱乐秋,朱三元.Agile方法研究综述[J.计算机应用与软件,2002(6)1-9+54
[11]闫琪,毛新军,王怀民,等.面向Agen酌软件开发方法及其评估[J].计算机工程与科学,200527(1)67-69.
[12]李滔,闫琪,齐治昌.基于多Agn系统的软件开发方法研究[J|.计算机工程与科学,200628(6)118-12L
[13]毛新军,常志明,王戟,等.面向Agn啲软件工程:现状与挑战[J|.计算机研究与发展,200643(10)1782-1789.