Animation d algorithmes sur les automates d états finis

Dimension: px
Commencer à balayer dès la page:

Download "Animation d algorithmes sur les automates d états finis"

Transcription

1 Animation d algorithmes sur les automates d états finis FACCHINI Jocelyn, RIZZON Léo Responsable de projet : Olga KOUCHNARENKO Université de Franche-Comté Licence 3 Informatique 10 mars 2009

2 Table des matières 1 Analyse Analyse des objectifs Le but du projet Les objectifs initiaux Les objectifs minimums Analyse des besoins Analyse de l existant GraphViz Grappa Librairies graphiques Java : Swing et AWT Développement Outils Java Eclipse GraphViz Grappa L A TEX Structures de données Les structures de base Le lien entre les structures basiques et l affichage L IHM Algorithme de déterminisation Affichage graphique La fenêtre principale L affichage des graphes Stockage Le stockage persistant La classe Exemple Problèmes rencontrés Les problèmes rencontrés La résolution du problème d affichage Fonctionnement de l application et expérience Utiliser l application Expérience Ce qu il reste à faire

3 Remerciements Nous tenons tout d abord à remercier notre responsable de projet Mme Olga Kouchnarenko, pour nous avoir suivi et soutenu durant la réalisation du projet. Elle a su nous prodiguer beaucoup de conseils particulièrements utiles et intéressants. Elle nous a fait profiter de son expérience pour l organisation et le déroulement du projet mais aussi pour l élaboration de ce rapport. Nous la remercions enfin pour les documents qu elle nous a sympathiquement prêtés. Nous espérons avoir été à la hauteur de la confiance qu elle nous a accordée. Nous souhaitons également remercier Mme Violeta Felea pour le temps et l attention qu elle nous a consacrés pour résoudre certains de nos problèmes en Java. Ses compétences dans ce langage mais aussi les qualités pédagogiques dont elle a fait preuve nous ont été d un grand secours. 2

4 Introduction Durant notre dernière année de Licence Informatique, nous avons été amené à réaliser un projet d assez grande ampleur. Il nous a été proposé par Mme Olga Kouchnarenko, et a pour but de proposer une présentation graphique d animation d algorithmes sur des automates d états finis. Il s incrit dans un cadre pédagogique : il s agit d apporter un nouveau moyen de compréhension du cours de Théorie des Langages qui s axe en partie sur l application de ces algorithmes. Nous commencerons par vous présenter notre analyse du sujet et notre étude de l existant afin de bien cerner et définir le travail que nous devions réaliser. Par la suite, nous décrivons comment nous avons procédé pour développer notre application, quels problèmes nous avons rencontrés, les choix que nous avons effectués. Enfin nous concluons par un petit mode d emploi de l application. Nous expliquons également les tests que nous avons effectués sur celle-ci. Pour finir nous proposons une ouverture sur les possibles améliorations de notre projet. 3

5 Chapitre 1 Analyse 1.1 Analyse des objectifs Le but du projet Il existe plusieurs utilisations possible de ce projet. Le principal objectif étant de simplifier et illustrer le déroulement d algorithmes effectués sur des automates d états finis. En effet, certains algorithmes sont un peu complexes à assimiler. Il existe des étapes qui peuvent être nombreuses, et on se représente mal la création pas à pas de l automate résultant. C est pourquoi, expliquer ces algorithmes uniquement avec des déroulements mathématiques et algorithmiques est parfois délicat. Cette problématique est encore plus présente lors de l enseignement à distance car il n y a aucun professeur présent en personne pour apporter des explications supplémentaires. Notre projet consiste donc à créer une application permettant de voir à l écran les étapes d un déroulement d un algorithme. Il est ainsi plus aisé de se représenter l algorithme dans son fonctionnement Les objectifs initiaux Les objectifs initialements prévus étaient assez ambitieux. Tout d abord, l application se devait d être portable et légère. Sa distribution, à travers la plateforme d enseignement à distance, imposait en effet de permettre un téléchargement rapide. De plus, les systèmes des étudiants n étant pas forcément uniformisés, il fallait qu elle puisse fonctionner chez tout le monde. Ensuite, il était souhaitable que l application fournisse plusieurs fonctions : Chargement à la demande d automates existants Création d automates Invocation des algorithmes sur les automates créés Historique des commandes invoquées sur les automates Possibilité de parcourir en avant, en arrière Les objectifs minimums Les objectifs initiaux étant proposés dans l idéal, nous avons redéfinis avec Olga Kouchnarenko des objectifs minimums. En effet il nous était difficile d évaluer la charge de travail étant donné notre faible expérience mais également la nouveauté de ce type de projet, c est à dire l absence d exemples sur lesquels s appuyer pour faire une estimation (on ne savait pas de quoi allait être composé notre projet). Nous nous sommes donc mis d accord sur le fait que la partie graphique de l application, c est à dire l interface Homme-Machine, était très importante. Il était primordiale d avoir un affichage. Il était également obligatoire de pouvoir appliquer l algorithme de déterminisation sur des automates prédéfinis. L étape suivante était la possibilité d entrer soit même des automates et d implémenter la minimisation. 4

6 1.2 Analyse des besoins Afin de mieux nous organiser, nous avons tenter de définir nos besoins. Nous avons de cette manière distingué plusieurs parties : Nous avions besoin de structures solides pour représenter notre automate. Il fallait qu elles soient réutilisables, et assez générales pour qu on puisse y appliquer toutes sortes de traitements. Nous avions besoin d une interface graphique assez évoluée. Nous devions faire le lien entre la partie code et la partie graphique. La partie concernant les structures demandait beaucoup de réflexion (il s agissait de ne pas se tromper, c est la base). Les connaissances techniques requises n étaient pas particulièrement importantes pour cette partie. Nous n avions que très peu fait d interface graphique mais finalement ce fut une partie techniquement assez accessible. Néanmoins, la découverte et l apprentissage demandait un peu de temps. Faire le lien entre le code et l affichage était la partie la plus obscure et totalement inconnue. Cela nous a inquieté, c est pourquoi nous avons concentré nos recherches dessus au début. 1.3 Analyse de l existant GraphViz GraphViz est un programme de visualisation de graphe (Graph Visualization), développé par l équipe de recherche de la société AT&T. Pour pouvoir utiliser ce logiciel, il est nécessaire de s initier au langage DOT spécialement conçut pour ce logiciel afin de décrire un graphe. Une fois le code DOT rédigé, on utilise le programme dot de GraphViz pour générer, dans différents formats, le graphe correspondant. Si on ne précise pas de format de sortie, dot nous retourne un code DOT amélioré définissant la mise en forme des éléments du graphe Grappa Grappa est un package Java qui permet de dessiner des graphes dans des applications Java. De plus, ce package est capable de lire et d écrire du code DOT. Ce programme nous a permis d afficher un automate sans passer par GraphViz. En effet, la première idée que nous avons eu était d afficher des images d automates générées par GraphViz. Heureusement, Grappa permet de créer un panel, que nous avons utilisé avec Swing, contenant l automate que nous créons. Avec ce package nous pouvons faire une mise en forme de l automate en utilisant le programme dot de GraphViz grâce à un appel de processus Librairies graphiques Java : Swing et AWT La partie graphique de notre projet est assez importante. Comme notre formation en Java s est arrêtée avant l utilisation des bibliothèques graphiques, il nous a été nécessaire de nous demander quelle(s) librairie(s) choisir, sans vraiment les connaître! Après des recherches sur internet, il nous est apparu que le choix entre les différentes librairies était assez important mais également assez technique. A priori les bibliothèques natives Swing et AWT sont les plus simples et c est celles-la que nous avons sélectionnées. Elles sont complémentaires et plusieurs tutoriaux bien fait les concernent. L IHM que nous avons réalisée n est pas de la plus grande complexité et nous n utiliserons pas les arcanes secrètes de ces librairies. Il est à noter qu il existe certaines incompatibilités entre Swing et AWT si l on mélange des composants appartenant aux deux bibliothèques. Nous n avons a priori rencontré aucun problèmes de ce type. AWT est plus ancien et moins performant. Swing est plus récent et permet d avoir de meilleures performances et un accès à de multiples fonctionnalités intéressantes. Pour plus d informations sur les différences entre ces librairies : http ://java.developpez.com/faq/gui/?page=generalitesawtswing#graphique AWT vs SWING 5

