ModelDriven / Alf-Reference-Implementation

Open-source implementation of the Action Language for fUML (Alf) specification.
30 stars 2 forks source link

Action Language for UML (Alf)
Open Source Reference Implementation

Copyright © 2011-2020 Model Driven Solutions, Inc.

Alf is an action language for UML developed in response to the OMG Concrete Syntax for a UML Action Language Request for Proposals. The Alf specification document can be found at http://www.omg.org/spec/ALF. (See also http://solitaire.omg.org/issues/task-force/ALF11 for the list of issues addressed by the Alf 1.1 Revision Task Force.)

This implementation is based on the Alf 1.1 specification. It compiles Alf source text to the executable Foundational UML (fUML) subset of UML. The compilation can target either of two fUML execution engine implementations:

The implementation handles the full Alf syntax at the Extended compliance level, as given in Annex C Consolidated LL Grammar of the Alf Specification.

Static semantic checking is directly based on validating the constraints defined in the abstract syntax of the Alf Specification. However, as errors were discovered in these definitions, or inconsistencies with corresponding feature descriptions were identified, these were corrected in the implementation. All such issues have either been corrected in the latest version of the specification or have been reported to the Alf Revision Task Force for correction in a future version.

The latest version of the implementation is available at http://alf.modeldriven.org.

Licensing

Model Driven Solutions, Inc., (formerly Data Access Technology, Inc.) is copyright owner of the source code for this implementation. For licensing terms, see the file LICENSING.txt.

Installation

The latest packaged distribution of the implementation is available in the dist directory.

Within this directory, the file alf.zip unzips into the installation directory for Alf. The installation directory includes Unix (BASH) shell scripts and DOS batch files for running Alf. By default, the Libraries subdirectory is expected to be in the same directory as the scripts. If you move it, set the environment variable ALF_LIB to its path.

Further Information

The following sections describe the project structure and build steps for the implementation. For further information on using it, see the wiki.

Projects

The base implementation source is organized into the following Eclipse projects. The build is currently tested on Eclipse 2020-06 (4.16).

Building

Maven project structure

The project structure under Maven allows building the regular Java modules and the Eclipse-based modules (using Tycho).

Master module build

Regular Java build

Tycho build

Steps

  1. Master module build (required only once):
mvn clean install -f master
  1. To perform the regular Java build, execute from the root directory:
mvn clean install
  1. To perform the Tycho build, execute from the root directory:
mvn clean install -f tycho-pom.xml

Importing into Eclipse

Prerequisites

  1. Eclipse JDT - Java development tools
  2. Eclipse PDE - Plug-in development environment
  3. Eclipse M2E - Maven Integration in Eclipse

By downloading the Eclipse SDK, you should have all those components.

Importing as Eclipse projects

That is the simplest way to import the codebase into Eclipse.

  1. Import the root directory location using the "Existing Projects into Workspace" option, making sure to select the "Search for nested projects" option.
  2. Configure the target platform preferences to use the alf-ri.target definition you just imported
  3. You may be asked to install M2E extensions to support Tycho projects - this is recommended.

Importing as Maven modules

Alternately, you can import the code as Maven modules, which is recommended to obtain a configuration that is consistent with how the Maven build operates on the codebase.

  1. Import the repository root directory and all its children artifacts as "Existing Maven projects" (note that will not include the alf.eclipse and alf.eclipse.moka projects, as they are not modules for the base Maven build). Note: If you see a build problem with the message "Duplicate bundle executions found. Please remove any explicitly defined bundle executions in your pom.xml.", make any non-content change to the POM file and save it, which should make the error go away.
  2. Import the tycho-parent directory and all its children artifacts as "Existing Maven projects".
  3. Configure the target platform preferences to use the alf-ri.target definition you just imported
  4. You may be asked to install M2E extensions to support Tycho projects - this is recommended.