Chantal Taconet et Christian Bac IO2 Télécom INT 20 Novembre 2006
Corrigé Barème Groupe des Écoles des Télécommunications Télécom INT École d ingénieurs 2 ème année Contrôle de connaissances : Bureau d Études Module IO2 : Introduction à la programmation Objet avec UML et JAVA Date : 20 Novembre 2006 Coordonnateurs : Chantal Taconet et Christian Bac Durée : H30mn Notes : les seuls documents autorisés sont ceux distribués en cours et ceux mis à disposition sur le site Web ; le travail doit se faire individuellement ; n oubliez pas d indiquer votre nom sur chaque feuille rendue ; soyez concis et précis, et justifiez vos réponses par des commentaires appropriés ; soyez rigoureux dans la syntaxe UML. Sujet L équipage d un avion est toujours constitué d un pilote, d un copilote et de plusieurs personnels naviguants et commerciaux (PNC). Chacune de ces personnes est identifiée par son nom et sa fonction. L équipage d un avion est reconstitué pour chacun de ses vols. Chaque membre d équipage doit être opérationnel sur deux types d avions (par exemple le PNC Richard est opérationnel sur Airbus A320, et Boeing 747). Chaque type d avion a un nombre de PNC dans son équipage oscillant entre un minimum et un maximum (par exemple, les PNC des Airbus A320 doivent être entre six et huit et ceux d un B747 entre 2 et 6). Voici ci-dessous un extrait du tableau de service de quelques employés de la compagnie AIR FRANCE : VOL Dest Date Type Site Nom Fonction AF347 Londres /0/06 A320 Orly Corinne Pilote AF347 Londres /0/06 A320 Orly Amy Copilote AF347 Londres /0/06 A320 Orly Maureen PNC AF347 Londres /0/06 A320 Orly Richard PNC AF347 Londres /0/06 A320 Orly Ben PNC AF545 New-York 2/0/06 B747 Roissy Jacques Pilote AF545 New-York 2/0/06 B747 Roissy Jean-Louis Copilote AF545 New-York 2/0/06 B747 Roissy Ségolène PNC AF545 New-York 2/0/06 B747 Roissy François PNC AF545 New-York 2/0/06 B747 Roissy Nicolas PNC Figure Extrait du tableau de service des vols AF347 et AF545 L objectif du système à modéliser est de constituer des tableaux de service. Les membres de l équipage peuvent visualiser les vols dans lesquels ils ont été affectés. L administrateur du système peut créer et supprimer des entités dans le système. Le manager peut ajouter et supprimer des personnes dans un équipage pour un vol donné (un vol est désigné par un numéro de vol et une date), les données du vol sont archivées après le vol pour une année. 2 2 Questions Question : 2pt Après avoir réalisé une analyse du texte au brouillon, ce qui vous a permis de trouver les noms et les verbes correspondant à ce problème, choisir les classes qui vous semblent devoir faire partie. Pour simplifier, le tableau n en représente que quelques-uns. 2. Pour des raisons de temps de contrôle limité, nous négligerons la complexité du système qui réside principalement à tenir à jour la localisation des équipages et à décompter leurs temps de vols et leurs temps de repos. Télécom INT Chantal Taconet et Christian Bac 20 Novembre 2006 IO2 2
de la modélisation de ce problème. Décrire textuellement ces classes et les attributs associés à chaque classe (donner le nom des classes, le nom des attributs et des explications textuelles uniquement quand cela vous semble nécessaire). Les classes et -attributs- obtenus après analyse du texte sont les suivants : Equipage -- La classe équipage regroupe l ensemble des personnes (pilote, copilote et PNC) qui participent à un vol (à une date donnée). Avion -- Un avion a un type donné, il participe à plusieurs vols. Pilote -- Une personne qui a pour métier pilote. Copilote -- Une personne qui a pour métier copilote. PNC -- Une personne qui a pour métier PNC. Personne -nom, prénom- TypeAvion -nom, nbpncmin,nbpncmax- Un membre d équipage ne peut voler que sur deux types d avion. Plusieurs avions peuvent être du même type, d où la nécessité de créer une classe TypeAvion. Vol -numéro, aéroportdépart, aéroportdestination, date- Un vol est une classe d association entre un avion et un ensemble de membres d équipage. Un vol a lieu a une date donnée. Confondre acteur du cas d utilisation avec classe du système (administrateur et manager se retrouvent en classes). Oublier de mettre le type d avion comme classe du système. En effet, comment alors préciser qu un membre d équipage peut voler sur deux types d avion ou comment vérifier qu une instance d avion n est pas affectée sur deux vols simultanément. Variantes possibles : La classe équipage peut être omise. Le diagramme de classes devra être modifié en conséquence. Barème de correction sur 2 points : 0.5 classe Vol 0.5 3 attributs de la classe Vol 0.5 classe Avion 0.5 classe TypeAvion Question 2 : 3pt d utilisation. Décrire les acteurs et les opérations significatives du système par un diagramme de cas La figure suivante présente les acteurs et cas d utilisation du système. ajouter membre équipage supprimer un membre d équipage créer vol supprimer vol créer un type d avion Administrateur Système supprimer un type d avion créer un avion supprimer un avion affecter un membre d équipage à un vol Manager retirer un membre d équipage à un vol afficher les données d un vol afficher mes vols MembreDÉquipage Ne pas détailler les entités à créer et supprimer. Ne pas respecter les notations du diagramme de cas d utilisation. Télécom INT Chantal Taconet et Christian Bac 20 Novembre 2006 IO2 3
Oublier un acteur. Variantes possibles : Considérer l héritage entre acteurs. Barème de correction sur 3 points : 0.5 trouver 3 acteurs (0 si seulement deux acteurs) 0.5 affecter les cas d utilisation aux bons acteurs 0.5 cas d utilisation pour ajout et suppression d entités dans le système (pas bon si on ne peut pas créer d avion ou de vol, pas bon si entité non détaillé) 0.5 cas d utilisation affecter un membre d équipage à un vol 0.5 cas d utilisation visualiser mes vols 0.5 respect des notations UML (il faut les 4 : bonhomme, trait, système et oval) Question 3 : 5pt Construire un diagramme de classes qui représente le système. Dans ce diagramme prenez soin des noms des associations, des multiplicités et des sens de navigation des associations. Vous spécifierez par le formalisme UML les éventuels héritages et agrégations. La figure suivante présente le diagramme de classes proposé. Système Avion TypeAvion assuré par peut voler sur 2 Personne Vol assuré par Équipage Pilote PNC Copilote a pour co pilote a pour PNC a pour pilote Boeing et Airbus ne peuvent pas être des classes, en effet il faudrait alors changer le modèle UML à chaque fois qu un nouveau type d avion sort sur le marché. Appeler Equipage la classe MembreEquipage (appelée Personne sur le schéma) c est une erreur de français, mais qui peut porter conséquence : on oubliera alors la multiplicité. Administrateur et Manager ne sont pas des classes. Oublier d avoir une classe d accès aux différents éléments du système (classe Système sur le corrigé). Barème de correction sur 5 points : 0.5 nom des associations (3 minimum) multiplicité (2 oublis tolérés).0 héritage (présence d un héritage et notation correcte) 0.5 agrégation 0.5 classe d accès au système regroupant les différentes entités 0.5 association multiplicité 2 Avion-Equipage 0.5 association Personne-TypeAvion (ou vers Avion pour ceux qui ont mélangé Type et Avion) Télécom INT Chantal Taconet et Christian Bac 20 Novembre 2006 IO2 4
0.5 association Avion-Vol Question 4 : 3pt Construire le diagramme de transition d états de la classe qui permet de décrire un groupe d entrées du tableau de service correspondant à un vol et un jour. La figure suivante présente le diagramme de transition d états de la classe Vol. EnCréation entry / constructeur() ÉquipageEn construction ajouter Membre supprimer Membre [tailleéquipe<nbmin] [tailleéquipe>=nbmin] Équipage PeutVoler ajouter Membre supprimer Membre EnDestruction entry / détruire() temps d archive > an Archive entry / archiver() vol terminé retirer membre d équipage vol terminé Équipage AuComplet [tailleequipe=nbmax] Avoir un état qui ne peut jamais aller vers l état final. Se tromper de classe. Ne pas faire apparaître d état Archivé. Ne pas faire apparaître les actions (qui découlent pourtant du diagramme de cas d utilisation) On peut ajouter un PNC mais pas en supprimer. Barème de correction sur 3 points : 0.5 etat initial et final flêche de passage d un état à un autre cohérentes 0.5 événements de passage d un état à un autre 0.5 état archivé 0.5 ajout et suppression de membres d équipage Question 5 : 3pt Nous sommes dans la phase de conception. On s intéresse à la classe qui permet de décrire un groupe d entrées du tableau de service correspondant à un vol et un jour. Traduire par des attributs les associations de cette classe (vous ferez figurer le nom des attributs, le type de ces attributs ainsi que la visibilité de ces attributs). - avion : @Avion - equipage : @Equipage pas fait non conforme au diagramme de classes oubli de la collection pour traduire la multiplicité Variantes possibles : - avion : @Avion - equipage : collection @MembreEquipage Barème de correction sur 3 points : 0.5 visibilité privé 0.5 @ pour référence sur attribut d association vers avion attribut d association vers équipage (ou 3 associations si pas héritage) Question 6 : 4pt Donner le diagramme de collaboration ou de séquence qui correspond au cas d utilisation : affecter un PNC à un vol. Durant la séquence (ou la collaboration), n oubliez pas de vérifier Télécom INT Chantal Taconet et Christian Bac 20 Novembre 2006 IO2 5
que : l équipage n est pas complet, le PNC est en capacité d effectuer un vol sur ce type d avion. Dans le cas contraire, le PNC ne pourra pas être affecté à ce vol. La figure suivante présente le diagramme de collaboration associé au cas d utilisation affecter un PNC à un vol. affecterpncvol(pnc,vol) :Avion :Système.. max=getnbmaxpnc() ta:typeavion 3: pv=peutvolersur(ta).max=getnbmaxpnc() 2.ta=getTypeAvion() : b=equipageaucomplet() 2 : [!b] ta=gettypeavion() 4 : [pv] ajouterequipage(pnc) pnc:personne vol:vol.2:nb=getnbpnc() 4.:ajouterÉquipage(pnc) :Équipage sur les diagrammes de collaboration : erreur dans la numérotation des opérations, oubli de classes participant à la collaboration, la vérification que l équipage est au complet tient parfois plus de la magie que à l informatique. Variantes possibles : présenter le diagramme de séquences. Barème de correction sur 4 points : 0.5 symbolisation des objets participants (souligné) 0.5 présence des objets nécessaires au fonctionnement de la séquence ou collaboration (pour le corrigé Système, Equipage, Vol, Avion, TypeAvion, PNC) pour les copies tous les objets concernés (un oubli toléré) 0.5 rectangle durée de vie des opérations (séquence) ou numéro de séquence (collaboration) interactions pour connaître la taille max équipage et taille actuelle (au moins 3 interactions) 0.5 interactions pour vérifier que le PNC peut voler sur le type d avion 0.5 interaction pour ajouter le PNC à l équipage 0.5 tentative pour faire apparaître des paramètres sur les appels d opérations Télécom INT Chantal Taconet et Christian Bac 20 Novembre 2006 IO2 6