在 UML 中包含或扩展?

2023-12-26

据我所知,扩展关系是当用例是可选的时,但包含是当需要用例的操作时(但不是所有时候)。我想为注册系统建模一个用例,但对使用哪种关系有疑问,我有两个可能的选择:

我更热衷于(b)表示此操作的方式,因为修改数据和删除数据的部分不应该是可选的,它们用于维护学生的记录(抱歉我图中的拼写错误)。尽管一位同事表示(a)选项更准确地处理这种情况。两者都可以正确吗?如果是这种情况,在什么情况下会发生这种情况? 谢谢


当您设计用例时,一个容易陷入的陷阱是“功能分解”,即您将用例分解为太多的子用例。一个经典的例子是 CRUD 操作。虽然“维护记录”是一个合理的用例,但您很少想将其分解为创建记录、删除记录等。因此,在某种程度上,您关于“包含...”与“扩展...”的问题的答案将是是“两者都不是”。

有时,假设一个参与者可以搜索,而只有特定参与者可以创建记录,或者删除记录时有一个特别复杂的身份验证步骤,您可能需要创建这些单独的用例。在这种情况下,您可能不需要“维护记录”用例,但需要分别描述这两种情况。

If you must两者都有,那么我建议“修改数据”扩展“维护记录”,因为您有时可能会执行它,但并不总是如此。

查看这个答案:用例图中的 CRUD? https://stackoverflow.com/questions/7772399/crud-in-a-use-case-diagram

