9.2.1. Compatibility

A model may refer to another model. We call this second model a dependency of the first; it has a dependent. On checking a model with dependencies, we automatically establish the consistency of the model, extended with the types defined in those dependencies. If a model error is detected, the two models are said to be incompatible; otherwise we conclude them to be compatible.

9.2.1.1. Model versions

This notion of compatibility is of special significance in the light of model versions. It may happen that a newer version of a dependency is not compatible with a model. This is important information for the users of those models; they would be advised against updating the dependency, or, vice versa, would be advised to update the dependent. That is, if a compatible version is available! This is of concern to modellers; they should care about updates of dependencies of their model. To be more precise, they should check the compatibility of such updates with their models and preferably update their models to maintain consistency with the latest versions of those dependencies.

Referring back to the discussion above, they should also check if those latest versions do not compromise the intended meaning of the program in the sense of good support of the end user.