Show in Frame No Frame
Up Previous Next Title Page Index Contents Search

2.1.1 Defining new graph types

To start an empty Graph Tool, select Metamodel | Graph Tool or the Graph Tool button in the MetaEdit+ Launcher toolbar. Now the Graph Tool is ready for accepting the definition of a new graph type.

If you want the graph type to inherit properties from another type, select Graph | New Subtype... and select the desired supertype from the list of available graph types. In addition to inheriting properties, new Graph types also receive a copy of the type, binding, subgraph and constraint sets of their supertype. These sets are not truly inherited, but simply copied as initial values for the subtype; the types in the sets are however true references, not copies.

To fill in a new Graph type:
1)Give the name of the graph type in the Name field. Use unique names, because otherwise you might encounter difficulties in selecting the right graph type (i.e. selection lists and dialogs have several modeling languages with the same name).
2)Select the project for the new graph type from the Project pull-down list. If the project you want is not in the list, you must first open it from the Launcher with Repository | Open Project....
3)Define the properties of the graph type (see Section 2.6 for details).
4)Save the new graph type. Press the Save toolbar button to save the definition of the graph type. This will also generate a default dialog for the graph type. If you want to modify the default dialog select Edit Dialog from the Property list pop-up menu. This operation opens the dialog definition, and you can modify the appearance of the dialog (see Chapter 4 for details).
5)Define the object, relationship and role types to be used in this graph type. Select the Types tab button and in the Types tab use the Add... menu item from each list’s pop-up menu and select the appropriate types to be included in this modeling language (to create a new type, select Add New... from the menu). See Section 2.1.5 for more details.
6)Define the bindings of relationship, role, port and object types. Press the Bindings tab button and in the Bindings tab select Add... from the relationship list pop-up menu, and select the appropriate relationship types from the dialog. Each relationship type you selected now has a (partially empty) binding. For each binding add the appropriate role types with Add... in the role list. If necessary, give cardinalities for those role types in this binding. For each of the role types add the ports (if any) and object types that can be in this role in this binding. Notice that the selection lists in each of the relationship, role, port and object list are much shorter than in the Types tab, because only the types selected for this modeling language are available here. See Section 2.1.6 for more details.
7)Define the explosions and decompositions of the types in this graph type. Press the Subgraphs tab and add for each type the graph types to which it can explode or decompose (note that if you did not save the new Graph type in step 4, you cannot select it as the target of an explosion or decomposition). See Section 2.1.7 for more details.
8)Specify any connectivity and port constraints. Press the Constraints tab button to show the Constraints tab. Select the type of constraint and press the Add button. See Section 2.1.8 for more details.
9)Document the graph type. Go back to the Basics tab and describe the graph type in the Description field. Users can see these descriptions.
10)Press the Save button to accept the changes.
11)If you want to show a particular icon for this Graph type and its instances in the Graph Browser etc., press the Icon Editor toolbar button or choose Tools | Icon Editor from the menu bar. This opens an Icon Editor, described in Section 3.4.


Show in Frame No Frame
Up Previous Next Title Page Index Contents Search