Hacker News new | past | comments | ask | show | jobs | submit login
UML Diagrams Designer via Code (sequencediagram.org)
87 points by begoon on May 5, 2022 | hide | past | favorite | 39 comments



No other text to diagram tool also allows moving/editing diagram itself with mouse. I have shared this list[1] of all similar tools on web a few times before.

[1]: https://xosh.org/text-to-diagram/


Umlet allows that too. Though dragging won't change the structure.

https://www.umlet.com/


Nice list! How can I get https://cascade.page on there?


This is nice, added. At some point I will move the list to gist.github which will keep this page upto date.


You've clearly put a lot of work into assembling this list. I'm guessing the page would be significantly more valuable to readers and much more likely to be found by people interested in the the information in it if you added a brief sentence or two description of each of the projects.


More info I put there, more difficult it will be to keep it updated. There are tags/words below each to describe what that tool is for.


Wikipedia?

EDIT: https://en.wikipedia.org/wiki/List_of_Unified_Modeling_Langu...

This list is not a good fit for your XOSH list. It does include PlantUML but does not include a feature-breakdown. Instead it's simply a declaration of existence.


Looks like a web UI for PlantUML. Does anyone see anything more than that?

https://plantuml.com/


You can drag or modify the items in the diagram and it changes the UML, that's actually pretty neat. PlantUML normally only goes code to diagram.


It's pretty much that. I like to use https://www.websequencediagrams.com/ and/or plantuml plugins for vscode that can process locally or via api.


Or Mermaid, which is less capable but natively supported by GitLab and GitHub.


I really wish Mermaid and PlantUML had compatible syntax, or at least more overlap for the basic structural stuff. On a day to day basis I'm writing either PlantUML in Confluence (via a plugin) or Mermaid in GitHub, and I almost always have to open up the reference or review an existing diagram to refresh myself on the different syntax.


FYI there’s also a Mermaid plugin for Confluence, we use it extensively. If you don’t mind losing some features from PlantUML for the sake of consistency.


plant needs to have a UI to manipulate the drawings and round-trip the adjustments back into the spec. This is required for any non-trivial diagram.


There's also Mermaid which is natively supported by Github: https://mermaid-js.github.io/mermaid/


Are UML diagrams used effectively in the dev industry? I'm in more of an systems analyst / solutions consultant role and don't see them used much.


I draw boxes and arrows. Sometimes the boxes are rounded.

There was a study on this, UML in practice by Marian Petre. http://oro.open.ac.uk/35805/8/UML%20in%20practice%208.pdf where she interviewed 50 developers across 50 companies. Here's what she found.

- 50 interviews.

- 35 people don't use it.

- 11 use it selectively, just whatever is useful.

- 3 use it just once in a project, to generate code.

- 1 uses it to comply with customer or management requirements.

- 0 use it fully.


That study is almost 10 years old. Would be interesting to know if this has changed to the better or to the worse.

(Of course, depending on how you define "better" and "worse" for yourself.) ;)


Result would probably still be 0 use it fully.

I love the idea, but until UML is unbiquitous to generate like prettier is to code completion, it's relegated to a pedagogical device, and not a operable road map to learning a system that naturally grows and changes


Most of my UML is what I call whiteboard UML because we draw something that looks almost like UML on a whiteboard, then start implementing that. A couple weeks later we realize the implementation and the UML have diverged because didn't think of something so we erase the whiteboard. The initial drawing was very useful to get the implementation started.

20 years ago I worked at a place that keep the UML up to date. It was nice to have, every week I'd print out the latest and paste it on my wall, then as I developed I'd look over at the poster to answer questions. It only worked there because we generated out code from the UML and so up to date UML was always easy to find. If you don't have a dev process that keeps it up to date I don't think it is worth it.


> It only worked there because we generated out code from the UML

That sounds very interesting! Was that a proprietary tool/pipeline or is there something which I can use to leverage UML to generate some specific language... for example C++?


I did for a while code gen from UML, in IBM/Rational Software Architect. They would transform the model into an intermediate xml, which was fed to JSP’s for code gen.

