(requires review)
When you use Horizontal Mapping, you should, at first, define and fully describe the classes that do not participate in the inheritance hierarchy, then you model the root classes, then their sub-entities, etc.
The reason is that every sub-entity should describe every attributes and
relationships they inherit from its parent. The ZModelizationTool
offers you the opportunity to automatically derive an sub-entity from a
already defined entity, so you don't not have to re-declare every inherited
properties by hand. If you're designing the model outside the tool, by
directly editing the xml file for example, you'll probably want to define the
root entity first, then to copy-paste the entire <entity>
declaration
and rename it with the sub-entity's name.
Warning! During the development phase, your model will probably
change often, and your root-entities are likely to add and/or
suppress attributes after you create their sub-entities. In such cases, you
should be particulary careful to propagate these modifications to the
sub-entities, or things will go really wrong. You can do this, either in the
ZModelizationTool
itself, or directly in the XML file with your
favorite editor (be sure to import/export the XML file from/into the
ZModelizationTool
before/afterwards if you're using the tool and
occasionally edit the xml-file by hand).
You will find an example of a model defining an inheritance hierarchy in the package Modeling.tests.testPackages.StoreEmployees.
Comments are welcome: Sebastien Bigaret / Modeling Home Page