Evaluation blanche

Added by Anaïs Durand almost 2 years ago

Date : 14/06/2021

Objets 2 : Conception et Programmation Orientées Objets (C#, .NET)

Documents : 15/20

  • diagramme de paquetage 2/2
  • diagramme de classes 4/8
  • diagramme de séquence (sur quelques cas particuliers) 3/2
  • description écrite de l’architecture (dont patrons de conception, dépendances…) 7/8

Programmation : 18.5/20

  • bases (classes, structures, instances, …) 2/2

Votre code est parfois trop "java-like". En particulier, vous n'utilisez pas toujours les propriétés. Cela va vous poser problème pour le binding.
Beaucoup de this.Propriete où le this est inutile. Le nom des variables est sensible à la casse.

Grosse amélioration.
Sinon, vous semblez bien maîtriser la création de classes, enum ...

  • abstraction (héritage, interfaces, polymorphisme) 3/3

Plusieurs héritages, une interface, une classe abstraite, du polymorphisme avec une collection d'objets de la classe mère. TB

  • collections simples (tableaux, listes…) 2/2

Très bonne utilisation des listes. Vous avez pensé à définir les méthodes equals et getHashCode. Et vous utilisez même LINQ. TB

  • collections avancées (dictionnaires) 2/2

Même chose

  • encapsulation 5/5

Bon début avec des setters privés. Vous pouvez aller plus loin en jouant sur les visibilités des méthodes mais aussi avec des champs readonly et des ReadOnlyCollection.
Nombreuses ReadOnlyCollection et ReadOnlyDictionary, méthodes privées, ...

  • tests (fonctionnels et/ou unitaires) 3/4

TB début de tests unitaires. Vous pouvez aller plus loin en faisant la même chose pour vos autres classes. N'oubliez pas de tester également la partie persistance.
Pour améliorer encore vos tests, n'hésitez pas à les découper en plus petits morceaux pour pouvoir identifier encore plus rapidement le problème si l'un des tests échoue.

  • LINQ 1.5/1

Beaucoup d'utilisations de LINQ dans des contextes variés (agrégation, filtrage, tri). Ca mérite même un bonus.

  • évènements 0/1

Rien pour l'instant.

IHM : Interface Homme-Machine (XAML, WPF)

Documents : 18.5/20

  • description du contexte 3/4
  • sketchs 3.5/4
  • storyboards 4/4
  • diagramme de cas d’utilisation 5/5
  • considérations ergonomiques 2/2
  • prise en compte de l’accessibilité 1/1

Programmation : 12.5/20

  • répartition dans l’espace (layout des vues et usercontrols) 1/2

Bonne utilisation des différents layouts. Peut-être réfléchir à utiliser un layout de collection pour UC_Profil_Vue, UCMarathon (ListBox ...) ...
Pourquoi un ajout "à la main" en code-behind des différents éléments dans UCMarathon, plutôt d'un binding sur un layout de collection ?
Attention à ce que les différents écrans soient bien responsive. En particulier sur la création de marathon, le texte est parfois coupé lorsque la fenêtre est trop petite.

  • utilisation des controls (vues et usercontrols) 1/1

TB

  • ressources, styles 2/2
    Nombreux styles locaux ou globaux. Des convertisseurs en ressources globales. TB
  • DataTemplate (locaux et globaux) 1/2

Rien pour l'instant. Vous en aurez surement l'utilité lorsque vous aurez mis en place du databinding sur vos collections.
Plusieurs DataTemplate locaux dont certains sont des UC.
Dans UC_Profil_Vues, vous semblez utilisez plusieurs fois le même DataTemplate. Il serait peut-être intéressant de le transformer en DataTemplate global, ou a minima de le définir comme ressource du UC.

  • gestion d’évènements sur la vue 2/2

Bonne gestion des évènements de click/sélection ... pour la navigation.

  • gestion d’évènements depuis le métier (notifications) 0/2

Rien pour l'instant. Pas de notification en cas de modification d'une liste ...

  • DataBinding (sur le Master) 1/2

Pb de binding sur les images et sur les numéros de jours dans le détail d'un marathon.

  • DataBinding (sur le Detail) 0.5/2

Pbs de binding sur le détail des films (image, acteurs ...)

  • DataBinding sur les UserControl + Dependency Property 2/2

Plusieurs dependency property, bonne gestion du binding dans les UC.

  • gestion du Master-Detail 2/3

Semble bien fonctionner, mais pas d'option d'ajout/modification de film de prévu et/ou d'option pour modifier le marathon si un des films proposé ne nous plait pas ?

Projet Tuteuré S2

Documents : 7/20

  • diagramme de paquetage mettant en avant la partie persistance 1.5/2
  • diagramme de classes mettant en avant la partie persistance 2.5/4
  • diagramme de classes sur votre (vos) partie(s) ajoutée(s) 3/4
  • vidéo de 1 à 3 minute(s) du projet /10

Programmation : 13.5/20

  • persistance (XML, JSON, BDD, WebService…) 3/3

Stub + persistance en fichier XML via DataContract. Utilisation d'une classe intermédiaire (DataToPersist) et du patron stratégie. La persistance semble bien fonctionner.

  • autre ajout personnel 1.5/3

La génération aléatoire du marathon est intéressante, mais elle donne envie d'avoir plus de fonctionnalités comme par exemple de pouvoir supprimer un des films proposé pour qu'il soit remplacé par un autre si le choix aléatoire ne nous convient pas.

  • documentation du code 1.5/2

TB début. Poursuivez votre effort pour que toutes vos classes/méthodes/propriétés soient bien documentées.

  • utilisation du repository subversion 2/2

Bonne utilisation du svn. Vous commitez régulièrement et pensez bien à mettre un message de commit.
Pour aller plus loin, n'hésitez pas à commiter encore plus souvent. Vous pouvez également préciser vos messages de commit. Par exemple, lorsque vous dites "modification du fichier truc.cs", expliquez brièvement ce qui a été modifié. Cela vous permettra de savoir plus précisément ce que votre binôme a fait, mais aussi de retrouver plus facilement la révision à laquelle vous voulez aller si jamais vous avez besoin de revenir en arrière après avoir détecter un problème.

Beaucoup d'amélioration ces dernières semaines. Vous utilisez même les tags, c'est très bien.

  • compilation 3/3

TB

  • exécution 2.5/5

La navigation semble plutôt fonctionnelle. Encore des soucis de binding.

  • déploiement /2

Comments