UML 2.4 RTF Avatar
  1. OMG Issue

UML24 — Association conflicts with MemberEnds IsDerived flags

  • Key: UML24-95
  • Legacy Issue Number: 15566
  • Status: closed  
  • Source: Model Driven Solutions ( Mr. Steve Cook)
  • Summary:

    UML::CompositeStructures::InternalStructures::A_feature_featuringClassifier

    UML::Activities::FundamentalActivities::A_subgroup_superGroup

    UML::Activities::FundamentalActivities::A_containedNode_inGroup

    UML::Activities::CompleteStructuredActivities::A_containedEdge_inGroup

    UML::Activities::StructuredActivities::A_containedNode_inGroup

    UML::Activities::CompleteActivities::A_containedNode_inGroup

    UML::Activities::IntermediateActivities::A_subgroup_superGroup

    UML::Activities::IntermediateActivities::A_containedEdge_inGroup

    UML::Activities::IntermediateActivities::A_containedNode_inGroup

    InfrastructureLibrary::Core::Abstractions::Constraints::A_ownedMember_namespace

    InfrastructureLibrary::Core::Abstractions::Classifiers::A_feature_featuringClassifier

    InfrastructureLibrary::Core::Abstractions::Namespaces::A_ownedMember_namespace

    InfrastructureLibrary::Core::Abstractions::Ownerships::A_ownedElement_owner

  • Reported: UML 2.3 — Wed, 22 Sep 2010 04:00 GMT
  • Disposition: Resolved — UML 2.4
  • Disposition Summary:

    These are associations with both ends derived. There is a MOF constraint: An Association is derived if all its Properties are derived. Hence all of these associations should be marked as derived. In addition, there is currently inconsistency elsewhere in the metamodel about which associations should be marked as derived. For example, A_redefinitionContext_region, with derived=false, and A_redefinitionContext_state, with derived=true. These are obviously inconsistent.
    In order to correct this we?ll apply the following additional constraint:
    ? An association in which all navigable (class-owned) ends are derived is derived
    The reasoning behind this is as follows.
    If you take the meaning of an association to be a set of links, and the meaning of an association end to be a set of instances of the type at the end of the association, then “derived” means that these sets can be calculated from other information. The other ingredient is whether the set can be altered “by hand”, as it were: and I am assuming that non-navigable ends cannot be altered by hand, i.e. they do not correspond to a settable API on a class. I don?t believe there is anything formal to substantiate this assumption, but it seems to be current practice for the metamodel to be constructed according to it. In this sense, all non-navigable ends are “derived”, whether you say so or not.
    The following are violations of this additional constraint:
    InfrastructureLibrary::Core::Abstractions::BehavioralFeatures::A_parameter_behavioralFeature
    InfrastructureLibrary::Core::Abstractions::Constraints::A_member_memberNamespace
    InfrastructureLibrary::Core::Abstractions::Generalizations::A_general_classifier
    InfrastructureLibrary::Core::Abstractions::Namespaces::A_member_memberNamespace
    InfrastructureLibrary::Core::Abstractions::Redefinitions::A_redefinedElement_redefinableElement
    InfrastructureLibrary::Core::Abstractions::Redefinitions::A_redefinitionContext_redefinableElement
    InfrastructureLibrary::Core::Abstractions::Relationships::A_relatedElement_relationship
    InfrastructureLibrary::Core::Abstractions::Relationships::A_source_directedRelationship
    InfrastructureLibrary::Core::Abstractions::Relationships::A_target_directedRelationship
    InfrastructureLibrary::Core::Abstractions::Super::A_inheritedMember_classifier
    InfrastructureLibrary::Core::Constructs::A_attribute_classifier
    InfrastructureLibrary::Core::Constructs::A_endType_association
    InfrastructureLibrary::Core::Constructs::A_importedMember_namespace
    InfrastructureLibrary::Core::Constructs::A_inheritedMember_classifier
    InfrastructureLibrary::Core::Constructs::A_member_memberNamespace
    InfrastructureLibrary::Core::Constructs::A_opposite_property
    InfrastructureLibrary::Core::Constructs::A_parameter_behavioralFeature
    InfrastructureLibrary::Core::Constructs::A_redefinedElement_redefinableElement
    InfrastructureLibrary::Core::Constructs::A_redefinitionContext_redefinableElement
    InfrastructureLibrary::Core::Constructs::A_relatedElement_relationship
    InfrastructureLibrary::Core::Constructs::A_source_directedRelationship InfrastructureLibrary::Core::Constructs::A_target_directedRelationship
    InfrastructureLibrary::Core::Constructs::A_type_operation
    InfrastructureLibrary::Profiles::A_ownedStereotype_owningPackage
    InfrastructureLibrary::Profiles::A_profile_stereotype
    UML::Actions::BasicActions::A_input_action
    UML::Actions::BasicActions::A_output_action
    UML::Activities::CompleteStructuredActivities::A_input_action
    UML::Activities::CompleteStructuredActivities::A_output_action
    UML::AuxiliaryConstructs::Templates::A_inheritedParameter_redefinableTemplateSignature
    UML::AuxiliaryConstructs::Templates::A_redefinitionContext_redefinableElement
    UML::Classes::Interfaces::A_attribute_classifier
    UML::Classes::Kernel::A_attribute_classifier
    UML::Classes::Kernel::A_classifier_enumerationLiteral
    UML::Classes::Kernel::A_endType_association
    UML::Classes::Kernel::A_general_classifier
    UML::Classes::Kernel::A_importedMember_namespace
    UML::Classes::Kernel::A_inheritedMember_classifier
    UML::Classes::Kernel::A_member_memberNamespace
    UML::Classes::Kernel::A_opposite_property
    UML::Classes::Kernel::A_parameter_behavioralFeature
    UML::Classes::Kernel::A_redefinedElement_redefinableElement
    UML::Classes::Kernel::A_redefinitionContext_redefinableElement
    UML::Classes::Kernel::A_relatedElement_relationship
    UML::Classes::Kernel::A_source_directedRelationship
    UML::Classes::Kernel::A_superClass_class
    UML::Classes::Kernel::A_target_directedRelationship
    UML::Classes::Kernel::A_type_operation
    UML::CommonBehaviors::BasicBehaviors::A_context_behavior
    UML::CommonBehaviors::BasicBehaviors::A_result_opaqueExpression
    UML::Components::BasicComponents::A_provided_component
    UML::Components::BasicComponents::A_required_component
    UML::CompositeStructures::InternalStructures::A_attribute_classifier
    UML::CompositeStructures::InternalStructures::A_definingEnd_connectorEnd
    UML::CompositeStructures::InternalStructures::A_part_structuredClassifier
    UML::CompositeStructures::InternalStructures::A_role_structuredClassifier
    UML::CompositeStructures::Ports::A_ownedPort_encapsulatedClassifier
    UML::CompositeStructures::Ports::A_provided_port
    UML::CompositeStructures::Ports::A_required_port
    UML::StateMachines::BehaviorStateMachines::A_redefinitionContext_region
    UML::StateMachines::BehaviorStateMachines::A_redefinitionContext_transition
    UML::StateMachines::ProtocolStateMachines::A_referred_protocolTransition

  • Updated: Fri, 6 Mar 2015 20:58 GMT