您可能会发现有用的讨论在这里http://www.se.cs.put.poznan.pl/knowledge-base/software-engineering-blog/crud-pattern-in-use-cases http://www.se.cs.put.poznan.pl/knowledge-base/software-engineering-blog/crud-pattern-in-use-cases

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 UML 中包含或扩展? 的相关文章

  • 在java中将关联、聚合和组合转换为代码?

    我知道java中关联 聚合和组合的转换有不同的表示方式 但是当我们将它们转换为代码 java类 时 它们都以相同的方式表示 就像老师教的学生一样 关联将用具有班级老师实例变量的学生类来表示 部门有教授 聚合也将用具有班级教授实例变量 数组
  • 如何在UML类图中描述包含的映射?

    我有一个 MyServer 类 其中包含一个 Map 其键是 MyClientType 对象 其值是 MyClient 对象 我想在类图中描述这种关系 但我找不到一种干净的方法来做到这一点 您可以使用合格的协会 1 MyServer Key
  • 具有属性的 UML 建模枚举

    我想使用 Java 枚举 enum 创建一个 UML 图 它具有一个或多个属性 但我对如何做到这一点感到困惑 例如 可以这样声明枚举 public enum Enumeration type LITERAL A attr1 value at
  • 子集约束在 UML 类图中意味着什么

    有subset在部门类和人员类之间 但我不知道比是什么意思 家庭作业机会 查看由子集约束链接的两个关系 每个部门有多名成员 每个部门设经理一名 子集表示这两者之间的约束 如果后一个关系的元素是第一个关系的子集 那么你会如何描述其含义 EDI
  • 用例之间的 UML 关系(扩展/包含)

    我不太理解以下主题 因为它与我读到的内容有点含糊 Inlcude就像对下一部分的引用一样 没有它 用例就不完整 这部分应该从更多地方引用 否则它的使用没有意义 但我见过一个例子 其中 include 仅在某些 IF 语句中为真 例如 添加新
  • 学习如何分析项目

    我刚刚偶然开始为我公司的一个客户 中小企业 分析一个项目 我是一名 Net 开发人员 5 年 在分析软件方面经验很少 来自学校的 UML 我们刚刚结束了与用户两周的交谈 并得到了一份不错的需求清单 显然 我们已经过滤掉了最重要的需求 并且必
  • 如何在 UML 类图中表示回调

    我有一个界面说 Interface ICallback public void informFunction 我有一堂课说 Class Implementation implements ICallback public Implement
  • 从 umbrello 中的 java 代码自动创建类图?

    我能够将 java 代码导入到 umbrello 中 但是 如何自动生成类图呢 也许雨伞可以not有那个功能 来自handbook http docs kde org stable en kdesdk umbrello code impor
  • uml 与 RDF 和 OWL 的组合关系

    我是 RDF 和 OWL 本体的初学者 我正在尝试将此图转换为 OWL 语法
  • 如何在 UML 中指定“一次一个”?

    我正在制作一个类图Classroom and a Course class 我怎样才能表明Classroom只能有一个Course一次在其中吗 我知道我可以使用多重性来指定教室可以只开设一门课程 但这并不能完全指定在不同时间可以有除该一门课
  • 如何在 UML 中建模协变关联类?

    In short 我想对两个类之间的协变关联进行建模 每个类都可以专门化 我需要展示相关关联类的专业化 但我想避免我的模型可能意味着存在冗余关联 即泛化之间的关联和专业化之间的关联 问题的逐步解释 我在 UML 类图中有一个多对多关联Per
  • UML 聚合可以是双向的吗?

    我正在 Python 中实现一个具有 MVC 模式的应用程序 具有以下类定义 class Controller object def init self model view self model model self view view
  • 如何在 UML 类图中表示“事件”?

    这是我的代码片段 public class Notation INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged private N
  • XMI 2.1.1 的 XSD

    我必须使用 JAXB 解析 XMI 文件 xmi 版本 2 1 1 为此 我必须生成与 XMI 文件相对应的 Java 类 因此 我需要 xmi 文件的 shema 定义才能使用 jxc 工具执行此操作 我希望有人知道在哪里可以找到这个文件
  • 在 Papyrus UML 模型中使用 MARTE GQAM 构造型

    我正在尝试使用 MARTE GQAM 构造型来构造模型的某些元素 但在为其某些属性赋值时遇到麻烦 例如 我将两条生命线之间的消息定型为 我想为其 hostDemand 属性分配一个值 该属性应为 NFP Duration 实例 我看不到如何
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • IBM Rhapsody 中状态图终止连接器的理解

    在IBM Rhapsody中 如果我使用new创建了一个类的实例 那么我们是否必须通过调用delete来处理内存的释放 或者Termination Connector将在其状态图中通过内存释放来处理其销毁 如果您使用 C 和 OXF 对象执
  • 在用例建模中分解 CRUD

    我有一个后续问题用例图中的 CRUD https stackoverflow com questions 7772399 crud in a use case diagram 如果我需要分解复杂的用例 例如 管理用户 假设这很复杂 可以将它
  • 如何表示类的实例与将其作为输入的类之间的关系?

    我有一堂课叫House 这个类的实例是house class House def init self height length self height height self length length def housePlan hou
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt

