【问题标题】:Use Case Diagrams - Are arrows absolutely necessary?用例图——箭头是绝对必要的吗?
【发布时间】:2010-10-02 02:33:30
【问题描述】:

在用例图中是否绝对有必要使用“箭头”来显示参与者和用例之间的关联?

我最近不得不为我的软件工程作业画一张。但是,在对来自许多其他大学的许多文章、论文、在线书籍和讲义进行了一些在线研究之后,似乎大多数用例图,无论它们有多少潜力显示某种“流程”或“可导航性” ",没有箭头,而有些例子有箭头。

所以我咨询了我的朋友,他是最后一年的学生,并且已经研究了我告诉我的我的演员和用例之间不应该有箭头,甚至他的需求工程讲师也教导学生不要使用箭头。所以我有意识地决定不使用箭头,而是使用实线来显示我的用例关联。

这是我的图表-click

然而,当我收到作业的分数时,我惊讶地发现我因为没有使用箭头而得了零分。即使强制使用它们,也有大量证据表明实线可用于双向关联。所以我不应该至少得到一些分数吗?

显然,我要求我的讲师做出解释,我将在下周见到他来讨论这一点,但如果她告诉我应该使用箭头,我可以提出什么反对意见?如果有人可以通过适当地参考一些专业资源给我好的建议,我将不胜感激。

非常感谢您的阅读,我希望尽快阅读您的回复。


编辑

谢谢你们。我真的很感谢你给我的答案。这整个混乱开始了,因为讲师提供的唯一符号是一个讲义中的一个非常简单的图书馆用例图示例,其中有箭头。但并不清楚它是否是最终的符号。我不认为它是强制性的另一个原因是因为在解释绘制数据流图的符号时,她非常清楚地使用了她的特定符号,但 DFD 有不同的符号并不少见不同的来源,而我几乎找不到在用例图中使用箭头的必要证据。

也就是说,即使在没有箭头的情况下,我记得在辅导课上问过一位导师(不是讲师)有箭头线和实线有什么区别,他说没有,我可以两者都用。显然,我只有我的话,从你们所说的来看,我怀疑任何处于学术地位的人都会承认说出一些可能使他们处于防御地位的事情。我的错误是没有直接与讲师交谈,但事后看来我显然会这样做。

无论如何,我会就所有这些信息与她交谈,并要求她考虑到这个“诚实的错误”。不仅是用例图,还有其他几个问题,我在这些问题上的得分异常多,尤其是当我的答案与她提供的模型答案几乎相同时。我还知道很多其他要求作业的学生都被评了分。

希望她善良,并运用良好的判断力来提高我的分数。等我知道了会在这里发帖。

再次感谢您的帮助,请发布您可能拥有的任何其他信息/建议。 :)


编辑 2

抱歉各位,我还有一个问题。

这是在作业中给出的用于绘制用例图的场景。

CONTHETICKET 是一家票务代理机构 经营音乐会和戏剧 门票。 音乐会和剧院场地 为 CONTHETICKET 提供一个常量 即将到来的信息流 事件,然后由 经理为 销售人员在回应时使用 给客户来电。经理选择 CONTHETICKET 的一些活动 将购买一些门票 前进,从而受益于 折扣与场地协商。

他亲自发送订单 门票连同约定的 支付给场地,一次 收到票,他将它们归档 票证文件。

当客户给销售团队打电话时, 检查他们的票务请求 反对票文件。如果 可预购门票 它们被放入标有标记的信封中 连同客户的姓名和地址, 并提交临时命令 文件。如果没有,销售团队填写 票务申请表并将其放入 供邮递员收集的托盘。

付款部分检查 临时订单文件每天。他们 向客户发送发票并 等待付款。发票复印件 存档。付款时 收到,付款部分匹配 与适当的付款 发票,如果满意的地方 发票的另一份副本 发送文件,说明 送票。

邮递员检查快件 每天归档并检索 合适的门票 临时订单文件并发送 给合适的客户。

从我的diagram 可以看出,作为演员,我有一个“音乐会和剧院场地”。

来自 UML 2.0 风格的元素,Scott W. Ambler:

“参与者是在与您的系统的一个或多个交互中发挥作用的个人、组织或外部系统(参与者通常在 UML 用例图上绘制为简笔画)。”

但是,在我标记的作业中,讲师评论说它不应该是演员。你能告诉我你是否认为它应该是一个演员,为什么。

我的理由是 CT&V 提供活动信息,然后经理使用这些信息来订购/归档门票,也由 CT&V 提供。

非常感谢。

