Conception & Mod elisation de l'applet VALPO d'illustration de protocoles gsm

 
CONTINUER À LIRE
Conception & Modélisation de l’applet
 VALPO d’illustration de protocoles
               gsm

                                     Télécom Bretagne

                                     Projet INVOCOM

                        Département Réseaux, Sécurité, Multimédia

                                     Avril-Juillet 2004

Rédacteurs :
                                                               Télécom Bretagne
Xavier Lagrange
                                                               2 rue de la Chataigneraie -CS 17607
Jean-Pierre Le Narzul
                                                               35576 Cesson-Sévigné Cedex France
Alexis Koalla
TABLE DES MATIÈRES                                   Document de Conception

Table des matières
1 Introduction                                                                                                                           3

2 Nomenclature des classes                                                                                                               4
  2.1 Nomenclature des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                               4

3 Organisation du code source                                                                                                            5
  3.1 Vue générale . . . . . . . . . . . . . .   . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
  3.2 Zoom sur les différents packages . . .      . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
      3.2.1 Le package applet . . . . . . .        . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   6
      3.2.2 Le package general . . . . . .         . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   6
  3.3 Le package gui[control,model,dialog et       pane]     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
  3.4 Description des classes . . . . . . . .      . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7

4 Conception                                                                                                                             11
  4.1 Le modèle MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                               11
  4.2 Exemple de modèle MVC tiré du code . . . . . . . . . . . . . . . . . . . . . .                                                   12

5 Conclusion                                                                                                                             13

A Annexes                                                                                                                                14
  A.1 Description des algorithmes principaux de                      l’illustrateur                  de       protocoles
      GSM/UMTS . . . . . . . . . . . . . . . . . . .                 . . . . . . . .                 . .     . . . . . . .               14
      A.1.1 Algorithme de lecture du fichier scénario               . . . . . . . .                 . .     . . . . . . .               14
      A.1.2 Algorithme d’affichage . . . . . . . . . .               . . . . . . . .                 . .     . . . . . . .               15
      A.1.3 Algorithme de controle . . . . . . . . . .               . . . . . . . .                 . .     . . . . . . .               15
      A.1.4 La barre de défilement . . . . . . . . . .              . . . . . . . .                 . .     . . . . . . .               16
  A.2 Description des classes par ordre alphabétique .              . . . . . . . .                 . .     . . . . . . .               16

ENST- Bretagne                        1                              Projet INVOCOM
TABLE DES FIGURES                                                      Figures

Table des figures
  3.1   Vue des packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  4.1   Le modèle MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  4.2   Exemple de modèle MVC tiré du code . . . . . . . . . . . . . . . . . . . . . . .     12

ENST- Bretagne                        2                    Projet INVOCOM
Introduction

1    Introduction
     Le Projet INVOCOM vise à concevoir et à développer des enseignements à distance à
travers Internet. Le présent document décrit la conception et la modélisation des applets
développés dans le cadre de ce projet. Les applets réalisés s’appuient sur du code existant
écrit dans le cadre des activités du département RSM.

   La conception a consisté en la mise en place d’une structure du code source grâce à une
technique de conception orientée objet. Cette structure qui n’existait pas dans la version
antérieure du logiciel. Nous avons utilisé le modèle MVC(Model View Controller) afin de
permettre une meilleure lisibilité du code, et une meilleure extensibilité et de facilité la
maintenance du logiciel. La description de ce modèle est donnée dans la section4.

   La modélisation a consisté en l’identification d’une part des classes, de leurs méthodes et
de leurs attributs et d’autre part des relations qui les lient. Le planning ne nous permettant
pas de faire une modélisation complète, nous nous sommes limités à la génération des
diagrammes de classes.

    Ce présent document se structure comme suit : la section 2 décrit toutes les classes
développées : nomenclature et rôles
La section 3 décrit l’organisation du code, notamment les différents packages des codes
sources.
La section 4 décrit brièvement la conception et la modélisation.

ENST- Bretagne                        3                    Projet INVOCOM
Description des classes

2      Nomenclature des classes
    Ce paragraphe décrit les différentes classes codées.