7 Chapitre 2 Développement 2.1 Outils Java Le choix d utiliser le Java pour ce projet s est imposé à nous très rapidement. Notre responsable de projet ayant eu la même idée, nous nous sommes lancé sans hésiter : notre formation comportait une bonne part de Java, nous étions donc assez à l aise. Le paramètre de portablilité étant important mais aussi l aspect interface graphique faisait de ce langage le candidat idéal. On peut noter l utilisation d une classe particulière, fournie durant notre deuxième année de licence par nos enseignants : la classe Keyboard. Il s agit d une classe simplifiant énormement les saisies au clavier en nous épargnant l utilisation parfois fastidieuse des Scanner ou autre Eclipse Nous avons utilisé Eclipse comme environnement de développement. Il est bien connu pour son incroyable puissance! Et il l a démontré une fois de plus. Entre les corrections en deux clics pour des erreurs qui auraient pu nous torturer des heures, l excellente auto-complétion, l importation des classes dont on a besoin en deux temps trois mouvements, la génération automatisée des accesseurs et plein d autres choses encore, nous pouvons avancer sans exagérer qu Eclipse nous a fait économiser plusieurs heures et a épargné notre patience et notre motivation! De plus, il nous a permis d intégrer en trois minutes le package Grappa, chose que nous ne savons absolument pas faire autrement. Merci Eclipse! GraphViz Notre responsable de projet nous a tout de suite guidé vers GraphViz pour pouvoir afficher un automate. Nous avons donc fait nos recherches sur ce programme. GraphViz est en fait un ensemble d outils permettant de manipuler des graphes à travers un langage, créé spécialement pour ces outils, appelé DOT. Ces outils sont sous la licence libre Common Public License 1. La création de notre premier d automate fut assez simple. Voici un premier exemple qui provient du site internet de GraphViz. digraph G{ Hello->World } Nous créons de cette manière un graphe orienté contenant deux noeuds avec une transition depuis Hello vers World. Dans un automate, les transitions ont une étiquette afin de les différencier, pour cela nous ajoutons à la transition le code [label=etiquette]. De plus, on peut définir une liste de noeuds 1 C est une licence Open Source d IBM qui autorise la modification du code source et garantit le respect des brevets logiciels. 6

8 cibles à la transition en mettant les noeuds entre accolades séparés par des points virgules, par exemple Etat1 -> {Etat2; Etat3}. D un point de vue esthétique les états d un automate sont représentés par des cercles et les états finaux par deux cercles imbriqués. En DOT nous devons ajouter deux instructions : node [shape = doublecircle]; LesEtatsFinaux; permet de définir les états finaux suivis de la liste des noms des états finaux et node [shape = circle]; definit, par défaut, les noeuds par des cercles. Voici la structure de base que nous utilisons pour créer un automate d état fini. digraphe G : permet de créer un graphe orienté nommé G. rankdir = LR; : permet de changer le sens du graphe (Left-Right). node [shape = point]; o; : Nous permet de définir une flèche avec un point afin que celle-ci indique les états initiaux. node [shape = doublecircle]; 1 4; : Nous permet de représenter les états finaux par des noeuds en forme de cercles imbriqués. node [shape = circle]; : Définit par défaut la forme des noeuds 1 -> {3;} [label=b] : Voici une transition depuis l état 1 vers l état 3 par la lettre de transition b o -> {0;} : Ici on a un cas particulier de transitions. En dot, un arc se fait toujours entre deux noeuds c est pourquoi nous avons créé un noeud factice représenté par un point. Nous créons donc l ensemble des états initiaux avec cette instruction. À partir de ce code DOT placé dans un fichier exemple.dot, nous générons, en ligne de commande, l automate sous différents formats graphiques tel que PNG, JPEG, GIF etc... Lorsqu aucun format de sortie n est précisé, GraphViz nous retourne une code DOT avec un positionnement des éléments du graphe. Par exemple, GraphViz nous retourne, pour notre Hello World, le code suivant : digraph G{ node [label="\n"]; graph [bb="0,0,70,108"]; Hello [pos="35,90", width="0.83", height="0.50"]; World [pos="35,18", width="0.97", height="0.50"]; Hello -> World [pos="e,35,36 35,72 35, 64 35,55 35,46"]; } Grappa Dans cette partie, nous allons décrire comment nous sommes arrivé à utiliser Grappa. Malheureusement, nous n avons pas trouvé de tutoriel, ni de pages d explication sur ce package Java sauf sur le site officiel. Bien que celui-ci nous propose le téléchargement d une démo, nous n avons pas pu la lancer. Le seul moyen que nous avions pour comprendre comment utiliser ce package était de lire la javadoc de Grappa. À la première lecture des classes de ce packages, nous avons trouvé la classe GrappaPanel qui est la classe à utiliser pour dessiner un graphe. Cette classe hérite de JPanel, ce qui tombe bien pour nous car nous utilisons Swing pour notre interface graphique. Le constructeur de cette classe prend en paramètre un objet de type Subgraph, nous sommes donc allés voir les caractéristiques de celui-ci. La documentation nous dit que cette classe décrit un sous-graphe, lequel peut être constitué de noeuds, de bords et d autres sous-graphes. Le constructeur d un Subgraph prend en paramètre un objet Subgraph, ce qui peut sembler bizarre mais la documentation précise une petite note nous informant que le sous-graphe racine doit être un graphe entier de type Graph. Cet objet hérite donc de Subgraph, il fournit les methodes permettant de travailler sur un graphe. À partir de là, nous avons pu faire un premier panneau constitué d un noeud avec le code suivant : Graph g = new Graph("Nom du Graphe"); Node n = new Node(g,"Nom du noeud"); 7

9 GrappaPanel gpan = new GrappaPanel(g); Ensuite, nous n avons plus qu à ajouter ce panneau dans un objet de type JFrame. Dans la présentation de Grappa sur le site internet officiel, nous avons pu lire qu il existe des méthodes, dans ce package, pour lire et écrire des graphes avec le langage DOT. Nous avons donc repéré la classe Parser dans la liste des classes de Grappa. Le constructeur de ce parser prend en paramètre un objet de type InputStream. En cherchant dans l api Java, nous avons remarqué qu il existe une classe FileInputStream qui hérite de InputStream. Ainsi nous pouvons lire dans un fichier un code DOT d un graphe ayant déjà été positionné. Nous utilisons donc le code suivant, pour un fichier nommé Hello- World.dot contenant le code retourné par GraphViz. FileInputStream fis = new FileInputStream(new File("HelloWorld.dot")); Parser p = new Parser(fis); Graph g = p.getgraph(); GrappaPanel gpan = new GrappaPanel(g); Mais cette technique a un inconvénient pour le développement de notre application. En effet, nous avons vu qu il faut que le code DOT doit avoir des instructions de positionnement. Un code en langage DOT rédigé à la main ne contient pas forcément de positionnement et nous ne savons pas à l avance combien de noeuds comportera le graphe à étudier. Il est assez difficile de développer un algorithme de mise en forme de graphe, de plus il est inutile pour nous de le créer car GraphViz contient cet algorithme. Nous verrons plus loin comment résoudre le problème de positionnement des éléments dans un graphe (voir 2.6.2) L A TEX Pour rédiger notre rapport, nous avons découvert le logiciel L A TEX souvent utilisé pour les rédactions scientifiques. Afin de ne pas perdre de temps à la rédaction du rapport, nous avons appris à l utiliser en rédigeant quelques rapports intermédiaires dans le but de garder des informations sur ce que nous avons fait. La prise en main ne fut pas difficile pour la saisie de texte. Nous avons commencé à avoir des difficultés lors de l ajout d images. En effet, nous avons découvert comment L A TEX positionne tout cela de manière à ne pas perdre de place sur les pages. Il existe tout de même des moyens pour remédier à ça, pour cela nous avons recherché sur différentes sources expliquant le fonctionnement de L A TEX (voir webographie et bibliographie). Nous sommes très satisfaits d avoir découvert ce logiciel et épaté par tout ce qu il propose. 2.2 Structures de données Les structures de base Automate décrit un automate contenant une liste d Etat et implémente les méthodes de traitement de celui-ci Etat décrit un état d un automate et est composé d un ensemble de transitions Transition décrit les transitions par une étiquette pour un état vers une liste de cible Pour constituer les structures de données de base (c est à dire des structures qui servent de fondation à notre application), nous nous sommes inspiré de nos Travaux Pratiques en Théorie des Langages où nous avons traité des automates avec le langage C. À partir de la structure d automate précédente, nous avons défini une structure orientée objet puisque nous utilisons le langage Java pour notre application. Un automate est un ensemble d états reliés entre eux par des transitions qui permettent de passer d un état vers un autre état. Ces transitions se caractérisent par une étiquette. Pour notre application, qui a pour but d aider des étudiants en Théorie des Langages, nous utilisons une lettre de transition comme étiquette. Cette dernière peut se faire vers plusieurs états avec une même étiquette lorsque l automate n est pas déterministe. 8

