User Tools

Site Tools


2013_2014:s2:td:td_classes-code-associations

This is an old revision of the document!


Des modèles aux classes : focus sur les associations

Code et associations "simples"

Voici un diagramme UML en conception.

Les objectifs de ces TDs sont de bien positionner la modélisation en UML de niveau conception relativement au codage !

Des codes vous sont donnés pour vous aider à comprendre et à ne pas perdre de temps. L'objectif n'est pas de vous apprendre à écrire des boucles ou des algorithmes, mais davantage de bien architecturer vos applications.

Association orientée : Multiplicité 1

Donner la copie d'écran + le VPP si besoin

  1. Mettez en oeuvre la relation entre Cours et Professeur, i.e. implémenter la méthode setResponsable et getResponsable.Voir les codes
  2. Ecrivez des tests !! et Tester votre programme.voir le code
  3. A présent nous voulons pouvoir gérer des cours dont le professeur n'a pas été désigné. Modifiez le modèle (sur papier ou sur machine) 1) le nouveau modèle
  4. Modifiez vos codes en conséquence. Les codes
  5. Ecrivez des tests !! et Tester votre programmeles tests

Association orientée : Multiplicité 0..*

  1. Mettez en oeuvre la relation entre Cours et Vacataires, i.e. implémenter la méthode addVacataire(), removeVacataire().Codes : utilisez les, si vous voulez manipuler des listes en java, sinon gérez simplement des tableaux.
  2. Si dans l'étape précédente vous avez modifié votre modèle, re-générez le ou du moins dessinez les modifications.modèle partiel
  3. Ecrivez des tests et Tester votre programmePour tester votre programme
Gestion de listes simple en java

Regardez dans les codes qui vous sont donnés. Vous ne les avez pas encore vu en cours.

Associations complexes

Association bi-directionnelle

  1. Décider de la classe responsable : on ajoute des cours à étudiant ou bien on ajoute un étudiant à un cours 2)
  2. Placer les méthodes dans le modèle avec leur visibilité. On doit pouvoir connaître pour un cours la liste des étudiants qui le suit, et pour un étudiant la liste des cours suivis. On doit pouvoir ajouter un étudiant à un cours ou bien ajouter un cours à un étudiant en fonction de votre choix de responsabilité. voir modèle
  3. Programmez Voir codes.
  4. Testez Voir tests.

Composition

  1. Quel constructeur pour la classe Cours? 3)
  2. Si vraiment un TD ne peut pas être construit en dehors d'un cours que suggérez-vous? 4)voir code voir tests
  3. Quelle gestion de la méthode coursAssociée définie dans la classe TD? Même chose pour un DS. Suggestion? 5)

Classe d'association

  1. Que signifie ce modèle ?
  2. Générer les codes
  3. Il manque les méthodes et la navigation.
    • On veut pouvoir ajouter une description à un module
    • On ne veut pas savoir de quels modules un enseignant est responsable.
    • On veut connaitre quel est l'enseignant responsable d'un module en fonction d'une année.

Fabriques et Propriétés statiques

Dans notre système on a besoin de :

  1. créer des cours
  2. Retrouver un cours à partir de son intitulé
  3. Enregistrer de nouveaux enseignants avec leur nom.
  4. Modifier l'enseignant responsable d'un cours
  5. Savoir si un étudiant a un professeur en cours.
  1. Modifier le modèle de votre application pour intégrer ces nouvelles fonctionnalités
  2. Modifier vos codes
  1. Comment connaître les cours dont un professeur est responsable? Il existe plusieurs solutions. Vous pouvez modifier le modèle. (par exemple dans Cours on a une méthode statique.. ou bien on ajoute une autre classe).
  2. Ecrivez des tests !! et Tester votre programme.
Hasmap et chaines de caractères et fonctions d'accès..

Compositions

Un enseignement est soit un cours soit un parcours. Un parcours est une aggrégation d'enseignements.

  1. Est-ce qu'un parcours peut faire référence à d'autre parcours?
  2. Est-ce qu'un cours peut faire référence à un parcours
  3. Implémentez?
1)
modifier la multiplicité ! Mais pensez aussi à gérer le 0 dans le constructeur et ajouter les méthodes pour vérifier qu'il y a ou non un responsable
2)
c'est mon choix dans la correction
3)
construire le TD et le Cours associé automatiquement
4)
dans la correction, nous utilisons Protected… on aurait aussi pu avantageusement penser à une classe interne
5)
comme précédemment, on a une relation inverse
2013_2014/s2/td/td_classes-code-associations.1396736168.txt.gz · Last modified: 2014/04/06 00:16 by blay