Objective: This chunk aims at guiding the Requirements Engineer (RE) in discovering new goals by reasoning on missing actions in a given scenario. This is based on rules that detect incompletnesses using a typology of actions. Goals express requirements expected to be satisfied by the system under construction.
To attain this objective following the guidelines provided by the chunk,
it is necessary to start with a goal which has been elicited already
and a scenario describing a system behaviour to achieve this goal. The
couple (Goal G, Scenario Sc) is called a requirements chunk.
The intention is to elicit new goals given a requirement chunk (G,
Sc) by suggesting new actions in the scenario Sc that could
be looked upon as goals refining G.

Description :
This chunk aims at refining a given requirement chunk <G, Sc> by suggesting new actions , that could be looked upon as goals refining G.
It is described as plan guideline comprising three component guidelines. The Requirements Engineer (RE) shall first identify the candidate goals at lower level of abstraction than the goal G <(Scenario), Identify candidate goals>. For that, the RE shall first type the actions of the scenario <(Scenario), Type scenario actions> according to following classification:These classes of actions are coupled in three dependent action pairs : (service request, service provision), (information request, information provision) and (condition evaluation action, constrained flow of actions). There exists a dependency among the two actions of a pair : any service request implies at least one service provision, an information request implies at least one information provision and a constrained flow of actions implies an action which evaluates the condition. Using these dependencies, pairs of classified actions are constructed <(Classified actions), Constructio a paire of actions (Ai, Aj)>. Every incomplete pair suggests a missing action <(Paire of actions (Ai, Aj)), Detect a missing action Am> which is inserted in the scenario <(Scenario, Missing action Am), Add missing action Am to the scenario>. Every new action is suggested as a candidate goal <(Missing action Am), Suggest a goel Gi according to Am>. Then the requirements engineer thas to validate each goal Gi of the set of candidate goals <(Goal Gi), Validate goal Gi>, and either to keep and name Gi <(Goal Gi), Name goal Gi> or discard it <(Goal Gi), Discard goal Gi>. The selected goals refine the initial goal G and are linked to G through refinement links <(Selected goals Gi), Link goals Gi to G with the refinement links>.
- service request,
- service provision,
- information request,
- information provision,
- constrained flow of actions,
- condition evaluation action.
Example : ATM case study
Let us consider the requirement chunk RC1 in the ATM case study.
Goal : Provide cash to our bank customer from ATM.The Requirement Engineer (RE) uses the proposed classification in order to type Sc actions :
Scenario: 1. The bank customer gets a card from the bank
2. Then, the bank customer withdraws cash from the ATM
3. The ATM reports cash transactions to the bank‘insert card’ service requestThere exists a dependency among the two actions of a pair : any service request implies at least one service provision, an information request implies at least one information provision and a constrained flow of actions implies an action which evaluates the condition).
‘eject card’, ‘print receipt’, ‘deliver cash’ service provision
‘give prompt for code’, ‘display prompt for amount’ information request
‘input code’, ‘enter amount’ information provision
‘check if the card is valid’ condition evaluation action
‘if the card is valid’, ‘if the code is valid’, ‘if the amount is valid’, ‘if a receipt was asked by the user to the ATM’ constrained flow of actions.Using these dependencies, pairs of actions are constructed. This leads in our example to the following pairs :
(‘insert card’ ; ‘eject card’)Every incomplete pair suggests a missing action which is inserted in the scenario.
(‘insert card’ ; ‘deliver cash’)
( ? ; ‘print receipt)
(‘give prompt for code’; ‘input code’)
(‘display prompt for amount’ ; ‘enter amount)
(‘check if the card is valid ; ‘if the card is valid)
( ? ; ‘if the code is valid)
( ? ; ‘if the amount is valid)
( ? ; ‘if a receipt was asked by the user to the ATM’)____________________________________________________________________________________________________Every new action is suggested as a goal for the next step of refinement. The RE evaluates and names the selected goals. The RE proposes for the current example the two following goals :
Initial state : The ATM is ready to serve. The user has a card.
Flow of actions :
1. The user inserts the user’s card in the ATM.
2. The ATM checks if the card is valid.
3. If the card is valid
4. Then
5. A prompt for code is given by the ATM to the user.
6. The user inputs the code in the ATM.
7. The ATM checks if the code is valid.
8. If the code is valid
9. Then
10. A prompt for amount is displayed by the ATM to the user.
11. The users enters an amount in the ATM.
12. The ATM checks if the amount is valid .
13. If the amount is valid
14. Then
15. The ATM ejects the card to the user.
16. The ATM asks the user if the user wants a receipt.
17. The user enters a choice in the ATM.
18. If a receipt was asked by the user to the ATM
19. Then
20. The ATM prints a receipt to the user.
21. The ATM delivers the cash to the user.
Final state : The ATM is ready to serve. The user has cash. The user has the user’s card. The user has a receipt.
____________________________________________________________________________________________________________‘Verify the code validity in a normal way’, and
‘Verify the amount validity in a normal way’.
C. Rolland,
C. Souveyet, C. Ben Achour, Guiding Goal Modelling using Scenarios.
IEEE Transactions on Software Engineering, special issue on Scenario Management,
1998.