UML建模工具——用例图

【面向对象分析UML建模工具全部文章】

UML建模工具——用例图

Guderian出品


  • 系统 System
  • 参与者 Actors
  • 用例 Use Cases
  • 关系 Relationships

系统(System)

一个系统就是你开发的所有东西,可以是网站、软件组件、业务流程、应用程序、etc.

用一个矩形代表一个系统,然后将系统名称放在顶部。矩形用于定义系统的范围,矩形内的所有内容都在系统内发生,矩形外的所有内容都不会在系统外发生。

如图所示,灰色区域即为飞行控制系统,而副驾驶、机长都是系统外内容,属于参与者。

参与者(Actor)

使用我们的系统(与系统交互)实现目标的某人或某物,可以是一个人、一个组织、另一个系统或一个外部设备

参与者的普通图形用火柴人表示;当另一个系统充当参与者时,参与者的图形用矩形表示。

在软件工程中,参与者告诉我们我们这个系统应该具有的功能。不同的参与者希望获得不同的功能,我们需要找到重要的参与者,认真调查他们的需求,并根据不同参与者的需求完善系统。

用例(Use Case)

系统为响应参与者引发的一个事件而执行的一系列的处理/动作,而这些处理应该为参与者产生一种有价值的结果

用椭圆形容一个用例,代表要系统做的一个任务。

关系(Relationship)

用例图中涉及的关系有:关联泛化包含扩展

关系类型 说明 表示符号
关联(Association) 参与者与用例之间的关系
泛化(Inheritance) 参与者之间或用例之间的关系
包含(Include) 用例之间的关系
扩展(Extend) 用例之间的关系

关联(Association)

关联关系,用实线表示。表示参与者与用例之间的通信,任何一方都可以发送和接受信息。

参与者Actor与用例Use Case相关联,参与者既要向用例发送信息,也要就收用例反馈的信息。

泛化(Inheritance)

泛化关系,实现+空心箭头,从子类指向父类。

(account拼错了)

如上图所示,用户User可以被细分为VIP用户和游客Guest;登录Log in也可以被细分为邮箱登录Log in by email和QQ登录Log in by QQ account

包含(Include)

包含关系,把一个较复杂用例所表示的功能分解成较小的步骤,是上一个用例执行过程中必不可少的。箭头指向包含的子用例。

如上图所示,系统维护System Maintenance的工作包含了添加Add、删除Remove和修正Modify

扩展(Extend)

扩展关系,用例功能的延伸,相当于为基础用例提供一个附加功能,不是必不可少的。箭头指向被扩展的父用例。

如上图所示,打喷嚏Sneeze必然包含闭眼Close Eyes的过程,因此SneezeClose Eyes是包含关系;打完喷嚏Sneeze之后不一定需要道歉Say Excuse Me,因此SneezeSay Excuse Me是扩展关系。

完整的用例图例子

这是一个Bank app系统,参与者包括用户Customer和银行数据库Bank,用户可以进行的操作包括登录Log in、验证余额Check Balance、转账Transfer Funds、支付Make Payment和建立档案Set Up Profile

用户登录后,需要验证密码Verify Password,因此Log inVerify Password是包含关系;如果用户输入密码错误,则展示错误信息Display Login Error,因此Log inDisplay Login Error是扩展关系(用户不一定会输错密码)。

用户验证余额、转账和支付都需要银行数据库来帮助实现,因此验证余额、转账和支付和Bank都是关联关系。而用户进行转账和支付操作时,都必须验证用户账户资金是否足够Veirify Sufficient Funds,因此转账、支付和Verify Sufficient Funds是包含关系。

用户在支付时,可以选择使用支票支付Pay from Checking或余额支付Pay from Savings,故支票支付和余额支付与支付是泛化关系。

此处有一个带有扩展点Extension Points的用例:建立档案Set Up Profile。用例名称在上方,扩展点在下方。扩展点是扩展关系的详细叙述。这个用例表明用户可以再Banking App中建立自己的档案,当用户在建立他们的档案是,可以选择转移至几个不同的屏幕。如果用户感到困惑,他们可以转到档案帮助页面Go to Profile Help;如果用户希望了解隐私信息,他们可以转到隐私信息页面Show Privacy Info。还可以添加注释,以写明导致扩展的情况发生的条件。


Reference:https://www.youtube.com/watch?v=zid-MVo7M-E

本文标题:UML建模工具——用例图

文章作者:G-SS-Hacker

发布时间:2020年01月29日 - 15:18:11

最后更新:2020年02月22日 - 09:27:06

原始链接:https://G-SS-Hacker.github.io/UML用例图/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。