Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1279976
  • 博文数量: 135
  • 博客积分: 10588
  • 博客等级: 上将
  • 技术积分: 1325
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-18 11:12
文章分类

全部博文(135)

文章存档

2013年(6)

2012年(3)

2011年(11)

2010年(7)

2009年(14)

2008年(6)

2007年(42)

2006年(46)

分类: 项目管理

2006-10-06 14:36:12

这里介绍一种基于Use CaseBDI Agent软件开发过程(以下简称BDI-ASDP)。这里的Use-Case是对OO的一种改进,是一种分析和设计阶段非常重要的工具和方法,它又分为外部用例(External Use Cases)和内部用例(Internal Use Cases)。BDI-ASDP认为Agent是一个具有BDI的实体,专注于构建AgentBDI模型。
BDI-ASDP认为,作为BDI Agents,他们必须拥有明确的要获取的目标或者要操作的事件(愿望);一个用来描述如何实现目标的计划集(意图);一个称作信念的数据集,用来描述环境的状态。
这种方法从两类研究中获取营养。一类研究工作存在于软件工程领域,构建OO系统过程中,CRC卡,UMLuse case,软件模式都是非常有价值的工具。Agent UML是对UML的扩展,AgentUMLFIPA提交的一种规范。BDI-ASDP有效的利用了这些工具,并对其进行了修改和扩展;另一类研究工作是对Agent系统的理论研究,包括JenningsWooldridge等人的基于组织学的用角色来描述一个Agent系统,Kinny的从内部和外部两个视角来对Agent进行描述等等。
BDI-ASDP捕捉BDI的顺序为:D-I-B。首先,利用Agent模型(例如外部用例)从系统需求中提取目标(愿望),然后利用动态模型(内部用力,序列图,活动图)捕捉计划(意图),然后利用数据模型(数据流图)来获取数据(信念)。如图所示,这个过程同我们现实世界中工作的过程相同。
更详细的来看,BDI-ASDP可分为以下数个步骤或阶段(只针对分析和设计阶段),同时这个过程也是迭代的。
第一. 问题声:以系统需求或用户规格说明书提出,描述从用户的视角看,系统所应该提供的功能和服务。
文档格式参考:
功能模块名称;
1.  目标:
2.  输入:
3.  处理过程:
4.  输出:
第二.   企业软件评价:描述系统所运行的环境,当前系统会不会对以前的系统造成影响。
第三.   系统分析(捕捉目标(goals)):使用概要外部用例和详细外部用例在问题领域提取Agent的第一个要素愿望(desires)。这一阶段又可分为概要外部用例和详细外部用例。
1.  概要外部用例(Brief External Use Case):之所以称为外部用例,是因为他可以展示系统外部实体是如何与系统进行交互的。BEUC的主要任务就是利用概要用例技术捕获系统目标。从初始问题声明中捕捉目标,然后分解为一系列的概要用例,然后从每个用例中提取每个系统目标。
案例:
可以提取的目标:1。玩家助手2。发现热点数3。寻找玩家最喜欢的数字。
2.将概要外部用例进一步分解,获得详细外部用例格式,给出更精确地目标描述。例子:

第一.   结构化目标:将目标影射为目标层次图。目标层次图能表现目标之间的关系,同时根据目标的复杂度和重要性将目标进行归类。首先要识别整个系统的总体目标,给与她最高优先权,然后将目标分割为较为合理的子目标,子目标与父目标具有相似的功能,只不过在层次图上位于较下层。为了得到总体目标和子目标,我们需要回溯到第三步和第四步,利用外部用例对目标进行迭代检索。案例:

层次图的文字描述:

1. Helping a player to play the California Super Lotto number

1.1 Finding the hot numbers

1.1.1 Getting the current result

1.1.1.1 Connecting to web sit

1.1.1.2 Determining if there is a newest result

1.1.1.3 Returning the newest result

1.1.2 Getting the past winning numbers

1.1.3 Displaying the hot numbers

1.2 Searching the player’s favorite numbers

1.2.1 Getting the favorite numbers from the player

1.2.2 Getting the past winning numbers

1.2.3 Displaying the search result

第二.   系统设计:最重要的步骤,定义软件Agent以及他们是怎样交互以实现需求的。

1.   内部用例;目标是标出计划(意图)。在外部用例的基础上,将每个服务的场景细节化,以助于我们发现每个目标对应的计划,得到外部用例中并不容易发现的更多的Agent。这一阶段需要找到新的目标和计划。可能应用到Einhorn and Jo创建的Agent模式:(agent identification patterns, agent creational patterns, and agent goal assignment patterns.Agent标志模式,Agent创建模式和agent目标分配模式。

2.   序列图:用来描绘事件顺序的传递和角色之间的关系。用例可以直接转换位序列图,用例中的每个实体可以映射为一个角色,用例中的每次通信或信息的传递都可以转化为一个事件。序列图中,每个参与者就是一个角色(其实就是一个候选的Agent. 现有Agent还不是最终的Agnt,不过是在设计过程中概念上的Agent或者成为候选Agent。我们之所以称之为角色是因为现在我们只分配给她目标,而没有意图和信念)。一个用例一般对应一个或多个序列图。例子如下:

3.   概念Agent活动图: Agent活动图描述了触发角色的所有事件和角色拥有的操作。我们从前面3467步中提取动作绘制活动图。既然一个agent计划是一个活动(Activity)的集合,我们便可以从活动图中收集事件和操作,从而得到了意图。

4.   Agent信念列表:信念是描述环境状态的数据的集合,是意图用来实现目标的知识。我们适应数据流图来发现数据。

根据DFD得到信念后用例表单:

Service:

HotNumber

Goal:

Find hot numbers

Belief:

Hot_Number_Request

Current_Numbers

Past_Number_Request

Past_Numbers

Hot_Numbers

Service:

SearchNumber

Goal:

WinningNumberSearch

Belief:

Search_Number_Request

Expected_Numbers

Past_Number_Request

Past_Numbers

Search_Results

5.   BDI Agent卡片:是一个对Agent及其BDI的定义过程。卡片格式参考:

Agent:

(Name of the agent)

BDI list:

Belief:

(List of the beliefs)

Desire:

(The description of the goal)

Intention:

(The scenario)

Preconditions:

Postconditions:

Extensions:

由此得到Agent类图:

 
阅读(3558) | 评论(8) | 转发(0) |
给主人留下些什么吧!~~