Évaluation blanche juin 2023 _Rappel_ : * rendez de préférence votre documentation en markdown **sur le wiki** (ou un pdf contenant l'intégralité des schémas, diagrammes, descriptions aussi bien pour la SAÉ que pour les 2 ressources), * ne rendez qu’une seule solution faites de plusieurs projets et ressources pour vos programmes * une évaluation blanche n'est qu'indicative : elle ne comptera pas dans la moyenne. Le soin apporté aux corrections n'est pas le même que pour l'évaluation finale et les notes blanches ne sont qu'un aperçu de votre travail à un instant t. * Critères d’évaluation pour chaque note : (Note : le barème n’est pas définitif et très susceptible d’évoluer ; il n’est donné qu’à titre indicatif) # SAÉ2.01 : Développement d'une application *Le sujet est choisi par le binôme mais doit être validé par l'enseignant.* ## Documents sur la préparation de l'application et l'IHM : */20* ### Documentation à rendre en fin de 2ème semaine de TP (le 02 avril 2023 -> 09 avril 2023): * description du contexte [sur 3 points] >** => /3** * personas [sur 2 points] >** => /2** * user stories [sur 3 points] >** => /3** * sketchs [sur 4 points] >** => /4** * storyboards [sur 3 points] >** => /3** * diagramme de cas d’utilisation [sur 5 points] >**Forme (/2,5) : => /5** ## Persistance et ajouts personnels à l'application : *2,5/40* ### Documentation à rendre à la fin de la 9ème semaine de TP (le 04 juin 2023) : * diagramme de paquetage mettant en avant la partie persistance [sur 2 points] >**1ere fleche partant sur IPersistanceManager pas claire, il manque des classes comme DataToPers > mettre plus en évidence la partie persistance, rajouter la multiplicité noms > des attributs et quelques méthodes, diagramme de classe loin d'être complet => 0,5/2** * diagramme de classes mettant en avant la partie persistance [sur 4 points] >**Il manque la description du diagramme => -2 => 0,5/4** > * diagramme de classes sur votre (vos) partie(s) ajoutée(s) [sur 4 points] ### Programmation à rendre à la fin du projet : * persistance (XML, JSON, BDD, WebService…) [sur 3 points] >**OK pour méthode XML => 1,5/3** * autre ajout personnel [sur 3 points] **fonctionnement de l’application** * compilation [sur 3 points] >**Pas testée => /3** * exécution [sur 5 points] >**Pas testée => /5** * déploiement [sur 2 points] * aboutissement du projet [sur 4 points] ### Vidéo à rendre à la fin du projet : * vidéo de 1 à 3 minute(s) du projet [sur 10 points] # R2.02 : Développement d'applications avec IHM ## Documents : *2/20* ### Documentation à rendre à la fin de la 9ème semaine de TP (le 04 juin 2023): * diagramme de paquetage [sur 2 points] >**pas assez complet => 1/2** * diagramme de classes [sur 8 points] >**Il n'y a pas de description (-4). 1ere fleche partant sur IPersistanceManager pas claire, il manque des classes comme DataToPers > mettre plus en évidence la partie persistance, rajouter la multiplicité noms > des attributs et quelques méthodes, diagramme de classe loin d'être complet ** >- indiquez la multiplicité (par défaut 1) >- nommez les propriétés sur les relations, >- préférez les relations sous forme de liens plutôt que de les nommer dans les classes. **=>2,5/8** * diagramme de séquence (sur quelques cas particuliers) [sur 2 points] >**OK pour le cas présenté => 1/2** * description écrite de l’architecture (dont patrons de conception, dépendances…) [sur 8 points] >**pas trouvée => 0/8** * Note : chaque diagramme doit être accompagné de notes et d’une description écrite. ## Programmation : *23,5/40* ### XAML [sur 7 points] : 5,5/7 * répartition dans l’espace (layout des vues et usercontrols) [sur 2 points] >**OK => 2/2** * utilisation des controls (vues et usercontrols) [sur 1 point] >**Seulement une ContentView dans CategoryView.xaml => 0,5/1** * ressources, styles [sur 2 points] >**OK => 2/2** * DataTemplate (locaux et globaux) [sur 2 points] >**OK pour l'écriture de ```DataTemplate``` -> SwitchAccountPage.xaml. Essayez d'en utiliser un en global (dans les ressources). => 1/2** ### C# [sur 20 points] : 14/20 * bases (classes, structures, instances, …) [sur 3 points] >**OK => 3/3** * abstraction (héritage, interfaces, polymorphisme) [sur 4 points] >**OK => 3/4** * collections simples (tableaux, listes…) [sur 3 points] >**Aucune collection ```readonly```, utile pour les protocoles d'égalité. => 2/3** * collections avancées (dictionnaires, sets) [sur 3 points] >**On verra à la fin... => 0/3** * encapsulation [sur 5 points] >**Très bien pour les propriétés et les sous-dossiers => 5/5** * LINQ [sur 1 point] >**Pas vu => 0/1** * évènements (cf. module IHM) [sur 1 point] >**OK pour ```PropertyChanged```. => 1/1** ### boucle Model <-> View (dont Binding) [sur 13 points] : 4,5/13 * gestion d’évènements sur la vue [sur 2 points] >**À peu près que de l'abonnement sur des clics de boutons, mais c'est déjà bien => 2/2** * gestion d’évènements depuis le métier (notifications) [sur 2 points] >**en attente => 0/2** * DataBinding (sur le Master) [sur 2 points] >**OK => 2/2** * DataBinding (sur le Detail) [sur 2 points] >**Pas encore bien géré, 2 Comptes clients semblable => 0,5/2** * DataBinding sur les ContentView + Bindable Property [sur 2 points] >**Pas vu => 0/2** * **gestion du Master-Detail** [sur 3 points] # R2.03 : Qualité de développement : *7/24* ### Tests [sur 10 points] : 0/10 * tests fonctionnels [sur 5 points] >**Pas vu => 0/5** * tests unitaires [sur 5 points] >**Pas vu => 0/5** * gestion automatique des tests (cf. plus bas) * bonus : tests unitaires d'interfaces ### Documentation [sur 4 points] : 1/4 * qualité de la documentation du code [sur 2 points] >**Effacer commentaires de code inutilisé => 1/2** * génération de la documentation doxygen [sur 2 points] >**à faire => 0/2** * génération automatique de la documentation (cf. plus bas) ### Gestion de projet [sur 10 points] : 6/10 * utilisation simple de git (git clone, commit, add, push, pull) [sur 3 points] >**OK => 3/3** * utilisation avancée (git merge, branch, conflits) [bonus sur 2 points] >**Il faut fusionner plus souvent les branches sinon, vous aurez plus de conflits. => 1/2** * utilisation de tickets et Merge Requests à travers la plateforme git (code first) [sur 3 points] >**OK => 2/3** * mise en place de l'intégration continue (CI) pour la gestion automatique des tests et la génération de la documentation [sur 2 points] >**A faire => 0/2** # Plan et découpage ![Plan](https://codefirst.iut.uca.fr/documentation/mchSamples_.NET/docusaurus/dotNet_CSharp_MAUI/assets/images/Organisation2023-c0bb92c29a1b20025b12a7acb1f0873b.png) * (**SAÉ2.01**) Vous réaliserez d'abord la documentation permettant de préparer les interfaces homme machine de votre application et en conséquence, l'appplication elle-même avec des documents compréhensibles par le client (_en jaune_) : * Contexte de l'application * _Personas_ et _user stories_ * Sketchs et _storyboards_ * Diagramme de cas d'utilisation à l'aide de cette documentation, vous pourrez : * (**R2.02**) préparer les vues de votre application en XAML (_en bleu_) * (**R2.02**) préparer la conception du modèle de votre application (_en jaune_) * Diagramme de paquetage * Diagramme de classes * Diagramme de séquence * Description de l'architecture * (**R2.02**) coder les classes de votre modèle en parallèle de cette conception pour une meilleure compréhension de l'ensemble, en C# (_en rouge_) * (**R2.02**) lorsque les vues de l'application seront réalisées en XAML, et que le modèle sera développé en C#, vous pourrez les relier (_View <-> Model_) à l'aide de la liaison de données (_Data Binding_) (_en violet_) * (**SAÉ2.01**) une fois le modèle terminé, vous pourrez améliorer votre application en développant la persistance ainsi qu'en ajoutant des parties personnelles : * les diagrammes de conception pour la persistance et vos ajouts personnels (_en jaune_) * le développement de ces parties en C# (_en rouge_) * (**SAÉ2.01**) à la fin du développement de votre application, vous fournirez : * un installeur (_setup_) (_deployment en vert_), * ainsi qu'une vidéo de présentation de votre application (_en orange_) * (**R2.03**) tout au long de votre projet : * vous utiliserez *git* et un environnement intégré (*gitlab* ou *code#0*), pour vous permettre de gérer l'historique de votre code et de travailler en équipe (_en gris_), * vous documenterez votre code C# en fournissant une documentation html auto-générée avec doxygen (_en orange_) * vous écrirez des tests fonctionnels et unitaires de votre code du modèle, de la peristance et de vos ajouts personnels (_en vert_) * vous permettrez l'automatisation des tests unitaires via *gitlab* ou *code#0* en découvrant l'intégration continue (_CI automation en vert foncé_) En suivant ce plan et nos conseils, vous terminerez avec un très bon niveau de développement en fin de première année. _Happy coding!_