View Issue Details

IDProjectCategoryView StatusLast Update
000591810000-003: Address SpaceSpecpublic2022-12-08 16:13
ReporterWolfgang Mahnke Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status acknowledgedResolutionopen 
Summary0005918: Constraints on Attribute values based on InstanceDeclarations Attributes
Description

Currently, Part 3 defines in 6.2.6 and 6.2.7 some rules on Attribute values between InstanceDeclarations and their instances or overridden InstanceDeclarations on the subtype (e.g. NodeClass shall not change).

For several attributes, nothing specific is defined. That does include the AccessLevel and AccessLevelEx attributes.

Lately, several Companion Specifications do define specific InstanceDeclaration Variables to be Read-Only or to be Writable. Based on the current spec, there is no requirement for the instances to follow the setting (e.g. being writable). And in addition, we added a capability in the AccessLevelEx to expose that the Variable does not support Subtypes of its DataType.

In both cases it would be desirable to specify that (or if) this behaviour also applies for the Instances or overridden InstanceDeclarations.

One potential solution could be to use the generic solution to expose constrains currently worked on in the Semantic Validation group.
Another one would be to have all the bits of the AccessLevelEx a second time as constraints for the Instances / overridden InstanceDelcations. In this case, maybe as an OptionSet to allow to only define a few of them.

TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

related to 0005909 acknowledged Limitation on subtyping for VariableTypes 

Activities

Jim Luth

2020-09-01 15:45

administrator   ~0012734

Discuss with Wolfgang before assigning.

Jim Luth

2020-10-06 15:58

administrator   ~0013020

Agreed to address this after the first 1.05 release of Part 3.

Paul Hunkar

2021-03-08 23:30

developer   ~0014007

Last edited: 2021-03-08 23:33

The companion specification that include the column had very clear definition on how the read write column applied and the base specification - since it now support must follow that rule, or the Companion specifications need to return to having there own column that defines the required behavior. That behavior is very clear and it only involves two bits in the Access level mask. Read and Write - if the column list ReadOnly, the read bit shall be set and the write bit cleared and it applies to all instances based on the declaration. If it is WriteOnly the read bit is clear and the write bit is set, if it is ReadWrite both bit are set and these setting apply to all instances that are created based on the type definition that includes the column. (if not set, nothing is defined and instance can do what every they want). This does not govern the UserAccess, which can further restrict these settings (i.e. it is ReadOnly, but a specific user might still not be able to read it, if they do not have the rights)

Where the companion specification were less clear is how this would be applied to subtypes (and if it could be over written) - but the general consensus was that it could be overwritten in a subtype, but it would still have to be explicitly set, i.e. a subtype could change something ReadWrite to ReadOnly, but the spec would have provide the updated definition.
I don't believe anything beside text needs to be added to part 3 - think of it as the default value - they are copied into the instance when they are created. It would be up to certification to check that if a companion specification requires read only that nothing updated it after an instance was created. When semantic validation become available, all of the items written in text can be convert to rules.

BjarneBostrom

2021-04-19 06:54

reporter   ~0014229

As a generic note, please note, that the instantiation is also allowed to use the overriding rules on top of the subtype having those overriding rules. Thus, there might need to be or not a separate rule then to define if the instantiation of a type is allowed still to change the bits, or does it need to obey the same rules. Effectively the InstanceDeclarations are all of their own "mini-TypeDefinitions" of their own, since they are allowed to override and add stuff from the TypeDefinitions of from which they are instantiated as an InstanceDeclaration in the first place.

I'm not sure is it clear that does the instantiation have same or different (maybe more limited) rules. And could companion specs to make up "their own rules" (e.g. that "all real instances of an InstanceDeclaration shall use a non-abstract DataType" as an example).

Jim Luth

2022-12-08 16:13

administrator   ~0018276

Not enough of a pain point right now. May best be handled by semantic validation.

Issue History

Date Modified Username Field Change
2020-08-26 06:58 Wolfgang Mahnke New Issue
2020-08-26 06:59 Wolfgang Mahnke Relationship added related to 0005909
2020-09-01 15:45 Jim Luth Note Added: 0012734
2020-10-06 15:58 Jim Luth Status new => acknowledged
2020-10-06 15:58 Jim Luth Note Added: 0013020
2021-03-08 23:30 Paul Hunkar Note Added: 0014007
2021-03-08 23:33 Paul Hunkar Note Edited: 0014007
2021-04-19 06:54 BjarneBostrom Note Added: 0014229
2022-12-08 16:13 Jim Luth Note Added: 0018276