Formation IQ JAVA. Formation IQ JAVA V1.1 1

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

Download "Formation IQ JAVA. Formation IQ JAVA V1.1 1"

Transcription

1 Formation IQ JAVA Formation IQ JAVA V1.1 1

2 PROGRAMME DE LA FORMATION Introduction Les règles de codage Les bonnes pratiques Les environnements de développement Java ECLIPSE PMD Les tests de taux de couverture Si on a du temps : survoler les bases du langage Java Formation IQ JAVA V1.1 2

3 Introduction Formation IQ JAVA V1.1 3

4 Introduction Les difficultés de l'iq dans les nouvelles technologies Connaître les éléments de programmation le langage JAVA l'influence des ses nombreuses classes les architectures complexes N-tiers Faire les choix des règles de codage dans un environnement hétérogène (java, xml, jsp, j2ee, javascript, php, perl, ) L'homogénéité dans une architecture CORBA utilisant différents langages (Java, C++,Ada, ) Faire le choix des environnements de développement (IDE) Faire le choix des outils complémentaires La mise en œuvre des moyens de contrôle de code et de test nécessite une connaissance des outils comme ant Formation IQ JAVA V1.1 4

5 Introduction JAVA JAVA est un langage orientée objet Sa syntaxe est proche du C++ Beaucoup de règle du C++ s'applique à Java Règles spécifiques au langage Java Règles spécifiques aux architectures Java J2EE, JSP, Javascript XML CORBA Formation IQ JAVA V1.1 5

6 Introduction Présentation de Java Qu'est-ce que Java? Principes de fonctionnement java.exe (Sun) java.exe (IBM) Développement Code source Java maclasse.java Ce n est pas du code machine natif Bytecode Java Bytecode Java maclasse.class Bytecode Java maclasse.class maclasse.class Exécution Machine virtuelle Java Autonome (Application) Exécute le Bytecode (et le transforme en code natif) Machine virtuelle Java Intégré dans un «container» (Servlet) Exécute le Bytecode (et le transforme en code natif) javac.exe (Sun) jikes.exe (IBM) Compilateur Java -> Bytecode appletviewer.exe (Sun) HotJava (Sun) IE (Microsoft) Netscape Nav. (Netscape) Java Plug-in (Sun) Machine virtuelle Java Intégré dans un browser (Applet) Exécute le Bytecode (et le transforme en code natif) Tomcat (Apache, [SUN]) WebSphere (IBM) IPlanet (Netscape) Resin (Caucho)... Formation IQ JAVA V1.1 6

7 Introduction Présentation de Java Qu'est-ce que Java? Principes de fonctionnement : Applet Les applets éliminent la nécessité d assurer la maintenance ou la mise à jour des logiciels sur les postes clients le code est chargé dynamiquement sur le client selon les besoins Client browser Web Serveur JVM intégrée Serveur HTTP Fichiers Bytecode Chargement des fichiers de Bytecode depuis un serveur dans le navigateur via un serveur HTTP Fichiers Bytecode Formation IQ JAVA V1.1 7

8 Introduction Présentation de Java Qu'est-ce que Java? Principes de fonctionnement : Bytecode Les fichiers de bytecode peuvent être indépendants dans des fichiers «*.class» ou regroupé dans des fichiers «*.jar» ou «*.war» (type de fichier ZIP) A.class A.class B.class B.class MonAppli.jar MonAppli.jar A.class A.class B.class B.class C.class C.class img.gif img.gif meta-inf\manifest.mf meta-inf\manifest.mf MonAppli.war MonAppli.war WEB-INF\classes\A.class WEB-INF\classes\A.class WEB-INF\classes\B.class WEB-INF\classes\B.class WEB-INF\classes\C.class WEB-INF\classes\C.class WEB-INF\web.xml WEB-INF\web.xml jsp\d.jsp jsp\d.jsp img.gif img.gif meta-inf\manifest.mf meta-inf\manifest.mf C.class C.class img.gif img.gif JVM JVM Serveur Serveur d d application application Formation IQ JAVA V1.1 8

9 Introduction L'INFLUENCE DES SPÉCIFICITÉS DE JAVA (1/3) Les architectures des répertoires l'organisation en package (signature) les web archives La gestion de la mémoire le garbage collector les collections, les itérateurs, les énumétaeurs Les classes prédéfinies très nombreuses évolutions constantes : dépricated "best-pratices" Les interfaces propre à Java : très importantes La réflèxivité du langage le nommage des méthodes la lisibilité du code les outils de vérification ne sont pas complètement utilisables sur ce type de code cela reste une exception on le rencontre dans des API (ex: Hibernate) Formation IQ JAVA V1.1 9 Exemple

10 Introduction Exemple de réflexivité Formation IQ JAVA V1.1 10

11 Introduction L'INFLUENCE DES SPÉCIFICITÉS DE JAVA (2/3) Les extensions:.java,.class &.jar.war Les fichiers de configuration:.properties paramétrage des outils prédéfinis et de son propre code hiérarchie des propriétés, API de lecture/écriture de ces fichiers basés sur une syntaxe mot clef = valeur Les répertoires spécifiques de génération le répertoire generated comme par exemple pour les architecture CORBA le répertoire docs pour la génération javadoc le répertoire idl (Corba) le répertoire config pour les fichiers de configuration La déclaration des variables, des paramètres et des membres Formation IQ JAVA V1.1 11

12 Introduction L'INFLUENCE DES SPÉCIFICITÉS DE JAVA (3/3) Les traces : les loggueurs log4j La gestion des exceptions Formation IQ JAVA V1.1 12

13 Introduction LA COMPARAISON AVEC LE C++ (1/3) Pas de structures ni d unions Pas de types énumérés Pas de typedef Pas de préprocesseur Pas de variables ni de fonctions en dehors des classes Pas de fonctions à nombre variable d arguments (sauf depuis la version 1.5) Pas d'héritage multiple de classes Pas de "template" (sauf depuis la 1.5) Pas de surcharge d opérateurs Pas de passage par référence des paramètres Pas de pointeurs, seulement des références Formation IQ JAVA V1.1 13

14 Introduction LA COMPARAISON AVEC LE C++ (2/3) Exceptions : plus formels et plus étendues Garbage-collector intégré: inutile de détruire les objets créés Pas de «makefile» Packages = répertoires Archivages (.jar) Les tableaux sont des objets Les chaînes de caractères sont toutes des constantes La syntaxe est celle du C++ simplifiée Pas de.h L'interface Les commentaires sont ceux du C++ (// /*..*/) Commentaires de documentation (/**..*/) Formation IQ JAVA V1.1 14

