ScenarioScript1¶
Exemples¶
Le développement de scénarios peut se faire en 3 étapes :
- (1) développement des scénarios textuels (phrases),
- (2) développement des scénarios états (phrase+instructions),
- (3) développement des scénarios cas d’utilisation (phrase+instructions+blocs).
Scénarios textuels¶
Les scénarios textuels sont des suites de (phrases).
--@ scenario model S1
--@ import glossary model from "../../glossaries/glossary.gls"
--| phrase1
--| phrase2
--| phrase3
--| phrase4
--| phrase5
--| phrase6
--| phrase7
--| phrase8
Scénarios états¶
Les scénarios états sont caractérisés par l’état qu’ils font évoluer. Concrètemment les scénarios états sont constitués de phrases annotées par des instructions. Ces instructions correspondent à la l’évolution au cours du temps d’un modèle d’objets. Les scénarios états permettent de répondre à la question “comment l’état du système évolue ?”.
--@ scenario model S1
--@ import glossary model from "../../glossaries/glossary.gls"
--@ import class model from "../../classes/classes.cls"
--| phrase1
--| phrase2
! instruction1
! instruction2
--| phrase3
! instruction3
! instruction4
--| phrase4
--| phrase5
--| phrase6
! instruction5
! instruction6
! instruction7
--| phrase7
! instruction8
--| phrase8
Comme le montre l’exemple ci-dessus certaines phrases peuvent ne correspondre à aucun changement d’état.
Scénarios cas d’utilisation¶
Les scénarios cas d’utilisation définissent “l’empreinte” des cas d’utilisation sur les scénarios états. Chaque phrase/instruction est positionnée par rapport au cas d’utilisation en cours. Alors que les scénarios états permettent de répondre à la question “comment le système évolue” les scénarios cas d’utilisation permettent de répondre à la question “qui fait quoi et pourquoi ?”.
--@ scenario model S1
--@ import glossary model from "../../glossaries/glossary.gls"
--@ import class model from "../../classes/classes.cls"
--@ import participant model from "../../participants.pas"
--@ import usecase model from "../../usecases/usecases.uss"
--@ context
--| phrase3 (modifiée)
! instruction3
! instruction4
--@ personnage1 va usecase1
--| phrase1
--| phrase2
! instruction1
! instruction2
--| phrase4 (modifiée)
--| phrase5
--@ personage2 va usecase2
--| phrase6
! instruction5
! instruction6
! instruction7
--| phrase7
! instruction8
--| phrase8
Les blocs context
correspondent au contexte du scénarios, c’est à
dire à la construction de l’état initial. Ils s’agit de la modèlisation
de l’ensemble des informations existant avant que le scénario démarre.
Considérons un exemple où la phrase tim a 15 ans
est suivie
de l’instruction tim.age := 15
. Première possibilité, la plus
probable, ces deux instructions font a priori partie du contexte.
Autre solution,
ces informations font partie d’un bloc cas d’utilisation si tim
change d’age
durant le scénario (peu probable, mais cela dépend du scénario).
Bien évidemment dans les deux cas on suppose que
l’age de tim doit être modélisé pour le bon déroulement du scénario.
Si ce n’est pas le cas l’instruction tim.age := 15
doit être éliminée
et la phrase tim a 15 ans
doit être en dehors de tout bloc, au
premier niveau. Cette information est peut être importante pour le
scénario, même si elle n’a pas d’impact directe sur l’état du système.
Outils¶
Analyse de modèles¶
La conformité des modèles de scénarios par rapport au modèle de classes peut être verifiée par l’outil USE OCL avec la même procédure que pour l’analyse des modèles d’objets.
Note
ATTENTION, la conformité avec le modèle de cas d’utilisation n’est pas vérifiée.
Génération de diagrammes¶
Il est possible de générer un diagramme d’objets correspondant à l’état final du scénario. Utiliser pour cela la même procédure que pour génerer un diagramme d’objet standard.
Concepts¶
Le langage ScenarioScript1 est basé sur les concepts suivants :
- les phrases
- les instructions
- les blocs de contexte
- les blocs de cas d’utilisation
- les scénarios textuels,
- les scénarios états,
- les scénarios cas d’utilisation
Dépendances¶
Le graphe ci-dessous décrit les dépendances entre langages.