For developers

JModelica.org is currently developed by people at Modelon AB and the Department of Automatic Control Lund University. If you would like to contribute to the project, check out the Contributing to JModelica.org page.

The JModelica.org development relies on several resources that coexists in order to provide an efficient environment for planning and monitoring of the project.

Forums

The JModelica.org developer forums is used to discuss all kinds of issues related to the development. For example, initially rough ideas may here be discussed in the developer community until consensus has been reached and the solution is materialized as a ticket in the JModelica.org trac (see below) and eventually ends up as an implemented improvement or feature. The developer forum is also a place for prospective developers to learn more about the development process and to drop new ideas.

Project planning

The actual development is managed at the JModelica.org trac site. Here, future releases are planned and tickets (or tasks) are bound to developers. The trac site provides an overview of the development status and the implementation status of individual improvements or new features can be tracked.

API documentation

The API documentation is automatically generated from the code using Doxygen (see below). The API documentation is the place to look for specific details of the different interfaces of the JModelica.org platform.

Version control

The JModelica.org code resides in a Subversion repository located at https://svn.jmodelica.org. The code may be checked out anonymously without any user name or password.

Related Projects

JastAdd

The JModelica.org compilers are developed using the compiler construction framework JastAdd . JastAdd is a Java-based framework that builds on established concepts such as object orientation, aspect orientation and reference attributed grammars. At the core of a JastAdd compiler is a specification of an abstract syntax. The JastAdd way of building compilers then involves specification of declarative attributes and equations, much like Knuth-style attribute grammars. Attributes may be used to specify semantic analyzes, e.g., name and type analysis, or to implement error checking. One of the key features of JastAdd is that it is specifically designed to allow for modularly extensible compilers, both at the language level and at the implementation level. As an example, the Optimica compiler has been implemented as a fully modular extension of the core Modelica compiler of JModelica. Accordingly, the core Modelica compiler is kept intact and the Optimica compiler will also benefits from improvements in the core.

Subversion

The JModelica.org project uses Subversion as version control system.

Trac

Trac is a web-based system for planning and execution of software projects. Trac features a tight integration with version control systems, for example Subversion, a ticket handling facility, release planning and a wiki. The main planning of the JModelica.org development is done using Trac.

Doxygen

The JModelica.org code is documented using the documentation system Doxygen. Doxygen is used to document JastAdd, Java, C, and Python code in the project.

Eclipse

The Integrated Development Environment (IDE) Eclipse is used as for various purposes in JModelica. Eclipse is conveniently used to write JastAdd and Java code for the JModelica.org front-ends, as well as C code of the runtime library. In addition, an Eclipse plug-in for Modelica and Optimica is under development.