一、引言
目前有很多面向Agent软件工程方法.包括Gala方法.KAOS方法,AUML方法等。Gaia方法是一种通用的Agent系统建模方法.既支持对Agent社会性的分析.又支持对单个Agent的分析。KAOS方法是对传统的软件工程的一种延续,它主要研究如何从用户提出的粗糙多义的需求目标中分析出实现这些目标所需求的基本组件及其交互关系,以及与实现这些组件相关的各类资源和约束条件等,采用目标驱动的方式获取用户需求,可以比较全面地获取系统的功能需求和非功能需求。但由于Gaia方法并没有考虑如何更好地进行需求获取.在系统建模的过程中对整个系统和组织的需求把握不完整。KAOS方法并不是一种纯粹的面向Agent软件开发方法,Agent只是作为一种辅助概念引入该方法的.在获取系统Agent时容易产生冗余定义。因此将KAOS方法和Gaia方法相结合.从组织以及用户两个角度共同来处理用户需求问题,使其既能够捕获系统的功能需求,也能够捕获系统的非功能需求,既能够对目标建立模型,也能够对Agent建立模型,从而更加准确的捕获用户需求。基于上述原因,本文以百货业商务智能系统为对象,探索了以Gaia方法为主.KAOS方法在需求获取阶段对Gaia方法进行补充的途径.并借鉴传统软件开发方法建模过程.定义KAOS—Gala方法的生命周期,扩充Gaia方法原有的工作范围。
二、KAOS方法与Gala方法
KAOS方法的目的是为需求工程的整个过程提供一个有效的需求分解、精化、建模的分析方法。KAOS方法以目标为核心分析对象.通过对需求目标的分析建立需求描述模型。为了使这个方法更接近于风险承担者之间交流和分析需求的方式.KAOS给予一个面向目标的过程。目标易于理解和交流.它描述了问题而不是解决方案.可以在不同的抽象层次上改进,它允许进行局部的和渐增的分析过程,这样可以保持全局的一致性。KAOS方法具有以下优点.(1)以目标为核心的分析方法。(2)目标表达需求的抽象形式与具有更高抽象程度的Agent相一致。{3)目标作为用户提出需求的一种直接方式,让用户和开发者双方都能够很好地理解.(4)通过“HOW”和”WHY“的提问.自上而下和自下而上地分解初始目标,较好地保证了需求目标的完整性。(5)采用多层描述语言、易于理解、方便修改、扩展灵活。
三、KAOS方法与Gaia方法的结合
KAOS—Gaia方法是将KAOS方法和Gaia方法在一定程度上的结合,同时借鉴现有的软件工程方法和建模语言对这两种方法的一种改进和完善。KAOS-Gaia方法整体包括两大阶段:系统分析阶段和系统设计阶段,所涉及的模型包括目标模型.组织模型、环境模型.角色模型.交互模型、结构模型、Agent模型以及服务模型(见图1)。
五、基于Java的Agent开发框架与Agent实现
由于Java语言天然的平台无关系属性,采用JADE来开发Agent系统可以增加系统的可移植性。JADE中的Agent采用ACL的语言来实现通讯。ACL中定义了Agent问的通讯目的.也就是Agenl行为方式的描述,表示发送者希望通过发送该消息而达到的目的。在ACL中定义的描述有REQUEST(发送者希望接受者执行该行动),INFORM 发送者希望接受者知道这个事实),QUERY—IF(发送者希望知道是否达到既定的状态).CFP《需要接受者给出建议和意见),ACCEPT—PROPOSAL,PROPOSE.REJECT—PROPOSAL表示发送者和接受者在进行协商。在JADE框架下实现部分Agent系统,以下列举了实现系统中抽象Agent类.联营核算Agent类的核心代码。该系统中所有的Agent类都继承了JADE中所定义的Agem基类。
六、结束语
本文采用KAOS-Gaia方法对基于主体的商务智能系统进行系统分析和设计.采用目标驱动的KAOS方法对系统进行需求获取。以百货业商务智能系统为研究目标,对该商业系统中的中央结算MAS进行详细的需求获取.分析.设计和实现。KAOS—GAlA方法在整个系统建模的过程中基本上是采用了线性模式。
CIO之家 www.ciozj.com 公众号:imciow