6 ms·
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.
by scrapcode 4y ago
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.
- capableweb 4y agoFollowing 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.
- Vanit 4y agoOnly 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.
- rjsw 4y agoUML diagrams with UML behind them are used in aerospace. PlantUML just does diagrams, not full UML.
- inetknght 4y ago> 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 https://github.com/mavlink/qgroundcontrol/pull/9595 [2]: https://github.com/airmap/qgroundcontrol/pull/6 https://github.com/airmap/qgroundcontrol/pull/6
- tomduncalf 4y agoI 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).
- lifefeed 4y agoI 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 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.
- PinguTS 4y agoThat 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.) ;)
- cyanydeez 4y agoResult 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
- emerged 4y agoI 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.
- bluGill 4y agoMost 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.
- inetknght 4y ago> 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++?
- PinguTS 4y agoI 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.2/model_domains/generatesourcecode.html https://sparxsystems.com/enterprise_architect_user_guide/15....
- bluGill 4y agoProprietary, and it was 20 years ago, I don't remember what the tool was anymore. I doubt it is still available.
- throwawayForMe2 4y agoI 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.
- ClumsyPilot 4y agoI 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
- Saint_Genet 4y agoI’m a system architect within the world of large industrial systems and I have never seen a UML diagram in the wild.
- thiht 4y agoSequence 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.