Gestion d’une gareProjet de fin d’étude
BADOCHE – BLACHE – CAPALDI – FAMEY
Sommaire
• Cahier des charges• Analyse fonctionnelle• Gestion de projet• Difficultés rencontrées• Exemple d’utilisation• Conclusion
2
Cahier des charges
3
Cahier des charges
• Unicité des affectations• Unicité des trains à quais• Alternance des mission entrantes et sortantes
4
Cahier des charges
• Un train électrifié sur une voie électrifiée • Un train de type fret sur une voie sans quai • La hauteur du quai = hauteur du train• La longueur du quai >= longueur du train• S’il s’agit d’une voie terminus :
5
Analyse fonctionnelle
• Schéma des données• Placement des missions• Décomposition en actigrammes
– Serveur – Exécutable
• Code C• SCADE
6
Schéma des données
7
Placement des missions
• Dest./Provenance: autre que Gare Courante• Horaires d’arrivée et de départ normaux
8
Mission temporaire
Placement des missions
• Destination: Gare Courante• Pas de mission au départ de gare courante• Occupe la voie de stockage définitivement
9
Mission définitivement fixe
Placement des missions
• Destination: Gare Courante• Mission au départ de gare courante existante• Etat placement = prochaine mission
10
Mission en stockage temporaire
Actigramme
11
• SADT ou IDF0• Structure hiérarchisée• Décomposition du système
Action
#
Entrée 2
Entrée 1 Sortie 1
Sortie 2
Projet (A0)
12
• A1 Récupération des données sur le serveur• A2 Téléchargement (XML) + Traitement
Serveur (A1)
13
• Affichage et stockage des données
Serveur (A1)
14
Vérificateur de données (A15)
15
• Horaires corrects• Nombres entiers et positifs• Nombres d’items corrects• Dest. et prov. différents de Gare Courante• Bonne alternance pour les missions de Gare
Courante
Vérificateur de données (A15)
16
Projet (A0)
17
• A1 Récupération des données sur le serveur• A2 Téléchargement (XML) + Traitement
Exécutable (A2)
18
• Réalise le traitement automatique des données récupérées au format XML
• Résultat renvoyé au serveur par upload des valeurs successives- avec vérification par CRC
Exécutable (A21)
19
• Télécharge le fichier XML sur le site WEB• Renvoie une erreur en cas d’erreur durant le téléchargement
Exécutable (A22)
20
• Les données XML sont insérées dans la structure gare• Renvoie une erreur en cas d’erreur durant le parsage
Exécutable (A24)
21
• Les données dans le tableau d’affectation sont envoyées au site
• Renvoie une erreur en cas d’erreur durant l’envoi
Exécutable (A25)
22
• Coordonne tout le déroulement du code• Affiche les erreurs si elles surviennent
Exécutable (A25)
23
Exécutable (A23)
24
• Traitement des données en sécurité• Retourne les erreurs si elles surviennent
Bloc de traitement des données
Préparation de la structure
25
Test d’intégrité (B2)
• Identification des incohérence ou erreurs
• Activation de la machine d’état
26
Test d’intégrité (B21)
27
• Unicité des ID
Test d’intégrité (B2)
• Identification des incohérence ou erreurs
• Activation de la machine d’état
28
Machine d’état (B3)
29
Test d’affectation (C0)• Selon les
différents cas• Teste
l’affectabilité
30
Affectation normale (C1)
31
• Vérification de la mission et de la voie en fonction du mode dégradé
• Conversion (arr. et dép.) + test de compatibilité• Affectation si tableau non plein
Affectation dest. GC (C2)
32
• Si une voie de stockage est disponible:– Mission suivante non existante:
• Affectation sur une voie normale (temporaire)• Affectation sur une voie de stockage (def. fixe)En cas de non affectation, rien n’est fait
– Mission suivante existante (voir C3):• Affectation sur une voie normale (temporaire)• Pas d’affectation sur la voie de stockage (car retard
possible) En cas de non affectation, rien n’est fait
Affectation dest. GC (C2)
33
• Si aucune voie de stockage n’est disponible:– Dans tous les cas, il y a une erreur!– On fait remonter l’erreur vers le site (non bloquant)– A l’utilisateur de décider:
• Changer la destination vers le dépôt (réexécution)• Stocker plusieurs train sur une même voie de stockage• …
Affectation prov. GC (C3)
34
• On tente d’affecter la mission (temporaire)• Si la mission ne peut pas être affectée:
– On retente (retour dans la machine d’état)• Si la mission est affectée:
– Si aucune voie de stockage n’est disponible, on remonte l’erreur vers le site (non bloquant).
Affectation prov. GC (C3)
35
Gestion de projet
• Plusieurs changements
– Non utilisation de la carte UP3
– Passage en gestion dynamique
– Non porté sous linux
36
Gestion de projet
• Charge de travail– 350h / personne– 4 personnes– 18 880 lignes de code
• 13.5 lignes par heure
37
Types Réalisés Bibliothèques TotalC 1 101 1 031 2 132SCADE (optimisation. 3) 13 293 0 13 293Site 4 504 351 4 855Total 18 888 1 382 20 270
Gestion de projet• Déroulement du projet
– Un seul chef de projet– Cycle en spirale
38
CdC
Spécification
Réalisation Tests
Validation
Gestion de projet
39
Gestion de projet• Répartition des tâches
40
J-C BADOCHE Pierre BLACHE Thomas CAPALDI Patrick FAMEY
Cahier des
chargesÉcriture du CdC X X X X
Conception /
Implémentation
Gare / Calculs X X
Affectation TA X X
Tests intégrité X
Fusion Gares XPréparation de
gare X X
Site web X
Code C X XTests /
ValidationÉcriture et
exécution des tests X
Difficultés rencontrées• Au niveau du programme C
– « Multi-lancement » du code généré par Scade– Afficher de manière simple un message avec la
date et avec une possibilité aussi de l’écrire dans un fichier de log
41
Difficultés rencontrées• Au niveau de Scade
– Tester et affecter les missions dans le bon ordre en fonction à la fois de leur heure d’arrivée et de leur priorité
42
1
NextMissionAndCheckPriorite
idMission
IdOk
EndOfSearchMission
Gare
Next
GareGare
EndOf SearchMissionEndOf SearchMission
GareModif ieGareModif ie1
MachineEtat
true
FBY
1false
Ty pes::GARE
bool
bool
bool
Ty pes::GARE
int
Ty pes::GARE
bool
Ty pes::GARE
Difficultés rencontrées• Au niveau de Scade
– Simplifier l’accès aux données des structures
43
indexindex
GareGare
Types::GARE
voies
trains
lieux
missions
tableau_Affectation_Quai
GARE
Types::VOIE
id
numero
longueur
hauteur
terminus
sens
elec
categorie
VOIE
[]
CategorieCategorie
Ty pes::DEFAUT_VOIE
QUAI_AFFECTE T̂y pes::NOMBRE_MAX_VOIES
int
MISSION T̂y pes::NOMBRE_MAX_MISSIONS
LIEU T̂y pes::NOMBRE_MAX_LIEUXTy pes::GARE
TRAIN T̂y pes::NOMBRE_MAX_TRAINS
VOIE T̂y pes::NOMBRE_MAX_VOIES
Ty pes::VOIE
int
int
bool
int
bool
bool
bool
bool
Ty pes::VOIE
MissionCandidate.id
Difficultés rencontrées• Au niveau de Scade
– La gestion du tableau d’affectation et de la gare courante
– Gestion des versions– Simulation dans SCADE
• Problème de taille mémoire • Impossible d’aller dans tous les « sous-niveaux »
44
Difficultés rencontrées• Au niveau du site web
– Les missions périodiques– La représentation graphique du tableau
d’affectation
45
Exemple d’utilisation
• Configuration (1ère étape):
46
Voie 1 : Elec, quai bas
Voie 2 : Non Elec, quai haut
Voie 99 : Elec, sans quai
Gare Courante
Rennes Paris
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2
Exemple d’utilisation
• Configuration (2nd étape):
47
Voie 1 : Elec, quai bas
Voie 2 : Elec, quai haut
Voie 99 : Elec, sans quai
Gare Courante
Rennes Paris
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2
Voie 2 : Non Elec, quai haut
Exemple d’utilisation
• Configuration (3ème étape):
48
Voie 1 : Elec, quai bas
Voie 2 : Elec, quai haut
Voie 99 : Elec, sans quai
Gare Courante
Rennes Paris
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2
Exemple d’utilisation
• Configuration (4ème étape):
49
Voie 1 : Elec, quai bas
Voie 2 : Elec, quai haut
Voie 99 : Elec, sans quai
Gare Courante
Rennes Paris
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2
Gare Courante
Exemple d’utilisation
• Configuration (5ème étape):
50
Voie 1 : Elec, quai bas
Voie 2 : Elec, quai haut
Voie 99 : Elec, sans quai
Gare Courante
Rennes Paris
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2 et 3
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2
Exemple d’utilisation
• Configuration (6ème étape):
51
Voie 1 : Elec, quai bas
Voie 2 : Elec, quai haut
Voie 99 : Elec, sans quai
Gare Courante
Rennes Paris
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2 et 3
: TGV002 : Elec, quai haut mission 4
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2 et 3
Exemple d’utilisation
• Configuration (étape finale):
52
Voie 1 : Elec, quai bas
Voie 2 : Elec, quai haut
Voie 99 : Elec, sans quai
Gare Courante
Rennes Paris
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2 et 3: TGV002 : Elec, quai haut mission 4
: TER001 : Elec, quai haut mission 5
: TER001 : Non Elec, quai haut mission 1
: TGV001 : Elec, quai bas mission 2 et 3: TGV002 : Elec, quai haut mission 4
Conclusion
• Trois éléments principaux:– Un serveur de calculs (C & SCADE)– Un serveur pour l’affichage et la gestion (web)– Des postes clients pour les usagers et les
utilisateurs• Vision globale sur un projet complet• Nouvelles connaissances
53
Merci de votre attentionGestion d’une gare
BADOCHE – BLACHE – CAPALDI – FAMEY