Please note that these explanation notes basically refer to CTTE version 2.5 onward.
java -jar
"ctteCoop.jar"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:
These are the default extensions for CTT task models. The only difference is that from version 2.0 onward, the .ctte has been used instead of the .ctt extension
This extension is used for cooperative CTT task models, namely, CTT task models in which you can define different roles acting in a collaborative way. If you are not interested in modelling a collaborative application (where you have more than one role/user involved), you should use single-role (or single-user) CTT task models
Both single-role and cooperative CTT task models can be saved using a XML-based format, to enhance the interchange with other commonly-used notations and formats
We also mention the possibility to save CTT task models as JPG files, which can be very handy to read task model specifications:
Select File| Save Tree as JPG to save a whole tree, or File| Save Subtree as JPG to save the subtree whose root is the current task.
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
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.
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.
An Example
If you want to add a new task as the farthest right child of a task T, you should do the following steps:
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.
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.
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.
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.
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
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.
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...)
There are some formats in which you can save a task model (or a part of it):
.ctt/.ctte formats (single-user) and .cctt format (cooperative)
The .ctt/.ctte are the default extensions for CTT task models. The only difference is that from version 2.0 onward, the .ctte has been used instead of the .ctt extension. Rather, .cctt extension is used for cooperative CTT task models, namely, CTT task models in which you can define different roles acting in a collaborative way. Regardless of the type of task model (single/cooperative), you can save the entire CTT task model (by selecting File |Save or File |Save as ), but you can also save only a part of the task model by selecting the root of the concerned subtree, and then doing File | Save Subtree as
.xml format
A CTT specification can be saved also in XML format to enhance the interchange with other commonly-used notations and formats (File | Save CTT as XML).
.jpg format
CTTE give the users the possibility to save their task models in ".jpg" format (select File| Save Tree as JPG to save a whole tree; select File| Save Subree as JPG to save the subtree whose root is the current task).
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)
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).
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.