Little-JIL to FSP Translator Installation Instructions
These instructions are for Unix systems. The translator has only been tested
on Red Hat GNU/Linux systems, but these same instructions should
work on other Unix systems with GNU tools.
Install the prerequisites. The checker will not compile
without Java 1.4. It will not run withoug LTSA.
Download the software. The Little-JIL to FSP translator is available
at downloads.
Set your classpath. littlejil.jar and juliette_ams.jar
must be on your classpath. You can get these from the LASER lab at the
University of Massachusetts, Amherst.
Run the translator. To translate your Little-JIL process
to FSP, execute java
edu.williams.cs.ljil.fsp.ProcessModeller , substituting in the name of your Little-JIL file.
This will create a new file using the name of your Little-JIL
file, but ending in .fsp.
Check for deadlocks. To check for deadlocks, run LTSA and
read in the FSP file, and perform a safety check.
Define and check properties of your process. To check
properties, you must edit the generated FSP file and define your
properties manually. Compose the properties into the model of the step that is
the least common ancestor of all the steps that generate events used
in the property.
Events are qualified by the step's name. The
most common events are:
elaboratorCompleted
elaboratorTerminated
posting
retracting
starting
optingOut
prerequisiteCompleted
prerequisiteTerminated
start_sequencer
sequencerCompleted
sequencerTerminated
postrequisite_completed
postrequisite_terminated
completed
start_exception_handler
continueAfterHandling
restart
complete
rethrowException
You will probably need to add events to the list of exported events when steps
are minimized so that all
the events of interest are visible at the point in the process where you compose
in the property.
Modify parameters modeling the steps. Some variations can
be made by modifying the parameter values used when constructing the
FSP model to force a particular type of behavior. The generated FSP
model puts comments on each parameter to help you understand which
ones to change. The following things can be controlled using
parameters:
Setting the first parameter of the LeafSequencer for a step to
true causes the step to always throw an exception. The default is false, which
allows both completion and throwing exceptions (if the step declares
that it can throw an exception).
Setting the second parameter of the ResourceAcquirer for a step
to true causes the step to fail to acquire one of its resources.
The default is false, which
allows both successful and failed acquisitions.
Setting the third parameter of the Elaborator for a step
to true causes the step to always succeed in getting an agent.
The default is false, which
allows both successful and failed acquisitions.
Setting the fourth parameter of the Elaborator for a step
to true causes the step to always fail in identifying a resource
The default is false, which
allows both successful and failed identifications.
Setting the seventh parameter of the Agent for a step
to true causes the step to always fail.
The default is false, which
allows both completion and failure.
Setting the eighth parameter of the Agent for a step
to true causes the step to fail if a
previous action occurred or not. To use this option effectively,
you must rename the globalSet event for this agent to
this shared event. You must also rename the setGlobal
event for the agent where the event occurs.
Setting the ninth parameter of the Agent for a step
to true causes the step to never start. The agent can still opt
out. Otherwise the agent will wait for this step to get retracted
(or wait forever).