GOTO: OATC Wiki home


The source code for the OpenMI standard interfaces, the OpenMI SDK, the OpenMI Configuration editor and various tools and examples is hosted on the OpenMI SourceForge open source server.

The code is accessed by use of the SVN version control system. Anyone can sign up for an account on SourceForge and download all OpenMI Association source code. A group of currently around 15 people are authorized as developers on the OpenMI project on SourceForge and has rights to make changes to the source code and commit these changes.

Repository URL:

Repository structure

The repository consists of the trunk, branches and tags. The figure below show this structure as it looked on April 17th 2008

The trunk:
The trunk is where we are developing the next OpenMI release of standard, SDK and tools, which for the time being is the version 2.0 development.

Trunk URL:

Branches are used for developments towards specific versions. A branch is named by use of the following conventions.

OpenMI-version-description, where the version is the version number towards which the branch is being developed. In case a branch is intended to be used to experiment with different approached the description should also include the name of the developer.

There is in principle no difference between branches and tags. However, we decided to use tags only mark a specific version that we may want to get back to. This means that no changes may be done to tagged versions. Tags are named according to the following naming convention:


Quality Assurance (testing).

The most important instrument for assuring the quality of the OATC source code is unit testing. We have defined three levels of unit testing:

Full unit testing:
Full unit testing means that each and every method has an association unit test method.

Partial unit testing:
Partial unit testing means that only selected methods has an associated unit test method.

Casual unit testing:
Casual unit testing means the there is no unit test at all or only few methods are unit tested.

Full unit testing must be used for:

Branch: Package: Package: OATC.OpenMI.Sdk

Partial unit testing must be used for:
Package: OATC.OpenMI.GUI

Remaining branches and package will use casual unit testing.

Regardless of the level of unit testing, all active unit test must run with no error before source code is committed.