# Description du diagramme de classe en mettant en avant la partie persistance
Concernant la persistance de l'application, elle est gérée par la classe XML_Serializer, cette dernière est instancier en paramètre du constructeur de Manager au lancement de l'application. Elle comporte deux constructeurs un qui ne prend aucun paramètre sauvegardant les informations dans le dossier courrant de l'application et l'autre prenant en paramètre un chemin permettant de choisir où stocker les informations (Dans le cas de notre application les fichier son stocker dans le 'AppDataDirectory'). Au lancement de l'application le constructeur de la classe XML_Serializer est donc lancé et il va, si un fichiers .xml n'est pas présent ( il y a un fichier .xml par classe sauf la classe ObjetOhara), le créers à l'aide du StubManager et les méthodes SetPersonnage, SetBateau, etc...Sinon il ne fait rien car les fichiers sont déjà tous présent. Le manager va donc pouvoir ensuite utliser les différentes méthodes get du XML_Serializer pour récupérer les objets et les mettres dans ses collections (Fruits,Personnages,...). Enfin concernant la sauvegarde des informations, dès qu'un objet est modifié, créée ou supprimé à l'aide des méthodes du Manager, il va simplement rappeler la méthode Set de l'objet concerné ce qui est assez lourd mais fonctionnel
Concernant la persistance de l'application, elle est gérée par la classe XML_Serializer, cette dernière est instanciée en paramètre du constructeur de Manager au lancement de l'application. Elle comporte deux constructeurs un qui ne prend aucun paramètre sauvegardant les informations dans le dossier courrant de l'application et l'autre prenant en paramètre un chemin permettant de choisir où stocker les informations (Dans le cas de notre application les fichier son stocker dans le 'AppDataDirectory'). Au lancement de l'application le constructeur de la classe XML_Serializer est donc lancé et il va, si un fichiers .xml n'est pas présent ( il y a un fichier .xml par classe sauf la classe ObjetOhara), le créer à l'aide du StubManager et les méthodes SetPersonnage, SetBateau, etc...Sinon il ne fait rien car les fichiers sont déjà tous présent. Le manager va donc pouvoir ensuite utliser les différentes méthodes get du XML_Serializer pour récupérer les objets et les mettres dans ses collections (Fruits,Personnages,...). Enfin concernant la sauvegarde des informations, dès qu'un objet est modifié, créé ou supprimé à l'aide des méthodes du Manager, il va simplement rappeler la méthode Set de l'objet concerné ce qui est assez lourd mais fonctionnel.
# Diagramme de classes sur nos parties ajoutées
@ -491,7 +491,7 @@ Notre application possède la fonctionnalité d'ajouter un objet à nos favoris,
Le diagramme de paquetage regroupe nos 4 solutions, le Model, le TestProject, le TestUnitaire et Ohara(vue).
A l'intérieur du Model nous avons regroupé tous les fichiersdans différents dossier pour pouvoir améliorer la visibilité de notre projet et pour ne pas se perdre dans les fichiers. On peut retrouver les dossier suivants :
A l'intérieur du Model nous avons regroupé tous les fichiersdans différents dossier pour pouvoir améliorer la visibilité de notre projet et pour ne pas se perdre dans les fichiers. On peut retrouver les dossiers suivants :
-Classes : Ici retrouve toutes les classes de notre application,
-Stub : Ici on retrouve tout ce qui est lié au Stub de notre application,
@ -514,6 +514,7 @@ Dans le dossier Styles on retrouve les Styles de notre application.
Nous avans déjà décrit avec précisions le fonctionnement de la persistance
dans notre application dans la partie "Description du diagramme de classe en mettant en avant la partie persistance". Pour faire le lien avec le diagramme de paquetage, la partie persistance est principalement assurée par le dosser "Serializer" même si le processus implique les dossiers Managers et Stub l'un pour récupérer les données à sauvegarder (Manager) et l'autre pour récupérer les données si les fichiers n'existent pas (Stub).
# Diagramme de séquence
## Serialization
@ -574,7 +575,7 @@ Serializer -> Files: Sauvegarde de l'information dans le fichier .xml
```
## Description du diagramme de séquence de "Mettre un objet en favoris"
Pour approfondir, ce diagramme de séquence, lorsque un utilisatuer ajoute un objet en favoris, la méthode ModifierFav correspondant à l'objet modifie son attribut EstFavori pour le passer en true, ensuite lorsque un utilisateur souhaite afficher ses favoris, la vue fait un appel à la méthode GetFavoris du Manager qui renvoie une liste contenant tout les objets de chaque collection ayant EstFavori en true.
Pour approfondir, ce diagramme de séquence, lorsque un utilisatuer ajoute un objet en favoris, la méthode ModifierFav correspondant à l'objet modifie son attribut EstFavori pour le passer en true, ensuite lorsque un utilisateur souhaite afficher ses favoris, la vue fait un appel à la méthode GetFavoris du Manager qui renvoie une liste contenant tout les objets de chaque collection ayant EstFavori en true.
## Créer un objet
@ -604,16 +605,16 @@ Serializer -> Files: Sauvegarde du nouvel objet dans le fichier .xml
## Description du diagramme de séquence de "Créer un objet"
Pour approfondir ce diagrammme, lorsqu'un utilisateur clique sur le bouton pour ajouter un objet, une page modal s'ouvre avec un formulaire permettant de définir les paramètres de l'obet ainsi que un bouton pour annuler et un autre pour confirmer qui fait appel à la méthode Add(Type de l'objet) du manager qui va ajouter l'objet à la collection qui lui corréspond et faire un appel à la méthode Set(Type de l'objet) du serializer pour sauvergarder le nouvel objet.
Pour approfondir ce diagrammme, lorsqu'un utilisateur clique sur le bouton pour ajouter un objet, une page modal s'ouvre avec un formulaire permettant de définir les propriétés de l'objet ainsi que un bouton pour annuler et un autre pour confirmer qui fait appel à la méthode Add(Type de l'objet) du manager qui va ajouter l'objet à la collection qui lui correspond et faire un appel à la méthode Set(Type de l'objet) du serializer pour sauvergarder le nouvel objet.
# Diagramme d'architecture


# Description du diagramme d'architecture
Nous avons donc notre application principale Ohara sous la solution ".sln" sous .NET 7 avec MAUI. A cela est relié la documentation réalisée grâce à Doxygen. Nous avons ensuite la serialization faites avec XML_serializer, nos crééons des fichiers ".xml" pour chaque classe de notre application (par exemple personnages.xml). Si jamais ce fichier existe déjà, il est écrasé par la méthode "set". Nous avons ensuite Drone et Sonar qui sont reliés à la CI et la CD de notre application et qui permettent de réaliser correctement la déploiement de notre application de part la détection d'erreurs, de duplication de code, etc...