Issues for CWM 1.2 Revision Task Force discussion list

To comment on any of these issues, send email to cwm-rtf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.

List of issues (green=resolved, yellow=pending Board vote, red=unresolved)

List options: All ; Open Issues only; or Closed Issues only

Issue 4405: diagram named "CWM Package Dependencies" shows wrong dependency arrow
Issue 4406: provide an example of extending the Management packages
Issue 4408: taggedValue reference is missing from ModelElement
Issue 4431: stereotype reference is missing from ModelElement
Issue 4442: Revise the IMS metamodel
Issue 4458: Data mining metamodel
Issue 4469: Missing letters in chapter 9 diagrams.
Issue 4471: CWM does not reflect the latest version of UML
Issue 4474: CWM model needs to be augmented to allow specification of level& hierarchy
Issue 4475: Attribute.initialValue incorrectly implemented as mandatory.
Issue 4482: Optimize Instance data values
Issue 4514: Supplier and version underspecified
Issue 4517: Diagram 8-7-3 missing lines
Issue 4518: Logical-physical deployment modeling
Issue 4834: We only need one COBOL Data Division model

Issue 4405: diagram named "CWM Package Dependencies" shows wrong dependency arrow (cwm-rtf)

Click here for this issue's archive.
Source: Unisys (Dr. Doug Tolbert, dtolbert408(at)gmail.com)
Nature: Enhancement
Severity: Significant
Summary:
In the CWM .mdl file, the diagram named "CWM Package Dependencies"
contains a dependency arrow showing that the Relational package depends on
the SoftwareDeployment package.  This dependency arrow is erroneous and
should be removed (the dependency does not appear in the definitional CWM
XMI file).

Resolution: Resolved by CWM 1.1 RTF
Revised Text:
Actions taken:
July 18, 2001: received issue
July 1, 2003: closed issue

Issue 4406: provide an example of extending the Management packages (cwm-rtf)

Click
here for this issue's archive.
Source: International Business Machines (Dr. Daniel T. Chang, dtchang(at)us.ibm.com)
Nature: Enhancement
Severity: Minor
Summary:
Volume 2 of the CWM Specification does not provide an example of extending the Management packages (Warehous Process and Warehouse Operation). It will be very useful to provide an example of extending these packages (and their dependent packages) based on IBM's DB2 Data Warehouse Center. This product has implemented the CWM Management packages and has demonstrated the need for such extensions as well as how they can be done.

Resolution: Resolved by CWM 1.1 RTF
Revised Text:
Actions taken:
July 17, 2001: received issue
July 1, 2003: closed issue

Issue 4408: taggedValue reference is missing from ModelElement (cwm-rtf)

Click
here for this issue's archive.
Source: International Business Machines (Dr. Daniel T. Chang, dtchang(at)us.ibm.com)
Nature: Revision
Severity: Critical
Summary:
The taggedValue reference is missing from ModelElement, which existed in the CWM Adapted Specification. This is an error and must be corrected immediately. TaggedValue is a critical, light-weight extension mechanism and is used extensively in our implementation of CWM. Without the taggedValue reference on ModelElement, we will not be able to support CWM 1.0. (This is a revised write-up for issue #4408.)

Resolution: see below
Revised Text: In the CWM Rose model (document ad/01-02-07), add the attribute ModelElement::taggedValue with of type "TaggedValue" and stereotype "reference". Set the rose2mof.multiplicity property to "0..n" on the MOF tab of the specification sheet, and check the "derived" box on the Detail tab. In the CWM XML file (document ad/01-02-03), insert the following text following the definition of the ModelElement.namespace reference on line 74 and preceding the end tag for Model:Namespace.contents on line 75 (note that values '<<id>>' are created by the generation software will be added during generation of the file): <Model:Reference xmi.id='<<id>>' name='clientDependency' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='<<id>>' referencedEnd='<<id>>'> <Model:StructuralFeature.multiplicity> <XMI.field>0</XMI.field> <!-- lower --> <XMI.field>-1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>true</XMI.field> <!-- is_unique --> </Model:StructuralFeature.multiplicity> </Model:Reference> In the CWM IDL file (document ad/01-02-06), insert the following in the definition of Interface ModelElement before line 159 (which contains the text "}; // end of interface ModelElement") in the file core.idl: TaggedValueSet tagged_value () raises (Reflective::MofError); void set_tagged_value (in TaggedValueSet new_value) raises (Reflective::MofError); void unset_tagged_value () raises (Reflective::MofError); void add_tagged_value (in TaggedValue new_element) raises (Reflective::MofError); void modify_tagged_value ( in TaggedValue old_element, in TaggedValue new_element) raises (Reflective::NotFound, Reflective::MofError); void remove_tagged_value (in TaggedValue old_element) raises (Reflective::NotFound, Reflective::MofError); In the formal specification (document formal/2001-10-01, page 4-16), following the definition of the "namespace" reference and before the "Constraints" subheading, add description of the taggedValue, with the text taggedValue References the set of taggedValue instances that extend the ModelElement. class: TaggedValue defined by: TaggedElement::taggedValue multiplicity: zero or more inverse: TaggedValue::modelElement In the formal specification (document formal/2001-10-01) remove the last sentence of the second paragraph on page 4-3. The removed text is "Figure 4-4 on page 4-4 contains classes and associations that provide generic extension mechanisms to existing metamodels." In the formal specification (document formal/2001-10-01), remove Figure 4-4 on page 4-4 in its entirety, including the figure caption. The figure removed is
Actions taken:
July 24, 2001: received issue
July 24, 2001: closed issue
July 25, 2001: re-opened issue, part 2 of issue 4398
May 13, 2002: closed issue

Discussion:
The default resolution will be to apply the following changes to the CWM 1.0 specification, document ad/01-02-01: 

(1) On page 7-80, following the definition of the 'namespace' reference and before the "Constraints" subheading, add:taggedValue References the set of taggedValue instances that extend the ModelElement. 
class: TaggedValue defined by: TaggedElement::taggedValue 
multiplicity: zero or more 
inverse: TaggedValue::modelElement 

(2) On pages 7-67 and 7-68, merge Figure 7-3-1 and Figure 7-3-3 into a new Figure 7-3-1 that contains all the elements from both original figures there will no longer be a Figure 7-3-3). [Note: the absence of the taggedValue reference on ModelElement allowed these figures to be drawn separately. With its return, the figure must be merged.] 

(3) On page 7-67, remove the last sentence of the second paragraph on the page. [Note: This sentence references "Figure 7-4" and should have referenced "Figure 7-3-3", making this a typographically convenient deletion.]



Issue 4431: stereotype reference is missing from ModelElement (cwm-rtf)

Click
here for this issue's archive.
Source: Unisys (Dr. Doug Tolbert, dtolbert408(at)gmail.com)
Nature: Revision
Severity: Significant
Summary:
 In the Core package, the stereotype reference, that maps to the
stereotype end of the StereotypedElement association, is missing from
ModelElement. This is a result of an error in the construction of the final
CWM 1.0 spec (the same error is associated with Issue #4408).

Resolution: No change is required. The metamodel is less restrictive without the stereotype reference
Revised Text:
Actions taken:
July 30, 2001: received issue
May 13, 2002: closed issue

Discussion:


Issue 4442: Revise the IMS metamodel (cwm-rtf)

Click
here for this issue's archive.
Source: International Business Machines (Dr. Daniel T. Chang, dtchang(at)us.ibm.com)
Nature: Revision
Severity: Significant
Summary:
IBM has implemented the IMS metamodel of CWM 1.0. In doing so, we have found it necessary to make some significant changes to improve usability and completeness, and to handle new facilities of IMS. The CWM RTF should revise the IMS metamodel incorporating these changes.

Resolution: Resolved by CWM 1.1 RTF
Revised Text:
Actions taken:
August 1, 2001: received issue
July 1, 2003: closed issue

Discussion:


Issue 4458: Data mining metamodel (cwm-rtf)

Click
here for this issue's archive.
Source: International Business Machines (Dr. Daniel T. Chang, dtchang(at)us.ibm.com)
Nature: Revision
Severity: Significant
Summary:
This is an issue deferred from the CWM FTF. The Data Mining metamodel should be revised based on feedback from the JSR-73 (JDMAPI) work

Resolution:
Revised Text: The CWM 1.0 Data Mining Model had the following hierarchial structure: The new model is as follows: In the above model that outlines the package dependency, notice that the various types of Data Mining algorithms have been seperated into individual packages. This new package structure is as follows: DataMiningCore -- Common classes to all Data Mining algorithms AssociationRules -- A type of algorithm Clustering -- A type of algorithm Supervised -- A type of algorithm AttributeImportance -- A type of algorithm Classification -- A type of algorithm Approximation -- A type of algorithm This re-factoring of the model will allow users who implement only a sub-set of the Data Mining Algorithms to participate as CWM compliant. The overall resolution to this issue was to replace the entire Data Mining Chapter (chapter 12) in the formal specification (document formal/2001-10-01) to reflect new metamodel definitions.
Actions taken:
August 3, 2001: received issue
May 13, 2002: closed issue

Discussion:
Resolution: 

The CWM.Analysis.DataMining package was re-factored to allow for varied implementaions. In DataMining the various products all support some sub-set of the existing DataMining features and algorithms. The current model is fine for interchange where a user who doesn't support a specific feature or algorithm can simply ignore it on import. The CWM model forms the basis for JDMAPI which is an API specification. The structure of the model must now reflect a way to specify various compliance points based on implementation options. In order to achieve this, the DataMining model was split into finer grained packages which are based on the different DataMining algorithms. We felt this was the correct path to take, and felt justified based on the fact that to our knowledge there are no implementers of the DataMining portion of CWM. 
The resolution was to replace the existing CWM.Analysis.DataMining package with the revised one, this was distributed for review on 8/23/01 and presented in Toronto on 9/11/01.

Revised Text: 


Issue 4469: Missing letters in chapter 9 diagrams. (cwm-rtf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Clarification
Severity: Minor
Summary:
Figure 9-1 has initial letters missing from ModelElement and Constraint classes. Figure 9-9 has initial letter missing from Table class. Figure 9-10 has initial leters missing from the Parameter and SQLParameter classes. Figure 9-13 has initial letter missing from DataValue class.

Resolution:
Revised Text: Replaced figures 6-1, 6-9, 6-12 and 6-13 in the formal specification (document formal/2001-10-01)see below
Actions taken:
August 6, 2001: received issue
May 13, 2002: closed issue

Discussion:
This issue was caused when cutting and pasting from rose into the spec. This problem will be corrected by adding the figures correctly to the revised spec..


Issue 4471: CWM does not reflect the latest version of UML (cwm-rtf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Enhancement
Severity: Significant
Summary:
CWM aims to be a subset of UML. Various changes have occurred in Core at UML 1.4 which are not reflected in CWM. CWM 1.1 should be updated to reflect the latest UML. For example, the old TaggedValue now has been split between new TaggedValue which just holds the value (in a multivalued 'dataValue' attribute or as a 'referenceValue' ModelElement) and a new TagDefinition class which provides the tag name, reference to Stereotype and a multiplicity. Document ad/01-02-24 contains the UML 1.4 changes, though only changes to the Core will be relevant to CWM.

Resolution: see above
Revised Text:
Actions taken:
August 6, 2001: received issue
May 13, 2002: closed issue

Discussion:
No update is required. The ObjectModel, though derived from UML, is independent of UML and its evolution. In the future, when MOF 2.0 and UML 2.0 are adopted, CWM 2.0 should be aligned with them.


Issue 4474: CWM model needs to be augmented to allow specification of level& hierarchy (cwm-rtf)

Click
here for this issue's archive.
Source: Oracle (Mr. David Mellor, david.mellor(at)oracle.com)
Nature: Enhancement
Severity: Significant
Summary:
The CWM model currently defines the physical mapping of a Cube based only on a level of a dimension. The model needs to be augmented to allow the specification of both a level and a hierarchy.

Resolution: Add a new sub-type of MemberSelectionGroup which contains a reference to a hierarchy
Revised Text: Added a definition of HierarchyMemberSelectionGroup to the OLAP Chapter in the CWM specification (formal/2001-10-01). This consists of the following additions of new text to the OLAP specification chapter: Modification Added a reference pointing to HierarchyMemberSelectionGroup, as part of the definition of Hierarchy. The new text is: hierarchyMemberSelectionGroup References HierarchyMemberSelectionGroups that are based upon this Hierarchy. class: HierarchyMemberSelectionGroup defined by: HierarchyMemberSelectionGroupReferencesHierarchy::hierarchyMemberSelectionGroup multiplicity: zero or many inverse: HierarchyMemberSelectionGroup:hierarchy Modification Added the definition of the HierarchyMemberSelectionGroup class. The new text is: 11.x.x HierarchyMemberSelectionGroup This subtype of MemberSelectionGroup allows users to specify that a particular cube region is determined by hierarchy. This allows the description of data to vary by hierarhcy and, therefore, provides the ability to model multiple measure values per hierarchy. Superclasses MemberSelectionGroup References hierarchy References the Hierarchies that this HierarchyMemberSelectionGroup is based upon. class: Hierarchy defined by: HierarchyMemberSelectionGroupReferencesHierarchy::hierarchy multiplicity: one or more inverse: Hierarchy::hierarchyMemberSelectionGroup Constraints Each Hierarchy referenced by a HierarchyMemberSelectionGroup must have precisely one corresponding MemberSelection (of the same Dimension) in the HierarchyMemberSelectionGroup's collection of MemberSelections. [C-15] Modification Added the definition of the HierarchyMemberSelectionGroupReferencesHierarchy association relating Hierarchy and HierarchyMemberSelectionGroup to the references section of Hierarchy 11.4.10.2. The new text is: HierarchyMemberSelectionGroupReferencesHierarchy A HierarchyMemberSelectionGroup references one or more Hierarchies. Ends hierarchyMemberSelectionGroup The HierarchyMemberSelectionGroups referencing one or more Hierarchies. class: HierarchyMemberSelectionGroup multiplicity: zero or more hierarchy The Hierarchies referenced by one or more HierarchyMemberSelectionGroups. class: Hierarchy multiplicity: one or more Modification: Added the definition of constraint "C-15" on HierarchyMemberSelectionGroup. The new text is: [C-15] Each Hierarchy referenced by a HierarchyMemberSelectionGroup must have precisely one corresponding MemberSelection (of the same Dimension) in the HierarchyMemberSelectionGroup's collection of MemberSelections. contextHierarchyMemberSelectionGroup inv:self.hierarchy->forAll( h | self.memberSelection->exists( m | m.dimension = h.dimension ) ) inv:self.hierarchy->size = self.memberSelection->size Replaced the existing diagrams of Figure 11-1 , Figure 11-2 , and Figure 11-3 with new diagrams showing the new HierarchyMemberSelectionGroup class and its attendent associations and references. The diagram of Figure 11-4 did not need to be changed. The old and new diagrams are as follows:
Actions taken:
August 7, 2001: received issue
May 13, 2002: closed issue

Issue 4475: Attribute.initialValue incorrectly implemented as mandatory. (cwm-rtf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Revision
Severity: Critical
Summary:
The XMI representation of the CWM metamodel does not implement the specification for the initialValue attribute of the Core.Attribute class: in the specification (section 7.3.2.1 on p7-71) it clearly states the "multiplicity: zero or one"). However in the XMI file the lower bound is 1. Note: the lower bound of 0 is consistent with the UML metamodel. 

The impact is that,despite the DTD not being affected, XMI imports fail when any subclass of Attribute (see below IDL changes for a list) does not specify an initialValue Expression. 

This affects the XMI file, the Rose model, and the IDL. It does not affect the DTD since DTDs do not reflect attribute multiplicity. 

Proposed resolution: Update the CWM XMI file, document ad/01-02-03 to change the value of Core.Attribute.initialValue.multiplicity.lower from 1 to 0. 

Update the CWM Rose model, document ad/01-02-07 for attribute initialValue of Core:Attribute to change the value of the tag 'rose2mof.multiplicity' from "1" to "0..1". 

Update the following in the CWM IDL files, document ad/01-02-06: In core.idl change the declaration of Attribute and its class proxy to: 

typedef sequence<Expression> ExpressionBag; interface AttributeClass : StructuralFeatureClass { readonly attribute AttributeSet all_of_type_attribute; readonly attribute AttributeSet all_of_class_attribute; Attribute create_attribute ( in Core::Name name, in VisibilityKind visibility, in ScopeKindBag owner_scope, in ChangeableKind changeability, in MultiplicityBag multiplicity, in OrderingKindBag ordering, in ScopeKindBag target_scope, in ExpressionBag initial_value) raises (Reflective::MofError); }; interface Attribute : AttributeClass, StructuralFeature { Expression initial_value () raises (Reflective::NotSet, Reflective::MofError); void set_initial_value (in Expression new_value) raises (Reflective::MofError); void unset_initial_value () raises (Reflective::MofError); }; // end of interface Attribute 

And in the following files and the following class proxies change the initial_value parameter of the 'create_x' constructor to be of type Core::ExpressionBag rather than Core::Expression: 

Multidimensional.idl: DimensionedObjectClass Olap.idl: MeasureClass Record.idl: FieldClass, FixedOffsetFieldClass Relational.idl: ColumnClass CML.idl: XMLAttributeClass, ElementTypeReferenceClass, TextClass InformationReporting.idl: ReportAttribute DataTypes.idl : UnionMemberClass DataMining.idl: MiningAttributeClass, NumericAttributeClass, CategoricalAttributeClass, Ordinal,AttributeClass, ApplicationAttributeClass COBOLData.idl: COBOLFieldClass, RenamesClass DMSII.idl: DataItemClass, RemapItemClass ER.idl: ErAttributeClass Essbase.idl: AliasClass, CommentClass, ConsolidationClass, CurrencyConversionClass, DataStorageClass, FormulaClass, GenerationClass, ImmediateParentClass, LevelClass, MemberNameClass, TimeBalanceClass, TwoPassCalculationClass, UDAClass, VarianceReportingClass Express.idl: VariableClass, FormulaClass, ValueSetClass, RelationClass IMSDatabase.idl: ImsFieldClass, SenFieldClass. 

Resolution: see below
Revised Text: In the Rose model (document ad/01-02-07), change the value of the rose2mof.multiplicity value on the MOF tab of the Core::Attribute::initialValue attribute's specification sheet from "1" to "0..1". In the formal specification (document formal/2001-10-01), change multiplicity of the initialValue attribute of Attribute class on page 4-7 from "exactly one" to "zero or one". In the CWM XML file (document ad/01-02-03), change the lower bound of the Attribute::initialValue attribute at line 198 from <XMI.field>1</XMI.field> <!-- lower --> to <XMI.field>0</XMI.field> <!-- lower --> In the CWM IDL file (document ad/01-02-06), change lines 359 and 381 in the Core.idl file from: interface AttributeClass : StructuralFeatureClass { readonly attribute AttributeSet all_of_type_attribute; readonly attribute AttributeSet all_of_class_attribute; Attribute create_attribute ( in Core::Name name, in VisibilityKind visibility, in ScopeKindBag owner_scope, in ChangeableKind changeability, in MultiplicityBag multiplicity, in OrderingKindBag ordering, in ScopeKindBag target_scope, in Expression initial_value) raises (Reflective::MofError); }; interface Attribute : AttributeClass, StructuralFeature { Expression initial_value () raises (Reflective::MofError); void set_initial_value (in Expression new_value) raises (Reflective::MofError); }; // end of interface Attribute to typedef sequence ExpressionBag; interface AttributeClass : StructuralFeatureClass { readonly attribute AttributeSet all_of_type_attribute; readonly attribute AttributeSet all_of_class_attribute; Attribute create_attribute ( in Core::Name name, in VisibilityKind visibility, in ScopeKindBag owner_scope, in ChangeableKind changeability, in MultiplicityBag multiplicity, in OrderingKindBag ordering, in ScopeKindBag target_scope, in ExpressionBag initial_value) raises (Reflective::MofError); }; interface Attribute : AttributeClass, StructuralFeature { Expression initial_value () raises (Reflective::NotSet, Reflective::MofError); void set_initial_value (in Expression new_value) raises (Reflective::MofError); void unset_initial_value () raises (Reflective::MofError); }; // end of interface Attribute In the CWM IDL zip file, change the type of the initial_value parameters from "Core::Expression" to "Core::ExpressionBag" at the locations indicated in the following table: File Line No. Interface Name Constructor Name Original Parameter Text New Parameter Text COBOLData.idl 321 COBOLFieldClass create_cobolfield in Core::Expression initial_value, in Core::ExpressionBag initial_value, COBOLData.idl 504 RenamesClass create_renames in Core::Expression initial_value, in Core::ExpressionBag initial_value, DataMining.idl 225 MiningAttributeClass create_mining_attribute in Core::Expression initial_value) in Core::ExpressionBag initial_value) DataMining.idl 339 NumericAttributeClass create_numeric_attribute in Core::Expression initial_value, in Core::ExpressionBag initial_value, DataMining.idl 400 CategoricalAttributeClass create_categorical_attribute in Core::Expression initial_value) in Core::ExpressionBag initial_value) DataMining.idl 440 OrdinalAttributeClass create_ordinal_attribute in Core::Expression initial_value, in Core::ExpressionBag initial_value, DataMining.idl 762 ApplicationAttributeClass create_application_attribute in Core::Expression initial_value, in Core::ExpressionBag initial_value, DMSII.idl 230 DataItemClass create_data_item in Core::Expression initial_value, in Core::ExpressionBag initial_value, DMSII.idl 648 RemapItemClass create_remap_item in Core::Expression initial_value, in Core::ExpressionBag initial_value, DataTypes.idl 157 UnionMemberClass create_union_member in Core::Expression initial_value, in Core::ExpressionBag initial_value, ER.idl 162 ErAttributeClass create_er_attribute in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 100 AliasClass create_alias in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 134 CommentClass create_comment in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 154 ConsolidationClass create_consolidation in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 174 CurrencyConversionClass create_currency_conversion in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 194 DataStorageClass create_data_storage in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 266 FormulaClass create_formula in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 286 GenerationClass create_generation in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 306 ImmediateParentClass create_immediate_parent in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 326 CreateLevel create_level in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 346 CreateMemberName create_member_name in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 460 TimeBalanceClass create_time_balance in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 500 TwoPassCalculationClass create_two_pass_calculation in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 520 UDAClass create_uda in Core::Expression initial_value) in Core::ExpressionBag initial_value) Essbase.idl 540 VarianceReportingClass create_variance_reporting in Core::Expression initial_value) in Core::ExpressionBag initial_value) Express.idl 175 VariableClass create_variable in Core::Expression initial_value, in Core::ExpressionBag initial_value, Express.idl 214 FormulaClass create_formula in Core::Expression initial_value, in Core::ExpressionBag initial_value, Express.idl 239 ValueSetClass create_value_set in Core::Expression initial_value, in Core::ExpressionBag initial_value, Express.idl 268 RelationClass create_relation in Core::Expression initial_value, in Core::ExpressionBag initial_value, IMSDatabase.idl 848 ImsFieldClass create_ims_field in Core::Expression initial_value, in Core::ExpressionBag initial_value, IMSDatabase.idl 1191 SenFieldClass create_sen_field in Core::Expression initial_value, in Core::ExpressionBag initial_value, InformationReporting.idl 70 ReportAttributeClass create_report_attribute in Core::Expression initial_value) in Core::ExpressionBag initial_value) Multidimensional.idl 125 DimensionedObjectClass create_dimensioned_object in Core::Expression initial_value) in Core::ExpressionBag initial_value) Olap.idl 777 MeasureClass create_measure in Core::Expression initial_value) in Core::ExpressionBag initial_value) Record.idl 53 FieldClass create_field in Core::Expression initial_value, in Core::ExpressionBag initial_value, Record.idl 138 FixedOffsetFieldClass create_fixed_offset_field in Core::Expression initial_value, in Core::ExpressionBag initial_value, XML.idl 146 XMLAttributeClass create_xml_attribute in Core::Expression initial_value) in Core::ExpressionBag initial_value) XML.idl 298 ElementTypeReferenceClass create_element_type_reference in Core::Expression initial_value, in Core::ExpressionBag initial_value, XML.idl 337 TextClass create_text in Core::Expression initial_value) in Core::ExpressionBag initial_value)
Actions taken:
August 6, 2001: received issue
May 13, 2002: closed issue

Discussion:
Update the CWM XMI file, document ad/01-02-03 to change the value of Core.Attribute.initialValue.multiplicity.lower from 1 to 0. 
Update the CWM Rose model, document ad/01-02-07 for attribute initialValue of Core:Attribute to change the value of the tag 'rose2mof.multiplicity' from "1" to "0..1". 

Update the following in the CWM IDL files, document ad/01-02-06: In core.idl change the declaration of Attribute and its class proxy to: typedef sequence ExpressionBag; interface AttributeClass : StructuralFeatureClass { readonly attribute AttributeSet all_of_type_attribute; readonly attribute AttributeSet all_of_class_attribute; Attribute create_attribute ( in Core::Name name, in VisibilityKind visibility, in ScopeKindBag owner_scope, in ChangeableKind changeability, in MultiplicityBag multiplicity, in OrderingKindBag ordering, in ScopeKindBag target_scope, in ExpressionBag initial_value) raises (Reflective::MofError); }; interface Attribute : AttributeClass, StructuralFeature { Expression initial_value () raises  Reflective::NotSet, Reflective::MofError); void set_initial_value (in Expression new_value) raises (Reflective::MofError); void unset_initial_value () raises (Reflective::MofError); }; // end of interface Attribute And in the following files and the following class proxies change the initial_value parameter of the 'create_x' constructor to be of type Core::ExpressionBag rather than Core::Expression: Multidimensional.idl: DimensionedObjectClass Olap.idl: 
MeasureClass Record.idl: FieldClass FixedOffsetFieldClass Relational.idl: ColumnClass CML.idl: XMLAttributeClass, ElementTypeReferenceClass, 
TextClass InformationReporting.idl: ReportAttribute DataTypes.idl : UnionMemberClass DataMining.idl: MiningAttributeClass, NumericAttributeClass, 
CategoricalAttributeClass, Ordinal,AttributeClass, ApplicationAttributeClass COBOLData.idl: COBOLFieldClass, RenamesClass DMSII.idl: 
DataItemClass, RemapItemClass ER.idl: ErAttributeClass Essbase.idl: AliasClass, CommentClass, ConsolidationClass, CurrencyConversionClass, 
DataStorageClass, FormulaClass, GenerationClass, ImmediateParentClass, LevelClass, MemberNameClass, TimeBalanceClass, TwoPassCalculationClass, UDAClass, VarianceReportingClass Express.idl: VariableClass, FormulaClass, ValueSetClass, RelationClass 
IMSDatabase.idl: ImsFieldClass, SenFieldClass.



Issue 4482: Optimize Instance data values (cwm-rtf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Enhancement
Severity: Significant
Summary:
The Instances (hence MultiDimensional) metamodel is very wasteful
in requiring a separate DataValue object for each simple string slot value:
this in effect doubles the number of objects for value-oriented schemas such
as Dimension definitions (in MultiDimensional where DataValue is inherited
into MemberValue). This is a problem for XMI files and their processing, but
even more so for repository implementations which tend to have management
overheads associated with each object. Moreover these DataValue objects end
up being directly contained in the MemberSet for the Dimension, which surely
was not the intention. This means that when navigating from the Dimension to
process its Members one also has to filter out a large number of these
unwanted Data/MemberValue objects.

Resolution: see below
Revised Text: In the CWM specification (document formal/2001-10-01), insert the following paragraph as the last paragraph page 4-57 and immediately before Figure 4-7 which appears on page 4-58: Data values may be stored in one of two alternative ways. The Slot class is a generic container that can hold either DataValue or Object instances. One way of storing a data value is to create a Slot instance and place a DataValue instance "in" the Slot via the SlotValue assocation. The alternate way is to create an instance of DataSlot, storing the value into its dataValue attribute. The former method is more general while the latter creates fewer total objects. Both techniques are illustrated in the example in Figure 4-9. Update 4-7 to show added class DataSlot and the association DataSlotType between it and DataType as well as the altered multiplicity for Slot.value, from to Change the last three paragraphs on page 4-59 from George is represented by Object A, and Martha, by Object B. These person objects own Slots C and D, respectively. Slot C holds DataValue E whose value attribute records George’s name. Similarly, Slot D holds Martha’s name in DataValue F. The valid values of the MaritalStatus attribute are recorded by DataValue instances K, L, and M. The marital relationship between George and Martha is represented, from George’s perspective, by Object H which is an instance of the Marriage association. Object H owns Slots G, J, and I. Slot G holds the person association end and references Object A (George), whereas Slot I holds the spouse association end, referencing Object B (Martha). Slot J holds a DataValue instance describing the current value ("Married") of the MaritalStatus attribute for Object H. to George is represented by Object A, and Martha, by Object B. These person objects own DataSlots C and D, respectively, that contain the names of the individuals. The valid values of the MaritalStatus attribute are recorded by DataValue instances I, J, and K. The marital relationship between George and Martha is represented, from George’s perspective, by Object F which is an instance of the Marriage association. Object F owns Slots E, F, and G. Slot E holds the person association end and references Object A (George), whereas Slot G holds the spouse association end, referencing Object B (Martha). Slot H holds a DataValue instance describing the current value ("Married") of the MaritalStatus attribute for Object F. Change Figure 4-9 from to Renumber sections 4.6.1.1 through 4.6.1.5, inclusive, to 4.6.1.2 through 4.6.1.6, respectively. Insert new section 4.6.1.1 before newly renumbered 4.6.1.2 on page 4-61: 4.6.1.1 DataSlot A Slot which is used to hold a data value where there is no need to manage the value as an element in its own right (in which case a DataValue would be used) - for example it is a one-off string value or a number. The dataValue (and dataType where set) must be consistent with the type of the DataSlot's feature (Attribute) and must obey any constraints on the full descriptor of the Attribute's DataType (including both explicit constraints and built-in constraints such as multiplicity). Superclasses Slot Attributes dataValue The value for the slot expressed as a string. type: String multiplicity: exactly one References dataType The type of the dataValue. If not set the type is taken as the type of the Attribute (StructuralFeature) which is the feature for the DataSlot. class: DataType defined-by: DataSlotType::dataType multiplicity: zero or one Constraints A DataType instance associated with a DataSlot instance must be compatible with the type of the DataSlot indicated by the feature::type inherited from Slot. [C-6-6] The StructuralFeature instance obtained via the feature reference inherited from Slot must be an Attribute. [C-6-7] The value reference inherited from Slot must be empty. [C-6-8] In the CWM Rose model (document ad/01-02-07), define the Instances::DataSlot class consistent with its immediately preceding definition in the specification. In the CWM XML file (document ad/01-02-03), add the following definition for the DataSlot class immediately following the definition of Instances::Slot that ends on line 1264 and immediately preceding the definition of Instances::DataValue that begins on line 1265 (note that XML attributes whose values are represented as '<<id>>' will be replaced by appropriate values when the XML file is created by the generation software): <Model:Class xmi.id='<<id>>' name='DataSlot' annotation='A Slot which is used to hold a data value where there is no need to manage the value as an element in its own right (in which case a DataValue would be used) - for example it is a one-off string value or a number. The dataValue (and dataType where set) must be consistent with the type of the DataSlot's feature (Attribute) and must obey any constraints on the full descriptor of the Attribute's DataType (including both explicit constraints and built-in constraints such as multiplicity).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='<<id>>'> <Model:Namespace.contents> <Model:Attribute xmi.id='<<id>>' name='dataValue' annotation='The value for the slot expressed as a string.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='<<id>>'> <Model:StructuralFeature.multiplicity> <XMI.field>1</XMI.field> <!-- lower --> <XMI.field>1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>false</XMI.field> <!-- is_unique --> </Model:StructuralFeature.multiplicity> </Model:Attribute> <Model:Reference xmi.id='<<id>>' name='dataType' annotation='The type of the dataValue. If not set the type is taken as the type of the Attribute (StructuralFeature) which is the feature for the DataSlot.' scope='instance_level' visibility='public_vis' isChangeable='true' type='<<id>>' referencedEnd='<<id>>'> <Model:StructuralFeature.multiplicity> <XMI.field>0</XMI.field> <!-- lower --> <XMI.field>1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>false</XMI.field> <!-- is_unique --> </Model:StructuralFeature.multiplicity> </Model:Reference> </Model:Namespace.contents> </Model:Class> In the CWM IDL zip file (document ad/01-02-06), add the following interface definitions for the DataSlot class in the Instances.idl file: Between lines 14 and 15, insert: interface DataSlotClass; interface DataSlot; typedef sequence<DataSlot> DataSlotSet; Between lines 66 and 67, insert: interface DataSlotClass : InstanceClass { readonly attribute DataSlotSet all_of_type_slot; readonly attribute DataSlotSet all_of_class_slot; DataSlot create_data_slot ( in Core::Name name, in Core::VisibilityKind visibility in string data_value) raises (Reflective::MofError); }; interface DataSlot : DataSlotClass, Instance { string data_value () raises (Reflective::MofError); void set_data_value (in string new_value) raises (Reflective::MofError); Core::DataType data_type () raises (Reflective::NotSet, Reflective::MofError); void set_data_type (in Core::DataType new_value) raises (Reflective::MofError); void unset_data_type () raises (Reflective::MofError); }; // end of interface DataSlot In the CWM specification (formal/2001-10-01), change the multiplicity of the Slot::value reference in newly numbered section 4.6.1.6 on page 4-64 from "exactly one" to "zero or more". In the CWM XML file (ad/01-02-03), change the multiplicity lower bound of the Slot::value reference at line 1249 from <XMI.field>1</XMI.field> <!-- lower --> to <XMI.field>0</XMI.field> <!-- lower --> In the CWM IDL file (ad/01-02-06), insert the following lines between lines 60 and 61: void unset_value () raises (Reflective::MofError); In newly numbered section 4.6.1.6 of the CWM specification (formal/2001-10-01), add a new constraint at the end of the list of Constraints on page 4-64: If the Slot instance is not also a DataSlot, the value reference must be present. [C-6-9] In the CWM specification (formal/2001-10-01), renumber sections 4.6.2.1 through 4.6.2.4, inclusive, to 4.6.2.2 through 4.6.2.5, respectively. In the CWM specification (formal/2001-10-01), insert new section 4.6.2.1 before newly numbered 4.6.2.2 (formal/2001-10-01, page 4-65), with the text: 4.6.2.1 DataSlotType The DataSlotType association connects DataSlot instances with the DataType instance that identifies the type of information stored in the DataSlot::dataValue attribute. Ends dataSlot Identifies the DataSlot instances for which the DataType instance is the type of information stored in the DataSlot::dataValue attribute. class: DataSlot multiplicity: zero or more dataType Identifies the DataType instance representing the type of the information stored in the dataValue attribute. class: DataType multiplicity: zero or more In the CWM XML file (document ad/01-02-03), add the following definition for the DataSlotType association immediately following the definition of Instances::FeatureSlot that ends on line 1378 and immediately preceding the Model.Namespace.contents end tag on line 1379 (note that XML attributes whose values are represented as '<<id>>' will be replaced by appropriate values when the XML file is created by the generation software): <Model:Association xmi.id='<<id>>' name='DataSlotType' annotation='The DataSlotType association connects DataSlot instances with the DataType instance that identifies the type of information stored in the DataSlot::dataValueattribute.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'> <Model:Namespace.contents> <Model:AssociationEnd xmi.id='<<id>>' name='dataSlot' annotation='Identifies the DataSlot instances for which the DataType instance is the type of information stored in the DataSlot::dataValue attribute.' isNavigable='true' aggregation='none' isChangeable='true' type='<<id>>'> <Model:AssociationEnd.multiplicity> <XMI.field>0</XMI.field> <!-- lower --> <XMI.field>-1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>true</XMI.field> <!-- is_unique --> </Model:AssociationEnd.multiplicity> </Model:AssociationEnd> <Model:AssociationEnd xmi.id='<<id>>' name='dataType' annotation='Identifies the DataType instance representing the type of the information stored in the dataValue attribute.' isNavigable='true' aggregation='none' isChangeable='true' type='<<id>>'> <Model:AssociationEnd.multiplicity> <XMI.field>0</XMI.field> <!-- lower --> <XMI.field>-1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>false</XMI.field> <!-- is_unique --> </Model:AssociationEnd.multiplicity> </Model:AssociationEnd> </Model:Namespace.contents> </Model:Association> In the CWM IDL zip file (document ad/01-02-06), add the following interface definitions for the DataSlotType association in the Instances.idl file: struct DataSlotTypeLink { DataSlot data_slot; Core::DataType data_type; }; typedef sequence<DataSlotTypeLink> DataSlotTypeLinkSet; interface DataSlotType : Reflective::RefAssociation { DataSlotTypeLinkSet all_data_slot_type_links() raises (Reflective::MofError); boolean exists ( in DataSlot data_slot, in Core::DataType data_type) raises (Reflective::MofError); DataSlotSet data_slot (in Core::DataType data_type) raises (Reflective::MofError); Core::DataType data_type (in DataSlot data_slot) raises (Reflective::MofError); void add ( in DataSlot data_slot, in Core::DataType data_type) raises (Reflective::MofError); void modify_data_slot ( in DataSlot data_slot, in Core::DataType data_type, in DataSlot new_data_slot) raises (Reflective::NotFound, Reflective::MofError); void modify_data_type ( in DataSlot data_slot, in Core::DataType data_type, in Core::DataType new_data_type) raises (Reflective::NotFound, Reflective::MofError); void remove ( in DataSlot data_slot, in Core::DataType data_type) raises (Reflective::NotFound, Reflective::MofError); }; // end of interface DataSlotType In the CWM specification (formal/2001-10-01), add the following constraints to the end of the list of Constraints on page 4-67: [C-6-6] A DataType instance associated with a DataSlot instance must be compatible with the type of the DataSlot indicated by the feature::type inherited from Slot. context DataSlot inv: self.dataType->notEmpty implies self.dataType.oclIsKindOf(self.feature.type) [C-6-7] The StructuralFeature instance obtained via the feature reference inherited from Slot must be an Attribute. context DataSlot inv: self.feature.oclIsTypeOf(Attribute) [C-6-8] The value reference inherited from Slot must be empty. context DataSlot inv: self.value->isEmpty() [C-6-9] If the Slot instance is not also a DataSlot, the value reference must be present. context Slot inv: self.oclIsTypeOf(Slot) implies self.value->notEmpty()
Actions taken:
August 10, 2001: received issue
May 13, 2002: closed issue

Discussion:
Proposed resolution
-------------------
a) Add new subclass of Slot called 'DataSlot' with description: "A Slot
which is used to hold a data value where there is no need to manage the
value as an element in its own right (in which case a DataValue would be
used) - for example it is a one-off string value or a number."
b) Add String attribute 'dataValue', description: "The value for the slot
expressed as a string."
c) Add reference 'dataType'[0..1] to DataType, description: "The type of the
dataValue. If not set the type is taken as the type of the StructuralFeature
associated with the DataSlot."
d) Add constraint that DataSlot.value (reference inherited from Slot) must
be empty.
e) Update Figure 7-6-3 to change the 2 instances of Slot associated with the
'name' Attribute to be instances of DataSlot, delete the attached instances
of DataValue, and attach the 'value=' strings directly to the DataSlots
making them 'dataValue='.


Rationale
---------
This is intended to be a minimal-impact proposal that is incremental and
does not impact existing implementations.
It does not replace the existing DataValue class where there is the real
need to have stand-alone managed data values (the equivalent of Constant in
MOF and EnumerationLiteral in UML), but is for use where the values are pure
one-off values for which the overhead of a separate ModelElement is not
justified: for example most numeric and string values.
The George and Martha example in Figure 7-6-3 illustrates the distinction:
for the one-off names "George Washington" and "Martha Custis Washington"
then the new DataSlot is used, but for the pseudo-enumeration values
associated with the MaritalStatus attribute ("Married", "Widowed",
"Divorced") then DataValue is still used: in particular because some of the
values (e.g. "Divorced") are not yet associated with any actual Slot.
a) Add new subclass of Slot called 'DataSlot' with description: "A Slot which is used to hold a data value where there is no need to manage the value as an element in its own right (in which case a DataValue would be used) - for example it is a one-off string value or a number. 
The dataValue (and dataType where set) must be consistent with the type of the DataSlot's feature (Attribute) and must obey any constraints on the full 
descriptor of the Attribute's DataType (including both explicit constraints and built-in constraints such as multiplicity)." 

b) Add String attribute 'dataValue', description: "The value for the slot expressed as a string." 

c) Add reference 'dataType'[0..1] to DataType, description: "The type of the dataValue. If not set the type is taken as the type of the Attribute 
(StructuralFeature) which is the feature for the DataSlot. " 

d) Add constraint that the feature of a DataSlot must be an Attribute. In OCL: 
self.feature.oclIsTypeOf(Attribute). 

e) Add constraint that a DataType associated with a DataSlot must be type compatible with that associated 
with the Attribute which is its feature. In OCL: self.dataType.oclIsKindOf(self.feature.type). 

f) Change multiplicity of reference Slot.value from 1 to 0..1 and add constraints that it must not be empty 
for direct instances of Slot and must be empty for instances of DataSlot. In OCL: [on Slot] self.oclIsTypeOf(Slot)implies self.value->notEmpty() 
and [on DataSlot] self.value->isEmpty(). 

g) Update Figure 7-6-3 to change the 2 instances of Slot associated with the'name' Attribute to be instances of DataSlot, delete the attached instances 
of DataValue, and attach the 'value=' strings directly to the DataSlots making them 'dataValue='.





Issue 4514: Supplier and version underspecified (cwm-rtf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Enhancement
Severity: Minor
Summary:
Supplier and version of SoftwareSystem should be optional: they are not always known or relevant. 

The description for supplier should clarify whether it represents any/all of: a) the original developer (e.g. "Oracle"); b) the entity who sold the software to the organization (e.g. a reseller); c) the IT support group within the organization who deployed it for a particular set of business users. 