【问题讨论】:

    标签: uml diagram use-case


    【解决方案1】:

    虽然很不幸,但我必须坚持“如果他们是这样告诉你的,而你没有那样做,那就是你得到的分数”。

    根据我的经验,这种关系可能是单向的,也可能是双向的,所以我认为你必须区分这两者。

    【讨论】:

    • +1 - 如果您打算偏离老师标记为强制性的内容,您应该在在到期之前或上交之前讨论。
    • 谢谢,下次我一定会这样做的。但是,正如我在下面的回复中发布的那样,并没有明确指出箭头是强制性的,例如 DFD 的符号。也没有标准表。老实说,我不认为不放箭头会引起这么大惊小怪。 :(
    【解决方案2】:

    See here:

    指示调用来源的箭头是可选的,因此它似乎由您的教师自行决定,但这可能是一个有争议的点。

    顺便说一句,在我的经验中,研究生院是学习软件工程的最糟糕的地方。 YMMV。

    【讨论】:

      【解决方案3】:

      我认为你有充分的理由;)

      引用当前的UML specfication (2.1.2)

      第 595 页,约束,2
      用例只能参与二进制关联。

      考虑到这一点,在关联上显示可导航性有什么意义?由于主体之间的交互(例如用例和参与者)根据定义是双向的(例如参与者做某事,系统响应等等)。

      您还将在本文档中找到示例用例图来进一步说明您的观点。

      当然,对于其他用例结构,例如 includes 和 extends 箭头是有意义的并且是必需的。但是,从您包含的用例图中,您没有使用这些,不应该因此受到惩罚。

      祝你好运

      PS:使用我选择的 UML 建模工具 Enterprise Architect,它不允许我直观地指示关联的可导航性。

      【讨论】:

        【解决方案4】:

        好消息

        你的图表是正确绘制的,你的老师是错误的:

        • 箭头在用例关联中不合适,因为它们是二元关联
        • Extend、Includes 和 Uses 关系需要箭头 - 请参阅 this diagram 了解所有这三个关系的示例

        UML specification v1.4.2 [PDF 警告] 第 4.11.3 节格式良好的规则和 5.42.2 二进制关联在这些点上非常清楚:

        4.11.3 格式良好的规则:“参与者只能与用例、子系统和类有关联,并且这些关联是二元的。”
        5.42.2 二进制关联:“二进制关联被绘制为连接两个分类器符号的实心路径”

        坏消息

        话虽如此,如果您的老师告诉您使用箭头而您没有使用,那么您可能没有追索权 - 这是学术界的缺点之一:一些教授希望学生只是反刍他们被告知的内容,即使这是错误的。你可以向系主任提出上诉,辩称教授对学生的指导违反了既定标准,但这很可能只会给你带来悲伤。不过,我确实认为你会有一个强有力的案例,因为在正确的图表上给你一个零,因为你没有画出错误的箭头,这似乎过分、苛刻和不合理。

        但我遇到过总是正确的教授,即使他们显然是错误的。然而,大多数人都是理性/合乎逻辑的人,他们乐于适当地纠正错误信息。

        注意:轻踩

        假设这是一个诚实的错误,并要求教授解释为什么当官方 OMG UML 规范说不使用箭头时他期望箭头(因此每个符合用例的 UML 工具都会不在二元关系上画箭头)。如果你去那里开枪,你可能会或可能不会得到满足,但你也可能会产生敌意,这可能会使剩下的学期(甚至更久)变得非常不愉快。

        编辑:我确实相信旧工具和标准在用例图中使用单箭头(不是三角形或实心,只是“翅膀”),但现在不再这样做了。也许教授的标准 - 或软件 - 刚刚过时;-)

        【讨论】:

        • 有趣的是,她的讲义讲义(从 2003 年开始)有很多基本上是从 Ian Sommerville 的软件工程(第 6 版,2001 年)复制和粘贴的内容,包括用例图的单个示例没有任何关于符号的描述。
        • 几点:1. UML 目前是 2.2 版(尽管用例符号没有改变) 2. “二进制关联”并不意味着“没有箭头”,它只是意味着有两端的线(可能有也可能没有箭头)。但是,与一个箭头的关联是隐式的(继续...)
        • ...在另一个方向上不可导航,为什么您想要一个不知道参与者是谁的用例?
        • @[chimp]:该规范首先出现在谷歌搜索 OMG UML 规范“;它较旧但仍然有效。用例图中的参与者通常围绕边缘绘制,他们看起来像小棍子——如果你不能从中分辨出演员是谁,我帮不了你!;-)
        • 是否为二元关联与实线末端是否有箭头无关。在用例图中,关联上的箭头表示调用的方向,是可选的。
        【解决方案5】:

        其他人都已经回答了关于箭头的问题。让我给你一些关于学术界的建议。

        您学到的大部分技术知识要么是错误的,要么是无用的。在您的职业生涯中,您将作为专业人士使用的任何东西都将是您在那里学习的东西,然后根据具体情况的具体需求。

        您将学到的是事物的一般概述,这是您在职业生涯中不会学到的东西,因为没有人有时间这样看待它。在那里你会使用错误的工具来解决错误的问题,通常是因为一些愚蠢的原因,比如“因为上级决定那样做”。

        因此,请将此作为学习经验。要成为一名成功的专业人士,您只需要了解正确的做事方式是一件很难实现的事情,而在这种情况下,您自己做事可能会给您带来更多的麻烦,而不仅仅是得分为零。

        练习做错事来实现你的目标:做箭头的事情并获得你的分数。

        整合每个人(包括您)总会犯错的知识:不要只听您的教导,阅读其他观点并在您有经验后形成意见。

        练习参与政治方面的艺术,以便在此类问题上发表意见。有一种方法可以让其他人做正确的事,但这需要大量的社会工程和艰苦的工作。

        只是不要浪费你的时间。有些事情根本不值得努力纠正......

        【讨论】:

        • 谢谢约翰。我是那些一直习惯于做研究的学生之一,而这一次却适得其反。幸运的是,我怀疑从下学期或以后我会不会有这个讲师。这些都不计入我的期末成绩。我只是想要一个更好的分数来提高我明年的实习潜力。
        【解决方案6】:

        谢谢你们。我真的很感谢你给我的答案。这整个混乱开始了,因为讲师提供的唯一符号是一个讲义中的一个非常简单的图书馆用例图示例,其中有箭头。但并不清楚它是否是最终的符号。我不认为它是强制性的另一个原因是因为在解释绘制数据流图的符号时,她非常清楚地使用了她的特定符号,但 DFD 有不同的符号并不少见不同的来源,而我几乎找不到在用例图中使用箭头的必要证据。

        也就是说,即使在没有箭头的情况下,我记得在辅导课上问过一位导师(不是讲师)有箭头线和实线有什么区别,他说没有,我可以两者都用。显然,我只有我的话,从你们所说的来看,我怀疑任何处于学术地位的人都会承认说出一些可能使他们处于防御地位的事情。我的错误是没有直接与讲师交谈,但事后看来我显然会这样做。

        无论如何,我会就所有这些信息与她交谈,并要求她考虑到这个“诚实的错误”。不仅是用例图,还有其他几个问题,我在这些问题上的得分异常多,尤其是当我的答案与她提供的模型答案几乎相同时。我还知道很多其他要求作业的学生都被评了分。

        希望她善良,并运用良好的判断力来提高我的分数。等我知道了会在这里发帖。

        再次感谢您的帮助,请发布您可能拥有的任何其他信息/建议。 :)

        【讨论】:

        • 编辑您的原始问题以包含新信息,而不是在答案中发布新信息;这样每个人都会看到新信息,而随着时间的推移,您的附加“答案”帖子可能会滚出第一页。它还清晰地将问题与答案分开!
        【解决方案7】:

        你的导师因为在你的使用图中没有使用箭头而给你一个 0 分,这就是他教你关于软件工程的错误知识的一个例子。

        在现实世界中为软件产品创建规范并不是正确的。

        这是关于创建一个动态文档,为您的项目奠定基础。任何规范的关键方面是:

        1. 项目组实际阅读
        2. 该文档可有效捕捉您的意图

        您应该学习的是如何以正确的方式绘制箭头的想法是荒谬的。如果有机会,您应该阅读这篇文章:

        http://www.joelonsoftware.com/articles/fog0000000024.html

        它很好地捕捉到了我的情绪。

        听起来你需要假装对 UML 箭头感兴趣,才能完成你的课程。我给你的建议是:

        1. 做必要的事情以在课堂上取得好成绩
        2. 在您完成期末考试后,请忘记您在该课程中学到的所有内容,因为它只会伤害您。
        3. 拿起一份this book 并阅读它。整件事。

        【讨论】:

        • 谢谢 Scott,我一定会买这本书的。
        • 我才意识到文章的链接原来是指向书的。它不应该的。如果你还没有读过这篇文章,你应该。它将您的讲师试图向您提供技术的东西与巨无霸进行了比较。这很重要。
        • 再次感谢斯科特。喜欢这篇文章,我想我可以理解。 :)
        猜你喜欢
        • 2012-05-05
        • 2019-10-19
        • 2021-04-24
        • 2018-06-11
        • 2019-01-19
        • 1970-01-01
        • 1970-01-01
        • 2012-04-01
        相关资源
        最近更新 更多