Upload
lewis
View
31
Download
0
Tags:
Embed Size (px)
DESCRIPTION
UCME XPORTER : Support pour transformations de scénarios Use Case Maps. Daniel Amyot, Ali Echihabi, et Yong He ÉITI, Université d’Ottawa {damyot | u2090356 | yonghe}@site.uottawa.ca Projet RDA, CRSNG. Aperçu de la présentation. Ingénierie des exigences avec scénarios - PowerPoint PPT Presentation
Citation preview
UCMEXPORTER: Support pour transformations de scénarios Use Case Maps
Daniel Amyot, Ali Echihabi, et Yong He ÉITI, Université d’Ottawa
{damyot | u2090356 | yonghe}@site.uottawa.caProjet RDA, CRSNG
2
Aperçu de la présentation
Ingénierie des exigences avec scénarios Notation Use Case Maps (UCM) Transformations de scénarios
Potentiel et défisExemple
Outil: UCMExporter Conclusions
3
Approche commune avec MSC
OrigMS MobSC-CCF HLR
GetAuthInfo
ChkAuth
StartCom
FindLoc
ChkLoc
Continue
OK
Hypothèse: service et données situés dans le commutateur mobile (MobSC)
4
HLR
Autre alternative…OrigMS SCP-SDF
- Différente répartition de la logique du service et de ses données- Différents protocoles et échanges de messages- Plusieurs autres détails peuvent être pris en compte… et nous distraire!
SCP-SCF MobSC-CCF HLR-LRFhMobSCOrig
GetAuthInfo
StartCom
FindLoc
ChkAuth
VrfAuth
Authorized
ChkLoc
Continue
OK
StartCom
AnswerChallenge
5
Scénario Use Case Map (UCM)
Abstraction des entités (composantes) et de leurs états
Abstraction des messages Concentration sur la logique/fonctionnalité
du service
StartCom ContinueGetAuthInfo ChkAuth ChkLoc[OK]
RejectLogReject [NotOK]
6
URN = UCM + GRL Notation d’exigences utilisateurs
User Requirements Notation (URN) UIT-T Z.150 (février 2003) URN = scénarios (UCM)
+ buts/exigences non-fonctionnelles (GRL)
Opérateurs UCM Responsabilités et composantes Séquence, alternative, concurrence, décomposition Définitions de scénarios
7
(a) Service dans le MobSC
(b) Service dans MobSC, données dans SN (c) Service et données dans SCP
Évaluation d’architectures: chemins sur composantes UCM
8
Pourquoi transformer les (scénarios) UCM? Différentes notations adressent mieux différentes
étapes du cycle de développement. Transformer une représentation en une autre
permet de franchir, de façon retraçable et automatisable, le fossé séparant certaines phases. Les scénarios MSC (ou leur équivalent) ont toujours
leur place dans la conception plus détaillée. Vision MDA de l’OMG
Platform-independent model Platform-specific model
9
UCM vers MSC
Miga et al., 2001, 10th SDL Forum Supporté par l’outil UCMNav Transformation directe
Génération du MSC lors de la traversée du modèle
Messages synthétiques: m0, m1, m2, … Inflexible, non-paramétrableSupport du parallélisme incomplet
10
Exemple de modèle UCM
a) Root UCM.
Start Point
End Point Components
a) Root
Start Point
End Point Components
Start Point
End Point Components
ResponsibilityStub
b)
ResponsibilityStub
b) Originating UCM: Plug-in for Sorig in Root
ResponsibilityStub
OR-forkAND-fork
c) c) Terminating UCM: plug-in for Sterm in Root
OR-forkAND-fork
Guard
Timer
Timeout Path
OR-join
Guard
Timer
Timeout Path
OR-join
Guard
Timer
Timeout Path
OR-join
d) TeenLine UCM: plug-in for Sscreen in Originating:d)
11
Définitions de scénarios et traversées
12
Définitions de scénariosVariables Start
Points
Num
ber
Scen
ario
N
ame
Busy
OnO
CSL
ist
PIN
valid
TLac
tive
getP
IN_
timeo
ut
subC
ND
subO
CS
subT
L
req
PIN
-en
tere
d
01 BCbusy T - - - - F F F X 02 BCsuccess F - - - - F F F X 03 OCSbusy T F - - - F T F X 04 OCSdenied F T - - - F T F X 05 OCSsuccess F F - - - F T F X 06 CNDdisplay F - - - - T F F X 07 OCS_CNDdisplay F F - - - T T F X 08 TL_CNDActiveBusy T - T T F T F T X X 09 TL_CNDActiveDisplay F - T T F T F T X X 10 TL_CNDnotActiveBusy T - - F - T F T X 11 TL_CNDPINInvalid - - F T F T F T X X 12 TL_CNDTimeOut - - - T T T F T X 13 TL_CNDnotActiveDisplay F - - F - T F T X 14 TLnotActiveSuccess F - - F - F F T X 15 TLActiveSuccess F - T T F F F T X X
13
Exemple de sortie (MSC, Z.120)
User_TermAgent_TermAgent_OrigUser_Orig
scenario: BCsuccess
TASK 'fwd_sig';
TASK 'ringingTreatment';
TASK 'ringTreatment';
TASK 'snd_req';
1
1
1par
notBusy
MSC BCsuccess
ringing
m2
ring
m1
req
mscdocument BCsuccess;msc BCsuccess;User[Orig]: instance;Agent[Orig]: instance;Agent[Term]: instance;User[Term]: instance;text 'scenario: BCsuccess';User[Orig]: out req,1 to Agent[Orig];Agent[Orig]: in req,1 from User[Orig];
action 'snd_req';out m1,2 to Agent[Term];
Agent[Term]: in m1,2 from Agent[Orig];condition [notBusy];
all: par begin;Agent[Term]: action 'ringTreatment';
out ring,3 to User[Term];User[Term]: in ring,3 from Agent[Term];par;Agent[Term]: action 'ringingTreatment';
out m2,4 to Agent[Orig];Agent[Orig]: in m2,4 from Agent[Term];
action 'fwd_sig';out ringing,5 to User[Orig];
User[Orig]: in ringing,5 from Agent[Orig];par end;Agent[Term]: endinstance;Agent[Orig]: endinstance;User[Orig]: endinstance;User[Term]: endinstance;endmsc
14
Format intermédiaire XML Amyot et al., 2003, QSIC’03 Découplage
de la traversée Résulte en un scénario XML (fichier)
et de la génération du langage cible Conversion vers MSC en utilisant XSLT
Bonne amélioration, mais: Beaucoup de travail à répéter pour supporter un nouveau
langage cible (UML) Conversion difficile à adapter pour des outils/détails particuliers Parallélisme difficile à gérer uniquement avec XSLT
15
EGSA
RD EF
P1
SA
RB
RD
RC
REJ1
EF
P1
<?xml version='1.0' standalone='no'?><!DOCTYPE scenarios SYSTEM "scenarios1.dtd"><scenarios date =“Sun Mar 23 21:44:46 2003" ucm-file = ".ucm"
design-name = "" ucm-design-version = "2"><group name = "MyGroup" group-id = "1" >
<scenario name = "QSICfigure4c" scenario-definition-id = "1" ><seq>
<do hyperedge-id="0" name="A" type="Start" /><par>
<seq><do hyperedge-id="16" name="B" type="Resp" /><do hyperedge-id="25" name="E" type="Resp" />
</seq><seq>
<do hyperedge-id="19" name="C" type="Resp" /></seq>
</par><par>
<seq><do hyperedge-id="22" name="D" type="Resp" /><do hyperedge-id="15" name="F" type="End_Point" />
</seq><seq>
<do hyperedge-id="2" name="G" type="End_Point" /></seq>
</par></seq>
</scenario></group>
</scenarios>
x
xxA
x FB
G
DE
C
x
xxA
x FB
G
DE
C
EG
Traversée et résultat en XML
16
Approche proposée: UCMEXPORTER
7. TTCN-3
8. TelelogicTAU
1. UCMNAV
2. UCM File (+ scen. defs)2. UCM File (+ scen. defs)
3. XML File (scenarios)
3. XML File (scenarios)
3. XML File (scenarios)
3. XML File (scenarios)
4. UCMEXPORTER
10. TTthree
9. RationalRose
5. MSC5. MSC
6. SequenceDiagram
6. SequenceDiagram
17
7. TTCN-37. TTCN-3
3. XML File (scenarios)
3. XML File (scenarios)
3. XML File (scenarios)
3. XML File (scenarios)
4. UCMExporter 5. MSC5. MSC
6. UML SD(XMI)
6. UML SD(XMI)
4.1.
XM
LInp
utTr
ansf
orm
4.1.
XM
LInp
utTr
ansf
orm
4.3. UCM2MSC4.3. UCM2MSC
4.5. UCM2TTCN4.5. UCM2TTCN
4.4. UCM2XMI
4.4.
1. X
MIT
rans
form
er
4.4.
3. D
iagr
amD
ataG
ener
ator
4.4.
3. D
iagr
amD
ataG
ener
ator
4.4.
2. X
MI S
D w
/o L
ayou
t Inf
o
4.2.
UC
MEx
porte
r XM
L
Aperçu des transformations
18
UCMNavXMLXML file generated by
UCMNav that describes the scenarios
XMI Input Transform
UCMExporterXMLInputTransformerIdentify the components and the instances participating
in each scenario
MessageSynthesizerLogic for generating messages and connectors.
Discards parallel-related messages.
ParallelConnectorMessagesSynthesizerLogic for generating connectors due to parallel behavior
of the scenario.
ConnectorMessagesContextNameGeneratorReplace generic names of synthesized connector
messages by context descriptive ones
MessagesCustomizerApply any user requested customization such as a
specific communication pattern
ParallelInterleavingsSynthesizerGenerate all possible sequence interleavings if
requested. Could feed a model synthesizer.
UCMExporterXMLXML file containing all
information need for the transformations
19
Défis adressés par UCMEXPORTER Synthèse de messages
Préserve les relation causales de scénarios impliquant plusieurs composantes
Produit des message cohérents pour des scénarios empruntant les mêmes chemins
Support de la personnalisation Permet de renommer et de raffiner (paramètres, échanges
complexes) les messages synthétiques Exprime le parallélisme
Pour représenter les UCM avec chemins parallèles Voir page suivante
Tient compte des limites des langages cibles (UML 1.x) Disposition des éléments du diagramme
On ne peut pas toujours se fier aux outils existants! Support pour diagrammes de séquence UML avec Rational Rose
(XMI)
20Quelques activités à l’extérieur de BB et C doivent savoir quand A a terminé
…
… …
…
… …
21
Autres caractéristiques Les règles de transformation sont
maintenues indépendemment (fichiers .xsl) Les utilisateurs peuvent tailler les
transformation sur mesure, via des fichiers .xsl supplémentaires
De nouveaux langages cibles peuvent être ajoutés (par exemple, TTCN-3)
Outil multi-plateforme (Java/XSLT)
22
23
Exemples de transformations
24
Exemple d’application Synthèse de spécifications SDL à partir de
scénarios Use Case Maps He et al., 2003, 11th SDL Forum
UCMs MSCs SDL UCMNav + Klocwork MSC2SDL + Telelogic Tau 4.4 Prototypage rapide permettant la simulation
Plusieurs problèmes identifiés dans l’article résolus par UCMExporter Noms de message cohérents d’un scénario à l’autre Prise en compte des contraintes des outils de Klocwork
et de Telelogic permettant l’automatisation de bout en bout.
25
Travaux reliés
Génération de modèles de performance LQN à partir de UCM (Petriu et al., 2003)
Génération de spécifications LOTOS à partir de UCM (Guan 2002)
Génération de LQN à partir de diagrammes d’activités UML (Gu et al., 2002)
26
Conclusions et perspectives UCMExporter offre une plateforme flexible
permettant de transformer des scénarios extraits de modèles UCM.
Supporte des transformations vers les MSC (Z.120) et diagrammes de séquence UML (XMI). Évite la duplication d’efforts Exigences abstraites vers modèles détaillés Supporte partiellement des squelettes de tests TTCN-3
Futur : Support de UML 2.0 en entrée (diagrammes d’activités)
et en sortie (diagrammes d’interactions) Génération de tests
27
Disponibilités des outils UCMExporter
http://ucmexporter.sourceforge.net/
UCMNav 2.2http://www.usecasemaps.org/tools/ucmnav/
Merci!