Simon Johnston of IBM has written a note about DSLs (domain specific languages) compared with UML. One of the excellent points he makes is that very few tools support refinement properly -- that is, the layering of a design from abstract requirements