UML Diagrams Designer via Code
sequencediagram.org
sequencediagram.org
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.
So in short: kinda.
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.
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).
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.
(Of course, depending on how you define "better" and "worse" for yourself.) ;)
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
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.
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++?
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 also use database diagrams a lot to specify complex data models. It helps to see the model and it’s relations.
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).