我被要求制作一个序列图来记录我的应用程序发出的Web服务调用。
我不太了解序列图。他们很难阅读 - 很多行,而不是很多文字。例如,如果我想显示我的应用程序调用特定服务,传递一组数据并获取不同的数据集,那么就没有足够的空间在线路上并且线路返回到显示所有这些数据并指出它是GET或POST,如果没有这些信息,该图表是极简主义的,不是非常有用。我发现在文本文件或维基上记录这样的东西要容易得多。但是我看到流行的序列图是多么流行,所以我想我并没有“得到”#39;它们。
所以我现在有三个问题:
(1)有人可以向我展示一些特别好/有用的Web服务调用序列图示例,所以我可以看到这样做是怎么回事?
(2)当流有不同的逻辑路径导致不同的Web服务调用时,我应该在单个序列图中用if / then / else表示这些,还是为每种可能性创建不同的序列图?
(3)我知道序列图是基于UML的,但是UML是一种什么样的语言"?没有文字表示,对吗?这似乎是一种图表化方式,如流程图。
答案 0 :(得分:3)
您案例中序列图的目的是将某些信息传达给您的同事(或未来的自己)。真的没有“最佳”的方式去做,就像没有最好的方式来写这个答案 - 我已经重写了这个答案,如果我在一年内重新阅读我的答案,我可能会再次改写它,以便更清楚。
这里的图表也是如此;如果你自己不了解图表(假设你理解序列图的目的),那么其他人也不会理解它。
也许在你的情况下,这样的事情就足够了
首先关注沟通,担心以后会对UML规范“合规”。
(3)即使手语使用手势而不是文字,您会将手语视为一种语言吗?
类似地,UML具有代表各种概念的视觉元素的“词汇” - 具有生命线和消息的序列图表示演员(类)之间的一系列通信。此外,您可以在图表中添加注释以阐明您的意图。
(2)您可以同时执行这两项操作。同样,决定因素是沟通的清晰度 - 如果单个图表过于混乱,那么将其拆分并再制作一个或多十个(就像分割方法和类一样)。一个经验法则是在整个图表中保持相同的抽象级别 - 突然潜入实现细节可能会很快混乱。
(1)最好的方法是首先学习图表的“词汇表”,例如uml-diagrams.org,然后画一些东西,看看你是否理解它或者其他人是否理解它;如果您觉得可以“更好地”改写它,请不要害怕丢掉图表。
线路上没有足够的空间,线路返回显示所有这些数据
听起来像是一个工具问题;只是将线条分开,或者使用PlantUML之类的东西为你做这些。 (或使用实际的UML工具。)
该图是极简主义的,不是非常有用
然后丰富它,添加文本注释,将其拆分。将其用作文档的部分仅用于说明某些要点;您不必将该图用作唯一的文档工件。