Conception & Modélisation des Applets de trafic téléphonique



Documents pareils
Interfaces graphiques avec l API Swing

Java 7 Les fondamentaux du langage Java

Document de spécification du logiciel VALPO Définition du format des fichiers des

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Réalisation de cartes vectorielles avec Word

Construire des plug-ins pour SAS Management Console SAS 9.1

Guide d utilisation 2012

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

Projet Active Object

Bienvenue à l historien virtuel 2.0

Gestion des documents avec ALFRESCO

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

MEGA ITSM Accelerator. Guide de démarrage

Leçon n 4. Analyse graphique Techniques de construction de barres et styles de. Fenêtres d analyse graphique. Leçon n 4

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

Comment utiliser RoundCube?

Tutorial Terminal Server sous

Manuel utilisateur «VisioJeunes»

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

Annexe commune aux séries ES, L et S : boîtes et quantiles

Volet de visualisation

MEGA ITSM Accelerator. Guide de Démarrage

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

Comment accéder à d Internet Explorer

Comment sélectionner des sommets, des arêtes et des faces avec Blender?

Manipuler fichiers et dossiers

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Gestionnaire d emploi du temps

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

L espace de travail de Photoshop

Setting Up PC MACLAN File Server

Infolettre #18 : Les graphiques avec Excel 2010

MANUEL TBI - INTERWRITE

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Optimiser pour les appareils mobiles

LES TOUT PREMIERS PAS

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

N importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Tutoriel. Votre site web en 30 minutes

Atelier Le gestionnaire de fichier

Outil d envoi de courrier électronique. STILOG I.S.T. et Claude Mayer Tous droits réservés

Cours LG : Administration de réseaux et sécurité informatique. Dans les Paramètres Système onglet Processeur, le bouton "Activer PAE/NX"

Manuel d utilisation du site web de l ONRN

Silhouette Studio Leçon N 2

Designer d escalier GUIDE DE L UTILISATEUR. Stair Designer-1

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Vos outils CNED COPIES EN LIGNE GUIDE DE PRISE EN MAIN DU CORRECTEUR. 8 CODA GA WB 01 13

WinARC Installation et utilisation D un écran déporté (Windows 7)

Logiciel de gestion de caisse et d ardoises

Sélection du contrôleur

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d ing.

F.A.Q 1.0 Designer 3D Atex System

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

Ouvrir le compte UQÀM

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Créer un compte itunes Store

Logiciel PICAXE Programming Editor

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

Le cas «BOURSE» annexe

26 Centre de Sécurité et de

Cartographie Informatique Eclairage Public

BIRT (Business Intelligence and Reporting Tools)

Itium XP. Guide Utilisateur

Manuel de dessin Floorplanner. Floorplanner. Manuel de dessin. Page. Sujet. Sujet. Page Floorplanner Avancé. 1.

AIDE ENTREPRISE SIS-ePP Plateforme de dématérialisation des marchés publics

Thunderbird est facilement téléchargeable depuis le site officiel

Devenez un véritable développeur web en 3 mois!

MANUEL GANTT PROJECT

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

CLASSE VIRTUELLE UTILISATION DE CENTRA

Utilisation de la plateforme VIA ecollaboration

GUIDE D UTILISATION DU BROWSER DE BEYOND 20/20

Administration du site

Conservez la documentation à portée de main pour toute référence future. Le terme «pointeur» dans ce manuel désigne le pointeur interactif YA-P10.

Assistant d e tablissement de Tableaux

Le cas «BOURSE» annexe

Outlook Présentation.

MO-Call pour les Ordinateurs. Guide de l utilisateur

Utilisation du logiciel Epson Easy Interactive Tools

Table des matières A. Introduction... 4 B. Principes généraux... 5 C. Exemple de formule (à réaliser) :... 7 D. Exercice pour réaliser une facture

Découvrez Windows NetMeeting

Traitement des données avec Microsoft EXCEL 2010

Installation.Net Framework 2.0 pour les postes utilisant Windows 8/8.1.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Utiliser Net Support School (NSS Version ) Philippe Cailleretz Er-Tice Avion mars 2011.

ODOTRACK pour Android 2.0 GUIDE D UTILISATION

Mes premiers diaporamas avec Open Office Impress?

8. Gestionnaire de budgets

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Création d un service web avec NetBeans 5.5 et SJAS 9

TP1 : Initiation à Java et Eclipse


Transcription:

Conception & Modélisation des Applets de trafic téléphonique ENST-Bretagne Projet INVOCOM Département Réseaux et Services Multimédia Avril-Juillet 2004 Rédacteurs : Xavier Lagrange Jean-Pierre Le Narzul Alexis Koalla ENST-Bretagne 2 rue de la Chataigneraie -CS 1760 35576 Cesson-Sévigné Cedex Franc

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..................... 7 3.2.2 Le package curves..................... 9 3.2.3 Le package general.................... 11 3.3 Les package tsp & tap...................... 13 3.4 Le package gui[control,model,dialog et pane].......... 17 3.5 Les package lawgenerator[discrete,continuelaw,others]..... 30 4 Conception 34 4.1 Le modèle MVC.......................... 34 4.2 Exemple de modèle MVC tiré du code............. 35 5 Conclusion 36 A Annexes 37 A.1 Description des classes par ordre alphabétique......... 37 A.2 Description des modules principaux............... 50 A.2.1 gestion des taches..................... 50 A.2.2 Gestion des mesures durant la simulation........ 51 A.2.3 Les moteurs de simulation................ 51 A.2.4 La gestion des attentes.................. 57 A.2.5 Gestion du chronomètre et de la vitesse d exécution.. 57 1

Table des figures 3.1 Vue du packages.......................... 5 3.2 Vue du package applet...................... 7 3.3 Vue du package curves...................... 9 3.4 Vue du package general...................... 11 3.5 Vue du package tsp........................ 14 3.6 Vue du package tap........................ 16 3.7 Vue du package gui........................ 18 3.8 Gestionnaires de composants graphiques............ 20 3.9 Gestionnaires d affichage de composants graphiques...... 23 3.10 Gestionnaires d affichage de paramètres............. 24 3.11 Modèle et gestionnaire de boites de dialog............ 25 3.12 Placement de composants..................... 27 3.13 Le package lawgenerator[discrete, continuelaw, others]..... 31 4.1 Le modèle MVC.......................... 35 4.2 Exemple de modèle MVC tiré du code.............. 36 2

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 section3 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. 3

2 Nomenclature des classes Ce paragraphe décrit les différentes classes codées dans le cadre du projet. 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. 4

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. src applet curves general tsp tap gui lawgenerator dialog <<model>> model discrete continuelaw others <<view>> pane <<control>> control Fig. 3.1 Vue du 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 diagrammes certaines relations entre 5

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. 6

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. La figure 3.2 donne une vue détaillée du contenu de ce package src applet TelsimuApplet ErlangApplet TelSimuAppletSP EngsetApplet Fig. 3.2 Vue du package applet ErlangApplet Cette classe implémente l applet de simulation de trafic téléphonique dans le cas de la loi d Erlang. Elle crée le contrôleur (ErlangGUIController) de l interface affichée. EngsetApplet Cette classe implémente l applet de simulation de trafic téléphonique dans le cas de la loi d Engset. Elle crée le contrôleur (EngsetGUIController) de l interface affichée. TelSimuApplet Classe abstraite qui étend une JApplet et permet de regrouper les attributs et méthodes communs aux trois applets développés. Toute nouvelle applet devra étendre cette classe. 7

TelSimuAppletSP Implémente l applet de trafic téléphonique sans perte. Récupère les paramètres contenus dans la page html et crée l interface graphique avec ces valeurs. 8

3.2.2 Le package curves Ce package contient toutes la classes nécessaires au traçage des courbes et des histogrammes. La figure 3.3 donne une vue détaillée du contenu de ce package curves SimulationCanvas JPanel AxisDrawer implements SimulationPane 1 1 GraphDrawer BufferMulti HistoMultiPane 1 TraficPoint HistoMultiAP HistoMultiSP GraphDrawerAP GraphDrawerSP SinglePoint DoublePoint Fig. 3.3 Vue du package curves AxisDrawer C est une interface qui permet de tracer les axes d un repère DoublePoint Classe implementant des points avec 4 coordonnées : (xbas,ybas,xhaut,yhaut) ce quadruplé détermine les coordonnées bas et et haut d un baton dans les histogrammes. GraphDrawer Class abstraite permet de réifier les deux types de traçage de courbes : applets de trafic téléphonique avec perte ceux sans perte. GraphDrawerAP Classe implémentant le traçage de courbe dans le 9

cas des applets de trafic téléphnoique avec perte GraphDrawerSP Classe implémentant le traçage de courbe dans le cas des applets de trafic téléphnoique sans perte HistoMultiPane Classe abstraite permettant de réifier les JPanel contenant le traceur de courbes et/ou d histogrammes. HistoMultiPaneAP Implémente la vue du traceur de courbes dans le cas d une simulation avec perte HistoMultiPaneSPImplémente la vue du traceur de courbes dans le cas d une simulation sans perte SinglePoint Implémente un point classique de coordonnées (x, y) TraficPoint Implémente un point de coordonnées (x, y) généré lors du trafic téléphonique. 10

3.2.3 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 ConstantString est utilisée par toutes les classes qui manipule des chaines de caractères. La figure 3.4 donne une vue détaillée du contenu de ce package general SimulationConstants ComputeAverage SimulationConstantsAP SimulationConstantsSP DoubleToString ConstantsString HistoMultiManager AbstractFrame ConstantsStringAP SimulationPane ConstantStringSP HistoMultiManagerASP SimulationInterface SimulationElement ScreenGifDisplayer Canvas RealServerPane SimulationCanvas ServerBusyView shows * Icone ServersDisplayer SimulationScheduler ServerBusyMeanView Fig. 3.4 Vue du package general ComputeAverage Cette classe implémente des méthodes static qui sont les différentes formules de calculs des moyennes théoriques. Tout ajout de nouvelle formule de calcul de grandeur théorique doit etre déclarée dans cette classe. ConstantString Class abstraite permettant de déclarer toutes les chaines de caractères utilisées par les insterfaces des différents applets. ConstantStringAP Hérite de la classe précédente et déclare toutes les chaines de caractères utilisées par les applets de trafic téléphonique avec 11

perte (AP= Avec Perte) ConstantStringSP Hérite de la classe ConstantStringAP et déclare toutes les chaines de caractères utilisées par les applets de trafic téléphonique sans perte (SP= Sans Perte) DoubleToString Classe permettant de convertir des valeurs (double) en chaine de caractères avec un nombre de chiffres après la virgule. HistoMultiManager Cette classe est la super classe aussi bien des moteurs de simulation(erlang, Engset et sans perte) que des traceurs de courbes. HistoMultiManagerASP Cette classe abstraite regroupe les méthodes et les attributs communs aux différents moteurs de simulation. Elle implémente les méthodes de lancement,d arret, de pause, de suspension de pause et de cloture des applets. Icone Permet d afficher les icones des serveurs et des abonnés. Elle hérite de la classe JLabel. ScreenGifDisplayer Afficheur des différentes icones sur le panel correspondant. C est une classe abstraite. ServerBusyMeanView Affichage du taux d aoccupation d un serveur au cours du temps ServerBusyView Classe abstraite pour l affichage de l activité ou du taux d occupation d uns serveur au cours du temps. SimulationCanvas Permet de dessiner les courbes et les histogrammes. Elle hérite de la classe Canvas de la librairie awt de java. SimulationConstants Déclare les constantes(valeurs entières, réelles, chaines et couleurs) pour les différents applets. SimulationConstantsAP Déclare les constantes(valeurs entières, réelles, chaines et couleurs) les applets de trafic à perte. SimulationConstantsSP Déclare les constantes(valeurs entières, réelles, chaines et couleurs) les applets de trafic sans perte. 12

SimulationElement Classe abstraite permettant de déclarer les attributs et méhtodes communs aux différents types de taches traitées dans les simulation. Une élément possède les caractéristiques de base suivantes : 1. la date à laquelle l élément sera traité 2. le type de la tache :appel, fin de communication ou fin de simulation. 3. un numéro de serveur par défaut qui traitera la tache. SimulationInterface Interface graphique de la simulation. Contient tous les éléments graphiques nécessaires permettant à l utilisateur d interargir avec le simulateur. C est une classe abstraite. SimulationPane Classe abstraite héritant de JPanel et permettant de regrouper les éléments communs à toutes les classes implémentant un panel pour l affichage. SimulationScheduler Ordonnanceur de taches suivant un ordre croissant de leur date d exécution : la tache qui possède la plus petite estampille sera exécutée en priorité. RealServerPane Affichage des icones des serveurs réels. 3.3 Les package tsp & tap Ces deux packages permettent de séparer les classes spécifiques aux différentes simulations. Ces packages utilisent d autres classes qui proviennent d autres packages. Le package tsp contient toutes les classes spécifiques à une simulation sans perte (tsp= trafic sans perte), tandis que tap contient toutes les classes spécifiques à une simulation de trafic téléphonique avec perte(tap= trafic avec perte). La figure 3.5 donne une vue détaillée du contenu du package tsp 13

src tsp 1 HistoMultimanagerASP 1 SimulationScheduler SafeLawGenerator SimulationElement SchedulerSP uses 1 waitqueuecontroller SimulationElementSP Fig. 3.5 Vue du package tsp 14

SafeLawGenerator Moteur de simulation pour trafic téléphonique sans perte. Calcule les moyennes mesurées,les transmets à l interface, génère les courbes (inter-arrivées,des temps d attente et de séjour) et les histogrammes(inter-arrivées, des temps d attente et de séjour. SimulationElementSP Décrit le format d une tache dans le cas de simulatiin sans perte. En plus des caractéristiques de base on rajoute les caractéristiques suivantes : 1. staytime qui est le temps de séjour dans le système 2. waittime qui est le temps d attente de l élément 3. servicetime qui est le temps de service de l élément tiré aléatoirement suivant la loi de service SimulationSchedulerSP Ordonnanceur de taches de typse sans perte. WaitQueuePane Affichage de la file d attente dans le cas d une simulation sans perte. La file d attente sert à stocker les clients qui arrivent à un instant où tous les serveurs sont occupés. La figure 3.6 donne une vue détaillée du contenu du package tap EngsetElement Cette classe décrit les éléments(taches) traités dans la simulation avec une loi d Engset. EngsetGenerator C est le moteur de la simulation dans le cas de la loi d Engset. La méthode run() est celle exécutée au démarrage de la simulation. EngsetScheduler Cette classe implémente un ordonnanceur de taches utilisées dans la simulation avec une loi d Engset. ErlangElement Cette classe décrit les éléments(taches) traités dans la simulation avec une loi d Erlang. ErlangGenerator C est le moteur de la simulation dans le cas de la loi d Erlang. La méthode run() est celle exécutée au démarrage de la simulation. ErlangScheduler Cette classe implémente un ordonnanceur de taches utilisées dans la simulation avec une loi d Erlang. UnSafeLawGenerator Moteur de simulation d une simulation avec perte : Erlang et Engset C est une classe abstraite. 15

tap 1 HistoMultimanagerASP 1 SimulationScheduler SimulationElement HistoMultiManagerAP EngsetScheduler ErlangElement ErlangScheduler ErlangGenerator UnSafeLawGenerator EngsetGenerator EngsetElement Fig. 3.6 Vue du package tap 16

3.4 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. Les figures 3.7,3.8, 3.9, 3.10, 3.11, 3.12 donnent successivement des vues détaillées du contenu de ces packages. Certaines vues ont été découpées pour permettre une meilleure lisibilité des diagrammes. La figure 3.7 montre les relations qui existent entre les différentes classes du package gui et le reste des classes du projet. 17

gui JDialogBox JMenuBar <<implements>> SimulationDialogBox SimulationMenu <<interface>> ActionListener JFrame SimulationPane SimulationMenuAP EngsetMenu SimulationMenuSP AbstractFrame ErlangMenu ScreenGifDisplayer ServerBusyViewPane HistoMultiManager ServerActivityView HelpFrame NBSGraphViewer HistoMultiManagerAP JPopUpMenu SimulationInterfaceSP 1 SimulationInterface 1 SimulationInterfaceAP 1 ServerActivityPane <<interface>> AxisDrawer SimuPopMenu MouseAdapter EngsetInterface ErlangInterface <<implements>> PopUpListener 1 Fig. 3.7 Vue du package gui AbstractFrame Elle hérite de la classe JFrame et est la super classe de toutes les interfaces graphiques. EngsetInterface Cette classe implémente l interface dans le cas d une simulation suivant une loi d Engset. EngsetMenuImplémente la vue du menu dans le cas d une simulation avec la loi d Engset. EngsetMenuControler Permet de contrôler la vue du menu de l interface.gestion des listeners pour les différentes actions de l utilisateur ErlangInterface Cette classe implémente l interface dans le cas d une simulation suivant une loi d Erlang. 18

ErlangMenuImplémente la vue du menu dans le cas d une simulation avec la loi d Erlang. HelpFrame Permet d afficher une aide pour la simulation. HistoMultiManagerAP Moteurs de simulation dans les cas d une simulation avec perte : Erlang et Engset. NBSGraphsViewer Affichage des statistiques concernant les clients et les serveurs. La présence de cette vue dépend de la configuration faite dans le fichier html. PopUpListener Classe permettant d enregistrer un listener sur le menu pop up. ServerActivityPane Affichage de l activité des serveurs au cours du temps. Contient plusieurs ServerActivityView. SimuPopMenu Affichaged un menupop up lorsque l on clique sur le bouton droit de la souris. SimulationDialogBox Cette classe étend la classe JDialog et permet de réifier toutes les boites de dialogues qui peuvent apparaitre en fonction des actions de l utilisateur. SimulationInterfaceAP Interface graphique dans le cas d une simulation avec perte : Erlang et Engset. SimulationInterfaceSP Interface graphique dans le cas d une simulation sans perte. SimulationMenu Classe abstraite permettant de regrouper les éléments communs aux menus des différentes interfaces de simulation. Elle étend la classe JMenuBar. SimulationMenuAP Implémente une barre de menu dans le cas de simulation avec perte : Erlang et Engset 19

SimulationMenuSP Implémente une barre de menu dans le cas de simulation sans perte. La figure 3.8 montre les relations qui existent entre les différentes classes du package gui.control et le reste des classes du projet. src.gui.control WaitQueuePane SimulationController ButtonController 1 GraphController ChronoController 1 1 WaitQueueController ButtonPane ScreenGifController 1 CustomerGraphController 1 ScreenGifDisplayer ServerDisplayerController 1 SubscribersController 1 ChronoPane VirtualServerController 1 VirtualServerPane SubscribersPane ServersDisplayer CustomerGraphViewer Fig. 3.8 Gestionnaires de composants graphiques ButtonController Gère l affichage des boutons. Elle active ou désactive les boutons en fonction des actions de l utilisateur. SubscribersController Gestion de l affichage et de la mise à jour des icones des abonnés. TheoricMeansSPController Permet de gérer l affichage et la mise à jour des valeurs théoriques. Lorsque le modèle change(l utilisateur a modifié les valeurs des paramètres d entrée) cette classe a pour role de répercuter 20

sur la vue les changements venant du modèle. ChronoController Permet de contrôler la vue du chronomètre. CustomerGraphController Contrôleur de la vue du traceur de courbes pour le nombre moyen de clients dans le système. ScreenGifController Classe abstraite permettant de réifier le contrôle des icones affichés sur l interface graphique. ServerBusyMeanController Permet de gérer l affichage et la mise à jour des taux d occupation moyenne des serveurs au cours du temps. ServerDisplayController Permet de gérer l affichage et la mise à jour(changement de couleur des icones) des serveurs lors de la simulation EngsetGUIController Cette classe est le contrôleur de l interface graphique dans le cas de la simulation avec une loi d Engset. GraphController Permet de contrôler la vue du traceur de courbe pour les différentes statistiques concernant les clients et les serveurs. MenuControler Cette classe abstraite permet de gérer le menu de l interface graphique : Enregistrement des listeners et gestions des actions de l utilisateur. MenuControlerAP Cette classe permet d enregistrer les actions de l utilisateur sur le menu dans le cas d une simulation sans perte. MenuControlerSP Gestion des actions sur les éléments du menu dans le cas de simulation sans perte NBSGraphsController Cette class permet de gérer l affichage des statistiques sur les clients et les serveurs durant une simulation sans perte. ServerActivityController Permet de gérer l affichage du taux d occupation des serveurs au cours du temps. ServerMeanViewController Permet de gérer l affichage du taux d occupation moyenne des serveurs au cours du temps. SimulationController Cette classe est la super classe de toutes les classes qui implémentent un contrôleur.c est une classe abstraite. 21

SimulationGUIAPController Classe permettant de gérer l affichage et la mise à jour des éléments graphiques dans le cas d une simulation de tafic téléphonique avec perte. SimulationGUIController Cette classe permet de gérer l affichage, la mise à jour des éléments graphiques des interfaces de simulation. C est une classe abstraite et hérite de SimulationController. C est la super classe de la classe précédente et de la classe suivante. SimulationGUISPController Classe permettant de gérer l affichage et la mise à jour des éléments graphiques dans le cas d une simulation de tafic téléphonique sans perte. PopMenuController Implémente un controleur pour le menu pop up affiché lorsque l on clique sur le bouton droit de la souris. RealServerController Permet de gérer l affichage et la mise à jour des icones des serveurs réels. VirtualServerController Permet de gérer l affichage et la mise à jour des icones des serveurs virtuels. WaitQueueController Contrôle de l affichage de la file d attente. Permet de mettre à jour la file d attente suivant le nombre de clients qui attendent. La figure 3.9 montre les dépendances qui existent entre les classes servant de gestionnaires (contrôleurs de vue) de placement de composants sur l interface. EngsetGraphicPaneController Permet de contrôler la vue de l agencement des composants graphiques affichées par la classe précédente. ErlangGraphicPaneController Permet de contrôler la vue de l agencement des composants graphiques affichées par la classe précédente. GraphicPaneController Cette classe implémente le contoleur de la vue du panel central. Elle est abstraite vue que la vue est abstraite. GraphicPaneSPController Contrôleur du panel central dans le cas de simultion de trafic téléphoniques sans perte. 22

src.gui.control SimulationController GraphicPane creates 1 GraphicPaneController GraphicPaneSPController EngsetGraphicPaneController ErlangGraphicPaneController Fig. 3.9 Gestionnaires d affichage de composants graphiques Le schéma de la figure 3.10 montre les dépendances qui existent entre les classes qui permettent à l utilisateur de configurer les valeurs d entrée d une simulation ou de voir les valeurs théoriques ou mesurées d une simulation. EngsetMeasuresController Permet de contrôler la vue des valeurs mesurées : mise à jour dynamique des valeurs mesurées. EngsetParamsController Permet de contrôler le choix des parametres. Gestion des listeners sur les différents composants. EngsetTMController Permet de contrôler la vue du panel d affichage des valeurs théoriques calculées dans le cas d Engset? ErlangGUIController Cette classe est le contrôleur de l interface graphique dans le cas de la simulation avec une loi d Erlang. ErlangMeasuresController Permet de contrôler la vue des valeurs mesurées : mise à jour dynamique des valeurs mesurées. ErlangMenuControler Permet de contrôler la vue du menu de l interface.gestion des listeners pour les différentes actions de l utilisateur ErlangParamsController Permet de contrôler le choix des parametres. Gestion des listeners sur les différents composants. 23

src.gui.control SimulationController MeasuredValueController SimuParamsController MeasuredValueControllerSP ErlangMeasuresController SimuParamsPaneSP EngsetMeasuresController EngsetParamsPane TheoricMeansModel ErlangParamsPane ErlangTheoricMeans TheoricMeansSP EngsetTheoricMeans ErlangTMController TheoricMeansControllerSP EngsetTMController Fig. 3.10 Gestionnaires d affichage de paramètres 24

ErlangTMController Permet de contrôler la vue du panel d affichage des valeurs théoriques calculées dans le cas d Erlang? MeasuredValueController Classe abstraite permettant de réifier les contrôleurs des vues des valeurs mesurées. MeasuredValueControllerSP Cette classe permet de contrôler la vue des valeurs mesurées dans le cas de simulation sans perte.. SimuParamsController Permet de gérer l affichage et le maintien de la cohérence des composanst graphiques par rapport aux actions de l utilisateur. SimuParamsSPController Permet de gérer l affichage et la mise à jour des paramètres d entrée suivant les actions de l utilisateur. La figure 3.11 montre la vue du contenu des packages gui.model et gui.dialog dont les roles ont été décrit plus haut. src gui.dialog gui.model JDialog TheoricMeanModel SimulationDialogBox ErlangTheoricMeans ErlangTheoricMeans AboutApplet QuitApplet TheoricMeansSPModel Fig. 3.11 Modèle et gestionnaire de boites de dialog EngsetTheoricMeans Cette classe implémente le modèle de clacul des valeurs théoriques avec les formules d Engset. 25

ErlangTheoricMeans Cette classe implémente le modèle de clacul des valeurs théoriques avec les formules d Erlang. TheoricMeansSPModel Modèle interne de calcul des valeurs théoriques dans le cas de simulation sans perte. TheoricMeansModel Modèle interne de calcul des valeurs théoriques. Utilise la classe ComputeAverage pour les différents calculs. C est une classe abstraite. AboutApplet Implemente une boite de dialogue qui permet d obtenir des informations sur l applet courante. QuitApplet Propose à l utilisateur une boite de dialogue pour quitter l applet La figure 3.12 montre les relations de dépendances qui existent entre les différentes classes qui permettent d organiser les composants graphiques à l écran. ButtonPane Cette classe gère l affichage des boutons. ChronoPane Affichage du chronomètre : temps restant pour la simulatiuon CommentPane Affichage d un commentaire en bas de l interface pour signaler le début des mesures. CustomerViewerPane Classe permettant d afficher dans un repère XY le nombre moyen de clients dans le système et dans la file sous forme graphique. EngsetMeasuredPane Panel permettant d afficher les valeurs mesurées durant la simulation. EngsetParamsPane Permet de disposer les éléments graphiques permettant de choisir les paramètres d entrée du simulateur dans le cas d Engset. EngsetTMPanePermet d agencer et d afficher les valuers théoriques calculées avec les formule d Engset. 26

gui.pane SimulationPane ChronoPane CommentPane CustomerViewPane TheoricMeansPane GraphicPane ButtonPane ScreenGifDisplayer SubscribersPane ServerDisplayer TheoricMeansSPPane EngsetTMPane ServerBusyMeanPane MeasuredValuePane SimuParamsPane VirtualServerDisplayer ErlangTMPPane ServerBusyViewPane creates 1..n MeasuredValuePaneSP ErlangMeasuredPane EngsetMeasuredPane ServerBusyView SimuParamsPaneSP ErlangParamsPane EngsetParamsPane GraphicPaneSP ErlangGraphicPane EngsetGraphicPane Fig. 3.12 Placement de composants 27

EngsetGraphicPane Cette classe permet d agencer les différents composants graphiques sur l interface graphique. Dans le cas d une simulation avec la loi d Engset on les composants suivants : Choix des paramètres, le panel pour les sources(clients), le panel pour les serveurs, le panel des valeurs mesurées et enfin le panel des valeurs théoriques. ErlangGraphicPane Cette classe permet d agencer les différents composants graphiques sur l interface graphique. Dans le cas d une simulation avec la loi d Erlang on les composants suivants : Choix des paramètres, le panel pour les sources(clients), le panel pour les serveurs, le panel des valeurs mesurées et enfin le panel des valeurs théoriques. ErlangMeasuredPane Panel permettant d afficher les valeurs mesurées durant la simulation. ErlangParamsPane Permet de disposer les éléments graphiques permettant de choisir les paramètres d entrée du simulateur dans le cas d Erlang. ErlangTMPanePermet d agencer et d afficher les valuers théoriques calculées avec les formule d Erlang. GraphicPane Classe abstraite permettant de réifier les trois classes de d agencement de composants dans le conteneur central de l interface graphique. GraphicPaneSP Affichage des composants graphiques dans la partie centrale de l interface de simulation de trafic téléphonique sans perte MeasuredValuePane Affichage des valeurs mesurées : Elle affiche et met à jour les valeurs mesurées. L agencement et le placement est gérés par cette classe. Elle est abstraite. MeasuredValuePaneSP Affichage des valeurs mesurées dans le cas d une simulation sans perte. ServerBusyMeanPane Affichage dun taux d occupation des serveurs au cours du temps. Contient plusieurs ServerBusyMeanView ServersDisplayer Classe abstraite permettant de réifier l affichage des icones des serveurs. 28

SimuParamsPane Permet de choisir les paramètres d entrée d une simulation. C est une classe abstraite. SimuParamsPaneSP Permet de choisir les paramètres d entrée dans le cas d une d une simulation de trafic téléphonique ans perte. ELle hérite la classe précédente. ServerBusyViewPane Classe abstraite permettant d afficher plusieurs ServerBusyView. SubscribersPane Affichage des icones des abonnés. TheoricMeansPane Classe permettant d afficher les valeurs théoriques. TheoricMeansSPPane Affichage des valeurs théoriques durant une simulation sans perte. VirtualServerPane Affichage des icones des serveurs virtuels. 29

3.5 Les package lawgenerator[discrete,continuelaw,others] Le package lawgenerator contient les classes qui implémentent soit des lois de probabilité ou des générateurs de nombres aléatoires. Le package lawgenerator.discrete contient toutes les classes qui implémentent des lois de probabilité discrètes. Toute nouvelle loi discrète doit etre rajoutée dans ce package. Le package lawgenerator.continuelaw contient toutes les classes qui implémentent des lois de probabilité continue. Toute nouvelle loi continue doit etre rajoutée dans ce package. Le package lawgenerator.others contient toutes les classes qui implémentent des générateurs de nombre aléatoires. Tout nouveau générateur de nombres aléatoires doit etre rajouté dans ce package. La figure 3.13 donne une vue détaillée du contenu de ce package AutoRegressive Générateur de nombre aléatoire avec bruit. BasicGenerator Classe de base pour tous les générateurs de nombre aléatoires. Bernoulli Implemente la loi de Bernouilli BufferMulti Cette classe permet de stocker les points des histogrammes et des courbes à tracer dans un buffer. ComplexLaw Classe abstraite destinée à réifier toutes les classes qui implémentent des lois complexes(gamma,normal, etc...) ConstanteLaw Implémente une loi constante : retourne toujours la meme valeur. ContinualServiceLaw Classe abstraite destinée a réifier toutes les lois de service qui continues (Exponential,IPP etc) ContinueLaw Classe abstraite qui permet de réifier toute les classes qui implémente des lois continues. c est la super classe de la classe précédente 30

lawgenerator[discrete,continuelaw,others] Random AutoRegressive ServiceLaw StatedLaw ContinueLaw BasicGenerator DiscreteLaw ConstanteLaw FiniteSpace MNBP 1..n Uniform01 Bernouilli ContinualServiceLaw ComplexLaw Geometric Poisson Exponential IPP ParetoLaw Uniform NormalLaw Gamma PMMCG EMPMCG MPMCG Normal Normal01 Fig. 3.13 Le package lawgenerator[discrete, continuelaw, others] 31

DiscreteLaw Classe abstraite permettant de réifier toutes les lois discrètes (Poisson,Bernouilli,etc..) EMPMCG Générateur de nombre aléatoire Exponential Implémente une loi exponentielle. FiniteSpace Implémente un générateur de nombre aléatoire à nombre fini d états Gamma Implémente la loi Gamma Geometric Implémente la loi géométrique IPP Implémente une loi d arrivée suivant un Processus de Poisson Interrompue : pendant une durée t 1 il ya des arrivées suivant une loi exponentielle et après il n ya plus d arrivées pendant une durée t 2. MNBP Implémente un générateur de nombre aléatoire MPMCG Implémente un générateur de nombre aléatoire Normal Implémente la loi Normale. Normal01 Implémente la loi Normale de moyenne m = 0 et d écarttype d = 1. PMMCG Implémente un générateur de nombre aléatoire suivant une congruence ParetoLaw Implémente la loi de Pareto : Loi de service Poisson Implémente la loi de Poisson. Random Classe abstraite de base pour l implémentation des lois de probabilités. ServerActivityView Implémente la vue de l activité d un serveur au cours du temps. 32

ServiceLaw Classe abstraite permettant de décrire une loi de service de type continue. StatedLaw Implémente une chaine de Markov avec un nombre fini d états et de transitions. Uniform Implémente une loi uniforme sur un intervalle [a, b]. Uniform01 Implémente une loi uniforme sur [0, 1]. 33

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. 34

User <<model>> Model {see} <<extends>> <<View>> View <<control>> Contoller 1 manages, updates Fig. 4.1 Le modèle MVC 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. 35

TheoricMeanSPModel public void updatetheoricmeans(..){ //traitement de mise a jour des valeurs // theoriques au niveau du modele } public void updatetheoricmeans(..){ TheoricMeansSPController 1 manages //appel de la methode de la classe mere pour garder //la coherence avec la vue super.updatetheoricmeans(..) //mise a jour de la vue qui est un attribut du controller view.updatetheoricmeans(..) } TheoricMeansSPPane public void updatetheoricmeans(..){ //traitement de mise a jour des valeurs // theoriques au niveau de la vue } 5 Conclusion Fig. 4.2 Exemple de modèle MVC tiré du code La nouvelle structure du code avec le modèle MVC 1 permet à la fois une meilleure lisibilité du code et une facilité dans la réutilisabilité et l évolutivité des composants. Il subsiste néanmoins des points à améliorer. Les algorithmes souvent trop longs et difficilement compréhensibles. On pourrait diviser ces algorithmes en plusieurs petites méthodes gérant une partie du traitement. Enfin certaines classes (par exemple SafeLawGenerator, UnsafeLawGenerator) peuvent encore etre scindées suiavnt le modèle MVC afin de séparer la gestion de la fenetre du traceur de courbes et des calculs des moyennes mesurées. Nous n avons pas pu le faire compte tenu des délais qui nous étaient imposés. 1 Modèle connu également sous le nom de PAC(Présentation Abstraction Contrôle) 36

A Annexes A.1 Description des classes par ordre alphabétique AboutApplet Implemente une boite de dialogue qui permet d obtenir des informations sur l applet courante. AbstractFrame Elle hérite de la classe JFrame et est la super classe de toutes les interfaces graphiques. AutoRegressive Générateur de nombre aléatoire avec bruit. AxisDrawer C est une interface qui permet de tracer les axes d un repère BasicGenerator Classe de base pour tous les générateurs de nombre aléatoires. Bernoulli Implemente la loi de Bernouilli BufferMulti Cette classe permet de stocker les points des histogrammes et des courbes à tracer dans un buffer. ButtonController Gère l affichage des boutons. Elle active ou désactive les boutons en fonction des actions de l utilisateur. ButtonPane Cette classe gère l affichage des boutons. ChronoController Permet de contrôler la vue du chronomètre. ChronoPane Affichage du chronomètre : temps restant pour la simulatiuon CommentPane Affichage d un commentaire en bas de l interface pour signaler le début des mesures. ComplexLaw Classe abstraite destinée à réifier toutes les classes qui implémentent des lois complexes(gamma,normal, etc...) ComputeAverage Cette classe implémente des méthodes static qui sont les différentes formules de calculs des moyennes théoriques. Tout ajout 37

de nouvelle formule de calcul de grandeur théorique doit etre déclarée dans cette classe. ConstantString Class abstraite permettant de déclarer toutes les chaines de caractères utilisées par les insterfaces des différents applets. ConstantStringAP Hérite de la classe précédente et déclare toutes les chaines de caractères utilisées par les applets de trafic téléphonique avec perte (AP= Avec Perte) ConstantStringSP Hérite de la classe ConstantStringAP et déclare toutes les chaines de caractères utilisées par les applets de trafic téléphonique sans perte (SP= Sans Perte) ConstanteLaw Implémente une loi constante : retourne toujours la meme valeur. ContinualServiceLaw Classe abstraite destinée a réifier toutes les lois de service qui continues (Exponential,IPP etc) ContinueLaw Classe abstraite qui permet de réifier toute les classes qui implémente des lois continues. c est la super classe de la classe précédente CustomerGraphController Contrôleur de la vue du traceur de courbes pour le nombre moyen de clients dans le système. CustomerViewerPane Classe permettant d afficher dans un repère XY le nombre moyen de clients dans le système et dans la file sous forme graphique. DiscreteLaw Classe abstraite permettant de réifier toutes les lois discrètes (Poisson,Bernouilli,etc..) DoublePoint Classe implementant des points avec 4 coordonnées : (xbas,ybas,xhaut,yhaut) ce quadruplé détermine les coordonnées bas et et haut d un baton dans les histogrammes. DoubleToString Classe permettant de convertir des valeurs (double) en chaine de caractères avec un nombre de chiffres après la virgule. 38

EMPMCG Générateur de nombre aléatoire EngsetApplet Cette classe implémente l applet de simulation de trafic téléphonique dans le cas de la loi d Engset. Elle crée le contrôleur (EngsetGUIController) de l interface affichée. EngsetElement Cette classe décrit les éléments(taches) traités dans la simulation avec une loi d Engset. EngsetGUIController Cette classe est le contrôleur de l interface graphique dans le cas de la simulation avec une loi d Engset. EngsetGenerator C est le moteur de la simulation dans le cas de la loi d Engset. La méthode run() est celle exécutée au démarrage de la simulation. EngsetGraphicPane Cette classe permet d agencer les différents composants graphiques sur l interface graphique. Dans le cas d une simulation avec la loi d Engset on les composants suivants : Choix des paramètres, le panel pour les sources(clients), le panel pour les serveurs, le panel des valeurs mesurées et enfin le panel des valeurs théoriques. EngsetGraphicPaneController Permet de contrôler la vue de l agencement des composants graphiques affichées par la classe précédente. EngsetInterface Cette classe implémente l interface dans le cas d une simulation suivant une loi d Engset. EngsetMeasuredPane Panel permettant d afficher les valeurs mesurées durant la simulation. EngsetMeasuresController Permet de contrôler la vue des valeurs mesurées : mise à jour dynamique des valeurs mesurées. EngsetMenuImplémente la vue du menu dans le cas d une simulation avec la loi d Engset. EngsetMenuControler Permet de contrôler la vue du menu de l interface.gestion des listeners pour les différentes actions de l utilisateur EngsetParamsController Permet de contrôler le choix des parametres. Gestion des listeners sur les différents composants. 39

EngsetParamsPane Permet de disposer les éléments graphiques permettant de choisir les paramètres d entrée du simulateur dans le cas d Engset. EngsetScheduler Cette classe implémente un ordonnanceur de taches utilisées dans la simulation avec une loi d Engset. EngsetTMController Permet de contrôler la vue du panel d affichage des valeurs théoriques calculées dans le cas d Engset? EngsetTMPanePermet d agencer et d afficher les valuers théoriques calculées avec les formule d Engset. EngsetTheoricMeans Cette classe implémente le modèle de clacul des valeurs théoriques avec les formules d Engset. ErlangApplet Cette classe implémente l applet de simulation de trafic téléphonique dans le cas de la loi d Erlang. Elle crée le contrôleur (ErlangGUIController) de l interface affichée. ErlangElement Cette classe décrit les éléments(taches) traités dans la simulation avec une loi d Erlang. ErlangGUIController Cette classe est le contrôleur de l interface graphique dans le cas de la simulation avec une loi d Erlang. ErlangGenerator C est le moteur de la simulation dans le cas de la loi d Erlang. La méthode run() est celle exécutée au démarrage de la simulation. ErlangGraphicPane Cette classe permet d agencer les différents composants graphiques sur l interface graphique. Dans le cas d une simulation avec la loi d Erlang on les composants suivants : Choix des paramètres, le panel pour les sources(clients), le panel pour les serveurs, le panel des valeurs mesurées et enfin le panel des valeurs théoriques. ErlangGraphicPaneController Permet de contrôler la vue de l agencement des composants graphiques affichées par la classe précédente. ErlangInterface Cette classe implémente l interface dans le cas d une simulation suivant une loi d Erlang. 40

ErlangMeasuredPane Panel permettant d afficher les valeurs mesurées durant la simulation. ErlangMeasuresController Permet de contrôler la vue des valeurs mesurées : mise à jour dynamique des valeurs mesurées. ErlangMenuImplémente la vue du menu dans le cas d une simulation avec la loi d Erlang. ErlangMenuControler Permet de contrôler la vue du menu de l interface.gestion des listeners pour les différentes actions de l utilisateur ErlangParamsController Permet de contrôler le choix des parametres. Gestion des listeners sur les différents composants. ErlangParamsPane Permet de disposer les éléments graphiques permettant de choisir les paramètres d entrée du simulateur dans le cas d Erlang. ErlangScheduler Cette classe implémente un ordonnanceur de taches utilisées dans la simulation avec une loi d Erlang. ErlangTMController Permet de contrôler la vue du panel d affichage des valeurs théoriques calculées dans le cas d Erlang? ErlangTMPanePermet d agencer et d afficher les valuers théoriques calculées avec les formule d Erlang. ErlangTheoricMeans Cette classe implémente le modèle de clacul des valeurs théoriques avec les formules d Erlang. Exponential Implémente une loi exponentielle. FiniteSpace Implémente un générateur de nombre aléatoire à nombre fini d états Gamma Implémente la loi Gamma Geometric Implémente la loi géométrique GraphController Permet de contrôler la vue du traceur de courbe pour les différentes statistiques concernant les clients et les serveurs. 41

GraphDrawer Class abstraite permet de réifier les deux types de traçage de courbes : applets de trafic téléphonique avec perte ceux sans perte. GraphDrawerAP Classe implémentant le traçage de courbe dans le cas des applets de trafic téléphnoique avec perte GraphDrawerSP Classe implémentant le traçage de courbe dans le cas des applets de trafic téléphnoique sans perte GraphicPane Classe abstraite permettant de réifier les trois classes de d agencement de composants dans le conteneur central de l interface graphique. GraphicPaneController Cette classe implémente le contoleur de la vue du panel central. Elle est abstraite vue que la vue est abstraite. GraphicPaneSP Affichage des composants graphiques dans la partie centrale de l interface de simulation de trafic téléphonique sans perte GraphicPaneSPController Contrôleur du panel central dans le cas de simultion de trafic téléphoniques sans perte. HelpFrame Permet d afficher une aide pour la simulation. HistoMultiManager Cette classe est la super classe aussi bien des moteurs de simulation(erlang, Engset et sans perte) que des traceurs de courbes. HistoMultiManagerAP Moteurs de simulation dans les cas d une simulation avec perte : Erlang et Engset. HistoMultiManagerASP Cette classe abstraite regroupe les méthodes et les attributs communs aux différents moteurs de simulation. Elle implémente les méthodes de lancement,d arret, de pause, de suspension de pause et de cloture des applets. HistoMultiPane Classe abstraite permettant de réifier les JPanel contenant le traceur de courbes et/ou d histogrammes. HistoMultiPaneAP Implémente la vue du traceur de courbes dans le 42

cas d une simulation avec perte HistoMultiPaneSPImplémente la vue du traceur de courbes dans le cas d une simulation sans perte IPP Implémente une loi d arrivée suivant un Processus de Poisson Interrompue : pendant une durée t 1 il ya des arrivées suivant une loi exponentielle et après il n ya plus d arrivées pendant une durée t 2. Icone Permet d afficher les icones des serveurs et des abonnés. Elle hérite de la classe JLabel. MNBP Implémente un générateur de nombre aléatoire MPMCG Implémente un générateur de nombre aléatoire MeasuredValueController Classe abstraite permettant de réifier les contrôleurs des vues des valeurs mesurées. MeasuredValueControllerSP Cette classe permet de contrôler la vue des valeurs mesurées dans le cas de simulation sans perte.. MeasuredValuePane Affichage des valeurs mesurées : Elle affiche et met à jour les valeurs mesurées. L agencement et le placement est gérés par cette classe. Elle est abstraite. MeasuredValuePaneSP Affichage des valeurs mesurées dans le cas d une simulation sans perte. MenuContrôler Cette classe abstraite permet de gérer le menu de l interface graphique : Enregistrement des listeners et gestions des actions de l utilisateur. MenuControlerAP Cette classe permet d enregistrer les actions de l utilisateur sur le menu dans le cas d une simulation sans perte. MenuControlerSP Gestion des actions sur les éléments du menu dans le cas de simulation sans perte NBSGraphsController Cette class permet de gérer l affichage des statistiques sur les clients et les serveurs durant une simulation sans perte. 43

NBSGraphsViewer Affichage des statistiques concernant les clients et les serveurs. La présence de cette vue dépend de la configuration faite dans le fichier html. Normal Implémente la loi Normale. Normal01 Implémente la loi Normale de moyenne m = 0 et d écarttype d = 1. PMMCG Implémente un générateur de nombre aléatoire suivant une congruence ParetoLaw Implémente la loi de Pareto : Loi de service Poisson Implémente la loi de Poisson. PopMenuController Implémente un controleur pour le menu pop up affiché lorsque l on clique sur le bouton droit de la souris. PopUpListener Classe permettant d enregistrer un listener sur le menu pop up. QuitApplet Propose à l utilisateur une boite de dialogue pour quitter l applet Random Classe abstraite de base pour l implémentation des lois de probabilités. RealServerController Permet de gérer l affichage et la mise à jour des icones des serveurs réels. RealServerPane Affichage des icones des serveurs réels. SafeLawGenerator Moteur de simulation pour trafic téléphonique sans perte. Calcule les moyennes mesurées,les transmets à l interface, génère les courbes (inter-arrivées,des temps d attente et de séjour) et les histogrammes(inter-arrivées, des temps d attente et de séjour. ScreenGifController Classe abstraite permettant de réifier le contrôle des icones affichés sur l interface graphique. 44

ScreenGifDisplayer Afficheur des différentes icones sur le panel correspondant. C est une classe abstraite. ServerActivityController Permet de gérer l affichage du taux d occupation des serveurs au cours du temps. ServerActivityPane Affichage de l activité des serveurs au cours du temps. Contient plusieurs ServerActivityView. ServerActivityView Implémente la vue de l activité d un serveur au cours du temps. ServerBusyMeanController Permet de gérer l affichage et la mise à jour des taux d occupation moyenne des serveurs au cours du temps. ServerBusyMeanPane Affichage dun taux d occupation des serveurs au cours du temps. Contient plusieurs ServerBusyMeanView ServerBusyMeanView Affichage du taux d aoccupation d un serveur au cours du temps ServerBusyView Classe abstraite pour l affichage de l activité ou du taux d occupation d uns serveur au cours du temps. ServerBusyViewPane Classe abstraite permettant d afficher plusieurs ServerBusyView. ServerDisplayController Permet de gérer l affichage et la mise à jour(changement de couleur des icones) des serveurs lors de la simulation ServerMeanViewController Permet de gérer l affichage du taux d occupation moyenne des serveurs au cours du temps. ServersDisplayer Classe abstraite permettant de réifier l affichage des icones des serveurs. ServiceLaw Classe abstraite permettant de décrire une loi de service de type continue. 45

SimuParamsController Permet de gérer l affichage et le maintien de la cohérence des composanst graphiques par rapport aux actions de l utilisateur. SimuParamsPane Permet de choisir les paramètres d entrée d une simulation. C est une classe abstraite. SimuParamsPaneSP Permet de choisir les paramètres d entrée dans le cas d une d une simulation de trafic téléphonique ans perte. ELle hérite la classe précédente. SimuParamsSPController Permet de gérer l affichage et la mise à jour des paramètres d entrée suivant les actions de l utilisateur. SimuPopMenu Affichaged un menupop up lorsque l on clique sur le bouton droit de la souris. SimulationCanvas Permet de dessiner les courbes et les histogrammes. Elle hérite de la classe Canvas de la librairie awt de java. SimulationConstants Déclare les constantes(valeurs entières, réelles, chaines et couleurs) pour les différents applets. SimulationConstantsAP Déclare les constantes(valeurs entières, réelles, chaines et couleurs) les applets de trafic à perte. SimulationConstantsSP Déclare les constantes(valeurs entières, réelles, chaines et couleurs) les applets de trafic sans perte. SimulationController Cette classe est la super classe de toutes les classes qui implémentent un contrôleur.c est une classe abstraite. SimulationDialogBox Cette classe étend la classe JDialog et permet de réifier toutes les boites de dialogues qui peuvent apparaitre en fonction des actions de l utilisateur. SimulationElement Classe abstraite permettant de déclarer les attributs et méhtodes communs aux différents types de taches traitées dans les simulation. Une élément possède les caractéristiques de base suivantes : 1. la date à laquelle l élément sera traité 46