基于Agent的软件工程开发方法研究

时间:2020-07-31 19:34:17 硕士论文 我要投稿

基于Agent的软件工程开发方法研究

  20 世纪90 年代末以来, Agent 理论和技术得到不断成熟和应用,现有的面向过程和面向对象的软件工程方法已不能解决Agent 系统的设计与分析问题, 人们迫切地希望能够从一些具体的Agent 技术和特殊的成功案例中抽取出一般性的、具有普遍意义的原理、方法、过程和模型等, 从而提供一种系统的手段以指导软件系统的工程化开发。在此背景下, 许多学者将Agent 的概念、理论和技术引入到软件工程领域, 并与软件工程的思想、原理和原则相结合, 产生了基于Agent 的软件工程这一新颖的研究方向。

基于Agent的软件工程开发方法研究

  一、Agent 定义和特点

  在软件工程领域较为人们所接受的Agent 的定义是: Agent 是一个处于特定环境中, 能感知并灵活、自主适应环境, 可以代理设计者或使用者实现一定任务的具有较高自治能力的计算机实体; 其根本目标是接受另外一个实体(可以是人、Agent、系统等) 的委托或请求并为之提供帮助和服务, 能够在该目标的驱动下主动采取包括社交、学习等手段在内的各种必要的行为, 以感知、适应并对动态环境的变化进行适当反应。它具有以下特点: 自主性。社会性。反应性。主动性。以及移动性、自适应性、协作性、自利等特性。

  二、Agent 与对象的比较

  Agent 的概念可以看作是面向对象概念的一个延伸, 它是对现实世界的更高层次上的抽象。以下简要概括了Agent 与对象的区别:

  对象可以看作是一个被动的.实体, 只能由外部的消息控制。外部的消息快递可激活其内部的方法, 对象方法的变化可以改变属性特征及其行为。Agent 是一个活动的自治实体, 具有自主性, 具有自己的目标和行为, 可由外部激励或内部状态而启动, 能理解信息并控制自己的行为。Agent 与对象的不同导致了我们在对Agent的心智构件信念、愿望和意图进行建模和设计时难以采用应用面向对象的方法学。

  三、两种基于Agent 的开发方法和体系结构

  不同于其他软件工程技术, 面向Agent 软件工程的研究借鉴和集成了其他学科的知识和研究成果, 包括社会学、组织学、认知科学、经济学等, 从而为复杂系统的开发提供更为自然、抽象的技术手段。下面我们对两种较为主流的方法进行探讨:

  (一) Gaia 方法学

  Gaia 方法学是把多Agent 系统看作一个由相互作用的不同角色组成的计算组织, 它不仅支持Agent 的群体智能及其组织结构, 而且支持Agent 的内部结构。在Gaia 系统中, 角色是主要组成部分, 角色有职责, 权限, 活动和协议等属性。

  Gaia 方法中Agent 的体系结构: 各种服务作为一个组件能够被动态的装卸, 每个服务以两种角色存在, 一种是协调者的角色, 另一种是客户角色, 服务部署层来决定唤醒那一个服务角色。系统管理服务发现在它附近的设备、协调设备加入系统和管理系统。事件服务管理系统中设备之间事件的通讯。本地服务融合系统中来自不同设备的本地信息,对整个系统提供设备的信息。安全服务主要由两部分组成: 授权和存取控制。服务交互层被用作内部个人空间的通讯。

  Gaia 也存在一些缺点, 比如Gaia 没有处理系统中有多个Agents共享同一个目标的情况, 对多Agent 系统的处理有一定的困难。

  (二) Tropos 方法学

  Tropos 方法学使用了代理(Agent)、目标(Goal)、规划(Plan)、Tropos 把参与者和目标作为最基本的概念应用到了软件开发的全部过程中, 它主要支持软件开发过程的以下五个阶段: 1) 早期需求,这个阶段的输出包含相关参与者和它们对应的依存关系的组织模型; 2)后期需求, 在运行环境、相关的功能和质量范围内描述未来的系统; 3)架构设计, 根据子系统的概念定义全局架构; 4) 详细设计, 此阶段,根据输入、输出、控制和其他相关的信息更具体地定义每个架构部件;5) 实现, 根据详细设计实现系统。

  基于Agent 技术的Tropos 方法同样具有缺点, 此方法缺乏对社会结构和环境的描述, 而且因为支持工具的限制, 其作为一种适合描述的概念更为合适。

  四、结论与展望

  基于Agent 的软件工程提供了有别于当前主流技术(如面向对象软件工程) 的概念、思想、方法、语言和工具等来支持复杂系统的工程化开发, 代表了一种新的软件开发技术和范型。近年来的研究趋势表明, 面向Agent 软件工程将与其他计算机技术之间具有密切的关系, 一方面, 这些研究方向试图将A-gent 理论和技术用于其特定问题的解决(如资源和服务的发现与协同), 从而对面向Agent 软件工程提出了明确甚至是新的要求; 另一方面, 通过与这些计算机技术相结合, 拓宽了面向Agent 软件工程的应用领域和范围, 为面向Agent 软件工程与各种主流技术相结合, 走向大规模、工业化应用提供了应用背景。

【基于Agent的软件工程开发方法研究】相关文章:

1.基于客户关系管理的潜在客户开发研究论文

2.软件工程开发app论文开题报告

3.基于设备状态的变电站运行风评方法研究论文

4.浅谈基于慕课的计算机游戏课程开发设计思考与研究论文

5.基于VB6开发的计算机基础教学模拟软件设计研究论文

6.基于手机游戏艺术教育的研究论文

7.基于能量谱的时域波形再现瞬态振动环境试验方法研究论文

8.研究分析基于计算机技术的机械设计方法论文

9.基于小型企业的产品包装研究