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

Sujet de veille technologique : Les langages de développement et leurs évolutions

Sujet de veille technologique : Les langages de développement et leurs évolutions 2014 Sujet de veille technologique : Les langages de développement et leurs évolutions Charly Rivière IIA SOMMAIRE : SOMMAIRE :... 0 1. Pourquoi ce sujet?... 2 2. Qu est-ce qu un langage de développement...

Plus en détail

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours 0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage 3- Organisation du cours Le présent cours constitue une introduction pour situer le langage C++, beaucoup des concepts

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

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium dans le cadre du projet JASMINe Avril 2008 Table des matières 1 Introduction 3 1.1 Rappel sur JASMINe.......................................

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

Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs

Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs CGI Group Inc. 2013 Agenda 1 2 3 4 5 6 7 Problématiques et enjeux Solutions et fonctionnalités Concepts Exécution et rapport

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

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

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

www.lafamily.ch en 16 différences

www.lafamily.ch en 16 différences Cas d étude no 3 www.lafamily.ch en 16 différences juin 2003 Le mandat réalisé avec QuickSite de transformation du site existant de Lafamily.ch, centre globale d information pour les familles, à été de

Plus en détail

6761 Validation de la conformité 21.03.2007

6761 Validation de la conformité 21.03.2007 6761 Validation de la conformité 21.03.2007 Peter DAEHNE 1 Tests de stress Les tests de stress permettent d étudier le comportement du logiciel lorsque celui-ci est mis dans des situations extrêmes, aux

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

Les Bonnes PRATIQUES DU TEST LOGICIEL

Les Bonnes PRATIQUES DU TEST LOGICIEL Les Bonnes PRATIQUES DU TEST LOGICIEL SOMMAIRE Qu est-ce que le test logiciel? Pourquoi le test est-il un maillon crucial de l ingénierie logicielle? Quels sont les différents types de tests? Qu est-ce

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

ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges. c Copyleft 2006, ELSE Team

ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges. c Copyleft 2006, ELSE Team ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges c Copyleft 2006, ELSE Team 18 avril 2006 Table des matières 1 Introduction 2 2 Présentation du projet 3 2.1 Une distribution Évolulable..................

Plus en détail

Introduction à la programmation

Introduction à la programmation Chapitre 2 Introduction à la programmation Nous avons vu, dans le chapitre précédent, ce qu est un algorithme et un certain nombre de façons pour exécuter les algorithmes à la main. Nous allons voir, dans

Plus en détail

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013 Rapport de stage Création d un site web Stage du 20/01/2013 au 21/02/2013 Auteur : Antoine Luczak Tuteur professionnel : M. Tison Tuteur scolaire : Mme Girondon Année scolaire : 2013/2014 1 Table des matières

Plus en détail

Introduction au langage C

Introduction au langage C Organisation du cours Introduction au langage C Premier cours Notions générales Aurélien Max aurelien.max@limsi.fr 12 séances de cours de 1h: mercredi 16-17h, salle A203 12 séances de TD de 1h: mercredi

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

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

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

Plus en détail

Notre offre Système. systemes@arrabal-is.com

Notre offre Système. systemes@arrabal-is.com systemes@arrabal-is.com Généralités Généralités des systèmes Windows Les systèmes Microsoft sont au cœur du système d information de la majorité des entreprises, si bien qu environ 90% des postes utilisateurs

Plus en détail

Présentation de la solution SAP SAP Technology SAP Afaria. La mobilité d entreprise comme vecteur d avantage concurrentiel

Présentation de la solution SAP SAP Technology SAP Afaria. La mobilité d entreprise comme vecteur d avantage concurrentiel Présentation de la solution SAP SAP Technology SAP Afaria La mobilité d entreprise comme vecteur d avantage concurrentiel des périphériques et des applications des périphériques et des applications La

Plus en détail

Active CRM. Solution intégrée de téléprospection. www.aliendoit.com 04/10/2011

