文章来源:名易软件本文研究如何采用面向Agent分析设计方法对百货业商务智能系统进行分析、设计和实现。系统建模过程首先采用KAOS方法获取系统的功能性需求和非功能性需求,然后采用Gaia方法在KAOS方法所获取的目标模型的基础上进一步完成系统建模工作,并采用基于Java的Agent开发框架来完成系统功能的实现,实现了系统的平台无关性,良好的可移植性。 一、引言目前有很多面向Agent软件工程方法,包括Gaia方法、KAOS方法,AUML方法等。Gaia方法是一种通用的Agent系统建模方法,既支持对Agent社会性的分析,又支持对单个Agent的分析。KAOS方法是对传统的软件工程的一种延续,它主要研究如何从用户提出的粗糙多义的需求目标中分析出实现这些目标所需求的基本组件及其交互关系,以及与实现这些组件相关的各类资源和约束条件等,采用目标驱动的方式获取用户需求,可以比较全面地获取系统的功能需求和非功能需求。但由于Gaia方法并没有考虑如何更好地进行需求获取,在系统建模的过程中对整个系统和组织的需求把握不完整。KAOS方法并不是一种纯粹的面向Agent软件开发方法,Agent只是作为一种辅助概念引入该方法的,在获取系统Agent时容易产生冗余定义。因此将KAOS方法和Gaia方法相结合,从组织以及用户两个角度共同来处理用户需求问题,使其既能够捕获系统的功能需求,也能够捕获系统的非功能需求,既能够对目标建立模型,也能够对Agent建立模型,从而更加准确的捕获用户需求。基于上述原因,本文以百货业商务智能系统为对象,探索了以Gaia方法为主,KAOS方法在需求获取阶段对Gaia方法进行补充的途径,并借鉴传统软件开发方法建模过程,定义KAOS-Gaia方法的生命周期,扩充Gaia方法原有的工作范围。二、KAOS方法与Gaia方法KAOS方法的目的是为需求工程的整个过程提供一个有效的需求分解、精化、建模的分析方法。KAOS方法以目标为核心分析对象,通过对需求目标的分析建立需求描述模型。为了使这个方法更接近于风险承担者之间交流和分析需求的方式,KAOS给予一个面向目标的过程。目标易于理解和交流,它描述了问题而不是解决方案,可以在不同的抽象层次上改进,它允许进行局部的和渐增的分析过程,这样可以保持<优麦电子商务论文>全局的一致性。KAOS方法具有以下优点:(1)以目标为核心的分析方法。(2)目标表达需求的抽象形式与具有更高抽象程度的Agent相一致。(3)目标作为用户提出需求的一种直接方式,让用户和开发者双方都能够很好地理解。(4)通过“HOW”和“WHY”的提问,自上而下和自下而上地分解初始目标,较好地保证了需求目标的完整性。(5)采用多层描述语言,易于理解、方便修改、扩展灵活。三、KAOS方法与Gaia方法的结合KAOS-Gaia方法是将KAOS方法和Gaia方法在一定程度上的结合,同时借鉴现有的软件工程方法和建模语言对这两种方法的一种改进和完善。KAOS-Gaia方法整体包括两大阶段:系统分析阶段和系统设计阶段,所涉及的模型包括目标模型、组织模型、环境模型、角色模型、交互模型、结构模型、Agent模型以及服务模型。面向Agent的KAOS-Gaia方法是KAOS方法和Gaia方法在系统建模方面的结合。KAOSGaia方法在系统分析和设计过程中建立目标模型、组织模型、环境模型、角色模型、交互模型、Agent模型和服务模型。在模型描述上,该方法还借鉴了UML进行完善。将两者结合对系统建模具有以下优势:(1)通过目标驱动的KAOS方法来对系统整体目标进行需求获取,在需求方面既获取了功能性需求,也获取了非功能性需求,建立了目标模型,可以整体地把握分析的目标是否与用户目标一致。(2)目标模型有利于需求变更和软件复用。(3)KAOS-Gaia将Gaia方法的工作范围扩大,包括需求获取、分析、结构设计、详细设计四个阶段。(4)根据目标模型可以更完整地获取系统中的环境资源、角色以及角色之间的关系,从而建立环境模型、角色模型和交互模型。(5)Gaia方法以Agent作为主要研究对象,在分析的过程中注重角色和Agent之间的关系,从而避免了KAOS方法本身在面向Agent建模的过程中没有将Agent作为主要研究对象的不足。(6)采用传统软件工程的方法完善Gaia方法在详细设计阶段的设计。四、基于Agent的商务智能系统分析与设计建立全局目标模型。根据系统的业务需求和用户需求,建立系统全局目标模型。根据系统目标模型,将商务智能系统的组织分解成:前台收银(POS)系统、信息管理系统、中央结算系统、人事系统、、决策支持系统以及客户关系管理系统。各个子组织拥有各自相对独立的目标。建立系统的环境模型。环境是指系统中的资源。对于中央结算MAS中,费用(包括费用的各种单据)、合同(与签订的合同)、销售明细(每天销售的小票或者其它销售单据)、结算单(作为供应商的付款凭证)、促销档案(根据供应商或者商场的需求,业务部门或者其它部门会有一定的促销计划以促进商品的销售)等都可以看成是该系统的环境。建立初级的角色模型和交互模型。从目标分解以及环境模型中可以分析出和结算单和联营核算目标相关的角色。为了表示这些角色,采用了一种抽象的、半形式化的方法来描述角色的能力以及行为,通过定义权利和责任两种属性来表示角色。可以利用角色模式来描述角色。根据角色模型中涉及的协议,详细地对协议进行描述,即确定协议的合作者、协议的输入和输出以及对于协议的简单描述。选择和设计组织结构,并完善角色模型和交互模型。目前大多数的系统的管理模式属于串行管理模式,这种模式对于静态的企业结构和相对平稳的外部环境是适用的,但是,在竞争、合作、动态的环境中,由于串行的计划与控制过程往往滞后于环境的变化,所以这种方式已不再适用。而且,在各个角色之间存在着各种交互,如果采取串行结构通讯量比较大,构造的系统就会比较复杂。通过分析,选择层次式的拓扑结构来构造中央结算系统,而且由于各个角色具有不同的特长,因此采用工作专业化的控制体制,即各个不同的角色具有自己独特的技能和专长。整体来说本组织将采用基于协调中心(Coordinator)的管理模式,通过协调中心,实现任意两个实体之间的信息通信,从而实现整个系统协调、调度与控制,更好的降低了系统的协调成本。建立Agent模型。根据系统结构设计阶段设计的组织结构,可以清晰地知道各个角色之间的关系,加上以往系统的设计经验,将中央结算MAS系统中的Agent分为信息资源Agent、业务活动Agent、计算分析Agent、协调控制Agent和接口Agent五类。在Agent模型中,确定Agent与角色之间的关系,根据Agent所执行的角色的协议和活动属性的定义,可以分析清楚Agent的<优麦电子商务论文>工作流程,从而建立Agent的服务模型。五、基于Java的Agent开发框架与Agent实现由于Java语言天然的平台无关系属性,采用JADE来开发Agent系统可以增加系统的可移植性。JADE中的Agent采用ACL的语言来实现通讯。ACL中定义了Agent间的通讯目的,也就是Agent行为方式的描述,表示发送者希望通过发送该消息而达到的目的。在ACL中定义的描述有REQUEST(发送者希望接受者执行该行动),INFORM(发送者希望接受者知道这个事实),QUERY_IF(发送者希望知道是否达到既定的状态),CFP(需要接受者给出建议和意见),ACCEPT_PROPOSAL,PROPOSE,REJECT_PROPOSAL表示发送者和接受者在进行协商。在JADE框架下实现部分Agent系统,以下列举了实现系统中抽象Agent类,联营核算Agent类的核心代码。该系统中所有的Agent类都继承了JADE中所定义的Agent基类。六、结束语本文采用KAOS-Gaia方法对基于主体的商务智能系统进行系统分析和设计,采用目标驱动的KAOS方法对系统进行需求获取。以百货业商务智能系统为研究目标,对该商业系统中的中央结算MAS进行详细的需求获取、分析、设计和实现。KAOS-GAIA方法在整个系统建模的过程中基本上是采用了线性模式。
信息发布:广州名易软件有限公司 http://www.myidp.net
|