Bundt User's Manual · Bundt Toolset version 1.0.1.0

Compare Models

Comparing models allows you to check what differences exist between two models. This may be useful to determine what changes have been made to a previous version of a model, or how an extended model differs from its base one, for example.

Details

You always compare two models, called model 1 and model 2. Model 1 is used as a reference, and differences of model 2 against this reference are reported during comparison.

The two models being compared must be of the same kind, either type or instance models. You cannot compare a type model and an instance model, as that makes no sense.

There are two kinds of model comparisons: lexical and semantic.

Lexical comparison

When two models are lexically compared, the system matches model parts by name, and searches for differences in their definitions and other properties.

For example, imagine a type model 1 containing a Person class having a definition "An individual of the human species". If model 2 does not contain a Person class, this will be reported as a difference, as model 2 lacks a class as compared to model 1. If model 2 contains a Person class having a definition "An individual of Homo sapiens", this will be reported as a difference, as the definitions of the class differ. Likewise, any other difference in any property of the matching classes (comments, abstract flag, subjective and temporal aspects) would be reported as a difference.

During a lexical comparison, each difference is reported through a descriptive text, such as "Class definitions are different".

Semantic comparison

When two models are semantically compared, the system matches model parts by their keys, and searches for differences in their names, definitions and other properties.

For example, imagine a type model 1 containing a Person class having a definition "An individual of the human species", as in the previous example. If model 2 contains a class named Person but having a different key, this will be reported as two semantic differences: model 1's Person class being removed, and model 2's Person class being created, as the two classes are considered distinct despite having the same name. On the other hand, if model 2 contains a class named Individual having the same key as model 1's Person, this will be reported a single semantic difference: the renaming of a class.

During a semantic comparison, each difference is reported through a difference kind, such as CreateClass or DeleteAssociation.

See Also


Contents distributed under a Creative Commons Attribution 4.0 International License · About · Terms of Use · Contact Us · last updated on 08 October 2020