节点文献

一种结合Agent技术的产生式领域工程方法

A Generative Domain Engineering Method Based on Agent Technology

【作者】 梁海华

【导师】 朱淼良;

【作者基本信息】 浙江大学 , 计算机科学与技术, 2008, 博士

【摘要】 近年来,面向Agent的软件工程成为软件工程领域和人工智能领域研究的热点之一。多Agent系统,由多个智能Agent组成,Agent拥有自己的知识特征,具有自主行为,能够彼此交互,互相协作,实现目标。同时Agent还具有社会特征,可以用多Agent可以完成单Agent所不能完成的任务,或者能够比单Agent更加有效的完成任务。随着业务应用系统的复杂性不断提高,网络技术的发展,MAS受到了越来越多的关注。但是在开发计划之内,开发高质量的MAS,仍然是一个巨大的挑战。目前已经出现了多种面向Agent的软件工程方法和实现框架。面向Agent的软件工程方法为MAS开发贡献了建模语言和面向Agent的抽象元素。面向Agent的实现框架提供了支持Agent通讯的中间件,支持Agent设计、调试和跟踪的图形化工具,以及相应的API,通过API能够使用和扩展框架。虽然现有的Agent软件工程方法具有很多优点,但是仍然有一些局限性:1)大多数Agent软件工程方法都是从高层抽象地对MAS进行建模,Agent作为一个高层抽象概念,可以很好地指导系统的分解,但是不能直接指导详细设计和代码实现;2)实现框架没有提供对多Agent系统建模的指导;现有的Agent方法没有对MAS中常见的横切关切进行建模。产生式编程是一种基于软件产品族的软件工程范型,给定一个特定需求规范,使用基本的可重用组件,通过配置知识,自动生成一个高度可定制和优化的半成品或者最终产品。产生式领域模型是产生式编程的核心。产生式领域模型包括问题空间,解空间和配置知识。问题空间由领域特定的抽象元素组成,通过这些抽象元素,可以指定产品族成员。解空间包括实现组件以及它们的可能配置。在MAS开发中引入GP,具有以下几个优点:1)基于软件产品族建模,有利于提高可重用性和灵活性;2)问题空间与解空间的分离,可以使这两部分能够独立进行演化;3)代码生成技术使高层的特征映射到具体的实现组件,这样就实现了高层概念对底层实现的指导作用。面向方面的软件开发(Aspect-oriented software development,AOSD)[3]提出了一种以模块化方式捕捉横切关切的方法,以及一个连接点模型,通过连接点可以把方面(在方面中封装了横切关切)编织到程序中。面向方面的技术是我们可以捕捉横切关切和散布在程序模块中的代码片段。通过在MAS开发中引入AOSD,可以从其它关切中捕捉并且分离横切关切。本文把Agent引入GP,提出了一种模型驱动的领域工程方法(MDMADE),利用Agent的技术和社会性特征,作为领域分析的一个重要手段,组织角色模型与特征建模技术互相补充,得出领域模型和领域理论,为需求工程和领域设计打下良好的基础;在领域分析和设计阶段,结合面向方面技术和面向对象技术,为应用工程开发可重用的组件和框架等制品。把MDMADE应用于多Agent领域。通过研究特定的MAS领域,构建特征模型以捕捉共通特征和可变特征。在特征模型中,横切关切被建模为方面特征。基于MAS领域的元模型,定义了一种面向多Agent系统的建模语言MAML,通过Ecore生成代码框架,简化了多Agent系统的开发,提供了Agent系统开发的生产力。本文的主要工作有以下几点:●把MDMADE应用于多Agent领域,使用Aspect捕捉多Agent系统中的横切关切,以模块化的方式处理多Agent系统中散布的代码片断和影响多个特征的横切关切,使用领域工程建模Agent,提高了多Agent系统开发的效率和可重用性。●提出了一种用于多Agent系统的建模语言,对Agent的特性提供了充分的支持;●提出了一种模型驱动的方式开发多Agent系统的方法,能够极大地提高多Agent系统开发的生产力;MDMADE利用了MDA和GP,以及面向方面技术,将对Agent程序员提供极大的便利。●捕捉多Agent系统中Aspect,把面向方面的软件开发与面向Agent的软件开发结合起来,提高了多Agent系统开发可重用性;●为MDMADE提供了开发工具支持,在EMF的基础上,开发UML Profile,在提供软件生产力的同时,可以充分利用UML的可扩展特性,为MAML的扩展打下了良好的基础。

