I read the CASE tool debate with interest. The problems that most people seem to have with them coincide with my own thoughts on the shortcomings of many of these tools. Most of these involve poor support of many of the activities involved in system implementation, eg implicit or missing inter-language transformation mappings, no support for human-readable deltas or debugging, UI deficiencies making them more inconvenient to use than tools based on 3GLs, incompleteness of the UML metamodel for purposes of modelling many "real-world" programming language techniques etc.
Personally, I'm waiting for tools that
- support user-defined domain specific languages. There are examples of useful DSELs in the programming world, eg BNF/EBNF. In the right lighting and after a few strong drinks, XML schemas and many config file formats begin to look like declarative DSELs, some of which are "nicer" for expressing certain problems than a general-purpose programming language.
- Support formal, bi-directional mapping rulesets for the transformation of abstract syntax trees in one supported language to another. XSL etc are beginning to be used for this but surely there is a nicer way to do this than typing huge XML documents by hand...
- Provide customizeable user interfaces for the viewing and editing of elements in supported languages, in turn supported by real-time, incremental transformation