UML小讲01.用例图

175 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

用例图简介

  • 用例图应用在软件开发的需求分析阶段,他描述了系统的功能以及如何使用一个系统
  • 用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务
  • 用例图最常用来描述系统以及子系统
  • 用例图分为业务用例图和系统用例图

用例图的组成

  • 参与者(Actor)
  • 用例(Use Case)
  • 关联关系(Association)
  • 包含关系(Include)
  • 扩展关系(Extend)
  • 泛化关系(Generalization)

参与者

image.png

参与者的概念

  • 外部的一个实体
  • 参与用例的执行过程
  • 参与者由参与用例时所担当的角色来表示
  • 每个参与者可以参与一个或多个用例

参与者种类

  • 系统用户 真实的人,即用户,是最常用的参与者,几乎存在于每一个系统中,命名这类参与者时,应当按照角色命名
  • 与所建造的系统交互的其他系统 外部程序
  • 时间代理人 例如在汽车租凭系统中,到了还车时间客户还没有归还汽车,系统会提醒客户服务代表致电客户,这时时间就成了该系统的一个参与者
  • 其他 如:硬件设备、外部服务和外部数据库等

用例

image.png

什么是用例?

外部可见的系统功能单元,在不揭示系统内部构造的前提下定义连贯的行为,不是需求或功能的规格说明

用例的特征

  • 1.用例是动宾短语
  • 2.用例是相对独立的
  • 3.用例是由参与者启动的
  • 4.用例要有可观测的执行结果
  • 5.一个用例是一个单元

如何识别用例

  • 特定参与者希望系统提供什么功能
  • 系统是否存储和检索信息
  • 当系统改变状态时,是否通知参与者
  • 是否存在影响系统的外部事件
  • 哪个参与者通知系统这些事件

用例间的关系

关联关系

image.png

  • 表示参与者与用例之间的关系
  • 不同的参与者可以访问相同的用例

包含关系

image.png

  • 一个用例可以简单地包含其他用例具有的行为,并把它所包含的行为作为自身行为的一部分,这称作用例间的包含关系
  • 包含关系把几个用例的公共部分分离成一个单独的被包含用例,被包含用例称为提供者用例,包含用例称为客户用例
  • 客户用例可以简单地包含提供者用例具有的行为,并把它所包含的用例行为作为自身行为的一部分 包含关系的特点:
  • 包含用例(客户用例)执行,则被包含用例(提供者用例)必须执行

拓展关系

  • 扩展用例被定义为基础用例的增量扩展
  • 扩展关系是把新的行为加入到已有的用例中去
  • 基础用例提供扩展点以添加新的行为
  • 扩展用例插入到基础用例的扩展点上

image.png 扩展关系的特点

  • 没有基础用例,扩展用例也是完整的用例
  • 基础用例被执行时,一般不会涉及扩展用例,只有特定的条件发生,扩展用例才可能被执行,这是与包含关系的差别

泛化关系

  • 泛化关系是一般和特殊的关系
  • 一个用例(父用例)可以被特别地列举为一个或多个子用例
  • 子用例表示父用例的特殊形式
  • 子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变继承的行为