Lot 1
☛Lot 2
☛Lot 3
☛Lot 1
Une infrastructure ferroviaire touristique est un circuit fermé de 4 terminaux (
Terminal
). Sur ce circuit fermé circulent des voitures (Railcar
), 3 par exemple. Le sens de circulation des voitures est figé.Les données sont organisées comme suit :
Terminal
terminal clockwise_next counterclockwise_next T1 T2 T4 T2 T3 T1 T3 T4 T2 T4 T1 T3
Railcar
railcar origin end is_clockwise R1 T1 T2 true R2 T1 T2 true R3 T3 T2 false Exercise
- UML Class Diagram
- UML Object Diagram in consistency with UML Class Diagram
Les voitures sont signalées à une distance 100 puis une distance 80 (
R2
s'approche deT2
dans la figure) puis, le cas échéant, stoppées sur la voie si la plateforme du terminal est déjà occupée par une autre voiture (embarquement et/ou débarquement de passagers).La plateforme ne peut pas accueillir 2 voitures qui seraient dans des sens différents. Les voitures sont donc en concurrence pour l'accès à la plateforme du terminal qu'elles approchent même si elles roulent en sens opposé. Par exemple,
R2
puisR3
puisR1
doivent accéder séquentiellement à la plateforme deT2
.Le signal
alert100
est envoyé par un centre de contrôle à la voiture en approche ainsi qu'à son terminal d'approche. Le signalalert80
n'est envoyé par le centre de contrôle qu'à la voiture en approche. S'ensuit une interaction entre la voiture en approche et son terminal d'approche.Une voiture qui circule est considérée dans l'état
Cruising
. Suit l'étatArriving
à une distance inférieure à 100 du terminal d'approche puis l'étatStopped at terminal
pour l'embarquement et/ou le débarquement de passagers. Les phasesWait for alert80
(la voiture est à moins de 100 et plus de 80 du terminal d'approche),Wait for terminal order
(la voiture est à moins de 80 du terminal d'approche) etStopped on railway
sont incluses dans le processusArriving
.Les signaux envoyés par son terminal d'approche (
end
) sontstop
(s'arrêter sur la voie),go
(quitter le terminal après embarquement et/ou débarquement de passagers),go on
(repartir après stoppée sur la voie),terminal stopping
(s'arrêter au terminal) etterminal crossing
(ne pas s'arrêter au terminal).Dans le UML Class Diagram, un attribut
status
est introduit dansRailcar
ainsi qu'un type énuméré idoine conforme au UML State Machine Diagram en tant que “behavior” deRailcar
. De plus, le UML Class Diagram est rendu conforme au UML Sequence Diagram via la réception des événements.Exercise
Design
⇝Manage -Package-
⇝Update Status… -Package-
⤳ setRailcar_control_system
package toValidated
statusDesign
⇝Manage -Package-
⇝Manage Baselines… -Baselines-
or-right click-
(package within browser) ⇝Package Control
⇝Package Baselines…
- Create baseline
Lot 1
Lot 1
⇝Export File
⤳Lot_1.xml
Settings
⇝Auditing -Model-
⇝Auditing Settings
⇝Configure
⇝Enable Auditing
⤳ check
Lot 2
Les passagers (touristes) dans les voitures disposent d'un bouton « STOP ». Une fois appuyé (et conséquemment illuminé), la voiture doit procéder à un arrêt à son terminal d'approche (
end
) pour débarquement de passagers. L'appui du bouton est pour la voiture un événement (stop required
) qu'elle doit traiter (réceptionner) en toutes circonstances.Exercise
Etendre le UML Class Diagram
Railcar_control_system
en ajoutant la réception du signalSTOP
dansRailcar
.Etendre le UML State Machine Diagram “behavior” de
Railcar
en modélisant notamment l'envoi de l'événementapproaching
dans l'étatWait for terminal order
. Paramétrer le diagramme à manière à éliminer certains détails :Show Parameter Detail:
⤳Name Only
.Introduire
stop required
comme une transition interne (typeinternal
) dans l'étatRailcar
.La transition est associée au “trigger”
stop required
lui-même piloté par le signalSTOP
.Exercise
Design
⇝Manage -Package-
⇝Update Status… -Package-
⤳ setRailcar_control_system
package toApproved
status- Create baseline
Lot 2
Lot 2
⇝Export File
⤳Lot_2.xml
Lot 2
⤳Delete Selected
- Difference(s) between baseline
Lot 1
and model ⤳Show Differences
- Recreation of baseline
Lot 2
⤳Import File
(Lot_2.xml
)La note dans le diagramme
Railcar_control_system
et dans le packageRailcar_control_system
ayant été supprimée, la comparaison entre le modèle et la baselineLot 1
montre (en rouge) les 2 suppressions. Le signalSTOP
est lui ajouté au packageSignals
(en vert) ainsi que sa réception dans la classeRailcar
(en vert).Activer (si désiré)
Merge to Model : Merge change from baseline to Model
annule les 2 suppressions et les 2 ajouts.Merging piece by piece
- What's added (use purple Up and Down arrows) in
Railcar_control_system
package againstLot 1
? ⤳ in green- What's suppressed (use purple Up and Down arrows) in
Railcar_control_system
package againstLot 1
? ⤳ in redAuditing
-right click-
(STOP
element within browser) ⇝View Audit History
Exercise
-left click-
(Lot 1
) ⇝Restore to Baseline
-left click-
(Lot 2
) ⇝Restore to Baseline
Lot 3
Les passagers (touristes) dans les terminaux disposent (aussi) d'un bouton « STOP ». Une fois appuyé (et conséquemment illuminé), le terminal doit signaler à la voiture pour laquelle il est son terminal d'approche de procéder à un arrêt pour embarquement de passagers.
Principle
State machines are attached to classes as follows:
-right click-
(class within browser) ⇝Add
⇝State Machine
Executable StateMachine Artifact ☛
-left click-
(connector within diagram) ⇝Advanced
⇝Set Connector Type…
⤳ map connector to association as “Classifier”