UML-RSDS

UML-RSDS is a lightweight model-driven engineering (MDE) and model transformation tool supporting the UML 2.5 class diagram notation and OCL 2.4 Object Constraint Language.

It supports code-generation in multiple 3GLs: Java, C#, C++, Python, Go, Swift and ANSI C. The toolset has been defined as an Eclipse project AgileUML under the modeling category.

The tool has been applied to financial software development[2] and to many different kinds of transformation problems, for example[3][4] The main specification notations in UML-RSDS are UML class diagrams and use cases, together with Object Constraint Language (OCL) expressions, used to define invariants and operation pre and post-conditions.

For example, to copy every person instance to a 'PersonRecord' with a 'data' attribute formed from the name and age, it is sufficient to write: Verification procedures have been defined for this style of transformation specification.

[7] For more general software applications, procedural-style code using statements such as assignment (:=), loops (while, for), conditionals (if then else) and sequencing (;) can be used to define operation and usecase behaviour.