一、鲁棒图简介
鲁棒图虽然是用例技术中的一种,属于系统设计方面的范畴,而其他用例技术包括用例图、用例简述、用例规约(详细的业务交互规则描述),这些是属于需求分析阶段的范畴。鲁棒图的作用是用例实现,这种实现是指逻辑实现,而不是开发阶段的编码实现。它通过3种类图(注意:这里的类图不是 OOM种的CLASS 图,而是分类的意思):边界类、控制类、实体类。如果用MVC模型种的角色组件来类比这3种分类,那就是:
边界类 -》V(视图) ,
控制类 -》C(控制器) ,
实体类 -》M(模型)
1.边界类
主要描述外部环境和目标系统之间的交互进行建模。边界对象负责接收外部输入,处理内部内容的解释,并表达或传递相应的结果。这里的外部环境是一个广义范畴,包括键盘、录入界面、终端设备 ,甚至其他第三方系统也可视为边界。 其图形是“ 扶墙的圆圈”,如下图:

2.控制类
主要对用例行为进行封装,描述用例中事件流的控制行为。 其图形是“带逆向箭头的圆圈”,如下图:

3.实体类
主要对信息进行描述,它往往来自领域概念,和领域模型中的对象有良好的对应关系,一般我们理解为持久性数据,如NODB, 关系型数据库等,为便于理解,这里粗略理解为“数据库”。其图形是“靠地的圆圈”,如下图:

二、powerdesigner绘制鲁棒图
这里以powerdesigner 12 版为例,描述 用户登录场景的鲁棒图绘制过程。
(一)准备工作
1.新建一个OOM模型,如下图:  2.选择model菜单下的”Extended Model Definitions…“ 菜单,如下图  显示如下界面,如下图,选择 ”导入“ 图标:  3. 选择 Methodology 标签页,显示Robustness Analysis 对象,勾选左侧的复选框,点击OK.  4.可以看到工具箱中会增加这3类图标,如下图: 
(二)绘制用户登录场景的鲁棒图
绘制前,识别出系统中哪些用例行为与这3类相对应,这里 ,用户登录界面就属于边界类,系统进行业务规则校验,鉴定登录用户身份的合法性这个过程就是控制类负责的事情 ,录入的登录名与密码怎么知道数据对不对,这个就需要同数据库中的用户数据进行比对,显然,实体类就是用户数据表的数据了。控制类对身份数据核查后,会有2种结果 ,1是合法,跳转到首页界面,另一种是不合法,如用户名不存在或密码不正确,跳转到登录失败界面。
对应的用例图如下: 
1.分别从工具箱拉取用户、边界类3个,控制类1个、实体类1个,修改对应的名称,如下图:

2.绘制连接线,如下图 ,箭头方向代表事件流的处理方向,注意方向。

|