Uml Rapport
Uml Rapport
Uml Rapport
Introduction : ............................................................................................................................. 4
Objectifs : ................................................................................................................................... 4
Phase d’analyse : ....................................................................................................................... 5
• Étape 1: Capture des exigences fonctionnelles ............................................................................. 5
Diagramme de cas d’utilisation : ........................................................................................................... 5
Fiche descriptive des cas importants : ................................................................................................... 7
Prototypes des interfaces ....................................................................................................................... 7
• Étape 2 : Étude du modèle statique : ............................................................................................. 7
Diagramme de classe :........................................................................................................................... 7
Dictionnaire de données : ...................................................................................................................... 8
• Étape 3 : Étude du modèle dynamique: ........................................................................................ 9
Scénarios de Modélisation Dynamique ............................................................................................... 10
Phase de conception : .............................................................................................................. 13
• Étape 1: Conception générale : .................................................................................................... 13
Répartition en Paquetages ................................................................................................................... 13
Relation entre les paquetages : ............................................................................................................ 14
Diagramme de composant du logiciel : ............................................................................................... 15
Diagramme de Déploiement Intégrant les Composants : .................................................................... 16
• Étape 2 : Conception détaillée :.................................................................................................... 17
Diagrammes de classes techniques des différents paquetages : .......................................................... 17
Diagrammes de séquence technique et réalisation de l’approche MVC pour l’architecture de projet :
19
Phase d’implémentation :................................................................................................................ 20
Tableaux :
Tableau 1: Les acteurs du système ............................................................................................. 5
Tableau 2: Cas d'utilisation ........................................................................................................ 6
Tableau 3: Paquetages .............................................................................................................. 13
2
Figure 1: Diagramme de cas d'utilisation ................................................................................... 6
Figure 2: Prototype d'interface ................................................................................................... 7
Figure 3: Diagramme de classe .................................................................................................. 8
Figure 4: Diagramme du séquence -Prendre une réservation................................................... 10
Figure 5: Diagramme de séquence - Gérer l'arrivée d'un client ............................................... 11
Figure 6: Diagramme de séquence - Annuler une réservation ................................................. 11
Figure 7: Diagramme de Séquence - Modifier une Réservation .............................................. 12
Figure 8: Diagramme de composant du logiciel ...................................................................... 16
Figure 9: Diagramme de dépoloiement .................................................................................... 16
Figure 10: Diagramme de classe de paquetage IHM ............................................................... 17
Figure 11: Diagramme de classe de paquetage Métier............................................................. 18
Figure 12: Diagramme de classe de paquetage Persistance ..................................................... 18
Figure 13: Diagramme de classe de paquetage Service ........................................................... 18
Figure 14: Diagramme de classe de paquetage Util ................................................................. 19
Figure 15: Diagramme de séquence technique......................................................................... 20
Figure 16: Capture d'écran de console après exécution ........................................................... 21
Figure 17: Erreur confronté ...................................................................................................... 21
3
Introduction :
Dans un contexte où l'efficacité et la rapidité sont essentielles, la modélisation UML s'impose
comme une approche structurée pour concevoir et visualiser des systèmes complexes. Notre
projet, centré sur la modernisation des opérations d'un restaurant, s'appuie sur cette
méthodologie, avec l'utilisation de l'outil Modelio.
Ce projet vise à migrer d'un système manuel de réservation à une solution informatisée plus
agile et précise. L'outil Modelio, reconnu pour sa robustesse dans la modélisation UML, est
notre choix pour donner vie à cette transition. À travers une série d'étapes, de la capture des
exigences fonctionnelles à la synthèse, nous explorons l'ensemble du processus de conception.
Des diagrammes de cas d'utilisation aux modèles de classe, Modelio sera notre allié pour
traduire les besoins du restaurant en une représentation visuelle claire et compréhensible.
Cette introduction jette les bases de notre démarche axée sur la modélisation UML et
l'utilisation de Modelio. Elle souligne l'importance de cette approche méthodique dans la
création d'un système informatisé adapté aux défis actuels du restaurant, tout en offrant une
flexibilité pour évoluer avec les besoins futurs.
Objectifs :
• Application des concepts UML pour modéliser les processus de réservation et
d'attribution de tables.
• Création des diagrammes UML clairs pour représenter les interactions, les cas
d'utilisation, et les modèles statiques et dynamiques.
• Élaboration des prototypes d'interface basés sur les exigences fonctionnelles.
• Réalisation d’un modèle statique robuste via un diagramme de classe UML.
• Développement des diagrammes de séquence et d'états UML pour illustrer le flux des
actions.
4
Phase d’analyse :
Avant de procéder à la conception, il est important d’analyser d’abord la situation pour définir
avec précision les besoins, les exigences et les fonctionnalités du système.
Cette phase s'articule autour de trois axes majeurs :
Nous débuterons par élaborer un "Diagramme des cas d'utilisation", une représentation
visuelle des interactions entre le système et ses acteurs clés. Après une lecture approfondie
des consignes, nous avons réussi à extraire les composants principaux de ce diagramme :
Les acteurs : sont des entités externes qui interagissent avec le système.
Nous allons présenter dans le tableau ci-dessous les acteurs de notre système :
5
Le réceptionniste ajoute les informations
Ajouter les infos Relation
complémentaires lors de la prise d'une
complémentaires d’extension
nouvelle réservation.
Visualiser le planning Relation de Le personnel du restaurant déclenche ce
communication cas pour consulter les réservations pour
une date donnée.
Demander une Relation de Le client déclenche ce cas en contactant le
réservation communication et restaurant pour faire une demande de
de généralisation réservation, soit par téléphone soit en
direct.
Tableau 2: Cas d'utilisation
Après avoir identifié les acteurs et leurs cas d’utilisation, nous avons élaboré le diagramme de
cas d’utilisation sur Modelio :
6
Fiche descriptive des cas importants :
Par la suite, nous établirons une « Fiche descriptive des cas importants », disponible dans le
fichier Excel suivant : lien vers le fichier Excel.
Enfin, nous concrétiserons ces idées à travers des "Prototypes d'interfaces", offrant une vision
tangible de l'expérience utilisateur envisagée.
Diagramme de classe :
Dans cette étape nous aborderons deux composantes essentielles : la réalisation d'une
première ébauche du "Diagramme de Classe" et la création d'un "Dictionnaire de Données"
détaillant chaque abstraction choisie.
7
Le "Diagramme de Classe" est une vue graphique de la structure statique d’un système. Nous
explorons les entités telles que les réservations, les tables…et d'autres éléments cruciaux du
contexte du restaurant.
Le choix des classes a été basé sur l'analyse des entités et des actions impliquées dans le
système :
Table : Les tables dans un restaurant sont des entités clés. Elles ont des caractéristiques
comme le numéro, la capacité, et un indicateur d'état pour savoir si elles sont réservées. Les
méthodes liées aux réservations et aux déplacements sont incluses pour gérer les opérations
sur les tables.
Reservation : Une réservation est une entité centrale dans le système de gestion des
opérations du restaurant. Elle a des informations principales, des informations secondaires,
et une date associée. Les méthodes permettent de changer ces informations, offrant une
flexibilité dans la gestion des réservations.
Dictionnaire de données :
Chaque abstraction identifiée dans le diagramme de classe sera accompagnée d'un ensemble
de propriétés et d'attributs spécifiques. Le "Dictionnaire de Données" offre une vue succincte
mais détaillée de ces éléments, fournissant une compréhension claire des caractéristiques de
chaque classe.
8
Classe : Interface-planning :
• Attributs :
− dateRegardee (Type : string) : La date actuellement consultée dans l'interface du
planning.
• Méthodes :
− changeDate(in pDate: string) : Méthode permettant de changer la date consultée
dans l'interface du planning en utilisant la nouvelle date fournie en paramètre.
Classe : Table :
• Attributs :
− tableID (numéro) : Identifiant unique de la table.
− capacité (place total): Nombre maximum de personnes.
− disponibilité (est réservée): La disponibilité de la table.
• Méthodes :
− reserver(in preservation: Reservation) : Méthode pour réserver la table, prenant
en compte les détails de la réservation.
− dereserve(in pDate : string) : Méthode pour annuler une réservation à une date
spécifiée.
− deplacerReservation(in pReservation : string) : Méthode pour déplacer une
réservation existante vers une autre table.
• Relations : Associée à des réservations (Classe Réservation) et à l’interface planning.
Classe : Réservation :
• Attributs :
− infoPrincipale (Type : string) : Les informations principales de la réservation.
− infoSecondaires (Type : string) : Les informations secondaires de la réservation.
− date (Type : string) : La date de la réservation.
• Méthodes :
− changeInfoPrincipale(in pInfo: ...) : Méthode pour modifier les informations
principales de la réservation.
− changeInfoSecondaire(...) : Méthode pour modifier les informations secondaires
de la réservation.
− changeDate(in pDate: string) : Méthode pour modifier la date de la réservation.
Classe : Réservation-rapide :
• Attributs :
− infoPrincipale (Type : string) : Les informations principales de la réservation.
Dans cette étape nous allons mettre l'accent sur la séquence des actions et les
changements d'état au fil du temps. Nous allons élaborer des diagrammes de
séquence ou de communication pour les cas d'utilisation clés, illustrant le flux des
interactions entre les acteurs et le système. En parallèle, nous allons construire des
diagrammes d'états pour certaines classes pertinentes, décrivant les différents états
et transitions possibles.
9
Scénarios de Modélisation Dynamique
Lors de l'arrivée des clients, le maître d'hôtel engage une interaction avec le système
de réservation pour confirmer ou attribuer une table.
Le flux d'actions, y compris la vérification des réservations et l'attribution de tables,
sera représenté dans un diagramme de séquence.
10
Figure 5: Diagramme de séquence - Gérer l'arrivée d'un client
Lorsqu'un client souhaite annuler une réservation, une interaction entre le client, le
réceptionniste, et le système de réservation se déclenche.
Les étapes de recherche, de confirmation, et de mise à jour seront détaillées dans un
diagramme de séquence.
11
Figure 7: Diagramme de Séquence - Modifier une Réservation
12
Phase de conception :
• Étape 1: Conception générale :
Dans la phase préliminaire de conception de notre système de gestion de restaurant,
nous avons établi une architecture logicielle modulaire, divisée en paquetages
distincts avec des responsabilités bien délimitées. Cette structuration vise à
promouvoir une séparation claire des préoccupations, facilitant ainsi la maintenance
et l'évolution du système.
Répartition en Paquetages
Le tableau ci-dessous présente une répartition claire des paquetages, avec leurs descriptions
respectives et les fonctionnalités associées.
13
Relation entre les paquetages :
IHM ↔ Métier : L'IHM fait appel au paquetage Métier pour l'exécution des opérations
métier et l'obtention des données à présenter à l'utilisateur.
Choix technologiques :
IHM avec Swing : Nous avons opté pour Swing en raison de sa maturité et de sa
stabilité dans le domaine des interfaces graphiques Java. Cette bibliothèque offre
une flexibilité significative pour personnaliser les composants de l'interface utilisateur,
avec une large communauté assurant un support continu et des ressources
abondantes pour les développeurs.
14
modèle de concurrence robuste et des fonctionnalités de synchronisation intégrées
qui nous permettent de construire une application capable de traiter les opérations
concurrentes de manière sûre et efficace.
Architecture Répartie avec Spring Boot : Notre choix d'une architecture répartie
est motivé par la nécessité d'accéder au système via Internet et de gérer les
opérations à distance. Spring Boot est notre outil de prédilection en raison de sa
facilité de mise en place, sa configuration minimale et son support intégré pour la
création de microservices. Cette approche offre une grande modularité et simplifie le
déploiement des composants de l'application.
Design Patterns et MVC : Les design patterns sont au cœur de notre approche de
conception pour garantir un code propre, réutilisable et facilement testable. Nous
utilisons le modèle MVC (Modèle-Vue-Contrôleur) pour séparer clairement la logique
métier de l'IHM, facilitant ainsi les tests et la maintenance. De plus, nous intégrons
des patterns comme Singleton pour la gestion des instances uniques, telles que les
connexions à la base de données, et Factory pour la création d'objets complexes au
sein de la logique métier.
Les relations entre les composants peuvent être représentées par des flèches
indiquant les dépendances. Par exemple, le Composant IHM dépend du Composant
Métier pour afficher les données, et le Composant Métier dépend du Composant
Persistance pour accéder aux données stockées.
15
Figure 8: Diagramme de composant du logiciel
Les composants sont représentés comme des artefacts déployés sur ces nœuds.
Les connexions réseau entre les clients, le serveur d'application, et la base de
données illustrent comment les données sont échangées entre les composants.
16
• Étape 2 : Conception détaillée :
Diagrammes de classes techniques des différents paquetages :
Les diagrammes de classes techniques offrent une vue détaillée de la structure interne des
paquetages logiciels, montrant les relations entre les différents composants.
• Classes de Vue :
− ReservationView : Affiche le formulaire de réservation et la liste des
réservations.
− TableView : Affiche l'état actuel des tables dans le restaurant.
− MenuView : Permet aux utilisateurs de consulter et de sélectionner des
items du menu.
− OrderView : Affiche le détail des commandes et permet leur gestion.
• Classes de Contrôleur :
− ReservationController : Traite les actions liées aux réservations
(ajout, modification, annulation).
− TableController : Gère les interactions liées à l'état des tables.
− MenuController : Gère la sélection des items de menu et les
interactions avec le modèle de menu.
− OrderController : Traite les commandes, les mises à jour et les
interactions avec le modèle de commande.
Paquetage Métier
• Classes Métier :
− Reservation : Contient les détails d'une réservation.
− Table : Représente une table dans le restaurant avec son état et sa
capacité.
− MenuItem : Représente un item du menu avec ses propriétés comme le
prix, la description.
− Order : Représente une commande avec une liste d'items commandés.
17
Figure 11: Diagramme de classe de paquetage Métier
Paquetage Persistance
• Classes DAO (Data Access Object) :
− ReservationDAO : Gère la persistance des réservations.
− TableDAO : Gère la persistance de l'état des tables.
− MenuDAO : Gère la persistance des items de menu.
− OrderDAO : Gère la persistance des commandes.
Paquetage Services
• Classes de Service :
− PaymentService : Intègre un service de paiement externe.
− NotificationService : Envoie des notifications par e-mail ou SMS.
18
Paquetage Util
• Classes Utilitaires :
− Logger : Offre des fonctionnalités de journalisation.
− Validator : Fournit des méthodes de validation pour les entrées
utilisateur.
Les diagrammes de séquence technique et l'approche MVC sont des éléments clés dans la
conception et le développement logiciel. Ils permettent de visualiser les interactions entre les
composants et de structurer efficacement l'architecture d'un projet.
Pour élaborer le diagramme de séquence technique pour une nouvelle réservation et décrire en
détail l'approche MVC, voici les étapes que nous allons suivre :
Identification des acteurs : Utilisateur (Client ou Personnel du restaurant).
Description du scénario : L'utilisateur souhaite créer une nouvelle réservation.
Détail des étapes du scénario : en indiquant les interactions entre les composants MVC.
• L'utilisateur déclenche l'action de création de réservation via l'interface utilisateur
(Vue).
• L'interface utilisateur envoie la demande au contrôleur de réservation (Contrôleur).
• Le contrôleur de réservation valide les données de l'utilisateur, potentiellement à l'aide
d'un service de validation du paquetage Util (Modèle ou Utilitaire).
• Si les données sont valides, le contrôleur de réservation demande au modèle de
réservation de créer une nouvelle réservation (Modèle).
• Le modèle de réservation crée un objet de réservation et le transmet au DAO de
réservation pour la persistance (Modèle).
• Le DAO de réservation interagit avec la base de données pour enregistrer la nouvelle
réservation (Persistance).
• Une fois la réservation enregistrée, une réponse est renvoyée au modèle de réservation,
puis au contrôleur de réservation (Modèle).
• Le contrôleur de réservation informe l'interface utilisateur de la réussite de l'opération
(Contrôleur).
• L'interface utilisateur affiche un message de confirmation à l'utilisateur (Vue).
19
Figure 15: Diagramme de séquence technique
Phase d’implémentation :
Nous avons développé notre application avec Spring Boot organisée selon une architecture
basée sur le modèle MVC.
Vue d'ensemble des Composants :
20
− Utilitaires : Offrent des fonctions auxiliaires, comme la manipulation des dates,
utilisées à travers l'application.
Le journal indique que l'application a démarré avec succès sur une machine de développement
locale et que le serveur Tomcat démarre avec succès sur le port 8080.
Mais malheureusement quand on essaye d’accéder à notre ‘http://localhost:8080/’ , on
constate l’erreur suivant :
Nous avons essayé pendant 5 jours de résoudre ce problème ( en regardant plusieurs vidéos
YouTube et en lisant des articles et en appliquant leurs conseils) mais sans succès.
Sachant que tous est bien configuré.
21