RUP(Rational Unified Process)提供了一个通用的软件工程生存周期模型。涵盖了软件开发周期的所有法则,可以应用到各种规模各种领域,各种组织的应用开发中,而且重视开发的迭代和渐进的原则。她包括初始,构建,细化,过渡四个阶段。每个阶段都有一系列不断迭代的活动组成:需求,分析,设计,实现,测试。
UML(统一建模语言)是被大家广范接受和非常成熟的面向对象建模的一种工具。UML是基于MOF(原对象模型)的一种建模语言,因此容易扩展。
MESSAGE汲取现有的成熟的OO技术,在此基础上进行扩展而来。AOSE中,agents是对活动对象的类推。当软件具有智能性,有社会能力,目标导向决策等属性时,适合用Agents开发。
MESSAGE建模语言在分析阶段有五种视图。以UML为起始点增加了实体和关系的概念。与对象相比,提供了更高层次的抽象。借鉴知识工程的术语,用标准UML作为数据层次的建模语言,但是提出了知识层次的概念。新增的概念定义在MESSAGE原模型中。包括:
Agent:一个Agent是一个自治的原子实体,他能执行一些有用的功能。功能是一个Agent的服务(services)。服务类似于对象的操作(operation)。自治性的含义是agent的动作不仅仅依赖于外部事件的激发或交互,也可以由自身的动机引起。动机这个属性我们称之为“目的”(purpose)。目的影响着agent是否统一执行一项服务的请求,同时也是服务提供的方式。
组织:一群具有相同目的的Agent。这是一个虚拟的实体,意思是系统没有单个的计算性实体对应组织这个概念。他所提供的服务,所具有的共同目的都是通过构成这一实体的Agent来体现。组织通过Agent间的关系以及行为/协作机制来表达。
角色:角色与Agent之间的关系类似于接口和(对象)类。一个角色描述的是特定上下文中agent的外部特性。一个Agent可能扮演几个角色。多个Agent可能扮演相同的角色。
资源:表达的是非自治性的实体,例如数据库,Agent需要调用的外部程序。与OO建模中的资源概念基本相同。
任务:知识层面的活动(Activity)概念。有一个主要执行者,有多个状态。组合任务由多个子任务组成。UML中的活动图能用来展现子任务之间临时的依赖关系。
交互和交互协议:交互行为发生在具有共同目的的多个参与者之间。共同目的意指问题领域的不同方面必须达到一致。交互协议定义了交互行为的消息模式。
目标(goals,不同于purpose与一个Agent和他的一个状态相关。在Agent的工作空间如果有一个目标呈现,则agent将试图达到这一状态。
分析阶段的视图:组织视图(OV):展示的是具体实体(agent,组织,角色,资源)以及他们之间粗粒度的关系。
目标/任务视图(GTV):展现目标,任务,状态以及他们之间的依赖性。目标和任务都与状态关联。
Agent/角色视图(AV);专注于表现个体Agent和角色。
交互视图(IV):agent和角色之间的每个交互行为。
领域试图(domain view:DV):展示特定系统中有关的领域中明确的规范的概念。
设计阶段主要任务是对分析阶段的概念进行细化以及如何转化为计算机上可实现的实体,包括后期平台相关设计。
设计阶段有很多设计方法。其中包括:1。MAS组织和单Agent架构驱动设计。认为Agent是一个实体而非一个类,可以看作是一个子系统,定义不同agent之间的关系。这一方法有时非常复杂,比如BDI Agent的构建,有时又非常简单,比如定义一个纯粹反应型的Agent。2。面向Agent平台的设计方法。考虑一个Agent可以映射为一个类。因为很多Agent开发工具比如Fipa规范类的JADE,FIPA-OS中,agent是一个java类继承而来。当Agent行为较简单而且可以用经典的状态机来描述的话,这种方法是可行的。这里主要考虑的是怎样组织Agent的交互。
摘自:Deliverable 3 Initial Methodology.EURESCOM Project P907~GI,2000