It would make more sense to model supplier as a reference to BusinessInformation::ResponsibleParty, since this would allow reuse, contact information and impact analysis ("supplier X has gone out of business, what have they supplied us?"). Version might also make sense on DeployedSoftwareSystem (at a logical/design level one might not care what the version is: but it might be required to record which version is actually deployed). 

Resolution: see below
Revised Text: In the formal specification (document formal/2001-10-01), add an "Attributes" subsection heading between the "Superclasses" and "References" subsections of the DeployedSoftwareSystem class description on page 5-57. Add text for fixLevel attribute to "Attributes" subsection of DeployedSoftwareSystem (document formal/2001-10-01) on page 5-57: fixLevel Describes the fix level of the DeployedSoftwareSystem instance. type: String multiplicity: exactly one In the CWM Rose model (document ad/01-02-07), add attribute DeployedSoftwareSystem::fixLevel of type "String". In the CWM XML file (document ad/01-02-03), within the bounds of the definition of class DeployedSoftwareSystem, add the following definitions after line 2587 (with the text "<Model:Namespace.contents>") and before the definition of the softwareSystem reference that begins on line 2588. (Note that the text '<<id>>' will be replaced by the generation software with appropriate references to other xmi objects when the actual file is created.) <Model:Attribute xmi.id='<<id>>' name='fixLevel' annotation='Describes the fix level of the DeployedSoftwareSystem instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='<<id>>'> <Model:StructuralFeature.multiplicity> <XMI.field>1</XMI.field> <!-- lower --> <XMI.field>1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>false</XMI.field> <!-- is_unique --> </Model:StructuralFeature.multiplicity> </Model:Attribute> In the CWM IDL zip file (document ad/01-02-06), make the following changes in the SoftwareDeployment.idl file. Insert between lines 272 and 273 in the definition of the DeployedSoftwareComponet interface: string fix_level () raises (Reflective::MofError); void fix_level (in string new_value) raises (Reflective::MofError); Replace line 268 (text = "in Core::VisibilityKind visibility)") with: in Core::VisibilityKind visibility, in string fix_level) In the formal specification (document formal/2001-10-01), change multiplicity of the supplier attribute of SoftwareSystem on page 5-61 from "exactly one" to "zero or one". In the CWM XML file (document ad/01-02-03), change the lower bound of the SoftwareSystem::supplier attribute at line 2532 from <XMI.field>1</XMI.field> <!-- lower --> to <XMI.field>10</XMI.field> <!-- lower --> In the CWM IDL file (document ad/01-02-06), insert the following text between lines 213 and 214 in the SoftwareDeployment.idl file: void unset_supplier () raises (Reflective::MofError); In the formal specification (document formal/2001-10-01), change multiplicity: of vendor attribute of SoftwareSystem on page 5-61 from "exactly one" to "zero or one". In the CWM XML file (document ad/01-02-03), change the lower bound of the SoftwareSystem::vendor attribute at line 2540 from <XMI.field>1</XMI.field> <!-- lower --> to <XMI.field>10</XMI.field> <!-- lower --> In the CWM IDL zip file (document ad/01-02-06), insert the following text between lines 217 and 218 in the SoftwareDeployment.idl file: void unset_vendor () raises (Reflective::MofError); In the formal specification (document formal/2001-10-01), update Figure 5-11 on page 5-51 to include fixLevel, from: to (note that this new figure also includes a change in response to Issue 4518 -- the reflexive association on DeployedComponent -- that is not relevant to Issue 4514): In the formal specification (document formal/2001-10-01), update Figure 5-13 on page 5-53 to include the fixLevel attribute, from: to
Actions taken:
August 19, 2001: received issue
May 13, 2002: closed issue

