Giter Site home page Giter Site logo

open-mbee / comodo Goto Github PK

View Code? Open in Web Editor NEW
25.0 22.0 5.0 134.14 MB

COMODO2 is a Java tool that allows to transform a UML/SysML model into code for different software platforms.

Java 52.11% Python 0.67% C++ 26.69% Shell 0.01% RobotFramework 0.32% C 20.19%
umlsysml scxml

comodo's Introduction

COMODO2

COMODO2 is a Java tool that allows to transform a UML/SysML model into code for different software platforms.

Installation from OpenMBEE Git repository using ant

To install COMODO2 from OpenMBEE GIT repository:

$ git clone https://github.com/Open-MBEE/Comodo.git comodo2  
$ cd comodo2
$ ant build
$ ant install

JARs (including comodo2.jar) are installed by ant in $PREFIX/lib directory.

A wrapper script, comodo, that sets the correct classpath is installed in $PREFIX/bin directory.

Installation from ESO Git repository using waf

To install COMODO2 from ESO GIT repository (it requires waf and wtools):

$ git clone https://gitlab.eso.org/ifw/comodo2.git comodo2  
$ cd comodo2
$ waf configure
$ waf install

JARs (including comodo2.jar) are installed by waf in $PREFIX/lib directory.

A wrapper script, comodo, that sets the correct classpath is installed in $PREFIX/bin directory.

Execution

COMODO2 can be executed by invoking a wrapper script which takes care to set the proper path for the required JAR files.

$ comodo <parameters>

For example:

$ comodo -i comodo2/test/hello/model/EELT_ICS_ApplicationFramework.uml -o ./gen -m "hellomalif hellomal" -t ELT-RAD -g ALL -a -d

The supported options are:

-h, --help, Print help.
-d, --debug, Enable printing of debug information.
-i, --input-model, File path of the model to transform. Model should be in EMF XMI (.uml) format.
-o, --output-path, Output directory path.
-m, --modules, Specify the module(s) to generate.
-t, --target-platform, Target platform [SCXML|ELT-RAD|ELT-MAL].		
-c, --target-platform-config, Configuration parameters specific to a target platform.
-g, --generation-mode, Generation mode [DEFAULT|UPDATE|ALL].
-n, --no-backup, Disable automatic backup for generated files (i.e. generated files may overwrite existing files with the same name).
-a, --avoid-fully-qualified, Avoid using fully qualified names.

Input Model

The input model should comply with COMODO profile and be stored in EMF XMI 5.x format.

For example, in MagicDrow, use the option: File -> Export to -> Eclipse UML2 XMI 5.x to export the model.

Target Platforms

The following target platforms are supported:

  • SCXML Transforms the input model into SCXML document(s). The generated SCXML document can be executed by an SCXML interpreted.
  • ELT-MAL Transforms the input model into XML/MAL ICD. The generated XML file can be transformed into code using CII tools.
  • ELT-RAD Transforms the input model into C++ code, SCXML, XML/MAL ICD, for the Rapid Application Development toolkit (RAD). The generated code can be compiled and executed on a machine installed with the ELT Development Environment and RAD.
  • QPC-C Transofrms the input model into C code representing the state machine logic and structure, using the Quantum Framework (QP/C).
  • QPC-QM Transofrms the input model into a QM file for the Quantum Modeler. This also generates implementation files that are used for the C code QM will generate.

Generation Modes

The following generation modes are supported:

  • ALL To be used only the very first time, it generates all files including actions, do-activities, actionMgr. If -n option is used, generated files will overwrite existing files without backup.
  • UPDATE To be used when new actions or do activities are added, it generates new action classes, new do-activities classes, and regenerate the actionMgr. If -n option is used, the actionMgr.cpp file will be overwritten without backup.
  • DEFAULT This is the default mode. It generates only files that should never be edited by the developer. E.g. the SCXML file, MAL/ICD, .rad.ev, etc.

comodo's People

Contributors

landolfa avatar pszubiak avatar thomas-bc avatar wobrschalek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

comodo's Issues

Perform testing through Gradle

Description

We have a set of tests that basically run Comodo on sample model and compares the output to a pre-generated output for validation. This can currently be ran with Ant (and also the Robot framework?). Creating this ticket to try and add those tests as being performed through a Gradle task.

Fail to clone from OpenMBEE Git repository

When I try to clone the project using git clone https://github.com/Open-MBEE/Comodo.git comodo2
It shows:
Error downloading object: libs/ST-4.3.1.jar (ebc9d9b): Smudge error: Error downloading lib
s/ST-4.3.1.jar (ebc9d9bcdb67571c0835ff441ead5c1de90a25a0d3fa840654a144e8fa0410d4): batch r
esponse: This repository is over its data quota. Account responsible for LFS bandwidth sho
uld purchase more data packs to restore access.

I think that it may be something wrong with the repository. I will appreciate it if you could help to fix it...!

Remove libraries from LFS

The libraries are stored with Git LFS, but they are actually pretty small in size so it should not be needed. Let's remove them from LFS and publish them back as regular artifacts (or remove them altogether from the repository?)

Use package manager

This repository is currently versioning all of its dependencies (https://github.com/Open-MBEE/Comodo/tree/main/libs). This has, ironically, introduced one more dependency: GitHub LFS, because the repository is so large with all those JAR files. LFS is currently failing because of GitHub limiting how much you can use it for free.
We need to introduce a package manager like Maven to retrieve those dependencies at build time, and move them out of the repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.