随机推荐

  • 蒙特卡洛模拟代码:在 R 中生成给定大小的样本

    我首先使用以下代码生成 500 个 0 到 1 之间均匀分布的随机数的样本 set seed 1234 X lt runif 500 min 0 max 1 现在 我需要编写一个伪代码 为 MC 模拟生成 N 500 的 10000 个样本
  • PackageInstaller 完成(自我)更新后启动应用程序

    PackageInstaller 成功 自行 更新应用程序后 应用程序将关闭并且不会再次启动 可能重复 Android PackageInstaller 更新后重新打开应用程序 https stackoverflow com questio
  • Erlang 节点的数量可能/实用吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 1 Erlang 网络中可以存在的最大理论节点数是多少 理论 可能意味着 语言允许或不允许的任何内容 2 Erlang 网络中实际可以
  • 用于从故事板实例化的 UIViewController 扩展

    我正在尝试用 Swift 编写一个小扩展来处理 a 的实例化UIViewController来自故事板 我的想法如下 既然UIStoryboard的方法instantiateViewControllerWithIdentifier需要一个标
  • 为什么我们需要主干js或任何JS MVC框架?

    如果我们已经使用后端 MVC 框架 例如 Django 或 ROR 为什么还需要使用 JS MVC 框架 主干 我无法理解两个 MVC 框架的概念以及它们如何组合在一起 我认为所有前端相关文件或逻辑 html css js 都位于后端框架的
  • 如何获取 docker 镜像的准确日期?

    I run docker images并得到这样的东西 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker io postgres latest a7d662bede59 2 weeks
  • 如何使用列标题引用 Google Apps 脚本电子表格中的单元格

    我有几个 Google 表格 可以连接并更新它们之间的单元格 现在我必须使用 R1C1 或 A1 类型引用来定义基于特定列的获取或设置单元格 如果添加新列 所有这些引用现在都会关闭 每个工作表的第一行都将列标题作为这些单元格中的值 我可以以
  • Solr 查询唯一整数字段

    我在 schema xml 中定义了一个字段
  • Django Forms clean() 方法 - 需要客户端的 IP 地址

    我正在重写 Django 表单上的 clean 方法 我想要访问客户端的 IP 地址 假设这是绑定表单 如果我有对请求对象的引用 我可以从 META REMOTE ADDR 轻松获取它 但是 我没有参考该请求 关于如何做到这一点有什么想法吗
  • 如何在 Keras 中实现自适应损失?

    我正在尝试使用 Keras 来实现中完成的工作通用的自适应鲁棒损失函数 https arxiv org abs 1701 03077 作者提供了处理困难细节的张量流代码 我只是想在 Keras 中使用他的预构建函数 他的自定义损失函数正在学
  • 是否可以收听“风格改变”事件?

    是否可以在 jQuery 中创建一个可以绑定到任何样式更改的事件侦听器 例如 如果我想在元素更改尺寸或样式属性中的任何其他更改时 执行 某些操作 我可以执行以下操作 div bind style function console log t
  • 将字符串转换为代码

    我想知道是否有任何方法可以转换String为Java可编译代码 我有一个比较表达式保存在数据库字段中 我想从数据库中检索它 然后在条件结构内对其进行评估 有什么办法可以做到这一点吗 如果您使用 Java 6 您可以尝试 Java 编译器 A
  • PHP MySQL 小查询超时,必须将限制设置为 10

    在为相对较小的查询调用 mysql query 时 我收到 PHP 超时错误 因此我必须将限制设置为 10 Fatal error Maximum execution time of 120 seconds exceeded in C xa
  • 角度路由when()无需映射到控制器或模板

    可以使用when 而不映射到任何控制器或模板吗 这就是我配置路线的方式 app config function routeProvider locationProvider locationProvider html5Mode true r
  • 如何在签署 pdf 文件时将时间戳属性添加到认证详细信息

    我想在证书中显示时间戳属性 如图所示 我应该在签名中设置什么 这是我添加标志信息的代码 private SignerInformation signTimeStamp SignerInformation signer throws IOEx
  • python“字符串”模块?

    所以我正在阅读这个旧模块 我认为是 2002 年左右 它有这一行 导入字符串 Python 是否要求您在能够使用字符串类型变量或其他东西之前显式导入字符串模块 我没有看到它在代码中这样使用 string something The stri
  • 天青错误。您没有权限查看该目录或页面

    当我导航到部署的 azure 网站时 出现错误 You do not have permission to view this directory or page 在我的 web config 中
  • 如何生成像github这样的个人访问令牌?

    这是理论问题 我想在 net core webapi 中创建类似 Github 个人访问令牌 的机制 该机制已经与 Identity Server 4 具有 ResourceOwnerPassword 流 理论上 我想根据用户请求手动生成令
  • 用分隔符分割字符串

    我目前正在尝试拆分字符串1128 2这样我就可以有两个不同的值 例如 value1 1128 和 value2 2 这样我就可以单独使用每个值 我努力了split 但没有成功 Grails 是否有特定的方法来处理这个问题 或者有更好的方法
  • 在 UML 中包含或扩展?

    据我所知 扩展关系是当用例是可选的时 但包含是当需要用例的操作时 但不是所有时候 我想为注册系统建模一个用例 但对使用哪种关系有疑问 我有两个可能的选择 我更热衷于 b 表示此操作的方式 因为修改数据和删除数据的部分不应该是可选的 它们用于