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.
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.