Issue 1249: CDL for BOCAModel (boca-rtf) Source: (, ) Nature: Revision Severity: Summary: Summary: BOCA The CDL for the BocaModel, beginning page 76, has some inconsistencies. Resolution: Revised Text: Actions taken: April 28, 1998: received issue June 23, 1998: closed issue Discussion: received issue End of Annotations:===== Return-Path: From: Tom Digre To: "'issues'" Cc: "'Boca RTF'" Subject: boca-rtf issue: CDL for BocaModel Date: Tue, 28 Apr 1998 10:47:46 -0400 BOCA The CDL for the BocaModel, beginning page 76, has some inconsistencies. A summary of inconsistencies: * Global: * "readonly" is an IDL keyword. It is used incorrectly. These references should be changed to "is_read_only" * "inverseType" should be "inverse_type" * illegal references to "identifiable" types from an attribute (conflicts with BocaAttribute description on page 51 which states that the type of the slot must not have identity): * BocaDuring::condition * BocaType::base_type * BocaStructuralFeature::computation * BocaStructuralFeature::constraint * BocaStructuralFeature::returned_type * BocaStructuralFeature::consumer * BocaRelationshipReference::multiplicity * IsOwnedBy::multiplicity * Composite::multiplicity * Adapter::multiplicity * BocaOperation::pre_condition * BocaOperation::post_condition * BocaOperation::computation * BocaBusinessEntity::base_type * BocaBusinessProcess::base_type * BocaBusinessEvent::base_type * BocaSubsystem::base_type * BocaDependent::base_type * BocaCommand::base_type * BocaApplianceKind::base_type * BocaCollectionKind::content_type * Label::labeled_element * Dependency::guard * ECARule::action * StateTransitionRule::source * StateTransitionRule::target * BocaEventConsumer::path_expression * BaseExpression::name_space * BuiltInBinary::left * BuiltInBinary::right * BuiltInUnary::argument * InvocationArgument::invocationValue * InvocationArgument::of_argument * Invocation::of_operation * Invocation::receiver * SubsetVariable::function * SubsetFunction::the_set * SubsetFunction::constraint * SubsetFunction::variable * Conditional::condition * Conditional::true_value * Conditional::false_value * ArrayAccess::of_array * ArrayAccess::index * Traversal::of_feature * Traversal::argument * illegal references to "unidentifiable" types from a relationship: * BocaRelationshipReference::inverse * page 76 * identifiable BocaKey (forward reference) * BocaKey not defined * identifiable BocaFeatureOwner * references undefined BocaDuring * identifiable BocaDuring * misspelling: "relatieonship" should be "relationship" * identifiable BocaFeature * attribute "is_readonly" should be "is_read_only" * attribute target_scope=INSTANCE * INSTANCE is undefined, (should be INSTANCES) * attribute redefines has name conflict with relationship redefines, it has illegal reference to "identifiable", and is redundant with relationship redefines. (it should be removed.) * page 79 * appliance_kind Dependency * "relationship trigger Composes BocaEventConsumer inverse consumer;" - the inverse is not defined * page 80 * identifiable InvocationArgument * "value" conflicts with inherited MOF Reflective feature RECOMMENDATIONS: * Global: * replace every occurrence of "readonly" with "is_read_only" * replace every occurrence of "inverseType" with "inverse_type" * resolution of illegal references from attributes: * change attribute declaration to relationship declaration * or change referenced type to Unidentifiable * page 76 * reference text: "identifiable BocaKey;" * action: remove * action: add text "identifiable BocaDuring;" * reference text: "identifiable BocaDuring: BocaFeatureOwner{" * reference text:" relationship owner IsPartOf BocaFeatureOwner inverse during_kw;" * action: change "relatieonship" to "relationship" * reference text: "[is_abstract] identifiable BocaFeature: AbstractFeature{" * reference text: "attribute boolean is_readonly=FALSE;" * action: replace "is_readonly" with "is_read_only" * reference text: "attribute ScopeKind target_scope=INSTANCE;" * action: replace "INSTANCE" with "INSTANCES" * reference text: "attribute BocaFeature redefines;" * action: remove * page 79 * reference text: "appliance_kind Dependency: Appliance {" * reference text: "relationship trigger Composes BocaEventConsumer inverse consumer;" * action: remove "inverse consumer" * page 80 * reference text: "identifiable InvocationArgument{" * action: replace "value" with "invocationValue" Tom Digre