ETSI's Bug Tracker |
Anonymous | Login | Signup for local Mantis account | 17-05-2024 17:23 IST |
Main | My View | View Issues | Change Log | Roadmap | Monitor project |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0006876 | Part-1 Metamodel | [TDL] Technical | public | 10-02-2015 13:04 | 16-07-2015 15:59 | ||||
Reporter | Andreas Ulrich | ||||||||
Assigned To | Andreas Ulrich | ||||||||
Priority | normal | Severity | major | Reproducibility | have not tried | ||||
Status | resolved | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | [TDL] Part-1 V1.2.1 | ||||||||
Target Version | [TDL] Part-1 V1.2.1 | Fixed in Version | [TDL] Part-1 V1.2.1 | ||||||
Summary | 0006876: Unsound definition of OmitValue | ||||||||
Description | The text in clause 6.3.8, semantics and constraints is flawed and needs to be fixed. This definition has the following problems that render it unacceptable: 1) The semantics definition is context-dependent on assignments to optional members and therefore only partially defined. 2) The given constraint restricts the syntactical use of OmitValue only and does not carry over to runtime semantics. 3) The given constraint cannot be checked by a tool at that location when the abstract syntax tree of a TDL spec is built. On 3) The constraint requires the context of assignments to members in order to be checked. The correct context needs to be in a DataUse. There a constraint is already put in place. The issue will become obvious when the constraints will be formalized as OCL expressions, which is planned in TDL3. On 2) We cannot extend a static semantics rule to mean also execution semantics. See the introductory text of this section. That is, the semantics needs to be completely defined within the semantics section alone. On 1) The definition of OmitValue in the semantics section is conditionally dependent on the existence of an optional member. However OmitValue occurs in a syntactically correct spec also outside of this context. In the Ericsson example: if (x.field == omit) then doSomething(); The omit occurs as an argument to a function. That is, it appears independently from an optional member. Other cases could be constructed like: 1. Msg = messageBuildingFunction(data, omit); 2. X = omitReturningFunction(msg); 3. Y = anotherFunction(msg, omitReturningFunction(msg)); 4. Call testDescription(1, 2, omit); That is, the semantics of omit in the examples above is NOT defined. This shortcoming needs to be fixed. When defining the semantics of syntactical elements one should apply common sense. Common sense tells us that the meaning of an object does not change depending on the context it occurs. Plain example: A laptop is a computer regardless whether it is used in office (the context) or at home. As a consequence, the semantics of an element shall be defined using its properties. ------------------------------------------ Proposed changes: * Delete the constraint. * State semantics to be independent from context: An 'OmitValue' denotes a symbolic value that represents no value at all. OR An 'OmitValue' denotes a symbolic value indicating a deliberately omitted value. OR similar statements. | ||||||||
Additional Information | Note: The statement given in 6.3.8 is flawed on its own: "An 'OmitValue' denotes a symbolic value that represents an optional 'Member' is omitted (that is not present)." A Member cannot be omitted because it is part of a static data type system. Only a value of this member can be omitted. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | MTS(15)000019r1_Siemens_contribution_on_omit_and_undefined.docx [^] (20,042 bytes) 10-02-2015 13:04 | ||||||||
Notes | |
(0012981) Andreas Ulrich (manager) 15-06-2015 13:12 |
Solved in TDL MM v1.2.1. |
Issue History | |||
Date Modified | Username | Field | Change |
10-02-2015 13:04 | Andreas Ulrich | New Issue | |
10-02-2015 13:04 | Andreas Ulrich | Status | new => assigned |
10-02-2015 13:04 | Andreas Ulrich | Assigned To | => Stephan Schulz |
10-02-2015 13:04 | Andreas Ulrich | File Added: MTS(15)000019r1_Siemens_contribution_on_omit_and_undefined.docx | |
15-06-2015 13:12 | Andreas Ulrich | Note Added: 0012981 | |
15-06-2015 13:12 | Andreas Ulrich | Assigned To | Stephan Schulz => Andreas Ulrich |
15-06-2015 13:12 | Andreas Ulrich | Status | assigned => resolved |
15-06-2015 13:12 | Andreas Ulrich | Resolution | open => fixed |
16-07-2015 15:59 | Philip Makedonski | Product Version | Part-1 Meta-model and Semantics V1.2.1 => [TDL] Part-1 V1.2.1 |
16-07-2015 15:59 | Philip Makedonski | Fixed in Version | => [TDL] Part-1 V1.2.1 |
16-07-2015 15:59 | Philip Makedonski | Target Version | => [TDL] Part-1 V1.2.1 |
MantisBT 1.2.14 [^] Copyright © 2000 - 2024 MantisBT Team |