Automatically deriving the optimization problem creates somewhat invalid file (references temporary models instead of original models)

Description

PerOpteryx can determine the design space of a given input model automatically. To do that, users need to select "Only determine design decisions, do not optimize" or nothing in the DSE Options tab.

However, the created file is broken now (probably since the workflow has been adapted to use temporary models): The referenced model elements in the files are for example

<classDesignOptions href="file:/D:\ws\ws-sosym-antipatterns\de.uka.ipd.sdq.temporary\model/cocome.repository#_-3VggNCgEduC9O_qbthgAg"/>

instead of e.g.

<classDesignOptions href="cocome.resourceenvironment#_mpMBEOEgEduBSuO8WivxSA"/>

This means they refer to the temporary models instead of the original ones, which is not intended.

Workaround: Manually edit the designdecison XML file after generation, replacing all wrong file links.

Environment

None

Activity

Show:
Yves Kirschner
March 13, 2020, 2:49 PM

In the current version the described error could not be replicated. In the automatic determination of the design space, the generated models are not defective. This means that they refer to the original models, what is intended and not to the temporary models as described in the issue. Most likely, the underlying error has already been fixed in the workflow engine.

Yves Kirschner
January 24, 2020, 1:09 PM

Thanks for the pointers. I'll take it up with the next sprint.

Anne Koziolek
January 24, 2020, 10:25 AM

I suppose we could do the correction of the URIs in the generated designdecision model here:

in  de.uka.ipd.sdq.dsexplore.launch.OptimisationJob.java:

{{@Override}}
  public void cleanup(IProgressMonitor arg0) throws CleanupFailedException {}
{{   if (dseConfig.isNewProblem()) {}}
{{     //TODO: Correct the URIs in generated designdecision model}}
{{  }}}
{{ {{}}}}}

Relevant other methods are

DSEProblem.saveProblem (where the newly generated problem instance is actually stored to a file)

Opt4JStarter.init(..) (where it is checked whether the problem was generated (by calling dseConfig.isNewProblem()) and if yes, it is saved.

Constructor of DSEProblem which also checks wether a new problem shall be generated

Martina Rapp
January 17, 2020, 1:06 PM

This issue is still relevant and should be fixed, reconfirmed with Anne

Fixed

Assignee

Yves Kirschner

Reporter

Anne Koziolek

Labels

None

Requirement Category

None

External issue URL

None

Time tracking

0m

Time remaining

45m

Epic Link

Fix versions

Affects versions

Priority

Minor