Etude de l utilisation de l intégration continue en entreprise

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

Download "Etude de l utilisation de l intégration continue en entreprise"

Transcription

1 Projet de Recherche et Innovation 5ème année Filière logicielle Etude de l utilisation de l intégration continue en entreprise Auteur : Ronan Presle Tuteur encadrant : Thierry Blanc 13 mai 2015

2 1 Licence 1.1 Français Ce document est publié sous licence Creative Commons CC-BY. Vous êtes autorisé à : Partager : copier, distribuer et communiquer le matériel par tous moyens et sous tout format Adapter : remixer, transformer et créer à partir du matériel Cela pour toute utilisation, y compris commerciale. L offrant ne peut retirer les autorisations concédées par la licence tant que vous appliquez les termes de cette licence. Selon les conditions suivantes : Attribution : vous devez indiquer la paternité de ce matériel de manière appropriée, fournir un lien vers la licence appliquée et indiquer si des changements ont été fait sur l œuvre. Vous devez le faire de manière suffisamment explicite et cela sans suggérer que l auteur soutient les changements apportés. Aucune restriction supplémentaire : Vous n êtes pas autorisé à appliquer des conditions légales ou des mesures techniques qui restreindraient légalement autrui à utiliser l œuvre dans les conditions décrites par la licence. 1.2 English This document is published under the terms of Creative Commons CC-BY. You are free to: Share : copy and redistribute the material in any medium or format Adapt : remix, transform, and build upon the material for any purpose, even commercially. The licensor cannot revoke these freedoms as long as you follow the license terms. Under the following terms: Attribution : You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. No additional restrictions : You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 1

3 Résumé Le présent document constitue la partie théorique du Projet de Recherche et d Innovation que je réalise au cours de mes quatrième et cinquième années à l Exia.CESI. Il concerne l utilisation des processus d intégration continue en entreprise. Ce document est constitué d un état de l art présentant les processus, leur fonctionnement et leurs objectifs et d une étude de l utilisation de ces processus en entreprise. Enfin, je propose une solution simple et répondant aux problématiques exprimées par les sociétés afin qu elles puissent mettre en place les processus d intégration continue. L intégration est le processus de partage de code entre développeurs sur un dépôt commun. A chaque intégration, les codes sont réunis et échangés entre eux. L intégration continue est une pratique de vérification du code à chacune de ses intégrations ayant pour but d éviter la régression du code ou l apparition d une anomalie au sein de celui-ci. Le code est vérifié par un système automatisé de construction qui va valider son bon fonctionnement et sa bonne intégration au reste de l application existante sur le dépôt. Cela permet de s assurer que le code peut être compilé sans erreur après chaque partage. L utilisation de tests permet également d assurer le bon fonctionnement de l application, ils sont généralement exécutés lors de la construction. Durant ce projet, j ai mené une étude auprès d entreprises de type éditeur de logiciel et société de services. Les résultats m ont prouvé que nombre d entre elles n utilisent pas de processus d intégration continue. Les raisons sont diverses mais on retrouve régulièrement des problématiques de complexité, de coût d installation et de méconnaissance de ces processus. À travers les recherches que j ai menées et ma propre expérience de l intégration continue, je suis conscient de cette complexité de mise en place. Cependant, certaines technologies nous permettent aujourd hui de simplifier cette mise en place. De nombreux outils de qualité sont également disponibles sous forme de logiciels libres. Ce Projet de Recherche et d Innovation va donc avoir pour but de résoudre les problèmes qui empêchent les entreprises d utiliser des processus d intégration continue. La finalité de ce projet est donc de présenter l intégration continue comme un outil capital pour les développements d applications. A titre de solution, un ensemble d outils permettant la mise en place de processus d intégration continue dans les entreprises n en possédant pas sera 2

4 mis à disposition de celles-ci. Elle sera proposée sous la forme d un ensemble de conteneurs Docker. Elle prendra en compte les contraintes relevées par l étude et sera distribuée sur un site internet avec une documentation facilitant son utilisation. Abstract This document is the theoretical part of the research and innovation project that is realized during fourth and fifth year in Exia.CESI. It deals with the use of continuous integration in companies. The first part of this document is composed by a presentation of the project, how I have chosen my subject and which technology will be studied, a presentation of continuous integration, how it works and what its goals are. Then, I will present the result of the survey, the tools that will be used in the final solution and the solution itself. Integration is the process that every developer faces everyday to share his code on a central repository. Continuous integration is a practice coming from Extreme programming that assure that the application present on the repository is fully functional. The source code is verified regularly by an automated system. Once the compilation is checked, tests will be run to ensure that no regression has been inserted in the code. In this project, I have lead a survey in order to dicover why continuous integration was not used averywhere. The results proved that companies don t know about continuous integration or think that it is complex and long to set up and too expensive. Based on my personnal experience, I knew that it was not so complicated or expensive. A lot of technologies can help them to set up a completed set of tools and use continuous integration everyday. Nowadays, many tools are available as free softwares. This project aims to resolve those problems that prevent companies from using continuous integration. At the end of the project, companies will know that continuous integration is essential to improve performance in a development project. I will provide a solution that will contain several tools to use continuous integration processes. This solution will be based on given problems and will be easily deployed. 3

5 Remerciements Je souhaite tout d abord remercier Clément David, Pierrick Knecht, Pierre Lallement, membres de l équipe TotoAndCo et Romain Girard pour leur aide sur ce projet, ainsi que pour les autres projets que nous avons réalisés ensemble en utilisant des techniques et outils inconnus qui nous ont beaucoup appris. Je remercie Thierry Blanc et Stéphane Mahaud, respectivement tuteur et directeur de l Exia.CESI de Lyon, pour l aide qu ils m ont apportée lors de la réalisation de ce projet. Je remercie également Majid El Idrissi et Vincent Levorato, tuteurs à l Exia.CESI d Orléans pour toute l aide et les connaissances qu ils m ont apportées tout au long de ma formation. Ils sont ceux qui m ont communiqué cette envie d approfondir mes compétences techniques. Je remercie ensuite Philippe Charrière, Directeur de Propositions dans l entreprise SQLi à Lyon avec qui j ai réalisé un stage de trois mois en projet de Recherche et Développement. Il m a rappelé à quel point il est important de rester en veille afin de pouvoir s adapter à un monde informatique en permanente évolution. Je remercie également Antoine Vianey, maître de stage de quatrième année au sein d Astek. Il m a permis de découvrir l intégration continue et les avantages que cela présente. Je remercie Zenika et tous les collaborateurs qui y travaillent pour les nombreuses conversations techniques, les échanges de connaissances et la passion qu ils partagent tous. Je remercie Lou Rochard pour son aide et son soutien pendant toutes ces années. 4

