Many people look toward graphic arts, line drawings, boxes, circles and arrows to find the future of software.
But I can't really see it.
Software has been language based since the beginning. Proposing that in the future, software will be written using UML and MDA is, to me, like saying books will be written entirely with pictures.
Ok, so some books are entirely pictoral, and icons are important if not critical to human life as we know it. But I can't really see how it's possible to impart real knowledge without using language. Or create precise enough computer instructions.
I can't see that the drawing approach will really work. I don't know of any graphical software development tool that has yet to address the entire lifecycle; or that generates code of sufficient quality.
I think it's just a problem that isn't meant to be solved.
Software is how humans tell computers what to do. During the past forty years or so one measure of the advancement in software is the level of abstraction at which humans are able to tell computers what to do. Assembler is higher level than machine language; COBOL is higher level than assembler, and so on.
The industry got kind of stuck on the "fourth generation" language problem during the late 80s, and I don't think you could say anything really succeeded (unless you count Visual Basic, which I don't, since it has so many purely language based extensions to the original form-based 4GL idea).
Now what we have is XML, which is certainly operating at a higher level of abstraction since it has to be parsed and interpreted, and executed by some other (arbitrary) language. Thus XML (and Web services, of course ;-) is truly language independent, and a major step forward.
In my view of the world, XML (and Web services) has a much better chance of solving the next level abstraction problem than UML or MDA.
(And no, I don't think either UML or MDA is very well suited to using for Web services, either. Class diagrams are just not the right metaphor, since Web services are not object-oriented, and the interaction diagrams aren't rich enough. Never mind the fact it doesn't make sense to use diagrams to create software in the first place ;-)

Comments (3)
After having stuggled with the WS-CAF UML I have to agree 100% But then I find it less than useful for CORBA as well ;-)
Posted by Mark Little | March 25, 2004 8:26 AM
Posted on March 25, 2004 08:26
I couldn't disagree more. UML and MDA are the future of software but that doesn't mean that they will replace coding. That is not the point of UML and MDA anyway. Only an idealistic fringe really believes that 'executable' UML is possible and desirable. The real power of UML and MDA is that it allows complex software systems to be modeled independent of technology. The kind of 'code' that UML/MDA models can usefully generate tends to be structural or declarative in nature not procedural- IDL, WSDL, XML Schema, Java interfaces, classes, etc. Though a sequence diagram does have the expressiveness to represent software logic it is a painful way of doing so.
Posted by Mick Hittesdorf | April 9, 2004 10:47 AM
Posted on April 9, 2004 10:47
My original comment was based on what I guess you'd call hype about MDA that was going around a couple of years ago. I'm glad to see that people are being more realistic now, and not thinking that systems can or will be coded using drawings. But I'm not sure from your comment what you disagree with. My point was that diagrams are not going to replace code, and I think you are in agreement with that, aren't you?
Posted by Eric Newcomer | April 11, 2004 7:11 PM
Posted on April 11, 2004 19:11