-
Key: KDM12-18
-
Legacy Issue Number: 12425
-
Status: closed
-
Source: Adaptive ( Mr. Pete Rivett)
-
Summary:
Several association ends are both 0..* and composite owners. This is not only an invalid combination but is inconsistent with the specification document and Rose model used for that. This seems to affect the ends that
{subset group} (that in the XMI contain "subsettedProperty='P.O.6222315' ")
For example, line 172 of the file is:
<ownedAttribute xmi:id='P.O.20372204' xmi:type='cmof:Property' isOrdered='false' subsettedProperty='P.O.6222315' type='C.19792917' name='implementation' lower='0' upper='*' isComposite='true' association='A.35' />
The fact that this has isComposite='true' is inconsistent with Figure 21.3 of ptc/08-02-08 (the KDM 1.1 spec document) which has no black diamond on the line between BuildResource and Group.
Proposed resolution
Make all Properties that {subset group}have isComposite='false'
For example, the above line 172 would become:
<ownedAttribute xmi:id='P.O.20372204' xmi:type='cmof:Property' isOrdered='false' subsettedProperty='P.O.6222315' type='C.19792917' name='implementation' lower='0' upper='*' isComposite='false' association='A.35' /> -
Reported: KDM 1.1 — Fri, 25 Apr 2008 04:00 GMT
-
Disposition: Resolved — KDM 1.2
-
Disposition Summary:
Change the clause isComposite=’true’ into isComposite=’false’ in the following lines (provided
below in the context of their Class owner) in the file kdm_1.1.cmof.xml:
<ownedMember xmi:id='C.22840242' xmi:type='cmof:Class'
name='BuildResource' superClass='C.14056260' isAbstract='false' >
<ownedAttribute xmi:id='P.O.20372204' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.19792917'
name='implementation' lower='0' upper='*' isComposite='true'
association='A.35' />
<ownedAttribute xmi:id='P.O.13254846' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.14056260' name='groupedBuild' lower='0' upper='*' isComposite='true'
association='A.37' />
</ownedMember>
<ownedMember xmi:id='C.21360255' xmi:type='cmof:Class'
name='NamespaceUnit' superClass='C.7475352' isAbstract='false' >
<ownedAttribute xmi:id='P.O.6893036' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.7475352'
name='groupedCode' lower='0' upper='*' isComposite='true'
association='A.80' />
</ownedMember>
<ownedMember xmi:id='C.2688299' xmi:type='cmof:Class'
name='AbstractConceptualElement' superClass='C.19792917'
isAbstract='true' >
<ownedAttribute xmi:id='P.O.20416442' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.19792917'
name='implementation' lower='0' upper='*' isComposite='true'
association='A.104' />
</ownedMember>
<ownedMember xmi:id='C.12349885' xmi:type='cmof:Class'
name='IndexElement' superClass='C.16116684' isAbstract='false' >
<ownedAttribute xmi:id='P.O.9068636' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.30064779'
name='implementation' lower='0' upper='*' isComposite='true'
association='A.115' />
</ownedMember>
<ownedMember xmi:id='C.25797638' xmi:type='cmof:Class'
name='DataAction' superClass='C.27225657' isAbstract='false' >
<ownedAttribute xmi:id='P.O.18189246' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.8621536'
name='implementation' lower='0' upper='*' isComposite='true'
association='A.126' />
</ownedMember>
<ownedMember xmi:id='C.12180601' xmi:type='cmof:Class'
name='AbstractEventElement' superClass='C.19792917' isAbstract='true' >
<ownedAttribute xmi:id='P.O.15209872' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.32333114'
name='implementation' lower='0' upper='*' isComposite='true'
association='A.151' />
</ownedMember>
<ownedMember xmi:id='C.3554254' xmi:type='cmof:Class'
name='AbstractPlatformElement' superClass='C.19792917' isAbstract='true'
>
<ownedAttribute xmi:id='P.O.23393515' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.32333114'
name='implementation' lower='0' upper='*' isComposite='true'
association='A.175' />
</ownedMember> <ownedMember xmi:id='C.13266771' xmi:type='cmof:Class'
name='DeployedSoftwareSystem' superClass='C.3554254' isAbstract='false'
>
<ownedAttribute xmi:id='P.O.31436981' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.31179076'
name='groupedComponent' lower='0' upper='*' isComposite='true'
association='A.185' />
</ownedMember>
<ownedMember xmi:id='C.31179076' xmi:type='cmof:Class'
name='DeployedComponent' superClass='C.3554254' isAbstract='false' >
<ownedAttribute xmi:id='P.O.29921964' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.28336930'
name='groupedCode' lower='0' upper='*' isComposite='true'
association='A.188' />
</ownedMember>
<ownedMember xmi:id='C.32002033' xmi:type='cmof:Class'
name='AbstractStructureElement' superClass='C.19792917'
isAbstract='true' >
<ownedAttribute xmi:id='P.O.14191483' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.19792917'
name='implementation' lower='0' upper='*' isComposite='true'
association='A.202' />
</ownedMember>
<ownedMember xmi:id='C.26598825' xmi:type='cmof:Class'
name='AbstractUIElement' superClass='C.19792917' isAbstract='true' >
<ownedAttribute xmi:id='P.O.14454637' xmi:type='cmof:Property'
isOrdered='false' subsettedProperty='P.O.6222315' type='C.32333114'
name='implementation' lower='0' upper='*' isComposite='true'
association='A.209' />
</ownedMember>
These are all associations that follow the “group association” pattern
of KDM. This change is performed automatically in the process of
converting the UML Rose diagrams into CMOF. The unique ids of the cmof
elements may change during the conversion. -
Updated: Fri, 6 Mar 2015 20:57 GMT
KDM12 — Several association ends are both 0..* and composite owners
- Key: KDM12-18
- OMG Task Force: ADM KDM 1.2 RTF