saeaadl / aadlv2.1

For managing AADL V2.1 errata
0 stars 0 forks source link

classifiers on abstract features #6

Closed reteprelief closed 8 years ago

reteprelief commented 8 years ago

Issue: Abstract features can only refer to prototypes, not classifiers. We had it in V2 but it got accidentally removed in V2.1 when simplifying refinement to specific feature categories. Proposed correction: Allow classifier. Accepted 7/15.

reteprelief commented 8 years ago

For implementation see osate/osate2-core#372

reteprelief commented 8 years ago

To disambiguate the syntax for references to feature prototype vs. classifier prototype, we use the keyword prototype in the feature declaration when referring to the feature prototype. In the case of a reference to a classifier or classifier prototype we use the keyword feature.

prototypes
  fproto: feature;
  dt: data;
features
  myfeature: prototype fproto;
  myfeatureprotodata: feature dt;
  myfeaturedatatype: feature mydatatype;
reteprelief commented 8 years ago

The grammar rule: `abstract_feature_spec ::= defining_abstract_feature_identifier : ( [ in | out ] feature [ featurecomponent_prototype_identifier | unique_component_classifier_reference ] ) | ( [ in | out ] prototype feature_prototype_identifier )

abstract_feature_refinement ::= ( defining_abstract_feature_identifier : refined to [ in | out ] feature [ featurecomponent_prototype_identifier | unique_component_classifier_reference ] ) | port_refinement | feature_group_refinement | subcomponent_access_refinement | parameter_refinement `