How to Use CTTE

Please note that these explanation notes basically refer to CTTE version 2.5 onward.

  1. General
    1. How to Install and Run the Tool
    2. The Formats in Which You Can Save a CTT Task Model
    3. CTT Temporal Operators
    4. CTTE Menus
  2. How To:
    1. Build a New Single-User Task Model
    2. Add New Tasks to a Task Model
    3. Add Operators Between Tasks
    4. Change the Properties of a Task
    5. Build a New Cooperative Task Model
    6. Edit an Existing Single-User/Cooperative Task Model
    7. Save a Single-User/Cooperative Task Model in Different Formats
    8. Check the Single-User/Cooperative Task Model Structure
    9. Obtain a CTT Task Model Starting from an Informal Description of the System
    10. Simulate the Behaviour of a Task Model

1. General

1.1 - How to Install and Run the Tool

  1. Download the latest version of the tool from its download page. Please note that CTTE is a Java-based tool, so you should have installed a Java Runtime Environment in your system to run CTTE
  2. Unzip the downloaded file into a distribution folder (from now on, we call this folder as "ctte_home")
  3. Run the tool. There are two possible ways to do this:

1.2 - The Formats in Which You Can Save a CTT Task Model

The task models created by the CTTE environment are all compliant with the specification of the ConcurTaskTrees language. However, they can be saved by using different file extensions, which might depend both on the type of content the task model has (for instance, whether it is a single task model or a cooperative task model), and the type of format that has been used for representing the information (e.g. XML). We can identify the following file extensions for the CTT task model that can be generated with the CTTE:

We also mention the possibility to save CTT task models as JPG files, which can be very handy to read task model specifications:

1.3 - CTT Temporal Operators

With the CTT notation, it is possible to include different temporal relationships (or temporal operators), which have different priority levels. The CTT temporal operators (from the operators with the highest priority to the ones with the lowest) are :

Please note that, differently from the above CTT temporal operators, which are all operators to be applied to two tasks (e.g. T1>>T2), the following CTT operators are unary operators:

For further information about CTT notation please refer to this page

1.4 - CTTE Menus

2. How To

2.1 - Build a New Single-User Task Model

When you start CTTE, the "root" node of a new single-user task model is shown, and its category is set by default to "abstraction" (a cloud-shaped icon is used). At that moment the root is the only node in the task model: within the editor panel it is highlighted as the "current" task (see the black frame around its icon). Generally, any time you use CTTE there should be one task will be highlighted as the "current" task, meaning that every action you do will be referred to this task. Changing the current task is easy: just select the icon of the concerned task.

2.2 - Add New Tasks to a Task Model

A new task can be added to a certain task model, by selecting the proper icon in the graphical toolbar visualised in the left-hand part of the tool. Such task can be included in the task model according to two insertion modes that depend on where the new task will be added with respect to the currently selected task, namely:

The current insertion mode is visualised by selecting, from the CTTE menubar, the menu "Insert". In order to change the insertion mode you can use that button again and change appropriately the insertion mode.

2.3 - Add Operators Between Tasks

You can add a temporal operator on the right side of the currently selected task. Thus, if you have two sibling tasks, Task1 and Task2 and you want to specify Task1 op Task2 (where op is a CTT operator) you have to click on the icon associated with Task1, then select (within the operator toolbar) the button associated with the desired operator.

2.4 - Change the Properties of a Task

To change the properties of a task, double-click on its icon. A new window will be displayed making you able to change the properties you are interested in. A subset of relevant properties about the current task is also displayed within the main window in order to give you quick access to them.

2.5 - Build a New Cooperative Task Model

  1. Step 1: Enable "Cooperative mode" option

    When you start CTTE, by default you are supposed to build a single-user task model. If you want to create a cooperative task model you have to enable the cooperative mode by selecting View|Cooperative mode in the tool menubar. As a result, the root of the Cooperative task model ("Cooperative root") will be displayed in the editor panel and the "Cooperative" label is displayed in the tabbed panel within the main window, meaning that the task of the "Cooperative" task model is currently shown.

  2. Step 2: Add new roles

    Before building the cooperative task model, you should specify the task model of the involved "roles", so you have to add new roles to the cooperative task model. In order to do it, select the "New Role" button in the bottom-right hand corner of the window displayed when the the "Cooperative" task model is shown. After selecting that button, the tabbed panel is automatically switched to the task model that has been just created and associated with the new role.

  3. Step 3: Focus on the "connection tasks"

    If you are building a cooperative task model, you are supposed to have specified -within the task model of each role- some "connection tasks" Such tasks are displayed -for each role- when the Cooperative task model is selected in the right-hand part of the main window and they are useful to build easily the cooperative task model. Connection tasks are used to connect the tasks specified in the task model of each role and which are involved in a cooperation, with the related tasks existing in the cooperative task model

  4. Step 4: Building the cooperative task model: set connection tasks

    All the leaves of the cooperative task model have to be connection tasks previously defined in the task model of each involved role. If you want to add a (connection) task in the cooperative task model you have to add the task in the cooperative task model as usual (that is by selecting the appropriate icon in the left-hand part of the window). Then, make this task the current task and select the appropriate role/task in the lists displayed in the right-hand part of the window, then click "Set Connection" button.

2.6 - Edit an Existing Single-User/Cooperative Task Model

Some general, commonly-used editing operations are available within the CTTE:

Some other features are available in order to support users while editing their task models:

You might also want to obtain some information about the task models (e.g. get general information about the number/type of tasks): in order to do this select (Info| Task Model Statistics...)

2.7 - Save a Single-User/Cooperative Task Model in Different Formats

There are some formats in which you can save a task model (or a part of it):

2.8 - Check the Structure of a Single-User/Cooperative Task Model

In order to facilitate the users to build correct task model specifications, the CTTE offers the possibility to perform some automatic checks on the specification itself, regarding all the possible errors which might make the specification incomplete or ambiguous (i.e.: a task with only one child, lack of temporal operators between two children, a connection task which does not appear in the cooperative task model, ...). To enable such functionality select Tools | Check Model Structure. A window appears with the list of errors (if any) together with the possibility of having quick access to the task referred by a specific error (by double-click on the error itself)

2.9 - Obtain a CTT Task Model starting from an Informal Description of the System

Sometimes users might have available an informal description of a system, or some sample scenarios describing tipical behaviour of the system itself. The CTT Environment offers the useful capability of supporting users while they extract relevant information from such scenarios in order to build a more formal specification (Tools | Informal to Formal Description).

2.10 - Simulate the Behaviour of a Task Model

Especially with large specifications it is very useful to have the possibility to generate and follow some specific execution sequences/paths that are admittable with the current task model specification. Once you have specified the behaviour of a specific system, the tool allows you to intercatively "simulate" some behaviour by means of the Task Model Simulator (which can be activated by selecting Tools | Start Task Model Simulator). The Task Model Simulator enables, from time to time, and depending on the previously selected tasks, only the tasks that can be executed according to the model specification.