Jumbala : An Action Language for UML State Machines

Jumbala : An Action Language for UML State Machines, Juro Dubrovin, Master's Thesis.

UML 2.0 is a language for modeling complex software systems. A UML model may describe the dynamic aspects of software as well as the static structure. We concentrate on models of reactive systems, such as embedded controllers or telecommunications switches. The behavior of such systems is modeled using UML state machines. Although UML defines the structure of state machines, it leaves open the choice of an action language,which is the language used to specify how the transitions of a state machine affect the configuration of the underlying model.

A UML action language named Jumbala is introduced. The language has been designed as part of a project where the goal is to formally analyze behavioral UML models. Jumbala is based on the Java programming language. It has nearly the same syntax and semantics for statements and expressions as Java. Some new programming constructs have been added to facilitate state machine modeling. Jumbala also supports object-oriented programming with classes and inheritance.

An interpreter that parses and executes Jumbala programs has been developed. The interpreter will be part of a prototype tool set for analyzing the behavior of reactive computer systems modeled in UML.

This is interesting because it is another example of efforts from the modeling community towards combining models and programming languages to provide a single compilable specification of software. Some of these efforts are being coordinated using the term model-driven architecture (MDA).

[edit: fixed formatting issues]

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Wonder if it would be more fun in Scala

Sounds interesting, although it is always a little sad when somebody has to sorta go off on some very thin evolutionary branch from the Java trunk. I wonder if it would be possible to do these kinds of things as library-cum-DSL in Scala.

Read my mind!!!

I actually thought the exact same thing when I started looking at action languages. It is indeed definitely feasible to use Scala as an action language, but a bigger question is how much of UML (outside of an action language) we could map to Scala in an elegant way. The problem I think would be if we wanted to regenerate the UML model from Scala.

An interesting paper somewhat related to the topic Scala and AsmL side by side by Stephane Micheloud.

Anyway if you haven't guessed this in active area of research for me right now, so if anyone is interesting in discussing more feel free to contact me at cdiggins@gmail.com

Re: Scala vs. AsmL [OTing]

Total aside, I always have to say how much I really like AsmL's syntax: it is so nice to read, great for code learning and maintenance situations.