6 Table des matières 1 Introduction 7 2 Etat de l art L étude Retour en arrière Les raisons de ce sujet Les langages Le C Le C Le Java Le C# Choix du langage L intégration Continue Définition et objectifs Composant de l IC Fonctionnement simple Réduction des risques Les tests Catégorie de tests Etude Questionnaire Outils Automatisation avec Maven Versionning avec Git Serveur d intégration avec Jenkins Couverture de test avec Jacoco (Emma) Qualité avec SonarQube Solution Docker Docker-Compose Format de la solution

7 4 Conclusion 45 6

8 1 Introduction Le développement logiciel est un domaine de l informatique qui est en permanente évolution depuis l émergence de l informatique dans les années Le cœur du développement logiciel est l étude, la conception, la création, le maintien de logiciels. Les phases de développement d un logiciel sont souvent réalisées en équipe. Certaines problématiques apparaissent donc en ce qui concerne le partage du code réalisé. Ce code développé sur les postes individuels doit être regroupé et il est nécessaire de vérifier le fonctionnement de l application après l assemblage du code. Pour pouvoir vérifier que l ensemble fonctionne correctement, il faudrait pouvoir réaliser une compilation avec les nouvelles sources. Ce premier traitement permet de vérifier qu il n y a pas d erreur syntaxique dans le code, mais ne permet pas de détecter les erreurs de logique qui peuvent apparaitre lorsque plusieurs personnes travaillent sur le même projet. Pour cela la construction qui devra être automatisée doit également exécuter des tests rédigés par les développeurs afin de vérifier qu il n y a eu aucune régression sur l ancien code lors de la modification. Tout ceci fait partie de l intégration continue. Ces processus permettent l amélioration de la qualité des développements mais ne sont pas présents dans toutes les entreprises. Pourquoi les éditeurs de logiciels n utilisent pas ces outils qui pourraient augmenter la qualité de leurs produits? Dans ce document, je vais d abord présenter les processus principaux de l intégration continue et en présenter l intérêt pour une entreprise éditrice de logiciels. Je proposerai ensuite une solution de mise en place d outils permettant la mise en place de processus d intégraton continue et répondant aux problématiques émises par des entreprises. Cette solution sera disponible sur mon site professionnel et publiée sous licence libre. 7

9 2 Etat de l art L intégration continue (IC) n est pas une technique récente. Cela fait déjà plusieurs années que les entreprises l utilisent afin d améliorer les projets de développement logiciel. Nous allons voir ce qu est l intégration continue et quels sont les processus qui la constituent. Ceci nous permettra d avoir les connaissances nécessaires pour aider les entreprises cibles à l utiliser. 2.1 L étude Le développement logiciel est un domaine très vaste. Il concerne énormément de sujets différents et la manière de le pratiquer est différente dans chaque lieu. Le nombre de langages existants donne un exemple de la variété de cadres du développement logiciel. L intégration continue repose sur ce domaine et possède donc tout autant de diversité notamment au niveau des outils qui la constituent. Afin de définir des limites à notre projet, nous allons tout d abord revenir sur l évolution du développement logiciel et sur les langages principaux utilisés aujourd hui Retour en arrière Ada Lovelace est considérée par beaucoup comme étant la première personne à avoir conçu un programme informatique. À travers un certain nombre de notes, elle décrit les différents états d une machine afin de réaliser un traitement logique. Elle fut la première à émettre l idée d une machine capable de manipuler des symboles en accord avec des règles et à penser que les nombres pourraient représenter autre chose que des quantités. Cela marque la transition entre le calcul mathématique et le calcul logique qu utilisent les ordinateurs actuels. En 1843, elle publia une traduction d un article de mathématiques français grâce au Moteur Analytique[36]. Dans les années 1940 apparaissent les premiers ordinateurs électriques, qui se rapprochent de ceux que nous connaissons aujourd hui. Mais leur utilisation est complexe. Le développement sur ces plates-formes doit être effectué en langage assembleur et même parfois en langage machine afin d optimiser l utilisation de la mémoire et des capacités de calcul de l ordinateur. Ceci amenait une complexité intellectuelle très importante et des causes d erreurs récurrentes. 8

10 Pour répondre à cette problématique, plusieurs langages sont mis au point : le Plankalkül, qui, à cause de la guerre puis de l Allemagne divisée, ne s est développé qu en 1998[15], le langage de l ENIAC qui est un langage spécifiquement conçu pour un ordinateur utilisé jusqu en 1955[23] et le jeu d instructions de la SSEM, première machine à architecture de Von Neumann[37]. Dans les années 1950, plusieurs langages importants ont été conçus, et sont encore utilisés dans une forme très peu modifiée : le FORTRAN, le LISP et le COBOL, basés respectivement sur la traduction de formules, le traitement des listes et la programmation d applications de gestion. C est également à cette époque qu est apparue la notion de langage orienté vers l algorithme avec l AL- GOL (Algorithmic Oriented Language)[1]. Ce langage apporte à la programmation informatique les notions de blocs logiques imbriqués et celle de la portée des variables. Ces concepts seront réutilisés dans la majorité des langages qui seront conçus par la suite. Certaines fonctionnalités de ce langage, trop complexes à mettre en place, le rendent impopulaire auprès des programmeurs. L un d entre eux créera une nouvelle version plus simple de ce langage : le Pascal. Entre 1967 et la fin des années 1970 est apparu un grand nombre de langages, et la conception des paradigmes principaux de la programmation. Un paradigme est une manière dont le langage va répondre à un problème posé. Il définit la manière dont l utilisateur du code de ce langage va voir et concevoir le programme afin de résoudre un problème. Un langage s appuie généralement sur plusieurs paradigmes afin de répondre à un nombre de problématiques plus grand. Aucun paradigme n est plus puissant qu un autre dans tous les domaines. Ils ont chacun leurs avantages et inconvénients[40]. La programmation déclarative dans laquelle se caractérise par la notion de fonction comme entité de base, manipulable au même titre que des variables et qui est utilisable dans d autres fonctions. La programmation orientée objets étend la programmation déclarative avec une abstraction supplémentaire, la notion d état, qui est très importante, le polymorphisme et l héritage. Elle permet d augmenter la modularité d un programme. La programmation multi-agents se base sur un ensemble d activités indépendantes qui vont collaborer afin d atteindre l objectif commun[40]. C est également sur cette période qu est apparu le langage C utilisé pour la programmation système d Unix. Nous reviendrons sur ce langage plus tard. Durant les années 1980, les chercheurs vont principalement se concentrer sur 9

