CNET just announced that NASA will use the Model driven architecture capabilities in the IBM Rational line of software development products to manage the software to power the James Webb Space Telescope.
The concept take WYSIWYG much further, in that you’re using visual models to create and update entire architectures, not just building user interfaces.
This is particularly interesting because of what Martin Fowler, a luminary in the object-oriented analysis and design, has to say about UML as a programming language.
In the first chapter of UML Distilled, Martin Fowler describes the three common methods for using the UML today:
At the heart of the role of the UML in software development are the different ways in which people want to use it…
To untangle this, Steve Mellor and I independently came up with a characterization of the three modes in which people use the UML: sketch, blueprint, and programming language.
By far the most common of the three, at least to my biased eye, is UML as sketch. In this usage, developers use the UML to help communicate some aspects of a system…. Most UML diagrams shown in books… are sketches. Their emphasis is on selective communication rather than complete specification.
In contrast, UML as blueprint is about completeness… the distinction, I think, rests on the fact that sketches are deliberately incomplete, highlighting important information, while blueprints intend to be comprehensive, often with the aim of reducing programming to a simple and fairly mechanical activity. In a sound bite, I’d say that sketches are explorative, while blueprints are definitive…
Eventually, however, you reach the point at which all the system can be specified in the UML and you reach UML as a programming language. In this environment, developers draw UML diagrams that are compiled directly into executable code, and the UML becomes the source code…
Later in the chapter, Fowler goes on to express his opinion about the third usage,
In my view, it’s worth using the UML as a programming language only if it results in something that’s significantly more productive than using another programming language. I’m not convinced that it is, based on various graphical development environments I’ve worked with in the past. Even if it is more productive, it still needs to get a critical mass of users for it to make the mainstream. That’s a big hurdle in itself.
Prior to this announcement on CNET, I had taken a very pragmatic approach to using UML to model applications: use them as a way to sketch or document your code, as Fowler describes above.
However, if IBM and NASA can pull this off, it would be huge coup for UML as a programming language, not to mention putting regular programmers and developers out of work…. except, of course, those who write the software that creates the UML modeling tools in the first place… :)
Peter Seebach returns with another crotchety installment of his “Cranky User” column at developerWorks. :)
A couple of my favorite points:
A shocking number of people still believe that Web pages should be designed to run only with the most common browser, because that way more people can use them. This is ridiculous; if a page works with every browser more people can use it!
Search engines go a long way toward bringing users to your site, but only if your pages are navigable by spiders. That means adding a few plain old links to the brilliant, enthralling, and genuinely challenging flash video game you use for site navigation.
I attended a class last week on “Mastering Object-Oriented Analysis and Design with UML 2.0.” This training gave me a chance to step back from Web site development and instead focus on the vocabulary and diagram standards which model software requirements and design.
This is a skillset I’ve wanted to cultivate for some time and the class happened to coincide with three other events:
- O’Reilly released a new book in its highly-touted “Head First” series, “Head First Object-Oriented Analysis & Design,” which I hope to get my hands on soon to reinforce what I learned in the class.
- IBM Rational launched version 7 of its Software Development Platform, which includes significant updates to Rational Application Developer and Rational Software Modeler.
- I passed the Sun Certified Web Component Developer exam, which is a prerequisite for Sun’s Enterprise Architect certification.
So, with these new resources and milestones in tow I intend to take some real steps away from an IT Specialist role towards an IT Architect career path.
Wish me luck :)