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

Introduction. Python?

Introduction. Python? 1 Introduction Python - why settle for snake oil when you can have the whole snake? «Python - Pourquoi se contenter d huile de serpent quand on peut avoir le serpent tout entier?» Mark Jackson En guise

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

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

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

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

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

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr)

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) Doc.No. : EUM/OPS/TEN/13/706466 Issue : v3 Date : 7 May 2014 WBS : EUMETSAT Eumetsat-Allee 1, D-64295 Darmstadt, Germany Tel: +49 6151 807-7 Fax: +49

Plus en détail

[Résumé: Intégration d un contrôle automatisé dans une station de test électrique]

[Résumé: Intégration d un contrôle automatisé dans une station de test électrique] SEPTEMBRE 2013 INSA de Strasbourg Génie électrique : Option énergie Par : Adnane BOUKHEFFA Tuteur Institutionnel : M. Guy STURTZER Réalisé au sein du Groupe Legrand 290 Avenue de Colmar, Strasbourg 67100

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

Read Me First: Guide to Sun HPC ClusterTools 3.1 Documentation

Read Me First: Guide to Sun HPC ClusterTools 3.1 Documentation Read Me First: Guide to Sun HPC ClusterTools 3.1 Documentation Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 USA 650 960-1300 Fax 650 969-9131 Part No. 806-3729-10 March 2000, Revision

Plus en détail

Installation et compilation de gnurbs sous Windows

Installation et compilation de gnurbs sous Windows Installation et compilation de gnurbs sous Windows Installation de l environnement de développement Code::Blocks (Environnement de développement) 1. Télécharger l installateur de Code::Blocks (version

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

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

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

Construire son projet : Rédiger la partie impacts (2/4) Service Europe Direction des Programmes et de la Formation pour le Sud

Construire son projet : Rédiger la partie impacts (2/4) Service Europe Direction des Programmes et de la Formation pour le Sud Construire son projet : Rédiger la partie impacts (2/4) Service Europe Direction des Programmes et de la Formation pour le Sud Sommaire Construire son projet : Rédiger la partie impacts (2/4) Comment définir

Plus en détail

Academic Project. B3 - Architecture. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Academic Project. B3 - Architecture. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA SUPINFO Academic Dept. Resit Project Academic Project 2012-2013 Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA Conditions d utilisations : SUPINFO International University vous

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

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

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1 Génie logiciel Concepts fondamentaux Bruno MERMET, Université du Havre 1 Nécessité du Génie Logiciel Bruno MERMET, Université du Havre 2 Développement d un logiciel Caractéristiques souhaitées : Adéquation

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

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

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

Aligner Stratégie d Entreprise et Infrastructure Informatique

Aligner Stratégie d Entreprise et Infrastructure Informatique Logiciels IBM Rational Janvier 2005 Aligner Stratégie d Entreprise et Infrastructure Informatique IBM Rational Software Development Platform & Business-Driven Development Page 2 Table des matières 1 L

Plus en détail

CA Mainframe Software Manager r3.1

CA Mainframe Software Manager r3.1 FICHE PRODUIT CA Mainframe Software Manager CA Mainframe Software Manager r3.1 CA Mainframe Software Manager (CA MSM) est un composant clé de la stratégie Mainframe 2.0 de CA Technologies, qui vous aide

Plus en détail

Image Processing On Line: Publication Scientifique et Logiciels

Image Processing On Line: Publication Scientifique et Logiciels Image Processing On Line: Publication Scientifique et Logiciels Nicolas Limare CMLA, ENS Cachan RRRR Orléans 2012-04-05 reproductibilité? que publie-t on? que veut-on reproduire? demonstration mathematique?

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

Application COBOL sur le Web

Application COBOL sur le Web Application COBOL sur le Web Roger Engel Éditions Eyrolles ISBN : 2-212-09116-8 2000 Avant-propos En informatique, nous vivons actuellement des temps fort captivants, caractérisés par de profonds bouleversements,

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

IKAN ALM et HP ALM/HP Quality Center Enterprise Pour que les Equipes de Développement, de Test et de Production se rejoignent

IKAN ALM et HP ALM/HP Quality Center Enterprise Pour que les Equipes de Développement, de Test et de Production se rejoignent IKAN ALM et HP ALM/HP Quality Center Enterprise Pour que les Equipes de Développement, de Test et de Production se rejoignent Table of contents Sommaire...3 Définition du problème...4 Solution Description...5

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

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

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

À propos de l intégration continue dans Xcode

À propos de l intégration continue dans Xcode À propos de l intégration continue dans Xcode Table des matières À propos de l intégration continue dans Xcode 4 En bref 4 Installer et configurer le service Xcode 4 Connecter le service Xcode aux dépôts

Plus en détail

Techniques de Développement

Techniques de Développement Techniques de Développement Quelques définitions relatives au développement de logiciel Sébastien Faucou Université de Nantes (IUT de Nantes, département Informatique) Licence Professionnelle Systèmes

Plus en détail

Animation de la démarche Santé et Sécurité au Travail pour Les Crudettes SAS

Animation de la démarche Santé et Sécurité au Travail pour Les Crudettes SAS MINISTERE DE L AGRICULTURE LES CRUDETTES SAS www.lescrudettes.com MÉMOIRE DE FIN D ÉTUDES présenté pour l obtention du diplôme d ingénieur agronome spécialisation : Agro-alimentaire option : QUALI-RISQUES

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

Quick start. Pulsar ellipse 300/500/650/800/1200. Pulsar ellipse premium 500/650/800/1200

Quick start. Pulsar ellipse 300/500/650/800/1200. Pulsar ellipse premium 500/650/800/1200 Quick start Pulsar ellipse 300/500/650/800/1200 Pulsar ellipse premium 500/650/800/1200 Using the additional functions available on your Pulsar ellipse Utilisation des fonctions additionnelles de votre

Plus en détail

Conception et développement des plates-formes webs, de services et des applications mobiles des clients Entreprise: Yaal

Conception et développement des plates-formes webs, de services et des applications mobiles des clients Entreprise: Yaal Université Bordeaux 1 Master Informatique spécialité Système et Réseaux parcours Réseaux Conception et développement des plates-formes webs, de services et des applications mobiles des clients Entreprise:

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

Concevoir des applications Web avec UML

Concevoir des applications Web avec UML Concevoir des applications Web avec UML Jim Conallen Éditions Eyrolles ISBN : 2-212-09172-9 2000 1 Introduction Objectifs du livre Le sujet de ce livre est le développement des applications web. Ce n est

Plus en détail

À qui s adresse ce livre? Suppléments web. Remerciements

À qui s adresse ce livre? Suppléments web. Remerciements Avant propos Le marché de la géolocalisation est en pleine effervescence, comme le prouve l annonce de lancement par Facebook, en août 2010, de son service Places, qui permet de partager sa position géographique

Plus en détail

Jenkins perdre du temps pour en gagner

Jenkins perdre du temps pour en gagner Jenkins perdre du temps pour en gagner Dimitri Durieux Chef de projet 23 septembre 2015 Centre d Excellence en Technologies de l Information et de la Communication Qui suis-je? Chef de projet Master en

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

TP 1 : prise en main de C#. Net sous Visual Studio 2010

TP 1 : prise en main de C#. Net sous Visual Studio 2010 Année universitaire : 2014-2015 Responsable : Sonia LAJMI Niveau Matière 2 ème année MPIM Management des Contenus Multimédia TP 1 : prise en main de C#. Net sous Visual Studio 2010 Dans ce tout premier

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

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri Types et langages de programmation Algorithmique et Programmation Unisciel/K.Zampieri 1 Généalogie partielle des langages de programmation FORTRAN BASIC PL/1 PROLOG ALGOL60 COBOL C PASCAL ADA MODULA-2

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

Optimiser la recherche d informations dans deux des Bases de Données internes et Accroître la productivité des analystes

Optimiser la recherche d informations dans deux des Bases de Données internes et Accroître la productivité des analystes Optimiser la recherche d informations dans deux des Bases de Données internes et Accroître la productivité des analystes Mémoire de stage Promotion 2010 Priscillia VON HOFMANN Abstract Today, the importance

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

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

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

Fiche d Inscription / Entry Form

Fiche d Inscription / Entry Form Fiche d Inscription / Entry Form (A renvoyer avant le 15 octobre 2014 Deadline octobrer 15th 2014) Film Institutionnel / Corporate Film Film Marketing Produit / Marketing Product film Film Communication

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

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

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

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

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

QUELQUES CONCEPTS INTRODUCTIFS

QUELQUES CONCEPTS INTRODUCTIFS ESIEE Unité d'informatique IN101 Albin Morelle (et Denis Bureau) QUELQUES CONCEPTS INTRODUCTIFS 1- ARCHITECTURE ET FONCTIONNEMENT D UN ORDINATEUR Processeur Mémoire centrale Clavier Unité d échange BUS

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

IBM Tivoli Service Desk

IBM Tivoli Service Desk Déployer des services de qualité tout en maîtrisant les coûts IBM Tivoli Service Desk Points forts Rationalise la gestion des problèmes et des incidents afin de permettre la restauration rapide et économique

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

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

CA Systems Performance for Infrastructure Managers

CA Systems Performance for Infrastructure Managers FICHE PRODUIT : CA Systems Performance for Infrastructure Managers agility made possible CA Systems Performance for Infrastructure Managers CA Systems Performance for Infrastructure Managers est une extension

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

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

Ada dans Debian GNU/Linux présentation de 30 minutes Copyright (C) 2004 Ludovic Brenta

Ada dans Debian GNU/Linux présentation de 30 minutes Copyright (C) 2004 Ludovic Brenta <ludovic.brenta@insalien.org> Ada dans Debian GNU/Linux présentation de 30 minutes Copyright (C) 2004 Ludovic Brenta This presentation is free software; you can redistribute it and/or modify it under the

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

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

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

Gérer efficacement le développement géographiquementdistribué

Gérer efficacement le développement géographiquementdistribué Solutions SCM IBM Rational pour le développement distribué Août 2004 Gérer efficacement le développement géographiquementdistribué Karen Wade Directrice du marketing, Produits SCM IBM Software Group Page

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

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

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

Développement Web Introduction générale

Développement Web Introduction générale 1 / 58 Développement Web Introduction générale Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer Juillet 2008 2 / 58 Plan Plan 1 Introduction 2 Historique et

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

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

Promotion of bio-methane and its market development through local and regional partnerships. A project under the Intelligent Energy Europe programme

Promotion of bio-methane and its market development through local and regional partnerships. A project under the Intelligent Energy Europe programme Promotion of bio-methane and its market development through local and regional partnerships A project under the Intelligent Energy Europe programme Contract Number: IEE/10/130 Deliverable Reference: W.P.2.1.3

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

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

Une interface graphique de modélisation basée sur le formalisme de Forrester

Une interface graphique de modélisation basée sur le formalisme de Forrester Une interface graphique de modélisation basée sur le formalisme de Forrester un plugin de modélisation GVLE Patrick Chabrier INRA (Institut National de la Recherche Agronomique) (INRA) Stage Forrester

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

LibreDA : JavaScript pour un logiciel administratif

LibreDA : JavaScript pour un logiciel administratif LibreDA : JavaScript pour un logiciel administratif Le retour de JavaScript Louis Martin Martin Simoneau 2 avril 2015 1 Objectifs 2 Le fureteur 3 JavaScript 4 Écosystème de développement 5 NoSQL 6 Exemples

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

PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER

PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER Année 2008/2009 PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER Licence Professionnelle Système informatique et logiciel Responsable du projet : Françoise GREFFIER SOMMAIRE I. PRESENTATION

Plus en détail

BOSTONI Sacha NGUYEN Linh. Rapport de projet : Annuaire des anciens élèves

BOSTONI Sacha NGUYEN Linh. Rapport de projet : Annuaire des anciens élèves BOSTONI Sacha NGUYEN Linh Rapport de projet : Annuaire des anciens élèves Tuteur : Mr Muller Mai 2007 SOMMAIRE Introduction 1/ Les utilisateurs du site 2/ Les fonctionnalités 3/ La réalisation Conclusion

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

How to Deposit into Your PlayOLG Account

How to Deposit into Your PlayOLG Account How to Deposit into Your PlayOLG Account Option 1: Deposit with INTERAC Online Option 2: Deposit with a credit card Le texte français suit l'anglais. When you want to purchase lottery products or play

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

General Export Permit No. Ex. 18 Portable Personal Computers and Associated Software

General Export Permit No. Ex. 18 Portable Personal Computers and Associated Software CANADA CONSOLIDATION CODIFICATION General Export Permit No. Ex. 18 Portable Personal Computers and Associated Software Licence générale d exportation n o Ex. 18 Ordinateurs personnels portatifs et logiciels

Plus en détail

Introduction aux Bases de Données Relationnelles Conclusion - 1

Introduction aux Bases de Données Relationnelles Conclusion - 1 Pratique d un : MySQL Objectifs des bases de données Où en sommes nous? Finalement, qu est-ce qu un? Modèle relationnel Algèbre relationnelle Conclusion SQL Conception et rétro-conception Protection de

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

Le service pack 6 (SP6) est le dernier disponible pour visual studio 6. Ce dernier devrait être maintenu par Microsoft jusqu en 2008.

Le service pack 6 (SP6) est le dernier disponible pour visual studio 6. Ce dernier devrait être maintenu par Microsoft jusqu en 2008. 1 CONCEPT DE BASE 1.1 Visual Basic 6 1.1.1 Pour quoi faire? VB est un langage de type RAD : «Rapid Application Development». Il permet de créer des applications rapidement grâce à une conception simple

Plus en détail

Approches innovantes vers le Cloud, la Mobilité et les outils sociaux de formation

Approches innovantes vers le Cloud, la Mobilité et les outils sociaux de formation Présentation de la solution SAP SAP Education SAP Workforce Performance Builder Objectifs Approches innovantes vers le Cloud, la Mobilité et les outils sociaux de formation Développement des compétences

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

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

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

Optimisez les coûts de possession de votre information et redonnez de la capacité d investissement au DSI

Optimisez les coûts de possession de votre information et redonnez de la capacité d investissement au DSI CGI Dbox Dites oui à notre solution exclusive de décommissionnement et réduisez les coûts tout en conservant l intégrité de votre patrimoine informationnel Optimisez les coûts de possession de votre information

Plus en détail