We also used Sparx Enterprise Architect to model a large amount of business processes notated in BPMN, Use Cases in UML, business rules using a Sparx framework, etc. From these linked and traced models we generated comprehensive documentation using a nice framework that could walk the model and merge information into Word documents.


I know many cooperations in automotive use the UML tool from Enterprise Architect. There is code generation available: https://sparxsystems.com/enterprise_architect_user_guide/15....


Proprietary, and it was 20 years ago, I don't remember what the tool was anymore. I doubt it is still available.


> Are UML diagrams used effectively in the dev industry?

Are they effective? I say they are when correctly used. For example last year I used plant UML to draw a sequence diagram to demonstrate some threading/mutex problems. [1]

I've also used draw.io to draw similar problems. [2]

I would say that tbqh using UML (or maybe just plant UML) is the "better" solution because it can be embedded in code and re-rendered as needed. But draw.io is _much_ easier to use!

I will also say that UML diagrams aren't well taught nor do most devs even know to reach for the tool.

[1]: https://github.com/mavlink/qgroundcontrol/pull/9595

[2]: https://github.com/airmap/qgroundcontrol/pull/6


I was going to say, I used a sequence diagram last week to wrap my head around a threading situation. I think they are a good way to visually model anything asynchronous or thread based, and sometimes also user interaction flows, and I think UML's bad rep (is that fair to say?) means a lot of developers either are not aware of them or think they must have no value – I consider using them a bit of a secret superpower ;)

I do occasionally use ER diagrams for drawing out data models too, but I'm super rough about following the "rules" with both of these. Really just a convenient way to sketch stuff out (usually using PlantUML or Mermaid, as I find it quicker to do in ASCII).


I prefer BPMN, it is more specific and easier on the eyes. The fact that there are many different types of UML diagram means noone knows them well enough to navivate and create them


Following them like a holy-grail, no, not that useful. I usually use them to help juniors build a foundational skill about drawing graphs of architecture before implementing them, as the ground-work for discussing the proposed architecture. Also explaining to them that it doesn't have to be using the right fill/hollow arrow or whatever, more that the graphs themselves accurately describes the architecture.

So in short: kinda.


Sequence diagrams are extremely effective to document complex workflows. I’ve seen to many developers recreate sequence diagrams badly with boxes, arrows and numbers (to represent order) where proper sequence diagrams would have been a better fit.

I also use database diagrams a lot to specify complex data models. It helps to see the model and it’s relations.


I’m a system architect within the world of large industrial systems and I have never seen a UML diagram in the wild.


Only time I've seen them is when one of my jobs was contracted to the local Telco here who wanted all kinds of design deliverables.


UML diagrams with UML behind them are used in aerospace. PlantUML just does diagrams, not full UML.


I use them sometimes for component or sequence diagrams. I’m usually really happy with the result and get positive feedback for going to the effort. But stick to the 80:20 principle instead of diving down a UML pedantry rabbit hole.


Bullet points for requirements and one "box, swimlane, and cylinder" diagram (with no standard elements) for analysis and design if you're on a 'strict' project.

If we can't even decide on language A or B, CSV or JSON, ... (these are implementation artifacts that are essential to the solution), what hope do we have of even understanding- no even seeing that there is a problem in the other disciplines (requirements, analysis, etc) of technology delivery?

If we make it another 100 years, we'll look back at this time and view what we are coding now as wattle and daub huts whereas a century from now we'll be erecting the analogue of technological skyscrapers (but probably not good ones, if I'm being realistic).


I predict that the future development landscape won't be much different from today. In the same way that the development landscape today isn't much different to how it was 60 years ago. The only difference will be faster hardware, allowing people to use even slower languages to do just enough to get typical web applications to work. Developers will still be 95% focused on their own convenience instead of focusing on the business/end user. Developers will still "solve" problems by adding another layer of complexity and copy/pasting code they don't understand from somebody else. Developers will still be coding in languages that are around today (because legacy).


Very nice! I wish I had something like this when having to write papers for university. There are some nice tools but getting a consistent layout was always a problem. Are more diagram types planned?


Very simple but easy syntax with visual feedback: https://flowchart.fun/


Great work!


This is fantastic! Code and UI in one! please make every technology be like this




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: