Executable Unified Modeling Language

The BritishComputerSociety ObjectOrientedProgrammingAndSystemsGroup? hosted a presentation by IanWilkie? of KennedyCarter regarding their xUML process/products 5 April 2000. Here's an except from the posted agenda:

experience shows that by selecting a semantically tight subset of the UML and augmenting it with a target-independent ActionSpecificationLanguage, a translation-based development strategy is viable. Further, it offers significant benefits over traditional, programmer-centric approaches, not least, the opportunity to test and debug UML specifications prior to cutting any code.

I'd guess that traditional, programmer-centric approaches probably means us.


Here's what I learned:

xUML is a process built around KennedyCarter's ActionSpecificationLanguage. It involves building two sets of models:

an analysis model of the problem domain in an executable form
a design model containing implementation policies for modeling constructs, patterns, coding standards etc.

The analysis model is built from a well-defined subset of the UnifiedModelingLanguage with the addition of action specifications behind class methods and on entry/exit to states. These action specifications are written in ASL, which appears to be a procedural OO language that looks, to me, more like AppleScript than anything else. It is purely procedural, there's no support for pre - and post-conditions or any other form of assertion.

The tool will animate these analysis models for V+V. The idea is that you write tests in ASL based on your use-cases.

Then you hit the button, and the code generator uses the rules in the design model to implement the analysis model. There are two generations of code generator available: the original yacc/lex family, and newer ones built by constructing an analysis model of the desired code generation process, then using ASL in a design model for code generators to walk over the new code-gen analysis model and use a pre-existing code generator to build your new code generator. Or something like that... [See also: RecursiveDesign]

They seem to be doing reasonably well in the same space that the ShlaerMellorMethod was never able to break out of: SoftRealTime?, control, simulation-y sort of things.

--KeithBraithwaite

The idea of using the UML as a programming language is advanced in this OMG RFP: http://cgi.omg.org/techprocess/meetings/schedule/Action_Semantics_for_UML_RFP.html. These's a description under "RFP issued ... Relevant Documents": skip to section 6.


See also: ActionSpecificationLanguage, UnifiedModelingLanguage, RecursiveDesign, ShlaerMellorMethod, ArgoUml, UmlSchema


EditText of this page (last edited October 30, 2004) or FindPage with title or text search