博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UML——用例图
阅读量:2241 次
发布时间:2019-05-09

本文共 1166 字,大约阅读时间需要 3 分钟。

用例图的含义:

  用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的视图。用自己的话就是,外部参与者能够看到系统以及子系统的系统的功能的模型图。

用例图的构成:

  用例图由参与者、参与者(Actor)、用例(Use Case)、系统边界、关系组成。

参与者:

  参与者表示系统或者系统交互者中所扮演的角色,这个角色可是人,也可以是事物。但是这里需要注意的是描述的是事物或者人所表示的角色,而不是人或者物的本身。例如:小明和图书馆的关系,他既可以是管理者,来管理图书馆,也可以是借阅者,他扮演的是两种角色。因此在话用例图时,参与者要写借阅者或者管理者,不能写小明。其命名时一般都是名词。

用例:

  用例就是参与者想要系统实现的功能。其命名一般都是动词

关系:

  表示参与者和系统之间的关联关系。一般都是有参与者指向用例。

  在用例图中,关系包括三种:关联、包含、泛化、扩展。

——关联关系只是用在参与者和用例之间。

——泛化可以用在参与者和用例之间。

——包含和扩展只会用在用例之间。

参与者之间的泛化关系

  泛化就就如同继承,或者说就是继承的另一种说法。例如,机房收费系统中,有一般用户、操作员、管理员。这样我们经过总结,就知道三者之间有共同的特征——用户。通过泛化,来描述参与者之间的共同行为。

 

用例间的泛化关系

  用例与用例之间也存在着泛化关系,通常用于表示同一功能下(父用例)的具体实现(各个子用例)。例如机房收费系统中,查询功能和子功能之间的泛化关系。

        

包含关系

  包含关系,就是前面的基本用例必须拥有被包含的用例,如果没有了被包含的用例,这个基本用例的功能是不完整的,也即使说,(被包含用例)非要不可。例如机房收费系统中的操作员,基本用例(编辑信息)与被包含用例(添加学生信息,修改学生信息,删除学生信息)之间的关系。

  经过百度查询:包含关系的划分有两个好处:一是被包含用例被抽取出来,基本用例得以简化;二是可以抽象出公共事件流,实现代码复用。

扩展

  扩展用例实在基本用例的基础上扩展的,扩展用例相对基本用例是独立的,也就是说,可有可无。例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新行为。

        

对比包含关系和扩展关系

共同点:

  扩展用例与包含用例都是基用例的一部分

  基本用例不执行,扩展用例与包含用例都不会执行

  扩展用例可以扩展多个基本用例,包含用例可以被多个基本用例包含

区别:

  扩展关系中基本用例的基本流执行时,扩展用例不一定执行,即可有可无。

  包含关系中基本用例的基本流执行时,包含用例一定会执行。即缺一不可。

系统边界:

  参与者一般在系统边界外,用例一般在系统边界内。

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-24》5.最长回文子串
查看>>
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>
Leetcode C++《热题 Hot 100-29》22.括号生成
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>
内存堆与栈
查看>>
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
查看>>
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
查看>>