Un curieux besoin de modélisation
La classe UIRepertoire crée trois menus déroulants : Fichier, Organisation et Aide. Les fonctionnalités sont les éléments de chacun de ces trois menus. Mis à part le nom de ces fonctionnalités, le code de cette classe ne permet pas de connaître le service réalisé par chacune de ces fonctionnalités.La classe UIPersonne est l’interface graphique associée à une personne. Elle crée deux boutons de soumission : Save et Cancel. Comme pour les menus déroulants, seul le nom des boutons peut nous renseigner sur la fonctionnalité associée.Pour une personne, il n’y a pas de classe nommée associée à la gestion de l’inter- face. Il faut regarder, dans le code de la classe UIPersonne, le code associé à la classe anonyme assurant la gestion de l’interface. Nous constatons alors que les fonction- nalités Save et Cancel sont réalisées.8. Si vous aviez à rédiger un document décrivant tout ce que vous savez sur cette applica- tion afin qu’il puisse être lu par un développeur qui veut réutiliser cette application et un chef de projet qui souhaite savoir s’il peut intégrer cette application, quelles devraient être les caractéristiques de votre document ?L’application MyAssistant permet de gérer des répertoires. Un répertoire contient des informations relatives à des personnes. Pour chaque personne, il est possible de stocker un nom, un prénom, un numéro de téléphone du domicile, un numéro de téléphone du travail, un numéro de téléphone de portable, un numéro de fax, un titre, une société, une adresse et une adresse e-mail.
Rechercher une personne (menu Organisation/Rechercher Personne). Cette fonc- tionnalité permet de rechercher la totalité des informations sur une personne en n’en saisissant qu’une partie (nom, numéro de téléphone, une partie du nom, etc.). Il faudrait avoir le cahier des charges ou un code complet pour savoir exactement à partir de quoi la recherche peut être faite.• Sauvegarder les informations saisies pour une personne (bouton Save de l’inter- face graphique associée à une personne). Attention : pour ajouter effectivement une personne à un répertoire, il faut enregistrer le répertoire. Se contenter de sauvegarder les informations relatives à la personne n’est pas suffisant.14. Définissez la classe UML représentant un cours, caractérisé par un identifiant, un nom, le nombre d’heures de cours magistral, le nombre d’heures de travaux dirigés et un nombre d’heures de travaux pratiques que doit suivre un étudiant. enseignant l’ensemble des cours qu’il gère (un enseignant pouvant ne gérer aucun cours). La relation Dispenser permet d’associer à un cours l’ensemble des enseignants qui y participent (nous parlons alors des intervenants d’un cours), cet ensemble ne devant pas être vide. Cette relation permet aussi d’associer à un enseignant l’ensemble des cours qu’il dispense, ensemble qui lui non plus ne peut être vide.
Nous ne nous sommes pas intéressés à la navigabilité des associations. Cependant, même si les associations ne sont pas navigables, des liens peuvent être créés entre objets instances des classes. Dans ce cas, les objets seront liés mais n’auront pas connaissance des liens. Il ne sera, par exemple, pas possible de passer par un cours pour accéder à son responsable. La façon dont les choses seront réellement réalisées dépend de la plate-forme d’exécution utilisée.Il n’est pas possible d’utiliser une association groupe de la classe Etudiant vers elle- même. Cette association permettrait de relier des étudiants entre eux mais ne permettrait pas d’identifier les différents groupes. Il est donc nécessaire d’avoir une représentation nous permettant d’identifier les groupes.Nous ajoutons donc une classe Groupe, que nous associons à la classe Etudiant. L’association entre les deux classes se nomme Groupement. Nous considérons qu’un étudiant peut appartenir à plusieurs groupes, voire aucun, qu’un groupe contient au moins deux membres mais n’a pas de limite supérieure sur le nombre de ses membres. L’association est graphiquement représentée à la figure 6.