Environnements et Outils de Développement Cours 1 Introduction



Documents pareils
Logiciel Libre Cours 3 Fondements: Génie Logiciel

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

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

Logiciel Libre Cours 9 Modèles Économiques

Logiciel Libre Cours 2 Fondements: Programmation

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

Conventions d écriture et outils de mise au point

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Optimisation de logiciels de modélisation sur centre de calcul

Cours 1 : Qu est-ce que la programmation?

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Programmation C. Apprendre à développer des programmes simples dans le langage C

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Générer du code à partir d une description de haut niveau

Quelques éléments de compilation en C et makefiles

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Outils de développement collaboratif

Introduction à l informatique en BCPST

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Méthodes et outils employés pour développer des logiciels libres

PG208, Projet n 3 : Serveur HTTP évolué

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

PIC EVAL Dev Board PIC18F97J60

IBM Tivoli Monitoring, version 6.1

Cours 1 : La compilation

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Outils pour la pratique

Logiciel Libre Cours 10 Debian

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

Machines virtuelles Cours 1 : Introduction

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

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Génie Logiciel Avancé Cours 3 Le modèle à objets

Cours Langage C/C++ Programmation modulaire

Guide d installation JMap 5.0

Reproductibilité des expériences de l article "Analyse et réduction du chemin critique dans l exécution d une application"

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

PROFIL EXPERIENCE ARCHITECTE LINUX, OPEN SOURCE, COORDINATEUR SÉCURITÉ EMEA

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Calcul Scientifique avec 3

Virtual Box Mettez un PC dans votre... PC

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

OpenText StreamServe Cours Customer Communication Management L essentiel

Bases de programmation. Cours 5. Structurer les données

Introduction aux antivirus et présentation de ClamAV

Systèmes de gestion de code source

TP1. Outils Java Eléments de correction

Retour d expériences du projet StratusLab

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Algorithmique I. Algorithmique I p.1/??

EMC Retrospect 7.5 pour Windows. Logiciel de sauvegarde

Évaluation et implémentation des langages

Programmation C++ (débutant)/instructions for, while et do...while

Retour d'expérience avec : OCS Inventory & GLP

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS

1 Démarrage de Marionnet

Installation et prise en main

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Hudson Serveur d Intégration Continue. Adrien Lecharpentier IR3 Ingénieurs2000, Université de Marne la Vallée

Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

Les 10 pratiques pour adopter une démarche DevOps efficace

Monter son propre espace web Réf : D01

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

BACHELOR DEVELOPPEUR WEB

Projet de développement

La fédération des infrastructures cloud

Automatisation de l administration système avec

Créer son premier package.deb. 19 août

Programmation Web. Introduction

Présentation du cours

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE

Dossier -projet d'informations et Sciences du numérique.

TD3 - Facturation avec archivage automatisé

RTDS G3. Emmanuel Gaudin

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

FreeMind. Freeplane XMind. 2 e édition. Bien démarrer avec le Mind Mapping. . Groupe Eyrolles, 2010, ISBN :

Problématique. Techniques générales. Déploiement Windows. Déploiement Linux. Déploiement Mac OS X. Applications Windows. Applications Linux

Systèmes de tickets avec RT

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I

2 Formation utilisateur

RSA ADAPTIVE AUTHENTICATION

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Les Bases. Messaoudi Khaled, Boukelal Hanane (Etudiants Informatique ) 2015.

Brique BDL Gestion de Projet Logiciel

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Travailler à l'ensimag avec son matériel personnel

LA BATTERIE DU PORTABLE

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

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Intégration de l interface graphique de Ptidej dans Eclipse

Transcription:

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/ Copyright 2012 Stefano Zacchiroli License Creative Commons Attribution-ShareAlike 3.0 Unported License http://creativecommons.org/licenses/by-sa/3.0/ Stefano Zacchiroli (Paris 7) ED6 Introduction 1 / 16

Développer...... une activité complexe, formée par plusieurs sous-activités : Développement de logiciel le travail de : étudier concevoir construire déboguer paramétrer documenter des logiciels maintenir installer mettre à jour améliorer... Stefano Zacchiroli (Paris 7) ED6 Introduction 2 / 16

Outils de développement Le génie logiciel est la branche de l informatique et du génie industriel qui s occupe des méthodes des travail et des bonnes pratiques autour des activités du développement. L évolution de complexité des taches et des langages de programmation a exigé la création des logiciels pour le traitement (semi-)automatique de programmes pendant leur développement. Outil de développement Un outil de développement est un logiciel qui aide un développer dans le déroulement d une activité de développement. Stefano Zacchiroli (Paris 7) ED6 Introduction 3 / 16

L importance des outils de développement Dans le cas général, les outils de développement nous aident à : 1 implanter une phase d un processus de développement logiciel 2 automatiser des taches importantes et ennuyeux 3 être plus efficace sans (1), nous ne pourrions pas avancer dans le développement p.ex. comment écrire un programme sans un éditeur (de texte)? comment l exécuter sans un compilateur ou un interprète? Stefano Zacchiroli (Paris 7) ED6 Introduction 4 / 16

L importance des outils de développement (cont.) Dans le cas général, les outils de développement nous aident à : 1 implanter une phase d un processus de développement logiciel 2 automatiser des taches importantes et ennuyeux 3 être plus efficace sans (2) et (3), notre temps serait occupés par des taches moins nobles que la conception abstraite, l algorithmique, la résolution de problèmes qui constituent les vrais habilités du développeurs p.ex. combien de temps il vous faut pour (re-)indenter une fonction de 40 lignes? et pour renommer (sans capture) une structure de données dans 20 fichiers source? pour exécuter 99 tests unitaires après un bug fix? déployer toto 2.0 sur 1 000 machines? combien d actions manuelles dans chaque cas? Stefano Zacchiroli (Paris 7) ED6 Introduction 4 / 16

