plantuml-用例图

uml - 用例图

一、定义

用例图(Use Case Diagrame)是UML的一种,主要用来描述用户、需求、系统功能之间的关系,能够充分展示一个外部用户能够观察的系统功能模型图,以一种可视化的直观方式理解系统的功能需求,以便使系统用户更容易理解这些元素的用途,也便于开发人员最终实现这些元素。

二、用例图绘制目的

用例图是跳出当前系统,站在用户的角度去看系统,思考系统功能,这样我们能更加理解业务,表达清楚需求。从用户的视角,我们不会使用专业术语去进行业务的沟通,可以做到真正以用户为中心去获取需求,转化为产品服务。

用例图可以帮助我们更全面的考虑系统内事物之间的互相影响,关注整体的运行规律,而不是只考虑个别事物的情况。

三、用例图的组成元素

在这里插入图片描述

  1. 参与者:是系统外部的一个实体,它以某种方式参与了用例的执行过程。参与者不一定是人,也可以是部门,也可以是外部系统,也可以是其他事物。通常用人形图标表示。

  2. 用例:是对系统的用户需求(主要是功能需求)的描述,用例表达了系统的功能和所提供的服务,说明了系统是如何与最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。通常用椭圆表示。

  • 用例注意事项:
    • 用例粒度的确定,没有标准,只能根据实际情况分析。一个大型系统,可能会有上百个用例,一个小产品,也许只有几个用例。
    • 一个用例是一个完整的使用场景,不是零散的动作步骤。比如,拿起手机打电话是个完整的场景,拿起手机只是一个步骤。
    • 一个用例有一个明确、独立的目标,如果一个用例包括多个目标,则可再逐层细化出子用例。
  1. 系统边界:将系统内外分开,参与者在外面,用例在里面。边界内的用例,就是系统要实现的事情。通常用矩形框表示。
  2. 关系
    1. 关联关系:用一条实线表示,这条实线一般有三种形式:无箭头、有指向用例的箭头、有指向执行者的箭头。箭头的方向代表了数据流向或谁启动谁。
    2. 归纳(泛化)关系:表示参与者与参与者之间、用例与用例之间的关系。一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。
      用带空心箭头的实线表示,箭头指向被泛化的用例,即子用例指向父用例,泛化是从下到上的过程。(子用例继承父用例所有的结构、行为和关系,是父用例的一种特殊形式。)
    3. 包含关系:表示用例与用例之间的关系,其中一个用例(父用例)的行为包含了另一个用例(子用例)的行为。
      用虚线箭头+<>表示,箭头指向被包含的用例。一般是父用例包含很大的范围,专门抽出子用例来着重表达,又或者是复用用例。
    4. 扩展关系:表示用例与用例之间的关系,是在特定条件下,由扩展用例指向被扩展用例。
      用虚线箭头+<>字样,箭头指向被扩展的用例。扩展用例是在特定条件出现时,才会被执行的用例。
      在这里插入图片描述

四、注意

  1. 不是每个需求都要画用例图,要视情况而定,简单的需求完全可以不用画。
  2. 画图是为了表达、传递信息,当我们画用例图时,不管画的多么酷炫,本质都是在分析业务场景、系统功能性需求,并描述出来。

五、案例

@startuml 用例图

left to right direction
actor :用户: as user
actor :管理员: as admin
actor :管理员1: as admin1
actor :管理员2: as admin2
actor :管理员3: as admin3
actor :第三方合作: as admin4
actor :站点: as station
rectangle XXX平台 {
    usecase (交易/线下) as sheepPlatform
    usecase (商城/线上) as shopping
    usecase (农产品) as goods1
    usecase (百货产品) as goods2
    usecase (发布信息) as sheep
    usecase (公羊) as sheep1
    usecase (母羊) as sheep2
    usecase (仔羊) as sheep3
    usecase (宣传视频) as video
    usecase (农业服务) as service
    usecase (出诊服务) as service1
    usecase (问诊服务) as service2
    usecase (推广海报) as poster
    usecase (银行活动\r保险活动) as poster1
    usecase (申请成为羊贩子) as admin3Apply
    usecase (新增站点) as addStation
}
admin1 --|> admin
admin2 --|> admin
admin3 --|> admin
admin4 ---|> admin
service <|-- service1
service <|-- service2
sheep <|-- sheep1
sheep <|-- sheep2
sheep <|-- sheep3
shopping <.. addStation:extends
shopping <|-- goods1
shopping <|-- goods2
sheepPlatform <|-- admin3Apply
poster <|-- poster1
user -- sheepPlatform
user -- shopping
user -- video 
user -- poster
user -- service
user ..> admin3:线下联系/交易
goods1 --  admin1
video  --  admin1
service1 -- admin1
service2 -- admin1
addStation -- admin1
goods2 --  admin2
admin3Apply --  admin3
admin3Apply <.. sheep : extends
' sheep --  admin3
poster1 --  admin4
user .> station:取货
station <.. admin1:线下洽谈
admin1 ..>admin2:分配账号
admin1 ..> admin4:分配账号

@enduml
PlantUML 是一个开源项目,它允许通过简单的文本描述来创建 UML 图,包括用例图用例图是一种用于软件和系统工程中的行为模型图,用于描述系统的功能和用户(参与者)与这些功能的交互。 在 PlantUML 中自动生成用例图的基本步骤如下: 1. 准备文本描述:编写描述用例和参与者(Actor)的文本。PlantUML 使用简单的语法来定义这些元素。 2. 使用关键字:在描述中使用特定的关键字,如 `@startuml` 和 `@enduml` 来标识 UML 图的开始和结束;使用 `actor` 关键字来定义参与者;使用 `usecase` 关键字来定义用例。 3. 定义关系:使用 `left to right direction` 指定图的方向,使用 `--`、`..` 或 `--|>` 等符号来定义参与者和用例之间的关系。 下面是一个简单的 PlantUML 用例图的文本描述示例: ``` @startuml left to right direction actor 用户 as user actor 管理员 as admin usecase "查看报告" as UC1 usecase "提交数据" as UC2 usecase "导出数据" as UC3 usecase "管理系统设置" as UC4 user --> UC1 user --> UC2 user --> UC3 admin --> UC4 @enduml ``` 当你运行这段代码时,PlantUML 会生成一个用例图,其中包含两个参与者(用户和管理员)以及他们可以执行的各种用例(查看报告、提交数据、导出数据和管理系统设置)。参与者和用例之间的关系通过箭头表示。 注意:为了生成图形,你需要有 PlantUML 的支持环境,比如可以集成在某些开发工具中,或者通过在线服务进行转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全村最肉的人

如果对你有用,就赏博主1分钱!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值