常用UML图及PlantUML代码画图:整体概述及用例图

2023-05-0112:06:47软件工程与架构Comments2,099 views字数 2661阅读模式

整体概述

目的通过使用UML使得在软件开发之前,对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

概念:统一建模语言(Unified Model Language, UML),是由一整套图表组成的标准化建模语言。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

软件:Visio、Visual Paradigm文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

插件:PlantUML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

分类   文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

按展示角度分类文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

在UML系统开发中有三个主要的模型:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

功能模型:从用户的角度展示系统的功能,包括用例图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

动态模型:展现系统的内部行为。包括序列图,活动图,状态图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

按功能分类文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

UML图分为结构图和行为图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

结构图:分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

行为图:分为活动图、用例图、状态机图和交互图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

交互图:分为序列图、时序图、通讯图、交互概览图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

用例图

用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。是系统的蓝图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

通俗些的描述,用例图是用来显示一组用例、参与者以及它们之间关系的图。它描述了用户希望如何使用一个系统。通过用例图可以知道谁是系统相关的用户,他们希望系统提供哪些服务,以及他们需要为系统提供什么样的服务。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

主要作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

  • 用来描述要开发的系统的功能需求和系统的使用场景
  • 促进开发过程中各个阶段工作的进展
  • 用来验证与确认系统需求

概念    文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

参与者(Actor)

参与者也叫角色,它表示了系统的用户的集合。参与者指的不是具体用户本身,而是它在系统中所扮演的角色。如,一个用户在淘宝可以同时是买家和卖家两种角色。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

注意:这里的用户并不特指人,如果我们开发的是公共 API 项目,那么这个时候,API 的调用者就是我们的用户。 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

用例(Use Case)

用例是对一组动作的描述,系统通过执行这些动作将对用例的参与者产生可以看到的结果。用来描述参与者可以感受到的系统服务或者功能。在 UML 中,用例通常用一个椭圆形符号来表示。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

使用用例进行系统需求分析的特点:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

  • 用例是从系统的使用者角度来描述系统中的信息,即在系统的外部所能看到的系统的功能,而不考虑系统内部对该功能的具体实现
  • 用例描述了可见需求,对应一个具体的用户目标。使用用例可以用来划分系统与外部实体的界限文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

  • 用例通常由某个参与者来执行文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

  • 用例把执行结果返回给参与者文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

  • 用例在功能上具有完整性。它从参与者接受输入,再将产生的结果输出给参与者文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

当需要对用例进行详细说明时,可以需要编写用例描述:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

常用UML图及PlantUML代码画图:整体概述及用例图常用UML图及PlantUML代码画图:整体概述及用例图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

用例之间的关系    文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

关联关系(Association)

表示参与者与用例之间的交互,通信途径,任何已放都可发送或接受消息。使用普通箭头的实心线,箭头指向消息接收方。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

常用UML图及PlantUML代码画图:整体概述及用例图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

代码示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

```plantuml@startuml:用户: as user(取款) as uc1user -right-> uc1@enduml```

包含关系(Include)

包含关系指的是两个用例之间,其中一个用例(基本用例)的行为包含了另外一个用例(包含用例)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

在 UML 图中,包含关系用带箭头的虚线表示,并且线上标有<<include>>,箭头的方向是从基本用例到包含用例。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

常用UML图及PlantUML代码画图:整体概述及用例图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

代码示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

```plantuml@startuml:买家: as user(加入购物车) as addList(获取商品库存) as getRest(获取用户购物车数量) as getListNum
user -right-> addListaddList ..> getRest: <<include>>addList ..> getListNum: <<include>>@enduml```

扩展关系(Extend)

扩展关系是对基本用例的扩展,基本用例是一个完整的用例,即使没有子用例参与,也可以完成一个完整的功能。扩展的基本用例中存在一个扩展点,只有扩展点被激活时,子用例才会被执行。扩展关系是从扩展用例到基本用例的关系,它说明扩展用例如何插入到基本用例中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

扩展用例的使用场景:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

表明用例的某一部分是可选行为文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

表明只在特定条件下才执行的分支文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

表明可能有一组行为,其中的一个或多个行为可以在基本用例中的扩展点处插入。所插入的行为和顺序取决于在执行基本用例时与主角进行的交互。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

在 UML 图中,使用带箭头的虚线表示,并且虚线上标有 <<extend>>。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

常用UML图及PlantUML代码画图:整体概述及用例图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

代码示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

```plantuml@startuml:买家: as user(购买商品) as buyProduct(打折) as discount
user -right-> buyProductbuyProduct .right.> discount: <<extend>>@enduml```

泛化关系(Generalization)

泛化关系指的是一般(父用例)与特殊(子用例)的关系。当多个用例共同拥有一种类似的结构和行为时,可以将它们的共性抽象为父用例,其他的用例作为泛化关系中的子用例。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

常用UML图及PlantUML代码画图:整体概述及用例图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

代码示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

```plantuml@startumlleft to right direction' 将默认方向从上到下改为从左到右
:买家: as user(查找商品) as searchProduct(精确搜索) as exactlySearch(模糊搜索) as fuzzySearch
user --> searchProductsearchProduct <|-- exactlySearchsearchProduct <|-- fuzzySearch@enduml```

分组关系

在一些用例图中,用例的数目可能很多,这时就需要把这些用例组织起来。这种情况在一个系统包含很多子系统时就会出现。另一种可能就是,当你按顺序和用户会谈,收集系统需求时,每个需求必须用一个单独的用例来表达,这时就需要某种方式来对这些需求进行分类。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

最直接的方法就是把相关的用例放在一个包中组织起来。一组用例可以放在一个文件夹中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

总结    

综上所述,用例之间存在着一定的关系,这些关系既有联系又有区别,在扩展关系中,基本用例是一个完整的用例,即是可以独立存在的用例。一个基本用例执行时,可以执行,也可以不执行扩展部分。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

在包含关系中,基本用例可能时,也可能不是一个完整的用例。在执行基本用例时,一定会执行包含用例(inclusion use case)部分。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

如果需要重复处理两个或多个用例时,可以考虑使用包含关系,实现一个基本用例对另一个用例的引用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

当处理正常行为的变型而且只是偶尔描述时,可以考虑只用泛化关系;当描述正常行为的变型而且希望采用更多的控制方式时,可以在基本用例中设置扩展点,使用扩展关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38052.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/arc/38052.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定