Bind Behavior Annex complete states to AADL modes 馃 - #3221
Open
lwrage wants to merge 2 commits into
Open
Conversation
Model mode-refining Behavior Annex subclauses through ordinary embedded AADL input. Assert same-name source and destination bindings, matching and mismatching triggers, multi-source transitions, the all-or-none rule, and the in-modes boundary without mutating the strict model.
Bind complete Behavior Annex states to visible same-named AADL modes only when the subclause has no in-modes applicability. Enforce the AS5506/3 all-or-none legality rule before strict checking, refresh affected characterization fixtures, and mark G14 implemented in the conformance report.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3178
Cause
The Xtext declarative-to-strict translator copied behavior-state names and qualifiers but never populated bindedMode. As a result, ordinary embedded AADL input could not activate the existing D.3 C4 mode-transition consistency checker. The declarative validator also did not enforce the D.3 all-or-none rule for complete states that represent modes.
Correction
This matches AS5506/3 Rev. A D.3: same-named complete states may reflect modes only without in modes; once one complete state names a mode, all complete states must do so; and transitions from reflected modes must be consistent with core mode-transition triggers.
Regression coverage
Issue3178Test uses external AADL model projects and ordinary embedded validation. It covers:
The regression was run before the production change and failed with four failures and one error across its five tests.
Validation
Every Maven invocation used -T5.
Generation
No Ecore, GenModel, Xtext grammar, src-gen, xsemantics-gen, or xtend-gen files changed. Eclipse model or grammar generation was intentionally left untouched; the normal Maven lifecycle produced only target-directory build output.
Dependencies and residual risk
This branch is based directly on master at 638ec7c and has no PR dependency.
The authoritative text constrains corresponding transition triggers, so this change binds destination states but does not introduce a destination-equality rule. The separate V05 gaps around component-category restrictions and external conditions remain out of scope and are still recorded in the conformance report.