Skip to content
Snippets Groups Projects
Forked from BEAUMONT Gwendal / TP Train
1 commit behind, 10 commits ahead of the upstream repository.
romain achard's avatar
ACHARD Romain authored
5e81d106
History

TP Train (TP 11 - 15)

Groupe composé de CELERIER Auguste, ACHARD Romain.

Introduction

Ce projet s'inscrit dans le cadre du cours sur les logiciels concurrents. Il consiste en la modélisation en Java du déplacement de trains sur des rails.

  • Éditeur utilisé : Eclipse

Réponses aux questions

Question 1.1

La classe Position est la plus importante pour gérer le mouvement des trains. En effet, elle contient les information sur l'Element actuel sur lequel le train se situe, et la Direction de son mouvement. La classe Railway gère la liste d'éléments que les trains peuvent parcourir, et permet donc de déterminer le prochain élément sur la trajectoire du train

Question 1.2

Voir fichier trains.drawio

Question 1.3

Voir code

###Question 2.1

Voir code

###Question 2.2

Les variables qui permettent d'exprimer l'invariant de sûreté sont la présence ou non d'un train dans une section, le nombre de trains présents dans une station et la direction globale des trains sur la ligne

###Question 2.3

Voir code

###Question 2.4

Les actions critiques qu'un train peut exécuter, c'est-à-dire les actions qui modifie l'état du système partagé, sont entrer ou quitter une section, entrer ou quitter une station et changer de direction

###Question 2.5

Ces méthodes doivent être rajoutées respectivement dans Section et Station, et les méthodes de gestion de la direction dans la classe Railway

###Question 2.6

Il faut ajouter des méthodes synchronisées dans les classes Railway et Position pour gérer les mouvements des trains de manière synchronisée, pour autoriser ou non leur déplacement

###Question 2.7

Voir code

Question 2.8

Voir code