11 Figure 1 Détails des principaux paradigmes de programmation. Peter Van Roy [40] l amélioration des langages existants. Ainsi, le C++ va être conçu en reprenant comme base le C et en y ajoutant, entre autres, le paradigme de la programmation orientée objets. Le langage Ada va être normalisé par les États-Unis. Les performances vont également être augmentées avec l apparition des modules, qui sont des unités de programmation entièrement paramétrables et donc facilement utilisables pour différents buts. Depuis les années 1990, les langages apparus n ont pas apporté de grandes 10

12 nouveautés, mais les concepts de base ont été approfondis pour améliorer la productivité des développeurs et la fiabilité des applications réalisées. C est dans cette période que sont conçus le Java de Sun Microsystem et le C# de Microsoft, tous deux orientés objets. On voit également se développer Internet et donc les langages gravitant autour de cette technologie comme le PHP, le Javascript et le Python. De nombreuses pratiques sont venues s ajouter aux projets de développement logiciels afin de permettre l amélioration de la productivité des développeurs. Très rapidement, le partage de code est devenu un enjeu majeur lorsque la taille des équipes de développement augmente. Puis, il a fallu s assurer que le travail collaboratif n empêche pas l avance globale du projet en mettant en place des tests automatisés. L augmentation de la taille des applications a vu se développer le nombre de dépendances ce qui a mené à la création d outils pour les gérer et la construction de l application avec celles-ci. Et tout ceci continue aujourd hui : tous les développeurs doivent apprendre à maîtriser ce que d autres ont créé pour faire avancer une société de plus en plus liée à l informatique Les raisons de ce sujet Tout au long de ma formation, j ai appris à maîtriser plusieurs langages de programmation. J ai commencé avec le langage C qui est un langage procédural bas niveau, puis j ai ensuite découvert la programmation orientée objets avec le C# puis le Java et le PHP. Tous ces langages sont très utilisés en entreprise. Il existe pour chacun d entre eux un nombre très important de frameworks qui permettent de compléter, de simplifier l utilisation de ces langages. Le problème est de savoir quand se servir d un langage plutôt qu un autre, sans connaître tous les outils qui sont disponibles avec lui. En entreprise, on retrouve ces langages utilisés sur différents projets. Entre les développeurs, les discussions autour des technologies, et notamment le conflit entre Java et C#, sont toujours très présentes et n apportent pas vraiment de réponse. Elles finissent souvent par un conflit idéologique. Ces personnes ont choisi ces technologies parce qu elles leur plaisaient, mais en plus de l intérêt qu a une technologie pour une personne, il faut également qu elle soit adaptée à l objectif de cette personne, à l utilisation qu elle peut en avoir. Pour les entreprises, les choix ne sont pas forcément faciles. Les clients peuvent être exigeants et imposer une 11

13 technologie même s ils n ont pas les connaissances pour apprécier la pertinence de ce choix. Les entreprises, lorsqu elles ont un choix à faire, doivent prendre en compte tous les aspects que ce choix implique : recrutement et formation des développeurs, temps de développement, sécurité, capacités matérielles, ergonomie, maintenance... Sur Internet, il est possible de trouver une multitude d informations concernant les capacités d un langage par rapport à un autre. Ces comparaisons sont souvent faites sur quelques points uniquement et ne concernent que peu de langages. Il n est pas possible de trouver un référentiel contenant une réelle comparaison professionnelle des langages. Une telle comparaison permettrait à différents acteurs de choisir des langages qui correspondraient à leurs besoins et fournir une idée des capacités de chaque langage à ceux qui ne les connaissent pas. Lors de ma quatrième année à l Exia.CESI j ai alors décidé de réaliser une étude de plusieurs langages afin de comparer objectivement leurs performances. Ce premier sujet m intéressait car il me permettait de compléter mes connaissances sur différents langages comme le C# et le C++. Après l étude théorique, je me suis rendu compte que les langages ne pouvaient être comparés car il y avait beaucoup trop de critères qui pouvaient influencer le choix d un langage pour un projet. Tous les langages ont des objectifs différents lors de leur conception. Ils utilisent des paradigmes différents, sont compilés ou interprétés. Les développeurs eux-même sont très importants dans le choix d un langage pour une entreprise. Certains n envisagent pas de se former sur certaines technologies parce qu elle ne leur plaît pas et aucune étude, aussi objective soit elle, ne pourrait imposer un tel changement chez eux. J ai pu voir cette volonté de rester sur sa technologie auprès de nombreux consultants lors de mon quatrième stage. J ai également pu appliquer pendant ce stage de nombreux processus permettant l amélioration des procédures de développement de l application. Ce sont ces processus inexistants dans mes précédents stages qui m ont permis de comprendre comment améliorer les projets quel que soit le langage utilisé. Si celui-ci rend la solution technique faisable, il est choisi par l entreprise. Il doit alors être possible d optimiser son intégration dans des processus de développement performants. Une fois que l entreprise ou les développeurs ont fait le choix du langage utilisé pour un projet, il faut mettre en place des outils qui permettront l optimisation et l augmentation de la performance des développements effectués. Afin 12

14 d acquérir ces compétences, j ai réalisé l installation d un certain nombre d outils permettant d améliorer la productivité de mes projets. Un projet en groupe a suffit à mon équipe pour valider l utilité de ces outils et de ces processus. Je souhaite donc partager cette expérience et surtout permettre aux plus petites entreprises de connaître ces procédés qui leur permettraient d améliorer leur développement. C est dans ce but que je réalise ce projet sur l intégration continue, afin de présenter ces procédés, d identifier pourquoi ils ne sont pas plus répandus et aider à les mettre en place Les langages Les langages informatiques sont très nombreux. Dans la première étude que je souhaitais réaliser, je voulais comparer les langages pour identifier le plus avantageux dans certaines situations. Comme je l ai expliqué plus haut, je ne pense pas que cela puisse toucher beaucoup d entreprises qui ont déjà un certain nombre de développeurs formés sur une technologie particulière. En revanche un axe d amélioration peut être la mise en place de procédures d intégration continue pour leurs projets. Ces procédures nécessitent l utilisation de plusieurs outils permettant par exemple l automatisation des traitements. Ces outils sont souvent relatifs à une technologie particulière. Je souhaite proposer à la fin de cette étude, une solution complète permettant l utilisation de processus d intégration continue. J ai donc décidé de ne réaliser cette solution que pour un unique langage afin qu elle soit opérationnelle et utilisable. Elle pourra servir de base pour une solution avec d autres langages. Afin d identifier le langage que j allai utiliser, j ai réalisé plusieurs recherches qui m ont guidé vers un organisme tiers qui réalise des études mensuelles sur l utilisation des langages dans le monde [43]. Cet organisme compte le nombre d ingénieurs qualifiés dans le monde entier, les cours et les vendeurs tiers qui utilisent un langage particulier, et établit son classement à partir d évaluations réalisées par des moteurs de recherche comme Google, Yahoo et Bing ainsi que d autres sites comme Wikipedia, Amazon et YouTube. Il existe beaucoup d autres études se reposant sur des bases de données différentes. Le site de LangPop.com [31] fournit des indices plus précis et plus manipulables. Via ce site, il est possible de définir quelles sources de données nous souhaitons 13

15 Figure 2 Index de popularité des langages de programmation. TiobeSoftware [43] mettre en avant (entre GitHub, Google Files, Ohloh, Craiglist, GoogleSearch). Github est un site de dépôt de source dont la popularité est en très forte hausse depuis quelques temps. Il propose des outils de recherche dans ses archives permettant d identifier les langages les plus utilisés sur cette plateforme[22]. Cependant, il est nécessaire de rappeler que nous ne connaissons pas la validité des archives 14

16 du site et qu il propose des dépôts privés uniquement pour les comptes utilisateurs payants. Certains utilisateurs n utiliseront donc jamais cette plateforme pour des sources qu ils jugent privées. Afin de compléter ces recherches, je me suis tourné vers le site d emploi informatique LesJeudis.com. Ce site est un référentiel français pour les offres d emplois dans le domaine de l informatique. Grâce au système de recherche par technologie[20], il est possible d identifier les langages les plus recherchés par les entreprises. A la date du 15 février 2014, les langages avec le plus d offres sont le C/C++(475), le Java(346), le PHP (179) et le C#(159). Il me semblait important également d intégrer ma propre expérience de ces langages dans la décision finale pour que je puisse améliorer mes connaissances de l écosystème qui m intéresse le plus. En confrontant toutes ces données, on se rend compte de l importance de certains langages dans le monde informatique. Le C reste très présent sur le marché depuis sa création. Le Java, le C# et le C++ sont les principaux langages orientés objets qui dominent le marché. Beaucoup d autres langages seraient très intéressants à intégrer dans cette étude. En effet, si aujourd hui les langages précédemment cités sont les plus utilisés au monde, certaines technologies évoluent très rapidement. Le PHP, le Python et le JavaScript sont des langages très utilisés dans certains domaines de l informatique. Afin de limiter la complexité de ce document, je ne vais présenter que les langages C, C++, C# et Java de manière théorique avant d affirmer la décision du langage choisi Le C Le langage C est un langage de programmation impérative, compilé, c est à dire que le code source est traduit en langage machine avant d être exécuté, apparu dans les années 1970 en tant que langage d implémentation du système Unix. Dennis Ritchie, développeur chez Bell Labs a créé le langage C et en 1978, il publie The C Programming Language avec Kernighan, ce qui entraina une évolution importante dans le monde du développement informatique. Le système Unix s est alors développé rapidement dans de nombreux groupes industriels. L exploitation de ce système a amené le langage C à être diffusé et modifié par de nombreux participants. En 1982, le C était devenu bien différent du langage d origine de Kernighan et Ritchie. Il était nécessaire de réaliser une nouvelle standardisation. 15

17 Un comité fut réuni et pris en compte l intégralité des implémentations existantes du C pour en réaliser une standardisation unique qui a conduit au C moderne[39]. Cette norme, ANSI C, fut terminée en Une partie importante du langage C vient du langage BCPL développé par Martin Richards. Cette influence passe égalempent par le langage B écrit par Ken Thompson en 1970 chez Bell Labs pour le développement du premier système Unix. Ritchie en collaboration avec Thompson fit évoluer le langage B de manière importante ce qui permit de créer un nouveau langage appelé le langage C. Le C est toujours très utilisé aujourd hui notamment à cause d un certain nombre de caractéristiques qui le rendent très pratique à utiliser. En effet, le langage possède un compilateur qui lui permet d être portable sur toutes les machines. Il introduit le concept de librairie standard disponible en dehors de l implémentation du langage sur les différentes machines. C est un langage de niveau moyen, sa syntaxe est assez simple par rapport aux langages comme l Assembleur, mais il permet d accéder aux capacités du matériel si besoin. Il permet d accéder aux fonctions bas niveau de la machine mais également un ensemble de fonctions permettant de réaliser des traitements de manière simple sans accéder au matériel directement. Le code rédigé en C est très rapide, presque aussi rapide que le code Assembleur. Il est donc utilisé dans beaucoup de types de projet, notamment systèmes, de compilateurs, d assembleurs, d éditeurs de texte, de drivers, de bases de données, d interpréteurs de langage, d utilitaires... Il est souvent abordé comme premier langage par beaucoup de développeurs car il permet de comprendre comment la machine gère son espace mémoire[10] Le C++ Le langage C++ est une amélioration du C réalisée par Bjarne Stroustrup alors qu il travaillait sur sa thèse. Il commença par travailler avec le langage Simula[41] qui est considéré comme le premier langage orienté objets. Plus tard, il travailla sur le C avec des classes, c est à dire qu il utilisa le C en essayant de l améliorer pour l aider à intégrer les caractéristiques du paradigme objet sans sacrifier sa portabilité et sa rapidité de traitement. Ce langage intègre les classes, le principe d héritage simple, la vérification d un typage fort et les arguments par défaut pour les fonctions en plus de toutes les fonctionnalités du C. 16