2.1     Nomenclature des classes
   Les noms des classes sont choisis de manière à évoquer leurs rôles.
Par exemple :
    1. la plupart des classes qui héritent de la classe JPanel se termine par Pane et sont situées
       dans le package gui.pane.
    2. la plupart des classes qui implémentent un contrôleur se termine par Controller et sont
       situées dans le package gui.control
    Les paragraphes suivants donnent une vue de chaque package, et un petit descriptif des
classes qu’il contient. Les classes non décrites dans le paragraphe ne font pas partie du package ;
ils appartiennent à un autre package. une description par ordre alphabétique de toutes les
classes est donnée en annexe A.

ENST- Bretagne                           4                    Projet INVOCOM
Organisation du code

3     Organisation du code source
3.1    Vue générale
   Comme tout projet Java, les classes du projet ont été organisées en packages. Chaque
package contient un certain nombre de classes qui ont en général soit des rôles similaires soit
des relations de dépendances directes. Des vues de ces packages ont réalisées dans le but de
simplifier la lisibilité des diagrammes. La figure 3.1 donne une vue globale des packages.

                                                      implements                                       implements
                                                                                                                                                                                  Language
                                                                                                 JMenuBar    ProtocolController
                              JFrame               JApplet                 ActionListener
                                                                                                                                         1
                                                                                                                                                      SimuPopMenu
                                                                                                                                   1
                                                                                                                             PopUpListener                       1
                                                                                                  ScenarioMenu
                          ProtocolFrame           ProtocolIllustrator
                                                                                                                                                             1
                                                               1                                                   1                          PopUpMenuController
                                                                                                                 MenuController

                                                                                        1
                                                                                                                                             ScenarioDisplayerModel
                                                                        ProtocolGUIController
                             HelpFrame        ScenarioFrame
           PDUFrame                                                                               1
                                                                    1             1      1 1                           DocumentationController

                          ScenarioImageViewer
                                                                                                                                   1
                                                                                       PDUFRameController                                 ScenarioDisplayerController
                                                                                   1
                                    JDialog                                                                                                      1
            Used by all                                                                                                                                 1               ScenarioScrollerController
                                                                                                  possède
                                                     Link
         ProtocolConstants
                                                                                            2                                          ScenarioPane
                                                                                         Node
                                                                                                                                                                                    1
                                ProtocolDialog         *                                                              *
                                                                                                                   Message

                                                                                            2
                                                                   possède
                                                                                                                 Documentation
                                                                                                                                         ScenarioDisplayer        ScenarioScrollerPane
             AboutApplet                         QuitApplet                      ScenarioFileChooser
                                                                                                                              NodeIcon
                                                                                                                                                                               1 1

                                                                    Fig. 3.1 – Vue des packages

3.2    Zoom sur les différents packages
   Ce paragraphe décrit le contenu de chaque package du projet. Les classes en fond jaune
ou blanc ne font pas partie du contenu du package.Elles sont rajoutées pour une meilleure
compréhension de la hiérarchie des classes du package. Dans un souci de lisibilité des dia-
grammes certaines relations entre certaines classes ne sont pas représentées. La Javadoc du
projet peut etre utiliséé en complément de ces diagrammes pour avoir des détails plus précis.

ENST- Bretagne                                                                   5                                                Projet INVOCOM
3.2 Zoom sur les différents packages                      Organisation du code

3.2.1   Le package applet
   Ce package contient 4 classes qui héritent toutes de la classe JApplet. Toute nouvelle
applet devra etre rajoutée dans ce package.

   ProtocolIllustrator Elle hérite de la classe JApplet et permet d’illustrer les scénarii
de protocoles gsm. Récupère les paramètres contenus dans la page html et crée l’interface
graphique avec ces valeurs. C’est le point d’entrée de la simulation

3.2.2   Le package general
   Ce package contient toutes les classes qui sont utilisées (relation de clientèle ou d’héritage)
par toutes les autres classes.
Par exemple la classe Language est utilisée par toutes les classes qui manipule des chaines de
caractères.
Language Permet d’internationaliser les chaines de caractères utilisées dans l’applet. Deux
langues sont actuellement implémentées : français et anglais

   ProtocolConstants Regroupe les constantes utilisées dans l’applet. Toutes les valeurs
sont public final et static

ENST- Bretagne                          6                     Projet INVOCOM
3.3 Le package gui[control,model,dialog et pane]         Organisation du code

3.3    Le package gui[control,model,dialog et pane]
   Le package gui contient toutes les classes relatives à l’interface graphique. Il contient en
outre des sous-packages divisés en modèle, vue et contrôle.

 Le package gui.control contient toutes les classes qui jouent le role de contrôleur : gestion de
     l’affichage et mise à jour des éléments graphiques visualisés par l’utilisateur.

 Le package gui.model contient toutes les classes qui implémentent un modèle : modèle
     intrinsèque d’une fonctionnalité du logiciel.

 Le package gui.dialog contient toutes les classes qui gèrent une boite de dialogue : pour
     guider l’utilisateur dans les actions qu’il exécute.

 Le package gui.pane contient toutes les classes qui étendent JPanel et permettent d’organiser
     les éléments graphiques sur l’écran.

3.4    Description des classes
   Le paragraphe suivant décrit le role de chaque classe.

   AboutApplet Cette classe affiche des informations à propos de l’applet et du projet
INVOCOM.

    ButtonController Permet de controler l’aspect des boutons suivant les actions de
l’utilisateur

   Buttons Encapsule les boutons qui permettent à l’utilisateur d’inter-agir avec l’illustra-
teur de protocoles.

   Documentation Permet d’afficher des informations concernant le scénario qui s’exécute.
Utilisé dans la version debug

   DocumentationController Controle de l’affichage de la documentation sur l’interface

   HelpFrame Permet d’afficher une aide rapide concernant l’interface graphique.

   Language Permet d’internationaliser l’applet. Deux langues sont actuellement
implémentées : français et anglais

   Link Désigne un lien au sens réseau. Un lien est formé de deux entités appelées nœuds :
source et destination. Cette classe est utilisées lors de la création des nœuds pour mémoriser

ENST- Bretagne                         7                     Projet INVOCOM
3.4 Description des classes                               Organisation du code

loes liens entre les différents nœuds.

    MenuController Permet de controler les éléments de la barre dee menu. Activation et
désactivation des boutons.

   Message Implémente le format des messages échangés. Les caractéristiques des messages
sont celles décrites dans le document du format des fichiers scénario.

   MessagePauseDialog Permet d’afficher uner message de pause dans un scénario. La
pause interrompt momentanément l’exécution de l’applet.

   Node Implémente un nœud. Les caractéristiques d’un noeud sont : le numéro du noeud,
son nom, l’image qui lui est associée, l’ensemble des messages que le nœud émet,les voisins
qui sont les nœud avec lesquels il ya un lien.

    NodeIcon Cette classe héritent de la classe ScenarioPane et permet de représenter les
nœuds du scénario. On dessine les images associées aux nœuds et on y inscrit leur nom et le
titre du scénario.

   PDUFrame Permet d’afficher les PDU échangés entre les différents nœuds.

   PDUFrameController controle l’affichage des PDU dans la fenetre désignée à cet effet.

    PopMenuController Permet de controler l’affichage du pop up menu : Activation et
désactivation des items.

   PopUpListener Ecouteur sur le pop up menu. Permet de traiter les actions de l’utilisa-
teur.

   ProtocolConstants Regroupe les constantes utilisées dans l’applet. Toutes les valeurs
sont public final et static

   ProtocolController Classe abstraite permettant de créer des controleurs personnali-
sables.

   ProtocolDialog Classe générique permet de créer une boite de dialogue personnalisable.

   ProtocolFrame Classe générique(abstraite) permettant de créer une fenètre personnali-
sable.

    ProtocolGUIController Permet de controler toutes les composantes de l’interface.
Elle crée les différents controleurs et délègue l’appel de certaines de certaines méthodes aux
controleurs adapté. Maintient la cohérence entre ce que l’utilisateur voit et l’exécution interne
de l’application. C’est le cœur du controle de l’applet.

ENST- Bretagne                            8                  Projet INVOCOM
3.4 Description des classes                               Organisation du code

    ProtocolIllustrator C’est l’applet d’illustration. Lit les paramètres d’entrée et crée
l’interface d’affichage du scénario.

      QuitApplet Permet de quitter l’applet proprement.

    RunningActions Interface permettant de regrouper toutes les actions conscernant
l’applet : arret,lancement,suspension,rejouer,etc.

    ScenarioDisplayController permet de controler l’affichage du scénario et de maintenir
la cohérence entre le modèle et la vue.

    ScenarioDisplayer Permet d’implémnter l’interface d’illustration du scénario. Affiche
les nœuds et les messages échangés.

    ScenarioFileChooser Permet à l’utilisateur de choisir un fichier scénraio à partir du
titre du scénario. C’est une boite de dialogue.

   ScenarioHead Permet de représenter l’entete du scénario. Cette classe n’est pas
actuellement utilisée. ELle serait utile dans le cas où on désire implémenter une version
compatible XML

    ScenarioImageViewer Permet d’afficher l’image associée au scénario dans une fenètre
séparée.

      ScenarioMenu Crée un menu pour le scénario et y met les raccourcis clavier qu’il faut.

      ScenarioPane Classe abstraite permettant de créer un JPanel personnalisable.

     ScenarioPlayerModel Classe qui implémente l’algorithme intrinsèque exécuté durant
l’illustration. Elle s’occupe du parsing du fichier, de la crétaion des nœuds, des liens et des
messages. Certaines méthodes de cette classes sont surchargées par la classe ScenarioDisplay-
Controller afin d’assurer la cohérence entre le modèle et la vue1 .

     ScenarioScrollerController Cette hérite de la classe ProtocolController et permet
de gérer l’ensemble de l’affichage. Elle gère la vue associée à la classe ScenarioScrollerPane.
     ScenarioScrollerPane Elle implémente la classe ScenarioPane et contient plusieurs
éléments graphiques. Ces éléments grapiques sont : L’entete du scénario composée du titre et
des nœuds. La zone centrale d’affichage des messages échangés et enfin la barre de défilement
situé à droite.

      ScenarioViewerFrame Cette classe permet d’encapsuler l’affichage du panel contenant
  1
      Ce que l’utilisateur voit à l’écran

ENST- Bretagne                                9             Projet INVOCOM
3.4 Description des classes                        Organisation du code

l’illustration du protocole dans une JFrame.

   SimuPopMenu Permet de créer un menu pop up et de le rajouter à l’interface.

ENST- Bretagne                      10               Projet INVOCOM
Modèle MVC

4      Conception
4.1     Le modèle MVC
   Le modèle de conception adopté est le modèle MVC. Ce modèle consiste à séparer trois
parties en matière de programmation graphique : le modèle, la vue et le contrôle.
    1. le modèle, appelée aussi souvent abstraction, désigne les concepts et les fonctions du
       système,
    2. la vue, appelée aussi souvent présentation définit l’image du système, c’est-à-dire son
       comportement en entrée comme en sortie vis-à-vis de l’utilisateur,
    3. le contrôle maintient la cohérence entre les facettes vue et modèle : toute action sur le
       modèle est répercutée sur la vue et vice-versa.

En termes de programmes Java le schéma suivant donne une illustration du modèle MVC.
L’utilisateur percoit une interface graphique à l’écran sur laquelle il peut agir. Ensuite toutes
ses actions sont sont répercutées sur le model grace au controller. Ce dernier étendant le model
de base est donc un modèle enrichi. Inversement si le model change au cours du fonctionnement
du système le controller est là pour mettre à jour la view qui est un attribut de classe. La
figure 4.1 illustre ce concept.

                                                                 Model
                             User

                               {see}
                                                               
                             View                                Contoller

                                                                     1

                                            manages, updates

                                       Fig. 4.1 – Le modèle MVC

ENST- Bretagne                            11                   Projet INVOCOM
4.2 Exemple de modèle MVC tiré duExemple
                                    code   de modèle MVC tiré du code

4.2    Exemple de modèle MVC tiré du code
   Le schéma de la figure 4.2 donne un exemple d’utilisation du modèle MVC tiré du code.
Les commentaires en face des classes donnent une illustration du code écrit.

                   ScenarioDisplayerModel        public void updateScenarioName(String name){
                                                 //traitement de mise a jour du titre du scénario
                                                 }

                                                 public void updateScenarioName(String name){
                                                 //appel de la methode de la classe mere pour garder
                                                 //la coherence avec la vue
                   ScenarioDisplayerController
                                                 super.updateScenarioName(name)

                                1                //mise a jour de la vue qui est un attribut du controller

                                                 view.updateScenarioName(name)
                                                 }
                           manages

                                                 public void updateScenarioName(String name){
                                                 //traitement de mise a jour du titre du scénario
                       ScenarioDisplayer         setScenarioName(name)
                                                 repaint();
                                                 }

                     Fig. 4.2 – Exemple de modèle MVC tiré du code

ENST- Bretagne                             12                               Projet INVOCOM
Exemple de modèle MVC tiré du code

5    Conclusion
   Dans un souci de clarté et de simplicité certains détails ont été volontairement omis. Le
contenu du présent document peut etre complété en lisant la Javadoc du logiciel. certains
algorithmes sont décrits en annexe.

ENST- Bretagne                        13                   Projet INVOCOM
Description des classes

A       Annexes
A.1      Description des algorithmes principaux de l’illustrateur de pro-
         tocoles GSM/UMTS
A.1.1     Algorithme de lecture du fichier scénario
     Classe ScenarioDisplayerModel.readFile(String head,String messages)
Cette méthode permet de lire l’entete du fichier scénario et les messages. Elle lève une exception
si le fichier spécifié est introuvable ou s’il ya une erreur dans le format du fichier.Voici de façon
simplifiée ce que fait l’algo :
begin
   1. ouvrir le fichier d’entete head
   2. lire la première ligne du fichier et mettre la valeur dans LigneLue
      while (LigneLueNonNulle){
        (a) si LigneLue=”ScenarioName” alors mettre la chaine qui suit dans la variable nom du
            scénario
        (b) si LigneLue=”File” mettre la chaine lue dans la variable nom du fichier image associée
            au scénario
        (c) si LigneLue=”NodeName” récupérer le nom du noeud et les autres paramètres et créer
            le noeud
        (d) si LingeLue=”PropagThroughput” récupérer les valeurs et créer/rajouter le lien entre
            le noeud source et le noeud destination à l’ensemble des liens du noeuds source
   3. Créer le noeud et le rajouter à l’ensemble des noeuds
   4. Lire une ligne et mettre la valeur dans LigneLue
      endwhile
   5. fermer le fichier head
   1. ouvrir le fichier décrivant les messages
   2. lire la première ligne du fichier et mettre la valeur dans LigneLue
      while (LigneLueNonNulle){
        (a) récupérer l’id du noeud source
        (b) récupérer l’id du noeud destination
            si le message n’est pas une pause alors
        (c) récupérer le nom du message
        (d) récupérer le type du message ;Déterminer la couleur du message en fonction de la valeur
            du type
        (e) récupérer la longueur du message
        (f) récupérer le treatment time
        (g) récupérer la valeur du step de ce message dans l’algorithme
        (h) récupérer la valeur du dash

ENST- Bretagne                              14                  Projet INVOCOM
A.1 Description des algorithmes principaux de l’illustrateur de protocoles
GSM/UMTS                                            Description des classes

        (i) récupérer la valeur du startTime
        (j) récupérer la valeur du point de synchronisation s’il en existe un
            sinon
        (k) récupérer le texte de la question
        (l) récupérer le texte de la réponse
      (m) récupérer le nom de la nouvelle image à charger
        (n) récupérer le nouveau titre du scénarion
  3. Créer le messages et l’ajouter à l’ensemble des messages
  4. Lire une ligne et mettre la valeur dans LigneLue
     endwhile
  5. fermer le fichier décrivant les messages
  6. Mettre à jour les coordonnées des messages en fonction de la présence ou non de points de
     synchronisation
  7. Mettre à jour les coordonnées des nœuds
end

A.1.2     Algorithme d’affichage
    L’affichage de l’entete du scénario est géré par la classe NodeIcon. L’essentiel du code se
situe dans la méthode paintComponent(Graphics g) :

  1. calculer l’espace entre les nœuds en fonction de la taille de l’écran d’affichage du scénario
  2. Ecrire les titre du scénario
  3. Ecrire le nom des nœuds et afficher les images associées à chaque nœud
L’affichage des messages échangés est gérée par la classe ScenarioDisplayer et l’essentiel du
code de la gestion de l’affichage se trouve dans la méthode paintComponent(Graphics g). Voici
succintement ce que fait cette méthode :
  1. Tracer les barre verticales représentant le déroulement du temps
  2. Ecrire les messages(hors mis les messages de pause) en fonction de leurs caractéristiques.
     Cette partie fait appel à d’autres méthodes de dessin dont nous ne détaillerons pas ici.

A.1.3     Algorithme de controle
   L’essentiel du code pour le controle se trouve dans la méthode nextstep() de la classe
ScenarioDisplayerController.
Voici l’algorithme qui est exécuté :

  1. Récupérer le nombre de pas d’exécutions de l’algorithme
  2. while(getTime()
A.2 Description des classes par ordre alphabétique Description des classes

        (a) Vérifier que le Thread d’exécution n’est pas suspendu par l’utilisateur
        (b) Mettre à jour le temps
        (c) Parcourir les messages(hormis ceux marquant une pause) et afficher ceux dont l’or-
            donnée Y est inférieure ou égale au temps courant
        (d) Si c’est un message de pause alors
              i. Interrompre l’exécution du Thread et activer le bouton Continue
             ii. mettre à jour l’image du scénario
             iii. mettre à jour le titre du scénario,
             iv. Poursuivre l’exécution dès que l’utilisateur à cliquer sur le bouton Continue
              v. faire une pause de 50 millisecondes pour permettre une certaine fluidité
      endwhile

A.1.4     La barre de défilement
    La barre de défilement permet de faire défiler automatiquement l’affichage des messages
échangés dans le scénario lorsque le scénario est très long. Elle permet également de pouvoir
visualiser tout le scénario lorsque l’exécution du scénario est terminée. Les valeurs de la zone
d’affichage changent en fonction des actions de l’utilisateur sur la barre de défilement.

A.2      Description des classes par ordre alphabétique
   AboutApplet Cette classe affiche des informations à propos de l’applet et du projet
INVOCOM.

    ButtonController Permet de controler l’aspect des boutons suivant les actions de
l’utilisateur

   Buttons Encapsule les boutons qui permettent à l’utilisateur d’inter-agir avec l’illustra-
teur de protocoles.

   Documentation Permet d’afficher des informations concernant le scénario qui s’exécute.
Utilisé dans la version debug

   DocumentationController Controle de l’affichage de la documentation sur l’interface

   HelpFrame Permet d’afficher une aide rapide concernant l’interface graphique.

   Language Permet d’internationaliser l’applet. Deux langues sont actuellement
implémentées : français et anglais

   Link Désigne un lien au sens réseau. Un lien est formé de deux entités appelées nœuds :
source et destination. Cette classe est utilisées lors de la création des nœuds pour mémoriser

ENST- Bretagne                             16                  Projet INVOCOM
A.2 Description des classes par ordre alphabétique Description des classes

loes liens entre les différents nœuds.

    MenuController Permet de controler les éléments de la barre dee menu. Activation et
désactivation des boutons.

   Message Implémente le format des messages échangés. Les caractéristiques des messages
sont celles décrites dans le document du format des fichiers scénario.

   MessagePauseDialog Permet d’afficher uner message de pause dans un scénario. La
pause interrompt momentanément l’exécution de l’applet.

   Node Implémente un nœud. Les caractéristiques d’un noeud sont : le numéro du noeud,
son nom, l’image qui lui est associée, l’ensemble des messages que le nœud émet,les voisins
qui sont les nœud avec lesquels il ya un lien.

    NodeIcon Cette classe héritent de la classe ScenarioPane et permet de représenter les
nœuds du scénario. On dessine les images associées aux nœuds et on y inscrit leur nom et le
titre du scénario

   PDUFrame Permet d’afficher les PDU échangés entre les différents nœuds.

   PDUFrameController controle l’affichage des PDU dans la fenetre désignée à cet effet.

    PopMenuController Permet de controler l’affichage du pop up menu : Activation et
désactivation des items.

   PopUpListener Ecouteur sur le pop up menu. Permet de traiter les actions de l’utilisa-
teur.

   ProtocolConstants Regroupe les constantes utilisées dans l’applet. Toutes les valeurs
sont public final et static

   ProtocolController Classe abstraite permettant de créer des controleurs personnali-
sables.

   ProtocolDialog Classe générique permet de créer une boite de dialogue personnalisable.

   ProtocolFrame Classe générique(abstraite) permettant de créer une fenètre personnali-
sable.

    ProtocolGUIController Permet de controler toutes les composantes de l’interface.
Elle crée les différents controleurs et délègue l’appel de certaines de certaines méthodes aux
controleurs adapté. Maintient la cohérence entre ce que l’utilisateur voit et l’exécution interne
de l’application. C’est le cœur du controle de l’applet.

ENST- Bretagne                            17                 Projet INVOCOM
A.2 Description des classes par ordre alphabétique Description des classes

    ProtocolIllustrator C’est l’applet d’illustration. Lit les paramètres d’entrée et crée
l’interface d’affichage du scénario.

      QuitApplet Permet de quitter l’applet proprement.

    RunningActions Interface permettant de regrouper toutes les actions conscernant
l’applet : arret,lancement,suspension,rejouer,etc.

    ScenarioDisplayController permet de controler l’affichage du scénario et de maintenir
la cohérence entre le modèle et la vue.

    ScenarioDisplayer Permet d’implémnter l’interface d’illustration du scénario. Affiche
les nœuds et les messages échangés.

    ScenarioFileChooser Permet à l’utilisateur de choisir un fichier scénraio à partir du
titre du scénario. C’est une boite de dialogue.

   ScenarioHead Permet de représenter l’entete du scénario. Cette classe n’est pas
actuellement utilisée. ELle serait utile dans le cas où on désire implémenter une version
compatible XML

    ScenarioImageViewer Permet d’afficher l’image associée au scénario dans une fenètre
séparée.

      ScenarioMenu Crée un menu pour le scénario et y met les raccourcis clavier qu’il faut.

      ScenarioPane Classe abstraite permettant de créer un JPanel personnalisable.

     ScenarioPlayerModel Classe qui implémente l’algorithme intrinsèque exécuté durant
l’illustration. Elle s’occupe du parsing du fichier, de la crétaion des nœuds, des liens et des
messages. Certaines méthodes de cette classes sont surchargées par la classe ScenarioDisplay-
Controller afin d’assurer la cohérence entre le modèle et la vue2 .

     ScenarioScrollerController Cette hérite de la classe ProtocolController et permet
de gérer l’ensemble de l’affichage. Elle gère la vue associée à la classe ScenarioScrollerPane.
     ScenarioScrollerPane Elle implémente la classe ScenarioPane et contient plusieurs
éléments graphiques. Ces éléments grapiques sont : L’entete du scénario composée du titre et
des nœuds. La zone centrale d’affichage des messages échangés et enfin la barre de défilement
situé à droite.

      ScenarioViewerFrame Cette classe permet d’encapsuler l’affichage du panel contenant
  2
      Ce que l’utilisateur voit à l’écran

ENST- Bretagne                                18            Projet INVOCOM
A.2 Description des classes par ordre alphabétique Description des classes

l’illustration du protocole dans une JFrame.

   SimuPopMenu Permet de créer un menu pop up et de le rajouter à l’interface.

ENST- Bretagne                      19                  Projet INVOCOM
Vous pouvez aussi lire