SEG 3601 Élaboration de cas d`utilisations avec UCEd

publicité
SEG 3601
Élaboration de cas d'utilisation
avec UCEd
Stéphane S. Somé
SITE, Université d' Ottawa
Use Case Editor (UCEd)
•Objectif: aider à la capture/validation de
cas d'utilisation
― Edition de cas d'utilisation
― Edition du modèle de domaine
― Edition de scénarios
― Validation de cas d'utilisation du modèle de
domaine
― Combinaison de cas d'utilisation en modèles à
états
― Simulation de modèles exécutables dérivés de
cas d'utilisation
― Génération de scénarios
Éléments d'UCEd
•UCEd inclus
― Outil d'édition de cas d'utilisation
– pour écrire les cas d'utilisation
― Outil d'édition du modèle du domaine
– pour édition du domaine
― Outil d'édition de scénarios
– pour spécification de scénarios
― Outil de simulation
– pour validation de cas d'utilisation et du
domaine
Édition de cas d'utilisation
Modèle de cas
d'utilisation
Description de
cas d'utilisation
Modèle de cas d'utilisation
Inclus
Cas d'utilisation
cas normal
cas d'extension
Relations
“include”
“extend”
condition
d'extension
Acteurs
Description de cas d'utilisation (1)
Cas
d'utilisation
normal
Description de cas d'utilisation (2)
• Title: label identifiant le cas d'utilisation de façon
unique
• Description: texte qui fait un sommaire du cas d’usage
• System Under Design: spécifie le système (l’entité qui
réagi aux stimuli des acteurs externes)
• Scope: spécifie ce qui est considéré comme boîte noire
selon le design (ex: entreprise, système, sous-système,
fonction…)
• Level: niveau de détail du cas d'utilisation
• Primary Actor: l'acteur qui initie le cas d'utilisation
• Participants: autre acteurs participant au cas
d'utilisation
• Goal: énoncé de l'attente de l'acteur primaire lors de
la complétion du cas d'utilisation
Description de cas d'utilisation (3)
• Following Use Cases: une liste des cas d’usage qui
peuvent suivre directement
• Invariant: condition devant être vérifiée tout au long
de l'exécution d'une instance du cas d'utilisation
• Precondition: condition devant être vérifiée avant
l'exécution
• Postcondition: condition devant être vérifiée à la fin
de l'exécution
• Steps: séquence d'étapes (blocs répétés et de steps)
constituant le cas d'utilisation
• Alternatives: étapes alternatives
Description de cas d'utilisation - Conditions
•Plusieurs types
― Conditions simples
– Entity bound conditions: basées sur les
entités du domaine
– Non-Entity bound conditions: déclarées
verbatim dans le modèle du domaine
― Conditions complexes
– négation, conjonction, disjonction de
conditions simples
Description de cas d'utilisation - Conditions
• Condition simple (entity-bound)
'
[déterminant] entité verbe valeur
●
Déterminant: a, an, ou the
●
Entité: séquence de mots nommant une entité du modèle
du domaine (voir plus loin)
●
Verbe: un parmi is, isn't, is not, are, aren't, are not,
has, hasn't, has not, have, haven't, have not
●
Valeur:
– séquence de mots définie comme une valeur possible
de l'entité dans le modèle du domaine
– comparaison
Description de cas d'utilisation - Conditions
•Exemples de conditions simples
The User Card is not valid
User number of attempts is > 3
The System Display is blinking
System registered users are less than 10
....
Description de cas d'utilisation - Conditions
•Conditions complexes
― Négation
NO condition
NOT condition
ex: Not User identification is valid.
― Conjonction
condition AND condition
― Disjonction
condition OR condition
Description de cas d'utilisation - Étapes
•Types d'étapes (step)
― instance d'opération
– Peuvent comprendre des extensions
― branchement, ou
― inclusion de cas d'utilisation
Description de cas d'utilisation - Étapes
•Instance d'opération
― exécution d'opération par un concept (acteur
ou système)
[spécification de délai]
[expression conditionnelle]
[déterminant] entité référence_opération
Description de cas d'utilisation - Étapes
•Spécification de délai
before valeur unité
after valeur unité
•Peuvent être combinés
•Unité : mmsec, microsecond, msec,
millisecond, sec, second, min, minute, h,
hour, day
•Exemples
― after 10 sec
― before 60 sec AND after 20 sec
Description de cas d'utilisation - Étapes
•Expression conditionnelle
IF condition THEN
Description de cas d'utilisation - Étapes
• Déclaration d'opération
― Opérations doivent être déclarées comme suit dans le
modèle du domaine
action_verbe [action_objet]
– action_verbe - verbe à l'infinitive
– action_objet – séquence de mots
ex: insert card,
display personal identification
enter personal identification number
...
Description de cas d'utilisation - Étapes
• Référence d'opération
verbe_action_conjugué [mot_relation]
objet_action
― verbe_action_conjugué : verbe d’action au
présent
― mot_relation:
– adjectif his, her ou its
– article a, an, the
– préposition to, for
Description de cas d'utilisation - Étapes
•Exemples
― before 60 sec, the user inserts a card
― IF the system is ON THEN, the operator turns
the system OFF
― System displays pin enter prompt to Customer
― after 2 min, the ATM ejects the user card
Description de cas d'utilisation - Étapes
•Branchements
[spécification_délai]
[expression_conditionnelle]
GOTO STEP référence_étape
• Exemples
― IF User number of attempts > 4 THEN GOTO
STEP 4
― after 10 sec, GOTO STEP 1
― GOTO STEP 3
Description de cas d'utilisation - Inclusions
•Inclusion de cas d'utilisation
[expression_conditionnelle] include [use case]
nom_cas_usage
•Exemples
― include use case login user
― If USER identification is not valid THEN include
login failure
Description de cas d'utilisation - Inclusions
•Instruction de continuation
[expression_conditionnelle] continue [use case]
•Dans un cas d’usage inclus, spécifie à partir
d’un scénario particulier que le cas d’usage
parent se continuera.
― Par défaut, l’exécution continue seulement du
scénario principal d’un cas d’usage inclus.
Including Use Case
IncludedUC
1. ...
2. ...
3. include includedUC
4. ...
STEPS
1. ...
2.
ALTERNATIVES
1.a. ...
1.a.1 ...
2.a. ...
branches to
continue
Including Use Case
IncludedUC
1. ...
2. ...
3. include includedUC
4. ...
STEPS
1. ...
2.
ALTERNATIVES
1.a. ...
1.a.1 ...
1.a.2 continue
2.a. ...
branches to
continue
continue
Description de cas d'utilisation - Inclusions
• Instruction resume
[expression_conditionnelle] resume [in parallel]
[use case] nom_cas_usage
• Exemples
―resume withdraw cash, deposit cash, print
record
―resume in parallel ship goods, send invoice
1. ...
2. ...
3. resume uc1, uc2
if
event1
UC1
1. ...
event1
2. ...
3. ...
4. ...
1. ...
2. ...
3. resume in parallel
uc1, uc2
if
event2
UC2
1. event2
2. ...
3. ...
4. ...
Only one use case executes
UC1
1. ...
event1
2. ...
3. ...
4. ...
UC2
1. event2
2. ...
3. ...
4. ...
Both use cases execute in
parallel
Description de cas d'utilisation – Extensions
• Comportement alternatif pouvant suivre
l'étape
• Inclus
●
●
●
Condition d'extension
– Condition selon laquelle l'extension a lieu
Étapes (steps)
● Les alternatives ne peuvent pas avoir
d’autres alternatives
Postcondition alternative
● Postcondition de l’alternative
Description de cas d'utilisation – Extensions
• Condition d'extension – peut être
●
●
●
●
●
délai before,
délai after
combinaison de délais before et after
condition,
combinaison de délais et expression conditionnelle
• Exemples
●
●
●
●
after 30 sec
before 2 min AND after 20 sec
The User identification is not valid
after 60 sec, IF Bank hasn't responded
Exemple de description de cas d'utilisation
Title:
User login
System Under Design:
PMSystem
Description:
This use case describes a login process in the
PMSystem. The use case is executed by a User
(Doctor or Nurse).
Scope:
Outermost Scope
Level:
User
Primary Actor:
User
Participants:
Goal:
A User want to identify herself in order to use a
PM system.
Precondition:
System is ON AND NO user is logged in
Following Use Cases:
log out, admit patient, discharge patient
Steps:
1: The User inserts a Card in the card slot
Extension Point ==> card inserted
2: The PMSystem asks for PIN
3: The User types a PIN
Extension Point ==> pin entered
4: The PMSystem validates the USER identification
5: IF the USER identification is valid THEN
The PMSystem displays a welcome message to the USER
6: After 60 sec The PMSystem ejects the Card
Success Postcondition: User is logged in
Alternatives:
1a: User Card is inserted
1a1: User presses cancel button
1b1: PMSystem ejects Card
Alternative Postcondition: User is not logged in
1b: The Card is not regular
1b1: The PMSystem emits an alarm
1b2: After 20 sec The System ejects the Card
Alternative Postcondition: User is not logged in
2a: after 60 seconds
2a1: PMSystem emits alarm
2b1: After 20 sec PMSystem ejects Card
Alternative Postcondition: User is not logged in
4a: The user identification is invalid AND number of attempts is less than 4
4a1: Goto Step 2
4b: User identification is invalid AND number of attempts is equal to 4
4b1: The PMSystem emits an alarm
4b2: After 20 sec The PMSystem ejects the Card
Alternative Postcondition: User is not logged in
Description de cas d’usage: répétitions



repeat while condition étapes
repeat every spécification_durée étapes
repeat every spécification_durée while condition étapes
Title: Monitor Patient
Precondition: PMSystem is ON AND Patient status is monitoring
Success Postcondition: PMSystem is ON AND Patient status is monitoring
STEPS
1. Repeat every 10 sec
1.1.PMSystem reads vital signs
1.2.PMSystem checks vital signs
1.3.PMSystem displays vital signs
REPEAT BLOCK ALTERNATIVES
1.1.a.Patient vital sign is unreadable
1.1.a.1.PMSystem starts a System status alarm
1.2.a.Patient vital sign status is out of physiologic limits
1.2.a.1.PMSystem starts a Patient status alarm
Cas d'utilisation d'extensions
•Utilisés pour étendre des cas d'utilisation
normaux à des points d'extensions
(extension points)
•Inclus
― Titre
― Une ou plusieurs parties (Parts) avec
– référence à un point d'extension (défini
dans le cas d'utilisation de base en
référence à une étape),
– séquence d'étapes (steps)
Exemple de cas d'utilisation d'extension
Title:
Login secure
Parts:
At extension point card inserted
1: The PMSystem logs the transaction
At extension point pin entered
1: The PMSystem logs the transaction
Modèle du domaine
•Sert comme:
― Glossaire pour les concepts
– System Concept – représente le système
considération
– Ensemble de Concepts – représentant les
acteurs
― Spécification des opération
– préconditions
– postconditions
Modèle du domaine
• Description de concepts
●
●
●
liste de valeurs possibles
attributs
– avec valeurs possibles
opérations
– précondition
– postcondition
●
●
●
●
added-conditions (conditions ajoutées)
withdrawn-conditions (conditions retirées)
Sous-concepts (relation d'héritage)
Sous-composantes (relation d'agrégation)
Modèle du domaine
•Valeurs possibles
― caractéristiques pouvant être utilisées pour
qualifier une entité
― définissent un attribut sur la valeur d’état d’un
objet
― ex: pour condition
– The User identification is valid
– valid doit être déclaré comme valeur possible
de User identification
Modèle du domaine
•Précondition d'opération
― doit être vérifiée pour que l'opération soit
possible
― ex: Opération eject card d'un guichet
automatique
– une Card doit être insérée
– on pourrait avoir la précondition:
User Card is inserted
Modèle du domaine
• added-condition d'opération
― Qu’est-ce qui devient vrai après l'opération ?
― ex: Opération display pin enter prompt du GA
– display (l'écran) affichera le prompt
– on pourrait avoir comme condition-ajoutée
ATM Display is pin enter prompt
(suppose que pin enter prompt est une valeur
possible d'ATM Display)
Modèle du domaine
• withdrawn-condition d'opération
― quelle condition est retirée après l'opération ?
― était vraie avant, mais n'est plus pertinent après
― ex: Opération eject card du GA
– après éjection de sa Carte l'identification de
l'usager (User identification) n'est plus pertinente
(besoin de la réinitialiser)
– on pourrait avoir la condition-retirée (withdrawncondition)
User identification is valid
– si User identification is valid est vrai après
l'opération eject card, cette condition est retirée
(User identification devient unknown)
Modèle du domaine
•withdrawn-condition d'opération
― pour retirer toutes les conditions liées à une
entité
ANY ON entité
ex: ANY ON User
― pour retirer toutes les conditions liées à une
entité ainsi qu'à ces sous-entités (attributs,
composantes, etc)
ANY ON entité*
ex: ANY ON User*
Exemple de modèle du domaine UML
Effets d'opérations
●
ask for PIN
–
●
Add: Display is pin enter
prompt
validate USER identification
–
Add: USER identification is
valid OR USER
identification is invalid
–
Withdraw: Display is pin
enter prompt
●
eject Card
– Pre: USER Card is
inserted
–
Add: No Card is inserted
–
Withdraw: ANY ON
USER*
●
insert Card
–
Add: USER CARD is
Représentation UCEd du domaine
Génération d'éléments du domaine à partir
de cas d'utilisation
wizard
● aide à extraire
●
Concepts,
●Attributs,
●Valeurs Possibles
●Noms
d'opérations
à partie de cas d’usage
●
Machines à états
•Générés de cas d'utilisation et opérations valides
Deux approches pour
les générer:
 basée sur les flots de
contrôle des cas
d’usage
 basée sur les
opérations (preconditions et postconditions)
Scénarios
• Séquence d'interactions impliquant un système
et ses acteurs
• Un cas d'utilisation inclus plusieurs scénarios
• Un scénario peut traverser plusieurs cas
d'utilisation
• Les scénarios sont utiles pour
― documenter les interactions d'intérêt voulues ou pas
– scénario positif – doit être supporté
– scénario négatif – devrais pas être supporté
― pour servir comme scripts répétables de simulation
Scénarios
• Ce qui est inclus:
― Description textuelle
― Triggers : opérations d'acteurs (concept du modèle
de domaine)
― System reactions : opérations du système
considéré (system concept du modèle de domaine)
― Waiting delays: points où un certain temps passe
sans trigger ou system reaction
― Guard realizations: conditions devenant vraies à un
certain point du scénario
― Assertions: conditions devant être vraies à un
certain point du scénario
Scénarios
Assertion
Trigger
Guard
Reaction
Delay
Simulation
•Pour valider les cas d'utilisation et
opérations
•Simulation de machines à états générées
•Simulation manuelle
― en utilisant un GUI généré par UCEd
― simulations enregistrées comme scénarios
•Simulation automatisée
― simulation de scénarios
Simulation
opération
d'acteurs
résultats
Simulation
Simulation
de
Scénario
Processus d'élaboration des exigences
statement of
requirements
use cases
use case creation
domain
information
preliminary domain
extraction
operation effects
specification of
operations
scenarios
state machine
generation
operation effects
use cases
validation
no more use cases ?
use cases
integration
Processus d'élaboration des exigences
• Élaborez un cas d'utilisation à la fois
― pour cas d'utilisation complexes, quelque scénarios à
la fois
• Ré-initialiser (Reset) la machine à états entre cas
d'utilisation
• Intégrez les cas d'utilisation à la fin
Processus d'élaboration des exigences (I)
• Pour chacun des cas d'utilisation
1. utilisez l'outil d'édition pour écrire le cas
d'utilisation
2. extrayez les éléments du domaine du cas
d'utilisation
3. générez des machines à états à partir des
cas d’utilisation
•
Validez par simulation/inspection
Processus d'élaboration des exigences
4. ajoutez des effets aux opérations
•
•
déterminez des effets pour chaque opération
peut nécessiter l'introduction de plus
d'éléments (ex: attributs, valeurs possibles au
domaine)
5. créer une machine à états basée sur les
opérations
6. valider la machine à états
•
•
•
par inspection de la machine générée
par simulation manuelle
par simulation de scénarios (possiblement
générés de simulations précédentes)
Processus d'élaboration des exigences:
Problèmes courants
• Erreurs de Génération (ex: non-déterminisme)
• Simulation n'est pas conforme aux attentes
• Généralement
― provoqué par un manque d'effets des opérations
nécessaires pour faire la distinction entre états
― important de spécifier les conditions ajoutées et
retirées
• Vérifier manuellement la machine à états finis
Sources
•Pour
― Télécharger UCEd
― Obtenir le guide de l’utilisateur
― Obtenir des articles sur UCEd
http://www.site.uottawa.ca/~ssome/Use_Case_Editor_UCEd.html
Téléchargement