Editor Browser friendly
version
Back to Contents
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
  • Tabbed Area

    We refer to the large area to the right as the tabbed area. At the top of the tabbed area there are tabs: the project tab, the tasks tab and the template tabs, one for each defined automaton template.

  • Task Table

    The task table contains information about tasks in the system being modelled. Tasks can be added or removed from the task table, and their parameters can be changed also. The scheduling policy is selected from a corresponding combobox on the top of the task table.



    The Task Table

    There are three possible selections for the scheduling policy:

    Deadline Monotonic
    Task priorities are assigned according to deadlines, with the higher priority for the shorter deadline.

    Rate Monotonic
    Task priorities are assigned according to periods, with the higher priority for the shorter period.

    User-defined Priorities
    Task priorities are manually set.

    You can add a task to the task table by right-clicking below the table heading. A popup menu appears, select Add task and a new task will be added. Remove a task by right-clicking on a line containing task, and select Remove task(s) in the menu.

    The task parameters that can be edited directly in the task table are:

    Name
    The task name.
    B (Behavior)
    The behavior of a task, indicating how the task instances are released. The possible values are C for controlled, P for periodic, and S for sporadic. The release of a controlled task is specified by an automaton, periodic tasks are released periodically with the period specified in the column T, sporadic tasks are released quasi periodically with the minimum inter-arrival time specified in the column T.
    P (Priority)
    The priority of the task (bigger numbers correspond to higher priorities).
    C (Execution time)
    Time required for a task to complete its execution in a worst case.
    D (Deadline)
    Task execution deadline.
    T (Period)
    Period (time interval between releases of two sequential task instances) for periodic tasks and minimal inter-arrival time for sporadic tasks.

  • Properties or Attributes

  • In the lower left part of the main window there is a property panel. The contents of this panel is changed depending on the currently selected tab in the tab area. If the project tab is selected, there is an edit box for the project name, and a global declarations table. If the tasks tab is selected, and a task is selected in the task table, there is a table with all the task parameters. If a template tab is selected, there are edit boxes for the template name and parameters, a check-box showing whether the template represents environment, and a local declarations table.

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.


(C) 2004 DARTS, IT Dept, CS, Uppsala University, Sweden