Discussion:
Add string attribute ‘fixLevel’ to DeployedSoftwareSystem and make supplier and version attributes optional on SoftwareSystem


Issue 4517: Diagram 8-7-3 missing lines (cwm-rtf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Clarification
Severity: Minor
Summary:
Diagram 8-7-3 could be made a clearer by using associations (lines) in addition to the references.

Resolution: No change is required. This diagram intends to represent inheritances only
Revised Text:
Actions taken:
August 19, 2001: received issue
May 13, 2002: closed issue

Issue 4518: Logical-physical deployment modeling (cwm-rtf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Revision
Severity: Significant
Summary:
DataManager contains a reference to the specific data (at the schema level) that is being managed but is constrained to be a DeployedComponent on a specific Machine. Though a DataManager refers to the Component that it 'instantiates' there is nothing associated with Component that allows one to record what data it can manage. 

For example, I would like to be able to create an element called "Peopleware Payroll Application" which references the relational schema for the application. This should be possible without having to say anything about its deployment onto specific machines. 

A separate but related point is the lack of support for physical databases. For example, When deploying an application I then want to be able to say what physical database it's using. The value of tracking this is for backup purposes etc, and the fact that actual WarehouseOperations will need to be applied to specific databases. 

Proposed resolution 

Add new class 'PhysicalDatabase' to SoftwareDeployment Model; this will inherit from Package and will have a many-to-many association 'LogicalPhysical' with Package, and be contained by Machine (as for DeployedComponent). [May want a subslcass of Dependency between PhysicalDatabases to represent replication/federation/partitioning. Or alternatively use containment by one 'abstract' PhysicalDatabase of others to represent this, though this does not allow the exact relationship to be expressed.] 

Move the 'dataPackage' reference from DataManager to SoftwareSystem. Add new many-to-many reference 'databases' to DataManager with target type PhysicalDatabase. 

Resolution: see below
Revised Text: Renumber subsections of section 5.7.2 (document formal/2001-10-01, pages 5-62 though 5-66) as follows: From To 5.7.2.1 5.7.2.1 5.7.2.2 5.7.2.3 5.7.2.3 5.7.2.4 5.7.2.4 5.7.2.5 5.7.2.5 5.7.2.6 5.7.2.6 5.7.2.8 5.7.2.7 5.7.2.9 5.7.2.8 5.7.2.10 5.7.2.9 5.7.2.11 5.7.2.10 5.7.2.12 In the CWM specification (document formal/2001-10-01), insert new section 5.7.2.2 on page 5-62 following existing section 5.7.2.1, with the text: 5.7.2.2 ComponentDesign This associates Components with the Packages containing its design. Typically this will reference the logical schema. Ends component Identifies the Component instances whose design is described by this Package. class: Component multiplicity: zero or more designPackage Identifies the Package instance containing the Component's design. class: Package multiplicity: zero or more In the CWM Rose model (document ad/01-02-07), define the CWM::Foundation::SoftwareDeployment::ComponentDesign association consistent with its immediately preceding definition in the specification. In the CWM XML file (document ad/01-02-03), add the following definition for the ComponentDesign association immediately following the definition of DeployedSoftwareSystemComponents that ends on line 2818 and immediately preceding the definition of ComponentDeployments that begins on line 2819 (note that XML attributes whose values are represented as '<<id>>' will be replaced by appropriate values when the XML file is created by the generation software): <Model:Association xmi.id='<<id>>' name='ComponentDesign' annotation='This associates Components with the Packages containing its design. Typically this will reference the logical schema.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'> <Model:Namespace.contents> <Model:AssociationEnd xmi.id='<<id>>' name='component' annotation='Identifies the Component instances whose design is described by this Package.' isNavigable='true' aggregation='none' isChangeable='true' type='<<id>>'> <Model:AssociationEnd.multiplicity> <XMI.field>0</XMI.field> <!-- lower --> <XMI.field>-1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>true</XMI.field> <!-- is_unique --> </Model:AssociationEnd.multiplicity> </Model:AssociationEnd> <Model:AssociationEnd xmi.id='<<id>>' name='designPackage' annotation='Identifies the Package instance containing the Component's design.' isNavigable='true' aggregation='none' isChangeable='true' type='<<id>>'> <Model:AssociationEnd.multiplicity> <XMI.field>0</XMI.field> <!-- lower --> <XMI.field>-1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>false</XMI.field> <!-- is_unique --> </Model:AssociationEnd.multiplicity> </Model:AssociationEnd> </Model:Namespace.contents> </Model:Association> In the CWM IDL zip file (document ad/01-02-06), add the following interface definitions for the ComponentDesign association in the SoftwareDeployment.idl file between lines 718 and 719: struct ComponentDesignLink { Component component; Core::Package package; }; typedef sequence<ComponentDesignLink> ComponentDesignSet; interface ComponentDesign : Reflective::RefAssociation { ComponentDesignLinkSet all_component_design_links() raises (Reflective::MofError); boolean exists ( in Component component, in Core::Package design_package) raises (Reflective::MofError); ComponentDesignSet component (in Core::Package design_package) raises (Reflective::MofError); Core::Package design_package (in Component component) raises (Reflective::MofError); void add ( in Component component, in Core::Package design_package) raises (Reflective::MofError); void modify_component ( in Component component, in Core::Package design_package, in Component new_component) raises (Reflective::NotFound, Reflective::MofError); void modify_design_package ( in Component component, in Core::Package design_package, in Core::Package new_design_package) raises (Reflective::NotFound, Reflective::MofError); void remove ( in Component compnent, in Core::Package design_package) raises (Reflective::NotFound, Reflective::MofError); }; // end of interface ComponentDesign In the CWM specification (document formal/2001-10-01), insert new section 5.7.2.7 on page 5-64 following the newly renumbered section 5.7.2.6, with the text: 8.7.2.7 DeployedComponentUsage This links a DeployedComponent to the other DeployedComponents that it uses. Typically this might link a deployed application to the physical databases (instances of DataManager) that it accesses. Ends usedComponents Identifies the DeployedComponent instances that use this DeployedComponent. class: DeployedComponent multiplicity: zero or more usingComponents Identifies the DeployedComponent instances that this DeployedComponent instance uses. class: DeployedComponent multiplicity: zero or more In the CWM Rose model (document ad/01-02-07), define the CWM::Foundation::SoftwareDeployment::DeployedComponentUsage association consistent with its immediately preceding definition in the specification. In the CWM XML file (document ad/01-02-03), add the following definition for the DeployedComponentUsage association immediately following the definition of SiteMachines that ends on line 2718 and immediately preceding the definition of DataProviderConnections that begins on line 2719 (note that XML attributes whose values are represented as '<<id>>' will be replaced by appropriate values when the XML file is created by the generation software): <Model:Association xmi.id='<<id>>' name='DeployedComponentUsage' annotation='This links a DeployedComponent to the other DeployedComponents that it uses. Typically this might link a deployed application to the physical databases (instances of DataManager) that it accesses.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'> <Model:Namespace.contents> <Model:AssociationEnd xmi.id='<<id>>' name='usedComponents' annotation='Identifies the DeployedComponent instances that use this DeployedComponent.' isNavigable='true' aggregation='none' isChangeable='true' type='<<id>>'> <Model:AssociationEnd.multiplicity> <XMI.field>0</XMI.field> <!-- lower --> <XMI.field>-1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>true</XMI.field> <!-- is_unique --> </Model:AssociationEnd.multiplicity> </Model:AssociationEnd> <Model:AssociationEnd xmi.id='<<id>>' name='usingComponents' annotation='Identifies the DeployedComponent instances that this DeployedComponent instance uses.' isNavigable='true' aggregation='none' isChangeable='true' type='<<id>>'> <Model:AssociationEnd.multiplicity> <XMI.field>0</XMI.field> <!-- lower --> <XMI.field>-1</XMI.field> <!-- upper --> <XMI.field>false</XMI.field> <!-- is_ordered --> <XMI.field>false</XMI.field> <!-- is_unique --> </Model:AssociationEnd.multiplicity> </Model:AssociationEnd> </Model:Namespace.contents> </Model:Association> In the CWM IDL zip file (document ad/01-02-06), add the following interface definitions for the ComponentDesign association in the SoftwareDeployment.idl file following the definition of the ComponentDesign association already inserted between lines 718 and 719: struct DeployedComponentUsageLink { DeployedComponent used_component; DeployedComponent using_component; }; typedef sequence<DeployedComponentUsageLink> DeployedCompnentUsageSet; interface DeployedComponentUsage : Reflective::RefAssociation { DeployedComponentUsageLinkSet all_deployed_component_usage_links() raises (Reflective::MofError); boolean exists ( in DeployedComponent used_component, in DeployedComponent using_component) raises (Reflective::MofError); DeployeComponentSet used_component (in DeployedComponent using_component) raises (Reflective::MofError); DeployeComponentSet using_component (in DeployedComponent used_component) raises (Reflective::MofError); void add ( in DeployedComponent used_component, in DeployedComponent using_component) raises (Reflective::MofError); void modify_used_component ( in DeployedComponent used_component, in DeployedComponent using_component, in DeployedComponent new_used_component) raises (Reflective::NotFound, Reflective::MofError); void modify_using_component ( in DeployedComponent used_component, in DeployedComponent using_component, in DeployedComponent using_component) raises (Reflective::NotFound, Reflective::MofError); void remove ( in DeployedComponent used_component, in DeployedComponent using_component) raises (Reflective::NotFound, Reflective::MofError); }; // end of interface DeployedComponentUsage In the CWM specification (document formal/2001-10-01), change Figure 5-12 to add new ComponentDesign and DeployedComponentUsage associations, from to
Actions taken:
August 19, 2001:
May 13, 2002: closed issue

Discussion:
Resolution: 

a) Add new many-to-many Association ComponentDesign between Component and Package (with one reference 
     Component.designPackage). And description "This associates Components with the Packages 
     containing its design. Typically this will reference the logical schema." 
b) Add new many-to-many recursive Association DeployedComponentUsage on DeployedComponent (with references  usedComponents and usingComponents). And description "This links a DeployedComponent to the other DeployedComponents that it uses. Typically this might link a deployed application to the physical databases (instances of  DataManager) that it accesses."





