ntro.ca

        • Contrats de classe
        • Liens utiles
        • Calendrier
        • Calendrier groupe 3
        • Calendrier groupes 1, 2
        • Structure du cours
        • Évaluations
        • Matériel à se procurer
        • Les profs
          • Marc-Olivier Tremblay
          • Mathieu Bergeron
        • Module 1.1: installation + trier des cartes
        • Module 1.2: rappels POO
          • URL dépôt Git à remettre
        • Module 1.3: tableau d'objets
        • Examen 1
        • Validation des ateliers
        • Module 2.1: données JSON
        • Module 2.2: données en Java
        • Module 2.3: récursivité
        • Examen 2
        • Validation des ateliers
        • Module 3.1: structure générique
        • Module 3.2: efficacité (1)
        • Module 3.3: efficacité (2)
        • Examen 3
        • Validation des ateliers
        • Module 4.1: liste naïve
        • Module 4.2: liste par tableau
        • Module 4.3: liste chaînée
        • Examen 4
        • Validation des ateliers
        • Module 5.1: mappage naïf
        • Module 5.2: mappage par hachage
        • Module 5.3: mappage par arbre
        • Examen 5
        • Validation des ateliers
        • Travail de rattrapage
        • Projets vedettes
          • Contrat gr1
          • Contrat gr2
          • Contrat gr3
        • Survol
        • Structure
        • Calendrier semaines
          • Calendrier gr1
          • Calendrier gr2
          • Calendrier gr3
        • Utilisation IA
        • Évaluations
        • Exemples de pages
        • Exemples de jeu
        • Jeux choisis
        • Réponses à vos questions
        • Module 1: créer le projet
        • Module 2: concevoir l'application
        • Module 3: vues NtroFx
        • Module 4: modèle et navigation
        • Module 5: ajouter le dorsal, modifier le modèle
        • Module 6: améliorer l'affichage
        • Module 7: jeu en 2d
        • Module 8: client/serveur
        • Module 9: plusieurs instances du même modèle
        • Guide de style 4F5
        • TP1
        • Examen 1
        • TP2
        • Examen 2
        • Projet de fin de session
        • Calendrier
        • Évaluations
        • Structure du cours
        • Contrat de classe
        • Le prof
        • 01: Windows et Word
          • Astuces et raccourcis
        • 02: Word
          • Exercice Word: insertion d'éléments spéciaux
          • Exercice Word: tableaux
        • 03: Word
          • Exercice Word: références
          • TP01: Word (15%)
        • 04: Word
        • 05: PowerPoint
          • TP02: PowerPoint (10%)
        • 06: Examen Word (20%)
        • 07: Excel
        • 08: Excel
        • 09: Excel
          • TP03: Excel (15%)
        • 10: Excel
        • 11: Examen Excel (20%)
        • 12: Access
        • 13: Access
        • 14: Access
        • 15: Examen Access
      • Sondage H2023 (dept. info)
      • Vision H2023 (dept. info)
      • P1) exercices interactifs de lecture
      • P2) transition Excel vers Python
        • Atelier 2: un exemple
      • Index
      • Point de vue sur l'IA
    Tutoriel 8: analyse
    • Tutoriel 8: analyse
      • Comparer le comportement de dep07 et dep06
      • Comparer les graphes de tâches de dep07 et dep08
      • Comparer les fichiers dep07 et dep08
        • Nouveaux fichiers dans dep08
          • ClientDepart
          • ServeurDepart
        • Fichiers différents
          • ModeleA
          • AppDepart

    Tutoriel 8: analyse #

    Comparer le comportement de dep07 et dep06 #

    dep06, VueA

    dep08, VueB

    $ sh gradlew dep06

    $ sh gradlew dep08Serveur
    $ sh gradlew dep08Client
    $ sh gradlew dep08Client
    
    • Une application qui observe le modèle
    • Un serveur et deux clients qui observent le même modèle

    Comparer les graphes de tâches de dep07 et dep08 #

    Frontal

    dep07/_storage/graphs/frontend.png

    dep08/_storage/graphs/frontend.png

    • C’est le même graphe de tâches.

    • Pas besoin de changer les tâches pour exécuter en mode client/serveur

    Dorsal

    dep07

    dep07/_storage/graphs/backend.png

    dep07

    dep08/_storage/graphs/backend.png

    • C’est le même graphe de tâche

    • Pas besoin de changer le graphe de tâches pour exécuter en mode client/serveur

    Comparer les fichiers dep07 et dep08 #

    • Comparer les répertoires dep07/src et dep08/src avec VSCode:

    Nouveaux fichiers dans dep08 #

    ClientDepart

    • Le main a exécuter quand on veut lancer un Client

    ServeurDepart

    • Le main a exécuter quand on veut lancer un Serveur

    DeclarationsDepart

    • Classe où placer les déclarations communes au Frontal et Dorsal

      • registrar.registerModel(...)
      • registrar.registerValue(...)
      • registrar.registerMessage(...)
    • Le but est de réutiliser ce code dans

      • AppDepart (application locale)
      • ClientDepart (lancer un client)
      • ServeurDepart (démarrer le serveur)

    ClientDepart #

    • Attention à la signature et au main

    ServeurDepart #

    • Attention à la signature et au main

    Fichiers différents #

    ModeleA #

    • On retire le WatchJson

    • Le serveur est maintenant responsable d’observer le modèle,

      • (on veut pas observer directement le fichier .json)

    AppDepart #

    • On utilise DeclarationsDepart pour les déclarations

    • Ça nous permet de ne pas dupliquer le code

    Creative Commons License Creative Commons Attribution Creative Commons ShareAlike
    • Tutoriel 8: analyse
      • Comparer le comportement de dep07 et dep06
      • Comparer les graphes de tâches de dep07 et dep08
      • Comparer les fichiers dep07 et dep08
        • Nouveaux fichiers dans dep08
          • ClientDepart
          • ServeurDepart
        • Fichiers différents
          • ModeleA
          • AppDepart