【Abstract】 Multi-Agent system is a sub topic of Agent technology. A multi-Agent system is made up of Agents who own knowledge feature; interact with each other, and behavior autonomy. With the increasing complexity of business applications and advance in networking technology, MAS gains more and more attention. But the cost of developing MAS within schedule and satisfying the requirement such as reusability and maintainability is still a challenge. Identify and modularize the concerns of multi-Agent system are difficult. MAS is a too high level concept that can not used directly to model the crosscutting concerns, satisfy quality requirements, direct the detail design and implementation well, improve the code readability, and make the software module composition easier.Several methodologies and implementation frameworks have been proposed for Agent-oriented software engineering. Agent-oriented methodologies propose modeling language and Agent-oriented abstraction elements for modeling Agents. Implementation frameworks improve the productivity of developing Agent system through middleware which supports Agent communication and collaboration, through a set of graphical tools that supports the designing, debugging and deployment phases, and through a set of API which enables the use and extension of the framework. Although the Agent oriented software engineering methods have many advantage, they also have some limitation: 1) Most of the methods model the Agent application from a very high level, which can not be directed the detail design at the object-oriented level directly; 2) the implementation framework does not provide the guide lines to model the MAS; 3) current Agent methodologies does not model the crosscutting concerns which are popular in the MAS.Generative programming (GP) is a software engineering paradigm based on modeling software families such that, given a particular requirements specification, a highly customized and optimized intermediate or end-product can be automatically manufactured on demand from elementary, reusable implementation components by means of configuration knowledge. The problem space consists of the domain-specific abstractions that can be used to specify family members, whereas the solution space contains implementation components with their possible configuration. The problem space and solution space, together with the associated configuration knowledge, constitute the Generative Domain Model (GDM). The separation of problem and solution spaces gives flexibility to evolve both independently. Code generators produces reusable components based on the configuration knowledge.Using GP for the development of MAS brings to three benefits: 1) making domain engineering for MAS domain favors improving reusability and flexibility; 2) the separation of problem space and solution space allows to evolve independently; 3) code generation technology enables the mapping from the high level feature to the concrete components and the relationship between the components; because of the generation of reusable element components and the generator (which forms the solution space), the productivity of building MAS could be improved..Aspect-oriented software development (AOSD) provides a means to capture crosscutting concerns in a modular way and a join point model to hook the aspect (which modularizes the crosscutting concerns) to the program. The use of aspect-oriented techniques enables us to capture crosscutting features and code frames scattered in the MAS programs. So the maintainability and reusability of MASs are improved because the crosscutting concerns are captured and separated from the non-crosscutting concerns.In this paper, we imported Agent technology to Generative Programming to form a Model Driven Multi-Agent Domain Engineering (MDMADE) method. MDMADE uses Agent’s organization/role model and feature-oriented modeling technology in domain analysis phrase. Aspect-oriented technology and object-oriented technology are applied in domain design and domain implementation phrase to provide reusable components and other products for application engineering.Through applying MDMADE to MAS domain, the crosscutting concerns in MAS can be captured. The domain engineering process promotes reusability in MAS domain. And the generative technology enables the Agent’s abstract feature to map to detail design and implementation.The main contributions of this paper are listed as following:·GP predicts the future of software engineering is like what happened in other industries: standard reusable components and product line. But a practical process is needed to implement GP. In this paper, Agent technology is imported in GP, and a model driven generative domain engineering process is provided;·Applying MDMADE to MAS domain, the crosscutting concerns in MAS can be captured. The domain engineering process promotes reusability in MAS domain. And the generative technology enables the Agent’s abstract feature to map to detail design and implementation.·Provided a modeling language for Multi-Agent System development, which covers most Agent feature, and improve the productivity for programmer;·Catch the Aspect features in MAS, combined Aspect oriented software development technique and Agent oriented software development, improve reusability of MAS development.·A tools supported MDMADE is presented, which is built on EMF, assisting model driven development;·MAMADE is a model driven development methodology for MAS development, which is described in this paper, which has solid theory fundamental and utilize MDA, GP and Asepct-oriented technology, will assist agent programmers very much.

  • 【网络出版投稿人】 浙江大学
  • 【网络出版年期】2011年 03期
节点文献中: