Class AnalysisProxy
- java.lang.Object
-
- de.uka.ipd.sdq.dsexplore.analysis.AnalysisProxy
-
-
Constructor Summary
Constructors Constructor Description AnalysisProxy(DSEWorkflowConfiguration configuration, DSEConstantsContainer.QualityAttribute qualityAttribute, DSELaunch dseLaunch, String methodName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
analyse(PCMPhenotype pheno, IProgressMonitor monitor)
Analyses the current PCM instance from the blackboard.List<org.opt4j.core.Criterion>
getCriterions()
Can only be called after initialisation (#initialise(MDSDBlackboard, ILaunchConfiguration, ILaunch, IProgressMonitor)
).DSEConstantsContainer.QualityAttribute
getQualityAttribute()
Returns aString
that represents the quality attribute that this analysis determines.boolean
hasObjectivePerUsageScenario()
Returns whether this analysis provides one objective per usage scenario.boolean
hasStatisticResultsFor()
Returns whether this analysis also provides statistics for the objectives.void
initialise(DSEWorkflowConfiguration configuration)
Saves the passed Run Configuration information so that we do not have to pass them as parameters all the time.IAnalysisResult
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 theBlackboard
partitionLoadPCMModelsIntoBlackboardJob
.PCM_MODELS_PARTITION_ID FIXME: Make this method independent of the blackboard state.void
setBlackboard(de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard blackboard)
-
-
-
Constructor Detail
-
AnalysisProxy
public AnalysisProxy(DSEWorkflowConfiguration configuration, DSEConstantsContainer.QualityAttribute qualityAttribute, DSELaunch dseLaunch, String methodName)
-
-
Method Detail
-
analyse
public void analyse(PCMPhenotype pheno, IProgressMonitor monitor) throws CoreException, de.uka.ipd.sdq.workflow.jobs.UserCanceledException, AnalysisFailedException, de.uka.ipd.sdq.workflow.jobs.JobFailedException
Description copied from interface:IAnalysis
Analyses the current PCM instance from the blackboard. This method can only be called after calling#initialise(MDSDBlackboard, ILaunchConfiguration, ILaunch)
. The PCM instance for thisPCMPhenotype
has 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:
analyse
in interfaceIAnalysis
- Parameters:
pheno
- TODO- Throws:
CoreException
de.uka.ipd.sdq.workflow.jobs.UserCanceledException
AnalysisFailedException
de.uka.ipd.sdq.workflow.jobs.JobFailedException
-
initialise
public void initialise(DSEWorkflowConfiguration configuration)
Description copied from interface:IAnalysis
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 theAnalysisProxy
it is ok to call this first, you then need to call setBlackboard before callingIAnalysis.analyse(PCMPhenotype, IProgressMonitor)
,#retrieveLastResultsForObjective(Objective)
,#getObjectives()
, orIAnalysis.hasObjectivePerUsageScenario()
.- Specified by:
initialise
in interfaceIAnalysis
-
getQualityAttribute
public DSEConstantsContainer.QualityAttribute getQualityAttribute() throws CoreException
Description copied from interface:IAnalysis
Returns aString
that represents the quality attribute that this analysis determines. This method can be called without initialization.- Specified by:
getQualityAttribute
in interfaceIAnalysis
- Returns:
- Throws:
CoreException
-
hasStatisticResultsFor
public boolean hasStatisticResultsFor() throws CoreException
Description copied from interface:IAnalysis
Returns whether this analysis also provides statistics for the objectives. This method can be called without initialization.- Specified by:
hasStatisticResultsFor
in interfaceIAnalysis
- Returns:
- Throws:
CoreException
-
getCriterions
public List<org.opt4j.core.Criterion> getCriterions() throws CoreException
Description copied from interface:IAnalysis
Can only be called after initialisation (#initialise(MDSDBlackboard, ILaunchConfiguration, ILaunch, IProgressMonitor)
).- Specified by:
getCriterions
in interfaceIAnalysis
- Returns:
- Throws:
CoreException
-
retrieveResultsFor
public IAnalysisResult retrieveResultsFor(PCMPhenotype pheno, org.opt4j.core.Criterion criterion) throws CoreException, 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 theBlackboard
partitionLoadPCMModelsIntoBlackboardJob
.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 interfaceIAnalysis
- Parameters:
pheno
- TODO- Returns:
- Throws:
CoreException
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 interfaceIAnalysis
- Throws:
CoreException
-
setBlackboard
public void setBlackboard(de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard blackboard)
- Specified by:
setBlackboard
in interfaceIAnalysis
-
-