Class ReliabilityAnalysis

java.lang.Object
de.uka.ipd.sdq.dsexplore.analysis.AbstractAnalysis
de.uka.ipd.sdq.dsexplore.analysis.reliability.ReliabilityAnalysis
All Implemented Interfaces:
IAnalysis

public class ReliabilityAnalysis extends AbstractAnalysis implements IAnalysis
Starts a reliability Solver Analysis for the design space exploration.
  • Constructor Details

    • ReliabilityAnalysis

      public ReliabilityAnalysis()
  • Method Details

    • analyse

      public void analyse(PCMPhenotype pheno, IProgressMonitor monitor) throws CoreException, de.uka.ipd.sdq.workflow.jobs.JobFailedException, de.uka.ipd.sdq.workflow.jobs.UserCanceledException
      Analyses the current PCM instance from the blackboard. This method can only be called after calling #initialise(MDSDBlackboard, ILaunchConfiguration, ILaunch). The PCM instance for this PCMPhenotype has to be copied to the Blackboard into partition LoadPCMModelsIntoBlackboardJob.PCM_MODELS_PARTITION_ID before callings this. Otherwise, a wrong PCM model is analysed. The Analysis has to store the results for this PCMPhenotype, so that IAnalysis.retrieveResultsFor(PCMPhenotype, Criterion) can be called on it multiple times. The results should be stored in a memory-efficient way.
      Specified by:
      analyse in interface IAnalysis
      Parameters:
      pheno - TODO
      Throws:
      de.uka.ipd.sdq.workflow.jobs.UserCanceledException
      de.uka.ipd.sdq.workflow.jobs.JobFailedException
      CoreException
    • initialise

      public void initialise(DSEWorkflowConfiguration configuration) throws CoreException
      Saves the passed Run Configuration information so that we do not have to pass them as parameters all the time. For real analyses, you need to call setBlackboard before this so that the objectives can be determined from the usage model. For the AnalysisProxy it is ok to call this first, you then need to call setBlackboard before calling IAnalysis.analyse(PCMPhenotype, IProgressMonitor), #retrieveLastResultsForObjective(Objective), #getObjectives(), or IAnalysis.hasObjectivePerUsageScenario().
      Specified by:
      initialise in interface IAnalysis
      Throws:
      CoreException
      See Also:
      • de.uka.ipd.sdq.dsexplore.analysis.IAnalysis#initialise(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
    • hasStatisticResults

      public boolean hasStatisticResults() throws CoreException
      Throws:
      CoreException
    • retrieveResultsFor

      public IAnalysisResult retrieveResultsFor(PCMPhenotype pheno, org.opt4j.core.Criterion criterion) throws AnalysisFailedException
      Description copied from interface: IAnalysis
      This method can only be called after calling a #analyse() for this phenotype and the current PCM models of this candidate have to be in the Blackboard partition LoadPCMModelsIntoBlackboardJob.PCM_MODELS_PARTITION_ID FIXME: Make this method independent of the blackboard state. Currently, the SimuComAnalysis and the LQN analyses still require the current PCM model to be on the blackboard.
      Specified by:
      retrieveResultsFor in interface IAnalysis
      Parameters:
      pheno - TODO
      Returns:
      Throws:
      AnalysisFailedException
    • hasObjectivePerUsageScenario

      public boolean hasObjectivePerUsageScenario() throws CoreException
      Description copied from interface: IAnalysis
      Returns whether this analysis provides one objective per usage scenario. This method can be called before calling #initialise(MDSDBlackboard, ILaunchConfiguration, ILaunch, IProgressMonitor).
      Specified by:
      hasObjectivePerUsageScenario in interface IAnalysis
      Throws:
      CoreException
    • setBlackboard

      public void setBlackboard(de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard blackboard)
      Specified by:
      setBlackboard in interface IAnalysis