Aug 03, 2004

Two Approaches to Modeling...

Jim Fawcette has an interesting article on IBM and Microsoft's differing approaches to modeling. While Microsoft is trying to bring modeling to the masses by using their own proprietary modeling language, IBM's Rational is trying to bring greater capabilities for the 6% of developers that use modeling tools, including support for UML 2.0.

6% of developers use modeling tools? I am partially surprised by this, but I am not. I have recently invested in Gentleware's Poseidon for UML; one of the reasons that I choose Poseidon over the many competitors was price (and experience with the open source ArgoUML (from which it was originally based on) and their free Community Edition). While Poseidon has many rough edges, the cheapest seat of Rational Rose is Rational Rose XDE Modeler and it is for $1,795 USD and ranges to Rational Rose XDE Plus, which goes for $4,370 USD per seat. Borland purchased TogetherSoft a year or so ago, and their products are comparable in price, ranging from $1,500 USD to $5,000 USD, except, for some reason, Together Edition for Microsoft Visual Studio .NET, which goes for $199 USD, which makes me rather suspicious of what you are getting.

With prices like these, though, there is no wonder that so few developers use them, especially since in addition to it, you still need other development tools, such as an IDE, because each application that I have used has always appeared to be separate from the development environment. Many organizations does not see the value of such tools, and therefore, will not invest this high-cost per seat. What we would really need is an extension of the IDE that has a UML tool, enabling you to create your classes and define their interaction and purpose in a diagram, and without an export (or code generation if you prefer), slip into a typical IDE environment, allowing you to refine your ideas, build, and test them, and finally, without an import (or round-trip engineering or reverse engineering), be able to extend your design.

My understanding of what Microsoft is trying to do is basically something to this nature, or at least this is what I have understood from what they have read. In Knowing The Language, I discuss how we create new abstractions in order to understand software better; a model of a software is an abstraction that allows us to thinking about software at another level, allowing us to concentrate on the big picture of what the software does, instead of what this line does. And by migrating this into an IDE environment, developers will quickly become dependent on this behaviour. Myself, I have become very hooked on Poseidon, that it is always running on my machine, and constantly in use. And making this functionality affordable will be amazing.

My problem with Microsoft's plan, however, is the fact that they are once again concentrating their efforts on designing something proprietary. This seems like a completely wasted effort, since UML is an open standard that can model every aspect of software and it is already everywhere. As C# is derived from many existing languages with some extensions that conveniently looks similar to the C++ and Java, I am most certain that their modeling language will look similar to UML. There are many developers with experience in UML, that it only makes sense to leverage that, but it would be better to leverage that by extending UML than creating something to compete with it, especially since it is open.

I really think that what we need is a mixture of the two approaches. Something that would link UML directly into the IDE and be affordable would definitely change the way we build software for the better.

Filed In