Framework à but pédagogique sous Linux



Documents pareils
Cours en ligne Développement Java pour le web

Programmer en JAVA. par Tama

Auto-évaluation Programmation en Java

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Bases Java - Eclipse / Netbeans

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

Prise en compte des ressources dans les composants logiciels parallèles

Traduction des Langages : Le Compilateur Micro Java

Programmation Objet Java Correction

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Les BRMS Business Rules Management System. Groupe GENITECH

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

CMS Open Source : état de l'art et méthodologie de choix

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

LoReNa : pour dynamiser votre Relation Client (CRM)

Introduction à. Oracle Application Express

Initiation à JAVA et à la programmation objet.

Introduction aux concepts d ez Publish

Cours. Cours 8 : Révisions. Importance. Interface homme-machine

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

as Architecture des Systèmes d Information

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Introduction MOSS 2007

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

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

CAHIER DES CHARGES D IMPLANTATION

CORBA. (Common Request Broker Architecture)

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Le Framework.Net. Introduction. Pourquoi.Net?

PaperCut MF. une parfaite maîtrise de vos impressions, copies et scans.

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Plan du cours. Historique du langage Nouveautés de Java 7

Stéphanie Lacerte. Document technique. Connextek. 31 mai Cloudtel

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Portfolio Sites internet :

Java 7 Les fondamentaux du langage Java

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Introduction au développement SharePoint. Version 1.0

Logiciels Open Sources et le Secteur Privé

µrv : Realité Virtuelle

Vérifier la qualité de vos applications logicielle de manière continue

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Avantic Software Présentation de solutions GED pour mobiles (Gestion Electronique de Documents)

CA 2011 M. +40% de croissance 7. agences en France. Paris Lyon Nantes Bordeaux Montpellier Aix en Provence

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Nouveautés Ignition v7.7

La carte à puce. Jean-Philippe Babau

ANNEXES. Evaluation de la formation à Polytech Lille Département GIS. Enseignements les plus utiles. Enseignements à renforcer

Openmoko, free your phone!


Environnements de développement (intégrés)

Modelio by Modeliosoft

Interfaces graphiques avec l API Swing

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Projet de développement

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Vulgarisation Java EE Java EE, c est quoi?

les techniques d'extraction, les formulaires et intégration dans un site WEB

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

MailStore Server 7 Caractéristiques techniques

alg - Classes, instances, objets [oo] Exercices résolus

Bien architecturer une application REST

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Guide d installation de ArcGIS server 9.3.1

C++ - Classes, instances, objets [oo] Exercices résolus

Le Cloud Computing et le SI : Offre et différentiateurs Microsoft

Patrons de Conception (Design Patterns)

Mise en place d un intranet de travail collaboratif. Guide utilisateur

Système de Virtualisation pour une application de gestion commerciale d entreprise

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

Dafoe Présentation de la plate-forme UIMA

SPECIFICATION ET DESCRIPTION DU MULTICAST FIABLE DANS ETOILE

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Dispositif sur budget fédéral

Java pour le Web. Cours Java - F. Michel

Systèmes en réseau : Linux 1ère partie : Introduction

CATALOGUE FORMATION 2015

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Université Montpellier 2 Master Physique et Informatique

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Formation, Audit, Conseil, Développement, UX WinRT Silverlight WPF Android Windows Phone

Le moteur de workflow JBPM

Introduction au langage C

CalDav Manager : Gestionnaire d emploi du temps

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Transcription:

Travail de diplôme Framework à but pédagogique sous Linux Plan de la présentation Introduction Environnements Techniques développées Implémentation Résultat Conclusion 1

Introduction Framework Outil de développement d applications Méthode de programmation Mise en oeuvre du concept Orienté Objet Architecture d application Inversion du contrôle 2

Introduction Framework à BUT PEDAGOGIQUE Simplifications Limitation des fonctionnalités Limitation du nombre de composants Simplification des mécanismes Aspect performances négligable Orientation Orientation Interface Utilisateur Facilement appréhendable Peu spécifique au type d application 3

Introduction Framework à but pédagogique SOUS LINUX Système libre, accessible à tous Développement Open Source donc informations disponibles Outils de développement de qualité (GNU) Bonne stabilité 4

Environnements de travail utilisés Java Développement et écriture rapide, portable API graphique (Swing) très complète C++ Langage classique en programmation OO, connu des utilisateurs cibles Librairies graphiques nombreuses et outils standards (gcc) Gtk Librairie graphique en langage C++, standard sous Linux, complète et performante 5

Aspects importants des librairies utilisées Hiérarchie de classes OO Hiérarchie d imbrication des composants Mécanisme de dimensionnement géométrique (Layout) Boucle événementielle fournie Composants automatisés 6

Techniques développées Description des composants par assignation de propriétés : Apparence graphique (positionnement et comportement) Composants contenus (type conteneur) > Description de l apparence de l interface graphique Actions assignées à la réaction aux événements 7

Techniques développées Schéma d initialisation Possibilité d effectuer des références croisées Apparence statique de l interface utilisateur > Construction puis initialisation Constructeur vide Schéma récursif (Assignation / Initialisation) 8

Techniques développées Schéma de traitement des événements Description du code de réaction Référence sur une méthode (Java) Référence sur une instance de classe spécifique (C++) Réactions spécifiées par une propriété Possibilité simple de modification dynamique du traite événement > Plus lent Plus flexible Possibilité d éviter les structures conditionnelles 9

Implémentation Hiérarchie des composants > copie de celle de la librairie / l API utilisé Possibilité d extension à l ensemble des fonctionnalités Simplification de l utilisation Connaissance de l API relativement inutile 10

Implémentation Schéma d initialisation Création des composants Mécanisme récursif Assignation Création des instances Paramètrage 11

Schéma récursif d initialisation JfApplication JfFrame JfMenuBar JfMenu JfMenuItem JfMenuItem JfMenu JfMenuItem JfMenu JfMenuItem JfMenuItem JfPane JfLayout JfButton JfPane JfLayout JfButton JfTextField 12

Implémentation Traite Evénements Java Utilisation du mécanisme Listener Génération d instances de la classe Method à l aide de l API Reflexion C++ Redéfinition de méthodes de réaction fournies par la librairie Articulation en trois classes : Event Action Utilisateur Appel de la méthode de la super classe possible (pré parent post) 13

Traite événements en Gtk Classes permettant la récupération des événements GfContainer Gtk::Container GfBin Gtk::Bin Has a Gtk::Button GfAction Is a GfEventButton GfButtonAction GfButton 14

Implémentation Liaison entre le Framework et l application utilisateur Connaissance de l application par le Framework impossible > Méthodes d indication Modification d une méthode fournie par le Framework (Java) Définir une méthode extern renvoyant l instance d application (C++) Instances des objets > Variables globalement visibles Constantes de la classe application, elle même globale (Java) Variables globales statiques (C++) 15

Forme du code utilisateur Un composant est représenté par une classe dérivée et instancié par une variable La classe dérivée consiste essentiellement en la redéfinition de la méthode assign() Un traite événement consiste en une méthode ou classe > Plus de classes mais très simples > Lourdeur (négligeable pour de petites applications) Meilleure réutilisabilité du code, simplicité extrême 16

Résultat Méthode d implémentation possible du Framework selon 2 environnements Possibilité d extension prévue Raffinement des composants Ajout d autres composants de l API utilisée 17

Conclusion Projet réalisé quasiment exclusivement sous Linux > Validation de la solution Linux Enrichissement personnel Domaine d étude très vaste GUI, Programmation événementielle, architecture d application, plusieurs environnements de développement > Acquisition d une somme de connaissances très diversifiées 18

Fin de la présentation Le mémoire et la présentation ne permettent de donner qu un aperçu global des domaines étudiés. Je suis à votre disposition pour toute précision ou explication d aspects trop succinctement traités. 19