用例图 - 箭头绝对必要吗?

时间:2009-01-18 16:07:52

标签: uml diagram use-case

7 个答案:

答案 0 :(得分:11)

好消息

你的图表被正确绘制,你的导师错了:

  • 箭头在用例关联中是不合适的,因为它们是二元关联
  • 箭头是扩展,包含和使用关系所必需的 - 请参阅this diagram以获取所有三个的示例

UML specification v1.4.2 [PDF警告]第4.11.3节“良好规则”和5.42.2二元关联在这些方面非常明确:

4.11.3 Well-Formedness规则:“Actors只能与UseCases,Subsystems和Classes建立关联,并且这些关联是二进制的。”
5.42.2二进制关联:“二进制关联被绘制为连接两个分类器符号的实体路径”

坏消息

话虽如此,如果你的导师告诉你使用箭头但你没有,那么你可能没有追索权 - 这是学术界的一个弊端:一些教授希望学生只是回味他们被告知的东西,即使这是错误的。你可以向部门主任提出上诉,认为教授正在指导学生违反既定标准,但这很可能只会带给你悲伤。我确实认为你会有一个强有力的案例,因为你没有绘制不正确的箭头,因此在正确的图表上给你零点似乎过分,严厉和不合理。

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

警告:轻轻踩

假设这是一个诚实的错误,并要求教授解释为什么当官方OMG UML规范不使用箭头时他期望箭头(因此 每个兼容的用例UML工具将在二元关系上绘制箭头)。如果你进去那里开枪,你可能会或者可能不会感到满意,但是你也可能会产生一种仇恨,这可能会使学期的其余部分(可能还会超出)非常不愉快。

编辑:我确实认为较旧的工具和标准在用例图上使用单箭头(不是三角形或填充,只是“翅膀”),但这已不再适用。也许教授的标准 - 或软件 - 已经过时了; - )

答案 1 :(得分:3)

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

你学到的大部分技术要么是错的,要么就是无用的。在你的职业生涯中,无论你将作为一名专业人士使用的东西都是你在那里学到的东西,然后根据那种情况的特定需求,这无关紧要。

您将学到的是对事物的总体概述,这是您在职业生涯中无法获得的,因为没有人有时间以这种方式来看待它。在那里你将使用错误的工具来解决错误的问题,通常是因为一些愚蠢的原因,比如“因为高层决定这样做”。

所以把它作为一种学习经历。要想成为一名专业人士,你必须要知道正确的做事方式是一件难以实现的事情,并且自己做这件事,就像在这种情况下一样,可能会让你遇到麻烦而不仅仅是得分为零。

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

积累每个人总是错误的知识(包括你):当你有经验时,不要把你的教导用于任何事情,阅读其他观点并形成意见。

练习参与政治方面的艺术,以便在这些事情上发表意见。有一种方法可以让其他人做正确的事情,但它涉及很多社会工程和努力工作。

不要浪费你的时间。有些事情不值得纠正...

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

你的导师,在你的使用图中没有使用箭头给你0,就是他教你软件工程错误的一个例子。

在现实世界中创建一个软件产品的规范并没有让你的箭头正确。

这是关于创建一个活文档,它构成了项目背后的基础。任何规范的关键方面是:

  1. 项目团队实际上是在阅读它
  2. 该文件有效捕捉您的意图
  3. 你应该学习的是如何以正确的方式画出箭头的想法是荒谬的。如果你有机会,你应该阅读这篇文章:

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

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

    听起来想通过你的课程,你需要假装对UML箭头感兴趣。我给你的建议是:

    1. 做好在课堂上取得好成绩的必要条件
    2. 第二次你完成期末考试请忘记你在课堂上学到的一切,因为这只会伤害你。
    3. 拿起this book的副本,然后阅读。整件事。

答案 4 :(得分:0)

See here:

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

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

答案 5 :(得分:0)

我认为你在这里有很强的理由;)

引用当前的UML specfication (2.1.2)

  

Page 595,约束,2
   UseCases只能参与二元关联。

考虑到这一点,显示关联的可导航性的重点是什么?因为主体之间的交互(例如,用例和演员)根据定义是双向的(例如,演员做某事,系统响应等等)。

您还可以在本文档中找到示例用例图表,以进一步说明您的观点。

当然,对于其他用例构造,例如 includes extends 箭头是有意义的并且是必需的。但是,根据您提供的用例图,您没有使用这些,不应该因此而受到惩罚。

祝你好运

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

答案 6 :(得分:0)

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

那就是说,即使在没有箭头的情况下,我还记得在一个辅导课程中询问一位导师(不是讲师)有什么和箭头线和实线之间的区别,他说没有,我可以同时使用。显然,我只听取了我的意见,并且从你们所说的内容来看,我怀疑任何处于学术地位的人都会承认会说出一些可能使他们处于防御地位的事情。我的错误不是直接与讲师说话,但事后我很明显会这样做。

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

希望她会善良并且善于判断,以提高我的成绩。我发现时会发回这里。

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