字号: 小 中 大 |
推荐给好友
上一篇 |
下一篇
基于UML的工作流管理系统分析
发布: 2009-10-30 11:15 |
作者: 不详 |
来源:
领测软件测试网采编 |
查看: 32次 | 进入软件测试论坛讨论
图3表示过程监督
用例图。其中的活动者包括EnactmentDB(工作流运行
数据库)与engineContainer(引擎容器)。用例有EngineQuery(对引擎的查询)、ProcessDefQuery(对过程定义信息的查询)、EngineContainerQuery(引擎容器运行状况的查询)、ProcessInstanceQuery(对过程实例进行查询)、ActivityInstanceQuery(对活动实例进行查询)、WorkItemQuery(对工作项进行查询)、TransitionQuery(对转移信息查询)。
这里仅对用例ProcessInstanceQuery 进行详细功能分析,对其余用例的分析方法与之类似。
ProcessInstanceQuery 是对系统中的过程实例进行查询,主要包含如下内容:取得过程实例列表:得到系统中的所有过程实例的一个列表;从过程实例列表中取得一个过程实例的信息;根据给定的过程实例编号得到该过程实例的详细信息;关闭已经打开的过程实例列表;取得系统中过程实例的各种状态的一个列表;根据给定的过程实例编号查询其状态;关闭打开的过程实例列表;取得系统中过程实例的各种属性信息的列表。
5.2 创建交互视图
交互视图描述了实现系统行为角色之间的消息交换序列。分类角色是对交互中充当特殊角色的对象的描述。交互视图提供了系统中行为在全局的描述,显示了多个角色间的控制流程。交互视图用侧重点不同的两种图来显示:顺序图和协作图。
消息指角色间的单向通信,从发送者到接收者的携带信息的控制流。消息可能带有角色间传递值的参数。
顺序图和协作图均显示了交互,但它们强调了不同的方面。顺序图显示了时间顺序,但角色间的关系是隐式的。协作图表现了角色之间的关系,并将消息关联至关系,但时间顺序由于用顺序号表达,并不十分明显。每一种图应根据主要的关注焦点而使用。
a.顺序图
顺序图表示了随时间安排的一系列消息。每个分类角色显示为一条生命线,代表整个交互期间上的角色。消息则显示为生命线之间的箭头。顺序图可以表达场景,即一项事务的特定历史。
顺序图以二维图表来显示交互。纵向是时间轴,时间自上而下。横向显示了代表协作中单个对象的分类角色。每个对象用方框表示,对象的名字在方框内部,并在名字的下方加下划线。每个分类角色表现为垂直列-生命线。在角色存在的时间内,生命线显示为虚线;在角色的过程激活时间内,生命线显示为双线。
消息显示为从一个角色生命线出发至另一个角色生命线的箭头,箭头用从上而下来的时间顺序来安排。
顺序图的一个用途是显示用例的行为序列。当行为被实现时,每个顺序图中的消息同对象的操作或状态机中迁移上的事件触发相一致。
图4 表示处理请求用例的顺序图。图中五个方框分别表示五个对象:ProcessMonitor、EngineManager、Engine、EntactmentDB、Logfiles。这个用例是由ProcessMonitor 接收用户操作,再将这些操作转换成固定的请求,发送给引擎执行而产生的。
当ProcessMonitor 接收到用户在界面上所作的操作后,将这些操作转换为固定的命令请求,发送给EngineManager。EngineManager 再根据接收到命令的类别,将命令分发给不同的Engine。Engine 则具体执行相应的命令。Engine 执行完命令后,通知EntactmentDB 修改相应的数据。接下来,Engine 再通知Logfiles 将所作的操作记录下来,以供以后查询。最后,Engine 直接将结果返回给ProcessMonitor,由ProcessMonitor将结果包装,显示给用户。
b.协作图
协作图对交互中存在意义的对象和链建模。对象和链仅在提供的上下文中存在意义。分类角色描述了对象,关联角色描述了协作中的链。协作图通过图形的几何排布显示交互中的角色。消息显示为附属在连接分类角色的关系直线上的箭头。消息的顺序由消息描述前的顺序号来表示。
协作图的一个用途是表现操作的实现。协作显示了操作的参数和局部变量,以及更永久性的关联。当行为被实现时,消息的顺序与程序的嵌套调用结构和信号传递一致。