Bug 321605 - Several UML constraints seem not implemented in the metamodel
Summary: Several UML constraints seem not implemented in the metamodel
Status: NEW
Alias: None
Product: MDT.UML2
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: UML2 Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted
Depends on: 491718
Blocks: 80307
  Show dependency tree
 
Reported: 2010-08-03 10:48 EDT by Samuel Rochet CLA
Modified: 2016-04-15 05:10 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Samuel Rochet CLA 2010-08-03 10:48:38 EDT
Build Identifier: I20100608-0911

Model validation don't raize errors for several OCL constraints identified in UML specification.

It seems thus that there is no one constraint relative to UML activity implemented.

See below for an unrestrictive list of thus constraints :
- [class] An association can specialize another association having different number of ends as the other association when they should have the same number of ends.
- [class] Non-binary associations can be aggregations too, when it is specified they should not.
- [class] Association end in associations with more than two ends should be owned by the association but no incoherency is detected.
- [class] Generalizations within the same generalization set are allowed to have a different general Classifier when it should have the same.
- [class]if the language attribute is not empty, then the size of the body and language arrays should be the same. Different array size is undetected.
- [class]Every Generalization associated with a particular GeneralizationSet should have the same general Classifier.
- [class]The Classifier that maps to a GeneralizationSet should neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet.
- [class]A multiplicity must define at least one valid cardinality that is greater than zero
- [class]Only a navigable property can be marked as readOnly.
- [class]A Property cannot be subset by a Property with the same name.
- [class]An operation can have at most one return parameter.
- [class]A bodyCondition can only be specified for a query operation.
- [class]The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification.
- [class]One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification.
- [activity] An input parameter cannot be an exception.
- [activity] Reentrant behaviors cannot have stream parameters.
- [activity] undetected incoherency, Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.
- [activity] All nodes and edges of the group must be in the same activity as the group.
- [activity] No node or edge in a group may be contained by its subgroups or its containing groups, transitively.
- [activity] A partition with isDimension = true may not be contained by another partition.
- [activity] undetected incoherency, If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier.
- [activity] Only control edges can have initial nodes as source.
- [activity] A decision node should have one or two incoming edges and at least one outgoing edge.
- [activity] The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows.
- [activity] The decisionInputFlow of a decision node must be an incoming edge of the decision node.
- [activity] A decision input behavior should have no output parameters, no in-out parameters and one return parameter.
- [activity] If the decision node has no decision input flow and an incoming control flow, then a decision input behavior should have  zero input parameters.
- [activity] If the decision node has no decision input flow and an incoming object flow, then a decision input behavior should have one input parameter whose type is the same as or a supertype of the type of object tokens offered on the incoming edge.
- [activity] If the decision node has a decision input flow and a second incoming object flow, then a decision input behavior should have two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the non-decision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow.
- [activity] A merge node must have one outgoing edge.
- [activity] The edges coming into and out of a merge node must be either all object flows or all control flows.
- [activity] The edges coming into and out of a fork node must be either all object flows or all control flows.
- [activity] A join node should have one outgoing edge.
- [activity] If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow.
- [activity] A final node should have no outgoing edges.
- [activity] The result output pins should have no incoming edges.
- [activity] Only synchronous call actions can have result pins.
- [activity] The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. 
- [activity] The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.
- [activity] The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal.
- [activity] The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal.
- [activity] The type, ordering, and multiplicity of an argument or result pin should be derived from the corresponding parameter of the behavior.
- [activity] The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.
- [activity] The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal.
- [activity] The type, ordering, and multiplicity of an argument or result pin should be derived from the corresponding owned parameter of the operation.
- [activity] The type of the target pin must be the same as the type that owns the operation.
- [activity] The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.
- [activity] The association ends of the link end data must all be from the same association and include all and only the association ends of that association.
- [activity] The association ends of the link end data must not be static.
- [activity] Exactly one link-end data specification (the “open” end) must not have an end object input pin.
- [activity] The type and ordering of the result output pin should be  the same as the type and ordering of the open association end.
- [activity] The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.
- [activity] The property must be an association end.
- [activity] The type of the end object input pin should be the same as the type of the association end.
- [activity] The multiplicity of the end object input pin must be “1..1.”
- [activity] The qualifiers should include all and only the qualifiers of the association end.
- [activity] The end object input pin hould not be a qualifier value input pin.
- [activity] The qualifier attribute must be a qualifier of the association end of the link-end data.
- [activity] The type of the qualifier value input pin should be the same as the type of the qualifier attribute.
- [activity] The multiplicity of the qualifier value input pin should be “1..1.”
- [activity] The action must be contained in a behavior that has a host classifier.
- [activity] If the action is contained in a behavior that is acting as the body of a method, then the operation of the method must not be static.
- [activity] The type of the result output pin is the host classifier
- [activity] The multiplicity of the result output pin is “1..1.”
- [activity, SM] In property view, the, "new event" button for triggers is ineffective.
- [activity] Add a "Trigger" tab similar to SM Transition for AcceptEventAction

Reproducible: Always
Comment 1 Kenn Hussey CLA 2010-08-17 17:07:58 EDT
This has been the case for some time; contributions are welcome. See also bug 80307.