Class SimuComAnalysis
java.lang.Object
de.uka.ipd.sdq.dsexplore.analysis.AbstractAnalysis
de.uka.ipd.sdq.dsexplore.analysis.simucom.SimuComAnalysis
- All Implemented Interfaces:
IAnalysis
Starts a SimuCom Analysis for the design space exploration.
-
Field Summary
Fields inherited from class de.uka.ipd.sdq.dsexplore.analysis.AbstractAnalysis
blackboard, criteriaList, criterionToAspect, qualityAttribute -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidanalyse(PCMPhenotype pheno, org.eclipse.core.runtime.IProgressMonitor monitor) Calls SimuCom.Returns aStringthat represents the quality attribute that this analysis determines.booleanReturns whether this analysis provides one objective per usage scenario.booleanReturns whether this analysis also provides statistics for the objectives.voidinitialise(DSEWorkflowConfiguration configuration) Saves the passed Run Configuration information so that we do not have to pass them as parameters all the time.retrieveResultsFor(PCMPhenotype pheno, org.opt4j.core.Criterion criterion) 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 theBlackboardpartitionLoadPCMModelsIntoBlackboardJob.PCM_MODELS_PARTITION_ID FIXME: Make this method independent of the blackboard state.voidsetBlackboard(de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard blackboard) Methods inherited from class de.uka.ipd.sdq.dsexplore.analysis.AbstractAnalysis
canEvaluateAspect, getCriterions, getPCMInstance, initialiseCriteriaMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.uka.ipd.sdq.dsexplore.analysis.IAnalysis
getCriterions
-
Constructor Details
-
SimuComAnalysis
public SimuComAnalysis()
-
-
Method Details
-
analyse
public void analyse(PCMPhenotype pheno, org.eclipse.core.runtime.IProgressMonitor monitor) throws AnalysisFailedException, org.eclipse.core.runtime.CoreException, de.uka.ipd.sdq.workflow.jobs.UserCanceledException Calls SimuCom. Before doing so, it calls theConfigurationHelperto update theILaunchConfigurationand stores thePCMInstanceto files, so that SimuCom can read it as usual. After the SimuCom run, the analysis results are extracted from the sensorFramework data sources and returned. The returnedIAnalysisResultis aSimuComAnalysisResultwhich does not store the results directly, but provides access to the underlying sensorFramework data sources. Analyses the current PCM instance from the blackboard. This method can only be called after calling#initialise(MDSDBlackboard, ILaunchConfiguration, ILaunch). The PCM instance for thisPCMPhenotypehas to be copied to the Blackboard into partitionLoadPCMModelsIntoBlackboardJob.PCM_MODELS_PARTITION_ID before callings this. Otherwise, a wrong PCM model is analysed. The Analysis has to store the results for thisPCMPhenotype, so thatIAnalysis.retrieveResultsFor(PCMPhenotype, Criterion)can be called on it multiple times. The results should be stored in a memory-efficient way.- Specified by:
analysein interfaceIAnalysis- Parameters:
pheno- TODO- Throws:
de.uka.ipd.sdq.workflow.jobs.UserCanceledExceptionAnalysisFailedExceptionorg.eclipse.core.runtime.CoreException- See Also:
-
de.uka.ipd.sdq.dsexplore.analysis.IAnalysis#analyse(PCMPhenotype, org.palladiosimulator.solver.core.models.PCMInstance)
-
initialise
public void initialise(DSEWorkflowConfiguration configuration) throws org.eclipse.core.runtime.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 theAnalysisProxyit is ok to call this first, you then need to call setBlackboard before callingIAnalysis.analyse(PCMPhenotype, IProgressMonitor),#retrieveLastResultsForObjective(Objective),#getObjectives(), orIAnalysis.hasObjectivePerUsageScenario().- Specified by:
initialisein interfaceIAnalysis- Throws:
org.eclipse.core.runtime.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 IStatisticAnalysisResult retrieveResultsFor(PCMPhenotype pheno, org.opt4j.core.Criterion criterion) throws org.eclipse.core.runtime.CoreException, AnalysisFailedException Description copied from interface:IAnalysisThis method can only be called after calling a#analyse()for this phenotype and the current PCM models of this candidate have to be in theBlackboardpartitionLoadPCMModelsIntoBlackboardJob.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:
retrieveResultsForin interfaceIAnalysis- Parameters:
pheno- TODO- Returns:
- Throws:
org.eclipse.core.runtime.CoreExceptionAnalysisFailedException
-
getQualityAttribute
public DSEConstantsContainer.QualityAttribute getQualityAttribute() throws org.eclipse.core.runtime.CoreExceptionDescription copied from interface:IAnalysisReturns aStringthat represents the quality attribute that this analysis determines. This method can be called without initialization.- Specified by:
getQualityAttributein interfaceIAnalysis- Overrides:
getQualityAttributein classAbstractAnalysis- Returns:
- Throws:
org.eclipse.core.runtime.CoreException
-
hasStatisticResultsFor
public boolean hasStatisticResultsFor() throws org.eclipse.core.runtime.CoreExceptionDescription copied from interface:IAnalysisReturns whether this analysis also provides statistics for the objectives. This method can be called without initialization.- Specified by:
hasStatisticResultsForin interfaceIAnalysis- Overrides:
hasStatisticResultsForin classAbstractAnalysis- Returns:
- Throws:
org.eclipse.core.runtime.CoreException
-
hasObjectivePerUsageScenario
public boolean hasObjectivePerUsageScenario() throws org.eclipse.core.runtime.CoreExceptionDescription copied from interface:IAnalysisReturns whether this analysis provides one objective per usage scenario. This method can be called before calling#initialise(MDSDBlackboard, ILaunchConfiguration, ILaunch, IProgressMonitor).- Specified by:
hasObjectivePerUsageScenarioin interfaceIAnalysis- Throws:
org.eclipse.core.runtime.CoreException
-
setBlackboard
public void setBlackboard(de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard blackboard) - Specified by:
setBlackboardin interfaceIAnalysis
-