Issue 12518: errors and anomalies in QVT_1.0.mdl in the 07-07-08 ZIP (qvt-rtf) Source: Nomos Software (Dr. Edward Willink, ed(at)willink.me.uk) Nature: Uncategorized Issue Severity: Summary: Use of automated tooling to support comparison of the models developed initially as part of the Eclipse GMT/UMLX project and being transferred to the Eclipse QVT Declarative/QVT Operational Mappings Projects reveals the following errors and anomalies in QVT_1.0.mdl in the 07-07-08 ZIP. Since the diagrams are printed from QVT_1.0.mdl all the QVT problems also occur in 08-04-03. Textual errors in 08-04-03 cannot be analyzed automatically. There are so many that a thorough proof read is required combined with a statement that the diagrams only are normative Resolution: Revised Text: Actions taken: June 6, 2008: received issue Discussion: End of Annotations:===== m: "Ed Willink" To: Subject: Errors and anomalies in QVT 1.0 07-07-08 ZIP QVT_1.0.mdl and QVT 1.0 08-04-03 diagrams Date: Fri, 6 Jun 2008 20:36:36 +0100 X-Mailer: Microsoft Outlook, Build 10.0.6838 Thread-Index: AcjIDKIXnBl97UTBRE+mQXeKuHTDng== X-Plusnet-Relay: 014fd25c6ad784fa7e308b2f905aa2ea Use of automated tooling to support comparison of the models developed initially as part of the Eclipse GMT/UMLX project and being transferred to the Eclipse QVT Declarative/QVT Operational Mappings Projects reveals the following errors and anomalies in QVT_1.0.mdl in the 07-07-08 ZIP. Since the diagrams are printed from QVT_1.0.mdl all the QVT problems also occur in 08-04-03. Textual errors in 08-04-03 cannot be analyzed automatically. There are so many that a thorough proof read is required combined with a statement that the diagrams only are normative. MDL and CAT files resolving these anomalies are attached. 'nsURI' for 'EMOF' should be 'http://schema.omg.org/spec/MOF/2.0/emof.xml' rather than 'http:///emof.ecore' 'name' for 'EMOF' should be 'EMOF' rather than 'emof' 'name' for 'Property.isID' should be 'isID' rather than 'isId' 'Factory' should be defined 'ReflectiveCollection' should be defined 'ReflectiveSequence' should be defined 'Comment.body' should be defined 'Factory.package' should be defined 'Element.tag' should be undefined 'eOpposite' for 'Tag.element' should be undefined 'lowerBound' for 'Operation.class' should be '0' rather than '1' 'lowerBound' for 'Type.package' should be '0' rather than '1' 'lowerBound' for 'Property.class' should be '0' rather than '1' 'ordered' for 'Class.ownedAttribute' should be 'true' rather than 'false' 'ordered' for 'Class.ownedOperation' should be 'true' rather than 'false' 'ordered' for 'Operation.ownedParameter' should be 'true' rather than 'false' 'defaultValueLiteral' for 'Class.isAbstract' should be 'false' rather than undefined 'defaultValueLiteral' for 'MultiplicityElement.isOrdered' should be 'false' rather than undefined 'defaultValueLiteral' for 'MultiplicityElement.isUnique' should be 'true' rather than undefined 'defaultValueLiteral' for 'MultiplicityElement.lower' should be '1' rather than undefined 'defaultValueLiteral' for 'MultiplicityElement.upper' should be '1' rather than undefined 'defaultValueLiteral' for 'Property.isComposite' should be 'false' rather than undefined 'defaultValueLiteral' for 'Property.isDerived' should be 'false' rather than undefined 'defaultValueLiteral' for 'Property.isReadOnly' should be 'false' rather than undefined 'Element.container()' should be defined 'Element.equals(object)' should be defined 'Element.get(property)' should be defined 'Element.getMetaClass()' should be defined 'Element.isSet(property)' should be defined 'Element.set(property,object)' should be defined 'Element.unset(property)' should be defined 'Extent.elements()' should be defined 'Extent.useContainment()' should be defined 'Factory.convertToString(dataType,object)' should be defined 'Factory.create(metaClass)' should be defined 'Factory.createFromString(dataType,string)' should be defined 'ReflectiveCollection.add(object)' should be defined 'ReflectiveCollection.addAll(objects)' should be defined 'ReflectiveCollection.clear()' should be defined 'ReflectiveCollection.remove(object)' should be defined 'ReflectiveCollection.size()' should be defined 'ReflectiveSequence.add(index,object)' should be defined 'ReflectiveSequence.get(index)' should be defined 'ReflectiveSequence.remove(index)' should be defined 'ReflectiveSequence.set(index,object)' should be defined 'Type.isInstance(object)' should be defined 'URIExtent.contextURI()' should be defined 'URIExtent.element(uri)' should be defined 'URIExtent.uri(element)' should be defined Unnavigable 'opposite' of 'Element.ownedComment' should be modelled 'nsURI' for 'EssentialOCL' should be 'http://schema.omg.org/spec/QVT/1.0/essentialocl.xml' rather than 'http:///essentialocl.ecore' 'name' for 'EssentialOCL' should be 'EssentialOCL' rather than 'essentialocl' 'name' for 'FeatureCallExp' should be 'FeatureCallExp' rather than 'FeaturePropertyCall' 'name' for 'ExpressionInOcl.contextVariable' should be 'contextVariable' rather than 'context' 'name' for 'Variable.representedParameter' should be 'representedParameter' rather than 'bindParameter' 'NavigationCallExp' should be defined 'OpaqueExpression' should be undefined 'TypeType' should be defined 'CollectionKind::Collection' should be defined 'eSuperTypes' for 'ExpressionInOcl' should be 'TypedElement' rather than 'OpaqueExpression' 'eSuperTypes' for 'PropertyCallExp' should be 'NavigationCallExp' rather than 'FeaturePropertyCall' 'eSuperTypes' for 'AnyType' should be 'Type' rather than 'Class','Type' 'abstract' for 'CollectionType' should be 'false' rather than 'true' 'containment' for 'TupleLiteralPart.attribute' should be 'false' rather than 'true' 'lowerBound' for 'CollectionType.elementType' should be '1' rather than '0' 'upperBound' for 'ExpressionInOcl.parameterVariable' should be '-1' rather than '1' 'ordered' for 'ExpressionInOcl.parameterVariable' should be 'false' rather than 'true' 'ordered' for 'OperationCallExp.argument' should be 'true' rather than 'false' 'nsPrefix' for 'QVTBase' should be 'qvtb' rather than 'qvtbase' 'nsURI' for 'QVTBase' should be 'http://schema.omg.org/spec/QVT/1.0/qvtbase.xml' rather than 'http:///qvtbase.ecore' 'name' for 'QVTBase' should be 'QVTBase' rather than 'qvtbase' 'lowerBound' for 'Domain.typedModel' should be '1' rather than '0' 'lowerBound' for 'Rule.transformation' should be '0' rather than '1' 'ordered' for 'Transformation.modelParameter' should be 'false' rather than 'true' 'nsURI' for 'QVTTemplate' should be 'http://schema.omg.org/spec/QVT/1.0/qvttemplate.xml' rather than 'http:///qvttemplate.ecore' 'nsPrefix' for 'QVTTemplate' should be 'qvtt' rather than 'qvttemplate' 'name' for 'QVTTemplate' should be 'QVTTemplate' rather than 'qvttemplate' 'lowerBound' for 'CollectionTemplateExp.member' should be '0' rather than '1' 'lowerBound' for 'CollectionTemplateExp.rest' should be '0' rather than '1' 'lowerBound' for 'CollectionTemplateExp.referredCollectionType' should be '1' rather than '0' 'nsURI' for 'QVTRelation' should be 'http://schema.omg.org/spec/QVT/1.0/qvtrelation.xml' rather than 'http:///qvtrelation.ecore' 'nsPrefix' for 'QVTRelation' should be 'qvtr' rather than 'qvtrelation' 'name' for 'QVTRelation' should be 'QVTRelation' rather than 'qvtrelation' 'lowerBound' for 'RelationCallExp.argument' should be '2' rather than '0' 'lowerBound' for 'RelationCallExp.referredRelation' should be '1' rather than '0' 'lowerBound' for 'RelationDomain.pattern' should be '1' rather than '0' 'nsURI' for 'QVTCore' should be 'http://schema.omg.org/spec/QVT/1.0/qvtcore.xml' rather than 'http:///qvtcore.ecore' 'nsPrefix' for 'QVTCore' should be 'qvtc' rather than 'qvtcore' 'name' for 'QVTCore' should be 'QVTCore' rather than 'qvtcore' 'eSuperTypes' for 'Assignment' should be 'Element' rather than nothing 'eSuperTypes' for 'EnforcementOperation' should be 'Element' rather than nothing 'abstract' for 'Assignment' should be 'true' rather than 'false' 'containment' for 'EnforcementOperation.operationCallExp' should be 'true' rather than 'false' 'Assignment.slotExpression' should be undefined 'PropertyAssignment.slotExpression' should be defined Unnavigable 'opposite' of 'PropertyAssignment.slotExpression' should be modelled 'CorePattern.variable' should be defined 'Mapping.refinement' should be defined 'Mapping.refinement' should be the 'opposite' of 'Mapping.specification' 'nsURI' for 'ImperativeOCL' should be 'http://schema.omg.org/spec/QVT/1.0/imperativeocl.xml' rather than 'http:///imperativeocl.ecore' 'nsPrefix' for 'ImperativeOCL' should be 'impocl' rather than 'imperativeocl' 'name' for 'ImperativeOCL' should be 'ImperativeOCL' rather than 'imperativeocl' 'name' for 'TryExp.exceptClause' should be 'exceptClause' rather than undefined 'containment' for 'UnpackExp.targetVariable' should be 'false' rather than 'true' 'lowerBound' for 'ReturnExp.value' should be '0' rather than '1' 'defaultValueLiteral' for 'AssertExp.severity' should be 'error' rather than undefined 'defaultValueLiteral' for 'VariableInitExp.withResult' should be 'false' rather than undefined 'eSuperTypes' for 'SwitchExp' should not include 'CallExp' 'nsPrefix' for 'QVTOperational' should be 'qvto' rather than 'qvtoperational' 'nsURI' for 'QVTOperational' should be 'http://schema.omg.org/spec/QVT/1.0/qvtoperational.xml' rather than 'http:///qvtoperational.ecore' 'name' for 'QVTOperational' should be 'QVTOperational' rather than 'qvtoperational' 'name' for 'MappingParameter.referredDomain' should be 'referredDomain' rather than 'refinedDomain' 'eSuperTypes' for 'ImperativeCallExp' should be 'OperationCallExp','ImperativeExpression' rather than 'OperationCallExp' 'eSuperTypes' for 'MappingOperation' should be 'ImperativeOperation' rather than 'ImperativeOperation','Operation','NamedElement' 'eSuperTypes' for 'ModelType' should be 'Class' rather than 'Class','URIExtent' 'eSuperTypes' for 'ResolveExp' should be 'CallExp','ImperativeExpression' rather than 'CallExp' 'eType' for 'Module.entry' should be 'EntryOperation' rather than 'Operation' 'lowerBound' for 'ModelType.metamodel' should be '1' rather than '0' 'defaultValueLiteral' for 'ImperativeCallExp.isVirtual' should be 'true' rather than undefined 'defaultValueLiteral' for 'ModelType.conformanceKind' should be 'effective' rather than undefined 'ordered' for 'OperationBody.content' should be 'true' rather than 'false' From: "Ed Willink" To: Cc: "Quentin Glineur" Subject: Re: QVT 1.0 Issue 12524 (and also 12518 to 12527) Date: Sun, 7 Sep 2008 11:35:38 +0100 X-Mailer: Microsoft Outlook, Build 10.0.6838 Thread-Index: AckQ1XfW7+MYoOdaRZqsH383msTnIg== X-Plusnet-Relay: cfc4683e0ac6584088ccb75eec87b977 Hi The submitted models are now available and used by the Eclipse QVT Declarative and QVT OML projects. The basic Rose model may be found at org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt/model/QVT.mdl in the /cvsroot/modeling module on the CVS server at dev.eclipse.org, which is accessible to an 'anonymous' user. The referenced CAT files are in the same folder. EMOF and Ecore files may be found in the ecore, emof, traditionalEcore, traditionalEmof sub-folders. The non-traditional folders have a PrimitiveTypes package. The traditional folders merge the PrimitiveTypes package into the EMOF package. A FlatQVT is also available for use by the RelToCore example. ------- The QVT Relation model has been updated to incorporate the resolution of Issue 9380. The observation "'lowerBound' for 'RelationDomain.pattern' should be '1' rather than '0'" is therefore retracted. Regards Ed Willink Date: Fri, 12 Dec 2008 06:29:43 +0000 From: Ed Willink User-Agent: Thunderbird 2.0.0.18 (Windows/20081105) To: qvt-rtf@omg.org, Quentin Glineur Subject: Re: Issue 12518, 12519, 12522 QVTBase::Transformation.modelParameter ordering ambiguity resolution. X-Plusnet-Relay: 6ceef13d8e0acdb906da18ff1cc1dd01 Hi The diagram/text conflict for QVTBase::Transformation.modelParameter ordering needs to be resolved as ordered rather than not ordered as previously suggested. An ordered behaviour is required to make the argument list of a QVTRelation::RelationCallExp well-defined. Updated files will be made available shortly in the Eclipse QVT Declarative CVS. Login: anonymous@dev.eclipse.org CVS Root: /cvsroot/modeling CVS Path: org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt/ Files: QVTBase.cat, ecore/QVTBase.ecore, emof/QVTBase.xml Regards model.zip