Some weeks ago we echoed a study (based on 50 interviews to software professionals) that showed UML adoption had not really taken off.
Today, we mention a post by Richard Soley (yes, the CEO of the OMG, the organization behind UML) that claims exactly the opposite and cites a poll in the SearchSOA.com (I guess probably open to all visitors of the site) asking: “Has UML changed the way you work on software?” to which 51.4% of the participants responded “Yes quite profoundly”.
Do I pretend to compare a scientific study published in a top conference with an online poll? Obviously not but I do want to show there is a diversity of opinions. Things in life are always more complicated than they seem đ
Some more “highlights” of RichardÂŽs post:
- UML can model any type of application, running on any type and combination of hardware, operating system, programming language, and network. (to what I say yes, but this doesn’t mean you should do it!, UML is a many-domains-language but up to a certain point)
- UML is the predominant modeling language (I think we can all agree with this)
- In the first decade or so after UML was adopted by OMG, the global market for object-oriented modeling tools jumped from $30 million USD to $4 billion USD! (even if many of them ended up unused or misused đ )
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. Â More about me.
I would like to see the results of a similar poll: âHas UML helped you to build better software?â
UML is and has been a big bussiness generator but I’m not sure if it has been so succesful improving the software industry.
Yes, UML has helped lots of us to manufacture better software, faster and closer to user needs.
Then we can also say, that our experience in how to manufacture better software, has helped in UML being bred and developed.
Another story is the 17-years war between software manufacturers, and big IT integrator shops (like IBM, Oracle, …), mostly driven by profit in body-shopping man-hours, fighting against productivity gains in model driven development practice.
I remember a model driven meeting in Bilbao, when a couple mdd leaders could not defend the industry-led trend towards body-shopping over model driven automation.
Also, after a decade of fierce fight over UML, UML 2.0 succeeded in being re-invented in a modular way, such that there was no such thing as a single language, but a family of languages.
From UML 2.0 to UML 2.5, all that flexibility has been lost (rather, I’d say, sold out) to the big vendors’ interest in monolytic approaches.
I wonder, if the contributions led by academics joining the fight lately, were actually sponsored by IBM (read: eclipse).
Hi Javier,
Better than a poll, some scientific studies:
“How effective is UML modeling ?”, Software & Systems Modeling
October 2012, Volume 11, Issue 4, pp 571-580, Michel R. V. Chaudron, Werner Heijstek, Ariadi Nugroho [1]
“A Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance”, Software Engineering, IEEE Transactions on (Volume:34 , Issue: 3 ), Dzidek, W.J. ; Dept. of Software Eng., Simula Res. Lab., Lysaker ; Arisholm, E. ; Briand, L.C. [2]
To summarize, yes, UML help to build better software! Although UML tooling is a big problem. This is what we are trying to change with GenMyModel [3].
“in terms of the functional correctness of the changes, UML had a practically and significantly positive impact, despite the fact that the UML subjects were not experts in UML and 430 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 34, NO. 3, MAY/JUNE 2008” [2]
“UML modeling is believed to contribute to shared understanding […] Another important beneïŹt is that early modeling
help validation […] decision whether or not to modeling in a software project is not so much driven by cost factors. Instead, this decision is strongly inïŹuenced by a hygiene factor: inadequate tooling” [1]
[1] http://link.springer.com/article/10.1007%2Fs10270-012-0278-4
[2] http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4459340&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4459340
[3] https://modeling-languages.com/genmymodel-towards-collaborative-uml-modeling-in-the-cloud/
The thing with studies (even scientific ones) is that for each one in favour of (UML) modeling we can find another one against.
In fact, I believe the topic UML or modeling is too broad to reach any conclusion we should investigate something more specific (like whether a given kind of modeling helps a certain kind of team in a specific software engineering activity)
Yes you right about studies. However, the fact on which almost all pros and cons UML agree is bad adaptation of existing tools.
I think we all agree with this (and probably it is such an absolute agreement that we don’t even need an study to confirm it đ )
UML tools may be are a problem. But tools for what? For drawing diagrams? For analyzing models? For using them in exeuction?
Maybe tools are not easy to use, but other software technologies are used even when tooling is not grea because they are great by themselves.
UML is really useful for discusing designs or for picturing architectures and it’s widely used for that purpose, but for drawing boxes and arrows you don’t need a powerful modeling language with a fancy tool.
The complexity (or power) of UML could make sense when using models for execution (interpreting the models or generating code), but having a modeling language like UML independent of a domain, architecture or framework makes that really hard so it must be completely tailored until you find yourself building a DSL. But designing a DSL (adapting UML or from scratch) is an strong investment hard to justify. You need skilled people and nice tool support which are both expensive. Additionally you’ll be tighted to your DSL and you will probably have a hard time supporting some requirements which were not taken into account when designing the DSL.
So, from my point of view, I don’t see software modeling to be widespread used but in niches where the suitable conditions are met. For most software projects with “aske me anything” requirements agile practices are an interesting way to go.
I found the comment by Javier on UML tools interesting and while I work for a tool vendor (not a fixed UML tool though đ I can well understand that people criticize tools.
What strikes me is that among all modeling tools ever developed, UML has had by far the largest number of tools supporting it (hundreds, if not thousands). So, despite the huge investments made on UML tool development people still complain on the capabilities of UML tools. Could it be that the problem is not in tools (or in their developers) but in the UML itself?
For me, using a modeling tool to visualize code almost 1:1 as e.g. class diagrams do does not make much sense. One class rectangle = one class file. That offers almost as much value than using a modeling tool in my assembler programming task where each modeling concept would map 1:1 to mnemonics used (<>, <>, etc). Therefore, it is far more useful to raise the level of abstraction above the code and use directly problem domain concepts as constructs of a modeling language.
@Javier: it is true that not every developer needs to create DSLs, but the investment needed depends a lot on tools applied. For example, CEA & LIFL found that the difference among tools is huge: For example, Eclipse GMF requires 50 times bigger investment than some other tools (see complete review http://www.metacase.com/cases/index.html#reviews). This investment is particularly relevant for project houses as there a project that could apply DSLs may have already ended without even yet seeing the first version of GMF editors.
So, that leaves us with plus MetaCase-smalltalk based meta-tool, Enterprise Architect, a few surviving installs of RRose, and lots of Eclipse-derived tools, with the promise of GenMyModel getting better.
I don’t think academics study has impact on industry development of sound solutions, unless and until their students get into the market. May be, this disconnect is one of the reasons while the hottest and coolest in industry startups are not using UML at all.
The generalization is of course a challenge but it is exactly what academic research wants to do: Find answers that can be applied in many situations (all the way to a theory building).
In practice, companies are happy if some technology X (read: models) solve their problem. Thatâs why Jordiâs suggestion to study specific situations makes a lot of sense. After having such studes on specific things repeated in many times then we can go into building theories or start to standardize things. No people rush into standardization and find later that it did not work…
The other reason why I favor Jordiâs statement is that it is exactly what domain-specific modeling languages deliver: âhelp a certain team in a specific software engineering activityâ. So, if the study would be repeated among companies that use domain-specific modeling languages â usually developed in-house â the answer if models help in building better software would be close to 100%. Any academics ready to study the use of domain-specific models?