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
的过程,因此Sneeze
和Close Eyes
是包含关系;打完喷嚏Sneeze
之后不一定需要道歉Say Excuse Me
,因此Sneeze
和Say Excuse Me
是扩展关系。
完整的用例图例子
这是一个Bank app
系统,参与者包括用户Customer
和银行数据库Bank
,用户可以进行的操作包括登录Log in
、验证余额Check Balance
、转账Transfer Funds
、支付Make Payment
和建立档案Set Up Profile
。
用户登录后,需要验证密码Verify Password
,因此Log in
和Verify Password
是包含关系;如果用户输入密码错误,则展示错误信息Display Login Error
,因此Log in
和Display 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
。还可以添加注释,以写明导致扩展的情况发生的条件。