Professional Documents
Culture Documents
May 2010
Outline
1. Introduction
1.1 Foundational Executable UML 1.2 fUML-based Action Language
a computationally complete and compact subset of UML provides a simplied subset of UML Action Semantics package simplies the context to which the actions may be applied enforces a data ow abstract representation fUML Reference Implementation ModelDriven.org 2009, version 0.4.0
the abstract syntax is compliant with fUML enforces structured programming concrete syntax similar to Java and OCL used to model the behavior of class operations code generation for object-oriented programming languages (Java, C++, C#) built as part of ComDeValCo framework presented at SYNASC, 2009
2. Model creation
UML Class Structure Editor existing editors can be used Eclipse UML2 project (version 3.0)
Model Development Tools (MDT) project built on top of EMF(Core) provides a tree-based editor
fUML based Action Language Editor Eclipse Xtext project (version 0.7)
Textual Modeling Framework (TMF) project
built using UML2 as metamodel it is a textual editor must be integrated with the Class Diagram editor
1 2 3 4 5 6
public addItem(product:Product, quantity:Integer) { def newItem : SaleItem := new SaleItem; newItem.product := product; newItem.quantity := quantity; self.item.add(newItem); }
Figure: Sale::addItem Activity Concrete Syntax
3. Model execution
used to execute and test the model must be integrated in Eclipse workbench
popup items (in editors and explorer) debug views with tracing abilities
4. Code generation
the templates need to consider the model structure produced by the action language code generation aimed for languages like Java or C++ the generated code is complete
there is no need to edit the code no Reverse Engineering is needed
5. Further Work
a better integration of the tools a specialized editor for Class Diagrams that allows only fUML elements apply transformations to the models generate code in different programming languages support stereotypes for the action language statements
Questions?