Executable UML with Enterprise Analyst

Today Aleksandar Orlic presents us a new Executable UML tool Enterprise Analyst created by his craftware company :

Enterprise Analyst (EAn) is an MDA tool for rapid and precise system prototyping based on UML models. Its ultimate goal is to offer a full UML based implementation platform as can be seen in the following tool schema

EAn is intended mainly for large scale developments, like enterprise business systems. As an add-in of the popular UML-tool Enterprise Architect (from Sparx Systems), EAn currently includes the following main features:

  • UML diagrams compilation (classes, states, use cases)
  • UML model static analysis and metrics
  • UML model execution and object space management through UML virtual machine
  • UML diagrams generation (objects, sequences)
  • Documentation generation
  • Method Implementation by Capture!
  • OCL support for expressions and object space querying

Model compilation
Enteprise Analyst will firstly compile UML models, previously created with Enterprise Architect. Current version supports class models, state machines and use case diagrams. The UML compiler will check on the input model a set of well-defined rules. Once these rules have been validated, the compilation process compiles the model into an internal representation (just like any programming language compiler). Otherwise, the compiler will raise the corresponding error/warning messages on the input model, leading the modeler through the model clean-up.

The Static Analysis Interface also includes a model Dependency Structure Matrix (on the right) and model metrics to futher analyze the quality of the input models

Model execution and low-level behavior capture
After the model structure fine-tuning, its fine-grained behavior must be added and verified. This is performed through model execution (or simulation, interpretation, etc). The modeler can create class instances, link them, set the attributes, call methods, send signals, etc. Enterprise Analyst ensures the consistency of the created instances with the model definition in any time (by checking the multiplicities or state transitions for example).

At the same time, this interaction generates automatically the class methods’ implementation! Method behaviour IS directly captured FROM the modeler’s interaction with the model! Without any manual “coding”, the execution is traced and stored for the later invocation. This is our genuine feature, so called “Implementation by Capture” as shown in the next figure.

During the execution, EAn can generate output in the form of UML object and sequence diagrams as well as RTF documentation.

OCL support
Enterprise Analyst implements the core OCL language in order to provide a standard way for specification of all kind of restrictions (i.e. use case pre/post conditions), expressions (loops, conditions, etc) and object space querying (simplified SQL language on the object level).
OCL constructs, just like the method implementation, are captured during the execution, so the modeler can see its results and “debug” it immediately.

Future of Enterprise Analyst
We are currently focused on our next build which will incorporate a major feature – the first version of EAn’s Dynamic USER Interface Prototype Generator (August-September 2010). Soon after this initial version, EAn team will WORK ON its improvement, which would include Use Cases capture (similar TO CURRENT method capture) FOR Advanced UI structures. AND FOR the NEXT YEAR EAn will go even further, AND feature our FIRST “UML to source code” transformer. During the NEXT semester we will WORK closely WITH our users TO define the FIRST technology architecture TO be supported by EAn.

If you enjoyed this post you can subscribe TO this Software Modeling blog AND/OR follow me ON twitter OR through the portal’s mailing list . And if you really liked it help me pass it on to others by bookmarking and sharing the post using the links below:

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress