|
|
Comparing Model Elements |
The following helpers employ a shared comparison function to compare two model elements and check for modifications.
It cannot be guaranteed that every possible change will be detected. This document details the known changes that will be detected:
· Renames
· User Defined Metaclass change
· Description
· Tags
o Number of tags
o Tag names
o Tag values
· Requirement ID
· Requirement Specification
· Type
· Signature
· Return type (Operations)
· Number of graphical elements present on the diagram (their locations are not checked)
The Generate References Report helper includes additional checks.
· References that are Classifiers are considered changed if any of their attributes/value properties/operations/event receptions have changed. This is so change-impact analysis is still viable if the reference is to the Classifier (but the Classifier itself has not changed) for example if an operation was modified in an Interface – that could be detected as a change to the Interface.
· Similarly in this helper if an element has a reference to a Classifier, then that Classifier is also checked for changes in the opposite direction (that is by default only the ‘source’ model elements children are processed but this on its own would not detect a new operation being added to a referenced Interface. The ‘reverse’ change check will detect that the source model does not have the new Operation and the referenced Classifier is flagged as changed. When the number of interface items does not match this will be reported twice (one for each ‘end’ of the comparison)
The provided / required interfaces are compared (only the interface not its content)
The proxy port contract is compared (only the contract not its content)
· Atomic flow ports: the type of the port is compared.
· Explicit flow ports: the interface is compared (only the interface not its content).
· Implicit flow ports: the interface features are compared.