硕士论文网/国内首批论文服务机构

当前位置:硕士论文网首页 > 软件工程 > 关于Agcnt软件工程的初步讨论

关于Agcnt软件工程的初步讨论

时间:2020-11-25 20:00 | 栏目:软件工程 | 浏览:

硕士论文网第2020-11-25期,本期硕士论文写作指导老师为大家分享一篇软件工程文章《关于Agcnt软件工程的初步讨论》,供大家在写论文时进行参考。
  本篇论文是一篇软件工程硕士论文范文,面向对象的设计是确定问题的解决方案的过程。传统的功能分解的设计方法是面向任务的。将问题域分解为一系列任务来完成,这些任务形成了过程式软件的基本结构。虽然在需求分析阶段形成的信息输出可以作为设计阶段的输入,但它们往往是用完全不同的术语表示的,这导致了分析和设计阶段之间的不必要的界限和信息转移的困难。

  第一章  综述

  1、软件工程的发展
  人们最早使用的就是功能分解的方法,然后发展出了数据流的软件工程。后来出现的面向对象的软件工程大大的提高了软件的生产效率。下面我们依次考察一下这几种方法及其优缺点。功能分解功能分解的策略是以先前的经验为依据,选择对新系统所期望的处理步骤和子步骤。中心问题是新系统需要什么处理,然后再说明处理和功能界面。功能分解要求人们将问题空间映射到功能和子功能。功能/子功能模型忽略了问题空间的数据结构和数据流,因此不能精确的反映问题空间。同时,由于需求中最容易发生改变的就是功能,一旦功能有所改变,整个分析和设计的过程均要改动,对变化的适应力很差。如图1所示。使用这个方法,分析员将现实世界映射成数据流和加工。这种映射要求分析员在研究现实世界时跟踪数据的流动,并将数据流映射到以后的分析和建模。这个过渡成为一个难以解决的问题。数据流是一个加工和存贮的网状表示;面向设计的结构图是一个模块的层次表示。这种表示方式的根本改变造成了分析和设计模型间的主要分歧。发现对象;、组织对象;、描述对象间怎样交互;、定义对象的操作;定义对象。在面向对象的设计中,分析得到的模型给了我们一个很好的结构,我们试着无可能的保持。然而,在设计中必须考虑各种因素,这些因素会影响软件的结构。
