UML,包含,扩展关系

2023-11-29

我无法理解包含和扩展关系如何工作。 假设我有一个在线购物应用程序。该应用程序允许您在未经身份验证的情况下从购物车添加/检索商品。这是“订单”场景: 客户点击订单按钮。系统检查用户是否通过身份验证。如果用户通过身份验证,系统将显示购买页面,否则用户将被重定向到身份验证页面。 我想知道“身份验证”用例是否包含在“订单”用例中,如果是,为什么? (我问这个问题是因为如果用户已经通过身份验证,则无需进行身份验证。) 对不起我的英语不好


我对用例进行了大量咨询,它一直是一个非常有问题的主题,并且很难学习和掌握。考虑使用其他方法来指定需求和系统功能(例如 UI 原型、线框等)绝对是个好主意。从理论上讲,用例确实是一个很好的工具,但在实践中,它通常很难学习、耗时、不明确、使团队和客户感到困惑、难以检查/验证、更难以保持更新等等。

I've tried to clarify these two relationships here, using your example, slightly extended to cover both relationships and put the emphasis on the differences: enter image description here

请注意,“下订单”用例将有多种场景,其中两个与此处相关:

  • 使用先前的身份验证“下订单” - 在这种情况下,将不会调用“身份验证”UC
  • 没有先前身份验证的“下订单” - 在这种情况下,为了成功下订单,必须调用“身份验证”。

这种情况是 UC 建模中经常出现的混乱和错误的根源。一些建模者认为“包含”上下文中的“强制”意味着它必须始终在包含 UC 的上下文中执行,在每个场景中。如果不是这种情况(就像这里,只有一种情况是强制性的),他们使用扩展。这是一个错误,因为至少在一种情况下强制使用 UC 就足够了。这些详细信息不会显示在图表级别上,而是显示在场景描述中。

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

UML,包含,扩展关系 的相关文章

  • 当包含Windows.h导致错误A不是B的成员时

    以下代码是我的包含文件 但是 我发现当我使用 include
  • PlantUML 活动图 返回

    我正在使用 PlantUML 创建活动图 我想要从里面出来的箭头Modify Details回到OP2而不是钻石 我有这个图 startuml Swimlane1 start OP1 Swimlane2 OP2 if Form Valid
  • python列表理解和extend() [重复]

    这个问题在这里已经有答案了 深入学习 Python 2 7 1 但未能理解这一点 几个小时 gt gt gt a 1 2 gt gt gt b 3 4 gt gt gt gt gt gt a extend b 0 gt gt gt a 1
  • Qt 的最佳实践包括和预编译头文件?

    当使用现代和最新的 C 编译器 例如 MSVC2015 并激活预编译头时 当前关于包含 Qt 头文件的 最佳实践 是什么 Example include
  • 如何使用 GCC 在 C 上编译库?

    我用这些文件创建了一个库pila h and pila c 我编译文件pila c with gcc pila c c这个库运行良好 我已经测试过了 然后我又做了一个图书馆 这个库有文件pila funciones extra h and
  • Python:“取消导入”、“重新导入”、“重置导入”?

    我调试 在 PyCharm 中 一个脚本 我在断点处停止 然后转到调试控制台窗口 然后从那里调用导入行 如下所示 import my util1 from my utils 然后我调用 my util1 到目前为止 一切都还好 然后我更改
  • UML 到 Java 代码生成工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何覆盖和扩展基本的 Django 管理模板?

    如何覆盖管理模板 例如 admin index html 同时扩展它 请参阅https docs djangoproject com en dev ref contrib admin overriding vs replacing an a
  • Visual Studio 2010 智能感知无法识别附加包含目录

    我在这里找不到与此类似的问题 因为它非常复杂 我想更多的是烦恼而不是主要问题 如果这已经存在 我们深表歉意 我设置了一个名为 BOOST ROOT 的系统环境变量 它指向包含所有 boost 标头的目录 在我的例子中是 C Program
  • 有什么办法可以自动生成UML图吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 MySQL 数据库 我想生成它的关系图 有没有一个工具可以连接到数据库并自动为我生成它 是的
  • 不同保护条件下的状态转换

    在状态模式中这是如何建模的 当当前状态为 A 时 在触发器 X 和条件 C1 上状态 A 到状态 B 当当前状态为 A 时 在触发器 X 和条件 C2 上状态 A 到状态 C 这通常是如何实现的 我有很多可能需要实施的守卫条件 这是相当标准
  • Eclipse CDT C/C++:包含另一个项目的头文件

    我在 Eclipse CDT 中有两个 C 项目main and shared In shared我有一个名为calc h 我想在中使用这个标头main 所以我做了以下事情 added include calc h到相关文件main In
  • clang-tidy 标题防护风格警告

    我想将 clang tidy LLVM v7 0 0 与llvm 标头保护在 Windows 10 上使用 CMake 获取以下头文件 ifndef BAR H define BAR H namespace FOO namespace BA
  • Google C++ 风格指南包含顺序

    谷歌 C 风格指南 https google github io styleguide cppguide html Names and Order of Includes建议按以下顺序将头文件 h 包含到实现文件 cpp cc 中 In d
  • 要导入什么才能使用@SuppressFBWarnings?

    要使用 SuppressFBWarnings 需要导入什么 我通过帮助 安装新软件安装了 findbugs 插件 当我输入 import edu 时 我无法按 ctrl space 来获取选项 Example try String t nu
  • Eclipse Papyrus 上的 OCL 约束检查

    有人设法检查在 Eclipse Papyrus 中建模的类图上的 OCL 约束吗 我定义了一个简单的测试配置文件 对构造型属性只有一个约束 OCL self property gt 0 构造型扩展了 Property 元类 因此我将其应用于
  • Clang 工具 (libtooling):将标头搜索路径设置为标准库标头。基础框架

    相关链接http kevinaboos wordpress com 2013 07 23 clang tutorial part ii libtooling example http kevinaboos wordpress com 201
  • [GoF]-ConcreteSubject 可以覆盖通知方法吗?

    我正在模拟一种情况 其中存在 通知框 观察者 list1 list2 list3 这个科目 现在我会制作一张图表 其中使用观察者模式描述每个列表实现不同类型的notify 这一事实 例如 列表状态的某些变化只需要按照某些标准通知给某些观察者
  • Visual Studio 2015默认附加库

    当我在 VS 2015 中创建一个空项目时 它会自动将这些库放入 附加依赖项 中 kernel32 lib user32 lib gdi32 lib winspool lib comdlg32 lib advapi32 lib shell3
  • C++ 未定义引用(即使包含)

    如果不在我的 main cpp 文件中显式包含 TestClass cpp 文件 我就无法编译这段简单的代码 我究竟做错了什么 提前致谢 这是代码 测试类 h ifndef TESTCLASS H define TESTCLASS H cl

随机推荐