Class ModelChecker
java.lang.Object
common.controller.ModelChecker
- All Implemented Interfaces:
CommonConstants, EngineNodeConstants
Title: ModelChecker
Description: Checks the model correctness
- Author:
- Francesco D'Aquino Date: 6-ott-2005 Time: 16.12.50, Bertoli Marco (new errors)
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intFields inherited from interface CommonConstants
ALL_CLASSES, ALL_MODES, ALL_STATIONS, BALKINGSTRATEGY_DESCRIPTION, BATCH_SIMULATION_DESCRIPTION, BLOCKING_DESCRIPTION, CLASS_TYPE_CLOSED, CLASS_TYPE_OPEN, CLASSES_DESCRIPTION, COMPATIBILITIES_DESCRIPTION, CONNECTIONS_DESCRIPTION, CONVERSION_WARNING_DESCRIPTION, DIM_BUTTON_L, DIM_BUTTON_M, DIM_BUTTON_S, DIM_BUTTON_XL, DIM_BUTTON_XS, DISTRIBUTION_BATCH, DISTRIBUTION_BERNOULLI_DISCRETE, DISTRIBUTION_BINOMIAL_DISCRETE, DISTRIBUTION_BURST, DISTRIBUTION_COXIAN, DISTRIBUTION_DETERMINISTIC, DISTRIBUTION_ERLANG, DISTRIBUTION_EXPONENTIAL, DISTRIBUTION_GAMMA, DISTRIBUTION_HYPEREXPONENTIAL, DISTRIBUTION_LOGNORMAL, DISTRIBUTION_MAP, DISTRIBUTION_MMPP2, DISTRIBUTION_NORMAL, DISTRIBUTION_PARETO, DISTRIBUTION_PHASETYPE, DISTRIBUTION_POISSON_DISCRETE, DISTRIBUTION_REPLAYER, DISTRIBUTION_SHIFTED_GEOMETRIC_DISCRETE, DISTRIBUTION_UNIFORM, DISTRIBUTION_UNIFORM_DISCRETE, DISTRIBUTION_WEIBULL, DISTRIBUTION_ZIPF_DISCRETE, FINITE_BLOCK, FINITE_DROP, FINITE_RETRIAL, FINITE_WAITING, FORK_CLASS_SWITCH, FORK_COMBINATION, FORK_MULTI_BRANCH_CLASS_SWITCH, FORK_PROBABILITIES, heightScaling, HTML_END, HTML_FONT_NOR_END, HTML_FONT_NORM, HTML_FONT_TIT_END, HTML_FONT_TITLE, HTML_START, IMG_JABAICON, IMG_JMCHICON, IMG_JMODELICON, IMG_JMVAICON, IMG_JSIMICON, IMG_JWATICON, IMG_SUITEICON, INFINITE_CAPACITY, JABA, JMVA, JOIN_MIX, JOIN_NORMAL, JOIN_PARTIAL, JSIM, JWAT, LARGE_ICON_SIZE_MENU_BAR, LARGE_ICON_SIZE_TOOL_BAR, LDROUTING_DESCRIPTION, LDSERVICE_DESCRIPTION, MAX_GUI_HEIGHT_ABOUT, MAX_GUI_HEIGHT_COMMON, MAX_GUI_HEIGHT_DIALOG_DEFAULT, MAX_GUI_HEIGHT_JABA, MAX_GUI_HEIGHT_JMCH, MAX_GUI_HEIGHT_JMVA, MAX_GUI_HEIGHT_JSIM_DISTRIB, MAX_GUI_HEIGHT_JSIM_PROBLEMS, MAX_GUI_HEIGHT_JSIM_RESULTS, MAX_GUI_HEIGHT_JSIM_STAT_OUTPUT, MAX_GUI_HEIGHT_JWAT, MAX_GUI_HEIGHT_JWAT_COLOR, MAX_GUI_HEIGHT_JWAT_STARTSCREEN, MAX_GUI_HEIGHT_LDEDITING, MAX_GUI_HEIGHT_LDHELP, MAX_GUI_HEIGHT_LDROUTING, MAX_GUI_HEIGHT_LDSTRATEGY, MAX_GUI_HEIGHT_POLLING, MAX_GUI_HEIGHT_PSSERVER, MAX_GUI_HEIGHT_QUICKHTML, MAX_GUI_HEIGHT_SERVER_FEATURES, MAX_GUI_HEIGHT_STARTSCREEN, MAX_GUI_HEIGHT_WHATIF_PROGRESS, MAX_GUI_HEIGHT_WHATIF_RESULTS, MAX_GUI_WIDTH_ABOUT, MAX_GUI_WIDTH_COMMON, MAX_GUI_WIDTH_DIALOG_DEFAULT, MAX_GUI_WIDTH_JABA, MAX_GUI_WIDTH_JMCH, MAX_GUI_WIDTH_JMVA, MAX_GUI_WIDTH_JSIM_DISTRIB, MAX_GUI_WIDTH_JSIM_PROBLEMS, MAX_GUI_WIDTH_JSIM_RESULTS, MAX_GUI_WIDTH_JSIM_STAT_OUTPUT, MAX_GUI_WIDTH_JWAT, MAX_GUI_WIDTH_JWAT_COLOR, MAX_GUI_WIDTH_JWAT_STARTSCREEN, MAX_GUI_WIDTH_LDEDITING, MAX_GUI_WIDTH_LDHELP, MAX_GUI_WIDTH_LDROUTING, MAX_GUI_WIDTH_LDSTRATEGY, MAX_GUI_WIDTH_POLLING, MAX_GUI_WIDTH_PSSERVER, MAX_GUI_WIDTH_QUICKHTML, MAX_GUI_WIDTH_SERVER_FEATURES, MAX_GUI_WIDTH_STARTSCREEN, MAX_GUI_WIDTH_WHATIF_PROGRESS, MAX_GUI_WIDTH_WHATIF_RESULTS, MAX_NUMBER_OF_CLASSES, MAX_NUMBER_OF_GROUPS, MAX_NUMBER_OF_PHASES, MAX_NUMBER_OF_REGIONS, MAX_NUMBER_OF_STATIONS, MAX_SMALL_ICON_SCREEN_HEIGHT, MAX_SMALL_ICON_SCREEN_WIDTH, MEASURE_LOG_DESCRIPTION, MEASURES_DESCRIPTION, METRIC_CONFIGURATIONS_DESCRIPTION, PAR1, PAR2, PARAMETRIC_ANALYSIS_DESCRIPTION, QUEUE_STRATEGY_DPS, QUEUE_STRATEGY_EDD, QUEUE_STRATEGY_EDF, QUEUE_STRATEGY_FCFS, QUEUE_STRATEGY_FCFS_PR, QUEUE_STRATEGY_GPS, QUEUE_STRATEGY_LCFS, QUEUE_STRATEGY_LCFS_PR, QUEUE_STRATEGY_LEPT, QUEUE_STRATEGY_LJF, QUEUE_STRATEGY_PS, QUEUE_STRATEGY_QBPS, QUEUE_STRATEGY_RAND, QUEUE_STRATEGY_SEPT, QUEUE_STRATEGY_SJF, QUEUE_STRATEGY_SRPT, QUEUE_STRATEGY_TBS, REFSOURCE_DESCRIPTION, ROUTING_CLASS_SWITCH, ROUTING_DISABLED, ROUTING_FASTESTSERVICE, ROUTING_LEASTUTILIZATION, ROUTING_LOADDEPENDENT, ROUTING_POWER_OF_K, ROUTING_PROBABILITIES, ROUTING_RANDOM, ROUTING_ROUNDROBIN, ROUTING_SHORTESTQL, ROUTING_SHORTESTRT, ROUTING_WEIGHTED_ROUNDROBIN, ROW_HEIGHT, SEMAPHORE_NORMAL, SERVER_FEATURE_CLASS_PARALLELISM, SERVER_FEATURE_DELAY_OFF_STRATEGIES, SERVER_FEATURE_PREEMPTIVE_STRATEGIES, SERVER_FEATURE_SCHEDULING_POLICY, SERVER_FEATURE_SERVER_COMPATIBILITIES, SERVER_FEATURE_SERVER_NAMES, SERVER_FEATURE_SERVERS_PER_SERVER_TYPE, SERVER_FEATURE_SETUP_STRATEGIES, SERVER_FEATURE_SWITCHOVER_STRATEGIES, SERVER_FEATURE_VACATION_STRATEGY, SERVER_PARAMETER_ADVANCED_FEATURES, SERVER_SETTINGS_DESCRIPTION, SERVER_VACATION_DESCRIPTION, SERVICE_DISABLED, SERVICE_LOAD_DEPENDENT, SERVICE_LOAD_INDEPENDENT, SERVICE_ZERO, SIMENGINE, SIMULATION_DESCRIPTION, SMALL_ICON_SIZE_MENU_BAR, SMALL_ICON_SIZE_TOOL_BAR, STATION_NAMES, STATION_QUEUE_STRATEGY_NON_PREEMPTIVE, STATION_QUEUE_STRATEGY_NON_PREEMPTIVE_PRIORITY, STATION_QUEUE_STRATEGY_POLLING, STATION_QUEUE_STRATEGY_POLLING_EXHAUSTIVE, STATION_QUEUE_STRATEGY_POLLING_GATED, STATION_QUEUE_STRATEGY_POLLING_LIMITED, STATION_QUEUE_STRATEGY_PREEMPTIVE, STATION_QUEUE_STRATEGY_PREEMPTIVE_PRIORITY, STATION_QUEUE_STRATEGY_PS, STATION_QUEUE_STRATEGY_PSSERVER, STATION_QUEUE_STRATEGY_PSSERVER_PRIORITY, STATION_SCHEDULING_POLICY_ALFS, STATION_SCHEDULING_POLICY_ALIS, STATION_SCHEDULING_POLICY_FAIRNESS, STATION_SCHEDULING_POLICY_FSF, STATION_SCHEDULING_POLICY_ORDER, STATION_SCHEDULING_POLICY_RAIS, STATION_TYPE_CLASSSWITCH, STATION_TYPE_DELAY, STATION_TYPE_FORK, STATION_TYPE_JOIN, STATION_TYPE_LOGGER, STATION_TYPE_PLACE, STATION_TYPE_ROUTER, STATION_TYPE_SCALER, STATION_TYPE_SEMAPHORE, STATION_TYPE_SERVER, STATION_TYPE_SINK, STATION_TYPE_SOURCE, STATION_TYPE_TERMINAL, STATION_TYPE_TRANSITION, STATION_VACATION_POLICY_BERNOULLI, STATION_VACATION_POLICY_MULTIPLE, STATION_VACATION_POLICY_NONE, STATION_VACATION_POLICY_SINGLE, STATIONS_DESCRIPTION, STATIONS_PAR_DESCRIPTION, SWITCHOVER_ZERO, TIMING_STRATEGY_IMMEDIATE, TIMING_STRATEGY_TIMED, WARNING_CLASS, WARNING_CLASS_INCOMING_ROUTING, WARNING_CLASS_OUTGOING_ROUTING, WARNING_CLASS_STATION, WARNING_INCOMING_ROUTING, WARNING_MULTI_CLASS, WARNING_OUTGOING_ROUTING, WARNING_STATION, widthScaling -
Constructor Summary
ConstructorsConstructorDescriptionModelChecker(ClassDefinition class_def, StationDefinition station_def, SimulationDefinition simulation_def, BlockingRegionDefinition brd, boolean isToJMVA) Creates a new modelchecker -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidDeletes all empty blocking regions.voidDeletes all redundant measures.Returns a Vector<Object> containing the keys of delays with a service time distribution for which the Laplace transform is not rational.Returns a Vector<Object> containing the keys of FCFS servers with different service strategies.Returns a Vector<Object> containing the keys of FCFS servers with different mean service times.Returns a Vector<Object> containing the keys of FCFS servers with a service time distribution that is not exponential.Returns a Vector<Object> containing the keys of servers with a scheduling policy other than PS, FCFS or RAND.Returns a Vector<Object> containing the keys of servers with different queue strategies.Returns a Vector<Object> containing the keys of stations with a routing strategy dependent on the state of the model.Returns a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the capacity constraints.Returns a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the memory constraints.Returns a Vector<Object> containing the keys of classes without a reference station.Returns a Vector<Object> containing the keys of class switches located between fork/join.Returns a Vector<Object> containing the keys of closed classes with zero population.Returns a Vector<Object> containing the keys of scalers not located between fork/join.Returns a Vector<Object> containing the keys of semaphores not located between fork/join.Returns a Vector<Object> containing the keys of servers using SJF, LJF, SEPT or LEPT along with the load dependent service strategy.Returns a Vector<Object> containing the keys of sources without an associated open class.Returns a Vector<Object> containing the keys of stations using a class switch routing strategy but located between fork/join.Returns a Vector<Object> containing the keys of stations using a drop strategy for a class but located between fork/join.Returns a Vector<Object> containing the keys of stations using an impatience strategy for a class but located between fork/join.Returns a Vector<Object> containing the keys of stations using different queue strategies for classes within the same priority group.Returns a Vector<Object> containing the keys of stations without an essential link.Returns a Vector<Object> containing the keys of stations without an optional link.Returns a Vector<Object> containing the keys of stations using priority scheduling when all the classes have the same priority.Returns a HashMap where the key is the key of a station.Returns a Vector<Object> containing the keys of transitions located between fork/join.Returns a Vector<Object> containing the keys of transitions with a constant enabling degree for a mode.Returns a Vector<Object> containing the keys of transitions with an infinite enabling degree for a mode.Returns a Vector<Object> containing the keys of transitions with invalid input condition for a mode.Returns a Vector<Object> containing the keys of transitions without firing outcome for a mode.booleanbooleanbooleanbooleanbooleanReturns true if a server has a scheduling policy other than PS, FCFS or RAND.booleanReturns true if a delay has a service time distribution for which the Laplace transform is not rational.booleanReturns true if a server has different queue strategies.booleanReturns true if an FCFS server has different service strategies.booleanReturns true if an FCFS server has different mean service times.booleanReturns true if an FCFS server has a service time distribution that is not exponential.booleanReturns true if an LCFS-PR server has a service time distribution for which the Laplace transform is not rational.booleanbooleanReturns true if a PS server has a service time distribution for which the Laplace transform is not rational.booleanReturns true if a station has a routing strategy dependent on the state of the model.booleanReturns true if the total preload in a blocking region exceeds the capacity constraints.booleanReturns true if the total preload in a blocking region exceeds the memory constraints.booleanReturns true if a class switch is located between fork/join.booleanReturns true if a class switch is in the model and closed classes have different reference stations.booleanReturns true if a station with a class switch routing strategy is located between fork/join.booleanReturns true if a station with a drop strategy for a class is located between fork/join.booleanReturns true if a blocking region has no stations.booleanReturns true if tasks split from a job may be routed to different joins.booleanReturns true if there is a fork but no joins.booleanReturns true if a station with an impatience strategy is located between fork/join.booleanReturns true if a station uses different queue strategies for classes within the same priority group.booleanReturns true if a measure has one or more 'null' field.booleanReturns true if there is a join but no forks.booleanReturns true if no classes have been defined.booleanReturns true if a station has no essential links.booleanReturns true if no measures have been defined.booleanReturns true if a station has no optional links.booleanReturns true if a class has no reference station.booleanReturns true if no stations have been defined.booleanReturns true if there is an open class but no sinks or transitions have been defined.booleanReturns true if there is an open class but no sources or transitions have been defined.booleanReturns true if the parametric analysis model becomes inconsistent with the simulation model.booleanReturns true if a parametric analysis model was defined but no parametric analysis is available.booleanReturns true if the same measure is defined more than once.booleanReturns true if a scaler is not located between fork/join.booleanReturns true if a station uses priority scheduling but all the classes have the same priority.booleanReturns true if a semaphore is not located between fork/join.booleanReturns true if there is a sink but no open classes have been defined.booleanReturns true if a source has no associated open classes.booleanReturns true if a transition is located between fork/join.booleanReturns true if a transition has a constant enabling degree for a mode.booleanReturns true if a transition has an infinite enabling degree for a mode.booleanReturns true if a transition has invalid input condition for a mode.booleanReturns true if a transition has no firing outcome for a mode.booleanReturns true if a server uses SJF, LJF, SEPT or LEPT along with the load dependent service strategy.booleanReturns true if a station uses a Guard strategy with zero tasks for a class.booleanReturns true if the population of a closed class is zero.booleanReturns true if the total population of closed classes is zero.booleanisToJMVA()booleanboolean
-
Field Details
-
ERROR_PROBLEM
public static final int ERROR_PROBLEM- See Also:
-
WARNING_PROBLEM
public static final int WARNING_PROBLEM- See Also:
-
NO_CLASS_ERROR
public static final int NO_CLASS_ERROR- See Also:
-
NO_STATION_ERROR
public static final int NO_STATION_ERROR- See Also:
-
NO_MEASURE_ERROR
public static final int NO_MEASURE_ERROR- See Also:
-
OPEN_CLASS_BUT_NO_SOURCE_ERROR
public static final int OPEN_CLASS_BUT_NO_SOURCE_ERROR- See Also:
-
OPEN_CLASS_BUT_NO_SINK_ERROR
public static final int OPEN_CLASS_BUT_NO_SINK_ERROR- See Also:
-
SOURCE_WITHOUT_OPEN_CLASS_ERROR
public static final int SOURCE_WITHOUT_OPEN_CLASS_ERROR- See Also:
-
SINK_BUT_NO_OPEN_CLASS_ERROR
public static final int SINK_BUT_NO_OPEN_CLASS_ERROR- See Also:
-
NO_REFERENCE_STATION_ERROR
public static final int NO_REFERENCE_STATION_ERROR- See Also:
-
NO_ESSENTIAL_LINK_ERROR
public static final int NO_ESSENTIAL_LINK_ERROR- See Also:
-
INVALID_MEASURE_ERROR
public static final int INVALID_MEASURE_ERROR- See Also:
-
DUPLICATE_MEASURE_ERROR
public static final int DUPLICATE_MEASURE_ERROR- See Also:
-
INCONSISTENT_QUEUE_STRATEGY_ERROR
public static final int INCONSISTENT_QUEUE_STRATEGY_ERROR- See Also:
-
UNPREDICTABLE_SERVICE_ERROR
public static final int UNPREDICTABLE_SERVICE_ERROR- See Also:
-
JOIN_WITHOUT_FORK_ERROR
public static final int JOIN_WITHOUT_FORK_ERROR- See Also:
-
FORK_JOIN_ROUTING_ERROR
public static final int FORK_JOIN_ROUTING_ERROR- See Also:
-
EMPTY_BLOCKING_REGION_ERROR
public static final int EMPTY_BLOCKING_REGION_ERROR- See Also:
-
BLOCKING_REGION_CAPACITY_OVERLOAD_ERROR
public static final int BLOCKING_REGION_CAPACITY_OVERLOAD_ERROR- See Also:
-
BLOCKING_REGION_MEMORY_OVERLOAD_ERROR
public static final int BLOCKING_REGION_MEMORY_OVERLOAD_ERROR- See Also:
-
CLASS_SWITCH_REFERENCE_STATION_ERROR
public static final int CLASS_SWITCH_REFERENCE_STATION_ERROR- See Also:
-
ZERO_GUARD_STRATEGY_ERROR
public static final int ZERO_GUARD_STRATEGY_ERROR- See Also:
-
SEMAPHORE_NOT_BETWEEN_FORK_JOIN_ERROR
public static final int SEMAPHORE_NOT_BETWEEN_FORK_JOIN_ERROR- See Also:
-
SCALER_NOT_BETWEEN_FORK_JOIN_ERROR
public static final int SCALER_NOT_BETWEEN_FORK_JOIN_ERROR- See Also:
-
TRANSITION_INFINITE_ENABLING_DEGREE_ERROR
public static final int TRANSITION_INFINITE_ENABLING_DEGREE_ERROR- See Also:
-
DROP_ENABLED_BETWEEN_FORK_JOIN_ERROR
public static final int DROP_ENABLED_BETWEEN_FORK_JOIN_ERROR- See Also:
-
IMPATIENCE_ENABLED_BETWEEN_FORK_JOIN_ERROR
public static final int IMPATIENCE_ENABLED_BETWEEN_FORK_JOIN_ERROR- See Also:
-
BCMP_DIFFERENT_QUEUE_STRATEGIES_WARNING
public static final int BCMP_DIFFERENT_QUEUE_STRATEGIES_WARNING- See Also:
-
BCMP_FCFS_DIFFERENT_SERVICE_STRATEGIES_WARNING
public static final int BCMP_FCFS_DIFFERENT_SERVICE_STRATEGIES_WARNING- See Also:
-
BCMP_FCFS_NON_EXPONENTIAL_DISTRIBUTION_WARNING
public static final int BCMP_FCFS_NON_EXPONENTIAL_DISTRIBUTION_WARNING- See Also:
-
BCMP_FCFS_DIFFERENT_SERVICE_TIMES_WARNING
public static final int BCMP_FCFS_DIFFERENT_SERVICE_TIMES_WARNING- See Also:
-
BCMP_PS_NON_RATIONAL_DISTRIBUTION_WARNING
public static final int BCMP_PS_NON_RATIONAL_DISTRIBUTION_WARNING- See Also:
-
BCMP_LCFS_PR_NON_RATIONAL_DISTRIBUTION_WARNING
public static final int BCMP_LCFS_PR_NON_RATIONAL_DISTRIBUTION_WARNING- See Also:
-
BCMP_DELAY_NON_RATIONAL_DISTRIBUTION_WARNING
public static final int BCMP_DELAY_NON_RATIONAL_DISTRIBUTION_WARNING- See Also:
-
BCMP_STATE_DEPENDENT_ROUTING_STRATEGY_WARNING
public static final int BCMP_STATE_DEPENDENT_ROUTING_STRATEGY_WARNING- See Also:
-
BCMP_ASYMMETRIC_SCHEDULING_POLICY_WARNING
public static final int BCMP_ASYMMETRIC_SCHEDULING_POLICY_WARNING- See Also:
-
BCMP_PRIORITY_SCHEDULING_POLICY_WARNING
public static final int BCMP_PRIORITY_SCHEDULING_POLICY_WARNING- See Also:
-
NO_OPTIONAL_LINK_WARNING
public static final int NO_OPTIONAL_LINK_WARNING- See Also:
-
FORK_WITHOUT_JOIN_WARNING
public static final int FORK_WITHOUT_JOIN_WARNING- See Also:
-
PARAMETRIC_ANALYSIS_MODEL_MODIFIED_WARNING
public static final int PARAMETRIC_ANALYSIS_MODEL_MODIFIED_WARNING- See Also:
-
PARAMETRIC_ANALYSIS_NOT_AVAILABLE_WARNING
public static final int PARAMETRIC_ANALYSIS_NOT_AVAILABLE_WARNING- See Also:
-
ZERO_POPULATION_WARNING
public static final int ZERO_POPULATION_WARNING- See Also:
-
ZERO_TOTAL_POPULATION_WARNING
public static final int ZERO_TOTAL_POPULATION_WARNING- See Also:
-
CLASS_SWITCH_BETWEEN_FORK_JOIN_WARNING
public static final int CLASS_SWITCH_BETWEEN_FORK_JOIN_WARNING- See Also:
-
CLASS_SWITCH_ROUTING_BETWEEN_FORK_JOIN_WARNING
public static final int CLASS_SWITCH_ROUTING_BETWEEN_FORK_JOIN_WARNING- See Also:
-
SCHEDULING_SAME_PRIORITY_WARNING
public static final int SCHEDULING_SAME_PRIORITY_WARNING- See Also:
-
TRANSITION_BETWEEN_FORK_JOIN_WARNING
public static final int TRANSITION_BETWEEN_FORK_JOIN_WARNING- See Also:
-
TRANSITION_CONSTANT_ENABLING_DEGREE_WARNING
public static final int TRANSITION_CONSTANT_ENABLING_DEGREE_WARNING- See Also:
-
TRANSITION_INVALID_INPUT_CONDITION_WARNING
public static final int TRANSITION_INVALID_INPUT_CONDITION_WARNING- See Also:
-
TRANSITION_NO_FIRING_OUTCOME_WARNING
public static final int TRANSITION_NO_FIRING_OUTCOME_WARNING- See Also:
-
-
Constructor Details
-
ModelChecker
public ModelChecker(ClassDefinition class_def, StationDefinition station_def, SimulationDefinition simulation_def, BlockingRegionDefinition brd, boolean isToJMVA) Creates a new modelchecker- Parameters:
class_def- reference to class definition data structurestation_def- reference to station definition data structuresimulation_def- reference to simulation definition data structurebrd- reference to blocking region definition data structureisToJMVA- true if model must be converted to jmva, false otherwise
-
-
Method Details
-
checkModel
public void checkModel() -
getClassModel
-
getStationModel
-
getBlockingModel
-
isToJMVA
public boolean isToJMVA() -
isEverythingOkNormal
public boolean isEverythingOkNormal() -
isEverythingOkToJMVA
public boolean isEverythingOkToJMVA() -
isErrorFreeNormal
public boolean isErrorFreeNormal() -
isWarningFreeNormal
public boolean isWarningFreeNormal() -
isErrorFreeToJMVA
public boolean isErrorFreeToJMVA() -
isWarningFreeToJMVA
public boolean isWarningFreeToJMVA() -
isThereNoClassError
public boolean isThereNoClassError()Returns true if no classes have been defined.- Returns:
- true if no classes have been defined.
-
isThereNoStationError
public boolean isThereNoStationError()Returns true if no stations have been defined.- Returns:
- true if no stations have been defined.
-
isThereNoMeasureError
public boolean isThereNoMeasureError()Returns true if no measures have been defined.- Returns:
- true if no measures have been defined.
-
isThereOpenClassButNoSourceError
public boolean isThereOpenClassButNoSourceError()Returns true if there is an open class but no sources or transitions have been defined.- Returns:
- true if there is an open class but no sources or transitions have been defined.
-
isThereOpenClassButNoSinkError
public boolean isThereOpenClassButNoSinkError()Returns true if there is an open class but no sinks or transitions have been defined.- Returns:
- true if there is an open class but no sinks or transitions have been defined.
-
isThereSourceWithoutOpenClassError
public boolean isThereSourceWithoutOpenClassError()Returns true if a source has no associated open classes.- Returns:
- true if a source has no associated open classes.
-
isThereSinkButNoOpenClassError
public boolean isThereSinkButNoOpenClassError()Returns true if there is a sink but no open classes have been defined.- Returns:
- true if there is a sink but no open classes have been defined.
-
isThereNoReferenceStationError
public boolean isThereNoReferenceStationError()Returns true if a class has no reference station.- Returns:
- true if a class has no reference station.
-
isThereNoEssentialLinkError
public boolean isThereNoEssentialLinkError()Returns true if a station has no essential links.- Returns:
- true if a station has no essential links.
-
isThereInvalidMeasureError
public boolean isThereInvalidMeasureError()Returns true if a measure has one or more 'null' field.- Returns:
- true if a measure has one or more 'null' field.
-
isThereRedundantMeasureError
public boolean isThereRedundantMeasureError()Returns true if the same measure is defined more than once.- Returns:
- true if the same measure is defined more than once.
-
isThereInconsistentQueueStrategyError
public boolean isThereInconsistentQueueStrategyError()Returns true if a station uses different queue strategies for classes within the same priority group.- Returns:
- true if a station uses different queue strategies for classes within the same priority group.
-
isThereUnpredictableServiceError
public boolean isThereUnpredictableServiceError()Returns true if a server uses SJF, LJF, SEPT or LEPT along with the load dependent service strategy.- Returns:
- true if a server uses SJF, LJF, SEPT or LEPT along with the load dependent service strategy.
-
isThereJoinWithoutForkError
public boolean isThereJoinWithoutForkError()Returns true if there is a join but no forks.- Returns:
- true if there is a join but no forks.
-
isThereForkJoinRoutingError
public boolean isThereForkJoinRoutingError()Returns true if tasks split from a job may be routed to different joins.- Returns:
- true if tasks split from a job may be routed to different joins.
-
isThereEmptyBlockingRegionError
public boolean isThereEmptyBlockingRegionError()Returns true if a blocking region has no stations.- Returns:
- true if a blocking region has no stations.
-
isThereBlockingRegionCapacityOverloadError
public boolean isThereBlockingRegionCapacityOverloadError()Returns true if the total preload in a blocking region exceeds the capacity constraints.- Returns:
- true if the total preload in a blocking region exceeds the capacity constraints.
-
isThereBlockingRegionMemoryOverloadError
public boolean isThereBlockingRegionMemoryOverloadError()Returns true if the total preload in a blocking region exceeds the memory constraints.- Returns:
- true if the total preload in a blocking region exceeds the memory constraints.
-
isThereClassSwitchReferenceStationError
public boolean isThereClassSwitchReferenceStationError()Returns true if a class switch is in the model and closed classes have different reference stations.- Returns:
- true if a class switch is in the model and closed classes have different reference stations.
-
isThereZeroGuardStrategyError
public boolean isThereZeroGuardStrategyError()Returns true if a station uses a Guard strategy with zero tasks for a class.- Returns:
- true if a station uses a Guard strategy with zero tasks for a class.
-
isThereSemaphoreNotBetweenForkJoinError
public boolean isThereSemaphoreNotBetweenForkJoinError()Returns true if a semaphore is not located between fork/join.- Returns:
- true if a semaphore is not located between fork/join.
-
isThereScalerNotBetweenForkJoinError
public boolean isThereScalerNotBetweenForkJoinError()Returns true if a scaler is not located between fork/join.- Returns:
- true if a scaler is not located between fork/join.
-
isThereTransitionInfiniteEnablingDegreeError
public boolean isThereTransitionInfiniteEnablingDegreeError()Returns true if a transition has an infinite enabling degree for a mode.- Returns:
- true if a transition has an infinite enabling degree for a mode.
-
isThereDropEnabledBetweenForkJoinError
public boolean isThereDropEnabledBetweenForkJoinError()Returns true if a station with a drop strategy for a class is located between fork/join.- Returns:
- true if a station with a drop strategy for a class is located between fork/join.
-
isThereImpatienceEnabledBetweenForkJoinError
public boolean isThereImpatienceEnabledBetweenForkJoinError()Returns true if a station with an impatience strategy is located between fork/join.- Returns:
- true if a station with an impatience strategy is located between fork/join.
-
isThereBcmpDifferentQueueStrategiesWarning
public boolean isThereBcmpDifferentQueueStrategiesWarning()Returns true if a server has different queue strategies.- Returns:
- true if a server has different queue strategies.
-
isThereBcmpDifferentServiceStrategiesWarning
public boolean isThereBcmpDifferentServiceStrategiesWarning()Returns true if an FCFS server has different service strategies.- Returns:
- true if an FCFS server has different service strategies.
-
isThereBcmpFcfsNonExponentialDistributionWarning
public boolean isThereBcmpFcfsNonExponentialDistributionWarning()Returns true if an FCFS server has a service time distribution that is not exponential.- Returns:
- true if an FCFS server has a service time distribution that is not exponential.
-
isThereBcmpFcfsDifferentServiceTimesWarning
public boolean isThereBcmpFcfsDifferentServiceTimesWarning()Returns true if an FCFS server has different mean service times.- Returns:
- true if an FCFS server has different mean service times.
-
isThereBcmpPsNonRationalDistributionWarning
public boolean isThereBcmpPsNonRationalDistributionWarning()Returns true if a PS server has a service time distribution for which the Laplace transform is not rational.- Returns:
- true if a PS server has a service time distribution for which the Laplace transform is not rational.
-
isThereBcmpLcfsPrNonRationalDistributionWarning
public boolean isThereBcmpLcfsPrNonRationalDistributionWarning()Returns true if an LCFS-PR server has a service time distribution for which the Laplace transform is not rational.- Returns:
- true if an LCFS-PR server has a service time distribution for which the Laplace transform is not rational.
-
isThereBcmpDelayNonRationalDistributionWarning
public boolean isThereBcmpDelayNonRationalDistributionWarning()Returns true if a delay has a service time distribution for which the Laplace transform is not rational.- Returns:
- true if a delay has a service time distribution for which the Laplace transform is not rational.
-
isThereBcmpStateDependentRoutingStrategyWarning
public boolean isThereBcmpStateDependentRoutingStrategyWarning()Returns true if a station has a routing strategy dependent on the state of the model.- Returns:
- true if a station has a routing strategy dependent on the state of the model.
-
isThereBcmpAsymmetricSchedulingPolicyWarning
public boolean isThereBcmpAsymmetricSchedulingPolicyWarning()Returns true if a server has a scheduling policy other than PS, FCFS or RAND.- Returns:
- true if a server has a scheduling policy other than PS, FCFS or RAND.
-
isThereBcmpPrioritySchedulingPolicyWarning
public boolean isThereBcmpPrioritySchedulingPolicyWarning()- Returns:
- true if a server has a priority scheduling policy
-
isThereNoOptionalLinkWarning
public boolean isThereNoOptionalLinkWarning()Returns true if a station has no optional links.- Returns:
- true if a station has no optional links.
-
isThereForkWithoutJoinWarning
public boolean isThereForkWithoutJoinWarning()Returns true if there is a fork but no joins.- Returns:
- true if there is a fork but no joins.
-
isThereParametricAnalysisModelModifiedWarning
public boolean isThereParametricAnalysisModelModifiedWarning()Returns true if the parametric analysis model becomes inconsistent with the simulation model.- Returns:
- true if the parametric analysis model becomes inconsistent with the simulation model.
-
isThereParametricAnalysisNotAvailableWarning
public boolean isThereParametricAnalysisNotAvailableWarning()Returns true if a parametric analysis model was defined but no parametric analysis is available.- Returns:
- true if a parametric analysis model was defined but no parametric analysis is available.
-
isThereZeroPopulationWarning
public boolean isThereZeroPopulationWarning()Returns true if the population of a closed class is zero.- Returns:
- true if the population of a closed class is zero.
-
isThereZeroTotalPopulationWarning
public boolean isThereZeroTotalPopulationWarning()Returns true if the total population of closed classes is zero.- Returns:
- true if the total population of closed classes is zero.
-
isThereClassSwitchBetweenForkJoinWarning
public boolean isThereClassSwitchBetweenForkJoinWarning()Returns true if a class switch is located between fork/join.- Returns:
- true if a class switch is located between fork/join.
-
isThereClassSwitchRoutingBetweenForkJoinWarning
public boolean isThereClassSwitchRoutingBetweenForkJoinWarning()Returns true if a station with a class switch routing strategy is located between fork/join.- Returns:
- true if a station uses a class switch routing strategy is located between fork/join.
-
isThereSchedulingSamePriorityWarning
public boolean isThereSchedulingSamePriorityWarning()Returns true if a station uses priority scheduling but all the classes have the same priority.- Returns:
- true if a station uses priority scheduling but all the classes have the same priority.
-
isThereTransitionBetweenForkJoinWarning
public boolean isThereTransitionBetweenForkJoinWarning()Returns true if a transition is located between fork/join.- Returns:
- true if a transition is located between fork/join.
-
isThereTransitionConstantEnablingDegreeWarning
public boolean isThereTransitionConstantEnablingDegreeWarning()Returns true if a transition has a constant enabling degree for a mode.- Returns:
- true if a transition has a constant enabling degree for a mode.
-
isThereTransitionInvalidInputConditionWarning
public boolean isThereTransitionInvalidInputConditionWarning()Returns true if a transition has invalid input condition for a mode.- Returns:
- true if a transition has invalid input condition for a mode.
-
isThereTransitionNoFiringOutcomeWarning
public boolean isThereTransitionNoFiringOutcomeWarning()Returns true if a transition has no firing outcome for a mode.- Returns:
- true if a transition has no firing outcome for a mode.
-
getSourcesWithoutOpenClass
-
getClassesWithoutReferenceStation
-
getStationsWithoutEssentialLink
-
getStationsWithInconsistentQueueStrategies
Returns a Vector<Object> containing the keys of stations using different queue strategies for classes within the same priority group.- Returns:
- a Vector<Object> containing the keys of stations using different queue strategies for classes within the same priority group.
-
getServersWithUnpredictableService
Returns a Vector<Object> containing the keys of servers using SJF, LJF, SEPT or LEPT along with the load dependent service strategy.- Returns:
- a Vector<Object> containing the keys of servers using SJF, LJF, SEPT or LEPT along with the load dependent service strategy.
-
getBlockingRegionsWithCapacityOverload
Returns a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the capacity constraints.- Returns:
- a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the capacity constraints.
-
getBlockingRegionsWithMemoryOverload
Returns a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the memory constraints.- Returns:
- a Vector<Object> containing the keys of blocking regions in which the total preload exceeds the memory constraints.
-
getStationsWithZeroGuardStrategy
Returns a HashMap where the key is the key of a station. For each station that uses a Guard strategy with zero tasks for a class, it contains a Vector<Object> with the keys of classes for which the problem occurs.- Returns:
- a HashMap where the key is the key of a station.
-
getSemaphoresNotBetweenForkJoin
-
getScalersNotBetweenForkJoin
-
getTransitionsWithInfiniteEnablingDegree
-
getStationsWithDropStrategyBetweenForkJoin
Returns a Vector<Object> containing the keys of stations using a drop strategy for a class but located between fork/join. Returns a Vector<Object> containing the keys of stations using a drop strategy for a class but located between fork/join. -
getStationsWithImpatienceStrategyBetweenForkJoin
Returns a Vector<Object> containing the keys of stations using an impatience strategy for a class but located between fork/join. Returns a Vector<Object> containing the keys of stations using an impatience strategy for a class but located between fork/join. -
getBcmpServersWithDifferentQueueStrategies
-
getBcmpFcfsServersWithDifferentServiceStrategies
-
getBcmpFcfsServersWithNonExponentialDistribution
Returns a Vector<Object> containing the keys of FCFS servers with a service time distribution that is not exponential.- Returns:
- a Vector<Object> containing the keys of FCFS servers with a service time distribution that is not exponential.
-
getBcmpFcfsServersWithDifferentServiceTimes
-
getBcmpDelaysWithNonRationalDistribution
Returns a Vector<Object> containing the keys of delays with a service time distribution for which the Laplace transform is not rational.- Returns:
- a Vector<Object> containing the keys of delays with a service time distribution for which the Laplace transform is not rational.
-
getBcmpStationsWithStateDependentRoutingStrategy
Returns a Vector<Object> containing the keys of stations with a routing strategy dependent on the state of the model.- Returns:
- a Vector<Object> containing the keys of stations with a routing strategy dependent on the state of the model.
-
getBcmpServersWithAsymmetricSchedulingPolicy
-
getBcmpServersWithPrioritySchedulingPolicy
-
getStationsWithoutOptionalLink
-
getClosedClassesWithZeroPopulation
-
getClassSwitchesBetweenForkJoin
-
getStationsWithClassSwitchRoutingBetweenForkJoin
Returns a Vector<Object> containing the keys of stations using a class switch routing strategy but located between fork/join.- Returns:
- a Vector<Object> containing the keys of stations using a class switch routing strategy but located between fork/join.
-
getStationsWithPriorityScheduling
Returns a Vector<Object> containing the keys of stations using priority scheduling when all the classes have the same priority.- Returns:
- a Vector<Object> containing the keys of stations using priority scheduling when all the classes have the same priority.
-
getTransitionsBetweenForkJoin
-
getTransitionsWithConstantEnablingDegree
-
getTransitionsWithInvalidInputCondition
-
getTransitionsWithoutFiringOutcome
-
deleteRedundantMeasures
public void deleteRedundantMeasures()Deletes all redundant measures. -
deleteEmptyBlockingRegions
public void deleteEmptyBlockingRegions()Deletes all empty blocking regions.
-