-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Definition of initial and final state of session #700
Labels
architectural decision
Discussion of design decision
model
Related to model package (e.g., model verification)
small
Effort of one person-day or less
specification
Related to specification package (e.g., specification parsing)
Projects
Comments
This was referenced Aug 4, 2022
treiher
added a commit
to AdaCore/RecordFlux-parser
that referenced
this issue
Sep 19, 2022
treiher
added a commit
to AdaCore/RecordFlux-parser
that referenced
this issue
Sep 19, 2022
treiher
added a commit
to AdaCore/RecordFlux-parser
that referenced
this issue
Sep 20, 2022
treiher
added a commit
to AdaCore/RecordFlux-parser
that referenced
this issue
Sep 20, 2022
treiher
added a commit
to AdaCore/RecordFlux-parser
that referenced
this issue
Sep 20, 2022
treiher
added a commit
that referenced
this issue
Sep 20, 2022
treiher
added a commit
that referenced
this issue
Sep 20, 2022
treiher
added a commit
that referenced
this issue
Sep 22, 2022
adacore-bot
pushed a commit
that referenced
this issue
May 15, 2023
adacore-bot
pushed a commit
that referenced
this issue
May 15, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
architectural decision
Discussion of design decision
model
Related to model package (e.g., model verification)
small
Effort of one person-day or less
specification
Related to specification package (e.g., specification parsing)
Context and Problem Statement
The definition of the initial state requires the session aspect
Initial
and the definition of the final state requires the session aspectFinal
and a null state declaration. A minimal session specification looks as follows:The current approach requires a lot of boilerplate just to be able to give individual names to the initial and final states. I have the impression that this is unnecessary.
Considered Options
O1 Remove null state
Having the Final aspect is sufficient, as the declaration of a null state doesn't add any information.
+ Less boilerplate
− Inconsistent to Initial aspect, as Final aspect doesn't refer to declared state
O2 Use keyword instead of null state and Final aspect
Similar to message specifications,
null
could be used to refer to the final state. Also, another keyword likeFinal
would be possible, as it is very improbable that a user would like to useFinal
as a state name with another semantics.+ Less boilerplate
− No individual name for final state
O3 Define initial state by name instead of Initial aspect
The initial state must have a specific name (e.g.,
Initial
).In combination with O2:
+ Least boilerplate
− No individual name for initial state
O4 Define initial state by position instead of Initial aspect
The first declared state is considered as the initial state.
In combination with O2:
+ Least boilerplate
Decision Outcome
O2 and O4
The text was updated successfully, but these errors were encountered: