▲ | ak_111 5 days ago | |||||||||||||||||||||||||||||||||||||
What happened to UML? I remember it was everywhere in enterprise computing 20 years ago but seems to have disappeared now. Is it still around or did it go the way of SOAP, Java Applets? If not, what has replaced it? | ||||||||||||||||||||||||||||||||||||||
▲ | dwaite 4 days ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||
Underneath the good ideas of UML was the idea of model driven development - that you could generate code from the models. Good diagrams are an art form though, just like other forms of good documentation. There is a big difference between a diagram being a normative source of truth, and being a good tool. Take this diagram as an example: https://takaakit.github.io/uml-diagram-for-ddd-example-in-ev... * Nearly the top half is taken up by relations which aren't especially helpful, and would be better expressed on the entities themselves. * The "Location" type looks like the primary type in the system based on nearly half the types in the system connecting with it, creating a nest of graph edges. However, this is likely a simple and immutable record type. If the entities in this diagram had attributes (e.g. like a class diagram), you could refer to it by name, and greatly simplify the cognitive load in understanding this picture. This is the sort of diagram that gets generated from code, and is at the level of specificity needed to generate code from a diagram. It also isn't very useful for using the model to convey the system to a person - a developer might be more comfortable reading the code rather than looking at a picture generated from it. IMHO, that split focus in UML between people and tooling greatly reduced the overall usefulness and understanding of the system. It gave UML a bad reputation. Training on MDD tools prevailed over providing a baseline of common nomenclature to enable "team cave drawing on a whiteboard", which has no commercial tooling or market other than the whiteboard and markers. The areas where visual languages have a bit more prevalence are on the business modeling side, including things like network architecture diagrams. It is a bit of a shame - going through a set of use cases while iteratively improving the architecture by improving a set of class, sequence and ECB diagrams is something I always found to be crazy efficient vs diving immediately down to prototype code. | ||||||||||||||||||||||||||||||||||||||
▲ | dcminter 5 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
I'm kind of hazy about where the boundaries between bona fide UML and PlantUML are, but PlantUML is in pretty common use in my world - more for sequence diagrams and state diagrams than class diagrams though. Of course PlantUML has competition from things like Mermaid, but they're all much of a muchness. My very non-scientific impression is that tools like Rational were mostly used for drawing class diagrams and ... that just turned out not to be that useful because the tooling didn't exist to round-trip changes in the code back into the diagrams meaning the diagrams lost parity with the code rather quickly. It was sort of useful in the linear design/code/deliver world, but we're a lot more iterative now. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | elric 4 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
It's still being taught in schools AFAIK. Had an intern a year ago whose school forced them to go the whole nine yards with UML. Our company gave them a project to build, and their school made them draw use-case diagrams, class diagrams, sequence diagrams, and activity diagrams, before the student was allowed to write any code. This was a waste of everyone's time, and we gave the school some choice feedback which I'm sure they'll ignore. Sequence diagrams are still used quite a lot, and for good reason, they're incredibly useful. I see simple class diagrams quite frequently as well, but without the poorly designed arrow nonsense (shaded? open? closed? argh!). | ||||||||||||||||||||||||||||||||||||||
▲ | whartung 5 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
I think folks upgraded to GML [0] | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | zabzonk 5 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
Just my opinion, but I think that folks realised it was not much use for initial design, but could work reasonably well for documentation of existing systems. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | ohgr 5 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
UML never matched reality and this isn’t really an engineering discipline even if we pretend it is. You can really break UML by specifying a system then changing it a number of times. That process will hurt you. Badly. | ||||||||||||||||||||||||||||||||||||||
▲ | globalise83 4 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
In payments and most other industries with a lot of connections to 3rd parties and complicated transactional flows, UML diagrams (especially sequence diagrams) are used a lot, albeit mostly as a conceptual tool rather than some formal description (see for example the Stripe docs). I also see UML state chart-like approaches being used more formally in frontend (e.g. XState). | ||||||||||||||||||||||||||||||||||||||
▲ | riffraff 5 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
UML as a methodology seems to have disappeared, but bits of it (e.g. sequence diagrams) seem to have been absorbed by the profession at large. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | codethief 4 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
IIRC it got a bit out of fashion towards the end of the 2000s along with the OOP fanatism it was closely related to. | ||||||||||||||||||||||||||||||||||||||
▲ | pjmlp 4 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
Just this week I did a bunch of UML diagrams. It is pretty much alive in big corps. I imagine it got out favour on hipster coffee shops coding their next big idea, rewriting multiple times, instead of validating their ideas in first place. Github supports UML diagrams in their markdown for a reason. | ||||||||||||||||||||||||||||||||||||||
▲ | hirvi74 4 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
My theory is that Agile killed it. UML requires a lot of planning up front, and in my unfortunate experience, any sort of planning is completely antithetical to Agile. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | ChrisMarshallNY 4 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
I occasionally use a “UML Lite,”[0] to illustrate stuff, but I seldom work at the scale that I would consider it necessary. I generally keep my designs in my head. Makes for much faster, and higher-quality work. [0] https://littlegreenviper.com/the-curious-case-of-the-protoco... | ||||||||||||||||||||||||||||||||||||||
▲ | ramon156 5 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
We still learned UML diagrams in school in 2019, though I have to say I haven't used it anywhere in my job | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | titaphraz 5 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
UML was a scam really. They took a lot of very useful diagrams and created a absolute behemoth of unproven system to develop software and sold it. The diagrams are very nice and useful. But the UML as a process, if taken literally, it a total disaster. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | watsonjs 4 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
I think its abandonment is related to the adoption of agile methodologies. UML was used to describe systems from day one. Agile methodologies came in, claiming that we don’t need it. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | andrewstuart 4 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
UML and waterfall/Big Requirements Up Front/analysis paralysis all ride in the same car. Agile and scrum and iteration saw them off. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | NBJack 5 days ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||
Just another data point that the "low code/no code" revolution sputtered out over a decade ago. I still see and use a small subset of UML for more complex architecture discussions, but that's about it (i.e. service nesting, message passing, etc.). |