15 Introduction LA COMPARAISON AVEC LE C++ (3/3) Pas de "dynamic-cast" : un cast unique Java est un langage objet à liaison dynamique A partir de la version 1.5 : "auto-boxing" des types primitifs implémentation de la structure de contrôle "pour chaque" de base dans le langage (for(e:conteneur){e.todo();) quelque soit le conteneur y compris le tableau de base. l'énumération est connu du langage Formation IQ JAVA V1.1 15

16 Introduction DEFINITIONS (1/7) : JDK, SDK, J2SE Difficile d'être exhaustif sur un tel langage en évolution constante : une nouvelle version tous les ans périmètre "flou" : confusion entre le langage et son environnement confusion entre les termes utilisés (JDK, SDK, J2SE, J2EE, Java 2) Le JDK (Java Development Kit) est l'environnement dans lequel le code Java est compilé pour être transformé en bytecode afin que la JVM (Machine virtuelle de java) puisse l'interpréter Le SDK (Software Development Kit ou Servlet Development Kit) représente le passage du JDK à un framework. Le même terme est utilisé pour l'extension aux servlets!! Le J2SE (Java 2 Standard Edition) : framework contenant toutes les API de base toutes les API spécialisées (JFC et donc Swing, AWT et Java2D) ainsi que des API d'usage général comme JAXP (pour le parsing XML) et JDBC (pour la gestion des bases de données). (Récemment renommé "Java SE par Sun") Formation IQ JAVA V Java Foundation Classes : framework graphique composé de AWT, Swing et Java2D

17 Introduction DEFINITIONS (2/7) : J2EE J2EE (Java 2 Platform, Enterprise Edition) est une spécification pour le langage de programmation Java de Sun plus particulièrement destinée aux applications d'entreprise. de nombreux éditeurs proposent leurs implémentations au sein de leurs Frameworks. dans ce but, toute implémentation de cette spécification contient un ensemble d'extension au framework Java standard (J2SE, Java 2 standard edition) afin de faciliter la création d'applications réparties. Ci-dessous, une liste des API pouvant être contenues dans une implémentation J2EE : Servlets : Conteneur Web JSP : Framework Web (http://fr.wikipedia.org/wiki/javaserver_pages) (en local) JSF : Java Server Face, Framework Web, extension des JSP (http://www.jsftutorials.net/) Le but de JSF est de fournir au développeur d'applications de type Web, une interface de programmation lui permettant de manipuler l'interface Web dans un environnement J2EE sans avoir à recourir à du code HTML ou JavaScript. EJB : Composants distribués transactionnels JNDI : API de connexion à des annuaires, notamment des annuaires LDAP JDBC : API de connexion à des bases de données JMS : API de communication asynchrone JCA : API de connexion, notamment à des ERP JavaMail : API de gestion des mails Formation IQ JAVA V1.1 17

18 Introduction DEFINITIONS (3/7) : J2EE (suite) JMX : Extension d'administration des applications JTA : API de gestion des transactions JAXP : API d'analyse XML JAXM : API de communication asynchrone par XML JAX-RPC : API de communication synchrone par XML, par exemple à l'aide du protocole SOAP JAXB : API de sérialisation par XML JAXR : API de gestion des registres XML, permettant d'enregistrer des Web Services en ebxml RMI : API de communication distante entre des objets java Java IDL : API de communication entre objets Java et objets non- Java, via le protocole CORBA Formation IQ JAVA V1.1 18

19 Introduction DEFINITIONS (4/7) : Servlet L'API Java Servlet est une application Java qui permet de générer dynamiquement des données au sein d'un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l'être au format XML ou tout autre format destiné aux navigateurs Web. Ce programme Java s'exécute dynamiquement sur le serveur Web et permet l'extension des fonctions de ce dernier, typiquement : accès à des bases de données, transactions d'e-commerce, etc. Une servlet peut être chargée automatiquement lors du démarrage du serveur Web ou lors de la première requête du client. Une fois chargées, les servlets restent actives dans l'attente d'autres requêtes du client. L'utilisation de servlets se fait par le biais d'un conteneur de servlets (framework) côté serveur (ex: tomcat). Celui-ci constitue l'environnement d'exécution de la servlet et lui permet de persister entre les requêtes des clients. L'API définit les relations entre le conteneur et le servlet. Le conteneur reçoit la requête du client, et sélectionne la servlet qui aura à la traiter. Le conteneur fournit également tout un ensemble de services standard pour simplifier la gestion des requêtes et des sessions Une ou plusieurs servlets constituent les web applications Java La version actuelle des spécifications servlet est la 2.5. Formation IQ JAVA V1.1 19

20 Introduction DEFINITIONS (5/7) : JAVA 2 Java 2 est le Framework standard Java proposé par Sun Microsystems. Il regroupe un ensemble de spécifications et d'api consolidant la plateforme Java Sun première génération. Il en existe trois éditions. J2SE : Java 2 Standard Edition comprenant les API et bibliothèques de bases, ainsi que les API destinés au poste client (comme par exemple JFC (Java Foundation Classes (JFC) est un framework graphique pour Java composé de AWT, Swing et Java2D. ) J2EE : Java 2 Enterprise Edition destinée aux développements des applications d'entreprises. Sun propose en plus des spécifications, des implémentations illustratives. De nombreux éditeurs proposent leurs implémentations au sein de leurs Frameworks. J2ME : Java 2 Micro Edition destinée aux systèmes mobiles tel que par exemple, les assistants personnels ou les téléphones portables. Formation IQ JAVA V1.1 20

21 Introduction DEFINITIONS (6/7) : JSP Le JavaServer Pages ou JSP Permet aux développeurs de générer dynamiquement du code HTML, XML ou tout autre type de page Web. La technologie permet au code Java et à certaines actions prédéfinies d'êtres ajoutés dans un contenu statique. La syntaxe du JSP ajoute des balises XML, appelées actions JSP, qui peuvent être utilisées pour appeler des fonctions. De plus, la technologie permet la création de bibliothèques de balises JSP (taglib) qui agissent comme des extensions au HTML ou au XML. Les bibliothèques de balises offrent une méthode indépendante de la plate-forme pour étendre les fonctionnalités d'un serveur HTTP. Les JSP sont compilées par un compilateur JSP pour devenir des servlets Java. Un compilateur JSP peut générer un servlet Java en code source Java qui peut à son tour être compilé par le compilateur Java, ou peut générer le pseudo-code Java interprétable directement. Formation IQ JAVA V1.1 21

22 Introduction DEFINITIONS (7/7) : EJB La technologie Enterprise JavaBeans (EJB) est une architecture de composants logiciels côté serveur pour la plateforme de développement J2EE. Cette architecture propose un cadre pour créer des composants distribués (c'est à dire déployé sur des serveurs distants) écrit en langage de programmation Java hébergés au sein d'un serveur applicatif permettant de représenter des données (EJB dit entité), de proposer des services avec ou sans conservation d'état entre les appels (EJB session), ou encore d'accomplir des taches de manière asynchrone (EJB dit message). Tous les EJB peuvent évoluer dans un contexte transactionnel. Un EJB est accompagné d'un ou plusieurs fichiers de déploiement écrit en XML qui va permettre au serveur applicatif de déployer correctement cet objet au sein d'un conteneur. C'est notamment dans ces fichiers de déploiement que le développeur va pouvoir préciser le cadre transactionnel dans lequel l'objet va être exécuté. C'est le serveur applicatif qui a en charge la création, la destruction, la passivation ou l'activation de ses composants en fonction des besoins. Le client via un appel RMI (ou une de ses dérivées) va rechercher un EJB par son nom logique JNDI et appeler une/des méthodes de cet objet. Formation IQ JAVA V1.1 22

23 Les règles de codage Formation IQ JAVA V1.1 23

24 Les règles de codage Présentation Les règles dit "de codage" se décomposent en différentes catégories : les règles de rédaction du code en lui-même : la syntaxe proprement dit du code (syntaxe du langage) les règles de l'architecture du code liées aux dépendances entre les classes (programmation objet) les règles de la mise en forme et des commentaires les règles de nommage des composants les règles de structuration de l'architecture de développement liées au déploiement des composants "exécutables" les règles de développement liées à l'environnement de développement les règles de codage et de nommage liées à l'architecture du logiciel (Ntiers, Corba, web-services, web, ) Formation IQ JAVA V1.1 24

25 Les règles de codage LES RÈGLES DE NOMMAGE Le nom d'un fichier.java est le nom de la classe publique Le nom d'un package est toujours en minuscule désigne un chemin ou signature d'arborescence Le nom d'une classe est composé de mots commençant par une majuscule (ex: MyFavoriteClasse) Les membres commencent toujours par une minuscule La reconnaissance des membres et non-membres Le préfixage des non-membres ou le préfixage des attributs par this La réflexivité ne permet pas de préfixer ou suffixer les attributs par "_" Les constantes sont en majuscule Les règles de nommage se simplifie car il n'y a pas de notion de pointeur Formation IQ JAVA V1.1 25

26 Les règles de codage LA LANGUE FRANÇAISE Si la langue française doit être utilisée alors l'anglais reste quand même incontournable l'influence des "qualifieurs" (soit en préfixe ou suffixe) set et get pour les assesseurs et les accesseurs,suivi du nom de l'attribut les is les Helper, Holder, Tie, Factory, Impl, Int, Faire une liste des mots anglais autorisés ex: insert, add, update, merge, les développeurs sont de niveaux d'anglais différent Formation IQ JAVA V1.1 26

27 Les règles de codage LES MOTS RÉSERVÉS DU LANGAGE JAVA abstract, boolean, break, byte, case, catch, char, class, continue, default, do, double, else, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, true, try, void, volatile, while ne pas utiliser comme identificateur Formation IQ JAVA V1.1 27

28 Les règles de codage LES COMMENTAIRES DE DOCUMENTATION L'outil javadoc de base dans le langage ces mots Eclipse insère automatiquement ce type de commentaire mais dérive lors des mises à jours L'outil DOxygen efficace remonte les diagrammes UML paramétrage : peut se paramétrer en fonction de la syntaxe de javadoc Formation IQ JAVA V1.1 28

29 Les règles de codage LES COMMENTAIRES DE DOCUMENTATION Exemple de commentaire javadoc : Formation IQ JAVA V1.1 29

30 Les règles de codage L'ORGANISATION DES SOURCES (1/3) l'arborescence des répertoires architecture modulaire classique peut s'appliquer mais chacun des répertoires est la racine de l'arborescence des packages des modules chaque composant peut rassembler les packages d'un composant en un ficher.jar Formation IQ JAVA V1.1 30

31 Les règles de codage L'ORGANISATION DES SOURCES (2/3) Exemple dans le projet SySBIVC IACL/src/fr/capge mini/sysbivc/iacl/tr t/ui Formation IQ JAVA V1.1 31

32 Les règles de codage L'ORGANISATION DES SOURCES (3/3) dev SOCLE IHM APP COM IACL IGNR SRV1 SRV2 fr fr fr fr capgemini capgemini capgemini capgemini sysbivc sysbivc sysbivc sysbivc commun com ihm commun iacl ihm ignr commun srv1 commun io util tcp commun ecrans util commun packages commun à toutes les ihm Formation IQ JAVA V1.1 distribué dans toutes 32 les ihms chemin d'accès aux packages du projet package commun à tout le projet, distribué dans tous les composants

33 Les règles de codage L'ORGANISATION DES SOURCES DANS UNE APPLICATION WEB (1/2) Une application Web : est une application contenant des objets spéciaux, capables de recevoir des requêtes web (HTTP) et de renvoyer des réponses à ces requêtes. Ces objets s'appellent en Java des servlets. La webapp (non compactée) est une structure de fichier Le WAR est une archive d'une webapp déployée dans un serveur HTTP Formation IQ JAVA V1.1 33

34 Les règles de codage L'ORGANISATION DES SOURCES DANS UNE APPLICATION WEB (2/2) <web-app>/ la racine est le docroot de l'application web.xml descripteur de déploiement (description des servlets, paramètres d'initialisation, ) WEB-INF/ classes/ lib/ src/ contient les classes et les arborescences de packages contient les.jar externes utilisés par l'application web contient les sources de l'application web (optionnel) fichiers divers dont les pages.jsp Cette arborescence peut être créée par la compilation : usage de l'outil ant. Formation IQ JAVA V1.1 34

35 Les règles de codage LA GESTION DES EXCEPTIONS (1/2) une exception = une classe La hiérarchie des classes La capture des exceptions La confiance dans les exceptions : toutes erreurs de code se traduit par une exception Journaliser avec log4j, en niveau DEBUG, systématique toutes les exceptions Le plus haut niveau de capture d'une exception dépend de l'architecture et la nature du programme Java Formation IQ JAVA V1.1 35

36 Les règles de codage LA GESTION DES EXCEPTIONS (2/2) Utiliser log4j afin de profiter du niveau DEBUG pour tracer toutes les exceptions Pourquoi prévoir de tracer toutes les exceptions? une exception est déclenchée qui ne devrait pas être déclenchée elle est récupérée et "absorbée" plus haut cette exception n'est donc pas perçue par le programmeur à moins de les tracer en mode debug systématiquement Logguer en niveau ERROR, l'exception capturée par l'appelant qui est considérée comme une erreur Formation IQ JAVA V1.1 36

37 Les règles de codage EXEMPLE METHODE / EXCEPTION public Resultat methode(parametre aparam) throws PremiereException, MyException, Exception // Si difficile d'être exhaustif { try{ // code de la méthode // // }catch(premiereexception lex){ // On retourne la même exception LOGGER.debug(lEx.toString()); throw lex; }catch(deuxiemeexception lex){ // On ne retourne pas d'exception (cas nominal) // code LOGGER.debug(lEx.toString()); }catch(troisiemeexception lex){ // On déclenche une autre Exception throw new MyException( ); }catch(exception lex){ // Cas d'une exception non attendue LOGGER.error(lEx.toString()); } } Formation IQ JAVA V1.1 37

38 Les règles de codage LOG4J (1/4) log4j est un framework extensible permet de logger et débugger vos applications Java. indispensable, pratique 3 type des composants : Logger envoi de message, gestion hiérarchique Appender filtrer les messages détermine le mode de sortie (console, fichier, socket, mails, et plus ) Layout 5 niveaux : DEBUG INFO WARN ERROR FATAL configuration par priorité Formation IQ JAVA V1.1 38

39 Les règles de codage LOG4J (2/4) Exemples : import org.apache.log4j.logger; // // try { LOGGER.debug("DEBUT DU TRAITEMENT"); if ( ) LOGGER.error("Erreur dans "); } catch(illegalargumentexception lex) { LOGGER.fatal("Erreur dans les parametres", lex); // Configuration : log4j.xml Formation IQ JAVA V1.1 39

40 Les règles de codage LOG4J (3/4) Configuration : log4j.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <appender name="dailyrollfile" class="org.apache.log4j.dailyrollingfileappender"> <param name="datepattern" value="'.'yyyy-mm-dd"/> <param name="file" value="/logs/scoh.log"/> <layout class="org.apache.log4j.patternlayout"> <param name="conversionpattern" value="%d{absolute} - %5p - [%c{1}:%l] %m%n"/> </layout> </appender> <logger name="fr.capgemini.sysbivc" additivity="false"> <level value="info"/> <appender-ref ref="dailyrollfile" /> </logger> <root> <priority value ="error" /> <appender-ref ref="dailyrollfile" /> </root> </log4j:configuration> Formation IQ JAVA V1.1 40

41 Les règles de codage LOG4J (4/4) le site officiel L'IQ d'un projet Java doit imposer l'utilisation de log4j dans tout développement Java (ou un logger similaire) Formation IQ JAVA V1.1 41

42 Les règles de codage LA GESTION DE LA MÉMOIRE plus d'écrasement mémoire plus de pointeurs plus de destruction explicites des objets le revers de la médaille : prolifération d'objets inutilement créés en mémoire baisse des performances (déjà que Java est moins performant que le C++ ) rendre Java performant est un effort de "bestpractices" continue dans le développement Formation IQ JAVA V1.1 42

43 Les règles de codage MODELE DE QUALIMETRIE (1/9) Les mesures de complexité nombre d'instructions exécutables dans une méthode(ex: 30) nombre de variables locales dans une méthode(ex: 7) on part du principe que toutes les variables locales sont déclarées en début de la méthode et avant le début du try/catch nombre maximum d'imbrications (ex: 3) le try/catch englobant de la méthode ne compte pas nombre cyclomatique (ex: 10) nombre de branches conditionnelles dans l'organigramme de la méthode : représentatif de l'effort de test nombre de paramètres (ex: 5) ce seuil peut être différent pour les constructeurs dans la version 2.5, on peut traiter des listes variables d'argument nombre de bloc try imbriqué (ex: 2) 1 si on ne compte pas l'englobant de la méthode Formation IQ JAVA V1.1 43

44 Les règles de codage MODELE DE QUALIMETRIE (2/9) Mesure de la présentation nombre d'attributs hérités (ex: 7) dans le cas des "protected" car normalement les attributs sont déclarées privées profondeur de classe dans l'arbre d'héritage (ex: 4) somme pondérée des complexités des méthodes d'une classe complexité interne d'une classe = nombre de méthodes qui peuvent être appelées lors de la réception d'un message couplage entre classe (ex: 5 à 20) utiliser les interface permet de diminuer le couplage entre classe un couplage en terme d'appel de méthode, d'accès aux attributs, d'héritage, de type de retour, d'exceptions traitées, ne pas faire d'héritage multiple permet de diminuer le couplage (c'est le cas de Java) Formation IQ JAVA V1.1 44

45 Les règles de codage MODELE DE QUALIMETRIE (3/9) nombre de descendants immédiats de la classe dans la hiérarchie de classe arborescence des liens d'agrégation des attributs d'une classe ne doit compter que les attributs qui ne sont pas transient : différence entre le lien d'agrégation et le lien de référence un attribut en "référence" n'est pas alloué par le constructeur proportion d'attributs non privés (ex: 0.3) les attributs final static ne comptent pas on peut trouver cette proportion = 0 les attributs public static sont dangereux, ils sont équivalents aux variables globales des langages non OO les variables locales doivent être déclarées en début de bloc pas nécessairement en début de méthode pas de ligne trop longue (ex: > 132) avec les nouveaux édites et les IDE la limite standard de 80 n'est plus d'actualité une instruction par ligne améliore la lisibilité et la maintenabilité du code permet une meilleur lisibilité des rapports des outils d'analyse de couverture de code chaque bloc logique d'instructions doit être entouré d'accolades Formation IQ JAVA V1.1 45

46 Les règles de codage MODELE DE QUALIMETRIE (4/9) Mesure de la structuration du flot de contrôle l'instruction continue est déconseillée l'instruction break est déconseillée pour sortie de boucle l'exception classique des algorithme de recherche itératif une méthode doit avoir une sortie nominale et une seule qu'un seul return dans le cas où une méthode doit retourner une valeur (non void): Formation IQ JAVA V1.1 46

47 Les règles de codage MODELE DE QUALIMETRIE (5/9) public Resultat methode(parametre aparam) throws PremiereException { // Par defaut Resultat lres = new Resultat( ); //ou // Resultat lres = null; // Si type de retour n'est pas un type primitif // try{ // code de la méthode // fait une affectation du résultat // lres = ; // }catch(premiereexception lex){ // On retourne la même exception LOGGER.debug(lEx.toString()); throw lex;} catch(deuxiemeexception lex){ // On ne retourne pas d'exception, on retourne le cas par défaut LOGGER.debug(lEx.toString()); catch(exception lex){ // Cas d'une exception non attendue LOGGER.error(lEx.toString()); } Formation return(lres) IQ JAVA V }

48 Les règles de codage MODELE DE QUALIMETRIE (6/9) une instruction break ou un commentaire dans chaque instruction case un cas défaut pour chaque instruction switch éviter les blocs ou les instructions vides éviter de définir des méthodes avec un corps vide dans une conception objet, on crée des adaptateurs dont les méthodes sont par définition du code vide. Pour éviter cela, on peut y insérer une instruction de log (LOGGER.debug(" ")) un adaptateur est une classe qui implémente par défaut toutes les méthodes d'une interface Formation IQ JAVA V1.1 48

49 Les règles de codage MODELE DE QUALIMETRIE (7/9) Mesure de l'utilisation des ressources variable inutilisée paramètre inutilisée les constantes numériques doivent être représentées par des attributs final static il existe le cas de valeurs numériques littérales uniques. Dans ce cas, on put ne pas être obligé de créé une constante il est interdit d'utiliser la redéfinition des méthodes statiques il est difficile de déterminer quelle méthode sera appelée dans certains cas de généricité donc préfixer toutes les méthodes statiques par final (en plus cela optimise) éviter d'attribuer le même nom à une variable locale et à un attribut avec une bonne règle de nommage cela est interdit) les attributs privés constants devraient être final en cas de redéfinition de la méthode finalize() on doit appeler super.finalize() éviter les attributs de portée public ou package Formation IQ JAVA V1.1 49

50 Les règles de codage Pour rappel : le scope des membres class c1 { public int A; protected int B; int C; private int D; } Package P1 class c4 extends c1 {... } Package P2 class c2 extends c1 {... } class c3 {... } class c5 {... } A B C D Accessible par c1 oui oui oui oui Accessible par c2 oui oui oui - Accessible par c3 oui oui oui - Accessible par c4 oui oui - - Accessible par c5 oui Formation IQ JAVA V1.1 50

51 Les règles de codage MODELE DE QUALIMETRIE (8/9) Mesure de complexité des expressions assignation multiple interdite l'opérateur d'alternative est interdit (ex: (x==y)?...) une condition de plus de 4 opérateurs logiques ne doit pas contenir plusieurs opérateurs distincts pas d'opérateur d'affectation dans une condition pas d'affectation dans les paramètres d'appel de fonction Formation IQ JAVA V1.1 51

52 Les règles de codage MODELE DE QUALIMETRIE (9/9) Mesure de l'utilisation des constructions à risque pas de test d'égalité entre 2 valeurs à virgule flottante pas de modification de l'indice d'une boucle for dans le corps de celle-ci éviter d'accéder aux membres statiques au travers d'une classe descendante éviter d'accéder aux membres statiques au travers d'un objet pas de substitution (overriding) d'une méthode non abstraite par une méthode abstraite ne pas surcharger une méthode privée pas de bloc vide pour une instruction catch utiliser la méthode equals à la place de l'opérateur == pour comparer les chaîne de caractères éviter d'assigner une valeur à un paramètre d'entrée Formation IQ JAVA V1.1 52

53 Les bonnes pratiques Formation IQ JAVA V1.1 53

54 Les bonnes pratiques PASSAGE PAR VALEUR Java ne fait pas de passage par référence obligé de passer un Holder : un objet qui contient l'objet que l'on veut retourner. Cette pratique n'est pas conseillé mais peut être incontournable comme cela est le cas dans l'implémentation des paramètres out des interfaces idl des architectures CORBA. Cet Holder doit définir les setteurs des attributs pouvant être modifiés La seul manière en Java de définir des objets constants est de définir les attributs privés et de ne pas définir de setteur sur ces attributs A ne pas confondre avec les attributs préfixés par final qui permet de définir des constantes Formation IQ JAVA V1.1 54

55 Les bonnes pratiques LES CONTENEURS (1/3) les conteneurs sont en constante évolution le vecteur (Vector) est moins optimisé que ArrayList mais plus pratique le tableau est par définition performant la performances des conteneurs dépend de leurs utilisations (suppression d'un des premier élément est coûteux pour certains) Homogénéité entre les développeurs de l'usage des conteneurs. Formation IQ JAVA V1.1 55

56 Les bonnes API pratiques LES CONTENEURS (2/3) Diagramme de classe Groupe d objets Groupe d objets uniques Groupe d objets ordonnés Groupe d objets Clés Valeurs Formation IQ JAVA V1.1 56

57 Les bonnes pratiques LES CONTENEURS (3/3) toutes ces "structures de données" sont protégés par les exceptions prédéfinies il est impossible de "déborder" d'un tableau sans que cela ne déclenche pas d'exception Formation IQ JAVA V1.1 57

58 Les bonnes pratiques FINAL final protège un attribut en écriture permet de déclarer des constantes attention si final porte sur un objet: seul la référence est protégée, pas le contenu de l'objet class Test{ static final int someint = 10; // } //... someint = 2: // INCORRECT public class FinalTest{ private static final Circle wheel = new Circle(5.0); private statc void main(string args[]){ wheel.setradius(7.4): // CORRECT!!! } } Formation IQ JAVA V class Circle{ private double rad; public Circle(double r){rad=r;} public void setrad(double r){rad=r;} public double getrad(){return rad;} }

59 Les bonnes pratiques INSTANCEOF Préférer le polymorphisme à l'usage de instanceof Cela doit donc rester un exception Cela est le cas quand on utilise la réflexivité du langage Cela est le cas quand on ne maîtrise pas le stockage des objets dans les conteneurs (ex: Vector) Tous les objets Java hérite de java.lang.object Tous les conteneurs contiennent des Object utiliser un try/catch sur l'exception ClassCastException utiliser instanceof Formation IQ JAVA V1.1 59

60 Les bonnes pratiques NULL Quand assigner la valeur null à des références d'objet? Le "garbage collector" ne ramasse pas tous les objets au premier coup L'aider consiste à affecter à null tous les objets devenus inutiles dans la suite du programme Rappels: par défaut tous les objets sont null les objets sont des références: il n'y a plus d'allocation implicite des objets Formation IQ JAVA V1.1 60

61 Les bonnes pratiques OBJETS ET TEST D'EGALITE (1/3) les types primitifs et les types références ne réagissent pas de la même manière lors des affectations int a = 1; int b = 2; Point x = new point(0,0); Point y = new Point(1,1); // a = b; a++; // a vaut 3, et b vaut 2 x=y; x.setlocation(5,5); // x et y vaut (5,5)!!! == teste l'égalité des primitifs et des références equals teste l'égalité du contenu des objets obj1.equals(obj2) Formation IQ JAVA V1.1 61

62 Les bonnes pratiques OBJETS ET TEST D'EGALITE (2/3) == ne marche pas pour les objets l'iq doit traquer son usage autres que sur les types primitifs le equals par défaut est celui de Object qui réalise un ==!!! la méthode equals doit être implémentée. Attention: toutes les classes prédéfinies n'implémentent pas la méthode equals. Exemples: Integer et String implémentent equals, mais StringBuffer n'implémente pas. Donc une méthode equals ne marcherait plus sur une évolution d'un de ses attributs de String en StringBuffer Utiliser tostring dans le code de equals Formation IQ JAVA V1.1 62

63 Les bonnes pratiques OBJETS ET TEST D'EGALITE (3/3) utiliser getclass pour tester en 1 er que les 2 objets sont de même classe utiliser super.equals pour tester l'égalité des attributs hérités le problème se corse quand on accepte le test d'égalité entre des classes de base et ses classes dérivées Formation IQ JAVA V1.1 63

64 Les bonnes pratiques GESTION DES EXCEPTIONS (1/4) il y a beaucoup à dire sur le sujet (trop) les exceptions est une fonctionnalité puissante, complexe, mais doit être maîtrisée sinon effet inverse de qualité du code coupler au mécanisme d'exception un mécanisme de trace (logueur) est un garant de qualité le mécanisme d'exception est un "goto" vers : le bloc catch le bloc finally la méthode appelante Formation IQ JAVA V1.1 64

65 Les bonnes pratiques GESTION DES EXCEPTIONS (2/4) Ne jamais ignorer une exception : récupérer l'exception et la gérer de telle sorte qu'elle ne se propage pas plus avant récupérer l'exception et la rejeter afin qu'elle se propage dans la méthode appelante ou sous une autre exception ne pas récupérer l'exception et la laisser se propager vers la méthode appelante Formation IQ JAVA V1.1 65

66 Les bonnes pratiques GESTION DES EXCEPTIONS (3/4) Ne jamais masquer une exception seule la dernière exception générée est propagée vers la méthode appelante public void foo() throws Exception { try{ throw new Exception("Première exception"); } catch(exception e) { throw new Exception("Deuxième exception"); } finally { throw new Exception("Troisième exception"); } } // // seul la troisième remonte à l'appelant // Formation IQ JAVA V1.1 66

67 Les bonnes pratiques GESTION DES EXCEPTIONS (4/4) utilisez la clause throws de manière explicite et exhaustive (une exception héritante peut cacher les dérivées) utiliser la clause finally avec modération un return dans un bloc try n'évite pas la clause finally placer les blocs try/catch en dehors des boucles (sinon baisse de la performance d'exécution) ne pas utiliser les exceptions pour les contrôles de flux d'information utiliser les exceptions dans les constructeurs tracer systématiquement en mode DEBUG toutes les exceptions Formation IQ JAVA V1.1 67

68 Les bonnes pratiques PERFORMANCES (1/2) améliorer ou ne pas dégrader les performances d'un programme Java est un exercice difficile et difficilement vérifiable par un IQ son rôle est donc limité mais sa démarche peut être aidé par l'utilisation d'un profiler (analyseur) de performance afin de générer des information d'analyse JProbe Profiler NetBeans Profiler optimiser le code source par le compilateur (option O) : n'est pas très utilisé car peu probante utiliser StringBuffer plutôt que String pour la concaténation minimiser le coût de la création d'objet ne pas créer d'objets inutiles (vérifier les algorithmes) éviter la synchronisation utilisez les variables de pile (locales) plutôt que les membres de la classe Formation IQ JAVA V1.1 68

69 Les bonnes pratiques PERFORMANCES (2/2) employer les méthodes static, final, et private méthode candidate à l'inlining (incorporation dans le coprs de la méthode appelante) sont résolues statiquement au moment de la compilation (donc pas de résolution dynamique) afin d'améliorer le constructeur ne pas affecter les attributs avec les valeurs par défaut de Java préférer l'usage des types primitifs itérer un Vector avec une boucle for et get plutôt l'usage de Enumeration ou Iterator utiliser System.arraycopy pour copier des tableaux préférer un objet tableau à un objet Vector ou ArrayList réutiliser les objets Formation IQ JAVA V1.1 69

70 Les environnements de développement JAVA Formation IQ JAVA V1.1 70

71 Les environnements de développement DÉFINITIONS IDE : Integrated Environment Development Un IDE est composé au minum un éditeur de texte un compilateur un debogueur Formation IQ JAVA V1.1 71

72 Les environnements de développement LES IDE DU MARCHÉ Eclipse (à part :plug-in) logiciel libre JBuilder de Borland JavaWorkShop (JWS) VisualJ++ Visual Age for Java d'ibm Java Development Envronment for Emacs (JDEE) VisualStudio de Microsoft NetBeans de SUN JCreator de XINOX Formation IQ JAVA V1.1 72

73 Les environnements de développement LES CRITÈRES DE CHOIX (1/2) la navigation dans le code le debug du code CVS l'aide en ligne les modes de complétion la documentation la création des composants JavaBeans, web-archive, html, XML, la prise en compte des environnement J2EE, Tomcat, UML, AppServer Formation IQ JAVA V1.1 73

74 Les environnements de développement LES CRITÈRES DE CHOIX (2/2) le prix la gratuité des environnement de développement la complexité de leur utilisation une interface graphique une gestion des versions Formation IQ JAVA V1.1 74

75 ECLIPSE On peut remarquer la facétie d'ibm dans le choix du nom de son logiciel, sachant que le créateur de Java est Sun (en anglais : «soleil»), concurrent qu'ibm semble vouloir «éclipser». Formation IQ JAVA V1.1 75

76 ECLIPSE CE QUE APPORTE L'USAGE DE ECLIPSE L'organisation du projet Le formatage du code source Une vérification du code en temps réel Une structuration d'accueil des composants De nombreux plug-in pour vérifier son code, générer du code, Des outils de génération et de déploiement Un environnement de développement complet Améliore la qualité du code développé car généré, guidé, La génération de la documentation (javadoc) Formation IQ JAVA V1.1 76

77 ECLIPSE DE QUOI EST COMPOSÉ ECLIPSE À LA BASE Platform Runtime démarrant la plateforme et gérant les plug-ins SWT la bibliothèque graphique de base de l'edi JFace une bibliothèque graphique de plus haut niveau basée sur SWT Eclipse Workbench qui est la dernière couche graphique permettant de manipuler des composants tels que des vues, des éditeurs, des perspectives... Formation IQ JAVA V1.1 77

78 ECLIPSE LES PROJETS D'ECLIPSE Eclipse est un projet open-source : Eclipse Project le projet fondateur comprenant Eclipse Platform, Eclipse Rich Client Platform (RCP) et le Java Development Tools (JDT) Il rassemble de très nombreux autres projets qui peuvent devenir des standards et de nouveaux plug-in Par exemple : Web Tools Platform project (WTP) propose de nombreux outils pour le développement d'applications web en Java. C/C++ Development Tools Project (CDT) est un environnement complet de développement pour les langages C et C++ pour Eclipse. De nombreux projets autour du modèle MVC très utilisés dans les architectures Web (Eclipse Modeling Framework, Graphical Editing Framework, Graphical Modeling Framework ) Des projets pour la conception UML (UML2) Autour des dernières technologies comme AJAX et RUBY Formation IQ JAVA V1.1 78

79 ECLIPSE LES PLUG-IN DE ECLIPSE des centaines de plug-in Formation IQ JAVA V1.1 79

80 ECLIPSE LES PLUG-IN DE ECLIPSE Pour connaître les plug-in contenus dans votre Eclipse Menu Help/About Eclipse Platform Plug-in Details Pour installer les plug-in à partir d'un site Menu Help/Software Updates/Find and Install Formation IQ JAVA V1.1 80

81 ECLIPSE L'USAGE DE ECLIPSE package, interface, classe Formation IQ JAVA V1.1 81

82 ECLIPSE UN EXEMPLE DE CADRAGE créer une interface créer une classe qui doit implémenter l'interface le code est généré implémentation par défaut des méthodes génération des blocs commentaires De l'uml aux classes (plug-in UML) Formation IQ JAVA V1.1 82

83 ECLIPSE LE FORMATAGE Windows Pref erences Le fichier format.sysbivc.xml Un formatage du source paramétrables Formation IQ JAVA V1.1 83

84 ECLIPSE LE FICHIER DE FORMATAGE Formation IQ JAVA V1.1 84

85 ECLIPSE L'EDITION SOUS ECLIPSE coller automatiquement les imports des packages des classes utilisées (Shift-Ctrl O) l'aide en ligne sur les éléments (F2), la navigation (F3) le JDK en ligne la génération des getteurs et setteurs la génération des commentaires sur les éléments du langage suivant la syntaxe javadoc utilisation des raccourcis clavier 'emacs' Formation IQ JAVA V1.1 85

86 Formation IQ JAVA V PMD

87 PMD ROLES DE PMD PMD est disponible à PMD peut être utiliser en dehors de Eclipse permet de contrôler le code source (Java, C++, ) permet d'adapter les règles de contrôle, les niveaux d'alerte permet de faire des bilans des contrôles sous différents formats les rapports doivent être mis à la disposition de l'iq Formation IQ JAVA V1.1 87

88 PMD VÉRIFIER LE CODE AVEC PMD Menu contextuel Formation IQ JAVA V1.1 88

89 PMD VÉRIFIER LE CODE AVEC PMD Zone de la liste de toutes les alertes Niveaux d'alerte différents Code de couleur correspondant aux différents niveaux d'alerte Formation IQ JAVA V1.1 89

90 PMD VÉRIFIER LE CODE AVEC PMD Windows Préférences PMD Adaptation des règles, changer les niveaux d'alerte Importer des règles d'un autre projet Formation IQ JAVA V1.1 90

91 PMD RAPPORTS PMD Rapports au format HTML, CSV Rappel des règles Navigation sur le net Formation IQ JAVA V1.1 91

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz Master 2 SITW Les services Web Dr. Djamel Benmerzoug Email : djamel.benmerzoug@univ-constantine2.dz Maitre de Conférences A, Département TLSI Faculté des NTIC Université Constantine 2 Abdelhamid Mehri

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

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Les architectures N-tiers

Les architectures N-tiers Les architectures N-tiers 1 SOMMAIRE DU COURS XML ET LES ARCHITECTURES N-TIER Introduction aux architectures N-tier Serveurs d applications Déploiement d applications J2EE Tiers applicatif : servlets Tiers

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java Nicolas Dumoulin nicolas.dumoulin@cemagref.fr Cemagref Laboratoire d ingénierie pour les systèmes complexes 2010 Notes aux lecteurs Ce document est un support de cours qui

Plus en détail

PRESENTATION DE JAVA. Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références. Software Associates International

PRESENTATION DE JAVA. Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références. Software Associates International PRESENTATION DE JAVA Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références 1 Qu est-ce que java? Un langage de programmation orienté objets Une architecture de Virtual

Plus en détail

Unité de formation 1 : Structurer une application. Durée : 3 semaines

Unité de formation 1 : Structurer une application. Durée : 3 semaines PROGRAMME «DEVELOPPEUR LOGICIEL» Titre professionnel : «Développeur Logiciel» Inscrit au RNCP de niveau III (Bac+2) (JO du 23 Octobre 2007) (32 semaines) Unité de formation 1 : Structurer une application

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

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

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

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Cours1 +Cours 2 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction

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

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

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

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

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Programmation Orientée Objet avec JAVA

Programmation Orientée Objet avec JAVA Programmation Orientée Objet avec JAVA Présenté par Abdoul Aziz Ciss Docteur en Cryptologie, Consultant ITSec Dept GIT EPT Email: aaciss@ept.sn Web : www.alekciss.com Tel: 77 451 92 95 Plan 1. Introduction

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur Java EE Cours 1 Présentation Générale Cours de 2 e année ingénieur 1 Présentation du cours Objectifs Développement d applications Web robustes «Ne pas réinventer la roue» utilisation d un framework 1 Apprentissage

Plus en détail

PPOOGL. Florent de Dinechin. Java pour les nuls

PPOOGL. Florent de Dinechin. Java pour les nuls PPOOGL Florent de Dinechin Java pour les nuls Java en 30 minutes Introduction Grands principes Pour en finir avec l organisation Types de base et objets Le reste est dans le manuel PPOOGL 1 Introduction

Plus en détail

Formation développement Java, Spring et Hibernate

Formation développement Java, Spring et Hibernate L institut de formation continue des professionnels du Web Formation développement Java, Spring et Hibernate Référence formation : Durée : Prix conseillé : DJSH 10 jours (70 heures) 4 500 HT (hors promotion

Plus en détail

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

Environnements de développement (intégrés) Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

JEE - Cours et TP. Mickaël Montassier. 15 février 2007. Institut Universitaire de Technologie Département Informatique

JEE - Cours et TP. Mickaël Montassier. 15 février 2007. Institut Universitaire de Technologie Département Informatique et TP Institut Universitaire de Technologie Département Informatique 15 février 2007 J2EE? J2EE : Java 2 Enterprise Edition Norme prosposée par SUN visant à définir un standard de développement d applications

Plus en détail

Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet

Cahier de charges (Source : Java EE - Guide de développement d'applications web en Java par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module Site Web dynamique JSP / Servlet Sujet : betaboutique Soutenance le 04 / 01 /2013 &

Plus en détail

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Projet M1 : Application P2P Hybride avec RMI

Projet M1 : Application P2P Hybride avec RMI Projet M1 : Application P2P Hybride avec RMI Applications Réparties 2008-2009 Université Paris VIII / Parcours SRM / M1 Sujet : Le but de ce projet est d'implémenter une application de partage de fichiers

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

LANGAGES & DéVELOPPEMENT. Une équipe à vos côtés pour toutes vos montées en compétences

LANGAGES & DéVELOPPEMENT. Une équipe à vos côtés pour toutes vos montées en compétences LANGAGES & DéVELOPPEMENT Une équipe à vos côtés pour toutes vos montées en compétences ASP.NET OPTION VB.NET OU C# 5 jours Permettre aux participants de mieux appréhender ce qu est la programmation pour

Plus en détail

Développement J2EE. avec Eclipse. et WSAD. Karim Djaafar. Olivier Salvatori. avec la contribution de. Groupe Eyrolles, 2003, ISBN 2-212-11285-8

Développement J2EE. avec Eclipse. et WSAD. Karim Djaafar. Olivier Salvatori. avec la contribution de. Groupe Eyrolles, 2003, ISBN 2-212-11285-8 Développement J2EE avec Eclipse et WSAD Karim Djaafar avec la contribution de Olivier Salvatori Groupe Eyrolles, 2003, ISBN 2-212-11285-8 La plate-forme de développement Eclipse CHAPITRE 5 147 Les vues

Plus en détail

ECLIPSE. Une courte introduction

ECLIPSE. Une courte introduction Laboratoire d'analyse et d'architecture des Systèmes ECLIPSE Une courte introduction Résumé: Quelques notions de bases sont rapidement décrites. Mots clés: Eclipse, Version, Exemples, IDE, Plug-ins, Rich

Plus en détail

La page générale de téléchargement se trouve à l adresse http://developers.sun.com/resources/downloads.html

La page générale de téléchargement se trouve à l adresse http://developers.sun.com/resources/downloads.html Site de Sun La page générale de téléchargement se trouve à l adresse http://developers.sun.com/resources/downloads.html Toutes les SDK et les run-time sont téléchargeable à l adresse : http://java.sun.com/downloads/

Plus en détail

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar Programmation - Java - Fiches du Langage Marie Beurton-Aimar Fiche Numéro 1 1.1 Structure d un programme Java Toutes les instructions se terminent par un ; Le nom du fichier qui contient une classe doit

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

JAVA Première approche

JAVA Première approche Année 2008-2009 JAVA Première approche Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Qu'est ce que Java? C'est le nom d'une technologie mise au point

Plus en détail

Groupe Eyrolles, 2004, ISBN : 2-212-11346-3

Groupe Eyrolles, 2004, ISBN : 2-212-11346-3 Groupe Eyrolles, 2004, ISBN : 2-212-11346-3 Table des matières Avant Propos................................................ 1 Pourquoi ce livre?........................................... 1 Structure de

Plus en détail

Bien programmer. en Java 7. 10 000 ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Bien programmer. en Java 7. 10 000 ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret. Bien programmer en Java 7 Avec plus de 50 études de cas et des comparaisons avec C++ et C# Plus de 10 000 ex. vendus! Édition en couleur Emmanuel Puybaret Groupe Eyrolles, 2012, ISBN : 978-2-212-12974-8

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Historique. Eclipse et ses concurrents. Logiciels libres : Préhistoire : 1980 : environnement graphique et premiers EDI (1981 Turbo Pascal)

Historique. Eclipse et ses concurrents. Logiciels libres : Préhistoire : 1980 : environnement graphique et premiers EDI (1981 Turbo Pascal) 1 Organisation Projet de développement Introduction à Eclipse Philippe Collet Licence 3 Informatique Cours 1 : principes généraux - svn Cours 2 : TRAC et gestion de projet Cours 3 : Introduction à Eclipse

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

Mise à niveau en Java

Mise à niveau en Java Mise à niveau en Java Cours 1 Stéphane Airiau Université Paris-Dauphine Stéphane Airiau (Université Paris-Dauphine) - Java Cours 1 1 Aujourd hui Eléments de base Variables, opérateurs, type d une expression

Plus en détail

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux Avant-propos 1. À qui s adresse ce livre? 11 2. Les pré-requis 12 Préambule 1. Rappel sur les architectures Internet/Intranet/Extranet 13 1.1 Le protocole HTTP 14 1.1.1 Les méthodes HTTP 16 1.1.2 Les codes

Plus en détail

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting Cours de Java Benjamin FAUCHER Cubis-Helios Consulting Cours 1 : Les bases du Langage Java 1/2 I. Introduction II. Compilation III. Rappel sur la POO IV. Les classes Java V. Syntaxe de base du Java Langage

Plus en détail

Documentation technique

Documentation technique MEEVY Documentation technique Juillet 200 MEEVY a pour but de fournir aux artistes des outils pour promouvoir leur musique sur internet et proposer à l auditeur une plateforme de musique en ligne gratuite

Plus en détail

Environnements de développement

Environnements de développement Environnements de développement Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/edi/ Introduction aux EDI, la plateforme

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur Plan Environnement Client/Serveur Cours 7 JavaServer Pages (1) kn@lri.fr 7.1 Principe 7.2 Rappels HTTP 7.3 Le serveur web Tomcat Programmation Web coté serveur JSP 2/28 (rappel) génération de pages-web

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 38 NFP111 Systèmes et Applications Réparties Cours 11 - Les Enterprise Java Beans (Introduction aux Enterprise Claude Duvallet Université du Havre UFR Sciences

Plus en détail

Java - Historique. Une introduction à Java. Premier exemple. Aperçu de Java. Processus d obtention d un exécutable. Compilation/interprétation

Java - Historique. Une introduction à Java. Premier exemple. Aperçu de Java. Processus d obtention d un exécutable. Compilation/interprétation Java - Historique Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Cours 1 : Introduction Générale + Objet

Cours 1 : Introduction Générale + Objet Organisation du cours Équipe pédagogique L2 S4 2009 : 2010 Programmation Objet Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet 10 cours de 1h30 o Jean-Claude MARTIN (MARTIN@LIMSI.FR)

Plus en détail

JOnAS Day 5.1. Outils de développements

JOnAS Day 5.1. Outils de développements JOnAS Day 5.1 Outils de développements Agenda Introduction Plugin Eclipse (JOPE) Plugin NetBeans (JOnbAS) Cargo 2 Bull, 2009 JOnAS Day 5.1 Objectifs - Réduire les temps de développement - Construction

Plus en détail

Projet de développement. Introduction à Eclipse. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Projet de développement. Introduction à Eclipse. Philippe Collet. Organisation. Cours 1 : principes généraux - svn 1 Organisation Projet de développement Introduction à Eclipse Philippe Collet Licence 3 Informatique Cours 1 : principes généraux - svn Cours 2 : Redmine et gestion de projet Cours 3 : Introduction à Eclipse

Plus en détail

Architecture J2EE. Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) J2EE 1 / 16

Architecture J2EE. Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) J2EE 1 / 16 Architecture J2EE Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE Thierry Lecroq (Univ. Rouen) J2EE 1 / 16 Plan 1 Historique 2 Architecture J2EE 3 J2EE et applications

Plus en détail

Cours 1. Contenu du cours : " Premières applications. " Compilation, Exécution, Chemin. " Affichage et saisie. " Types de données. " Flux de contrôle

Cours 1. Contenu du cours :  Premières applications.  Compilation, Exécution, Chemin.  Affichage et saisie.  Types de données.  Flux de contrôle Cours 1 1 Contenu du cours : " Premières applications " Compilation, Exécution, Chemin " Affichage et saisie " Types de données " Flux de contrôle " Applets " Arrays " OO de base Edition Le fichier texte

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Projet de développement. Introduction à Eclipse. Philippe Collet. Licence 3 MIAGE S6 2013-2014

Projet de développement. Introduction à Eclipse. Philippe Collet. Licence 3 MIAGE S6 2013-2014 Projet de développement Introduction à Eclipse Philippe Collet Licence 3 MIAGE S6 2013-2014 http://miageprojet2.unice.fr/user:philippecollet/projet_de_d%c3%a9veloppement_2013-2014 Plan r Eclipse : Introduction

Plus en détail

Développement de Servlets et JSP avec Eclipse

Développement de Servlets et JSP avec Eclipse Développement de Servlets et JSP avec Eclipse Sommaire 1 Mise en place o 1.1 Installation de Galileo o 1.2 Association de Galileo avec une installation de Tomcat o 1.3 Pilotage des serveurs 2 Développement

Plus en détail

JDOM. Manipulation de XML avec JDOM et Java. A. Belaïd http://cynober.developpez.com/tutoriel/java/xml/jdom/

JDOM. Manipulation de XML avec JDOM et Java. A. Belaïd http://cynober.developpez.com/tutoriel/java/xml/jdom/ JDOM Manipulation de XML avec JDOM et Java 1 JDOM C est quoi? JDOM est une API du langage Java Permet de manipuler des donnés XML plus simplement qu'avec les API classiques Son utilisation est pratique

Plus en détail

Partie 2.2: Servlet et Tomcat

Partie 2.2: Servlet et Tomcat Partie 2.2: Servlet et Tomcat 1 Plan du cours Servlets Présentation Exemple 2 Plan du cours Tomcat Des servlets à Tomcat: pourquoi Tomcat? Architecture Tomcat Installation et configuration de Tomcat Configuration

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

public class StaticExample { private static int compteur; public static double pi = 3.14159; } utilisation de la notation. respect des modificateurs

public class StaticExample { private static int compteur; public static double pi = 3.14159; } utilisation de la notation. respect des modificateurs static static : usage Le rôle essentiel d un moule est de permettre la création d objets. mais un moule a également des caractéristiques Il en est de même pour une classe. Usage : La déclaration des attributs

Plus en détail

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Syntaxe du langage JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Structure du langage Les types primitifs boolean(true/false), byte (1 octet), char (2 octets), short (2 octets), int (4 octets),

Plus en détail

PROGRAMME «CONCEPTEUR DÉVELOPPEUR INFORMATIQUE»

PROGRAMME «CONCEPTEUR DÉVELOPPEUR INFORMATIQUE» PROGRAMME «CONCEPTEUR DÉVELOPPEUR INFORMATIQUE» Titre professionnel : «Concepteur Développeur Informatique» Inscrit au RNCP de Niveau II (Bac + 4) (JO du 23 octobre 2007) (38 semaines) Unité de formation

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Projet de développement

Projet de développement Projet de développement Introduction à Eclipse Philippe Collet Licence 3 MIAGE S6 2012-2013 http://miageprojet2.unice.fr/index.php?title=user:philippecollet/projet_de_développement_2012-2013 Plan r Application

Plus en détail

1.Programmation en Java : notions de base, orienté objet et héritage

1.Programmation en Java : notions de base, orienté objet et héritage Travaux pratique de Méthodologie et Langage de Programmation,, TP1 1 1.Programmation en Java : notions de base, orienté objet et héritage Cette séance de TP a pour objectif d'introduire à la programmation

Plus en détail

Familiarisation avec Eclipse / Netbeans

Familiarisation avec Eclipse / Netbeans Institut Galilée LEE Année 011-01 Master T.P. 0 Familiarisation avec Eclipse / Netbeans Lien important contenant le pdf du cours et du TP, et ensuite des sources : http://www-lipn.univ-paris13.fr/~fouquere/mpls

Plus en détail

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn 1 Organisation Projet de développement Introduction à Eclipse Philippe Collet Licence 3 Informatique Cours 1 : principes généraux - svn Cours 2 : Redmine et gestion de projet Cours 3 : Introduction à Eclipse

Plus en détail

PLAN. I. Pourquoi : les besoins, les types d applications

PLAN. I. Pourquoi : les besoins, les types d applications PLAN I. Pourquoi : les besoins, les types d applications II. Comment : les technos et pratiques dont on dispose pour mettre en œuvre les applications III. Avec quels outils III.1 Introduction aux IDE III.2

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 +Cours 2 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction

Plus en détail

Ala Eddine BEN SALEM. T.P. 2 Servlet

Ala Eddine BEN SALEM. T.P. 2 Servlet EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 2 Servlet 1. Création d'un projet Web: A l'aide d'eclipse, créer un nouveau projet «sampleservlet» avec comme environnement d'exécution le serveur Tomcat installé

Plus en détail

Support de Cours Christophe Dony Université Montpellier-II

Support de Cours Christophe Dony Université Montpellier-II Cours de base d Ingéniérie des applications objet. Généralités sur le langage Java - Modèle d exécution - Syntaxe Support de Cours Christophe Dony Université Montpellier-II 1 Le langage Java 1.1 Langage

Plus en détail

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

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com Cours Plugin Eclipse Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com 1 Qui suis-je? Ancien étudiant de Jussieu - Paris VI Diplomé du Master Technologies

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

Objets distribués et Appel de Méthodes à Distance 2009-2010

Objets distribués et Appel de Méthodes à Distance 2009-2010 Objets distribués et Appel de Méthodes à Distance 2009-2010 1 Objectif : construire une application où différents modules peuvent être situés sur des machines différentes, en utilisant un modèle à objets

Plus en détail

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 5 Le projet WTP (Web

Plus en détail

Outils de génie logiciel

Outils de génie logiciel Outils de génie logiciel Fabrice Huet Fabrice.Huet@sophia.inria.fr Objectifs Généraux Donner une vue rapide du développement logiciel Aborder les outils de génie logiciel au sens large Méthode de développement

Plus en détail

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

Projet de développement. Introduction à Eclipse. Philippe Collet. Licence 3 Informatique 2012-2013

Projet de développement. Introduction à Eclipse. Philippe Collet. Licence 3 Informatique 2012-2013 Projet de développement Introduction à Eclipse Philippe Collet Licence 3 Informatique 2012-2013 Plan r Application de redmine à votre projet r Eclipse : Introduction et historique r Architecture d Eclipse

Plus en détail

Utilisation de Jakarta Tomcat

Utilisation de Jakarta Tomcat ISI 1022 : Déploiement d applications Web Jean-Noël Sorenti. Année 2002/2003 Déploiement d application Web Utilisation de Jakarta Tomcat ISI 1022 : 1 ISI 1022 : Déploiement d applications Web Une application

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 42 Chapitre 8 Développement d applications Web Amélie Lambert 2014-2015 2 / 42 Plan du cours Typologie des applications Web Architecture

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Fonctionnement du serveur Z39.50

Fonctionnement du serveur Z39.50 Fonctionnement du serveur Z39.50 Table des matières 1 Configuration du serveur...2 1.1 Comportement du serveur...2 1.2 Configuration de la traduction z39.50 -> base de données...2 1.3 Configuration du

Plus en détail

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

ECLIPSE ET PDT (Php development tools)

ECLIPSE ET PDT (Php development tools) ECLIPSE ET PDT (Php development tools) Eclipse Eclipse est un IDE (Integrated Development Environment)).C estun projet de la Fondation Eclipse visant à développer tout un environnement de développement

Plus en détail

Introduction à JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Introduction à JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Introduction à JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Mais JAVA c est quoi? Langage OO Exécuté dans une Machine Virtuelle Possède un ensemble complet d API (réseau, graphique, sécurité,

Plus en détail

Les IDEs. Integrated Development Environment. NetBeans (Oracle) Eclipse (IBM) etc.

Les IDEs. Integrated Development Environment. NetBeans (Oracle) Eclipse (IBM) etc. Les IDEs Integrated Development Environment NetBeans (Oracle) Eclipse (IBM) etc. Quand ne pas utiliser un IDE? Lorsqu'on apprend le langage Pourquoi? Tous les mécanismes de base du langage peuvent être

Plus en détail

Introduction à la plateforme J2EE

Introduction à la plateforme J2EE Introduction à la plateforme J2EE Auteur : Oussama Essefi Directeur technique Expert Consulting Oussama.essefi@expert-consulting.biz Copyright 2010 Expert Consulting Page 1 1. Introduction 1.1. Pourquoi

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Gestion des immeubles

Gestion des immeubles RAPPORT DE CONCEPTION Gestion des immeubles BOUSSRHAN YOUSSEF & BENZITI WALID Email : Youssefboussrhan@gmail.com GSM : 0678510690, 0611347597 ISTA NTIC SYBA CRJJ GROUPE B Annexe : Figure 1: Diagramme de

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 7 : RMI Nom(s) : Groupe : Date : Objectifs : savoir créer des applications client-serveur mettant en jeu des machines

Plus en détail

JEE pour les nuls* Atelier CRI du 15/01/2008. * Je laisse la responsabilité de ce titre à Alain Kermarrec ;-)

JEE pour les nuls* Atelier CRI du 15/01/2008. * Je laisse la responsabilité de ce titre à Alain Kermarrec ;-) JEE pour les nuls* Atelier CRI du 15/01/2008 1 * Je laisse la responsabilité de ce titre à Alain Kermarrec ;-) Licence Ce travail est mis à disposition sous une licence Creative Commons Vous êtes libres

Plus en détail

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

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90. Analyste et développeur pendant plus de 10 ans, Thierry GROUSSARD s est ensuite orienté vers la formation et plus particulièrement dans le domaine du développement. Sa connaissance approfondie des besoins

Plus en détail

PARADIGME ORIENTÉ-OBJET

PARADIGME ORIENTÉ-OBJET PARADIGME ORIENTÉ-OBJET A programming paradigm that uses objects to design systems. Sébastien Adam Une introduction des concepts de base 2 Principes fondamentaux Modularité : vise à répartir les opérations

Plus en détail

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail