UML Diagrams Debate
The cluster discusses the usefulness of UML diagrams (especially class and sequence diagrams) for software design, communication, and documentation, debating their pros, cons, alternatives like boxes-and-arrows, and whether they should be taken more seriously versus autogenerated or simplified.
Activity Over Time
Top Contributors
Keywords
Sample Comments
Developers need to start taking Flowcharts, UML more seriously - I think most people don't see it's full power.
My personal opinion (based in part on HN):- In a nutshell: everyone should know about UML and how some relevant diagram types look. Nobody should use it religiously.- Diagrams are great tools for communicating ideas and implementations on an abstract level, and for interactively thinking about ideas that can be drawn in some way. A diagram can also visually highlight problem areas (e.g., components with many dependencies).- Good use cases for diagrams in SE are e.g., explaining high-lev
There's a place for UML in the README.md; as some other commenters have pointed out, UML works much better as a sketching tool than as a total definition of a software system. A couple of quick class diagrams at the top level (probably generated using something like https://plantuml.com/) might provide a better communication model than text.
I've definitely found UML class diagrams useful for that, and probably if I knew them better, they would be more useful. Other kinds of UML diagrams, like sequence diagrams, might be even more useful, especially if they had been designed better. But I feel like they belong on a whiteboard or a sheet of paper, where you can throw them away once you're done having the conversation; automatically-created UML class diagrams in my experience tend to be too unfocused to be useful (containi
I've used UML to communicate certain things about code. Class or sequence diagrams are great tools to explain code structure or workflow. Of course it's not very frequent that I need to use them, but they're still useful.
UML is very useful to communicate ideas and designs to the rest of your team. It doesn't have to be 100% strict UML. It just has to get the point across. I use http://www.asciiflow.com/ to make simple UML diagrams that I add to my code when it helps clarify the code's structure. So I disagree that you have to "live in the land of too-tight blue ties" to find UML useful.
It's useful to convey architectures. The problem is that UML has been abused by some vendors that implemented bad software based on "Rapid UML Development" and it soured a lot of developers. Also it is very old java OO oriented. But Sequence diagrams are still in use.
Yes this could work for personal things. But it is often you need to represent your understanding of the current state of affairs and propose your ideas, so the UML is a good tool to do it - everybody understand it or could learn in like 0.5 hour.
I'm curious why you didn't try UML or SysML instead?
The key problem with UML was that it was trying to work on a too low a level, essentially replacing code with diagrams, which didn't really work. The only UML diagram that is still relevant today is the sequence diagram, because it has just the right balance between being too abstract and being too specific.In my experience, the best approach in documenting software systems is the C4 model: https://c4model.com/</