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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

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

Programmation d applications distribuées

Programmation d applications distribuées Programmation d applications distribuées François Charoy Université Henri Poincaré 8 octobre 2007 Première partie I Développement d applications distribuées Objectifs du cours Comprendre ce qu est une

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

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

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

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

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

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

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

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

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

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

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

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

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS Avant de commencer 1. Introduction 15 2. HTML5 oui, mais pas que... 15 2.1 HTML5 16 2.2 JavaScript 17 2.3 CSS 18 3. Les outils 18 Préparation des outils et création du projet 1. Introduction 21 2. Team

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

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique - 2010-2011

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique - 2010-2011 1 / 34 Développement Web - Servlet Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique - 2010-2011 2 / 34 Plan Plan 1 Introduction 2 Servlet

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

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

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

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

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C#

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# CHAPITRE 1 Introduction aux web services Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# NetBeans JavaScript Eclipse Objective C Xcode PHP HTML Objectifs du chapitre : Ce

Plus en détail

JavaServer Pages (JSP)

JavaServer Pages (JSP) JavaServer Pages (JSP) XVIII-1 Prérequis pour ce cours Ce cours a trait à la programmation Java coté serveur Il faut connaître un minimum de technologie J2EE Il faut connaître les servlets XVIII-2 Motivation

Plus en détail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

CORBA avec OpenORB. Samir Torki et Patrice Torguet

CORBA avec OpenORB. Samir Torki et Patrice Torguet CORBA avec OpenORB Samir Torki et Patrice Torguet 1 Présentation de CORBA CORBA (Common Object Request Broker Architecture) est un standard décrivant une architecture pour la mise en place d objets distribués.

Plus en détail

Guide Pratique EDI NetBeans

Guide Pratique EDI NetBeans Guide Pratique EDI NetBeans Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table des matières Assistant type de Projet EJB...2 Structure Module EJB...5 Ajout d'ejb, Fichiers et Bibliothèques

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Java c est quoi? Java pourquoi?

Java c est quoi? Java pourquoi? Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

Plus en détail

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information SOA et Services Web 23 octobre 2011 1 Evolution des Systèmes d Information 2 Qu est ce qu une application répartie? Il s agit d une application découpée en plusieurs unités Chaque unité peut être placée

Plus en détail

Création d'un convertisseur SQL SiTools

Création d'un convertisseur SQL SiTools Création d'un convertisseur SQL SiTools 1 - Introduction Un convertisseur permet de transformer la requête SQL, envoyé par la webapp SiTools à la webapp catalog ou l'inverse. C'est à dire que cette conversion

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Documents web dynamiques. 20 novembre 2007 Architecture Multi-Niveaux 54

Documents web dynamiques. 20 novembre 2007 Architecture Multi-Niveaux 54 Documents web dynamiques 20 novembre 2007 Architecture Multi-Niveaux 54 Documents web dynamiques Contenu Statique Le client envoie une requête avec un nom de fichier Le serveur répond en lui retournant

Plus en détail

PROGRAMMATION PAR OBJETS

PROGRAMMATION PAR OBJETS PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 Walter.Rudametkin@polytech-lille.fr B. Carré Polytech Lille 2 Java (Sun 1995)

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Formation en Logiciels Libres. Fiche d inscription

Formation en Logiciels Libres. Fiche d inscription République Tunisienne Ministère de l'industrie et la Technologie - Secrétariat d'état de la Technologie Unité des Logiciels Libres Formation en Logiciels Libres Fiche d inscription (Une fiche par candidat)

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Chapitre 5 CORBA (Common Object Request Broker Architecture)

Chapitre 5 CORBA (Common Object Request Broker Architecture) DÉVELOPPEMENT D APPLICATIONS RÉPARTIES CORBA (Common Object Request Broker Architecture) Amen Ben Hadj Ali amenbha@hotmail.com ISI-L3SIL 2011-2012 Plan 2 Architecture CORBA Le langage IDL CORBA en Java

Plus en détail

Tests unitaires avec Visual Studio

Tests unitaires avec Visual Studio Tests unitaires avec Visual Studio (source MSDN) Rappels (initiation aux tests unitaires SI6 Tp6) Les tests unitaires offrent aux développeurs une méthode rapide pour rechercher des erreurs de logique

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

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

Apache Tomcat 8. Guide d administration du serveur Java EE 7 sous Windows et Linux. Apache Tomcat 8. Apache Tomcat 8 Avant-propos Préambule La plate-forme Java EE Installation et configuration Administration du serveur Déploiement et gestion des applications La sécurité du serveur et des applications Analyse et supervision

Plus en détail

Programmation objet. www.ziggourat.com - Tél : 01 44 61 96 00 N enregistrement formation : 11752861675

Programmation objet. www.ziggourat.com - Tél : 01 44 61 96 00 N enregistrement formation : 11752861675 Programmation objet www.ziggourat.com - Tél : 01 44 61 96 00 enregistrement formation : 11752861675 Modélisation L essentiel du monde Objet... 3 UML et processus méthodologique... 4 Expression du besoin

Plus en détail

1. QCM (40 points) (1h)

1. QCM (40 points) (1h) Examen 1ère session 2012-2013 page 1 NSY 102 - AISL IPST-CNAM Intranet et Designs patterns NSY 102 Vendredi 26 Avril 2013 Durée : 3 heures Enseignants : LAFORGUE Jacques 1. QCM (40 points) (1h) Mode d'emploi

Plus en détail

Applications Web dynamiques SIO-21970

Applications Web dynamiques SIO-21970 Faculté des sciences de l'administration Systèmes d'information organisationnels Université Laval Automne 2003 Applications Web dynamiques SIO-21970 Professeur: Dzenan Ridjanovic Bureau: 2519 Téléphone:

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Programmation par RPC et Java-RMI :

Programmation par RPC et Java-RMI : 2A-SI 3 Prog. réseau et systèmes distribués 3.2 et JavaRMI Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de l équipe pédagogique du

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

J2EE - Introduction. Développement web - Java. Plan du chapitre

J2EE - Introduction. Développement web - Java. Plan du chapitre Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE

Plus en détail

Programmation en C# avec Visual Studio 2010

Programmation en C# avec Visual Studio 2010 CATALOGUE DE FORMATION Année 2011 Sommaire Programmation en C# avec Visual Studio 2010... 3 Introduction au développement Web avec Visual Studio 2010... 4 Développement d'applications Web avec Microsoft

Plus en détail

CQP Développeur Nouvelles Technologies (DNT)

CQP Développeur Nouvelles Technologies (DNT) ORGANISME REFERENCE STAGE : 26572 20 rue de l Arcade 75 008 PARIS CONTACT Couverture géographique : M. Frédéric DIOLEZ Bordeaux, Rouen, Lyon, Toulouse, Marseille Tél. : 09 88 66 17 40 Nantes, Lille, Strasbourg,

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

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)

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) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

DotNet. Plan. Les outils de développement

DotNet. Plan. Les outils de développement DotNet Les outils de développement Version 1.03 du 16/10/2006 par Jacky Renno Plan La machine virtuelle Le kit de développement Le kit de langage Le Visual Studio.NET Le serveur web IIS 6.0 Le modeleur

Plus en détail

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Tp2 Emacs Développement Web

Tp2 Emacs Développement Web Tp2 Emacs Développement Web Les indications ci-dessous donnent les grandes lignes du développement. 1/ Evenement Ajax Jquery: Le code javascript jquery suivant permet d afficher un message dans un span

Plus en détail

Etude de cas PLM. Patrice TORGUET IRIT Université Paul Sabatier

Etude de cas PLM. Patrice TORGUET IRIT Université Paul Sabatier Etude de cas PLM Patrice TORGUET IRIT Université Paul Sabatier Plan Exemple PLM Répartition avec Sockets Répartition avec RMI Répartition avec CORBA Répartition avec JMS Répartition avec Java EE Améliorations

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET Apache Tomcat 6 Guide d'administration du serveur Java EE sous Windows et Linux Étienne LANGLET Résumé Ce livre sur Apache Tomcat 6 s adresse à toute personne appelée à mettre en oeuvre ce serveur sous

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

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail