CSC 4102 – Introduction au génie logiciel pour applications orientées objet

Portail informatique

Séances 10 (nouvelle version) — TP : Continuation et fin du développement

la fin de la séance 10 est particulière. Vous fusionnez la branche develop dans la branche main avant de poser l'étiquette livraison dans la branche main pour déclarer la fin du développement avant le vendredi 12 avril, au plus tard à 23h55 (pénalités en cas de dépassement de l'échéance).   Une fois que vous avez fusionné sur la branche main, vous restez sur la branche main. Donc, faites attention à ne pas continuer à travailler sur la branche develop après la fusion.

Continuation du développement de l'application

dans cette section, nous présentons les éléments pour la seconde partie du module. Vous êtes en autonomie et devez lisser votre charge de travail sur les dernières séances. En termes de priorité, les remarques faites lors des suivis sont prioritaires.

Vous devez compléter votre logiciel pour qu'il possède toutes les fonctionnalités présentées dans le cahier des charges (cf. la section « Complétude du logiciel » du cahier des charges). Hormis la notification avec le patron de conception Publier/Souscrire, tout le logiciel peut être développé : pour la partie notification, si vous n'avez pas inséré le patron de conception Publier/Souscrire, utilisez un affichage à la console pour indiquer qu'un acteur est notifié.

Nous conseillons de commencer l'étude de ces éléments une fois les cas d'utilisation («  »), («  »), et («  ») programmés et testés sans le mécanisme des notifications.

Comme vous avez gagné en autonomie, nous vous laissons organiser votre travail en présentiel et en hors présentiel tout au long des dernières séances. Bien sûr, n'hésitez pas à discuter de vos tâches et de votre solution avec vos responsables de groupe.

Lors des travaux à venir, des modifications peuvent impacter la modélisation existante : diagramme de cas d'utilisation, pré-/post-conditions, tables de décision des tests de validation, diagramme de classes, diagrammes de séquence, etc.

Pour les nouveaux cas d'utilisation, nous vous laissons décider ce que vous modélisez, la seule obligation étant de fournir les nouveaux élements suivants :

  • précondition et postcondition de («  ») ;
  • tables de décision des tests de validation de («  ») ;
  • programmation du cas d'utilisation («  ») ;
  • programmation des tests de validation du cas d'utilisation («  »).

Nous rappelons que la liste des artefacts attendus pour l'évaluation du développement est présentée dans la page dédiée « Liste récapitulative des tâches ».

Mise à disposition du travail effectué dans le dépôt Git de GitLabEns pour la livraison

Fin des travaux

Nous rappelons que la liste complète des artefacts attendus est ici.

En guise de derniers conseils, voici une liste de petites tâches à parcourir avant la livraison. N'oubliez pas de :

  • nettoyer votre fichier readme.md pour retirer les éléments inutiles ;
  • vérifier que toutes les images .svg et .png sont générées et ajoutées dans le dépôt ;
  • vérifier que vous n'avez pas d'erreur de compilation ;
  • vérifier que vous n'avez pas d'avertissement (« warning ) de compilation ;
  • exécuter SpotBugs sur votre code ;
  • exécuter Checkstyle sur votre code ;
  • vérifier que vos tests (unitaires et de validation) passent (un test qui ne passe pas peut être annoté @Disabled("message explication")) ;
  • et enfin, vérifier que tout votre contenu, toutes les classes par exemple, sont dans votre dépôt Git sur GitLabEns : pour ce faire, clonez votre dépôt dans un nouveau répertoire pour vérifier la présence de tous les éléments de spécification et de modélisation ainsi que la construction de votre logiciel (avec mvn clean install).

Livraison

Nous sommes à la fin du développement. C'est le moment de livrer votre application au client.

vous livrez au client un noyau fonctionnel de l'application. Le code ainsi que le document de spécification et de modélisation doivent être de bonne qualité rédactionnelle. Plus particulièrement, le document readme.md doit être finalisé : suppression de tous les éléments obsolètes, retrait des mentions « ... à compléter », pagination (par exemple, les préconditions et postconditions ainsi que les tables de décision des tests doivent être lisibles).

Le client vous a laissé travailler dans la branche develop et s'apprête à évaluer votre travail dans la branche main. Voici la procédure que nous proposons :

  • positionnement sur la branche main,
  • fusion avec l'option « --no-ff » de la branche develop,
  • au besoin, résolution des conflits avec validation dans un instantané (« git mergetool --tool=meld » puis « git commit -m "fusion de la branche develop dans main" »),
  • poussée des modifications de la branche main du dépôt local sur la branche main du dépôt GitLabEns,
  • ajout de l'étiquette livraison à la branche main lorsque vous livrez effectivement au plus tard le vendredi 12 avril à 23h55 ;
    • lister les étiquettes avec la commande git tag -l ;
    • ajouter une étiquette avec la commande git tag -a étiquette -m "message" ;
    • supprimer une étiquette avec la commande git tag -d étiquette ;
  • poussée de l'étiquette sur le dépôt GitLab (option --tags dans la commande git push origin main --tags).

Voici la séquence à adapter à votre projet :

$ cd ~/CSC4102/csc4102-projet $ git branch # nous sommes dans la branche develop main * develop $ git checkout main Votre branche est à jour avec 'origin/main'. $ git branch * main develop $ git merge --no-ff develop -m "fusion branche develop" Suppression de ... Fusion automatique de ... ... Merge made by the 'recursive' strategy. ... # possibles conflits à résoudre avec git mergetool --tool=meld puis git commit $ git push origin main Décompte des objets: 1, fait. Écriture des objets: 100% (1/1), 229 bytes | 0 bytes/s, fait. Total 1 (delta 0), reused 0 (delta 0) To gitlabens.imtbs-tsp.eu:.../csc4102-projet.git a7b0a47..3bf4557 main -> main # # la suite est à faire lors de la livraison effective, c'est-à-dire au plus tard le vendredi 12 avril, avant 23h55 # $ git tag -a livraison -m "livraison du logiciel" $ git push origin main --tags # option --tags pour pousser l'étiquette Décompte des objets: 1, fait. Écriture des objets: 100% (1/1), 173 bytes | 0 bytes/s, fait. Total 1 (delta 0), reused 0 (delta 0) To gitlabens.imtbs-tsp.eu:../csc4102-projet * [new tag] livraison -> livraison

Une fois que vous avez fusionné sur la branche main, vous restez sur la branche main. Donc, faites attention à ne pas continuer à travailler sur la branche develop après la fusion.

Avant de quitter le TP, veuillez s'il vous plaît remplir dans la page Partage de votre groupe le tableau d'avancement de votre binôme-projet :