Swimlanes.io – generated editable sequence diagrams
swimlanes.io
swimlanes.io
1. Plant UML: http://www.plantuml.com/plantuml/umla/SoWkIImgAStDuNBCoKnELT...
PlantUML supports many diagram types, and there's a nice VS Code plugin with side by side live preview.
2. https://www.websequencediagrams.com/
Has a hand-drawn style option which is nice:
[1] https://docs.requarks.io/editors/markdown#mermaid-diagrams
I was just looking at that a few days ago. But don't want something that works on-line. Any good equivalent local tools?
you're welcome to PR in some commentary on each of them though. or fork it and curate. its open source knowledge :) https://www.youtube.com/watch?v=XoATf7xGoUY
The source shows up in edit mode (no external app needed; and it's always correct) and it handles the rendering for you, thus reducing friction.
In other places I've seen people attach a PNG. If you're lucky, they've also attached the corresponding (and up-to-date) source in visio/draw/ppt/whatever random app format, in which case making a small edit might only takes ten of minutes. In the worst case, it's missing source, the source file is not the same as the PNG, or they used some program you don't have, and you have to totally redo it. For most people if the friction is too high, it just doesn't get updated.
[1] https://marketplace.atlassian.com/apps/41025/plantuml-for-co...
- on-demand preview of changes before i hit save
- source code is always embedded with the diagram and anyone can reference and edit
- source controlled history via confluence history
I've used mermaid extensively but ultimately abandoned it because it didn't have a good flow for sharing the source and history. Confluence + PlantUML is a great solution.
no upsell and pretty full featured. developer is responsive (i’ve had a couple minor things addressed).
most importantly you can export to svg. then i load into inkscape if i need a tweak for publication
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/webfont/1.6.28/webfontloader.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.3.0/raphael.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-sequence-diagrams/1.0.6/sequence-diagram-min.js"></script>
<body>
<div id="diagram"></div>
<script>
var diagram = Diagram.parse("A->B: Message");
diagram.drawSVG("diagram", {theme: 'hand'});
</script>
</body>
</html>
And this will draw render a sequence diagram in any browser. I've used this to have as documentation in the /docs folder of project Git repository for some of my teams. It is great because it is pretty easy to update and maintain changes via VCS.Looks a lot cleaner, and the .html itself is a valid diagram as the script tag that bootstraps the renderer is prefixed with a comment hash.
EDIT: I used to have this in a gist that I'd load via rawgit.com, but since that's no longer active, I figured I'd update my script and make it publicly available through unpkg :)
Alice->(5)Bob:message1
space -6
Alice(4)<-Bob:the other\nmessage
I don’t think diagonal arrows really help with this and will be harder to deal with because they could get overlapping really quickly.
But if things are truly out of sequence use something other than a sequence diagram. Just a regular flow chart, or activity diagram, or state diagram.
I have been using sequence diagrams a lot for embedded or real-time systems a lot last year, and travel time is important there.
Besides, it allows to have one diagram abstract from another, without modifying execution times.
https://www.websequencediagrams.com/?lz=dGl0bGUgVW4AAwVkCgpB...
Premium version allows crossed messages: https://www.websequencediagrams.com/cgi-bin/cdraw?lz=dGl0bGU...
I've used websequencediagrams.com and PlantUML to create them before, and honestly I much prefer using an open source CLI tool for this than a closed source service, even if it's free to use. The day the site goes offline all my Git versioned diagrams would be useless.
If the authors are reading: have you considered releasing a standalone CLI tool? It could even be open sourcing the site itself and packaging it as a Docker image. If not, exposing an API like wsd.com has would be very useful.
But it's not a request, I doubt I'll ever use this because of my initial points. If it was a CLI tool that converted plain text input to image I'd consider trying it out.
Especially Mermaid [1] is supported by a lot of Markdown editors and can be directly rendered in browsers by including the javascript library. Without any data protection issues.
PlantUML needs a server or an installation (Java) which can be self hosted as well. And provides a ton of integrations [2]. And of course it supports sequence diagrams [3]
[1] https://mermaid-js.github.io/mermaid/#/sequenceDiagram
Their UI is incredibly well designed/intuitive. Does swim lanes quite well - along with most other charts/diagrams... and there's a desktop version too.
https://marketplace.visualstudio.com/items?itemName=hediet.v...
I've recently tried to find a suitable solution for this on StackOverflow, but I've been rejected under the "Opinionated question" remark (::sigh::), so I could just as well do it here.
Is there a (Java based) sequence diagram generating tool/library that has the following functionalities:
. supports multiple threads and thread referencing in messages (multiple activations per lifeline)
. supports delayed messages (message trasmission and message reception can occur at different times, i.e. sending a message does not imply immediate reception on the other side)
. no custom language/pseudocode as input, but builder-style approach (I use Java to generate a text description of the diagram and then pass it to the library for parsing - I could just call the methods the parser calls and remove the unneccesary middle man)
. highly customizable visual style (PlantUML, the most flexible I've found in this regard, is notoriously bad at styling, mostly due to a lack of a coherent styling paradigm)
If not, how many people would be interested in such a thing? I may start it as an open source project myself...
Sequence diagrams are by far the most effective way to communicate system behavior.
These, and boxes-and-lines diagrams to communicate component relationships, are all that's necessary to document a system of arbitrary complexity.
A sequence diagram describes an exchange of messages between different objects.
A statechart describes the states of an individual object and how it transitions between those states.
Note that in addition to being editable, they are executable and can be used to implement state transition logic in node/browser JS code.
The visualizer is used throughout XState's docs.
Blockdiag/Seqdiag has a pretty good RST integration for Sphinx.
Lately I've been using the ZenUML diagram plugin for Confluence which lets you do sequence and other diagrams using Mermaid-JS.
Considering that the author of swimlanes.io seems to have mastered the part where the diagram is encoded into a URL, it feels like making plugins to popular documentation systems is the obvious next step to making this useful for engineering orgs.
https://github.com/kjagiello/diagwiz
https://diagwiz.io/playground/ (not really mobile friendly)
Question: are there any good tools to automatically represent (almost) any code as diagrams?
Use case: I wrote a pretty complex simulation in Python, which is a little hard to explain to my colleagues. I would like to have, e.g., a sequence or a swimlane diagram to help others understand what is going on. I would like this diagram to be automatically generated by other software (IDE extension, plugin, package, etc.).
Would you have any suggestions?
here’s a ref to get you started: https://stackoverflow.com/questions/517589/tools-to-get-a-pi...
(If any Python person is reading it, please share your recommendations.)
Edit: ok, you need to add at least a colon after every edge
I never understood why website operators don't just serve their scripts and fonts locally.
Generating quick sequence diagrams helps a lot to articulate ideas. Ever since wfh, I have used these tools a lot of communicate design flow with team mates.
I never would've thought making a Latex for diagrams! I can't think of an immediate use case but this is really cool!
1. Load an example you can play with to start so you can see what the product does
2. In the examples dropdown, use meaningful names instead of obscure acronyms
3. Make the top example serious instead of some cutesy nose flute thing with made-up onomatopoeia labels
I was hoping to see a swim lane diagram? Could you add that as a feature? Then I can share it with some business analysts who love that kind of thing.
In UML parlance, you're looking for partitioned activity diagrams. These are, in fact, "true" swimlane diagrams. Hmm!
Show HN: Swimlanes – A web app for creating sequence diagrams with Markdown - https://news.ycombinator.com/item?id=15930923 - Dec 2017 (14 comments)
Looks like it was already a functioning tool back then... Can anyone who uses it jump in on this?
These are very simple.
https://qi.elft.nhs.uk/resource/driver-diagrams/
http://www.ihi.org/resources/Pages/Tools/Driver-Diagram.aspx
The problem is that you want something that a small team can collaborate on; that allows them to control where it's stored and viewable; that works with baffling NHS bureaucracy; and is very easy to use. You want something that allows actions to be attached and completed. And you might want to allow it to link to other documents. (For example, "we tried change idea 1, and we didn't see any improvement, here's the data").
The other problem is that most software will apply colour vertically to a column, but you probably don't want that. You want something that allows horizontal stripes.
Vertical: https://tse4.mm.bing.net/th?id=OIP.hhpwTzkH7yvSFeBY61hM7wHaF...
Horizontal: https://tse1.mm.bing.net/th?id=OIP.i9BwtTbgKV-UGlO5675QtgHaF...
Horizontal: https://tse4.mm.bing.net/th?id=OIP.4oy4eY78Ik4sl5r2ygFpvgHaE...
There's something called LifeQI which is good but a bit spendy and it covers a lot more detail than just driver diagrams.
[bug] Swimlane name changes aren't propagated to notes.