如何绘制UML用例图-UML Use Case Diagram?

摘要:用例图是UML中最简单,使用最高频的图之一,它通常用于诠释“这个软件做了什么”。用例图的的表达非常简单并且通俗易懂,不论研发、产品、测试,还是完全不懂软件的外行,用例图基本都能被看懂。
.wj_nav { display: inline-block; width: 100%; margin-top: 0; margin-bottom: 0.375rem } .wj_nav_1 { padding-left: 1rem } .wj_nav_2 { padding-left: 2rem } .wj_nav span { display: inline-block; margin-right: 0.375rem; color: rgba(102, 102, 102, 1) } .wj_nav a, .wj_nav a:link, .wj_nav a:visited { color: rgba(51, 51, 51, 1); text-decoration: underline } .wj_nav a:hover { color: rgba(255, 102, 0, 1); text-decoration: none } .wj_title_1 { display: inline-block; width: 100%; margin-bottom: 1rem; border-left: 0.375rem solid rgba(255, 102, 0, 1); background-color: rgba(232, 232, 232, 1); font-size: 1.5rem; padding: 0.3125rem 0.625rem } .wj_title_2 { display: inline-block; width: 100%; font-size: 1.25rem; font-weight: bold; margin-bottom: 1rem } .wj_title_3 { display: inline-block; width: 100%; font-size: 1rem; font-weight: bold; margin-bottom: 1rem } .wj_cont { line-height: 180%; margin-bottom: 1rem; font-size: 1rem } .wj_img { display: inline-block; width: 100%; margin-bottom: 1rem } .wj_code { margin-top: 0 !important; margin-bottom: 1rem !important; font-size: 0.875rem !important } .wj_table { border: 1px solid rgba(255, 136, 56, 1); border-collapse: collapse; margin-bottom: 1rem } .wj_table tr { display: table-row; vertical-align: inherit } .wj_table tr th { display: table-cell; vertical-align: inherit; font-weight: normal; border: 1px solid rgba(255, 136, 56, 1); padding: 5px 10px; background-color: rgba(255, 102, 0, 1); color: rgba(255, 255, 255, 1); text-align: left } .wj_table tr td { display: table-cell; vertical-align: inherit; border: 1px solid rgba(255, 136, 56, 1); padding: 0.3125rem 0.625rem; background-color: rgba(255, 255, 255, 1); text-align: left } .wj_link, .wj_link:link, .wj_link:visited { color: rgba(51, 51, 51, 1); text-decoration: underline } .wj_link:hover, .wj_link:active { color: rgba(255, 102, 0, 1) } .wj_watermark, .wj_watermark :link, .wj_watermark :visited, .wj_watermark :hover, .wj_link:active { color: rgba(255, 255, 255, 1) !important; cursor: default !important } .wj_important { font-weight: bold; color: rgba(255, 102, 0, 1) } 导航 1前言 2UML用例图中的元素 2.1用例 2.2参与者 2.3系统 2.4子系统 3UML用例图中的关系 3.1关联关系 3.2包含关系 3.3扩展关系 3.4泛化关系 3.5依赖关系 1 前言 在建筑行业,大到百层的摩天大楼,小到两层的乡间别墅,在施工之前都需要设计。地基挖多深,使用什么样的主体框架,承重多少,客厅与卧室如何连通,厨房的排烟管在什么位置......建筑行业先设计后施工已经成为标准范式,即使盖一间公园的厕所,如果没有设计图纸,也会让人觉得不可思议,工人们更不知道如何动手。 反观软件行业,我们离传统的建筑设计,差的就不是一星半点了。以我自己的亲身经历为例,从业二十年间,从十来人的创业公司,到上万人的上市公司,真正把软件设计规划好的,少之又少,其中主要原因是管理决策者们很难提前意识到软件架构设计的重要性,另外在中国,一部分开发人员经历了项目的磨砺刚具备了设计经验,但35岁年龄已到,他们被迫转去了其它岗位...... 建筑设计有上千年的历史了,而软件诞生不过区区几十年,虽然软件设计的思想、方法、工具无法媲美建筑领域的千年沉淀,但在软件设计中,UML无疑是最闪亮的那颗星。 我们知道图的表达能力远大于文字,在软件设计中,UML是图形表达的唯一通用标准,意味着使用不同技术的开发者之间,比如Python与C++开发者,不同的软件岗位之间,比如产品与开发,开发与测试,UML都是大家的通用沟通语言,并且以图形化的方式传递信息。 用例图是UML中最简单,使用最高频的图之一,它通常用于诠释“这个软件做了什么”。用例图的的表达非常简单并且通俗易懂,不论研发、产品、测试,还是完全不懂软件的外行,用例图基本都能被看懂。来源:https://www.wubayue.com 2 UML用例图中的元素 2.1 用例 用例(Use Case)为椭圆形,可表示功能、动作、行为、过程等。 2.2 参与者 参与者(Actor)为人形,表示参与交互的角色,可为人、事物、外部系统等。 2.3 系统 系统也称为系统边界(System Boundary),其中集合了一系列相关的功能,有助于明确系统的功能范围。 2.4 子系统 子系统(Subsystem)用于在系统中划分更小颗粒度功能的集合。来源:https://www.wubayue.com 3 UML用例图中的关系 3.1 关联关系 关联(Association)表示两个元素之间发生信息交互/协作,关联可带有方向性。 3.2 包含关系 包含(Include)表示整体与部分之间的关系,使用由整体到部分的虚线。 3.3 扩展关系 扩展(Extend)表示一个用例对另一个用例行为的增强。注意箭头方向为扩展用例到基用例,这也表明扩展用例占据主导权,什么时候扩展如何扩展均取决于扩展用例。 3.4 泛化关系 泛化(Generalization)可视为面向对象编程中的继承/实现关系,通常用于表示抽象与具体。 3.5 依赖关系 依赖(Dependency)即使用关系,为单方向的虚线。来源:https://www.wubayue.com <全文完>