UML is designed to be a SoftwareBlueprintLanguage?.
The graphical modelling languages used by other trades have rich visual syntax and strictly controlled text.
Does using a stereotype to specify that a class is a singleton (as suggested in SingletonInUmlForJava) differ from using text to specify the fire retardant properties of a door, the material of a joist?
Whatever that difference is, does it matter?
The OCL is not an optional add-on to the UML, it's right in there. There are all sorts of things wrong with the UML, although AnyStandardIsBetterThanNone?, but is not being purely graphical one of them?.
-- Contributors WilliamGrosso, KeithBraithwaite
Yes, and for an alternative, see OPEN/SOMA by Ian Graham (Ian Graham ''Requirements Engineering and Rapid Development : A Rigorous, Object-Oriented Approach'', Addison-Wesley, 1998, ISBN 0201360470 ), where you specify models with text (using cards) and pictures are generated. This book also contains valid critiques of UML.
What about just showing the specific code you intend, in the chosen implementation language? Wouldn't that express the meaning more clearly and effectively than using yet some other language? Wouldn't it be better than trusting a third party to understand and translate it to real programming? See LiterateProgramming.
Only if you are sure that the system will never be re-implemented in another language, and/or that all the design ideas in it are language neutral. Of course you can achieve any effect possible in one TuringComplete language in any other one, but which language you choose will affect some of your design descisions.
If it may be that SystemLifetimeSpansProgramLifetime?, having (however cleverly annotated) source is less useful than some non-language specific description of the intent of the system.
Does anyone know anything about the effort to port TeX from Pascal to C, and how much the descriptive text changed between these versions?
I recently had some experience of trying to provide some cross-language features in a UML tool. Even with languages as close as Smalltalk and Java (i.e. not C++) this was extraordinarily difficult as you have to expose language-specific stuff so early in UML. Just bridging the default collection classes was a royal pain. --SteveFreeman
See Also ArchitectsOnBlueprints, IllustrationsClarifyText, LiterateModeling