图1
  2、Agent的由来
  An并没有一个统一的定义,这里我们引用JaequesFebrer的定义161:a)具有在环境中行为的能力;b)可以与其它Agent直接通讯;c)由一定的趋向所驱动;d)拥有自己的资源;e)可以探知它周围的环境;e只能拥有环境的部分代表;g)可能会自我再生;h)其行为倾向于满足自己的需要。我们知道,面向对象的技术的最大优点之一在于大大缩小了问题空间和解空间的差距。通过用解空间中的对象映射问题空间的对象,使从问题空间到解空间的转化更为直接准确。如果系统所要完成的任务单一明确,则使用面向对象的方法非常合适,这种方法把任务分解到对象之间的协作之中。然而,随着计算机技术的发展,一些软件系统所要解决的问题不再单一,这些系统常常有若干目标。这些目标之间的关系也越来越复杂,有时相互合作,有时相互竞争。由于不同任务之间甚至可能是相互矛盾的,因此把所有任务分解到对象级,用对象之间的协作变得十分困难。这时,传统的面向对象技术的不足就显现出来,对象之间的关系过于复杂,很难验证对象之间的联系是否能够完成预定的任务。例如,在某一时刻,任务l要求对象2为对象1服务,而任务2要求对象2为对象3服务。如何用对象之间的协作解决这个问题呢?作者认为问题在于面向对象技术所能处理的问题空间模型过于简单,不适于处理这类任务复杂的系统。如一个公司的管理,除去报表、帐务和职员等对象之外,必然有利润最大,满足员工需求,打开市场,技术创新等任务。又如一个字处理软件,除去文档,窗口,菜单等对象外,可能有对用户操作进行反应,保护用户的工作,辅助用户进行语法检查等任务。

  第二章  面向Agent的分析(AOA)

  1、面向对象的分析的局限
  首先,让我们来考察一下面向对象的分析方法(OOA)。软件工程领域的研究者们提出了许多OOA的方法,比较著名的有Boohc,Jaeobson’5oosE,uRmbaugh’5OM工Fusion,Coad一oYurdon等。这些中的每一个都是一套完整的方法。每一种都有自己的优点和缺点。简单的说,Boohc方法在设计和建造阶段特别有效,OOSE为需求分析和高层设计提供了杰出的支持。我们来考察Coad的OOA方法。第一步,标识对象。从问题空间、文字资料和图片资料入手,寻找结构、其它系统、设备、记住的事件、扮演的角色、地点及组织单元,考虑需要的记忆、需要的服务、公共属性、公共服务及基本需求,剔除不必要的记忆或服务、单个的实例和派生的结果,用单个名词或形容词+名词来命名。第二步,标识结构。分类结构表示类一成员组织,反映通用性一专用性。组装结构表示聚合,反映整体和组成部分。把每一个对象考虑成通用的,然后再考虑成专用的,可以标识出分类结构。把每一个对象考虑成一个整体,然后再考虑成一个组成部分,可以标识出树状结构。第三步,标识主题。对每一个结构增加一个相应的主题,对每一个对象增加一个相应的主题,如果主题个数超过7个左右,则进一步精简主题。第四步,表示属性。检查问题空间,将现实中的对象与实际表述该对象的属性联系起来。在分类结构中,公共的属性放在结构的高层,特殊的放在低层。标识和定义实例连接。增加实例连接线;反映问题空间的对应关系;努力获得最少的必要的连接集合。第五步,标识服务。首先表示基本服务—发生(增加、修改、删除和选择)、计算和监视服务。然后标识附加服务,使用两种方法:1、对象生命历程—定义基本序列,检查每一步的演变,增加服务;2、状态一事件一响应—定义主要的系统状态,列出外界事件及所需要的响应,扩充服务和消息连接。标识消息连接。对己经存在实例连接的实例增加消息连接,然后,检查一个实例需要另一个实例所做的处理,寻找额外的消息连接。因此,Coad认为从稳定性最高的对象开始分析,最后再分析系统的功能有助于适应需求的变化。但是,这种方法在一定情况会出现一定局限性。问题在于,前四步产生了一个现实世界的模型,但并未考虑系统的功能。在第五步时,系统的整体的功能要被分解为对象和对象之间的操作来完成。当系统的功能比较简单时,这种分解依靠经验可以较好的完成。但当系统属于以下几种情况时,这种分解会变得十分困难。1、系统功能非常复杂;2、系统存在多个目标;3、系统拥有一定的智能;4、并行系统。系统功能非常复杂,通常来说,此功能涉及对象众多,操作繁杂。因此难于分解,而一个给定的分解是否能完成所需的功能也难于验证。若系统存在多个目标,就存在多个目标之间的竞争问题。如两个目标分别要求同一对象提供服务。这时,这种分解就难以进行。当系统拥有一定智能,这种智能将表现出一定的主动性,即系统会“主动”进行某些操作。而前四步所确定的对象均为问题空间的对象的抽象,因此系统中没有出现主动的动机。另外,由于在考虑对象属性时还未考察其功能,因此很难确定其属性。
  2、AOA的方法
  我们在分析中用e概念来封装功能。每一项功能由一个e来映射。e具有以下特性:l、e拥有资源,包括用以完成功能的对象,CPu等;2、Agent了解完成功能所需要的步骤;3、Agent可以拥有与其它Agent之间通讯的能力;4、如果需要,Agent可以应用人工智能的技术。作者在Coad的方法的基础上进行改进,引入Agent的概念。第一步,标识对象。从问题空间、文字资料和图片资料入手,寻找结构、其它系统、设备、记住的事件、扮演的角色、地点及组织单元,考虑需要的记忆、需要的服务、公共属性、公共服务及基本需求,剔除不必要的记忆或服务、单个的实例和派生的结果,用单个名词或形容词+名词来命名。第二步,标识结构。分类结构表示类一成员组织,反映通用性一专用性。组装结构表示聚合,反映整体和组成部分。把每一个对象考虑成通用的,然后再考虑成专用的,可以标识出分类结构。把每一个对象考虑成一个整体,然后再考虑成一个组成部分,可以标识出树状结构。第三步,标识主题。对每一个结构增加一个相应的主题,对每一个对象增加一个相应的主题,如果主题个数超过7个左右,则进一步精简主题。在主题层分出主题和它们之间的消息连接。第四步,标识Agent。若系统功能简单,不存在并行问题,则可以略过本步和第五步第六步,本方法退化为Coad方法。否则,标识出系统的Agent。可以使用如下方法标识系统gAent的候选者。首先,考虑系统的目标,即系统要做什么。一个复杂的系统的目标通常不止一个。系统的每一个目标都是gAent的候选者。其次,考虑系统中是否存在相互协作或竞争的因素。这种因素也是Agent的候选者。第三,考虑系统中是否存在并行成分。每一个并行成分都是gAent的候选者。第四,考虑系统中是否有人工智能的成分。可以将人工智能的部分作为Agent的候选者。有了候选者之后,要对这些候选者进行筛选。筛选的最主要的标准就是该功能是否具有主动性。即它是否有自己独立的目标,并在没有外来动力的情况下来完成任务。例如,对一个字处理软件来说,定期自动保存文档就是一个主动的任务,而保存文档就是一个被动的任务。其次,该功能是否可以与其它功能并行。如果它只能和其它某个功能串行完成,则其很可能是那个功能的子集。筛选后的功能作为系统的gAent。通常,我们可以用功能的执行者来命名Agent。如Autosaver或AutosaveAgent。第五步,标识每个Agent相关的对象。对于每一个Agent,考虑为了完成该功能必须拥有的资源。在第一步中标识出的对象中找出那些对象是完成本功能所必须的。如果出现所需的对象不在第一步中标识出的对象中,则需要重返第一步。标识完所有Agent的相关对象之后,如果存在这样的对象,它不与任何一个功能相关,则可以考虑去掉该对象。第六步,标识每个功能的工作序列。对于每一个Agent,考虑为了完成功能所要进行的步骤。这通常要从用户那里得到相关的知识。同时,要考虑完成该步骤所必须的资源,必要时返回第五步。第七步,标识对象属性。检查问题空间,将现实中的对象与实际表述该对象的属性联系起来。在分类结构中,公共的属性放在结构的高层,特殊的放在低层。标识和定义实例连接。增加实例连接线;反映问题空间的对应关系;努力获得最少的必要的连接集合。考察与该纯ent相关的功能,根据对象在功能中的作用筛选对象的属性。第八步,标识对象服务。首先表示基本服务—发生(增加、修改、删除和选择)、计一算和监视服务。然后标识附加服务,使用两种方法:1、对象生命历程—定义基本序列,检查每一步的演变,增加服务;2、状态一事件一响应—定义主要的系统状态,列出外界事件及所需要的响应,扩充服务和消息连接。标识消息连接。对己经存在实例连接的实例增加消息连接,然后,检查一个实例需要另一个实例所做的处理,寻找额外的消息连接。考察与该对象相关的gAent,根据对象在其功能中的作用筛选对象的服务。应当注意到,AOA的方法是在OOA的基础上改进得到的,而其产生的模型也不是与OOA的分析模型完全不同的模型。它是对00A的模型的一种扩展。

  第三章面向Agent的设计(AOD)

  1、面向对象的设计的局限
  2、AOO的方法
  3、AOO的优缺点

  第四章面向Agent的编程(AOP)

  1、面向对象的编程语言的局限
  2、面向对象的编程语言的扩展

  第五章引入Agent的UML

  1、UML简介
  2、UML面向Agent的扩展

  第六章 实例

  1、背景
  2、分析
  3、设计

  第七章  结论

  本文提出了一套完整的面向en的软件工程开发方法。这套方法以面向对象的技术为基础,加入Agent的概念,步骤和概念清晰,有很强的实用性。将其应用在实例程序的过程开发中,得到了良好的结果。但是,由于作者的实践经验所限,该方法  尚未在更大、更复杂的系统开发过中使用,因此,存在不足之处在所难免。希望在以后的开发实践中进一步完程善对于大规模的项目,作者认为可以把00SE中用例的概念引入到面向Agent的软件工程中来。作者相信,随着计算机软件的复杂化、并行化、网络化、智能化,面向Agent的软件开发技术必将得到更为广泛的应用。
 


以上论文内容是由硕士论文网为您提供的关于《关于Agcnt软件工程的初步讨论》的内容,如需查看更多硕士毕业论文范文,查找硕士论文、博士论文、研究生论文参考资料,欢迎访问硕士论文网软件工程栏目。