1.3 Important
Because changes made to the modeling language definitions also
implicitly change the models made in those languages, changing types in a
modeling language that is in use can have far-reaching and possibly undesired
effects. We have done our best to ensure that no change is possible which would
damage old models. However, there are changes that might be desirable in one
situation and positively detrimental in another.
You should also think before making changes to the
predefined modeling languages that were delivered with the MetaEdit+ Workbench
package. If you change those languages, it will make it harder for you to
upgrade to newer versions of the languages when we release them. A good solution
is often to make subtypes of the types you want to change, apply the changes to
the subtypes and use those subtypes.
Because modeling language development also affects
existing system descriptions, changing the underlying metamodel on the fly,
using the metamodeling tools gives you great power and flexibility. This is
clearly an improvement over less mature tools, where changing the metamodel
often results in all models becoming unusable. However, like all power, this is
best used with understanding and responsibility – in particular where
there are existing models.
 | Modifications
to types affect all the models that have been made or will be made with all the
modeling languages where the type is
used. |
 | The
modifications will affect model data on the next access to it. In a multi-user
situation, changes to types, like changes to instances, only affect other users
after you have committed and they have started a new
transaction. |
So before any major
modifications, remember to backup your database! This is particularly
important in changes involving adding, moving or removing properties from a
type, or changing the data type of a property type.
Since it is clearly not normally sensible for all users of
a modeling language to be able to modify it, there is a system of metamodeling
rights and permissions. If you are unable to make modifications to types, check
that you are running the Workbench version of MetaEdit+, and that your MetaEdit+
system administrator has included you in the set of users allowed to metamodel.
If you are running the multi-user version of MetaEdit+, your system
administrator may also have set restrictions about simultaneous metamodelers and
modelers, e.g. metamodeling is only allowed when nobody else is logged in (the
default), or only one metamodeler (and any number of modelers) is allowed at a
time.