10 Fig. 2.1 Structures basiques Pour travailler sur un automate nous avons défini 3 classes (voir 2.1). Automate Cet objet est défini par les attributs suivant : name : Nom, de type String, de l automate. listetat : Ensemble des états, de type TreeSet<Etat>, composant l automate. Etat Cet objet est défini par les attributs suivants : codeetat : Codification, de type entier, de l état. name : Nom, de type String, de l état. isinitial : Booléen permettant de savoir si l état est initial. isfinal : Booléen permettant de savoir si l état est final. listtrans : Ensemble des transitions, de type TreeSet<Transition>, partant de l état. Transition Cet objet est défini par les attributs suivants : etiquette : Etiquette, de type String, de la transition. listcible : Ensemble des états cibles, de type TreeSet<Integer>. Tous les ensembles sont des collections de type TreeSet. Nous avons choisi cette collection car elle nous permet des ajouts d éléments très rapides ainsi que la possibilité de ne pas créer de doublons. 9

11 2.2.2 Le lien entre les structures basiques et l affichage EtapeAlgorithme qui fait le lien entre la déterminisation d un Automate et la création du DeroulementGraphe correspondant GenerationGraphe qui redéfinit un Graph plus adapté à notre utilisation DeroulementGraphe qui rassemble une liste de GenerationGraphe composant un déroulement d algorithme EtapeAlgorithme Le but de notre projet étant d animer des algorithmes sur les automates d états finis, il nous fallait donc trouver un moyen de faire le lien entre les algorithmes et l affichage graphique. Pour cela nous avons eu l idée de créer un objet qui permet de décrire une étape dans un algorithme. Nous avons donc créé la classe EtapeAlgorithme qui contient les attributs suivants : description : Chaîne de caractères qui décrit l étape. codedot : Chaîne de caractères contenant le code DOT pour afficher l automate à cette étape. Ainsi, nous construisons une liste d objet EtapeAlgorithme pour décrire une suite d étapes. Cette liste est retournée par les algorithmes sur les automates d états finis. Par la suite, l affichage graphique récupère cette liste pour créer les affichages nécessaires à l animation. GenerationGraphe GenerationGraphe est une classe importante dans notre projet. Elle représente graphiquement un Automate. C est cette classe qui nous permet de passer d un objet Automate, à un objet affichable dans une fenêtre. C est également dans cette classe qu on va utiliser Grappa. En effet un des attributs de GenerationGraphe est graphe de type Graph. Grâce à la méthode GenerationGraphe automatetogenerationgraphe(automate a), on récupère un graphe correspondant au code DOT de Automate. Mais comme expliqué en 2.6.1, il faut positionner notre graphe. C est la méthode filtragegraphe() qui va modifier notre graphe. Ainsi, le booléen position nous indique si le Graph, il est à true si il a été filtré. Pour effectuer un filtrage, il est nécessaire d utiliser un programme spécifique, dans notre cas, dot. C est pourquoi nous avons nomprogramme qui indique le chemin du programme à utiliser et nomfichier qui indique le chemin du fichier source contenant le code DOT. Le chemin du programme pose un problème non résolu car on a une dépendance vis à vis du systeme d exploitation. Voir Enfin, description est un String qui contient la description correspondante au GenerationGraphe, surtout utile à l affichage des étapes d un déroulement d algorithme. DeroulementGraphe Cette classe est très simple et s utilise dans la continuité directe de GenerationGraphe. L animation réelle d un algorithme n étant pas réalisable simplement et dans le temps dont nous disposions, nous avons opté pour un affichage image par image. DeroulementGraphe possède peu d attributs : nomliste qui va permettre de décrire la liste contenue dans l objet. Elle permet, par exemple de décrire le type d algorithme qui est représenté. L attribut le plus important, liste, est une liste chainée de GenerationGraphe qui correspondent chacun à une étape du déroulement de l algorithme. A noter un constructeur très particulier dans cette classe. DeroulementGraphe(String nom, LinkedList EtapeAlgorithme ListEtape) qui prend en paramètre directement la liste des étapes. Nous avons fait comme ça pour simplifier la création automatique des DeroulementGraphe à partir des EtapeAlgorithme. Cela va servir au moment de l ouverture d un déroulement précedement enregistré. La difficulté a été que nous n utilisions le programme dot que sur un fichier de code DOT. Il nous fallait donc passer par un fichier temporaire. Par chance c est très facile en Java. On écrit un à un le code DOT de chaque étape dans un fichier temporaire qui va nous permettre de générer le GenerationGraphe correspondant. Il est intéressant de noter qu on modifie le nom du fichier source en Temporaire pour éviter les erreurs possibles si on tente des traitements qui utiliseraient le fichier source. Celui n existant naturellement plus (temporaire...). 10

