Concepts
- Task
A task is a piece of code, as in general real-time scheduling theory.
It has properties such as worst case execution time, deadline, and
possibly others. The task behavior defines how a task is released:
periodically with the fixed period, by entering a control automaton state or
periodically with the given minimal inter-arrival time (sporadically).
- Automaton Template
An automaton template is an uninstantiated timed automaton
with tasks and possibly some parameters. States can be associated
with tasks and have invariants whereas transitions have
guards, synchronization and assignments as arguments.
More information about timed automata with tasks can be found in the paper
"Timed Automata with Asynchronous Processes: Schedulability and Decidability" on
the Times publications page.
- Process
A process is a building block of the system, an automaton template
instantiated with the given arguments. When the process instance enters a state
with a task assotiated, an instance of that task is released for execution.
Overview of the Times editor
Project tab
When the project tab is selected, you can
create and edit system processes and add comments in the project drawing area.
- Creating a process
To create a new process right-click on the drawing area where you want the process
symbol to appear, and select
Create->Process in the popup menu.
Creating a process
|
You can also create a process by double-clicking on the empty part
of the drawing area.
- Editing process arguments
To modify process arguments double-click on the process, or
right-click on it and select
Arguments->Edit in the popup menu.
An inline editor will appear containing the following fields:
Name , Template , and Parameters .
Editing process arguments
|
The Name field contains the name of an instantiated
template automaton specified in the Template field.
If you have already created templates before, simply choose the
name of a template in a combobox. The
Parameters field
contains actual parameter list being passed to the template during
process instantiation.
- Creating a comment
Comments improve readability of your models. To create a comment
right-click on the drawing area where you want the comment to appear,
and in the popup menu select
Create->Comment .
- Editing a comment
Double-click on the comment, or right-click and select
Arguments->Edit in the popup menu to
start modifying comment text.
All the graphical elements that are created in the drawing area have
additional formatting attributes such as colors, font styles etc. that
can also be modified in order to make your model layout look nicer. This
also applies to all the drawing areas described below.
Tasks tab
The major part of a tasks tab contains the task code editor. It supports
customizable syntax highlightning for the C-style program text. The task
code put in this editor is used by the code generator during creation of
an executable program out of your model. The pointer to the file containing
a piece of code representing a task is specified in the corresponding field
above the editor.
There is also task interface field, where an expression should
be entered showing how the task code influence internal model variables
by the end of it's execution.
When the tasks tab is selected you can also view
and edit task attributes in the Attributes panel,
by selecting a task in the task table.
Precedence tab
The execution of a task set may have to respect some precedence relations.
These relations are usually described through a precedence graph in which
nodes represent tasks and edges represent precedence relation. In Times,
we use cyclic AND/OR-precedence graphs in which we distinguish ordinary
and interiterative edges (denoted by dashed lines) such that interiterative
precedence constraints apply to all task instances except for the first
one.
Task precedece graph
|
- Adding a task node
To create a new task node in the precedence graph, right-click in
the precedence editor area, and select
Create -> Task node
in the popup menu. Alternatively, you can double click on an empty
space of the editor area.
- Adding a binary operator node
To create an AND or OR node in the precedence graph, right-click in
the precedence editor area, and select
Create -> AND connector
or Create -> OR connector in the popup menu respectively.
- Deleting a node
Select the node you want to delete, right-click on it, and select
Delete in the popup menu. Another way to do this is to
select the node and press the DEL key. You can also select
and delete a group of locations at a time. To select a group drag a
frame with your pointing device or left-click on locations while holding
the CTRL key.
- Creating a precedence relation
To create a precedence relation between nodes of a precedence graph
right-click on one of the ports (blue cross on the node border) of
the source node, and select
Create precedence in the
popup menu. Another way to do that is by simply double-clicking on a
source node port.
- Creating a interiterative (relaxed) precedence relation
To create a interiterative precedence relation between nodes of a
precedence graph right-click on one of the ports (blue cross on the
node border) of the source node, and select
Create relaxed
precedence in the popup menu.
- Deleting a precedence relation
To delete a precedence relation select it first, right-click on it,
and select
Delete in the popup menu. Another way to do
this is to select the precedence relation and press the DEL
key.
Template tab
Template tabs contain automata graphical editors similar to the
project graphical editor. Use those to create and modify timed automata
of particular templates. As any other state chart template automaton consists
of locations (states) and transitions between them. For your convenience
there is also possible to add connectors and comments.
- Adding a template
To create a new automaton template, right-click on the tab area, and select
Add template in the popup menu.
Adding a new template
|
- Removing a template
To remove a template, right-click on a template tab, and select
Remove template in the popup menu. A confirmation
dialog will appear. Choose "Yes" to remove a template.
- Template properties
Below the task table the properties of the automaton template appear
when a tab with that template is active.
Template properties
|
Use the properties panel to modify the name of a template, define its
formal parameters, specify whether
the template is a part of an environment and declare local variables.
- Creating a location
To create a new location right-click on the drawing area where you want
the location to appear, and select
Create->Location in the
popup menu. Another way to do this is to simply double-click on a drawing area
where you want the location to be created.
- Deleting a location
Select the location you want to delete, right-click on it, and select
Delete in the popup menu. Another way to do this is to
select the location and press the DEL key.
You can also select and delete a group of locations at a time. To select a
group drag a frame with your pointing device or left-click on locations
while holding the CTRL key.
- Editing location arguments
To edit location arguments right-click on the location, and select
Arguments->Edit in the popup menu.
An inline editor will appear containing the following fields: Name ,
Task , and Invariant . The Name field
contains location name, in the Task field a name of the task
associated with this location is specified (if any), and the
Invariant
field conatins an invariant expression.
- Creating a transition
To create a transition between locations right-click on one of the ports (blue
cross on the location border) of the source location, and select
Create transition in the popup menu. Another way to do that is
by simply double-clicking on a source location port.
Creating a new transition
|
Move the pointer to the destination location port left-clicking at
the positions where you want to put nails (turning points) and finally
left-click on a destination port. The transition creation process will
be automatically terminated. Every transition should begin and end at
a location port. To create a self-loop use the same or different ports
of the same location. You can also reconnect transitions to different
locations after creating them by selecting and dragging edge nails.
Note that a disconnected transition is drawn with the red color.
- Deleting a transition
To delete a transition select it first, right-click on it, and select
Delete in the popup menu. Another way to do this is to
select the transition and press the DEL key.
- Editing transition arguments
To edit transition arguments right-click on the transition, and in the popup
menu select
Arguments->Edit .
An inline editor will appear containing the following fields: Name ,
Guard , Sync , and Assign .
The Name field contains transition name.
Guard
is an expression that has to be satisfied in order to take this transition.
Sync
is the name and direction of a synchronization channel. Use a combobox
to choose between one of the declared channels. The
Assign
field is used to specify assignments that are performed if the transition
is taken.
- Creating a connector
To create a connector right-click on the drawing area where you want
the connector to appear, and select
Create->Connector
in the popup menu. Connector is a piece of syntactical sugar since
semantically connector it is a committed location that should be passed
in zero time only if both incoming and one of outgoing transitions
are enabled.
- Deleting a connector
Select the connector you want to delete, right-click on it, and select
Delete in the popup menu. Another way to do this is to
select the connector and press the DEL key.
- Comments
Comment operations are the same as in the project editor.
- Adding a nail
Right-click on a transition in a place where you want to add a new nail,
and select
Add nail in the popup menu.
- Removing a nail
Select a nail, right-click on it, and select
Remove nail in the
popup menu.
Removing transition nail
|
Times menus
- File
- New
Create a new project.
- Open...
Open a project file.
- Save
Save the active project file.
- Save As...
Save the active project to a file specified using
a standard file dialog box.
- Export to...
Export the model to either Uppaal .ta file or printable postscript document.
- Print...
Print the grahical parts of the projects.
- Close
Close the active project windows.
- previously opened files
Opens a previously opened project.
- Exit
Exit from the Times tool.
- Run
- Syntax checking
Perform a syntax check of a project.
- Simulation
Start the simulator, as described in the simulator chapter.
- Schedulability analysis
Start the schedulability analysis.
- Verification
Verify a property of a model as described in the analysis chapter.
- Code synthesis
Generate the source code for the active project, as described in the
code synthesis chapter.
- Compile
Compile the source code generated by a code generator.
- Options
- Configuration...
Modify the global settings of the Times tool as described in
configuration chapter.
- Window
- Editor
Show the editor window.
- Simulator
Show the simulator window (if the simulator has been started).
- Response times
Show the window with the worst case response times of tasks evaluated during schedulability analysis.
- Help
- About...
Display a dialog box with the program version, build and copyright notice.
|