David Marceau (2022-10-03T14:14:00.283024439+00:00) Permalink
You mentioned 2 things: UML and MDA. They are not exactly one and the same. UML is a OOA&D notation. MDA is about round-trip-engineering.
Coad & Yourdon's OOA and OOD books were my first, then I became aware of Booch OOA&D. "Object Solutions" by Grady Booch was golden. It actually crystallized in words what my intuition was telling me. The UML notation diagrams are there to make it easier for shareholders to collaborate on system requirements elicitation and clarification, especially intended to ensure all shareholders are on the same page throughout the Software Development Lifecycle. The "WHAT", sure the "HOW" was important as well, but if you didn't get the "WHAT" right, it usually meant great effort to add other capabilities into the existing definition of WHAT and then more effort in DESIGN/IMPLEMENTATION. The other huge risk was requirements creep. Adding new capabilities to an existing project before the first phase was completed. Surprise costs and effort everywhere. It isn't good for anybody.
Nobody could afford Round-Trip Engineering Tools that support MDA. Sure later, open-source tools to draw UML diagrams appeared, but none came close to what Rational Rose Enterprise was. Both FOSS Gaphor and FOSS Umbrello are remarkable efforts in that direction, but were lacking in certain capabilities where I valued UML the most for team communication: collaboration/communication diagrams.
I did find some decent UML and UML like tools out there still on the market. Most notable are Visual Paradigm Collaboration Diagrams
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml-collaboration-diagram/
and Structurizr Dynamic Diagrams https://structurizr.com/dsl?example=big-bank-plc
BOTTOM LINE: UML is not dead. I value it as an important part of Business Process Re-Engineering(BPR), but it's very difficult to get the business owners and shareholders to commit to investing in expensive MDA/BPR and using it. That's the real challenge. As a coder I see the value, but honestly the rest of the shareholders preserve to place their money in other priorities as they value it will have more impact to their business.
I think many in industry owners don't like the software subscription model. It is perceived as extortion/rent. We need a new form of infrastructure where all businesses/governments invest in the lower open-source foundations together to bring up the quality and capabilities in BPR FOSS tools GAPHOR/UMBRELLO to a point where it matches anything that's COTS. Systems would have a higher level of confidence of success if they used these tools in their workflows. Simply using a coding language is insufficient. Coders are well-known to communicate their concepts with machines, but they are not well-known to have social skills and presentation skills sufficient to convey the importance of other HIGH-IMPACT ROI tools because for coders its obvious so why would we waste our breath?
Thanks for the writeup. Quite informative for those working in standards.
Lawrence Tattrie (2022-10-04T15:57:55.938630715+00:00) Permalink
What problem is UML trying to solve? As a quick way to diagram on a white board a small data model then confirm with others in the room that this is a correct data model. The slogan "Information Engineering" was trying to imply that we could build computer systems like Engineers could build bridges. But the reality was almost all large computer systems were way beyond estimated budgets, deadlines etc. Some people thought that if the equivalent of a bridges' blue print could be created a system could be built by relatively cheap coders.
If there had been systems which modelled up front and produced a product on time and on budget many people would have been happy. But the way money flows is Zuckerberg "Move fast, break things", which means don't do planning up front because planning does not work because the customer changes their mind so often that the data model is not stable. A stable data model needs a stable company. Someone I have met worked as a consultant for insurance companies because no-one inside the companies understood their own data and data model.
Ask for a UML of the tax system. What you get in return is the record of the laws passed and the written interpretation of those laws but still uncertainty.
The rise of the internet makes deadlines much closer and thus less planning can be done.
P.S. I find it mildly interesting that your name is only a few characters away from mine.
John Siegrist (2022-10-05T02:19:45.506280435+00:00) Permalink
There are at least 2 fairly successful MDA implementations that both use the same principle: Start from a UML profile representing a subset of UML and define the semantics for that subset. Then map from the UML profile to the output generated code.
One of these is the commercial tool Integranova and the other is the open source xtUML, which focuses on the Bridgepoint UML modeling tool.
Dr Kevin Lano (2022-10-24T16:22:04.246693718+00:00) Permalink
At least with QVTr there is an actual consistent semantics, although well-hidden (cf. my SoSym 2021 paper on QVTr semantics). With some UML notations such as statemachines, their semantics remains unclear despite decades of research. The problem with QVTr is that large QVTr specifications are difficult to write, understand or debug, and tend to have poor quality/high technical debt (including the Rel2Core transformation that appears in the standard itself). Premature standardisation of something which seemed like a good idea but had no evidence of its practical application was certainly one problem in this case.
Coad & Yourdon's OOA and OOD books were my first, then I became aware of Booch OOA&D. "Object Solutions" by Grady Booch was golden. It actually crystallized in words what my intuition was telling me. The UML notation diagrams are there to make it easier for shareholders to collaborate on system requirements elicitation and clarification, especially intended to ensure all shareholders are on the same page throughout the Software Development Lifecycle. The "WHAT", sure the "HOW" was important as well, but if you didn't get the "WHAT" right, it usually meant great effort to add other capabilities into the existing definition of WHAT and then more effort in DESIGN/IMPLEMENTATION. The other huge risk was requirements creep. Adding new capabilities to an existing project before the first phase was completed. Surprise costs and effort everywhere. It isn't good for anybody.
Nobody could afford Round-Trip Engineering Tools that support MDA. Sure later, open-source tools to draw UML diagrams appeared, but none came close to what Rational Rose Enterprise was. Both FOSS Gaphor and FOSS Umbrello are remarkable efforts in that direction, but were lacking in certain capabilities where I valued UML the most for team communication: collaboration/communication diagrams.
I did find some decent UML and UML like tools out there still on the market. Most notable are Visual Paradigm Collaboration Diagrams https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml-collaboration-diagram/ and Structurizr Dynamic Diagrams https://structurizr.com/dsl?example=big-bank-plc
BOTTOM LINE: UML is not dead. I value it as an important part of Business Process Re-Engineering(BPR), but it's very difficult to get the business owners and shareholders to commit to investing in expensive MDA/BPR and using it. That's the real challenge. As a coder I see the value, but honestly the rest of the shareholders preserve to place their money in other priorities as they value it will have more impact to their business.
I think many in industry owners don't like the software subscription model. It is perceived as extortion/rent. We need a new form of infrastructure where all businesses/governments invest in the lower open-source foundations together to bring up the quality and capabilities in BPR FOSS tools GAPHOR/UMBRELLO to a point where it matches anything that's COTS. Systems would have a higher level of confidence of success if they used these tools in their workflows. Simply using a coding language is insufficient. Coders are well-known to communicate their concepts with machines, but they are not well-known to have social skills and presentation skills sufficient to convey the importance of other HIGH-IMPACT ROI tools because for coders its obvious so why would we waste our breath?