12 2.2.3 L IHM FenetrePrincipale qui rassemble toute la partie affichage graphique du projet ExitEcouteur est l écouteur qui permet de gerer la fermeture de l application. ExempleEcouteur est l écouteur qui permet regénérer les exemples prédéfinis dans Exemple. FenetrePrincipale Cette classe regroupe tous les élements permettant de faire l affichage graphique. Il s agit d une classe héritée de JFrame qui comporte une barre de menu et trois zones distinctes qui ont un rôle spécifique lors de l affichage. FenetrePrincipale possède un très grand nombre d attributs. Cet état de fait est clairement dû à notre manque d expérience en programmation évenementielle. Il est surement possible de faire un nettoyage dans ces attributs. Egalement, il doit être possible d optimiser et simplifier la gestion des écouteurs. Il faut mettre ca sur le compte du manque de temps et voir ca comme notre premier essai d interface. Bon nombre des attributs de cette classe vont servir à la mise en forme ou au remplissage de la fenêtre, on trouve ainsi des JPanel, une TextArea, un JLabel, des Font, des JButton et des JMenuItem. Mais on a également quelques attributs utilisés pour l animation ou l ouverture des fichiers. Par exemple, chemindefault est une variable qui indique le chemin d ouverture par défaut lors de l enregistrement et l ouverture d automates ou de déroulements. On va mettre automate à null si on charge un déroulement et inversement. Ca permet de solidifier le code. droite est un booleen qui indique, lors du parcours d un DeroulementGraphe, le sens du parcours. C est à dire de savoir si on avance dans la liste ou on recule. En fait c est utile lors d un changement de direction. En effet la structure des Iterator oblige de faire deux fois le déplacement lorsque l on change de sens. Ce problème est expliqué en 2.6.1, au paragraphe concernant les iterators. ExitEcouteur Dans cette classe, on utilise l interface ActionListener. Elle permet de redéfinir un écouteur d évenement spécifique en indiquant l action à effectuer. On a écrit cet écouteur pour la gestion de la fermeture de l application. On affiche ainsi une petite fenêtre de confirmation. ExempleEcouteur Cette classe qui utilise également l interface ActionListener fonctionne comme ExitEcouteur. C est un écouteur qui va permettre de générer les exemple prédéfinis dans la classe Exemple (voir Algorithme de déterminisation Notre projet a pour but d animer des algorithmes sur les automates d états finis. L un des plus important est celui de la déterminisation d un automate. En effet, un automate qui contient des transitions avec la même étiquette depuis un état vers plusieurs états est dit non déterministe puisque il est impossible de demander à une machine de choisir une transition. Il faut donc utiliser cet algorithme sur cet automate. En plus de déterminiser un automate, notre algorithme de déterminisation va nous retourner une liste d étapes de l algorithme, des objets de type EtapeAlgorithme. Cette liste va nous permettre de faire l animation dans l interface graphique. Tout d abord, nous allons expliquer l utilité de trois variables, deux tableaux dynamiques et une liste chaînée. listeetats est un tableau dynamique qui va contenir les nouveaux états créés issus de la déterminisation, nous n utilisons pas l ensemble des états de l automate car nous en avons besoin. Nous avons choisi un tableau dynamique afin de le parcourir avec un entier en faisant des accès par indice car il n était pas possible de parcourir un ensemble qui se rempli au fur et à mesure avec un Iterator. 11

13 listensbletats est un tableau dynamique qui contient des chaînes de caractères représentant les ensembles d états correspondant. Nous avons choisi ce type de collection car nous utilisons les indices pour représenter les codes des nouveaux états. listetape est une liste chaînée qui va contenir des objets EtapeAlgorithme. Les principales étapes de l algorithme de déterminisation sont les ajouts des états et leurs transitions. Pour commencer la déterminisation, nous recherchons l ensemble des états initiaux. Nous parcourons donc simplement l ensemble des états de l automates en repérant les états initiaux. Pour enregistrer la correpondance entre le nouvel état et l ensemble des états qui le composent, nous utilisons le tableau listensbletats. Les indices de celui-ci représentent les codes des nouveaux états constitués qui sont créés dans un tableau dynamique d états. Ce dernier va remplacer l ensemble d états listetat de l ancien automate. Par exemple, pour un nouvel état 0 représenté par l ensemble des anciens états {1 ;2 ;3}, on a à l indice 0 la valeur {1 ;2 ;3} et le nouvel objet Etat a pour code 0. Ensuite, nous allons parcourir le tableau dynamique des nouveaux états jusqu à ce qu il n y ait plus d états créés. Pour chaque nouvel état, nous cherchons, pour une etiquette de transition donnée, l ensemble des cibles de tous les états, constituant le nouvel état étudié. Ensuite nous ajoutons l ensemble dans le tableau dynamique listensbletats si cet ensemble n existe pas encore. En même temps, nous ajoutons une étape dans la liste chaînée listetape en précisant si l état est créé ou non et les nouvelles transitions trouvées. 2.4 Affichage graphique La fenêtre principale La partie graphique de l application est regroupée en une seule fenêtre. Il s agit d une instance de FenetrePrincipale qui permet d accèder à toutes les fonctionnalités de l application. Toutes les actions se font à partir de la barre de menu : Ouverture d un déroulement d algorithme (la sauvegarde n est pas gérée) Saisie, ouverture et sauvegarde d un automate Modifier le répertoire d ouverture par défaut, quitter l application (proprement, avec une fenêtre de confirmation). Il y a également les boutons Suivant et Précedent qui permettent de naviguer entre les différentes étapes d un déroulement d algorithme. La gestion des erreurs est effectuée avec de belles fenêtres également. Ainsi en cas de tentative de lecture, si aucun déroulement n a été seléctionné, on a une erreur. Les écouteurs sont tous integrés dans cette classe mise à part celui qui permet de quitter l application qui est ExitEcouteur et celui de génération des exemples ExempleEcouteur. On trouve ensuite deux zones différentes : une zone de texte et une zone où l on affichera les graphes. Ces zones seront décrites dans la sous-section suivante. Quant à la possibilité de modifier le répertoire par défaut, il s agit simplement de pouvoir selectionner un chemin qui sera ouvert par défaut lors des ouvertures et enregistrements L affichage des graphes L affichage promprement dit se fait dans les deux zones principales : La zone de droite permet d afficher l image du graphe, elle se dimensionne en fonction de la taille de l image (donc du graphe). La zone de gauche va permettre un affichage texte correspondant à l image, on affiche par exemple une description de l étape lors du déroulement d un algorithme (le scroll vers le bas se fait automatiquement pour suivre le déroulement des expliquations). Comment ca marche? Le principe est le même pour un automate simple ou un déroulement d algorithme. On va afficher le Graph (classe de Grappa) contenu dans le GenerationGraphe. Notons ici un fonctionnement un peu particulier : l évenement part de FenetrePrincipale, qui fait alors un appel à une méthode de GenerationGraphe qui elle même fait de nouveau appel à FenetrePrincipale. Ca 12

14 pourrait être amélioré, ca sert ici maladroitement à factoriser les tests de validité etc... La différence entre la gestion d un automate et d un déroulement est simple. Pour un automate, on affiche juste le GenerationGraphe correspondant. Pour un déroulement, on va associer un DeroulementGraphe à la fenêtre. C est lui qu on va parcourir avec les boutons Suivant et Précedent. A chaque pas, on va enlever l image précedente, afficher la nouvelle et écrire dans la zone de texte la description de cette image. 2.5 Stockage Le stockage persistant Nous avons créé un systeme de stockage persistant. En effet il est possible de sauvegarder ou d ouvrir un automate que l on aurait créé. Il est très facile de le faire depuis le menu Automate. Il est également possible de faire la même chose avec un déroulement d algorithme, depuis le menu Déroulement. Nous avons utilisé l interface Serializable : la sérialisation consiste à écrire des données présentes en mémoire vers un flux de données binaires, ce procédé va donc nous permettre de rendre nos objets persistants. Donc, c est un système qui permet de stocker des objets dans un fichier pour les recharger plus tard. Si un objet est Serializable (i.e. il implémente l interface du même nom), il pourra être enregistré sur le disque et chargé à l identique lors du démarrage suivant. Le gros avantage étant que ces sauvegardes sont indépendantes du système d exploitation. Mais nous avons eu un sérieux problème au départ. En effet comme expliqué plus précisement en les classes que nous aurions aimé enregistrer, GenerationGraphe et DeroulementGraphe, étaient composées d un ou plusieurs Graph, classe de Grappa. Celle-ci n étant pas Serializable... Par contre nous ne sommes pas parvenu à choisir l emplacement du dossier destination pour la sauvegarde (voir 2.6.1). Nous avons déja enregistré quelques exemples qui sont lisibles depuis l application. Ces exemples sont gérés depuis la classe Exemple. Nous avons choisi une écriture pour les extensions des fichiers destinés à notre application : Pour les automates simples, nous écrirons *.aga, pour AnimalGoAutomate Pour les déroulement d algorithme, nous écrirons *.agd pour AnimalGoDeroulement La classe Exemple La classe Exemple permet de définir les automates et déroulements d algorithme qu on veut générer comme exemples. Ces exemples seront enregistrer sur le disque de façon persistante. Dans un premier temps il faut créer l exemple en dur dans une nouvelle méthode de cette classe. Ensuite, il suffit d integrer cette méthode à la méthode statique d appel generationexemple(). Pour connaître les exemples déja créés, voir Problèmes rencontrés Les problèmes rencontrés Problèmes résolus L affichage avec Grappa, GraphViz Nous avons rencontré un problème lors de l utilisation de Grappa pour afficher un automate. Nous proposons de décrire plus précisement celui-ci et les étapes qui nous ont permis de résoudre ce souci dans la partie dédiée, en Le stockage d exemples Comme expliqué en 2.5.1, nous avons implémenté la possibilité d enregistrer de manière persistante et d ouvrir des exemples d automates ou de déroulements d algorithme préenregistrés. La difficulté est survenue lorsque nous nous sommes rendu compte que Graph, classe de Grappa, n était pas Serializable. Les classes intéressantes à sauvegarder, c est à dire GenerationGraphe et 13

15 DeroulementGraphe, sont composées d un ou plusieurs Graph. Il ne nous était pas possible de modifier le package Grappa (trop complexe a priori, même si la licence ne posait pas de problème). Nous avons trouvé un compromis : Pour les automates, nous enregistrons des Automate, classe Serializable. La transformation en GenerationGraphe se fait directement à l ouverture et est invisible pour l utilisateur. L automate étant stocké dynamiquement dans FenetrePrincipale, on peut l enregistrer sans problème tant que l utilisateur n a pas chargé autre chose. Pour les déroulements d algorithmes, c est un peu moins bien conçu : en effet, on enregistre en fait une liste chaînée d EtapeAlgorithme. C est optimisable car le code DOT est non positionné dans cette liste. Du coup, pour génerer un DeroulementGraphe, on applique le filtrage (positionnement des élements) sur chaque élement, et ce, à chaque fois qu on va ouvrir un déroulement. Iterator dans l animation d algorithme Voici un problème qui, malgré que nous l ayons résolu, nous laisse une interrogation. Il s agit d utiliser un ListIterator sur une la liste chainée des étapes d un DeroulementGraphe pour effectuer le parcours en utilisant les boutons Suivant et Précedent. Cet iterator permet un parcours dans les deux directions. Pourtant, de part le fonctionnement d un iterator cela pose un problème. En effet, le traitement (dans notre cas l affichage) d une case amène l iterator un pas après celle-ci. Si on souhaite changer de sens, on réaffiche donc la même case. Il faut donc détecter le sens courant pour effectuer deux déplacements de suite si on change de sens. C est assez facile à régler avec un booleen indiquant la direction courante mais c est étonnant dans le sens où les iterator de Java sont des outils de parcours assez puissants. Disons que ca nous a étonné de devoir utiliser une technique un peu bricolage comme ça, on aurait pu supposer que ce cas de figure assez basique soit prévu par Java. Utilisation de la fenêtre principale dans les écouteurs. Il s agit en fait d un des soucis qui nous a obligé à compliquer la classe FenetrePrincipale. En effet, il se trouve que pour la plupart des actions à effectuer, nous avons besoins de le la fenêtre hôte elle même. Par exemple, pour ouvrir un automate sauvegardé, on ouvre une fenêtre de selection de fichier : new JFileChooser(cheminDefault).showOpenDialog(this); Le this se rapporte à la FenetrePrincipale d où part l évènement. Il aurait été judicieux d avoir une méthode qui retourne la fenêtre d où provient l évènement pour pouvoir créer ainsi un écouteur dédié et alléger ainsi grandement le code de la classe fenêtre hôte. Cela n a été possible qu avec l écouteur ExitEcouteur, qui permet de quitter l application, et avec l écouteur ExempleEcouteur, pour lesquels il n y a pas besoin de la fenêtre. Peut être est ce possible, ou peut être que notre manière de coder n est pas idéale. En tout cas nous avons fait comme nous avons pu, c est à dire en redéfinissant nos écouteurs directement dans FenetrePrincipale. On pourrait imaginer une autre solution qui consiste à passer en paramètre au constructeur de l écouteur la fenêtre d où provient l évènement pour la mettre comme attribut de la classe de l écouteur : c est la seule solution que nous voyons. Problèmes non résolus Broken pipe sous linux Lors de nos tests sur l affichage des automates avec Grappa nous avons rencontré des exceptions de type Broken Pipe. Cette erreur, lors de nos tests, n apparait que sous le système d exploitation Linux car nous n en avons pas rencontré sous Windows. Malheureusement pour nous, cette exception vient de Grappa lorsqu il fait appel à GraphViz pour pouvoir faire la mise en forme du graphe. Nous conseillons, lorsque l on rencontre cette erreur, de recharger le déroulement ou la déterminisation de l automate puisque nous avons constaté que cette erreur surgit de manière aléatoire. Nous prévoyons par la suite de rapporter ce problème à John Mocenigo, le créateur de Grappa, afin de déterminer d où provient réellement l erreur et si possible de la résoudre. Détection de l OS Un des problèmes recontré par l utilisation de GraphViz est la limite de portabilité engendré par celuici. En effet, GraphViz étant écrit en C, il a été créer différemment pour différents systèmes d exploitation. Dans le but de diffuser notre application à des étudiants à distance, il y a de forte probabilité que ceux-ci 14

16 n aient pas tous le même sytème. Notre application ne cherche pas à savoir où se trouve le programme dot de GraphViz bien que nous ayons pensé à créer une petite fenêtre pour que l utilisateur indique où se trouve le dossier dans lequel se trouve les excécutables de GraphViz. Pour palier indirectement à ce problème, nous recommandons d ajouter le chemin du dossier des exécutables de GraphViz dans la variable d environnement système path. Particulièrement sous Windows, les logiciels installés ne figurent pas tous dans cette variable. Choix de l emplacement de la sauvegarde Comme expliqué en 2.5.1, nous avons introduit dans notre projet des possibilités de stockage persistant. Nous utilisons un chemin par défaut modifiable. Ce chemin est utilisé par les fenêtres de sélection de fichiers pour s ouvrir à l endroit voulu. Lors de la sauvegarde, la fenêtre s ouvre bien sur le dossier par défaut, on peut naviguer etc, mais lorsque l on enregistre, le fichier est toujours placé au même endroit. Cela doit probablement venir de l enregistrement par la classe Stockage. Nous n avons malheureusement pas le temps de nous en occuper La résolution du problème d affichage Nous décrirons dans cette partie un problème que nous avons rencontré lors de l utilisation de Grappa pour afficher des automates. Tout d abord, il nous a fallu faire des recherches sur ce qui pouvait exister comme solution d affichage de graphe. Nous avons découvert GraphViz mais également Grappa. Grappa est un package Java, il était donc très interessant. Grappa est Open Source, sous license CPL 1. Nous pouvions donc tout à fait l utiliser pour notre projet. Mais qu est ce qu un package Java? En gros, un package est un regroupement de plusieurs classes crées pour fonctionner ensembles. Cela permet une organisation accrue des composants des programmes. Par contre, nous ignorions comment utiliser un package. Et Eclipse nous a rendu un fier service et a réglé ce problème en très peu de temps. Il suffit de faire un clic droit sur notre projet propriétés Chemin de compilation Java Bibliothèques Ajouter des fichiers.jar externes (Grappa est sous forme d un fichier.jar) on cherche Grappa sur notre PC et on sélectionne le.jar c est fait en deux temps trois mouvements!. Pour afficher, c est assez simple (du moins on le pensait...). Grappa gère des Graph, mais en en associant un avec un code DOT directement généré par notre programme (voir le code en 2.1.4, nous avons découvert un petit soucis : Fig. 2.2 Exemple d automate sans positionnement (Empilement des éléments) En effet, Grappa ne gère pas la disposition des élements de l automate dans le GrappaPanel. Nous avons fait des recherches et nous avons découvert une autre version des fichiers DOT : les code DOT positionné. Il existe plusieurs programmes, dont fait partie dot, qui permettent l agencement des états, transitions etc. Mais dot est un programme qui fait partie de GraphViz. Et tout ce n est pas écrit en Java! Il nous a fallu trouver un moyen de faire appel à ces programmes depuis notre application. Pour faire ceci, nous avons exploré l utilisation des appels processus. En Java, on utilise des Process Voila le code utiliser, il permet l application de monprogramme sur monfichier. On utilisera monprogramme = dot et monfichier = l emplacement du fichier dot à positionner. Process pb = new ProcessBuilder(nomProgramme, nomfichier).start(); GrappaSupport.filterGraph(graph On effectue ce qu on appelle un filtrage sur le graphe : on applique sur ce Graph qui correspond au code DOT positionné par dot. 15

17 On arrive ainsi à ceci : Fig. 2.3 Exemple d affichage correct d un automate 16

18 Chapitre 3 Fonctionnement de l application et expérience 3.1 Utiliser l application L utilisation de l application est assez simple. Ce qu il faut savoir : on traite séparement les automates simples et les déroulements d algorithmes : Un automate possède une unique représentation, on ne peut pas le parcourir. On peut le sauvegarder et en ouvrir ou en saisir un autre. Un déroulement d algorithme est une suite d automates. On peut donc l explorer, dans les deux sens. On peut le sauvegarder et en ouvrir un autre. La barre de menu Toutes les actions se déclenchent à partir de la barre de menu : Fichier : Regénérer les exemples : permet de regénérer les exemples prévus par défaut Modifier le chemin par défaut : permet de modifier le chemin par défaut d ouverture des fenêtres de selection des fichiers Quitter : Permet de quitter l application Automate : Saisie manuelle d un automate : permet de saisir un automate personnel à travers la console Ouvrir un automate : ouvre une fenêtre de selection de fichier pour ouvrir un automate Enregistrer un automate : ouvre une fenêtre de selection de fichier pour enregistrer un automate Déterminiser un automate : effectue la déterminisation sur l automate courant et affiche le déroulement correspondant Déroulement : Ouvrir un déroulement d algorithme : ouvre une fenêtre de selection de fichier pour ouvrir un déroulement d algorithme Enregistrer un déroulement d algorithme : ouvre une fenêtre de selection de fichier pour enregistrer un déroulement d algorithme La saisie dans la console La seule partie délicate est la saisie dans la console. La première chose à savoir lorsque l on commence une saisie manuelle d automate est que toute la partie graphique de l application devient innaccessible. De plus, soit on finit correctement la saisie, soit on ferme (violemment!) l application. C est un point à améliorer. Eclaircissons un peu ca. La chose la plus spéciale dans cette saisie étant de devoir donner le nombre d étiquettes différentes il va y avoir pour les transitions à partir d un état. A part ca, reprenons en gros le déroulement de celle-ci : On donne un nom à notre automate 17

19 On indique le nombre total d états. On crée tous ces états (nom, final, initial) On reprend chaque état un par un et on indique leurs tansitions on indique le nombre total d étiquettes différentes pour l état (pour un état qui aurait 2 transitions par a, 1 par b et 3 par c et 0 par d, on indiquerait donc 3) pour chaque étiquette on va indiquer la ou les cibles : attention ici, on attribue un numéro à chaque état pour l indentifier en tant que cible. Voila, avec ça, ça ne devrait pas poser de problemes Avec ça, on notera que, malgré un semblant de choix de dossier de destination, les sauvegardes se font toujours au même endroit. Nous ne savons pas vraiment pourquoi, ou, du moins, pas comment régler ce problème (voir Les exemples Pour la génération des exemples, il suffit de sélectionner l action Regénérer les exemples dans le menu Fichier de la barre de menu. L exemple Automate1 correspond à l automate du TP de TL de la L3. C est un automate non déterministe assez simple. L exempel Automate2 est un exemple d automate de grande taille. C est à dire de taille qu on suppose plus ou moins maximum dans la pratique et l utilisation de notre application. 3.2 Expérience Nous n avons malheureusement pas eu le temps d établir un protocole de test très évolué. Nous n avons testé notre application que sur nos machines personnelles : Ubuntu 8.10 et Windows XP. Toutes les fonctions proposées par le programme ont été testées sur les exemples par défaut. 3.3 Ce qu il reste à faire... Ce projet étant très vaste et intéressant il y avait vraiment beaucoup à faire. Malheureusement nous n avons pas eu assez de temps pour mettre en place tout ce que nous aurions voulu sur ce projet. Si quelqu un reprend celui-ci un jour pour l améliorer, le continuer, nous écrivons cette partie afin de diriger ses premiers travaux. Optimisation de l ouverture des déroulements d algorithmes Comme expliqué en 2.6.1, l ouverture d un déroulement d algorithme est peu optimisé. En effet on va enregistrer une liste de code DOT qui n ont pas encore été positionné par le programme dot. Donc, à chaque ouverture du déroulement, on applique le filtrage (c est à dire l action de positionner le code DOT) sur chaque élément. L idéal serait de trouver un moyen de sauvegarder le code une fois modifié, soit en faisant en sorte qu il le soit dans EtapeAlgorithme avant la sauvegarde, soit en modifiant carrément le principe et sauver autre chose. Choix de la destination d une sauvegarde Nous avons vu que lors de la sauvegarde d un automate ou d un déroulement, le fichier ne s enregistre en réalité pas à l endroit choisi mais toujours à la même place. C est un problème que nous n avons pas vraiment étudié, nous ne savons donc pas grand chose à son propos. A priori le problème viendrait plutôt de la classe Stockage. C est un peu dommage de ne pouvoir enregistrer où l on veut, surtout après avoir bien cherché la destination dans un beau JFileChooser. Gestion des erreurs et des exceptions Il est possible d améliorer et solidifier le code de notre application. Il n est pas du tout sûr que toutes les exceptions soient bien captées ou encore, nous aurions pu lever nos propres exceptions à certain endroit. On pourrait également augmenter le nombre de tests de validité, par exemple à l ouverture d un automate dans la fênetre principale. 18

20 De plus, certaines exceptions qui sont levées pourraient être d avantage expliquées. Exemple : lors de l ouverture d un automate, si l on selectionne un fichier invalide, c est à dire qui ne correspond pas à un automate enregistré, un message sera écrit dans la fenêtre et une exception sera levée, visible dans la console : Erreur au chargement d un automate : java.lang.classcastexception : java.util.linkedlist cannot be cast to Automate. Mais ce message est peu explicite pour un néophyte, il décrit le moment où il y a eu le problème et indique le type de problème. On pourrait tenter d améliorer ceci, par exemple en faisant un test de type sur l exception, en déduire que l utilisateur à choisit un mauvais fichier et lui dire dans un beau message! C est un petit détail qui pourrait être sympathique. Notons que pour les tests de validité des fichiers, on pourrait même tester en plus le format du fichier, c est à dire en fait, regarder si il y a bien écrit *.aga ou *.agd. Systeme de saisie et de modification d automate Nous pensons qu il serait plus convivial de créer une saisie graphique d un automate et en même temps la modification de celui-ci. En effet, la saisie en console d un automate est assez fastidieuse et il est assez fréquent de se perdre dans la saisie. Une idée pour cette interface de saisie serais d afficher au fur et à mesure l automate en construction, de plus il serait bien de rajouter des méthodes pour permettre le retrait d éléments contenu dans les ensembles constituant un automate. Par ailleurs, la saisie graphique permettrait un contrôle interactif des manipulations de l utilisateur. Par manque de temps pour ce projet, nous n avons pu faire cette interface de saisie. D un autre côté, notre saisie console d un automate ne permet pas d ajouter dynamiquement des éléments. Par exemple, si nous oublions un état il est obligatoire de devoir resaisir l automate en entier. De nouveaux algorithmes... Il est judicieux bien sûr de réutiliser notre application afin d y ajouter de nouveaux algorithmes exécutables sur des automates d états finis. On pense par exemple à la minimisation... 19

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Premiers Pas avec OneNote 2013

Premiers Pas avec OneNote 2013 Premiers Pas avec OneNote 2 Présentation de OneNote 3 Ouverture du logiciel OneNote 4 Sous Windows 8 4 Sous Windows 7 4 Création de l espace de travail OneNote 5 Introduction 5 Présentation des différentes

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Protéger une machine réelle derrière une machine virtuelle avec pfsense

Protéger une machine réelle derrière une machine virtuelle avec pfsense Protéger une machine réelle derrière une machine virtuelle avec pfsense Je vous présente un petit tutoriel sur la façon d utiliser pfsense au sein de VirtualBox comme passerelle pour votre machine Windows

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de Guide de l utilisateur Faites connaissance avec la nouvelle plateforme interactive de Chenelière Éducation est fière de vous présenter sa nouvelle plateforme i+ Interactif. Conçue selon vos besoins, notre

Plus en détail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

Installation et prise en main d UBUNTU

Installation et prise en main d UBUNTU Installation et prise en main d UBUNTU Introduction Ubuntu est une distribution Linux adoptée par près de 25 millions d utilisateurs de par le monde. Contrairement aux systèmes d exploitation propriétaires

Plus en détail

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE Utilisation des TBI UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE T B utoriel de base, ce mode d emploi a pour objectif de vous présenter les principales

Plus en détail

www.imprimermonlivre.com

www.imprimermonlivre.com 0 www.imprimermonlivre.com Composition d une couverture avec Word L objectif de ce guide est de vous proposer un mode opératoire pour créer une couverture avec Word. Nous vous rappelons toutefois que Word

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

Utilisation du client de messagerie Thunderbird

Utilisation du client de messagerie Thunderbird Outlook express n existant plus sur les systèmes d exploitation sortis après Windows XP, nous préconisons désormais l utilisation du client de messagerie libre distribué gratuitement par la Fondation Mozilla.

Plus en détail

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : 1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : La procédure d installation démarre. La fenêtre suivante vous indique

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Introduction à l informatique en BCPST

Introduction à l informatique en BCPST Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de

Plus en détail

Un ordinateur, c est quoi?

Un ordinateur, c est quoi? B-A.BA Un ordinateur, c est quoi? Un ordinateur, c est quoi? Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Utilisez Toucan portable pour vos sauvegardes

Utilisez Toucan portable pour vos sauvegardes Utilisez Toucan portable pour vos sauvegardes Préambule Toucan est un logiciel libre et gratuit, permettant de réaliser des sauvegardes ou synchronisation de vos données. Il est possible d automatiser

Plus en détail

Première étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel

Première étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel A.-M. Cubat Démo (Apli) : imprimer des cartes de lecteurs ou une «planche-contact» - avec les codes-barres Page 1 Première étape : créer le fichier de données - extraire les données de PMB et les transférer

Plus en détail

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7 PROCÉDURE D INSTALLATION Cegid Business V9 COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7 Sommaire 1. Introduction 2. Installation de SQL Server 2005 ou 2008 3. Installation de Cegid Business

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Créer un premier document avec Pages

Créer un premier document avec Pages 1 Créer un premier document avec Pages Dans ce chapitre, vous aborderez les fonctions élémentaires de Pages par le biais de la rédaction d une lettre et de la réalisation d une carte d anniversaire à l

Plus en détail

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS Prêt à maîtriser LIVE TRADER? Découvrez les principales fonctionnalités de cet outil. Découvrir l espace de travail Organiser les modules Rechercher

Plus en détail

Logiciel de gestion de caisse et d ardoises

Logiciel de gestion de caisse et d ardoises 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Logiciel de gestion de caisse et d ardoises BOIRLEAUD Pierre-Jean MOLINS Nicolas REHFELD Vincent Table des matières

Plus en détail

Dans cette Unité, nous allons examiner

Dans cette Unité, nous allons examiner 13.0 Introduction Dans cette Unité, nous allons examiner les fonctionnements internes d une des plateformes de publication web les plus largement utilisées de nos jours sur l Internet, WordPress. C est

Plus en détail

Tutorial Terminal Server sous

Tutorial Terminal Server sous Tutorial Terminal Server sous réalisé par Olivier BOHER Adresse @mail : xenon33@free.fr Site Internet : http://xenon33.free.fr/ Tutorial version 1a Page 1 sur 1 Index 1. Installation des services Terminal

Plus en détail

Formation. Module WEB 4.1. Support de cours

Formation. Module WEB 4.1. Support de cours Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,

Plus en détail

Utiliser Glary Utilities

Utiliser Glary Utilities Installer Glary Utilities Après avoir téléchargé Glary Utilities sur le site "http://secured-download.com/softwares/1737-glary-utilities ", double-cliquez dessus pour lancer l'installation. Choisissez

Plus en détail

Contrôle Parental Numericable. Guide d installation et d utilisation

Contrôle Parental Numericable. Guide d installation et d utilisation Contrôle Parental Numericable Guide d installation et d utilisation Version 12.3 pour OS X Copyright 2012 Xooloo. Tous droits réservés. Table des matières 1. Introduction Dénomination et caractéristiques

Plus en détail

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières : INITIATION A L INFORMATIQUE MODULE : Initiation à l'environnement Windows XP Table des matières : INTRODUCTION Les outils de l Interface Graphique : CONFIGURER VOTRE POSTE DE TRAVAIL Paramétrer la barre

Plus en détail

Généralités. Premier lancement

Généralités. Premier lancement Initiation à la gestion des données avec Essential PIM 1/7 Qui n'a pas souhaité posséder un agenda portable et facile d'utilisation? Et bien ce dernier existe et il s'appelle : Essential PIM - EPIM pour

Plus en détail

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt Procédure pas à pas de découverte de l offre Service Cloud Cloudwatt Manuel Utilisateur 03/07/2014 Cloudwatt - Reproduction et communication sont interdites sans autorisation 1/45 Contenu 1. Introduction...

Plus en détail

Dans l Unité 3, nous avons parlé de la

Dans l Unité 3, nous avons parlé de la 11.0 Pour commencer Dans l Unité 3, nous avons parlé de la manière dont les designs sont créés dans des programmes graphiques tels que Photoshop sont plus semblables à des aperçus de ce qui va venir, n

Plus en détail

Comment se connecter au dossier partagé?

Comment se connecter au dossier partagé? Comment se connecter au dossier partagé? Physique Strasbourg Ingénierie 4 avril 2013 Table des matières 1 But du tutoriel 1 2 Client FTP : Filezilla 2 2.1 Téléchargement et installation du client de partage......................

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Réalisation de cartes vectorielles avec Word

Réalisation de cartes vectorielles avec Word Réalisation de cartes vectorielles avec Word Vectorisation de la carte Après avoir scanné ou avoir récupéré un fond de carte sur Internet, insérez-la dans votre fichier Word : Commencez par rendre visible

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

Construire des plug-ins pour SAS Management Console SAS 9.1

Construire des plug-ins pour SAS Management Console SAS 9.1 Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION

Plus en détail

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU N de série Siège social 107, rue Henri Barbusse BP305-92111 CLICHY Cedex 1 Sommaire Description 1. Installation 2. Mise

Plus en détail

COURS WINDEV NUMERO 3

COURS WINDEV NUMERO 3 COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d analyse, Manipulation des tables mémoires, Manipulation de données, Création d états, Pré requis : Cours WinDev

Plus en détail

CONTACT EXPRESS 2011 ASPIRATEUR D EMAILS

CONTACT EXPRESS 2011 ASPIRATEUR D EMAILS CONTACT EXPRESS 2011 ASPIRATEUR D EMAILS MANUEL D UTILISATION Logiciel édité par la société I. PREAMBULE a) Avant propos... 3 b) Support... 3 c) Interface d accueil... 4 à 5 d) Interface de Recherche...

