Diagramme de cas d`utilisation

publicité
Desbordes Xavier
Joly Alban
CFA M
Rapport d’analyse
Road to
San Francisco
Introduction :
Le but de ce projet est la modélisation et la simulation d’un réseau routier et de sa
circulation urbaine.
Ce réseau est un réseau moderne dont on défini les limites et les fonctionnalités. Nous avons
opté pour la modélisation d’un réseau routier basé sur le modèle américain, et plus précisément
d’une partie de la ville de San Francisco.
Nous retrouverons dans ce modèle les différentes caractéristiques d’un réseau routier mais
dans une version limitée. Ces délimitations seront décrites dans la suite de ce rapport ainsi que les
points forts sur lesquels nous souhaitons nous appuyer pour mettre en avant une réflexion sur la
différence entre le modèle américain et le modèle européen basé.
Nous présenterons aussi dans ce rapport un premier diagramme des classes, le dictionnaire
de données, le diagramme de cas d’utilisation du logiciel, le manuel utilisateur ainsi que le compte
rendu de nos travaux et des difficultés rencontrées.
Sommaire :
Introduction : ........................................................................................................................................ 2
Sommaire : ........................................................................................................................................... 3
Diagramme de cas d’utilisation : ......................................................................................................... 4
Diagramme de classe : ......................................................................................................................... 6
Dictionnaire des données : ................................................................................................................... 7
Détail du diagramme de classe : .......................................................................................................... 9
Manuel Utilisateur : ........................................................................................................................... 12
Objectif du logiciel......................................................................................................................... 12
Particularités du réseau routier ....................................................................................................... 12
1 Les routes ........................................................................................................................... 12
2 Les véhicules ...................................................................................................................... 12
3 Les carrefours ..................................................................................................................... 13
4 Le tramway ........................................................................................................................ 13
Interface Graphique et Utilisation du logiciel ................................................................................ 13
1 Interface du logiciel ........................................................................................................... 13
2 Utilisation du logiciel ......................................................................................................... 15
a) Générer un trafic .................................................................................................................... 15
b) Fermer une route .................................................................................................................... 16
c) Remplacer un carrefour par un rond point ............................................................................. 16
Compte rendu : ................................................................................................................................... 17
Nos choix ....................................................................................................................................... 17
Difficultés rencontrées ................................................................................................................... 18
Diagramme de cas d’utilisation :
Voici les cas d’action de l’utilisateur sur le système modélisé :
CréerVéhicule :
L’utilisateur peut créer, à partir d’un point de « respawn », un véhicule de type moto, voiture ou
camion. Il spécifiera si il le souhaite le point d’arrivée du véhicule ou celui-ci sera choisi
aléatoirement par le système. Par défaut les catégories et quelques véhicules seront prédéfinis. Il
aura la possibilité de choisir un véhicule parmi la liste prédéfinie et de le mettre en circulation sur le
réseau routier de « San Francisco »
BloquerRoute :
L’utilisateur peut en cliquant sur une route bloquer la circulation sur celle-ci. Il aura le choix entre
la création de travaux ou la génération d’un accident de la route. Le résultat sera le même, il
entrainera le blocage complet de la route et les véhicules présents dessus seront bloqués. Les
véhicules dont leur itinéraire devait passer par cette route seront réorientés vers un nouvel itinéraire
évitant cette portion de route bloquée.
RemettreEnServiceRoute :
L’utilisateur peut, toujours par un clique sur une portion de route, remettre la route qui était dans un
état « en travaux » ou « accident de la route » en service. Le poids de cette route est à nouveau
recalculé.
CréerPanneElectricité :
L’utilisateur peut générer une panne d’électricité générale entrainant le disfonctionnement des feux
rouges. La règle de la priorité à droite est alors appliquée. L’intérêt de cette fonction est de voir
l’influence d’un tel événement sur le réseau routier modélisé.
TransformerIntersection :
L’intérêt de cette fonction est de modifier une intersection existante soit d’un carrefour en un rond
point ou inversement. L’utilité de cette fonction est de permettre de modéliser le passage d’un
système « américain » à un système « européen » et de voir les conséquences de la mise en place
d’un rond point sur un tel schéma urbain (le rond point permettant de faire demi-tour, contrairement
au système avec des carrefours).
ModifierCaractRoute :
L’utilisateur peut, en cliquant sur une route, modifier l’état de la route. Il peut influer sur le
coefficient de la pente de la route ainsi que sa longueur. Ces modifications entraineront un recalcule
du poids de la route qui varie en fonction de ces paramètres.
ModifierEtatFeu :
Lorsqu’un utilisateur clique sur un carrefour il pourra visualiser les feux qui lui sont associés. L’état
d’un feu en particulier sera modifiable et l’utilisateur visualisera ainsi l’impact de ce changement
sur le réseau routier.
Diagramme de classe :
Dictionnaire des données :
Mnémonique
Feu
MarcheFeu()
ArretFeu()
Carrefour
NbSorties
GererPassage()
BloquerCarrefour()
Rond Point
GererPassage()
Graphe Intersection
NomIntersection
CoordonneeX
CoordonneeY
Respawn
NomSpawn
CoordonneeX
CoordonneeY
Image
CreerVehicule()
Reseau
NomReseau
DiagnosticReseau()
PanneElectricité()
Reinitialisation()
Route
Poids
EtatRoute
NomRoute
CoordonneeX
CoordonneeY
Libellé
Classe objet représentant un feu
tricolore
Fonction permettant de remettre en
marche un feu tricolore
Fonction permettant d’arrêter le
fonctionnement d’un feu tricolore
Classe objet modélisant un carrefour
Nombre de sorties d’un carrefour
Fonction gérant le passage des
véhicules dans un carrefour
Fonction permettant de rendre un
carrefour inutilisable
Classe objet modélisant un rond point
Fonction gérant le passage des
véhicules dans un rond point
Classe objet regroupant les intersections
Nom caractérisant une intersection
Coordonnée X d’une intersection
Coordonnée Y d’une intersection
Classe objet représentant un point de
départ ou d’arrivée d’un véhicule
Nom d’un point de départ/arrivée
Coordonnée X d’une intersection
Coordonnée Y d’une intersection
Image du respawn
Fonction permettant de créer un
véhicule à partir d’un point de respawn
Classe objet modélisant le plateau du
programme
Nom du réseau routier
Fonction permettant de donner l’état du
réseau à un instant T
Permet de simuler une panne générale
d’électricité et par conséquent
d’éteindre tous les feux tricolores.
Retour à la normale. Les feux sont à
nouveau en fonctionnement
Classe objet modélisant une route du
système routier du programme
Poids de la route. Ce poids est pris en
compte dans l’algorithme du plus court
chemin.
Etat de la route. Par exemple, bloquée.
Nom de la route
Coordonnée X d’une route
Coordonnée Y d’une route
Type
Classe
Contraintes
Méthode
Méthode
Classe
Entier
>0
String
Entier
Entier
Classe
<> ‘’
>=0
>=0
String
Entier
Entier
Image
Méthode
<> ‘’
>=0
>=0
Méthode
String
Méthode
Méthode
Méthode
Classe
Entier
>0
Entier
String
Entier
Entier
>0
>=0
>=0
CoeffPente
LongueurRoute
CalculPoids()
Véhicule
NomVehicule
TypeVehicule
Image
RoutePrecedente
Poids
CalculPoidsVehic()
CalculItineraire()
Circuler()
Tramway
Circuler()
Coefficient de la pente de la route.
Paramètre pris en compte dans le calcul
du poids de la pente
Longueur de la route
Fonction permettant de calculer le poids
d’une route
Classe objet modélisant un véhicule
Nom d’un véhicule
Catégorie de véhicule
Image associée au véhicule
Ancienne route empruntée par le
véhicule. Pour empêcher le véhicule
d’effectuer un demi tour sur un
carrefour.
Poids associé à un véhicule
Méthode permettant de calculer le poids
associé à un véhicule
Méthode permettant de calculer le plus
court chemin d’un véhicule
Méthode faisant circuler les véhicules
en respectant les contraintes et règles de
notre réseau.
Classe objet modélisant un tramway
Méthode permettant de lancer le
tramway dans la circulation
Entier
>=0
Entier
Méthode
>0
Classe
String
Entier
Image
Objet
Entier
Méthode
Méthode
Méthode
Classe
<> ‘’
>=0
>0
Détails du diagramme de classe :
Détail du diagramme classe par classe et association par association :
Classe Respawn :
Cette classe correspond aux points de départ et d’arrivée d’un véhicule. Le trafic sera généré
uniquement à partir de ces points.
Association Respawn  Véhicule :
Il existe deux association partant de la classe Respawn et allant vers véhicule qui modélise le
fait qu’un véhicule n’a qu’un seul point de départ et un seul point d’arrivée, mais qu’un
Respawn peut être le point de départ et d’arrivée de plusieurs véhicules.
Classe IG Principale :
Cette classe gère l’interface du logiciel. C’est dans cette interface que l’on retrouvera tous les
éléments nécessaires au fonctionnement du programme. Avec notamment intégration du plateau
« Réseau », visualisation des véhicules sur le plateau, et les principales options proposées à
l’utilisateur comme la modification d’un carrefour en rond point ou vice et versa.
Association IG Principale  Réseau :
Un réseau à une seule et unique interface graphique et cette interface ne gère qu’un seul et
unique réseau.
Classe Réseau :
Cette classe modélise le réseau routier de la ville de « San Francisco ». La particularité de ce réseau
est qu’à la base il ne comprend que des intersections avec priorité à droite ou gestion des feux
tricolore. L’intérêt de notre modélisation sera l’ajout de rond point à la place de carrefour existant et
d’observer l’impact de ces changements sur le modèle de réseau routier américain.
Association Réseau  Respawn :
Le réseau routier est composé de plusieurs respawns qui correspondent aux points de départ
et d’arrivée des véhicules, et un respawn est propre à un réseau routier.
Association Réseau  Graphe Intersection :
Le réseau routier est composé d’un ensemble de graphes d’intersections qui pourront être
des carrefours ou des ronds points, et un graphe d’intersection n’appartient qu’à un seul
réseau.
Association Réseau  Route :
Un réseau routier est composé de plusieurs routes et une route n’est présente qu’une seule
fois dans le réseau représenté du fait qu’elle possède un nom qui lui est propre et qui la
différencie des autres.
Classe Feu :
Cette classe modélise les feux tricolores et leur fonctionnement. On peut allumer un feu tricolore ou
l’arrêter.
Classe Carrefour :
Cette classe permet la modélisation des carrefours dans le réseau routier que nous simulons. Un
carrefour peut posséder des feux rouges ou non mais dans tous les cas, s’il n’y a pas de feux
tricolores la règle de la priorité à droite s’applique. Dans cette classe est présent les fonctions
nécessaires au fonctionnement du carrefour avec l’implémentation des règles de priorités.
Cette classe hérite de la classe Graphe Intersection.
Association Carrefour  Feu :
Un carrefour possède plusieurs feux tricolores. Il en possède 2 ou zéro.
Classe Rond Point :
Cette classe modélise un rond point dans le système routier que nous réalisons. Les méthodes
associées à cette classe permettent la gestion des ronds points et des priorités liées à leur
fonctionnement.
Cette classe hérite également de la classe Graphe Intersection.
Classe Graphe Intersection :
Cette classe est le graphe d’intersection que nous utilisons pour gérer la liaison des carrefours entres
eux. Une instance de la classe connait ses carrefours précédents (ceux d’où peuvent venir les
véhicules) ainsi que ses carrefours suivants.
Nous avons opté pour une modélisation du réseau routier en tant que graphe afin de permettre le
calcul du chemin le plus court. Dans ces graphes , les éléments de type « Graphe d’intersection » en
sont les points et les routes en sont les arcs.
Une intersection possède un nom qui l’identifie, et se situe à une coordonnée fixe.
Association Graphe Intersection  Véhicule :
Un graphe d’intersection peut contenir plusieurs véhicules et un véhicule ne peut se situer
que sur un seul graphe d’intersection à la fois ou tout simplement ne pas se situer sur un
graphe d’intersection. Plus clairement, un véhicule est sur un carrefour ou pas du tout mais
ne peut être sur deux carrefours en même temps.
Association SesSuivants et SesPrécédents :
Entre deux graphes d’intersections.
Puisque les points de notre graphe sont des intersections et que les routes en sont les arcs,
cette association modélise le fait que chaque point de notre graphe connaît ses suivants et ses
précédents et les arcs pour y aller.
Classe Route :
La classe Route modélise une route sur le système routier du programme. Une route peut être
assimilée à un arc d’un graphe. Une route à par conséquent un poids qui varie en fonction de
plusieurs facteurs comme la longueur de la route, son coefficient de pente et l’état de la route. Une
route comme dans toutes les villes possède un nom qui lui est propre et qui l’identifie dans le réseau
routier que nous modélisons. Elle est la liaison entre deux intersections et à donc des coordonnées
précises sur le graphe.
Association Route  Véhicule :
Une route peut contenir plusieurs véhicules en fonction de sa longueur et ce jusqu’à
saturation de la route.
Classe Véhicule :
Cette classe modélise les véhicules présents sur le réseau routier du programme. Un véhicule
possède un nom particulier qui l’identifie. L’utilisateur ne peut pas créer d’autres véhicules. Un
nombre déterminé de véhicule sera proposé, l’intérêt de ces différentes catégories de véhicule
portera sur le fait qu’ils auront une taille différente ce qui déterminera leur insertion sur une route
déterminée.
Classe Tramway :
Cette classe hérite de la classe véhicule. Un tramway a comme particularité de toujours suivre le
même trajet. Si la route qu’il emprunte habituellement est bloquée ou en travaux le tramway est
alors bloqué.
Classe IG Ajout_Vehicule :
Cette classe est une interface graphique qui permettra la sélection d’un véhicule particulier et son
insertion sur le réseau routier de manière aléatoire ou suivant un trajet défini par l’utilisateur en
précisant le respawn de départ et celui d’arrivée.
Association IG Ajout_Vehicule  Véhicule :
L’interface graphique permettant l’ajout de véhicule connait les différents véhicules
proposés par le logiciel et il n’y a qu’une seule et unique interface graphique qui gère l’ajout
de véhicule.
Manuel Utilisateur :
Objectif du logiciel
Le logiciel répond à plusieurs objectifs :
1. Modéliser un réseau routier particulier de type américain (sur la base de la ville de San
Francisco).
2. Simuler un trafic sur ce réseau dans le but de constater sa capacité à absorber la
suppression d’une route (par un accident ou des travaux).
3. Remplacer certains carrefours par des rond point afin d’évaluer les différences entre le
modèle européen et le modèle américain.
Particularités du réseau routier
Le réseau routier modélisé comporte plusieurs particularités :
1 Les routes
Les routes sont soit à double sens, soit à sens unique.
Elles peuvent avoir une inclinaison, c'est-à-dire une pente. Cette pente sera prise en compte dans le
calcul du plus court chemin, i.e. entre deux itinéraires d’égales distances, le logiciel préférera
l’itinéraire le plus économe en terme de montées.
Une route peut être bloquée soit par un accident, soit par des travaux. Aucun trafic n’est alors
possible. Néanmoins, si cette route est à double sens alors une seule voie est indisponible (celle où a
eu lieu l’évènement).
2 Les véhicules
Il y a plusieurs types de véhicules :



Voitures
Camions
Motos
Chaque type de véhicule a une taille différente sur la route, par exemple un camion est plus
long qu’une moto.
Le logiciel ne gère pas les dépassements car tous les véhicules ont la même vitesse.
Les véhicules ont un point de départ (lieu de création) et un point d’arrivée. Pour arriver à
destination, un véhicule calcul le plus court chemin pour y parvenir. De la même manière, si une
route, appartenant à l’itinéraire du véhicule, est bloquée (à cause d’un accident, …) alors le véhicule
recalcule un plus court chemin sans prendre cette route. Chaque véhicule est donc intelligent et
équipé d’un GPS.
3 Les carrefours
Un carrefour ne possède pas forcément de feux. Dans ce cas, la règle de la priorité à droite est en
vigueur sur notre réseau routier.
Un véhicule ne peut pas faire un demi-tour sur un carrefour.
4 Le tramway
A l’image de San Francisco, notre réseau routier est équipé d’un tramway. Un tramway fait des
allers et retours entre deux points. L’utilisateur aura la possibilité d’arrêter ce trafic à tout
moment.
Interface Graphique et Utilisation du logiciel
1 Interface du logiciel
Description générale de l’interface
La fenêtre se décompose ainsi :
Une barre de menu en haut comportant 3 onglets Fichiers, Actions et Aide. Comme pour la grande
majorité des applications Windows, lorsque l’utilisateur clique sur l’une de ces catégories, plusieurs
choix apparaissent.
Click sur Fichier
L’utilisateur peut Charger une carte ou bien quitter l’application via ce menu. Le chargement d’une
carte permet d’afficher à l’écran notre réseau routier.
Click sur Action
Via ce menu, l’utilisateur peut créer une panne de courant. Cela aura pour effet d’éteindre tous les
feux du réseau routier. Dans le cas d’un carrefour sans feux, la règle de la priorité à droite est de
vigueur. Cette manipulation permet une évaluation de la qualité du réseau américain lors d’une
panne de courant.
Toujours grâce à ce menu, l’utilisateur peut consulter un résumé du réseau routier, comme par
exemple le nombre de voitures qui y circulent, …
Click sur Aide
L’utilisateur peut consulter l’aide du logiciel et les crédits.
Un écran principal divisé en deux. Dans la partie gauche, l’utilisateur trouve la modélisation du
réseau routier avec la modélisation des différents véhicules, des routes (en rouge si il y a une pente),
des points de respawn et des feux rouges. La partie droite permet l’interaction de l’utilisateur avec
le réseau routier.
Exemple :
Lorsque l’utilisateur clique sur un carrefour du réseau routier, il peut consulter dans la
barre à droite les informations liées à ce carrefour. Il peut aussi interagir dessus :
extinction des feux OU remplacement du carrefour par un rond point.
Lorsque l’utilisateur clique sur un point de respawn, l’utilisateur a la possibilité, via la
colonne droite de l’écran principal, de créer un véhicule partant de ce point de respawn.
Lorsque l’utilisateur clique sur une route, il peut, toujours via la colonne droite, interagir
sur cette route : Fermer la route ou Augmenter la pente ou Réduire la pente.
Pour résumé l’écran principal, la colonne droite permet les interactions sur le réseau routier
situé dans l’écran gauche.
2 Utilisation du logiciel
a) Générer un trafic
Comme nous l’avons vu dans la description de l’interface, pour générer un trafic, l’utilisateur doit
cliquer sur un point de respawn.
Les points de respawn sont les bâtiments qui se situent autour du réseau routier.
Lorsqu’un véhicule est créé, une destination aléatoire est déterminée et un itinéraire idéal est
calculé.
L’utilisateur a la le choix entre différents véhicules. Pour effectuer ce choix, une interface apparaît :
L’itinéraire idéal correspond au chemin le plus court avec le moins de routes en pente possible.
Si une route de l’itinéraire est fermée après l’estimation de l’itinéraire, le véhicule recalcule un
itinéraire.
b) Fermer une route
Pour fermer une route et tester la capacité d’absorption de changements d’itinéraires du système
américain, l’utilisateur doit cliquer sur la route et, via la colonne droite, cliquer sur le bouton
« Fermer ».
c) Remplacer un carrefour par un rond point
Afin de pouvoir comparer le système américain et celui européen, l’utilisateur a la possibilité de
remplacer n’importe quel carrefour par un rond point.
Un rond point a l’avantage de permettre le demi-tour en cas de changement d’itinéraire.
Pour effectuer un changement, l’utilisateur doit simplement cliquer sur un carrefour puis sur le
bouton « Remplacer par un rond point » qui se situe dans la colonne droite.
Compte rendu :
Nos choix
Nous avons choisi de modéliser un réseau routier américain pour plusieurs raisons :
-
Tout d’abord, cela va nous permettre de tester ce réseau routier en fonction de sa
capacité à absorber un trafic important et de sa capacité à offrir des itinéraires alternatifs
en cas d’imprévus.
-
En remplaçant certains carrefours par des ronds points, cette modélisation nous
permettra de faire des comparaisons entre modèle américain et modèle européen.
-
Enfin ce réseau a l’avantage d’être facile à modéliser, puisque toutes les rues sont
« droites » (verticales ou horizontales).
Nous avons aussi du faire d’autre choix au sujet du réseau routier car modéliser le réseau américain
aurait été trop complexe.
-
Le réseau routier est modélisé sous forme d’un graphe. Il est plus facile ainsi de calculer
l’itinéraire le plus court entre deux points (deux carrefours). Nous pensons d’ailleurs
utiliser l’algorithme de Dijkstra.
-
On interdit aux voitures d’effectuer des demi-tours. Les véhicules ne pourront pas
reprendre la route par où ils sont venus, sauf si le carrefour a été modifié entre temps en
rond point (Intérêt du rond point).
-
Toutes les voitures ont la même vitesse car nous considérons qu’en ville la vitesse fixée
suffisamment basse permet à toutes les voitures de la respecter. De plus ce choix permet
d’éviter la modélisation des dépassements. Notre but étant de voir la capacité
d’absorption du trafic et non les possibilités de dépassement qu’offre ce réseau, nous
avons jugé que les dépassements n’étaient pas une priorité.
-
Notre réseau routier offre différents types de véhicules : chaque véhicule n’a pas le
même gabarit. Ainsi une rue est plus rapidement encombrée si il n’y a que des camions
dessus.
-
Les routes sont soit à double sens soit à sens unique. Il n’y a pas de voies doubles ou
triples. Ainsi il est plus facile de gérer le réseau comme étant un graphe.
-
Les routes peuvent présenter une inclinaison (pente). Dans ce cas, cela sera pris en
compte dans le calcul du plus court chemin. Ce choix découle de notre envie de se
rapprocher du réseau routier de San Francisco.
-
Toujours pour cette même raison, notre modélisation intègre un tramway qui fait des
allers et retours entre deux points. L’utilisateur aura d’ailleurs, via l’interface, la
possibilité de stopper le tramway.
-
Au niveau de la signalisation, notre modélisation intègrera les feux tricolores et les
règles de priorité à droite. Ceci facilitant l’analyse et la conception.
-
Pour la gestion du trafic, nous avons opté pour la présence de points de respawn qui sont
des points situés autour du réseau et qui offre la possibilité de créer des véhicules afin
d’augmenter la circulation sur notre réseau. A la création d’un véhicule nous avons
choisi de définir la destination du véhicule de manière aléatoire. Néanmoins cette
destination sera toujours un autre point de respawn.
Notre dernier choix concerne l’interface et les interactions utilisateur. Nous avons opté pour une
interface scindée en deux avec le réseau routier modélisé dans la partie droite et les interactions
possibles dans celle de gauche.
Exemple :
Lorsque l’utilisateur clique sur un carrefour du réseau routier, il peut consulter dans la
barre à droite les informations liées à ce carrefour. Il peut aussi interagir dessus :
extinction des feux OU remplacement du carrefour par un rond point.
Ce choix nous permettra de faire réellement interagir l’utilisateur et surtout de faire évoluer le
réseau en temps réel.
Difficultés rencontrées
La principale difficulté que nous avons rencontré lors de cette phase d’analyse provient finalement
de problèmes d’implémentation Java. Nous pensons toujours lors d’une phase d’analyse ou de
conception à la façon d’implémenter nos idées. Ces pensées guident d’ailleurs nos choix d’analyse.
Et dans le cadre du réseau, certains éléments n’ont toujours pas trouvé de réponses. Ainsi nous
avons fait l’analyse sans trop nous soucier de certains points d’implémentation.
Une autre difficulté à laquelle nous avons du faire face est l’insertion des interfaces graphiques dans
le diagramme des classes, et les méthodes que nous utiliserons par la suite, ainsi que les attributs
présents dans ces classes.
Nous avons aussi eu quelques problèmes à délimiter notre sujet. En effet, nous avons du refreiner
notre envie de modéliser un système américain complètement fidèle à l’original.
Téléchargement