The modeling book
Site Sponsor
Site Sponsor
Blog tags
article book business process code_generation databases drupal DSLs event experiment humor interview MDD MDE metamodel modeling news OCL opinion others programming project repository requirements resource reverse site_development software engineering standard survey talk teaching tools transformations UML web web engineering XMI
Site Sponsor








As a member of the submission team and chair of the fUML 1.1 Revision Task Force, I think I can give Mikas an answer to this question. The short answer is that fUML was intended to provide an executable semantics for UML in order to support the development of any sort of system. But, of course, I do have a longer answer!
It is true that many (though not all!) organizations currently using executable modeling (e.g., with Shlear-Mellor method tools or Harel-legacy statechart tools) are large (such as Siemens and Lockheed-Martin). One reason for this is that modeling is often still seen as an “add on” to a development effort, and large organizations doing mission-critical systems can support the business value of doing rigorous up-front modeling (with testing through model execution) before implementation. However, by bringing executable modeling semantics to standard UML, fUML will make this capability more widely and cheaply available in common UML tooling, allowing an exectuable modeling approach to be more widely used by all sorts of developers.
Of course, in many ways the detailed action semantics in fUML are more like the semantics of the Java VM than what a developer would typically use. And the UML graphical notation is not at all usable at this level. So, really, the intent was also that a textual surface notation be used to represent detailed UML action models with fUML semantics. The Alf action language now provides an OMG standard for this textual notation, too.
So, imagine doing your development directly in the Alf notation for actions (with fUML semantics), along with traditional UML graphical notations for class diagrams and state machines. As “model compiler” technology becomes available for mainstream UML tooling, such a model is no longer some sort of “blue print” for doing the “real” implementation of the system. Rather, it becomes the implementation itself, providing the next “higher level” of programming language.
Personally, I think this will be incredibly effect for small system development as well as large.
– Ed