Class ReliabilityAnalysis

  • All Implemented Interfaces:
    IAnalysis

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

      • ReliabilityAnalysis

        public ReliabilityAnalysis()
    • Method Detail

      • 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)
      • 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