18 En 1983, le nom du langage fut changé de C with Classes à C++. À ce moment de nombreuses fonctionnalités ont été ajoutées au langage avec la virtualisation, la surcharge, le mot clé const. En 1985, Stroustup publie le livre The C++ Programming Language. Ce livre va servir de référence pendant quelques années avant la standardisation officielle de Tout au long de son existance, le C++ sera en permanence amélioré ce qui compliquera la tâche de création de la référence par les comités de standardisation dont les derniers travaux sur le C++ ont été publiés en 2011[8]. Le C++ est donc un langage de programmation normalisé par l ISO (Internationel Organization for Standardization [9]). C est un langage compilé possédant un typage fort demandant au développeur de maîtriser ce qu il réalise. Il supporte également un typage static ou dynamique c est à dire que le type d une variable est vérifié soit lors de la compilation, soit lors de l exécution. Le C++ permet l utilisation de plusieurs paradigmes notamment procédural et orienté objets. Comme le C++ se base sur le langage C, il bénéficie de sa portabilité, et il est compatible avec toutes les librairies du langage C avec peu ou pas de modifications. Avec l importance du C dans le monde et les nouvelles fonctionnalités qu il apporte, le C++ a vite été très populaire, la communauté est très importante autour de ce langage lui permettant d avoir une importante quantité de librairies open sources[5]. Le C++ est utilisé pour sa rapidité et ses performances très élevées dans des domaines où le temps de réaction est très important. C est le cas de certaines applications militaires, des outils financiers et de l industrie du jeu vidéo qui utilisent très largement ce langage Le Java Le Java est né de la volonté d ingénieurs de l entreprise Sun de créer un langage qui pourrait fonctionner sur de petits appareils électroniques en Pour cela, ils se sont basés sur le concept du Pascal UCSD de machine virtuelle. Ce concept reprend l idée de traduire premièrement le programme source en langage intermédiaire commun à toutes les machines. Ce code intermédiaire, que l on nomme Byte Code, est ainsi portable sur n importe quelle machine. La seule condition est que la machine de destination possède un programme appelé machine virtuelle permettant l interprétation du Byte Code. Ce projet n a pas abouti immédiatement. 17

19 Il fut repris lors de la sortie du navigateur Web HotJava, capable d exécuter des applets écrites en Byte Code[24]. Dès lors, le langage s est fortement développé grâce à son utilisation par les autres navigateurs et le développement de plusieurs versions qui ont permis l amélioration du langage avec l ajout de nombreuses bibliothèques de fonctions. Le Java est un langage dit pur langage de Programmation Orienté Objet (POO). Par nature un programme possédera obligatoirement une classe et il instanciera plusieurs objets. Il existe quelques exceptions à cette pureté du langage. Les types primitifs sont utilisés pour représenter les entiers, les nombres flottants, les caratères et les booléens. Ces variables ne sont pas des objets mais seront présentes en tant qu attributs des classes. Certaines méthodes de classe (déclarées avec le mot clé static) pourront être utilisées indépendamment d une instance de classe. On peut donc retrouver les procédures ou des fonctions des langages non objets mais ce n est pas le coeur du langage Java. La portabilité du langage Java est une de ses principales caractéristiques. En effet, on dit d un langage qu il est portable si un code source peut être utilisé sur différents environnement en ne nécessitant qu une nouvelle compilation. Le Java, lui, va plus loin grâce à la Machine Virtuelle ou Système d éxécution Java et au Byte Code. Après la compilation d un code Java, ce Byte Code peut être lu indépendamment de la plateforme sans nécessité de modification. L environnement définit les caractéristiques complètes des types primitifs ce qui permet d être assuré d avoir le même résultat quel que soit l environnement d exécution. Le Java s est grandement inspiré du langage C++. La définition du langage s est faite à partir d une base existante de C++, Fortran, Lisp et SmalTalk. Le Java est beaucoup plus simple que le C++. Pour cela, ses concepteurs ont dû retirer plusieurs caractéristiques du C++, les pointeurs, la surcharge d opérateurs et l héritage multiple.[33] Le Java a été développé à l origine par James Gosling chez Sun Microsystems qui a été acheté par Oracle Corporation en En 2007, Sun a modifié la license de tous ses produits Java en choisissant la licence GNU General Public License rendant le langage, la machine virtuelle et les librairies Java open sources. 18

20 2.1.7 Le C# Le langage C# a été créé par Anders Hejlsberg pour Microsoft en 2000 et a été introduit en même temps que la plateforme.net, produit phare de Microsoft. C est un langage à typage fort respectant plusieurs paradigmes de programmation tels que le procédural, l orienté objets et l orienté composants. L objectif de la création de ce langage était de fournir aux développeurs un outil aussi performant que le C++ avec la facilité de création d interfaces graphiques du Visual Basic.[28] Ce langage est tourné vers l efficacité maximale. Les auteurs du langage ont souhaité faire un outil simple d utilisation supprimant les tâches répétitives et laborieuses pour les développeurs (création d interfaces, contrôles standards, gestion d événements...). Il intègre notamment une détection d utilisation d objets non initialisés, une gestion des espaces mémoire... Le C# est orienté composants, c est à dire qu il intègre un certain nombre de mots clés pour créer les interfaces des composants. Le C# fait partie de la plateforme.net, outil créé par Microsoft dans le cadre de sa nouvelle stratégie. Cette plateforme s oriente sur un ensemble de services installés localement ou accessibles par le Web. Les composants de cette plateforme respectent tous la Common Language Specification qui est l ensemble des règles du.net. Ainsi, le C# met en avant la capacité d interopérabilité de la plateforme. Tout composant écrit dans un langage est utilisable dans un autre. Le C# est un langage objet pur. Toutes les variables du langage sont des objets même les types de variables standards tels que int ou float. Les programmes générés par le Framework.NET peuvent être exécutés sur toutes les plateformes possédant un Framework.NET. Sur un concept semblable à la machine virtuelle de Java, le C# posséde un Common Language Runtime qui fournit un environnement d exécution avec des services comme le Garbage Collector pour la gestion de la mémoire[46]. L environnement fourni par Microsoft permet d exécuter des programmes.net uniquement sur les systèmes Windows. En 2004, un projet open source, Mono[13], a été initialisé afin de créer un framework semblable à la plateforme.net disponible sur MacOS X et Linux. L entreprise Novell, qui maintient ce projet, fut poursuivie en justice par Microsoft jusqu à un accord en 2006[12]. 19

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com Fabrice GRELIER fabrice.grelier@fr.ibm.com RATIONAL en SCÈNE 2007 IBM Corporation Objectif

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

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

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

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE CATEGORIESTOPMENU MODULE CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 CONFIGURATION... 2 LICENCE ET COPYRIGHT... 3 SUPPORT TECHNIQUE ET MISES A JOUR...

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

Stéphane DERACO, DSI CNRS l Argos Devops : de l hyperviseur aux conteneurs l 11/12/2014 DOCKER

Stéphane DERACO, DSI CNRS l Argos Devops : de l hyperviseur aux conteneurs l 11/12/2014 DOCKER DOCKER HISTOIRE Projet interne de www.dotcloud.com (PaaS) 1 ère release Open Source en mars 2013 Objectif : conteneurs CONTENEURS «Vieux» concept chroot Unix : 1983 jails FreeBSD : 1998 Isoler l exécution

Plus en détail

La reconquête de vos marges de manœuvre

La reconquête de vos marges de manœuvre La reconquête de vos marges de manœuvre Libérez vos applications critiques Bull ouvre de nouvelles portes à votre patrimoine applicatif. Bull LiberTP fait passer simplement vos applications transactionnelles

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009 Rapport de stage Développement d un logiciel de vidéoconférence : Enjeux 3 Guillaume DOTT 2009 Maître de stage : Louis Poulette Tutrice : Marie-Paule Muller Remerciements Je tiens à remercier toute l équipe

Plus en détail

Application Form/ Formulaire de demande

Application Form/ Formulaire de demande Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application

Plus en détail

How to Login to Career Page

How to Login to Career Page How to Login to Career Page BASF Canada July 2013 To view this instruction manual in French, please scroll down to page 16 1 Job Postings How to Login/Create your Profile/Sign Up for Job Posting Notifications

Plus en détail

Méthode d Évaluation des Coûts liés à l Open Source (ECOS)

Méthode d Évaluation des Coûts liés à l Open Source (ECOS) Méthode d Évaluation des Coûts liés à l Open Source (ECOS) Version 1.0-31/03/2013 1 Table des matières 1 Note de licence 3 2 Historique des modifications 3 3 Introduction 3 3.1 Objet du document..........................

Plus en détail

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

Vérifier la qualité de vos applications logicielle de manière continue IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions

Plus en détail

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

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

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

IBM Business Process Manager

IBM Business Process Manager IBM Software WebSphere Livre blanc sur le leadership en matière d innovation IBM Business Process Manager Une plateforme de BPM complète, unifiée et facilement adaptable aux projets et aux programmes d

Plus en détail

Préparation d un serveur Apache pour Zend Framework

Préparation d un serveur Apache pour Zend Framework Préparation d un serveur Apache pour Zend Framework Jacques THOORENS 30 novembre 2010 Résumé Cette petite introduction explique comment paramétrer son serveur Apache personnel pour en faire une machine

Plus en détail

IBM Tivoli Monitoring, version 6.1

IBM Tivoli Monitoring, version 6.1 Superviser et administrer à partir d une unique console l ensemble de vos ressources, plates-formes et applications. IBM Tivoli Monitoring, version 6.1 Points forts! Surveillez de façon proactive les éléments

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

La montée des bases de données open source

La montée des bases de données open source La montée des bases de données open source Un document eforce FRANCE Mars 2003 La montée des bases de données open source - Page 1 sur 6 La montée en puissance des projets open source est incontestable

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

LE FORMAT DES RAPPORTS DU PERSONNEL DES COMMISSIONS DE DISTRICT D AMENAGEMENT FORMAT OF DISTRICT PLANNING COMMISSION STAFF REPORTS

LE FORMAT DES RAPPORTS DU PERSONNEL DES COMMISSIONS DE DISTRICT D AMENAGEMENT FORMAT OF DISTRICT PLANNING COMMISSION STAFF REPORTS FORMAT OF DISTRICT PLANNING COMMISSION STAFF REPORTS LE FORMAT DES RAPPORTS DU PERSONNEL DES COMMISSIONS DE DISTRICT D AMENAGEMENT A Guideline on the Format of District Planning Commission Staff Reports

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

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

De quoi avez-vous besoin pour ce manuel?

