Bird's eye view - the main idea

There are many advantages to using modeling tools for functional modeling of subsystems. For one, modeling tools offer high-level constructs that abstract away the minute details that are common in low-level languages. The burden of actually representing the desired logic in e.g. C code, falls upon the tool itself, which can provide guarantees2.1 of code correctness. Additionally, most modeling tools offer formal verification methods, which are equally important to their certified code generators. For example, a modeling tool can guarantee the correctness of a design in terms of individual components (e.g. if input A is within rangeA, and input B is within rangeB, then outputC will never exceed rangeC).

These advantages have driven many organizations to seriously consider (and use) modeling tools for the functional modeling of individual subsystems. After the completion of the functional modeling, however, the modeling tools use custom code generators that materialize the requested functionality in a specific implementation language (e.g. C). To use this functionality, the container's Provided Interfaces need to be accessible from other APLCs (and the Required Interfaces of other APLCs must be callable).

For these calls to take place, information needs to be exchanged amongst the code generated for the ``communicating'' APLCs. Unfortunately, the generated code is, by definition, quite different amongst different tools; each modeling tool has a very specific way of generating data structures and operational primitives, and mapping these data structures between them is a tedious and very error prone process - since it has to deal with many low level details.

By using ASN.1 as the center of a ``star formation'' in this communication process, the problem is reduced to mapping the data structures of the exchanged messages between those generated by the modeling tools and those generated by an ASN.1 compiler2.2.

This process lends itself to a large degree of automation - and this is the task performed by the Data Modeling Toolchain: the automated (and error-proof) generation of the necessary mappings.