当前位置:首页 > 专题范文 > 公文范文 > 软件工程方法的新进展

软件工程方法的新进展

发布时间:2022-11-02 09:10:04 来源:网友投稿

摘 要:面向Agent软件工程被视为是一种可有效支持复杂系统开发的新颖软件开发范型,面向Agent软件工程(AOSE, Agent-Oriented Software Engineering)将Agent作为基本的概念抽象和计算模型,并以此为基础提供了一系列思想、原则、方法、技术和工具来理解、规约、分析、设计、实现和部署软件系统。在介绍Agent相关理论的基础上,论述了软件工程方法的新进展——面向Agent软件工程研究的新进展。

关键词:软件工程方法;Agent;面向Agent软件工程

中图分类号:TP3-05 文献标识码:A 文章编号:1672-7800(2011)06-0003-02

0 引言 

软件工程方法自20世纪60年代提出以来,出现了多种软件工程方法。软件工程方法的提出主要是为了提高软件开发的效率和质量,是一门非常讲究理论与实际相结合的一门学科。软件工程方法经过五十多年的发展,先后提出了结构化方法、形式化方法和面向对象软件工程方法,其思想和方法越来越成熟。一般认为,软件工程方法经历了下面四代的发展:①面向“过程”( Process-Oriented)的软件工程方法;②面向“模块”(Model-Oriented)的软件工程方法;③面向“对象”(Object-Oriented)的软件工程方法;④面向“Agent”(Agent-oriented)的软件工程。随着计算机技术的飞速发展,软件开发越来越朝着大型化、复杂化和智能化的方向发展,传统的软件工程方法(如O-O)逐渐暴露了其不足,难以适应未来软件工程的发展,因此,基于Agent的技术得到了迅猛的发展。

1 面向Agent软件工程

1.1 Agent

基于Agent的软件工程方法的核心问题是关于Agent的概念。Agent方法最大的特点灵活性非常强,具有智能性和坚定性的特点,对复杂问题、难以协同和预测的问题进行处理的适应性非常强。国际上公认对Agent的定义是:Agent是一个处于特定环境中,能感知并灵活、自主适应环境,可以代理设计者或使用者实现一定任务的具有较高自治能力的计算机实体。Agent的主要目标是接受另外一个实体(人、Agent、系统等)的委托或请求并为之提供帮助和服务,能够在该目标的驱动下主动采取包括社交、学习等手段在内的各种必要的行为。

1.2 基于Agent软件方法与面向对象软件方法的分析比较

1.2.1 Agent与Object的比较

在面向对象技术中,对象是分析的基本单位,它是现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现,是具有唯一对象名和固定对外接口的数据和操作的有机结合,对象的概念更倾向于对客观世界中“物”的抽象,而Agent由于自己的特性,更倾向于对“人”的模拟,它与对象相比,具有至少以下几点本质区别:①Agent是主动的,对象是被动的:对象的方法执行与否是由外部的消息触发所决定,也就是对象是被动执行;对于Agent来说,它改变了对象的“要我做”的被动局面,变成了“我要做”的主动形式,即它在收到外部的请求时,不是盲目地执行,而是根据自身的状态和意愿自主做出是否执行的决定,并且在没有外部刺激的情况下能根据设计目标自主决策,相对对象来说体现了更强的自治性,更接近于人类真实的思维模式;②Agent具有智能性而对象不具有:智能性是只有人类所具有的特性。 Agent模仿人类所具有的学习性、判断性、协作性和自主性等特点,能感知周围环境的变化和接受外部刺激,自主学习,自主决策,不断进步,更好地适应周围环境的变化,并且相互间可以分工协作,组成Agent社会群体;而对象对应的是“物”,不具有这些特性;③Agent是多控制线程,对象是单控制线程:在多Agent系统中,每个Agent都有自己的控制线程,每个Agent都是一个主程序,自成系统,各自决策自身的行为,其运行是并行的,在同一时刻有多个Agent处于活动状态。多控制线程是Agent得以在计算机上实现所必不可少的基础和保障。

1.2.2 基本思想的比较

由于“Agent”是“对象”的升华,是具有自主性、能动性的智能化、拟人化实体,因而,基于Agent的方法不仅继承了面向对象以及面向模块方法的通用性、模块性、重用性、扩展性和移植性等优点,而且更重要的是进一步发展了面向对象和面向模块的方法,提高了软件系统的智能性、协作性、灵活性和自动化水平。面向对象方法的基本出发点是尽可能按照人类认识世界的方法和思维方式来分析和解决问题,其基本思想是从现实世界中客观存在的事物出发,强调直接以事物为中心思考问题、认识问题,根据这些事物的本质特征,将其抽象为系统中的对象,并作为系统的基本构成单位。通过对象、类、继承、封装、消息等基本概念来进行程序设计。基于Agent的基本思想是从现实世界中人类、事物和环境出发,强调以人为中心思考问题,认为事物的属性特别是动态特性在很大程度上受到与其密切相关的人和环境的影响,强调认识、思维与客观事物及其所处环境之间的相互作用。将影响事物的主观与客观特征相结合,并抽象为系统中的Agent,作为系统的基本构成单位,通过Agent之间的合作实现系统的整体目标。

1.2.3 软件性能比较与面向对象方法相比

