Railcar control system case study



Resources
Headlines
Requirements ⤳ 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

  1. UML Class Diagram
  2. UML Object Diagram in consistency with UML Class Diagram

Les voitures sont signalées à une distance 100 puis une distance 80 (R2 s'approche de T2 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 puis R3 puis R1 doivent accéder séquentiellement à la plateforme de T2.

Le signal alert100 est envoyé par un centre de contrôle à la voiture en approche ainsi qu'à son terminal d'approche. Le signal alert80 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'état Arriving à une distance inférieure à 100 du terminal d'approche puis l'état Stopped at terminal pour l'embarquement et/ou le débarquement de passagers. Les phases Wait 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) et Stopped on railway sont incluses dans le processus Arriving.

Les signaux envoyés par son terminal d'approche (end) sont stop (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) et terminal crossing (ne pas s'arrêter au terminal).

Dans le UML Class Diagram, un attribut status est introduit dans Railcar ainsi qu'un type énuméré idoine conforme au UML State Machine Diagram en tant que “behavior” de Railcar. De plus, le UML Class Diagram est rendu conforme au UML Sequence Diagram via la réception des événements.

Exercise (from Enterprise Architect project ver. 16.x )

  1. Design Manage -Package- Update Status… -Package-Railcar_control_system as Validated
  2. Design Manage -Package- Manage Baselines… -Baselines- or -right click- (package within browser) Package Control Package Baselines…
  3. Create baseline Lot 1
  4. Lot 1 Export FileLot_1.xml
  5. Settings Auditing -Model- Auditing Settings Configure Enable Auditing ⤳ check
Requirements ⤳ 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

  1. Etendre le UML State Machine Diagram “behavior” de Railcar (Show Parameter Detail:Name Only) et le UML Class Diagram comme ci-dessous. Ne pas oublier l'envoi de l'événement approaching.

Exercise

  1. Design Manage -Package- Update Status… -Package-Railcar_control_system as Approved
  2. Create baseline Lot 2
  3. Lot 2 Export FileLot_2.xml
  4. Lot 1Delete Selected
  5. Snapshot of baseline versus model ⤳ Compare Model to File (Lot_1.xml)
  6. Recreation of baseline Lot 1Import File

What's added (use purple Up and Down arrows) in Railcar_control_system package against Lot 1? ⤳ e.g., 2 associations (in green)

What's suppressed (use purple Up and Down arrows) in Railcar_control_system package against Lot 1? ⤳ e.g., 1 note (in red)

Auditing

Exercise

  1. -left click- (Lot 1) Restore to Baseline
  2. -left click- (Lot 2) Show Differences Merge to Model : Merge change from baseline to Model ⤳ piece by piece
Requirements ⤳ 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.

Executable StateMachines here

Principle

State machines are attached to classes as follows: -right click- (class within browser) Add State Machine

Executable StateMachine Artifact here

Exercise