Entity and Association

From PHENOM Portal Knowledgebase
Jump to navigation Jump to search

Entities and Associations are the basic building blocks of a Domain Specific Data Model (DSDM); they represent the different real-world entities and relationships present in the domain as well as those entities' and relationship's properties.

Creating an Entity

Click on the Create menu at the top left of PHENOM and select Conceptual > Entity from the drop-down. The only entry required to save a new Entity is a valid name. Once all fields are filled in, clicking the SAVE button at the top of the page will create the new Entity.

By default, the new Entity will be created in the PhenomEntities package. Once created, a few new attributes can be edited: entity attributes, associated entities, tags...

Adding/Editing Attributes

To add a new attribute to an Entity, click the create button that appears at the bottom of the attributes section to add a new row. Attributes require a valid name and type.

Any attributes added or edited on the Entity/Association page will not be saved until the save button in the upper right corner is clicked.

Adding/Editing Associated Entities

To add a new associated entity to an entity, click the create button that appears at the bottom of the associated entities section to add two new rows. Associated Entities require a valid name and type.


Any associated entities added or edited on the Entity/Association page will not be saved until the save button in the upper right corner is clicked.

Moving an Attribute

For refactoring or other purposes, the user is able to move an Attribute from its parent Entity/Association to another. To initiate, the process, the user can either click on the dedicated button at the end of the attribute row or right-click on the Attribute in the NavTree.

In the dialog that appears, the user needs to select the Entity to which to move the selected Attribute.

A common reason for moving an attribute is refactoring previous work. For example, let's say AirVehivleType.engineTemperature used to represent the engine temperature of an air vehicle. To better document the domain, an Engine entity can be created and composed in AirVehicleType, AirVehicleType.engine, then AirVehicleType.engineTemperature can be moved to its sibling AirVehivleType.engine. The attribute can later be renamed so that the final entity composition becomes AirVehicleType.engine.temperature. As this is a pretty common use case, the Attribute Move dialog has an option to compose the target Entity/Association in the current Entity/Association if it was not already done.

Deleting/Deprecating an Entity or an Attribute

To delete, an individual Attribute or an Associated Entity, drag it from its table to the trashcan in the mid-right part of the page:

The delete button in the upper right will delete the entire Entity/Association and all of its children:


To avoid breaking the current project or someone else's, an element can only be deleted under a certain set of circumstances:

  • Entities and associations cannot be deleted if they are referenced as a type in an attribute or associated entity.
  • Entities, associations, and their children cannot be deleted if:
    • They were pushed to a parent
    • They also exist in a parent branch.
  • Attributes and associated entities cannot be deleted if they are used in a view characteristic path.
  • When deleting an associated entity, if there's only two associated entities in the association, both will be deleted.

When making a deletion, a confirmation popup will appear. If the element is safe the delete, the user may confirm the action. If the element being deleted breaks one or more of these rules, these will be displayed to the user including the origin of the issue and the user will be able to either cancel or deprecate the element. Doing so, the element will be flagged in the project as deprecated and every time the user will try to use that element, she/he will see the warning flag and should refrain from using it.

Note: Even if an element is safe to delete, the user can choose to deprecate it instead of deleting it.


Additional Fields

The details page of an Entity/Association displays some non-editable fields.

Last Modified By

The last editor and edit date time can be viewed here is displayed in the top right corner.

Attributes → Views

If an attribute is used by a View Characteristic, an expandable list appears in the Projectors column.

Composed In

Entities/Associations that have attributes of type the currently viewed entity/association will appear in the "Composed in" section.

Associated In

Associations that have associated entities of type the currently viewed entity/association will appear in the "Associated in" section.