Correction du devoir de Cours sur UML
Ce devoir porte sur la modélisation UML et teste les compétences en compréhension des concepts fondamentaux d'UML, la capacité à interpréter et créer différents types de diagrammes, ainsi que la maîtrise des notions de modélisation statique et dynamique. 1) Le concept a) Qu'est-ce qu'un modèle ? Donnez un exemple hors UML et expliquez l'intérêt de modéliser un problème.
D'après le document Correction du devoir de Cours sur UML
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
UML, Modélisation, Diagrammes · PDF · 6 pages
Afficher l'aperçu du document
Ce devoir porte sur la modélisation UML et teste les compétences en compréhension des concepts fondamentaux d'UML, la capacité à interpréter et créer différents types de diagrammes, ainsi que la maîtrise des notions de modélisation statique et dynamique.
1) Le concept
a) Qu'est-ce qu'un modèle ? Donnez un exemple hors UML et expliquez l'intérêt de modéliser un problème.
Un modèle est une représentation abstraite d’un système, qui facilite l’étude et la communication entre les intervenants d’un projet. L’abstraction consiste à ne retenir que les caractéristiques essentielles d'une entité, selon le point de vue de l’observateur.
Par exemple, un modèle économique utilise des hypothèses macro-économiques (comme l’évolution du chômage ou le taux de croissance) pour simuler l’évolution des cours boursiers. Ce type de modélisation permet d’analyser et de prévoir des comportements complexes en simplifiant la réalité.
Réponse : Un modèle est une abstraction facilitant l’étude et la communication, comme un modèle économique qui simule l’évolution des marchés financiers.
b) Quelle est la différence entre une vue statique et une vue dynamique ?
Une vue statique représente la structure du modèle sans prendre en compte son évolution dans le temps (par exemple, la disposition des classes ou des objets). En revanche, une vue dynamique illustre les changements et interactions qui se produisent au cours du temps.
Réponse : La vue statique montre la structure fixe, tandis que la vue dynamique montre l’évolution et les interactions dans le temps.
2) Les cas d'utilisation
a) Que cherche-t-on à modéliser avec un diagramme de cas d'utilisation ?
Le diagramme de cas d'utilisation exprime le comportement du système, c’est-à-dire les actions et réactions, du point de vue de l’utilisateur.
Réponse : Il modélise le comportement du système selon la perspective de l’utilisateur.
b) Quel est l'intérêt de ce diagramme ?
- Délimiter les frontières du système.
- Exprimer les besoins du système.
- Permettre aux utilisateurs finaux d’exprimer leurs attentes.
- Impliquer les utilisateurs dès les premières phases du développement.
- Constituer une base pour les tests fonctionnels.
Réponse : Ce diagramme sert à définir le périmètre, recueillir les besoins, impliquer les utilisateurs et préparer les tests.
c) Donnez un exemple de diagramme de cas d'utilisation intégrant un include, un extend et un commentaire, puis expliquez-le en 2-3 phrases.
Exemple : Un cas d’utilisation « Authentification » est inclus dans un autre cas d’utilisation pour garantir la sécurité du client distant. Un extend pourrait représenter une fonctionnalité optionnelle comme la récupération de mot de passe. Un commentaire précise que l’authentification permet de s’assurer de l’identité du client.
Explication : Le schéma montre qu’une authentification est toujours nécessaire (include) pour accéder au système, tandis que des fonctionnalités supplémentaires (extend) peuvent être ajoutées selon les besoins. Le commentaire clarifie l’objectif de l’authentification.
Réponse : Le diagramme illustre l’inclusion obligatoire de l’authentification, une extension optionnelle, et un commentaire explicatif sur la sécurité.
3) Nom du diagramme et explication
Il s'agit d'un piège : ce n’est pas un diagramme de collaboration, mais une modélisation d’une collaboration dans un diagramme de classes. Ce diagramme montre quelles classes participent à un cas d’utilisation, ici « vente de véhicule » avec trois classes impliquées.
Réponse : Le diagramme représente la collaboration entre classes pour un cas d’utilisation, pas un diagramme de collaboration.
4) Diagramme de classe
a) Représentez les classes avec le maximum de détails.
Les classes principales sont : Hotel, Chambre, Personne, Lit, Television, SalleBain, Single, Duo, Baldaquin, Futon, Clients, Gestionnaire, Materiel.
Chaque classe possède des attributs et méthodes. Par exemple :
Hotel: nom, adresse, motPasseGerant, méthodes commereserve(int numCh): bool,getIdentifiant(),paye().Chambre: étage, prix, méthodereserve(string nom),estVide().Personne: âge, nom, prénom, méthodevieillit().
Les classes Single et Duo héritent de Chambre. Single possède une ou plusieurs Télévisions, Duo possède une Salle de Bain. Toutes les chambres ont un Lit, qui peut être un Baldaquin ou un Futon.
b) Ajoutez les classes suivantes en gras : Single, Duo, Télévision, SalleBain, Lit, Baldaquin, Futon.
Single est lié à une ou plusieurs Télévisions (association 1..*), Duo est lié à une Salle de Bain (association 1). Lit est une classe générale avec deux sous-classes : Baldaquin et Futon.
c) Faites figurer une agrégation et une composition, en expliquant votre choix.
Une composition est une relation forte où la vie de la partie dépend du tout. Par exemple, une chambre contient un lit : si la chambre est détruite, le lit l’est aussi. C’est donc une composition entre Chambre et Lit.
Une agrégation est une relation plus faible. Par exemple, une chambre Single possède une ou plusieurs Télévisions, mais la télévision peut exister indépendamment de la chambre. C’est une agrégation entre Single et Télévision.
Réponse : Composition entre Chambre et Lit (vie liée), agrégation entre Single et Télévision (vie indépendante).
d) Représentez la phrase : une personne est soit un client de l'hôtel, soit le gérant.
On modélise cela par une relation d’héritage ou une association exclusive entre Personne, Client et Gérant, avec une contrainte d’exclusivité (ou-exclusif) indiquant qu’une personne ne peut être que l’un ou l’autre.
Réponse : Personne est associée de manière exclusive à Client ou Gérant.
e) Utilisez la notion de package pour séparer les classes en trois groupes distincts.
Par exemple :
- Package Gestionnaire : classes liées à la gestion (Gestionnaire, Gérant).
- Package Hotel : classes liées à l’hôtel (Hotel, Chambre, Single, Duo, Clients).
- Package Materiel : classes matérielles (Lit, Baldaquin, Futon, Télévision, SalleBain).
Réponse : Trois packages distincts pour organiser les classes selon leur rôle fonctionnel.
5) Diagramme d’objet
a) À partir du diagramme de classes précédent, réalisez un diagramme d’objet représentant :
- L’hôtel « matignon » dont le gérant est M. Formul Alain.
- L’hôtel possède 50 chambres.
- Une chambre est louée à M. Lelore.
On crée un objet matignon : Hotel avec un attribut gerant : Personne nommé « Formul Alain ». On indique aussi un objet client : Personne nommé « Lelore » occupant une chambre.
Réponse : Diagramme d’objet montrant matignon : Hotel avec son gérant et un client occupant une chambre.
6) Diagramme de séquence
a) Donnez un exemple illustrant les notions d’acteur, objet, ligne de vie, bande d’activation, envoi de message, réponse, création dynamique et suppression d’un objet.
Exemple : Un utilisateur (acteur) envoie un message à un objet système. La ligne de vie de l’objet est représentée verticalement, avec une bande d’activation indiquant la période d’exécution. Le système peut créer dynamiquement un nouvel objet en réponse, puis le supprimer à la fin.
Réponse : Exemple illustrant toutes les notions clés du diagramme de séquence, avec interaction entre acteur et objets, création et suppression.
b) Donnez un exemple réel présentant un branchement conditionnel.
Exemple : Distributeur et Banque interagissent. L’utilisateur insère une carte (insereCarte()), saisit un code (saisiCode()). Si le code est correct, il saisit un montant (saisiMontant()), effectue un retrait (retrait()), reçoit l’argent (delivreArgent()) et la carte est éjectée (ejectCarte()).
Réponse : Exemple réel montrant un branchement conditionnel selon la validité du code.
7) Diagramme de collaboration
a) Expliquez la signification des messages suivants :
[heure = midi] 1 : manger(): Le messagemanger()est envoyé uniquement si l’heure est midi.1 / *|| 2.1 : fermer(): Le messagefermer()est envoyé une fois que le message 1 est terminé, puis envoyé en parallèle (||) à un nombre inconnu (*) de récepteurs.1.3,2.1 / [t < 10s] 2.5 : age := demanderAge(nom,prenom): Ce message est envoyé après la fin des messages 1.3 et 2.1, uniquement si le temps t est inférieur à 10 secondes. La fonctiondemanderAgeprend deux paramètres et renvoie une valeur dans la variableage.1.3 / [disk full] 1.7.a * : deleteTempFiles()et1.3 / [disk full] 1.7.b : reduceSwapFile(20%): Ces deux messages sont envoyés simultanément après le message 1.3, uniquement si la condition « disque plein » est vraie.
Explication du schéma : L’objet pa87 en état « détresse » envoie un message répété un nombre inconnu de fois à la tour de contrôle. Ce message est synchrone, ce qui signifie que l’émetteur attend la réponse de la tour avant de continuer, illustrant un dialogue d’appel et confirmation.
Réponse : Les messages conditionnels, parallèles et synchrones sont expliqués, montrant leur rôle dans la coordination des objets.
8) Diagramme d’états-transitions
a) Imaginez un système modélisable par un diagramme d’état-transition avec au moins 3 états et des événements déclencheurs.
Exemple : Un système de lampe avec les états « Éteint », « Allumé », « En veille ». Les événements peuvent être « appuyer sur interrupteur » (allume ou éteint la lampe), « minuterie expirée » (passe en veille), etc.
Réponse : Un diagramme avec au moins trois états et événements déclencheurs illustrant les transitions.
b) Quels sont les mots-clés UML pour déclencher une action dans un état ?
entry / action: action exécutée à l'entrée de l'état.exit / action: action exécutée à la sortie de l'état.on événement / action: action exécutée chaque fois que l'événement survient.do / action: action récurrente ou continue exécutée dans l'état.
Réponse : Les mots-clés sont entry, exit, on événement, et do.
c) Comment représenter qu’un objet est dans deux états en même temps ? Représentez l’état d’un ordinateur qui, en cliquant sur Firefox, est dans l’état « marche » et simultanément dans « écoute le réseau » et « affiche page accueil ».
On utilise la notion d’états orthogonaux (états parallèles) en UML, où un état composite contient plusieurs sous-états actifs simultanément.
Réponse : L’ordinateur est dans un état composite « marche » avec deux sous-états actifs en parallèle : « écoute le réseau » et « affiche page accueil ».
9) Diagramme de composant
Ce diagramme décrit l’architecture physique et statique d’une application en termes de modules tels que fichiers sources, librairies, exécutables, etc. Il montre la mise en œuvre physique des modèles logiques dans l’environnement de développement.
Par exemple, pour créer l’exécutable « bancDeMesuresTask », on a besoin de trois objets. Pour créer l’objet « BancDeMesures.obj », on a besoin du fichier « BancDeMesures.cpp », qui lui-même dépend de trois fichiers : « BancDeMesures.h », « Bobine.h » et « Multimetre.h ».
Réponse : Le diagramme illustre la dépendance entre fichiers sources et objets pour la construction d’un exécutable.
10) Diagramme de déploiement
Ce diagramme montre la disposition physique des matériels composant le système et la répartition des composants logiciels sur ces matériels.
- Les ressources matérielles sont représentées par des nœuds.
- Les diagrammes peuvent montrer des instances précises de nœuds (matériel spécifique) ou des classes de nœuds.
Réponse : Le diagramme de déploiement représente la configuration physique des matériels et la distribution des composants logiciels.
Méthode
Ce devoir valorise la rigueur dans la compréhension des concepts UML et la capacité à appliquer les notations exactes selon les conventions données. Il récompense la clarté des explications et la précision dans la modélisation, notamment dans la distinction entre vues statiques et dynamiques, ainsi que dans l’utilisation correcte des relations (composition, agrégation, héritage).
Les erreurs fréquentes sanctionnées sont :
- Confusion entre types de diagrammes (exemple : confondre diagramme de collaboration et modélisation de collaboration dans un diagramme de classes).
- Omissions dans les relations ou attributs essentiels.
- Manque de justification dans les choix de modélisation.
- Non-respect des notations UML spécifiques, notamment pour les états, messages synchrones ou conditions.
Il est essentiel de toujours expliciter les étapes de raisonnement, de justifier les choix et de respecter les définitions données dans le cours pour obtenir une bonne note.
Commentaires
Aucun commentaire pour le moment. Posez la première question.