Active CRM. Solution intégrée de téléprospection. www.aliendoit.com 04/10/2011 www.aliendoit.com Active CRM Solution intégrée de téléprospection 04/10/2011 Alien Technology 3E Locaux Professionnels Km 2.5 Route de Kénitra 11005 SALÉ MAROC Tél. : +212 537 84 38 82 Fax : +212 537 88

Plus en détail

Typologie du logiciel. Typologie du logiciel. Ordinateur? ORDINATEUR. Computer = Hardware + Software. Ordinateur = Matériel + Logiciel

Typologie du logiciel. Typologie du logiciel. Ordinateur? ORDINATEUR. Computer = Hardware + Software. Ordinateur = Matériel + Logiciel Architecture Logicielle des Systèmes d Information (ALSI) Ordinateur? ORDINATEUR MATERIEL Computer = Hardware + Software Septembre 2010 Sources: GJL, Wikipédia,, Internet Ordinateur = Matériel + Logiciel

Plus en détail

Libérez votre intuition

Libérez votre intuition Présentation de Qlik Sense Libérez votre intuition Qlik Sense est une application nouvelle génération de visualisation de données en libre-service qui permet à chacun de créer facilement des visualisations

Plus en détail

Programmation Java. Madalina Croitoru

Programmation Java. Madalina Croitoru Programmation Java Madalina Croitoru Madalina Croitoru 2002 2006 Univ. Aberdeen 2006 2008 Univ. Southampton Depuis 2008 Univ. Montpellier II Contact: Page web: www.lirmm.fr/~croitoru/teaching.html Email:

Plus en détail

Introduction aux Composants Logiciels

Introduction aux Composants Logiciels Introduction aux Composants Logiciels Christian Pérez LIP/INRIA Année 2010-11 Plan Introduction aux composants logiciels Pourquoi des composants logiciels Notions de composants logiciels Conclusion Survol

Plus en détail

Le.NET Compact Framework Windows Mobile

Le.NET Compact Framework Windows Mobile Le.NET Compact Framework Windows Mobile HEROGUEL Quentin 2 Le.NET Compact Framework Windows Mobile Sommaire 1 Le.NET Compact Framework... 3 1.1 Vue d ensemble rapide de l architecture du.net Compact Framework...

Plus en détail

CAHIER DES CHARGES D IMPLANTATION

CAHIER DES CHARGES D IMPLANTATION CAHIER DES CHARGES D IMPLANTATION Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP Version 6 Etabli par DCSI Vérifié par Validé par Destinataires Pour information Création

Plus en détail

Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire

Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire FICHE PRODUIT Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire BENEFICES POUR LES DSI Réussir les projets de gouvernance dans les délais et les budgets Démarrer de manière tactique tout en

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

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Projet Informatique Philippe Collet Licence 3 Informatique S5 2014-2015 http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Réalisation d'un développement de taille conséquente? r Firefox? Ph.

Plus en détail

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage m invite à faire une étude sur les outils qui seraient utilisés. Sites

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

G en om3: Building middleware-independent robotic components. Comparaison de middleware: YARP, MS Robotics Dev Studio, URBI, OpenRTM-aist, ROS

G en om3: Building middleware-independent robotic components. Comparaison de middleware: YARP, MS Robotics Dev Studio, URBI, OpenRTM-aist, ROS G en om3: Building middleware-independent robotic components Comparaison de middleware: YARP, MS Robotics Dev Studio, URBI, OpenRTM-aist, ROS Pablo Rauzy 15 février 2011 Table des matières 1 G en om3 :

Plus en détail

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit v 1.0.0 PD 20 mars 2008 Mouvements d arrivée / départ de personnels Description produit Fonctionnalités L application Gestion des mouvements d arrivée / départ de Requea permet la gestion collaborative

Plus en détail

MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE

MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE [Prénom Nom] Rapport sur le stage effectué du [date] au [date] Dans la Société : [NOM DE LA SOCIETE : Logo de la société] à [Ville] [Intitulé du

Plus en détail

CROSS PLATEFORM MOBILE DEVELOPMENT (Phonegap, RhoMobile)

CROSS PLATEFORM MOBILE DEVELOPMENT (Phonegap, RhoMobile) INGENIEUR EN SCIENCES INFORMATIQUES RAPPORT D ETUDE TECHNOLOGIQUE SUR LES SOLUTIONS WEB CROSS PLATEFORM MOBILE DEVELOPMENT (Phonegap, ) Student : Jiachen NIE Parcours: IHM Subject : Adaptation des Interfaces

Plus en détail

Les modèles technologiques de la localisation

Les modèles technologiques de la localisation Les modèles technologiques de la localisation Les modèles technologiques de la localisation Cécile Martin Université Rennes 2 Avant d entrer en détails dans les modèles technologiques de la localisation,

Plus en détail

Installation et utilisation de SSH. .et

Installation et utilisation de SSH. .et Installation et utilisation de SSH.et.soumission de travail SSH est un protocole de communication qui permet de communiquer à distance entre deux ordinateurs. Pour cela, il faut qu un des deux ordinateurs

Plus en détail

Témoignage client. Optimisation de la performance et gains de productivité

Témoignage client. Optimisation de la performance et gains de productivité Témoignage client Optimisation de la performance et gains de productivité performances Faciliter les revues de La réputation d Imec repose sur la qualité du travail de ses scientifiques, chercheurs, ingénieurs

Plus en détail

Pédagogie du projet?

Pédagogie du projet? Pédagogie du projet? Toute pédagogie qui place l intérêt des apprenants comme levier des conduites éducatives est appelée «pédagogie fonctionnelle». Ainsi, la pédagogie du projet peut rentrer dans cette

Plus en détail

Explications sur l évolution de la maquette. Version : 1.0 Nombre de pages : 9. Projet cplm-admin

Explications sur l évolution de la maquette. Version : 1.0 Nombre de pages : 9. Projet cplm-admin Explications sur l évolution de la maquette Version : 1.0 Nombre de pages : 9 Rédacteur : David Elias 22/07/2008 STATUT DU DOCUMENT Statut Date Intervenant(s) / Fonction Provisoire 20/07/2008 David Elias

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

14 Le langage Java : concepts et pratique

14 Le langage Java : concepts et pratique Avant-propos Le langage Java, né en janvier 1995 chez Sun, est un langage à objets qui permet d écrire de façon simple et claire des programmes portables sur la majorité des plateformes. Lié à l essor

Plus en détail

Profil d études détaillé. Section : Informatique et systèmes Finalité : Technologie de l informatique

Profil d études détaillé. Section : Informatique et systèmes Finalité : Technologie de l informatique Section : Informatique et systèmes Finalité : Technologie de l informatique Page 1/6 1. Introduction L enseignement de la Haute Ecole Louvain en Hainaut donne la place centrale à l étudiant. Celui-ci trouvera

Plus en détail

UserLock testé par PC Mag

UserLock testé par PC Mag UserLock testé par PC Mag Article original publié le 11 mars 2010 sur PCMag.com EN BREF UserLock verrouille les PCs et le fait bien. Ce «poids-plume» complète les fonctionnalités des Stratégies de Groupe

Plus en détail

FILIÈRE METHODOLOGIE & PROJET

FILIÈRE METHODOLOGIE & PROJET FILIÈRE METHODOLOGIE & PROJET 109 Gestion de projet METHODOLOGIE ET PROJET Durée 3 jours Conduite de projet COND-PRO s Intégrer les conditions de réussite d une démarche de management par projet. Impliquer

Plus en détail

Plus De Cartouches 2013/2014

Plus De Cartouches 2013/2014 Plus De Cartouches 2013/2014 Page 1 SOMMAIRE INTRODUCTION ET PRESENTATION...3 MISSIONS...4 LE CONTEXTE DES MISSIONS...4 LES OBJECTIFS...4 LES CONTRAINTES...5 REALISATIONS...6 CHOIX EFFECTUÉS...6 RÉSULTATS...10

Plus en détail

Versus Etude Technologique

Versus Etude Technologique VS Versus Etude Technologique 1 VS Contents Introduction... 3 Présentation des technologies... 3 Phonegap... 3... 3 Pour quels besoins?... 4 Comment ça fonctionne? Les models... 4 Phonegap... 5... 6 Comparatif...

Plus en détail

Celerio Accélérateur de développements Java

Celerio Accélérateur de développements Java Celerio Accélérateur de développements Java Décembre 2007 Version 2.0 Contact info@jaxio.com Tous droits réservés 2005-2008 Jaxio Celerio de Jaxio page 1 / 7 Préambule Celerio de Jaxio permet d injecter

Plus en détail

Nouveautés de la version Catalogic ECX 2.0

Nouveautés de la version Catalogic ECX 2.0 Nouveautés de la version Catalogic ECX 2.0 Gestion, orchestration et analyse de copies de dans l entreprise et sur le Cloud Nouvelles fonctionnalités et évolutions Gestion instantanée des copies de Gestion

Plus en détail

A-TEAM. ProManager Jalon de lancement Version 1.0 Groupe : C. Site Web: http://mooproject.neocities.org

A-TEAM. ProManager Jalon de lancement Version 1.0 Groupe : C. Site Web: http://mooproject.neocities.org A-TEAM ProManager Jalon de lancement Version 1.0 Groupe : C Site Web: http://mooproject.neocities.org 1 SOMMAIRE : I. Planning des phases 4 1-Lancement..5 2-Elaboration. 5 3-Construction 5 4-Transition.6

Plus en détail

Professeur superviseur ALAIN APRIL

Professeur superviseur ALAIN APRIL RAPPORT TECHNIQUE PRÉSENTÉ À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE DANS LE CADRE DU COURS MGL804 REALISATION ET MAINTENANCE DE LOGICIELS TRAVAIL DE SESSION N12 EVALUATION D UN CONTRAT DE MAINTENANCE DU LOGICIEL

Plus en détail

*4D, quand c est la solution qui compte. 4D démocratise les services Web

*4D, quand c est la solution qui compte. 4D démocratise les services Web *4D, quand c est la solution qui compte. 4D démocratise les services Web Table des matières I. INTRODUCTION page 3 II. VERS UNE DEFINITION DES SERVICES WEB 1. Qu est ce que c est? page 3 2. A quoi ça sert?

Plus en détail

Cahier des charges. Jonathan HAEHNEL. Université de Strasbourg IUT Robert Schuman

Cahier des charges. Jonathan HAEHNEL. Université de Strasbourg IUT Robert Schuman Université de Strasbourg IUT Robert Schuman Maître de stage : Nicolas Lachiche Tuteur universitaire : Marie-Paule Muller Cahier des charges Jonathan HAEHNEL Strasbourg, le 6 mai 2011 Table des matières

Plus en détail

Le Programme d achat en volume pour les entreprises de l App Store

Le Programme d achat en volume pour les entreprises de l App Store Le Programme d achat en volume pour les entreprises de l App Store L App Store comporte des milliers d apps professionnelles conçues pour améliorer la productivité de votre entreprise. Grâce au Programme

Plus en détail

CHOISIR UN TEST A EXECUTER

CHOISIR UN TEST A EXECUTER CHOISIR UN TEST A EXECUTER Suivez le rythme rapide des cycles de publication. Découvrez l automatisation et ses interactions humaines. EXÉCUTER UN TEST 03082015 Borland permet à tous les intervenants,

Plus en détail

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13 FileMaker Pro 13 Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13 2007-2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054

Plus en détail

Clément MILVILLE / Edouard SIMON. Projet CodeWar. Enseignant tuteur: Michaël Hauspie 1/17

Clément MILVILLE / Edouard SIMON. Projet CodeWar. Enseignant tuteur: Michaël Hauspie 1/17 Projet CodeWar Enseignant tuteur: Michaël Hauspie 1/17 2/17 Remerciements: Nous tenons à remercier tout particulièrement notre tuteur M. Michaël HAUSPIE pour son aide, ses conseils, ses avis et sa disponibilité

Plus en détail

Visual Paradigm Contraintes inter-associations

Visual Paradigm Contraintes inter-associations Visual Paradigm Contraintes inter-associations Travail de Bachelor d'informaticien de gestion Partie C Présentation de Visual Paradigm 1 Présentation de Visual Paradigm For UML L objet du travail de Bachelor

Plus en détail

Gé nié Logiciél Livré Blanc

Gé nié Logiciél Livré Blanc Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc Xavier.Blanc@labri.fr Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer

Plus en détail

L essentiel. Coopérative, flexible, très performante : la plateforme Engineering Base. web aucotec.com

L essentiel. Coopérative, flexible, très performante : la plateforme Engineering Base. web aucotec.com L essentiel Coopérative, flexible, très performante : la plateforme Engineering Base web aucotec.com Les défis La globalisation des structures d ingénierie avec le travail en réseau sur des sites dispersés

Plus en détail

Contact : Jennifer Hrycyszyn Greenough Communications 617.275.6519 jhrycyszyn@greenoughcom.com

Contact : Jennifer Hrycyszyn Greenough Communications 617.275.6519 jhrycyszyn@greenoughcom.com Contact : Jennifer Hrycyszyn Greenough Communications 617.275.6519 jhrycyszyn@greenoughcom.com Optimisation de Numara Track-It!, la solution de Help Desk et de gestion des actifs informatiques de Numara

Plus en détail

Migration d un logiciel de gestion

Migration d un logiciel de gestion Auteur : David PERRET Publication : 01/11/2015 Toute société utilisatrice de logiciel de gestion est inéluctablement confrontée à des migrations de données. Ces migrations représentent des risques et un

Plus en détail

CAHIER DES CHARGES D IMPLANTATION D EvRP V3

CAHIER DES CHARGES D IMPLANTATION D EvRP V3 CAHIER DES CHARGES D IMPLANTATION D EvRP V3 Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP V3 Version 42 Etabli par Département Accompagnement des Logiciels Vérifié

Plus en détail

VOLUME 1 CRÉATION D UN SITE WEB

VOLUME 1 CRÉATION D UN SITE WEB VOLUME 1 CRÉATION D UN SITE WEB Comprendre les principales étapes TABLE DES MATIÈRES PARTIE 1 - RENCONTRE DE DÉMARRAGE 03 PARTIE 2 - ANALYSE FONCTIONNELLE 03 PARTIE 3 - ARBORESCENCE 04 PARTIE 4 - MAQUETTES

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Evaluer des élèves de Seconde par compétences en Sciences Physiques

Evaluer des élèves de Seconde par compétences en Sciences Physiques Evaluer des élèves de Seconde par compétences en Sciences Physiques Introduction Depuis quelques années, le terme de «compétences» s installe peu à peu dans notre quotidien ; aussi bien dans la vie de

Plus en détail

Les forges logicielles et leurs outils. Avec SourceSup en exemple

Les forges logicielles et leurs outils. Avec SourceSup en exemple Les forges logicielles et leurs outils Avec SourceSup en exemple 1 Naissance des forges Avant Chacun installait les outils dont il avait besoin Peu de mutualisation des outils et technologies Collaboration

Plus en détail

Le Programme de licences multipostes pour entreprises de l App Store

Le Programme de licences multipostes pour entreprises de l App Store Le Programme de licences multipostes pour entreprises de l App Store L App Store offre des milliers applications d affaires conçues pour améliorer la productivité de votre entreprise. Grâce au Programme

Plus en détail

INTRODUCTION AUX LANGAGES...

INTRODUCTION AUX LANGAGES... C Ch 1 Introduction I. INTRODUCTION AUX LANGAGES... 1 A. NOTION DE PROGRAMME... 1 B. LANGAGES DE PROGRAMMATION... 1 C. FAMILLES DE LANGAGES DE PROGRAMMATION... 2 1. Générations de langages... 2 2. Paradigmes

Plus en détail

Programma'on. Histoire Et Philosophie

Programma'on. Histoire Et Philosophie Programma'on Histoire Et Philosophie Les années 40 Les premiers langages de programma'on apparaissent avant les années 40. Ce ne sont cependant que des instruc'ons primaires. Il faut plus d une dizaine

Plus en détail

Réseau Social Cabinet Intranet Extranet Collaboratif

Réseau Social Cabinet Intranet Extranet Collaboratif Solution Logicielle et SaaS Réseau Social Cabinet Intranet Extranet Collaboratif Une solution globale pour 4 usages Réseau Social Cabinet : développez les interactions, favorisez les échanges entre les

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

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

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

INGENIERIE COLLABORATIVE, ELLE A TOUT D'UNE GRANDE...

INGENIERIE COLLABORATIVE, ELLE A TOUT D'UNE GRANDE... INGENIERIE COLLABORATIVE, ELLE A TOUT D'UNE GRANDE... Article rédigé pour les Etats généraux 2008 du MICADO, par Yannick BOUDIER. Résumé : L ingénierie collaborative est souvent prise pour un système d

Plus en détail

Philosophie des extensions WordPress

Philosophie des extensions WordPress 8 Philosophie des extensions WordPress Le concept L une des forces de WordPress dans la jungle CMS, c est la simplicité de création d extensions. Il y a plusieurs raisons à cela. Des raisons techniques

Plus en détail

RAPPORT DE CONCEPTION UML :

RAPPORT DE CONCEPTION UML : Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions

Plus en détail

E-LECLERC LEVALUATION DU SITE WEB. A. Evaluation «subjective» du site web. 1. Choix du site web. 2. Présentation le site A P I 0 8 1 1 / 0 3 / 2 0 1 4

E-LECLERC LEVALUATION DU SITE WEB. A. Evaluation «subjective» du site web. 1. Choix du site web. 2. Présentation le site A P I 0 8 1 1 / 0 3 / 2 0 1 4 LEVALUATION DU SITE WEB E-LECLERC A P I 0 8 1 1 / 0 3 / 2 0 1 4 A. Evaluation «subjective» du site web 1. Choix du site web J ai choisi de réaliser l évaluation «subjective» sur le site web : www.e-leclerc.com,

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Pour une prise en charge complète des interventions, de la demande à la réalisation

Pour une prise en charge complète des interventions, de la demande à la réalisation PLANON mobile field services Pour une prise en charge complète des interventions, de la demande à la réalisation Un spécialiste innovant, avec trente ans d expérience dans le domaine IWMS Un partenaire

Plus en détail

Python. Introduction

Python. Introduction Python Introduction Utilisateur Il y a 2 catégories de personnes utilisant les machines avec des processeurs (ordinateurs, téléphones intelligents, tablettes, consoles, etc): les programmeurs les autres

Plus en détail

Programmation de services en téléphonie sur IP

Programmation de services en téléphonie sur IP Programmation de services en téléphonie sur IP Présentation de projet mémoire Grégory Estienne Sous la supervision du Dr. Luigi Logrippo Introduction La téléphonie sur IP comme support à la programmation

Plus en détail

Introduction au Makefile

Introduction au Makefile Introduction au Makefile Nicolas Kielbasiewicz 3 mars 2009 Le développement d un programme et plus généralement d un logiciel demande au(x) programmeur(s) de gérer plusieurs fichiers, voire plusieurs langages.

Plus en détail

BONPRIX. Contexte et problématique : Les problèmes rencontrés :

BONPRIX. Contexte et problématique : Les problèmes rencontrés : BONPRIX BONPRIX fait communiquer en temps réel ses applications RPG Power i au moyen de Web Services avec le logiciel Strategi webservices Contexte et problématique : Bonprix est une société de vente à

Plus en détail

IBM WebSphere ILOG JRules Business Rule Management System (BRMS) systèmes de gestion de règles métier

IBM WebSphere ILOG JRules Business Rule Management System (BRMS) systèmes de gestion de règles métier Automatisation des décisions métier et réduction du délai de lancement de nouvelles initiatives IBM WebSphere ILOG JRules Business Rule Management System (BRMS) systèmes de gestion de règles métier Gestion

Plus en détail

Agilitéet qualité logicielle: une mutation enmarche

Agilitéet qualité logicielle: une mutation enmarche Agilitéet qualité logicielle: une mutation enmarche Jean-Paul SUBRA Introduction : le manifeste Agile Manifeste pour le développement Agile de logiciels Nous découvrons comment mieux développer des logiciels

Plus en détail

Génie Logiciel. Hassan El Mansouri

Génie Logiciel. Hassan El Mansouri Hassan El Mansouri 1 Plan du cours Problématique et naissance du génie logiciel Cycle de développement, cycle de vie, cahier des charges Patrons de conception Programmation par composants, réutilisation

Plus en détail

IPOL OPEN ACCESS, LOGICIEL LIBRE ET RECHERCHE REPRODUCTIBLE EN TRAITEMENT D IMAGE

IPOL OPEN ACCESS, LOGICIEL LIBRE ET RECHERCHE REPRODUCTIBLE EN TRAITEMENT D IMAGE IPOL OPEN ACCESS, LOGICIEL LIBRE ET RECHERCHE REPRODUCTIBLE EN TRAITEMENT D IMAGE Nicolas Limare RMLL2011, Strasbourg, 2011 07 11 1 démosaiquage correction de distortion débruitage correction de contraste

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

Les expériences d ERNI dans l univers du management, des processus et des technologies. Experience N 52. Mars 2012 Pas à pas vers de bonnes exigences

Les expériences d ERNI dans l univers du management, des processus et des technologies. Experience N 52. Mars 2012 Pas à pas vers de bonnes exigences Les expériences d ERNI dans l univers du management, des processus et des technologies Experience N 52 Mars 2012 OutsourcINg Pas à pas vers de bonnes exigences Outsourcing 10 11 Pas à pas vers de bonnes

Plus en détail

Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup

Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup Sébastien MEDARD GIP RENATER 263 avenue du Général Leclerc CS 74205 35042 Rennes Cedex Résumé L intégration

Plus en détail

Professeur superviseur ALAIN APRIL

Professeur superviseur ALAIN APRIL RAPPORT TECHNIQUE PRÉSENTÉ À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE DANS LE CADRE DU COURS LOG792 PROJET DE FIN D ÉTUDE EN GÉNIE LOGICIEL BLUEUPDATES FRANÇOIS BOYER BOYF18048004 DÉPARTEMENT DE GÉNIE LOGICIEL

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

CELCAT est un leader mondial de la gestion d emploi du temps et du suivi de l assiduité des étudiants dans l enseignement supérieur.

CELCAT est un leader mondial de la gestion d emploi du temps et du suivi de l assiduité des étudiants dans l enseignement supérieur. CELCAT Timetabler Le gestionnaire interactif d emploi du temps CELCAT est un leader mondial de la gestion d emploi du temps et du suivi de l assiduité des étudiants dans l enseignement supérieur. Notre

Plus en détail

UC4 effectue tout l ordonnancement batch pour Allianz en Allemagne

UC4 effectue tout l ordonnancement batch pour Allianz en Allemagne UC4 effectue tout l ordonnancement batch pour Allianz en Allemagne La société Le groupe Allianz est un des principaux fournisseurs de services globaux dans les domaines de l assurance, de la banque et

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