Software lifecycle with YAWL –
user manual
Teddy Bouziat
Chihab Hanachi
M.F. Juan Otero Pérez and
MTI Ivica Kalichanin Balich
Introduction
To illustrate the use of YAWL, we are going to develop a simple software lifecycle process.
Installation instructions and files can be found at:
http://www.yawlfoundation.org/
Upon starting YAWL editor you are going to see the SCREEN01:
SCREEN01:
1. Starting New Project
To create a new process, means to create new specification in YAWL.
From the menu select: Specification → New Specification
This will produce a new working file to design a process as is shown on the SCREEN02
Immediately you should save your work by choosing menu
Specification → Save Specification As …
Remember the name of the file and its path, so that later you can find it!
To write a tab-name in place of “New Net 1”, for your specification, use menu
Net → Update Net Detail …
SCREEN02:
2. Creating Project Tasks.
On the working space click the right button and a pop-up menu will appear. Choose option “Atomic
Task” by clicking left button on its icon.
By clicking the left button on your working space, a new atomic task will be created.
You can drag the atomic task to rearrange its position.
Click right button while over the atomic task and a menu will appear where you can manipulate the
task. For now choose the “Set Label …” option and name your atomic task as “Problem Definition”.
You can see the result on the SCREEN03.
Repeat the procedure and create the following atomic tasks:
Requirements Definition
Design and Specification
Implementation With Design
Implementation Without Design
Test.
Try to make it as shown on the SCREEN04.
SCREEN03:
SCREEN04:
At this point save your work again. Notice that the version number changes to 0.2 in the dialog
window.
3 Creating Connections Among Tasks
Connections between two tasks (first and second) are made by drawing a vector between them. To do
this, go to the first task icon and move cursor above its edge so that a small gray square appears. Click
left button on that gray square and drag the vector to the second task icon until a gray square appears
and release the button.
Make your project look as the one on the SCREEN05, so far.
SCREEN05:
The “Requirements Definition” task will have a special output connections to allow only one of the
following two tasks to be executed, by using “exclusive or” connection.
If you click on the “Requirements Definition” task square, a new graphical menu will appear on the left
side of the screen that has tabs “Join” and “Split”. Select the “Split” tab and the XOR symbol from the
Publicité
Split tab. The “Split XOR” symbol will appear at the task square.
Connect vectors from the split XOR to the tasks that follow.
Now click on the “Testing” task square. Select the “Join” tab this time and chose XOR. The “Join
XOR” symbol will appear at the task square. Draw vectors from the previous two tasks to the “Testing”
task.
After all this, you should achieve the situation as shown on the SCREEN06.
SCREEN06:
4. Create Specification Variables
The next step is creation of all input and output variables of the tasks in the process.
Prepare your list of variables of all tasks. In this project we are going to use the next variables:
ProblemDescription, Deadline, Requirements, Specification, ProgramCode, Difficulty.
To create these variables go to menu Net → Update Net Detail … → Create …
SCREEN07:
In the dialog window that appears, see the SCREEN07, we must write the variable name, its type and
usage. Repeat the Create … for each variable that you must enter into the project.
Name:
Type:
ProblemDescription, string,
string,
Deadline
string,
Requirements
string,
Specification
string,
ProgramCode
boolean,
Difficulty
Usage:
Local
Local
Local
Local
Local
Local
The result of this procedure should be as shown on the SCREEN08.
SCREEN08:
Click the button “Done” to close the window.
Save your work using menu Specification → Save Specification.
5. Assigning Variables to Each Task
To assign variables select a task and make a right click. From the pop-up window select menu
“Decompose to Direct Data Transfer … “
On the dialog window that appears mark the input and output variables for the task.
The variables will be assigned as:
Task:
Input Variables:
Output Variables:
Problem Definition
NONE
ProblemDescription
Deadline
Requirements Definition
Publicité
ProblemDescription
Deadline
Design and Specification
Implementation With Design
Implementation Without Design
Requirements
Deadline
Difficulty
Specifications
Deadline
Requirements
Deadline
Requirements
Deadline
Difficulty
Specification
Deadline
ProgramCode
ProgramCode
Testing
ProgramCode
ProgramCode
See the SCREEN09 as example of setting variables for the task “Requirements Definition”.
Save your work again.
6. Validation and Verification of Specification
Now close the YAWL editor.
From the YAWL applications suite activate “Start Engine” menu.
Now start the “YAWL Editor” again and open your project from menu Specification → Open Recent.
On your YAWL editor screen you should see two green buttons at the lower left corner of the window.
See the SCREEN10.
To validate your project, click on menu Specification → Validate Specification.
To verify your project, click on menu Specification → Analyze Specification
SCREEN09:
SCREEN10:
7. Specify Roles and Actors
From the YAWL application suite, start the engine and activate the “Control Center”.
Type user “admin” and the password “YAWL”.
Select the “Org Data” button, from the row of buttons at the central upper part of the window.
You should now see the SCREEN11:
SCREEN11:
To add roles select the tab “Roles”, button “New” seen on SCREEN11, and the button “New” will
change to the button “Add”. In the text field “Name” type “SystemArchitect” and click on the button
“Add”.
Repeat this procedure for the following roles: Analyst, Designer, Coder and Tester.
At the end press the “Save” button.
The screen you suppose to see at this point is shown as SCREEN12.
SCREEN12:
So far, the roles are defined. Now we have to define actors.
From the upper row of buttons, select the button “Users”.
You should see the window shown at SCREEN13.
Click on the button “New” and it will convert to the button “Add”.
Fill the following data:
Publicité
First Name: Silvia
Last Name: Ramos
User ID will be the name of the actor but in lowercase.
Make Silvia administrator by clicking the button.
Activate all privileges for Silvia. For other actors we will activate only the first three privileges.
Set the password the same as the User ID (name in lowercase).
Select the role that Silvia may assume, “SystemArchitect”, and click on the < arrow to assign it.
Finally click the “Add” button.
SCREEN13:
In similar manner we will assign the following actors, except that none of them will be administrator:
Actor:
Sergio
Anita
Alicia
David
Denise
Carlos
Cornelio
Tomas
Tania
Role:
SystemArchitect
Analyst
Analyst
Designer
Designer
Coder
Coder
Tester
Tester
All will have the last name Ramos, or to your liking, User ID will be the name of the actor in
lowercase, the password will also be the actor's name in lowercase, and only the first three privileges
will be activated for all except Silvia. She is administrator and has all privileges activated.
Click the button “Save” after all the actors are registered. You should have a list of actors as in
SCREEN14.
SCREEN14:
8. Record Execution Parameters
Go back to the Yawl editor.
Right click on the “Problem Definition” task and from the pop-up menu choose “Manage Resourcing”.
The window with the title “Step 1: Interaction Points” will open.
For the three questions given in the window, set the answers: System, System and User.
See the SCREEN15. Press the “> Next” button.
The window with title “Step 2: System Offer” will open.
For the “Problem Definition” task set the “SystemArchitect” as the recipient of the task offer.
See the SCREEN16. Press the “> Next” button.
The window with title “Step 3: System Offer – Filter and Constraints” will open.
Just press the “> Next” button.
The window with title “Step 4: System Allocation” will open.
Set “Random Choice” as the default allocation strategy. Press the button the “> Next” button.
The window with title “Step 5: Establish Default User Runtime Privileges for this Task” will open.
Just press the button “Finish”.
SCREEN15:
Publicité
SCREEN16:
Repeat the procedure for each task in your process. Here the roles associated to each task:
Analyst :
Designer:
Coder:
Tester:
Requirements Definition
Design and Specification
Implementation with Design, Implementation Without Design
Test
Go through the process of validation and verification (point 6) again.
9. Execute Test Run
If you are not in the Control Center already,
from the YAWL application suite activate the “Control Center”.
Type user “admin” and the password “YAWL”.
Select the “Cases” button, from the row of buttons at the central upper part of the window.
You should now see the SCREEN17:
SCREEN17:
Click on the “Choose file” button, or however it is called in your language, and select the file you have
created in the YAWL Editor. Load the file by clicking on the “Upload File” button.
To start the test run you have to begin one case of execution of your process. To do that, select the
process in “Loaded Specifications” and click on the “Launch Case” button. Your case should appear in
the “Running Cases” as seen on the SCREEN18.
SCREEN18:
Now we have to see to which actor was the first task of the process assigned.
Click on the “Admin Queue” buton (the first button in the upper central row of buttons).
Now click on the “Worklisted” tab and you will see SCREEN19.
SCREEN19:
In the field “Assigned To” you can see the actor to which the first task “Problem Definition” is
assigned. In our case the name of the person is “Ramos, Sergio”.
To continue running the case, we have to log out of the Control Center by clicking on the button
“Logout”and log in again as “Ramos, Sergio” to be able to execute the assigned task and continue to
the next. Remember that we have filled user identification and password as the name of the person in
lowercase, so the User Id and the password are both “sergio”.
After entering the Control Center as Sergio, click on the tab “Allocated” and you will see the screen
similar to SCREEN20.
SCREEN20:
Click on the “Start” button and switch to the tab “Started”. You will get something like SCREEN21.
SCREEN21:
Now you have to create two documents that are to be created in this task:
Problem Description and Deadline.
To do this, click on “View/Edit” button. You will see SCREEN22.
For now simply fill “Problem description.” and some date like “2014/12/31” as deadline.
SCREEN22:
Click on the button“Save” and since our documents are completed, on the screen that appears click on
“Complete” at the lower left corner.
To continue with our case, we have to take the role of the administrator to see which actor has received
the next task of the process we are running. Then we have to log in as that person and repeat the same
process as we did for the actor “Sergio”. From there we follow the same sequence for all tasks in the
process until the process is completed.
Thus, one test run of the process is completed.