This software is an open source reference implementation of the Semantics of a Foundational Subset for Executable UML Models (fUML) and Precise Semantics of UML Composite Structures (PSCS) specifications by the Object Management Group (OMG) (see fUML and PSCS). The fUML implementation of this software is a ont-on-one port of the original Java fUML reference implementation developed by Model Driven Solutions (see https://github.com/ModelDriven/fUML-Reference-Implementation)
For licensing information, please see the LICENSE file.
For detailed information, please see the User Guide section 1. Prerequisites.
- Java Runtime Environment
- Eclipse IDE for Java Developers
- Eclipse Modeling Tools for creating UML models
- Eclipse Papyrus for more sophisticated and graphical modeling of UML models
- Acceleo to be able to use the code generator for executable models
For detailed information, please see the User Guide section 2. Setup.
- Import fUML-Java root project fUML-Java into your workspace
- Import nested projects uml, fuml and pscs
For detailed information, please see the User Guide section 3. Build.
- No further build required, compilation is done automatically by the Eclipse IDE1
For detailed information, please see the User Guide section 4. Usage.
- Create new Java project (see
"<fUML-Java-rootdir>\examples\helloworld"
as a reference project)- NOTE: it is suggested to store user-defined source code projects in common directory
"<fUML-Java-rootdir>\usersrc"
- The usersrc directory may contain arbitrary nested subdirectories
- NOTE: it is suggested to store user-defined source code projects in common directory
- Add the uml, fuml and pscs (for PSCS-compatibility) projects to the classpath of your project
- Create a
<model-name>Environment
class by extending classutils.environmentfuml.Environment
(orutils.environmentpscs.Environment
for PSCS-compatibility) - Create a
<model-name>Model
class by extending classutils.environment.InMemoryModel
(this class will contain all of your model elements) - Create a class containing a main method and call
<model-name>Environment.instance().execute("<behavior-name>");
for each behavior you want to execute in subsequent order - Run your project as a Java application within the Eclipse IDE
- Create new .uml model with a modeling tool of your choice (Eclipse Papyrus is suggested)
- NOTE: it is suggested to store user-defined models in common directory
"<fUML-Java-rootdir>\usermodels"
- The usermodels directory may contain arbitrary nested subdirectories
- NOTE: it is suggested to store user-defined models in common directory
- Import nested project generator within fUML-Java root project
- Navigate to file
\generator\src\fuml.generator.main\generate.mtl
in the project explorer - Right click
generate.mtl
and chooseRun as
-->Run configurations...
- Configure and run Acceleo Application accordingly:
- Choose
fuml.generator.main.Generate
- Choose your model file
- Choose a target directory for the generated source code (
"<fUML-Java-rootdir>\usersrc\<model-name>"
is suggested)
- Choose
- Import newly generated Java project within fUML-Java root project and configure a run configuration
- Add program arguments to define behaviors to be executed using
<behavior-name> [<behavior-name> <behavior-name> <behavior-name> <...>]
- Run as Java application within the Eclipse IDE
Footnotes
-
Instructions for external build, i.e., without any IDE, will be added in the future. ↩