Outils de développement La pratique du génie logiciel à travers des années nous a amenés à l utilisation d une multitude des outils de développement. édition du code compilation déboguage analyse des dépendances génération de doc. tester archiver publier analyse d empreinte mémoire analyse les performances automatisation des taches gestion des différences gestion des versions gestion de paquets... Stefano Zacchiroli (Paris 7) ED6 Introduction 5 / 16

Objectif du cours Dans votre vie de développeur, l utilisation des outils correspondantes à toute taches du développement logiciel sera quotidienne. Les maîtriser est impératif (et dans votre intérêt). Objectif du cours Maîtriser les outils du développement logiciel efficacité dans l exécution de tâche fréquent, non automatisables si vous passez une heure à apprendre comment gagner 20 seconds sur une tache que vous répétez 50 fois par jour, en combien de jours vous aurez plus de temps à disposition? automatisation de taches répétitives même gagne de temps qu avant, car l ordinateur est souvent beaucoup plus rapide que nous! plus d automatisation moins d erreurs (avec quelle assomption?) Stefano Zacchiroli (Paris 7) ED6 Introduction 6 / 16

Méthode du cours Des outils fondamentaux qui font une seule chose, bien aux outils complexes. maîtriser les composantes individuelles, pour mieux comprendre leur interactions et pouvoir en suite maîtriser leur agrégations le paradigme des environnements de développement intégré (IDE) comme orchestrations d outils plus simple Stefano Zacchiroli (Paris 7) ED6 Introduction 7 / 16

Méthode du cours (cont.) Accent sur les outils de développement typiques du logiciel libre et open source (et libre eux même) avantage didactique : on peut étudier leur fonctionnement une grosse partie des activités de développement sont liée à la collaboration entre développeurs ; le monde du libre est un cas extrême de collaboration demande importante et à la hausse dans le marché IT Stefano Zacchiroli (Paris 7) ED6 Introduction 7 / 16

Plan du cours fichier MyProjectFile éditeurs de texte ; spécificités du source code efficacité compréhension de la syntaxe : indentation, complètement, etc. transformation automatisée liens entre fichiers source, navigation Outils : Emacs, ctags, indent, doxygen Stefano Zacchiroli (Paris 7) ED6 Introduction 8 / 16

Plan du cours compilation MyProjectFile MyObjectFile MyExecutable la chaîne de compilation pre-processeur compilateur éditeur de liens assembleur liaison statique liaison dynamique Outils : gcc Stefano Zacchiroli (Paris 7) ED6 Introduction 9 / 16

Plan du cours projet MyProjectFile1 2 MyObjectFile1 calcul des dépendances Makefile MyProjectFile2... MyProjectFileN 3 1 MyObjectFile2 MyObjectFileN automatisation et minimisation de la chaîne de compilation automatisation d autres tâches batterie de tests publication... Outils : make Stefano Zacchiroli (Paris 7) ED6 Introduction 10 / 16

Plan du cours configuration MS/Windows Solaris Mac OS Android GNU/Linux NetBSD MyProjectFile1 2 MyObjectFile1 portabilité configuration Script de configuration Makefile MyProjectFile2... 3 MyObjectFile2 temps de compilation vs temps d exécution MyProjectFileN 1 MyObjectFileN installation système de paquets Outils : autoconf, dpkg, rpm Stefano Zacchiroli (Paris 7) ED6 Introduction 11 / 16

Plan du cours exécution reproduire une erreur déboguage stack trace exécution pas à pas analyse de performances analyse de l empreinte mémoire Outils : gdb, gprof, valgrind Stefano Zacchiroli (Paris 7) ED6 Introduction 12 / 16

Plan du cours collaboration MyProjectFile calcul de modifications entre fichiers source application de modifications archivage gestion des versions locale vs à distance centralisée vs distribuée Outils : diff/patch, rcs, cvs, svn, git Services : github, gitorious Stefano Zacchiroli (Paris 7) ED6 Introduction 13 / 16

Organisation du cours mercredi 15h-18h, salle 554C 15h-16h 1 h de cours 16h-18h 2 h de TP 2 groupes de TD, 1 groupe chaque semaine séances groupe A : 08/02, 22/02, 07/03, 21/03, 04/04, 02/05 séances groupe B : 15/02, 29/02, 14/03, 28/03, 11/04, 09/05 Équipe pédagogique : cours : Stefano Zacchiroli TD Antoine Durand-Gasselin (groupe A) Stefano Zacchiroli (groupe B) Stefano Zacchiroli (Paris 7) ED6 Introduction 14 / 16

Validation Le cours est validé par un examen : en partie écrit et en partie au machine, pour vérifier votre maîtrise des outils de développement dans la pratique. Stefano Zacchiroli (Paris 7) ED6 Introduction 15 / 16

Ressources Page web du cours http://upsilon.cc/~zack/teaching/1112/ed6/ L inscription à la liste de diffusion des annonces est obligatoire : l3ed annonces https://listes.sc.univ-paris-diderot.fr/sympa/info/l3ed Voir la page du cours pour plus d information Stefano Zacchiroli (Paris 7) ED6 Introduction 16 / 16