Project home
FXU is a framework used for creating applications according to MDE
(Model-driven Engineering) methodology. It performs transformation from UML class and state machine
diagrams into a C# implementation.
FXU is composed of Code Generator, Application Wizard and Runtime Environment.
FXU was initially written by Romuald Pilitowski as a part of his
masters thesis:
Generation of C# code from UML 2.0 class and state machine diagrams in 2006.
It was designed to collaborate with UML 2.0 models. Moreover it was not equipped with any graphical
interface to create executable application. Code Generator worked with EMF 2.1 (Eclipse Modeling
Framework) and read uml2 format of Eclipse in which UML model was serialized.
In 2009 it was redeveloped by Marian Szczykulski to satisfy UML 2.1 specification.
Generator was modified in order to work with EMF 2.4.1(Eclipse Modeling Framework). Furthermore,
FXU generator was equipped with Graphical User Interface written in the Java-Swing
technology and application wizard to improve process of building executable application and creating a
Microsoft Visual Studio 2008 project.
FXU components are listed and described below:
- Generator (Fxu.jar) - It is a tool to make a transformation from UML class and state machine models,
serialized in uml format of Eclipse, into C# implementation.
- Application Wizard - It is a tool integrated with FXU Code Generator. It is useful to create
Microsoft Visual Studio 2008 project, main function and to initialize and start generated state
machines.
- Runtime Environment (FXU.dll) - It is an implementation of UML State Machine written in C#.
The main feature of the FXU 3.0 is possibility of generating additional
source code for stereotypes applied in a UML model. In the previous version of the
framework stereotypes were ignored. FXU was not able to read them from a
serialized UML model. Hence, the whole algorithm of reading a model was
changed. Moreover the architecture of FXU was changed. In order to interpret
stereotypes and generate additional code, the separate components are provided.
One single component is responsible for stereotypes from a certain UML profile.
The FXU is independent from those components.
Therefore, if they are not provided, the FXU generates code and
stereotypes are ignored and included as comments. Next important features are
new generation options which allow to configure the FXU Runtime Environment algorithms
in order to optimize the execution of state machines.
New features
- New generation option
- Plug-in architecture for code generation from stereotypes and tag values
- Components for the MARTE::Time profile
- Invocation of methods in Main function
Other improvements
- Considering classes generated from UML signals in the FXU Application Wizard
- Improved model visualization
- Improved error handling
- Optimization of FXU Runtime Environment algorithms
The main feature of the FXU 4.0 is adapting the FXU Runtime Environment to operate according to different UML semantic variants.
In previous versions of the framework these possibilities were much lower.
The architecture of the FXU Runtime Library was changed.
The architecture allows to configure a UML sematic variant used for all state machines, for a particular state machine or even for a particular region in a state machine.
The whole configuration of UML sematic variants is stored in a configuration file.
Thus to change a semantic, only a change of the configuration file is required.
Moreover, the add-in to the Visual Studio 2010 tool was implemented. It supports performing mutation testing directly in the tool.
The mutation testing is performed for a software developed based on UML class and state machine models using the FXU.
New features
- Adapting the FXU Runtime Environment to operate according to different UML semantic variants
- Possiblitity of defining a configuration of the FXU Runtime Environment that indicates semantic variant used for all state machines, for a particular state machine or even for a particular region in a state machine
- FXU Mutation Test Add-in to Visual Studio 2010
Other improvements
- Possiblity of generating VS 2010 project in the FXU Application Wizard
The main feature of the FXU 5.0 is the possibility of reusing parts of the existing implementation when a code is generated again.
In previous versions of the framework, all existing files of the same name in the output directory were replaced or kept.
The new mechanism merges existing files with a model based on which the code is generated.
The FXU Generator gained a new extensible architecture that uses meta-models of programming languages. This architecture allows changing FXU into a tool,
which will support multiple technologies in the future.
New features
- Reusing parts of the existing implementation (e.g. method's body) when a code is generated again
Other improvements
- Updating FXU to the XMI / OMG UML 2.2
- Improved a code generation process (e.g. generation of abstract classes)
- Improved the FXU Runtime Envirnoment - fixed a behaviour of a shallow and deep history
Authors: Romuald Pilitowski; Marian Szczykulski; Ćukasz Zaremba; Karol Redosz
The whole project is developed under the supervision of Anna DereziĆska (2006-2018)
Institute of Computer Science, Warsaw University of Technology