- November 2004 Cutter Benchmark Review: Software Modeling: At the Cutting Edge
- November 2004 Cutter Benchmark Review: The Software Modeling Revival
- November 2004 Cutter Benchmark Review: Is the Market Right for MDA?
- November 2004 Cutter Benchmark Review: MDA and JAVA
- November 2004 Cutter Benchmark Review: Agile Data Modeling
- November 2004 Cutter Benchmark Review: Agile MDA
Software modeling is getting more fashionable, but it has a long way to go before it becomes as respectable as writing code. Which is funny in a way, because code is just one particular kind of model! Too many people get hung up on the graphical nature of modeling techniques such as the Unified Modeling Language (UML), forgetting that they have underlying textual representations as well.
The difference between UML and Java is just one of degree: both are abstractions, which highlight the details that we humans find most important while hiding those that we deem extraneous. But whereas we have tools (known as compilers) that efficiently translate source code into executable software, we are only beginning to create tools for doing the same thing with UML.
Since it is not yet possible, in the general case, to turn a model into a program without human intervention, we should not be surprised that many people -- including IT experts -- consider models a medium for communication. For instance, Martin Fowler, chief scientist at ThoughtWorks, distinguishes between three UML models: UmlAsSketch, UmlAsBlueprint, and UmlAsProgrammingLanguage. In other words, UML can be used in an informal way for sketching designs, in a precise way as a programming language, or in an intermediate role as a detailed blueprint of software that is then coded by developers in the traditional way.
The first models, decades ago, were "sketches," evolved by experienced programmers to help them grasp the salient points of a design. Data modeling was the first to be refined to the status of a "blueprint," followed at a respectful distance by structured design, and then object-oriented design.
It is only with MDA that modeling has reached out toward Fowler's third classification, in which models are used as a programming language. Even within the MDA community, not everyone believes in the proposition of UmlAsProgrammingLanguage. Those who do compose the "translative" school. The "elaborative" group, which is larger and includes most of the big vendors, inclines toward UmlAsBlueprint.
In the two-part article "The Software Modeling Revival," Cutter Consortium Senior Consultant E.M. Bennatan turns up some thought-provoking facts. We learn that nearly everyone uses modeling in one way or another, and nearly half of us do so "extensively." The worst problems? Keeping models in step with reality and getting hold of enough people with the right skills. In Part II of his article, Bennatan asks how complex models should be and puts forth some searching questions about formal and informal modeling techniques. My opinion piece then dovetails nicely with Bennatan's thoughts, as I challenge the otiose belief that MDA is bound to fail because it entails change.
In our third article, Cutter Consortium Senior Consultant Paul Harmon notes that MDA is gathering momentum, while warning that it will probably take several years to enter the market mainstream. Meanwhile, Harmon reasons, it can help to tackle some of the application integration problems that plague large organizations.
Next, Cutter Business Technology Council Fellow Ken Orr chips in with a practitioner's warning about the dangers of uncontrolled abstraction. Data modelers enjoy the luxury of simplification and -- insulated as they are from the awkward details of business life -- risk making big assumptions that are not always justified. Instead of trying to build comprehensive data models all at once, Orr urges, would it not be wiser to adopt an incremental approach? We could call it "agile data modeling"!
In keeping with the theme of agility, Stephen Mellor's article offers a tantalizing glimpse of Agile MDA in action. Currently chief scientist of the Mentor Graphics Embedded Systems Division, Mellor is one of the world's most distinguished modeling experts. Best known nowadays as one of the most radical (and vocal) advocates of the "translative" school of MDA, he has long been known as coauthor of the successful Ward-Mellor and Shlaer-Mellor modeling techniques. I for one cannot wait to read his soon-to-be-published book Agile MDA.
The articles in this issue of CBR present a varied, stimulating, and bang-up-to-date view of software modeling. I suggest that, while thinking them over, you remember that UML is still not entirely mature and MDA is a work in progress. In due course, they may well transform the way in which we develop and maintain software -- but first they need a while longer in the oven. So keep an eye on progress; monitor events; even assign a small team to evaluating the latest standards and products; but do not expect too much too soon. Rome was not built in a day.
-- Tom Welsh
Senior Consultant, Cutter Consortium; and Guest Editor, Cutter Benchmark Review