De quoi avez-vous besoin pour ce manuel? Introduction Le commerce électronique est devenu l un des grands sujets de préoccupation des chefs d entreprise du monde entier. Ces derniers répètent à l envie que leur priorité absolue est de relever

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

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE 1 Objectifs de l étude Comprendre l impact des réseaux sociaux externes ( Facebook, LinkedIn,

Plus en détail

Tirez plus vite profit du cloud computing avec IBM

Tirez plus vite profit du cloud computing avec IBM Tirez plus vite profit du cloud computing avec IBM Trouvez des solutions de type cloud éprouvées qui répondent à vos priorités principales Points clés Découvrez les avantages de quatre déploiements en

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0 DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0 INDEX : DOCUMENTATION - FRANCAIS... 2 1. INSTALLATION... 2 2. CONFIGURATION... 2 3. LICENCE ET COPYRIGHT... 3 4. MISES

Plus en détail

Slony1 2.1 Londiste 3

Slony1 2.1 Londiste 3 Slony1 2.1 Londiste 3 Cédric Villemain FRANCE PgConf.EU 2011 20/10/2011, Amsterdam License Creative Commons: Attribution-Non-Commercial-Share Alike 2.5 You are free: to copy, distribute,

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

RAPID 3.34 - Prenez le contrôle sur vos données

RAPID 3.34 - Prenez le contrôle sur vos données RAPID 3.34 - Prenez le contrôle sur vos données Parmi les fonctions les plus demandées par nos utilisateurs, la navigation au clavier et la possibilité de disposer de champs supplémentaires arrivent aux

Plus en détail

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public Communautés Numériques L informatique à la portée du Grand Public Initiation et perfectionnement à l utilisation de la micro-informatique Microsoft Document Connection pour Mac. Microsoft Document Connection

Plus en détail

Stéphane Lefebvre. CAE s Chief Financial Officer. CAE announces Government of Canada participation in Project Innovate.

Stéphane Lefebvre. CAE s Chief Financial Officer. CAE announces Government of Canada participation in Project Innovate. Stéphane Lefebvre CAE s Chief Financial Officer CAE announces Government of Canada participation in Project Innovate Montreal, Canada, February 27, 2014 Monsieur le ministre Lebel, Mesdames et messieurs,

Plus en détail

LA GOUVERNANCE, OU COMMENT RAPPROCHER LES ÉQUIPES DE DÉVELOPPEMENT ET D INFRASTRUCTURE

LA GOUVERNANCE, OU COMMENT RAPPROCHER LES ÉQUIPES DE DÉVELOPPEMENT ET D INFRASTRUCTURE Sébastien Levert & Julien Stroheker LA GOUVERNANCE, OU COMMENT RAPPROCHER LES ÉQUIPES DE DÉVELOPPEMENT ET D INFRASTRUCTURE La gouvernance technique, pourquoi? L enjeu premier pour le maintien de votre

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION CANADA CONSOLIDATION CODIFICATION First Nations Assessment Inspection Regulations Règlement sur l inspection aux fins d évaluation foncière des premières nations SOR/2007-242 DORS/2007-242 Current to September

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

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

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

Le Cloud: Mythe ou Réalité?

Le Cloud: Mythe ou Réalité? Le Cloud: Mythe ou Réalité? 23 Novembre 2011 Xebia Sacha Labourey CEO, CloudBees, Inc. 2011 Cloud Bees, Inc. All Rights Reserved Le Cloud Le cloud: un sujet très émo2onnel! 2 Changement de paradigme Lors

Plus en détail

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on ONTARIO Court File Number at (Name of court) Court office address Applicant(s) (In most cases, the applicant will be a children s aid society.) Full legal name & address for service street & number, municipality,

Plus en détail

11 Février 2014 Paris nidays.fr. ni.com

11 Février 2014 Paris nidays.fr. ni.com 11 Février 2014 Paris nidays.fr 1 Choisir la bonne architecture logicielle pour automatiser les systèmes de test Jérémy Charavet Ingénieur d Applications, National Instruments France Une architecture logicielle

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

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

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM alain.darmon@fr.ibm.

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM alain.darmon@fr.ibm. WEB15 IBM Software for Business Process Management un offre complète et modulaire Alain DARMON consultant avant-vente BPM alain.darmon@fr.ibm.com Claude Perrin ECM Client Technical Professional Manager

Plus en détail

RÉUSSIR L AUTOMATISATION DU PROCESSUS DE TEST FONCTIONNEL

RÉUSSIR L AUTOMATISATION DU PROCESSUS DE TEST FONCTIONNEL UN LIVRE BLANC DE BORLAND RÉUSSIR L AUTOMATISATION DU PROCESSUS DE TEST FONCTIONNEL L'automatisation du processus de test fonctionnel optimise la qualité des logiciels et maximise leur valeur opérationnelle.

Plus en détail

Environnements et Outils de Développement Cours 1 Introduction

Environnements et Outils de Développement Cours 1 Introduction Environnements et Outils de Développement Cours 1 Introduction Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot - Paris 7 URL http://upsilon.cc/~zack/teaching/1112/ed6/

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE SHOPDECORATION MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des

Plus en détail

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM 2015-2 APPLICATION FORM

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM 2015-2 APPLICATION FORM SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM 2015-2 APPLICATION FORM APPLICATION FORM / FORMULAIRE DE CANDIDATURE Note: If there is insufficient space to answer a question, please attach additional

Plus en détail

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre

Plus en détail

SERVEUR DÉDIÉ DOCUMENTATION

SERVEUR DÉDIÉ DOCUMENTATION SERVEUR DÉDIÉ DOCUMENTATION Release 5.0.6.0 19 Juillet 2013 Copyright 2013 GIANTS Software GmbH, All Rights Reserved. 1/9 CHANGE LOG Correction de bug divers (5.0.6.0) Ajout d une option de relance automatique

Plus en détail

Famille IBM WebSphere Application Server

Famille IBM WebSphere Application Server IBM Famille IBM Le socle applicatif qui répond à vos besoins métier Points clés Bâtir un socle solide et réduire les coûts avec un serveur d applications répondant à vos besoins métier Gagner en agilité

Plus en détail

Stage Ingénieur en développement logiciel/modélisation 3D

Stage Ingénieur en développement logiciel/modélisation 3D Ingénieur en développement logiciel/modélisation 3D Schlumberger recrute un(e) stagiaire ingénieur en modélisation 3D pour la plate-forme Petrel. Vous serez intégré(e) au sein d une équipe innovante, Petrel

Plus en détail

Petit guide pour l installation de CVW sous Linux

Petit guide pour l installation de CVW sous Linux LinuxFocus article number 310 http://linuxfocus.org par Juan Manuel Triana,Carlos Andrés Pérez Petit guide pour l installation de CVW sous Linux L auteur:

Plus en détail

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition)

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition) Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition) Par LoiselJP Le 01/08/2014 Rev. : 01/03/2015 1 Objectifs Dès qu il s agit de placer des paramètres particuliers, on annonce «il suffit d utiliser

Plus en détail

MODERN LANGUAGES DEPARTMENT

MODERN LANGUAGES DEPARTMENT MODERN LANGUAGES DEPARTMENT Common Assessment Task 3 YEAR 9 Je m appelle Ma classe Mark 20 10 19 22 16 13 Total Effort Instructions For this extended piece of homework, you are going to learn and write

Plus en détail

ANGULAR JS AVEC GDE GOOGLE

ANGULAR JS AVEC GDE GOOGLE ANGULAR JS AVEC GDE GOOGLE JUIN 2015 BRINGING THE HUMAN TOUCH TO TECHNOLOGY 2015 SERIAL QUI SUIS-JE? ESTELLE USER EXPERIENCE DESIGNER BUSINESS ANALYST BRINGING THE HUMAN TOUCH TO TECHNOLOGY SERIAL.CH 2

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