Plus en détail

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement Cahier n o 6 Mon ordinateur Fichiers et dossiers Sauvegarde et classement ISBN : 978-2-922881-10-3 2 Table des matières Fichiers et dossiers Sauvegarde et classement La sauvegarde 4 Enregistrer 4 De quelle

Plus en détail

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Tutoriel Création d une source Cydia et compilation des packages sous Linux Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème

Plus en détail

Manuel d'installation de GESLAB Client Lourd

Manuel d'installation de GESLAB Client Lourd Manuel d'installation GESLAB Client Lourd Référence Date de la dernière mise à jour Rédigé par Objet GESLAB_MINS_TECH_Manuel d'installation GESLAB Client 15/04/2013 Steria Manuel d'installation de GESLAB

Plus en détail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1 CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table

Plus en détail

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières Utiliser Dev-C++ Voici quelques explications sur l utilisation de Dev-C++, un excellent environnement de développement en C et C++ pour Windows qu on peut télécharger librement depuis le site www.bloodshed.net

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Entraînement au concours ACM-ICPC

Entraînement au concours ACM-ICPC Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming

Plus en détail

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

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables

Plus en détail

< Atelier 1 /> Démarrer une application web

< Atelier 1 /> Démarrer une application web MES ANNOTATIONS SONT EN ROUGE : Axel < Atelier 1 /> Démarrer une application web Microsoft France Tutorial Découverte de ASP.NET 2.0 Sommaire 1 INTRODUCTION... 3 1.1 CONTEXTE FONCTIONNEL... 3 1.2 CONTEXTE

Plus en détail

Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation

Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation Interlis V1.0 - GC version 5.0 Table des matières TABLE DES MATIERES...1 1. INTRODUCTION...2 1.1 OBJECTIF...2 1.2 PRINCIPE...2

Plus en détail

Business Intelligence simple et efficace

Business Intelligence simple et efficace Business Intelligence simple et efficace avec Excel et PowerPivot Jean-Philippe GOUIGOUX Table des matières 1 Chapitre 1 Présentation de PowerPivot A. L analyse de données.....................................................

Plus en détail

TUTORIEL Qualit Eval. Introduction :

TUTORIEL Qualit Eval. Introduction : TUTORIEL Qualit Eval Introduction : Qualit Eval est à la fois un logiciel et un référentiel d évaluation de la qualité des prestations en établissements pour Personnes Agées. Notre outil a été spécifiquement

Plus en détail

Installer Joomla. 2013 Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Installer Joomla. 2013 Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring 3 Installer Joomla Dans ce chapitre, nous procéderons au téléchargement et à l installation manuelle de Joomla, et nous expliquerons la configuration de base. Les captures d écran et les instructions font

Plus en détail

Chapitre 3 : outil «Documents»

Chapitre 3 : outil «Documents» Chapitre 3 : outil «Documents» L outil «Documents» fonctionne comme le gestionnaire de fichiers de votre ordinateur. Vous pouvez y transférer des documents de tous types (html, Word, Powerpoint, Excel,

Plus en détail

claroline classroom online

claroline classroom online de la plate-forme libre d'apprentissage en ligne Claroline 1.4 Manuel Révision du manuel: 06/2003 Créé le 07/09/2003 12:02 Page 1 Table des matières 1) INTRODUCTION...3 2) AFFICHER LA PAGE DE DEMARRAGE...3

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w w Procédure Messagerie Outlook 2007 et 2010 Solutions informatiques Connecteur Zimbra pour Microsoft Outlook 2007 et 2010 (ZCO) 1/46 SOMMAIRE 1 Introduction... 3 2 Compatibilité... 3 2.1 Versions supportées

Plus en détail

Interfaces graphiques avec l API Swing

Interfaces graphiques avec l API Swing Interfaces graphiques avec l API Swing Les Swing Les classes graphiques Swing dérivent de la classe JComponent, qui hérite ellemême de la classe AWT (Abstract Window Toolkit). Tous les composants Swing

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

Initiation à linfographie

Initiation à linfographie Ce support de cours de l Agence universitaire de la Francophonie est distribué sous licence GNU FDL. Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Cahier n o 7. Mon ordinateur. Gestion et Entretien de l ordinateur

Cahier n o 7. Mon ordinateur. Gestion et Entretien de l ordinateur Cahier n o 7 Mon ordinateur Gestion et Entretien de l ordinateur ISBN : 978-2-922881-11-0 2 Table des matières Gestion et Entretien de l ordinateur Introduction 4 Inventaire du matériel 5 Mise à jour du

Plus en détail

TD séance n 2c Mise à jour des Systèmes

TD séance n 2c Mise à jour des Systèmes 1 Gestion des Logiciels 1.1 Introduction sur les logiciels Un logiciel est un programme nécessaire au fonctionnement d'un ordinateur (logiciel système) ou au traitement de données (logiciel applicatif).

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Navigation dans Windows

Navigation dans Windows Cours 03 Navigation dans Windows Comme je le disais en introduction, notre souris se révèle plus maligne qu'elle n'en a l'air. À tel point qu'il faut apprendre à la dompter (mais c'est très simple, ce

Plus en détail

FICHIERS ET DOSSIERS

FICHIERS ET DOSSIERS La différence entre fichier et dossier FICHIERS ET DOSSIERS La première notion à acquérir est la différence entre un dossier et un fichier Un dossier est une sorte de classeur dans lequel on range divers

Plus en détail

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude INF 1250 INTRODUCTION AUX BASES DE DONNÉES Guide d étude Sous la direction de Olga Mariño Télé-université Montréal (Québec) 2011 INF 1250 Introduction aux bases de données 2 INTRODUCTION Le Guide d étude

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Dragon Naturally Speaking 13

Dragon Naturally Speaking 13 Année 2015 Dragon Naturally Speaking 13 Guide premier pas Nathalie Macé / Grégoire Duval PROJET ORDYSCAN 1 Table des matières Introduction 3 Pourquoi utiliser Dragon Naturally Speaking avec les élèves

Plus en détail

SQL Data Export for PS/PSS

SQL Data Export for PS/PSS Version 2.3.5 MANUEL D INSTRUCTIONS (M98232701-02-13B) CIRCUTOR, SA SOMMAIRE 1.- INSTALLATION DU LOGICIEL SQL DATA EXPORT... 3 1.1.- ACTIVER CONNEXIONS A DISTANCE DU SERVEUR SQL SERVER... 14 1.2.- DESINSTALLER

Plus en détail

CREER ET ANIMER SON ESPACE DE TRAVAIL COLLABORATIF

CREER ET ANIMER SON ESPACE DE TRAVAIL COLLABORATIF CREER ET ANIMER SON ESPACE DE TRAVAIL COLLABORATIF SOMMAIRE Sommaire... 2 Un espace de travail collaboratif, pourquoi faire?... 3 Créer votre espace collaboratif... 4 Ajouter des membres... 6 Utiliser

Plus en détail

Nokia Internet Modem Guide de l utilisateur

Nokia Internet Modem Guide de l utilisateur Nokia Internet Modem Guide de l utilisateur 9216562 Édition 1 FR 1 2009 Nokia. Tous droits réservés. Nokia, Nokia Connecting People et le logo Nokia Original Accessories sont des marques commerciales ou

Plus en détail

Système clients serveur Kwartz Vulgarisation, identification, dossier personnel

Système clients serveur Kwartz Vulgarisation, identification, dossier personnel Un peu de vulgarisation Système clients serveur Kwartz Nous allons absolument éviter les termes techniques et essayer de vulgariser au maximum. En effet, l objectif sera à terme pour les enseignants, de

Plus en détail

Objet du document. Version document : 1.00

Objet du document. Version document : 1.00 Version document : 1.00 Objet du document Les dix points de cet article constituent les règles à connaitre pour intégrer une application au sein d AppliDis. Le site des Experts Systancia comporte également

Plus en détail

Gestion des fichiers sur micro-ordinateur

Gestion des fichiers sur micro-ordinateur ... 1 Qu est ce qu une gestion de fichier :... 2 Importance d une bonne gestion des fichiers :... 2 Qui doit faire une gestion des dossiers :... 3 Étapes à suivre pour une meilleur gestion des dossiers

Plus en détail

Retrouver de vieux programmes et jouer sur VirtualBox

Retrouver de vieux programmes et jouer sur VirtualBox CHAPITRE 3 Retrouver de vieux programmes et jouer sur VirtualBox Ce chapitre présente des notions avancées de VirtualBox. Elles permettront de réaliser des configurations spécifiques pour évaluer des systèmes

Plus en détail

Guide d usage pour Word 2007

Guide d usage pour Word 2007 Formation TIC Septembre 2012 florian.jacques@etsup.com Guide d usage pour Word 2007 ETSUP 8 villa du Parc Montsouris 75014 PARIS SOMMAIRE Interface... 2 Organiser son espace de travail... 3 La barre d

Plus en détail

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

Tutoriel : Utilisation du serveur de calcul à distance de PSE

Tutoriel : Utilisation du serveur de calcul à distance de PSE Tutoriel : Utilisation du serveur de calcul à distance de PSE David Smadja Camille Terrier Septembre 2013 Table des matières 1 Préambule 1 2 Avertissements 1 3 Pré-requis 1 4 Installation de X2goClient

Plus en détail

Enseignement, Handicap et tablette tactile

Enseignement, Handicap et tablette tactile RAPPORT DE PROJET TUTEURÉ Projet n 9 : Enseignement, Handicap et tablette tactile Groupe : Florent DELRIEU Romain HIRIART Aurélien LACHAPPE Enseignant tuteur : François DEMONTOUX Année 2012-2013 Sommaire

Plus en détail

SAUVEGARDER SES DONNEES PERSONNELLES

SAUVEGARDER SES DONNEES PERSONNELLES SAUVEGARDER SES DONNEES PERSONNELLES Il est important de sauvegarder son environnement système Windows ainsi que ses données personnelles. Nous verrons dans ce tutorial comment créer un point de restauration

Plus en détail

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT Manuel d utilisation pour la plateforme MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT Manuel d utilisation pour la plateforme 13 14 Manuel d utilisation pour la plateforme Qu est-ce que 1. Qu est-ce

Plus en détail

Démarrer et quitter... 13

Démarrer et quitter... 13 Démarrer et quitter... 13 Astuce 1 - Ouvrir, modifier, ajouter un élément dans le Registre... 14 Astuce 2 - Créer un point de restauration... 18 Astuce 3 - Rétablir un point de restauration... 21 Astuce

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

MANUEL D INSTALLATION

MANUEL D INSTALLATION Data Processing Commission Fast Advanced Software for Table soccer - v 1.0 Logiciel de gestion de tournoi de football de table MANUEL D INSTALLATION INSTALLATION INFORMATIQUE DE LA TABLE DE MARQUE & CONFIGURATION

Plus en détail

LES TOUT PREMIERS PAS

LES TOUT PREMIERS PAS DESMODO, un logiciel de gestion d idées http://www.desmodo.net/ LES TOUT PREMIERS PAS Desmodo est un logiciel (libre) qui permet, entre autre, de visualiser et de synthétiser, de manière organisée, sous

Plus en détail

ESPACE COLLABORATIF SHAREPOINT

ESPACE COLLABORATIF SHAREPOINT Conseil de l Europe Service des Technologies de l Information ESPACE COLLABORATIF SHAREPOINT DOSSIER D UTILISATEUR 1/33 Sommaire 1. Présentation de SharePoint... 3 1.1. Connexion... 4 2. Les listes...

Plus en détail

Guide d utilisation et d administration

Guide d utilisation et d administration Guide d utilisation et d administration Guide d utilisation et d administration l Sommaire Logo Vtiger...1 Chapitre 1. Premières étapes...5 Devenir un utilisateur...5 Installation sur PC et autres conditions...5

Plus en détail

Guide d utilisation WEBPORTAL CPEM Portail d Applications Web CPEM

Guide d utilisation WEBPORTAL CPEM Portail d Applications Web CPEM Guide d utilisation WEBPORTAL CPEM Portail d Applications Web CPEM Ce guide vous aidera à installer et à mettre en place les modules nécessaires afin d accéder à vos Applications Web SOMMAIRE I. Pré requis...

Plus en détail

Service On Line : Gestion des Incidents

Service On Line : Gestion des Incidents Service On Line : Gestion des Incidents Guide de l utilisateur VCSTIMELESS Support Client Octobre 07 Préface Le document SoL Guide de l utilisateur explique comment utiliser l application SoL implémentée

Plus en détail

UltraBackup NetStation 4. Guide de démarrage rapide

UltraBackup NetStation 4. Guide de démarrage rapide UltraBackup NetStation 4 Guide de démarrage rapide Table des matières 1 Fonctionnalités... 3 1.1 Ce qu UltraBackup NetStation permet de faire... 3 1.2 Ce qu UltraBackup NetStation ne permet pas de faire...

Plus en détail

Adobe Photoshop. Bonnes pratiques pour une utilisation professionelle CHAPITRE 7

Adobe Photoshop. Bonnes pratiques pour une utilisation professionelle CHAPITRE 7 M2 Caweb 2014-2015 Enseignant : Boris Epp Adobe Photoshop Bonnes pratiques pour une utilisation professionelle CHAPITRE 7 Sommaire 1. Les scripts a. Qu est-ce qu un script? b. La fenêtre script c. Créer

Plus en détail

les Formulaires / Sous-Formulaires Présentation...2 1. Créer un formulaire à partir d une table...3

les Formulaires / Sous-Formulaires Présentation...2 1. Créer un formulaire à partir d une table...3 Présentation...2 1. Créer un formulaire à partir d une table...3 2. Les contrôles :...10 2.1 Le contrôle "Intitulé"...11 2.2 Le contrôle "Zone de Texte"...12 2.3 Le contrôle «Groupe d options»...14 2.4

Plus en détail