识别UML用例之间的关系

上传人:夏** 文档编号:564923013 上传时间:2022-11-30 格式:DOCX 页数:4 大小:62.42KB
返回 下载 相关 举报
识别UML用例之间的关系_第1页
第1页 / 共4页
识别UML用例之间的关系_第2页
第2页 / 共4页
识别UML用例之间的关系_第3页
第3页 / 共4页
识别UML用例之间的关系_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《识别UML用例之间的关系》由会员分享,可在线阅读,更多相关《识别UML用例之间的关系(4页珍藏版)》请在金锄头文库上搜索。

1、【转】识别用例之间的关系用例间的三种关系:(1) 扩展(extends):用例B extends用例A,表示用例B是用例A在某种特定情况下 可能会出现的扩展用例。例如:老王进城办事, 2 小时就可以回去,在这2小时内内急时就 会去上厕所。上厕所用例是进城用例的扩展,因为不上厕所老王进城办事也可完成。(2) 包含(in eludes):用例A in eludes用例B,表示没有了用例B,用例A本身也就不 完整了。例如:还是老王进城,他从海南来北京办事,3天才能回去,那么这种情况下进城 用例与上厕所用例的关系就应该是包含关系了。( 3)泛化:泛化关系指的是同一业务目的的不同技术实现。例如:老王进城

2、,他可以坐飞 机,可以坐火车,还可以走路,那么进城用例就泛化为坐飞机、坐火车和走路三个用例了, 它们之间存在层级关系。总的来看,扩展可以“冻结”基本用例以保持稳定(因为扩展用例通常是不确定的);包含可 以提供公共交互,提高“复用”;泛化是同一业务目的的不同技术实现。用例之间除了上述三 种关系不再有其他关系,用例之间不能通讯。下面是另外一种解释,用例子来描述。4.2 用例之间的关系 用例描述的是系统外部可见的行为,是系统为某一个或几个参与者提供的一段完整的服务。 从原则上来讲,用例之间都是并列的,它们之间并不存在着包含从属关系。但是从保证用例 模型的可维护性和一致性角度来看,我们可以在用例之间抽

3、象出包含(inelude)、扩展 (extend)和泛化(generalization)这几种关系。这几种关系都是从现有的用例中抽取出公 共的那部分信息,然后通后过不同的方法来重用这部公共信息,以减少模型维护的工作量。421包含(include)包含关系是通过在关联关系上应用vvinelude构造型来表示的,如下图所示。它所表示 的语义是指基础用例(Base)会用到被包含用例(Inclusion),具体地讲,就是将被包含用例 的事件流插入到基础用例的事件流中。包含关系是UML1.3中的表述,在UML1.1中,同等语义的关系被表述为使用(uses),如 下图。在 ATM 机中,如果查询、取现、转

4、帐这三个用例都需要打印一个回执给客户,我们就可以 把打印回执这一部分内容提取出来,抽象成为一个单独的用例打印回执,而原有的查询、 取现、转帐三个例都会包含这个用例。每当以后要对打印回执部分的需求进行修改时,就只 需要改动一个用例,而不用在每一个用例都作相应修改,这样就提高了用例模型的可维护性。在基础用例的事件流中,我们只需要引用被包含用例即可。查询-基本事件流1. 用户插入信用卡2. 输入密码3. 选择查询4. 查看帐号余额5. 包含用例打印回执6. 退出系统,取回信用卡 在这个例子中,多个用例需要用到同一段行为,我们可以把这段共同的行为单独抽象成为一 个用例,然后让其他的用例来包含这一用例。

5、从而避免在多个用例中重复性地描述同一段行 为,也可以防止该段行为在多个用例中的描述出现不一致性。当需要修改这段公共的需求时, 我们也只需要修改一个用例,避免同时修改多个用例而产生的不一致性和重复性工作。 有时当某一个用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流 抽象成为一个被包含的用例。这种情况类似于在过程设计语言中,将程序的某一段算法封装 成一个子过程,然后再从主程序中调用这一子过程。422扩展(extend)扩展(extend)关系如下图所示,基础用例(Base)中定义有一至多个已命名的扩展点,扩 展关系是指将扩展用例(Exte nsio n)的事件流在一定的条件下

6、按照相应的扩展点插入到基 础用例(Base )中。对于包含关系而言,子用例中的事件流是一定插入到基础用例中去的, 并且插入点只有一个。而扩展关系可以根据一定的条件来决定是否将扩展用例的事件流插入 基础用例事件流,并且插入点可以有多个犷压用例芸础用例例如对于电话业务,可以在基本通话(Call)业务上扩展出一些增值业务如:呼叫等待(Call Waiti ng)和呼叫转移(Call Tra nsfer)。我们可以用扩展关系将这些业务的用例模型描述如话基本疣:1拔号2:連立通话蹄舉通话4挂机扩展点:叫増值业务伙扩展点定殳在基本疣 歩聚1逸用例在杆増佰业务”扩展点.上扩 展了基本通话用例基本凉:1.妇果

7、应答方正忙,用铃声提示应 答方并保持拨号呼叫-i夷用例在“増值芻”扩展点上扩 展了基本通话用例基本凉1.如果应答方无应答,按应答方 设置转移吁叫匚在这个例子中,呼叫等待和呼叫转移都是对基本通话用例的扩展,但是这两个用例只有在一 定的条件下(如应答方正忙或应答方无应答)才会将被扩展用例的事件流嵌入基本通话用例 的扩展点,并重用基本通话用例中的事件流。值得注意的是扩展用例的事件流往往可以也可抽象为基础用例的备选流,如上例中的呼叫等 待和呼叫转移都可以作为基本通话用例的备选流而存在。但是基本通话用例已经是一个很复 杂的用例了,选用扩展关系将增值业务抽象成为单独的用例可以避免基础用例过于复杂,并 且把

8、一些可选的操作独立封装在另外的用例中。423 泛化(generalization)当多个用例共同拥有一种类似的结构和行为的时候,我们可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。在实际应用中很少使用泛化关系子用例中的特殊行为都可以作为父用例中的备选流存在。以下是一个用例泛化关系的例子,执行交易是一种交易抽象,执行房产交易和执行证券交易都是一种特殊的交易形式。用例泛化关系中的事件流示例如下:执行交易基本疣:1. 客户登录验证用户身份2. 客户选择交易客户选择交易类型3. 客户选择帐号丟统显示客户可用帐号,客户选择4. 执行交易5. 客户开始新的交易如果客户需要执行苴他交易,转至歩骤3.6. 显丁交易洁果系统显示交易结果执siimE易该用例是执行交易用例的一于子用例基本疣:1. 客户登录2. 客户选择交易3. 客户选择帐号4. 执行交易根暹窖尸送择的交系舷期甌定解 人刼淒出5. 客户开始新的交易E.显示交易结矗了毀时的屋作胡舷旳细雹户 解号平銚冕

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号