【UML 建模】UML建模语言入门 -- 用例视图详解 用例视图建模实战(二)

简介: 【UML 建模】UML建模语言入门 -- 用例视图详解 用例视图建模实战(二)

6. 用例与用例之间的关系



(1) 泛化关系



定义 : 一个用例可以被列举为一个或多个子用例,父用例和子用例之间是泛化关系; 类似于类中的继承关系, 子用例是父用例的特殊形式, 子用例从父用例中继承行为和属性, 还可以添加行为或覆盖, 改变已继承的行为.


泛化关系表示 : 用例之间的泛化用带空心的箭头表示, 箭头方向指向父用例, 下图中系统管理员与查询用户是关联关系, 查询用户是父用例, 查询经理 查询员工是子用例;

image.png







(2) 包含关系



用例之间的包含关系 : 一个用例的行为包含了另一个用例.基础用例可以看到包含用例, 并依赖与包含用例的执行结果, 但是二者不能访问对方的属性.


包含关系表示 : UML中包含关系表示为虚线箭头, 并且在虚线箭头上有<<include>>字样, 箭头指向被包含的用例.

image.png







用例包含使用场景 :


a. 公用用例 : 为了复用用例, 当多个用例有重复的功能, 可以将重复的功能分解到另一个用例中, 将这个分解出来的用例与原来的多个用例建立包含关系.


b. 分解用例 : 为了简化用例, 当一个用例包含的功能太多的时候, 需要将用例分解成一个个子用例, 用例之间建立包含关系.




例子 : 管理员 修改用户, 删除用户 都要查询用户, 如果每次都编写事件序列, 那么用例会很复杂, 可以使用包含关系使 修改用户 删除用户用例 包含 查询用户;

image.png







(3) 扩展关系



定义 : 一个用例可以被定义为基础用例的增量扩展, 称作扩展关系.


作用 : 扩展关系可以把新行为插入到已有的用例的方法中.


扩展点 : 基础用例提供了一组扩展点,不必了解扩展用例, 这些扩展点中可以添加新的行为, 扩展用例提供了一组插入片段, 这些片段可以插入到基础用例的扩展点中;


扩展关系表示 : 虚线箭头指向基础用例, 箭头上加上<<extend>>;

image.png







基础用例与扩展用例关系 : 基础用例没有扩展用例也是完整的, 这一点与包含用例不同, 一个用例可以由多个扩展点, 每个扩展点可以出现多次.


扩展用例执行条件 : 一般情况下基础用例执行, 不会涉及到扩展用例行为, 如果特定条件发生, 扩展用例才会执行, 扩展关系为处理异常或构建灵活系统框架提供一种有效方法,发生的特定条件就是扩展点.

image.png



案例介绍 : 学生可以 查询图书, 借阅图书, 归还图书.


引入扩展关系 : 上面的用例图模型已经建好, 后来加上了如果借阅超期, 就要缴纳罚金, 更改用例图中的归还图书, 会使用例变得复杂, 因此可以在归还图书中简历扩展点, 在 图书超期 的特定条件下 , 将执行缴纳罚金 扩展用例;








四. 用例建模技术



1. 对语境进行建模



内部事物与外部事物 : 一个系统中, 会有一些事物存在其内部, 一些事物存在其外部.


语境定义 : 存在于系统内部的事物的任务时完成系统外部事物所期望的行为, 内部事物与外部事物存在交互,系统外部事物与内部事物构成了系统的语境, 语境又是系统的环境.


建模重心 : 用例视图是对系统的语境进行建模的,强调的是系统的外部事物, 即外部参与者;




对语境建模注意的方法 :


a. 外部参与者分类 :


从系统得到帮助以完成任务的组;


执行系统功能时所必须的组;


与外部硬件或其他软件系统进行交互的组;


为了管理维护系统而执行某些辅助功能的组.


b. 层次 : 将参与者组织成泛化/特殊化的结构层次;


c. 提供构造性 : 在需要的地方, 为每个参与者提供构造方法;


d. 通信路径 : 将参与者放到用例图中, 要说明参与者与用例之间的通信路径;




2. 对需求建模



需求 : 根据用户对产品功能的期望, 提出产品外部功能的描述;


需求分析 : 获取系统需求, 归纳系统索要实现的功能, 考虑系统做什么, 不去考虑怎么做;




对需求建模方法 :


a. 语境建立 :识别参与者, 建立系统语境;


b. 系统行为 : 考虑每个参与者期望的行为或需要系统提供的行为;


c. 命名原则 : 将公共行为命名为用例;


d. 包含扩展用例 : 确定供其他用例使用的用例和扩展其他用例的用例;


e. 建模对象 : 在用例图中对 用例 参与者 和 它们之间的关系建模;


f. 需求描述 : 注释用例图要描述非功能需求;




3. 用例粒度



学生去图书馆借书, 首先登陆系统, 输入账号, 输入密码, 提交. 但上面的几部每个都可以算作一个用例, 但是综合起来也可以将三部算作一个用例.


针对需求分析人员来说 : 用例粒度的粗细可以根据实际情况分析;


针对开发人员来说 : 用例的粒度越细越好;


image.png



目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 测试技术
【软件设计师备考 专题 】软件工程的未来:面向构件和统一建模语言(UML)
【软件设计师备考 专题 】软件工程的未来:面向构件和统一建模语言(UML)
138 0
|
2月前
|
测试技术 uml
『软件工程13』浅谈面向对象方法,统一建模语言UML
该文章介绍了面向对象方法的基本概念及其在软件工程中的应用,并详细探讨了统一建模语言(UML)的各种图示及其在系统设计中的作用。
『软件工程13』浅谈面向对象方法,统一建模语言UML
|
3月前
|
测试技术 uml
UML 建模语言的基础概念与应用
【8月更文第23天】UML (Unified Modeling Language) 是一种用于系统架构设计的标准建模语言。
132 1
|
6月前
|
测试技术 uml
UML面向对象建模题库
UML面向对象建模题库
87 0
|
设计模式 IDE 测试技术
【设计模式——学习笔记】设计模式前置知识:UML类图入门
【设计模式——学习笔记】设计模式前置知识:UML类图入门
64 0
|
测试技术 uml 开发者
UML基础与应用之用例视图
UML基础与应用之用例视图
145 0
|
数据可视化 测试技术 uml
UML的五种视图——Rational Rose的四种视图
UML的五种视图——Rational Rose的四种视图
519 0
|
存储 Java 应用服务中间件
|
6月前
|
uml
UML之类图
UML之类图
96 1
|
6月前
|
数据可视化 Java uml
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
291 1