Issue 4834: We only need one COBOL Data Division model (cwm-rtf)

Click
here for this issue's archive.
Source: Deere & Company (Mr. Dave Smith, )
Nature: Uncategorized Issue
Severity:
Summary:
CWM vol. 2 3.1 says
"The concepts and ideas implicit in the definition of the COBOL language's
DATA DIVISION were one of the earliest (if not the first) formalizations of
the ubiquitous record model. A COBOL program contains much more than just
record descriptions. However, because neither CWM nor UML attempt to
describe programming languages directly, only the DATA DIVISION is described
here. The model presented here is compliant to the COBOL 85 language
standard [COBOL].

The primary purpose of the COBOL DATA DIVISION metamodel extension package
in CWM is to allow the structure of DATA DIVISIONs to be captured so that
their usage of other model elements (such as RecordDefs and Fields) can be
modeled. This allows definition of files and databases created by COBOL
programs as well as direct support for tools that attempt to track the
lineage and determine the impact of proposed changes to COBOL application
programs. The metamodel does not, however, provide sufficient structure to
support tools that want to capture the structure of a DATA DIVISION source
into a CWM repository and then be able to faithfully reproduce the source on
demand.

The COBOL DATA DIVISION metamodel extension also serves as an example of
the use of the CWM Record metamodel. The CWM Record package is intended as a
foundation upon which many record-oriented programming languages can be
described. The COBOL Data Division extension package is provided as example
demonstrating appropriate usage of CWM and UML classes in modeling the data
structure representation parts of this and similar programming language
environments."


UML Profile for EAI 14.1 says
"The goal of this COBOL model is to capture the information that would be
found in the Data Division." .

Both define partial COBOL language meta models with different levels of
detail.  We only need one COBOL Data Division model.

Resolution: see above
Revised Text: Insert "Note that this profile is based on the extension mechanisms defined in version 1.4 of the UML specification [37]." into section 3.4.1
Actions taken:
February 18, 2002: received issue
April 26, 2010: closed issue
April 26, 2010: closed issue

Discussion:
Resolution:
An explicit  statement to this effect has been inserted as part of a new section in chapter 3 (section 3.4.1)