Solutions de gestion de la sécurité Livre blanc

Solutions de gestion de la sécurité Livre blanc Solutions de gestion de la sécurité Livre blanc L intégration de la gestion des identités et des accès avec l authentification unique Objectif : Renforcer la politique de sécurité et améliorer la productivité

Plus en détail

Construire des plug-ins pour SAS Management Console SAS 9.1

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

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

COMPARAISONDESLANGAGESC, C++, JAVA ET REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Les 10 pratiques pour adopter une démarche DevOps efficace

Les 10 pratiques pour adopter une démarche DevOps efficace Les 10 pratiques pour adopter une démarche DevOps efficace William Gravier RESPONSABLE D ACTIVITE DEVOPS SOCIETE POESI 1 QU EST-CE QUE DEVOPS? 2 LES TROIS PROCESSUS DEVOPS 3 L AGILITE DES ETUDES ET L ITILISISATION

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

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

Plus en détail

iqtool - Outil e-learning innovateur pour enseigner la Gestion de Qualité au niveau BAC+2

iqtool - Outil e-learning innovateur pour enseigner la Gestion de Qualité au niveau BAC+2 iqtool - Outil e-learning innovateur pour enseigner la Gestion de Qualité au niveau BAC+2 134712-LLP-2007-HU-LEONARDO-LMP 1 Information sur le projet iqtool - Outil e-learning innovateur pour enseigner

Plus en détail

CA Automation Suite for Data Centers

CA Automation Suite for Data Centers FICHE PRODUIT : CA Automation Suite for Data Centers CA Automation Suite for Data Centers agility made possible «La technologie a devancé la capacité à la gérer manuellement dans toutes les grandes entreprises

Plus en détail

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Avant-propos L économie en réseau, ou la netéconomie, est au cœur des débats et des stratégies de toutes les entreprises. Les organisations, qu il s agisse de

Plus en détail

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine

Plus en détail

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : Housing system est un service gratuit, qui vous propose de vous mettre en relation avec

Plus en détail

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009 Sommaire I. Introduction...

Plus en détail

Quatre axes au service de la performance et des mutations Four lines serve the performance and changes

Quatre axes au service de la performance et des mutations Four lines serve the performance and changes Le Centre d Innovation des Technologies sans Contact-EuraRFID (CITC EuraRFID) est un acteur clé en matière de l Internet des Objets et de l Intelligence Ambiante. C est un centre de ressources, d expérimentations

Plus en détail

Appointment or Deployment of Alternates Regulations. Règlement sur la nomination ou la mutation de remplaçants CONSOLIDATION CODIFICATION

Appointment or Deployment of Alternates Regulations. Règlement sur la nomination ou la mutation de remplaçants CONSOLIDATION CODIFICATION CANADA CONSOLIDATION CODIFICATION Appointment or Deployment of Alternates Regulations Règlement sur la nomination ou la mutation de remplaçants SOR/2012-83 DORS/2012-83 Current to August 30, 2015 À jour

Plus en détail

Livre blanc. La sécurité de nouvelle génération pour les datacenters virtualisés

Livre blanc. La sécurité de nouvelle génération pour les datacenters virtualisés Livre blanc La sécurité de nouvelle génération pour les datacenters virtualisés Introduction Ces dernières années, la virtualisation est devenue progressivement un élément stratégique clé pour le secteur

Plus en détail

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC Technologies du Web Ludovic DENOYER - ludovic.denoyer@lip6.fr UPMC Février 2014 Ludovic DENOYER - ludovic.denoyer@lip6.fr Technologies du Web Plan Retour sur les BDs Le service Search Un peu plus sur les

Plus en détail

Livre blanc. Au cœur de Diskeeper 2010 avec IntelliWrite

Livre blanc. Au cœur de Diskeeper 2010 avec IntelliWrite Livre blanc Au cœur de Diskeeper 2010 avec IntelliWrite AU CŒUR DE DISKEEPER 2010 AVEC INTELLIWRITE Table des matières PRÉSENTATION DE LA TECHNOLOGIE INTELLIWRITE 1 TEST DE PERFORMANCE D INTELLIWRITE 2

Plus en détail

Créer un blog ou un site e-commerce avec WordPress

Créer un blog ou un site e-commerce avec WordPress Créer un blog ou un site e-commerce avec WordPress OnBusinessPlan.fr Copyright 2015 OnBusinessPlan.fr On Business Plan Edition, License Notes This ebook is licensed for your personal enjoyment only. This

Plus en détail

Archived Content. Contenu archivé

Archived Content. Contenu archivé ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject

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

CEPF FINAL PROJECT COMPLETION REPORT

CEPF FINAL PROJECT COMPLETION REPORT CEPF FINAL PROJECT COMPLETION REPORT I. BASIC DATA Organization Legal Name: Conservation International Madagascar Project Title (as stated in the grant agreement): Knowledge Management: Information & Monitoring.

Plus en détail

Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations

Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations CANADA CONSOLIDATION CODIFICATION Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations Règlement sur les ordonnances alimentaires et les dispositions alimentaires (banques

Plus en détail

Forge. Présentation ( )

Forge. Présentation ( ) ( RetourListeFichesParThèmes ) Forge Présentation Définition Objectifs Services fournis, fonctions disponibles Services en ligne d hébergement de projets La solution des logiciels intégrés pour le déploiement

Plus en détail

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION THÈSE N O 2388 (2001) PRÉSENTÉE AU DÉPARTEMENT D'INFORMATIQUE ÉCOLE POLYTECHNIQUE FÉDÉRALE

Plus en détail

TD/TP 1 Introduction au SDK d Android

TD/TP 1 Introduction au SDK d Android TD/TP 1 Introduction au SDK d Android Romain Raveaux 1 Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition

Plus en détail

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada MySQL (Administrateur) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser la productivité de votre

Plus en détail

Agile 360 Product Owner Scrum Master

Agile 360 Product Owner Scrum Master Agile 360 Product Owner Scrum Master Lead Technique Equipe Agile Conception Agile Leadership Agile Software Craftmanship Test Driven Development Catalogue 2013 Liste des formations Formation Agile 360

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

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail