Lot 1 ☛Lot 2 ☛Lot 3 ☛Lot 1Une 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 :
Terminalterminal clockwise_next counterclockwise_next T1 T2 T4 T2 T3 T1 T3 T4 T2 T4 T1 T3
Railcarrailcar 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 (
R2s'approche deT2dans 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,
R2puisR3puisR1doivent accéder séquentiellement à la plateforme deT2.![]()
Le signal
alert100est envoyé par un centre de contrôle à la voiture en approche ainsi qu'à son terminal d'approche. Le signalalert80n'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 terminalpour 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 railwaysont 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
statusest introduit dansRailcarainsi 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_systempackage toValidatedstatusDesign⇝Manage -Package-⇝Manage Baselines… -Baselines-
or-right click-(package within browser) ⇝Package Control⇝Package Baselines…- Create baseline
Lot 1Lot 1⇝Export File⤳Lot_1.xml![]()
Settings⇝Auditing -Model-⇝Auditing Settings⇝Configure⇝Enable Auditing⤳ check![]()
Lot 2Les 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_systemen ajoutant la réception du signalSTOPdansRailcar.![]()
Etendre le UML State Machine Diagram “behavior” de
Railcaren modélisant notamment l'envoi de l'événementapproachingdans l'étatWait for terminal order. Paramétrer le diagramme à manière à éliminer certains détails :Show Parameter Detail:⤳Name Only.![]()
Introduire
stop requiredcomme une transition interne (typeinternal) dans l'étatRailcar.![]()
La transition est associée au “trigger”
stop requiredlui-même piloté par le signalSTOP.![]()
![]()
Exercise
Design⇝Manage -Package-⇝Update Status… -Package-⤳ setRailcar_control_systempackage toApprovedstatus- Create baseline
Lot 2Lot 2⇝Export File⤳Lot_2.xmlLot 2⤳Delete Selected- Difference(s) between baseline
Lot 1and model ⤳Show Differences- Recreation of baseline
Lot 2⤳Import File(Lot_2.xml)La note dans le diagramme
Railcar_control_systemet dans le packageRailcar_control_systemayant été supprimée, la comparaison entre le modèle et la baselineLot 1montre (en rouge) les 2 suppressions. Le signalSTOPest 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 Modelannule les 2 suppressions et les 2 ajouts.![]()
Merging piece by piece
- What's added (use purple Up and Down arrows) in
Railcar_control_systempackage againstLot 1? ⤳ in green- What's suppressed (use purple Up and Down arrows) in
Railcar_control_systempackage againstLot 1? ⤳ in redAuditing
-right click-(STOPelement within browser) ⇝View Audit History![]()
Exercise
-left click-(Lot 1) ⇝Restore to Baseline-left click-(Lot 2) ⇝Restore to Baseline
Lot 3Les 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 ⤳
-right click-(class within browser) ⇝Add⇝State MachineExecutable StateMachine Artifact ☛
![]()
-left click-(connector within diagram) ⇝Advanced⇝Set Connector Type…⤳ map connector to association as “Classifier”