基于Agent技术开发的软件在以下方面实现了更好的性能:①可靠性与健壮性:在多Agent系统中,若某一Agent出了问题,不能完成任务,系统可临时指派其它Agent完成,充分保障了系统整体目标的实现;而面向对象方法无法实现这一点;②计算效率:多Agent系统中,复杂的任务由多个Agent通过高级协作并行完成,大大提高了效率,面向对象方法没有较好地做到这一点;③可维护性与可重用性:在面向对象技术中,由于对象间联系(基于语法级的低级通信)是通过方法调用实现,所以对于一个类的修改可能需要同时修改与它有调用关系的其它类;而Agent间的交互(基于知识级高级通信)是通过专门的通信语言(如KQML)实现,修改Agent的行为不会影响其它Agent。与对象技术相比,Agent独立性更强,之间的耦合性更弱,因而软件的可维护性与可重用性大大提高。

2 Agent软件工程方法在异地数据同步系统(RDSS)中的应用

异地数据同步系统(RDSS-Remote Data Synchronization System)的主要功能是借助Internet/Intranet网络环境实现异地同质同构或异地异质异构数据库的同步,即当一方数据库的内容发生变化时,系统根据用户定制的任务,可以自动(或手动)将数据库的变化生成E-Mail,并加密、打包,然后以邮件方式送到任务中指定的地点,目的地的接受系统根据传送过来的邮件数据自动更新本地数据库的相应内容。该系统支持ODBC或BDE标准驱动的多种数据库系统(如Oracle、SQL Server、Sybase等)。

本系统是根据基于Agent的软件分析方法来设计的,如图2所示为系统的设计模型,其中箭头表示角色间的协议:每个角色都有自己的责任、权限和协议,其中:系统服务角色:是RDSS系统的核心部分,用于本地系统的基础设置,负责全局的规划和管理,对所有其它角色进行监听,以便及时对各种请求做出反应;任务编译角色:负责对任务脚本进行编辑、编译,并形成任务文件,等待执行;任务解释角色:负责对任务脚本经编译后形成的任务文件进行解释并执行相应的操作;部署角色:主要完成与数据传输相关的数据库和异地数据同步系统的设置及分发,它使与传输相关的数据库触发器、存储过程、缓冲表以及异地数据跟踪系统的脚本、邮件地址、密钥、定时调度等的生成完全自动化;定时角色:根据时间触发任务的角色,自动将任务文件中的任务逐个执行,包括生成待发送的有关文件,也就是我们可以按时或定时地激活其它角色;加密角色:对待发送的有关数据库变化的文件进行加密;E-mail角色:从任务文件中的接收部门中得到流执行的服务和工作流控制数据组成。工作流执行服务也称为业务执行环境,包括一个或多个工作流引擎;工作流控制数据指被工作流执行服务和引擎管理的系统数据;其中,工作流引擎是工作流管理的系统的核心软件组件,它的功能包括创建过程实例并控制其执行,调度各项活动,负责任务的执行和选择等功能。在具体实现时,根据用户的角色为其分配了不同的功能,对于普通用户仅为其设置了文档的浏览和查询的功能;而对于其它的一些高级用户可以参与文档的审批功能;而管理员主要是维护数据层的相关信息和文档工作流的状态的过渡,在实际的运用中,我们采用PB和ASP作为开发工具。实现文档审批功能时为了操作方便性,在数据库设计时为了确认数据库信息是否有更新,设置了标记字段(其值为0或1),而后设置触发器和编写了事件跟踪程序,管理员通过周期性的检查服务器数据发现数据库有更新时,借助于Internet,利用工作流引擎软件组件的功能将信息处理的结果返回到相关的客户端。利用这种基于Web的工作流结构我们已经基本上实现了教务系统文件管理的查询和文档发送审批和接受审批的功能。

3 结束语

虽然软件产业得到了很大的发展,软件工程方法也在不断完善和进步,但软件工程方法的理论发展和应用仍然滞后于硬件的发展,软件工程方法还是制约软件开发的一个关键性瓶颈。Agent方法是目前应用最为广泛和先进的软件方法,但其还是存在不成熟等缺点,在今后很长的一段时间内,将Agent方法不断完善和推广应用还有很长的路要走。

参考文献:

\[1\] 黄震,顾毓清.一种基于代理思想的软件分析模型\[J\].计算机工程,2009(1).

\[2\] 刘大有.Agent研究现状与发展趋势\[J\].软件学报,2009(3).

\[3\] ROGER S PRESSMAN.软件工程——实践者的研究方法\[M\].黄柏素,梅宏,译.北京:机械工业出版社,2007.

\[4\] WOOLDRIDGE M,CIANCARINI P.Agent—Oriented Software Engineering The State of the Art\[C\].In Agent-Oriented Software Engineering, Lecture Notes in AI,2001.

\[5\] LUCK M,MCBURNEY P,SHEHORY O,et al.Agent Technology:Computing as Interaction—A Roadmap for Agent Based Computing\[C\].AgentLink,2005.

\[6\] FRANCO ZAMBONELLI,H VAN DYKE PARUNAK.Towards a paradigm change in computer science and software engineering:a synthesis\[J\].The Knowledge Engineering Review(4).

\[7\] T BERNERS-LEE,J HENDLER,O LASSILA.The Semantic Web\[C\].Scientific American,May2001.

\[8\] S A MCILRAITH,T C SON,H ZENG.Semantic web service\[J\].IEEE Intelligent Systems,16(2).

\[9\] 毛新军,常志明,王戟,等.面向Agent的软件工程:现状和挑战\[J\].计算机研究与发展,2006(10).

\[10\] M WOOLDRIDGE,N R JENNINGS,D KINNY.The gaia methodology for agent-oriented analysis and design\[J\]. International Journal of Autonomous Agents and Multi-agent System,2008(3).

(责任编辑:王钊)

推荐访问:软件工程 新进展 方法

版权所有:袖书文档网 2002-2024 未经授权禁止复制或建立镜像[袖书文档网]所有资源完全免费共享

Powered by 袖书文档网 © All Rights Reserved.。备案号:鲁ICP备20026461号-1