@Deprecated
public class REDUtility
extends java.lang.Object
The conversion mechanism roughly is based on the technical report UCB/EECS-2008-41 with some modifications. Basically, the token would not be accumulated in the port of the FSMActor - therefore buffer overflow property would no longer exist in this implementation; it would only happen in the TimedDelay or NondeterministicTimedDelay actor.
For a successful conversion, we simply disallow a system to have super dense time tag with the format (\tau, i), where i>0. In our context this only happens when there is a TimedDelay actor with its parameter equals to zero. For systems with super dense time tag with the format (\tau, i), where i>0, the system can still be converted. However, please note that the semantics might no longer be preserved.
One important feature in our converted model is the use of "complementary" edges. This is used to handle the situation where the FSMActor must react to an arrival of token in the incoming port, but the token can not trigger any transition. For this case, the 'present' token should turn to be 'absent' as time advances. To avoid including any unnecessary behavior we add one "invalid" transition, mentioning that the FSMActor will perform a "stable" move, and at the same time the token will be bring to absent state.
For the tool RED, all time constants should be an integer. This is not a problem because the unit is actually not specified by the timed automata. Therefore, we expect users to use integer values to specify their delay or period.
Limitations: Simply following the statement in the technical report, we restate limitations of the conversion. The designer must understand the boundary of variable domain for the model under conversion. Also, due to the use of complementary edges, complex guard conditions are currently not supported.
Constructor and Description |
---|
REDUtility()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
static CompositeActor |
generateEquivalentSystemWithoutHierarchy(CompositeActor originalCompositeActor)
Deprecated.
This function generates an equivalent system which is flattened.
|
static java.lang.StringBuffer |
generateREDDescription(CompositeActor PreModel,
java.lang.String pattern,
MathematicalModelConverter.FormulaType choice,
int span,
int bufferSizeDelayActor)
Deprecated.
This is the main function which generates the system description
which is acceptable by the tool RED (Regional Encoding Diagram).
|
static boolean |
isValidModelForVerification(CompositeActor model)
Deprecated.
This function decides if the director of the current actor is DE.
|
public static CompositeActor generateEquivalentSystemWithoutHierarchy(CompositeActor originalCompositeActor) throws java.lang.CloneNotSupportedException, IllegalActionException, NameDuplicationException
originalCompositeActor
- original system under processingjava.lang.CloneNotSupportedException
- If thrown while rewriting the
modal model with state refinements to a FSMActor.IllegalActionException
- If thrown while rewriting the
modal model with state refinements to a FSMActor.NameDuplicationException
- If thrown while rewriting the
modal model with state refinements to a FSMActor.public static java.lang.StringBuffer generateREDDescription(CompositeActor PreModel, java.lang.String pattern, MathematicalModelConverter.FormulaType choice, int span, int bufferSizeDelayActor) throws IllegalActionException, NameDuplicationException, java.lang.CloneNotSupportedException
For hierarchical conversion, here we are able to deal with cases where state refinement exists. For a modalmodel with state refinement, we first rewrite it into an equivalent FSMActor.
PreModel
- The original model in Ptolemy IIpattern
- The temporal formula in TCTLchoice
- Specify the type of formula: buffer overflow detection or
general TCTL formulaspan
- The size of the span used for domain analysis.bufferSizeDelayActor
- The buffer size of the TimedDelay actor.java.lang.CloneNotSupportedException
- If thrown while
generating an equivalent system without hierarchy.IllegalActionException
- If there is a problem generating the RED description.NameDuplicationException
- If thrown while
generating an equivalent system without hierarchy.public static boolean isValidModelForVerification(CompositeActor model)
model
- Model used for testing.