Correct containment relations of ExplorationSolutions
Context.
The DSE UI passes data from the models to the backend by using an
ExplorationSpecification (Objectives/Constraints). Model elements (that
form the system model for the DSE backend) are passed by so-called
SuperSets that are containers for references to single elements or their
interconnects. These abstractions are used to keep the backend
relatively generic such that they do not need to be adapter frequently
for meta-model changes in AutoFOCUS.
Similarly, results (i.e., model fragments) are returned as SuperSets as
part of an ExplorationSolution that combines the produced solution
“models” and their quantified metrics (e.g., the power consumption of a
system).
Observed Behavior.
When using a non-z3 backend (here: the unofficial MOEA backend) that makes a more extensive use of the ExplorationSolution, invalid models can be produced. The reason for this behavior are faulty containment relations since the produced model fragments of the DSE were not contained in any other EObject. Here, it shall be noted that the SuperSets themselves are not intended as containers as of now since they are also used to pass around references to the relevant elements of a DSE.
Furthermore, one warning was produced due to an EAttribute not being set (noticeable on the console).
Proposed Fix.
While the described problem does not occur when using “official” plugins only, the Bug could be triggered by using the Meta-Model such that invalid ones are produced. In order to avoid such problems, the containments need to fixed properly while avoiding invasive changes.
Technically, containment fields will need to be introduced in the ExplorationSolution such that the produced elements can be stored. Furthermore, let additional Meta-Model classes inherit from IIdNamedElement, so they can be referenced by their ID in the stored XML (AF3 kernel automatism).
(from redmine: issue id 3353, created on 2018-03-28, closed on 2018-04-04)
- Uploads: