网站大量收购独家精品文档,联系QQ:2885784924

智能软件开发7[精选].ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能软件开发7[精选]

?Copyright Xinjun Mao 第5讲 面向Agent的程序设计 智能软件开发 范 锐 广东海洋大学软件学院 fanrui_nc@ 面向Agent的软件设计 面向Agent的程序设计思想 面向Agent的程序设计语言 典型AOPL介绍 程序设计的任务 将软件设计阶段所生成的、关于目标软件系统的设计模型用某种程序设计语言来描述,生成可在目标机器上运行的源程序代码 编译或者解释 严格的语法 准确的语义 程序设计的组成 程序设计思想 告诉软件开发人员应该按照什么样的方式来编写源程序代码,如何得到高质量(易于理解、可维护、易于测试等等)的目标软件系统 如结构化、OO程序设计思想 程序设计语言 以一种计算机能够理解的方式来编写软件系统的代码 为某些工具(比如编译器或者解释器)所识别 如C、Java 编译器或者解释器 对源程序代码进行编译以生成在目标机器上可执行的程序代码,或者交由某些解释器对它进行解释执行 如Visual Studio (C++) 典型的程序设计范型 在软件工程领域,不同的程序设计范型依赖于不同的基本概念和基础理论,对程序设计有不同的理解和认识,因而具有不同的程序设计思想,需要提供不同的程序设计语言以及相应的编译器或者解释器来支持程序设计阶段的软件开发活动。 20世纪60、70年代的结构化程序设计思想和语言 比如C、Pascal、Fortran 20世纪80年代提出的OO程序设计思想和语言 比如SmallTalk、C++、Java 最近的面向Agent的程序设计思想以及语言 Agent-0,JAL (Java Agent Language) 什么是面向Agent的程序设计(AOP) 以Agent作为基本编程和运行单元、以面向Agent软件系统的开发作为其目标的一种新颖的程序设计范型 软件系统的基本运行单元是一个个的软件Agent 每个软件Agent封装和实现了一个或者一组相对独立的功能 不同的Agent之间通过高层的交互相互作用 计算单元的特点 基本运行单元是可自主运行的计算实体 可根据其内部状态自主地决定其自身的行为 Agent在什么情况下该执行什么样的动作是由Agent自身(而不是程序设计人员)、在运行阶段(而不是在设计阶段)来决定的 只需用某种面向Agent程序设计语言给出关于Agent功能和行为的描述性定义,而无需详细定义其具体和详尽的执行过程和步骤 面向Agent的程序设计语言一般而言是描述性(而不是过程性)的程序设计语言 AOP程序设计的思想(1/2) Agent一般被视为是由知识、信念、承诺、能力、意图等认知部件所构成的运行单元,这些认知部件的取值定义了Agent的内部状态 Agent的内部状态如何变化、Agent如何根据其内部状态实施自主的行为是由Agent自身来决定的 对Agent编程的本质 在程序设计阶段由程序设计人员描述和定义构成Agent的各个认知部件的具体内容 比如,Agent具有什么样的初始信念和知识、Agent具有什么样的能力、在什么情况下Agent该作出什么样的承诺等等 而Agent基于其内部状态的自主计算则由Agent自身来完成,它一般需依赖于面向Agent程序设计语言所提供的解释器和/或运行引擎 AOP程序设计的思想(2/2) Agent间的相互作用是一种高层的社会性交互 一般地,这种社会性交互是通过Agent之间的言语行为来实现的 Agent间的言语行为实际上是一种特殊的消息传递格式 清晰地表示Agent之间交互的意图 详尽地表述交互的内容 AOP程序设计原则 高内聚度和低耦合度仍然是判断一个面向Agent软件系统模块化程度高低的一个主要标准 高内聚度是指一个软件Agent所封装和实现的一个或者一组功能是相对独立的、这些功能之间是密切相关的 角色是判断Agent内聚度高低的一个重要依据,一个Agent应该封装和实现一个或者若干个角色的完整功能,而不要封装和实现一个或者若干个角色的部分尤其是不相关的功能 所谓的低耦合度是指不同Agent之间的社会性交互不要过于频繁和密切 OOP vs AOP 面向Agent程序设计语言的类别 人们已提出了许多面向Agent的程序设计语言,根据这些语言实现技术的差异,可以将现有的面向Agent程序设计语言大致分为以下三类 基于Lisp技术 基于逻辑技术 基于对象技术 基于LISP技术的AOPL(1/4) 用类似于LISP的语句来表示Agent的内部组成成分 具有良好的理论基础和严格的语义定义 采用符号处理的方式来解释和执行所编写的程序 较好地用于实现具有知识型和认知型体系结构的软件Agent 代表性工作: 由Shoham提出的AGENT-0 由Thomas提出的PLACA 由W

文档评论(0)

dart001 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档