Subversion

AlloyUML

?curdirlinks? - Rev 68

?prevdifflink? - Blame


Submission to SEFM'11 Special Issue

This is an extended version of our paper "Translating Alloy
Specifications to UML Class Diagrams Annotated with OCL" accepted at
SEFM'11. We believe this version includes more that the required 25%
new material. Here is a detailed list of the new contributions:

- We allow both mutable and immutable fields. Mutable ones must
  have the Time column, while immutable don't. Immutable sets are
  captured by signature inclusion. Immutable fields are translated to
  properties (either associations or atributes) with the readOnly
  attribute.

- We translate enum signature declarations to enumeration classes.

- Since OCL 2.3 now implements a closure operator, we can translate
  arbitrary closures of relational expressions.

- We also implemented the translation of integer expression #R for
  expressions R of arbitrary arity.

- We allow a more flexible Alloy syntax, namely checking the
  multiplicity of a relation, quantifying over expressions,
  and comprehension over expressions.

- We extended the address book example to cover some of the new
  features.

- We characterized formally the (safe) OCL subset generated/accepted
  by our translation.

- We developed an OCL to Alloy translation that, unlike previously
  existing ones, handles correctly pre- and post-conditions by
  translating to the local state idiom. It also supports closures.

- We developed a new roundtrip case study, where we start with an
  UML+OCL specification, translate to Alloy, refine the model, and
  translate back to UML+OCL.

- We implemented all the new features in a open source toolset
  available for download at http://sourceforge.net/projects/alloymda/
  together with additional examples.

We also improved the text all over, including the following
clarifications:

- Explained the Alloy examples with a bit more detail.

- We detailed a bit more some issues that may occur related to Alloy
  type system, namely clarified how to handle remainder atomic
  signatures that occur when a non-abstract signature is extended.

- We clarified the need for explicit type checking and type casts in
  some expressions, and how exactly that problem can be solved.

Best regards,
Alcino Cunha

Theme by Vikram Singh | Powered by WebSVN v2.3.3