UML序列图的形式语言

时间:2014-11-04 04:16:59

标签: uml requirements

是否有一种形式语言可用于将UML序列图中的信息捕获为文本格式,这是人类易于理解的?

在我们的位置,软件需求通常是根据复杂的序列图来指定的,这些序列图难以检查,验证是否正确并进行了更改。恕我直言,程序员更愿意从需求的明确文本表示,而不是从庞大的多页图表实现。

3 个答案:

答案 0 :(得分:5)

(1) ,有一种专有的几乎正式的文本格式语言能够在程序员可以理解的UML序列图中表达信息(也可能是其他一些人类)。

我所说的语言是由Steve Hanov设计和实施的,https://www.websequencediagrams.com/examples.html提供了完整的示例列表,我强调了下面的一个示例,以便您可以获得可读性的想法:

enter image description here

(2)但是,请注意您(或其他人)可以使用任何语言(文本或图形)编写错误,不可读的代码,并且更改语言不会自动更改您的(或某人)别的习惯是让代码自动更好,更易读,更易于维护

(2.1)写下" 要求的明确文字表示",例如以客户认可的用例形式,这不是一件易于操作的事情,也不是一件容易学习的事情,只是语言的改变不会有太大的改善。 (参见例如Stack Overflow: From user stories to sequence diagram以获取更多指示)

(2.2) UML序列图的目标受众(读者)不仅是程序员,也是技术含量较低的利益相关者,对于这些人来说,图片可能值数千字。在我看来,给程序员提供Java伪代码,如果需要,甚至可以通过工具将其反向工程到UML序列图中(参见Stack Overflow: how to generate sequence diagram from Java source code或Google:" java序列图"以获得更多指针)比试图找到/发明特定于序列图的语言

更好

(2.3)肯定有一些工具可以帮助阅读大型UML设计,方法是使用缩放,超链接,折叠/扩展块等功能,调整显示的细节级别,以及像{{{ 3}}可以将典型的多页图转换为单页图


根据您的说明,在您的位置,您似乎有处理问题,并且您最好在A3 or A2提出问题

  

我可以在这里询问哪些主题?

     

程序员Stack Exchange 是一个Q& A网站,面向软件开发和相关领域的专业人士和学生,他们有兴趣获得有关软件开发的概念性问题的专家答案。

     

如果您对...有疑问

     
      
  • 软件要求
  •   
  • 软件架构和设计
  •   
  • ...
  •   
  • 开发方法和流程
  •   
  • 软件工程管理
  •   
  • ...
  •   

答案 1 :(得分:2)

xmojmr的方法是记录用例场景的有效方法,如果您的序列图令人困惑,可能是因为它们没有充分记录。正如xmojmr所说,一张图片胜过千言万语,但有时几百个字确实有助于解释图片!我想分享一些你可能会觉得有用的背景知识。

我认为将需求描述为具有三个级别的过程,其中用例场景是第三个级别。顶级是一个用例图,显示了系统中的不同用例和使用系统的利益相关者之间的交互方式。下一级是每个用例的详细信息。我为此使用了“用例叙述”。第三级是通过用例的每个单独路径(“用例场景”)。

第二和第三级之间存在很多混乱。这部分是因为它们在某种程度上是一起运行的,例如,通过用例分析相关的成功和失败路径作为一个场景而不是两个场景是合理的。至少,我更喜欢将它们视为一种情况。

我更喜欢使用活动图来记录用例叙述。虽然您可以使用序列图(至少2.0版本)做任何事情,但IMO发散行为,决策树和并行行为在活动图中比在序列图中更明显。因此,每个用例一个活动图,然后是用例中每个单独场景的一个序列图。

在您的过程中,序列图看起来没有正式的用例场景文档。如果你谷歌“用例场景”,你会发现许多这样的例子。但是,请记住,很多例子实际上都在记录我所谓的“叙事”。

我正在使用Tom Pender的 The UML Bible 中的术语(Wiley Publishing,2003)。另一本伟大的书是Alistair Cockburn的撰写有效用例here是一个很好的样本。

答案 2 :(得分:1)

另一个使用类似语法的在线文本到图表工具。 http://echoma.github.io/text_sequence_diagram/