Healthcheck
Running a Project Health Check
There are certain characteristics that make some projects more useful than others. Projects defined using a clear, unambiguous structure are very well suited for automating integration. Their structure aligns them well for determining semantic equivalence with other systems. Some of these project qualities can be checked running relatively simple algorithms while others are far more complex. As additional project health checks are added to PHENOM, they can be run from this control panel.
To get to the health checks, navigate to the Data Model mode and select the Health Check tab. This will present you with a blank health check page. Click on the "Run Health Check" button to initiate the tests. Please note, the tests may take a few minutes - a spinner icon indicates that PHENOM is working.
Once the tests are complete, the user will be presented with a summary of the test results. The summary will show the number of tests executed, the total number of issues found in the project, and the amount of time it took to complete the checks. In the middle, the summary reports the individual tests executed along with their results. In the example below, most of the entities in the project are unique, but there are many that do not have unique observables. There is a complete, color-coded listing of all the violations on the right-hand side of the page. This provide details about the errors to help identify and fix specific them in the project.
All test results can be downloaded as a CSV file by clicking on the "Download Report" button.
The project can be filtered by tags and be used in Health Check but please be aware that the health check will ensure the project is a valid project. So if a set of nodes are excluded but they have dependencies, then the Health Check will add the nodes back in and they will appear in the health report.
Health Checks
Entity Uniqueness
The Entity Uniqueness check determines if all of the entities in the project have a unique set of attributes and associations. Theoretically, if two things have the exact same set of attributes, then they are the same thing. While it may not seem to have any short-term consequences, entity uniqueness will be much more important when projects are analyzed for similarity and merge.
Attribute Uniqueness
Attribute Uniqueness checks to make sure that all entities have a set of unique attributes - that is, no two of its attributes can be of the same type. How many positions does a vehicle have at once? Only one!
While that position may be measured a number of different ways, the truth is, that entity only has a single position.
Furthermore, when there are multiple attributes of the same type within an entity, the only way to discern any difference is by reading the attribute labels. These labels can be as misleading as they can be informative. Just like documentation in ICDs, sometimes a word choice that is clear to one person may be entirely ambiguous to another.
Name Collisions
Although PHENOM will generally not allow users to create node with a name that is already in the project, there are ways in which name collisions may occur, including merging between branches or importing project content from external sources. Regardless of how they came about, any problematic name collisions (name collisions between nodes of the same type or having the same parent) will be reported here.
Circular Containment
While there are some legitimate cases for circular containment between entities and associations, a large number of these will be caused by modeling oversights. Such containments, as when entity A composes entity B, which in turn composes entity C, but entity C itself composes entity A, will be reported here.
Path Traceability
Although PHENOM's path builder ensures that only valid paths can be constructed, legacy paths from old imports may still find their way into a PHENOM project. Paths that cannot be legitimately traced through the project will be reported here. They will also be indicated with warnings on the View and View Attribute pages.
Placeholder Usage
In order to speed up modeling, PHENOM makes available a suite of placeholder nodes, including an observable, entities, and measurements. While the use of placeholders is convenient, projects containing placeholder values are not compliant. Four placeholder checks are part of the health report, indicating which view attribute paths contain placeholder entities, which paths project the placeholder observable, which entities type the placeholder observable, and which view attributes use a placeholder measurement.
Entities without a UniqueIdentifier
Deprecation Issues
Deprecating a node can affect other nodes either through paths or realizations. This section will report which nodes have been effected by deprecation and give an option to fix them. To fix deprecation issues, click on the wrench icon to bring up the UI. Currently, there are two different fixes available:
- Fixing composition types.
- Fixing path issues (for View Characteristics and Associated Entities)
Compositions Referencing Errors
No wrench icon available
Compositions that realize a deprecated observable will appear in this section.
Each composition is referencing the current deprecated Observable. A new observable can be selected from the dropdown list. By clicking SAVE, each composition will be updated with the new observable. * If a composition should not be updated at this time, you can deselect it by clicking the checkmark. * If a composition is highlighted, this means there is another layer of references to consider.
By changing the composition's observable, then the referencing view characteristic's measurement will need to change as well. In the top left, you will see the Current Measurement that each characteristic is pointing to. You can either set all of the measurements at once or you can set each measurement individually.'
Paths Errors
Both View Characteristics and Associated Entities may have path issues caused by deprecation. Each of these categories have their own section.
'In the above example we have three different view characteristics called vsm_ID. Each of these have the same path that contain a deprecated node (UCSConfigurationResource). After creating a new path, click SAVE to update the path for each view characteristic. However if a characteristic should not be updated, you can deselect it by clicking the checkbox and fix it at a later time.'
To see more about the Path builder, please see View Attribute.
Platform Enumerations with improperly matched Literals
This healthcheck captures issues with Platform Enumerations that don't match their realized Measurements, when comparing their Platform Enumeration Literals to the Measurement's Labels.
There are two categories that can currently show up on this report: 'Missing-realize' and 'Mismatched':
Missing-realize: Enumerations will be marked as this if any of the PDM Literals do not have a 'REALIZES' relationship, or are realizing a Label with a different name. Mismatched: Enumerations will be marked as this if there aren't direct name matches between any of the PDM Literals and the Enumeration's traced LDM Labels, or if there are duplicate names. These issues may not always indicate a problem with the Enumeration; there will be scenarios a modeler may want to have specialized names in the Platform-level Enumeration that differ from the LDM Measurement Labels. Setting the realize relationship on LDM Literals indicates which Label a Literal represents.
Clicking on the links of each Enumeration found in this Health Check will bring up the Platform Type editor, which you can use to manage them:
Platform Type/Enumeration editing
To see the Project Generation behavior PHENOM follows when generating Enumeration content, please see:
Model & Artifact Generation