Projet Informatique. Philippe Collet. Licence 3 Informatique S

Documents pareils
Gestion de projet Gestion de configuration Gestion de Conflits. Lydie du Bousquet Philippe Lalanda

Les systèmes de gestion de version

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

Serveur Subversion Debian GNU/Linux

Systèmes de gestion de code source

Le système de gestion de version Git et GitHub

Motivations (many2many) Motivations (many2one) Sur le thème de la Version. La gestion de version. La gestion de configuration.

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

La magie de SVN. Découverte & usage du logiciel

Environnement de Développement Outils Open-Source d'integration Continue. Exemple de Mise en Oeuvre

Projet de développement

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

Contrôle de versions et travail collaboratif. Organisation du travail collaboratif. Organisation du travail collaboratif

TP Git. Author : Cedric Dumoulin Date : 2 déc Rev : 9 Dec. 2014

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Outils de développement collaboratif

Les logiciels de gestion de version exemple de GIT et application avec SmartGIT

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Automatisation de l administration système

Serveur de travail collaboratif Michaël Hoste -

C.M. 1 & 2 : Prise en main de Linux

Tutoriel git. Régis Briant, Youngseob Kim & Dmitry Khvorostyanov. Table des matières. 1 Configurer git 2

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

FileMaker Server 14. Guide de démarrage

ECLIPSE ET PDT (Php development tools)

Gestion de configuration

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Bonnes pratiques de développement JavaScript

Introduction à Eclipse

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Livrer chaque jour ce qui est prêt! Points clés du développement d un produit avec une livrasion par jour.

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

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

1 Introduction à l infrastructure Active Directory et réseau

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

D'UN SITE INTERNET LES S D'UN SITE INTERNET PRATIQUE ET PERFORMANT PRATIQUE ET PERFORMANT

Formation subversion (svn) Marc-Olivier Buob

Sauvegardes sous Mac OS X

S10 - Automatisez la compilation et le déploiement de vos applications IBM i avec Arcad Pack for Rational

L3 informatique TP n o 2 : Les applications réseau

IBM SPSS Collaboration and Deployment Services Deployment Manager 5 - Instructions d installation

e-obs : Conception et utilisation Rémy Decoupes Ether // ums3365

SIO-SISR : Projet GSB. LOT 1 : Evaluation d un logiciel d inventaire et de gestion de parc. BTS Services Informatiques aux Organisations 1 ère année

Licence Pro ASUR Supervision Mai 2013

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Celui qui vous parle. Yann Vigara

Part IV. Outils de dévéloppement pour le logiciel libre. Logiciel libre, une introduction. Support pour le dévéloppement collaboratif

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Configuration du matériel Cisco. Florian Duraffourg

Burckel Thomas. Formation. Compétences

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Hébergement de sites Web

RECONSTRUCTION D'UN MODÈLE 3D D'OBJET AVEC LA KINECT

Méthodologies SCRUM Présentation et mise en oeuvre

FileMaker Server 12. publication Web personnalisée avec XML

Environnements et Outils de Développement Cours 1 Introduction

Transférer des fichiers à l aide de WinSCP et 2 contextes d utilisation dans des sites SPIP avec FCK editor

Alors pour vous simplifiez la vie, voici un petit tuto sur le logiciel de sauvegarde (gratuit) SyncBack.

FORMATION Offre de Formation - Packaging. Les bonnes pratiques du packaging avec Installshield et AdminStudio. Contact et inscriptions

Simplifier l authentification avec Kerberos

CAHIER DES CLAUSES TECHNIQUES PARTICULIÈRES (CCTP) MISE EN PLACE ET MAINTENANCE D UN MOTEUR DE RECHERCHE

Installation et prise en main

Guide de Démarrage. Introduction... 2 Scénarios pour l utilisation de votre procloud@ocim.ch... 2 Scénarios à venir :... 2

Processus d Informatisation

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

Gestion des sauvegardes

Backuppc, retour d expérience

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

Expert technique J2EE

Joomla! Création et administration d'un site web - Version numérique

Travailler à l'ensimag avec son matériel personnel

Le génie logiciel. maintenance de logiciels.

PG208, Projet n 3 : Serveur HTTP évolué

Groupe Eyrolles, 2006, ISBN :

Catalogue Formations Jalios

PAS X. PAS-X Services. Competence. Implementation. Support. Vue d ensemble des services SERVICES PAS-X. Centres de services internationaux

Fiche Produit. Sauvegarde en ligne Kiwi Online

SQL Server, MySQL, Toad (client MySQL), PowerAMC (modélisation) Proxy SLIS

Extensions, Documentation, Tutoriels, Astuces

Analyse statique de code dans un cycle de développement Web Retour d'expérience

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Tableau comparatif des offres Visual Studio

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

Axe de valeur BMC Identity Management, la stratégie d optimisation de la gestion des identités de BMC Software TM

L installation du module Webmail nécessite également quelques prérequis, à savoir :

Petite documentation CCAE software juin 2014 Révision Novembre 2014

Communication technique TC1552 Ed 01 Date: 22/11/2011

L enseignement de méthodes agiles dans un contexte d apprentissage actif

SonarQube : une autre vision de votre logiciel

webanalyste Boostez les performances de votre site Web grâce aux conseils du webanalyste

VERITAS Backup Exec TM 10.0 for Windows Servers

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP - MAGENT O. 30 ans - 6 ans d'expérience

Maarch V1.4

Transcription:

Projet Informatique Philippe Collet Licence 3 Informatique S5 2012-2013 http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201314

Organisation r Cours 1 : organisation, PHP 1 r Cours 2 : PHP 2 r Cours 3 : Projet, V&V, Versioning r Cours 4 : PHP 3 r Cours 5 : Système de tickets, Atlassian r Cours 6 : Tests unitaires r Cours 7 : Eclipse, tests unitaires en PHP, documentation Ph. Collet 2

Qu est qu un projet? r Définition n Un effort temporaire n qui est progressivement planifié, contrôlé et exécuté n par des personnes travaillant avec des contraintes de ressources n pour créer un produit, service ou résultat unique r Temporaire n Début et fin sont définies n Pas forcément court, mais fini r Planifié, contrôlé et exécuté n Nécessité d une planification initiale et d un suivi n Le travail s organise pour accomplir des objectifs (exécution) n Le travail nécessite des vérifications pour être correctement exécuté n Et tout cela, progressivement, en étapes, en affinant au fur et à mesure Ph. Collet 3

Qu est qu un projet? (suite) r Par des personnes n La dimension humaine est primordiale r Avec des contraintes de ressources n Contraintes de temps, de coût n Tout limitation ou frontière du projet est une contrainte r Gérer un projet, c est essentiellement gérer continuellement ces contraintes, pour atteindre des critères de qualité prédéfinis Portée Coût Qualité Temps Ph. Collet 4

Qu est qu un projet? (suite) r Pour créer un produit, service ou résultat unique n Le projet crée quelque chose de nouveau n Quelque chose de tangible (produit) ou non (service, résultat) u Exemple : Diminuer le temps d attente au téléphone de 20 % r Comment déterminer l objectif du projet? n L objectif du projet est quelque chose que l organisation ne peut obtenir par son fonctionnement normal n Exemple de fonctionnement normal : Produire les fiches de paie mensuelles r Questions n Pour un constructeur de maisons, chaque chantier est-il un projet? Ph. Collet 5

Caractéristiques du projet r Livrables n La partie la plus importante d un projet, souvent multiples n On parle parfois d artefact, comme quelque chose qu il est nécessaire de produire, sans que ce soit un livrable r Portée du produit n Caractéristiques et fonctionnalités du produit r Portée du projet n Comment les objectifs vont être atteints n Donc, le travail, et uniquement le travail, pour réaliser les livrables n Donc, directement impacté par le temps et le coût r Impossible de définir la portée du projet sans la portée du produit Ph. Collet 6

Qualités du logiciel r Il faut bien distinguer n Les qualités utiles à l utilisateur, donc a priori souhaitées par le client u Phases d exploitation n Les qualités utiles au développeur u Phases de construction et de maintenance Ph. Collet 7

Qualités pour l utilisateur r Fiabilité = Validité + Robustesse n Validité (Efficacité) correction, exactitude u Efficacité : qualité d une chose ou d une personne qui donne le résultat escompté F Assurer exactement les fonctions attendues, définies dans le cahier des charges et la spécification, en supposant son environnement fiable F Adéquation aux besoins n Robustesse u Faire tout ce qu il est utile et possible de faire en cas de défaillance: pannes matérielles, erreurs humaines ou logicielles, malveillances Ph. Collet 8

Qualités pour l utilisateur (suite) r Performance (parfois appelée efficacité) n Utiliser de manière optimale les ressources matérielles : temps d utilisation des processeurs, place en mémoire, précision r Convivialité n Réaliser tout ce qui est utile à l utilisateur, de manière simple, ergonomique, agréable (documentation, aide contextuelle Ph. Collet 9

Qualités pour le développeur r Documentation = Tout ce qu il faut, rien que ce qu il faut, là où il faut, quand il faut, correcte et adaptée au lecteur : crucial! r Modularité = n Fonctionnalité u Localiser un phénomène unique, facile à comprendre et à spécifier n Interchangeabilité u Pouvoir substituer une variante d implémentation sans conséquence fonctionnelle (et souvent non-fonctionnelle) sur les autres parties n Évolutivité u Facilité avec laquelle un logiciel peut être adapté à un changement ou une extension de sa spécification n Réutilisabilité u Aptitude à être réutilisé, en tout ou en partie, tel que ou par adaptation, dans un autre contexte : autre application, machine, système Ph. Collet 10

Notion de cycle de vie du logiciel r Description d un processus pour : n la création d un produit n sa distribution sur un marché n son retrait r Cycle de vie et assurance qualité n Validation : le bon produit? n Vérification : le produit correct? r L organisation des tâches peut être différente, suivant différents modèles n On en verra plus au 2 nd semestre Ph. Collet 11

Les phases du cycle de vie Définition des besoins Objectifs Retrait ou remplacement Maintenance Analyse des besoins Mise en exploitation Planification Qualification Conception Implémentation et tests unitaires Validation et Intégration Ph. Collet

Validation et Vérification

Principes de V&V r Deux aspects de la notion de qualité : n Conformité avec la définition : VALIDATION u Réponse à la question : faisons-nous le bon produit? u Contrôle en cours de réalisation, le plus souvent avec le client u Défauts par rapport aux besoins que le produit doit satisfaire n Correction d une phase ou de l ensemble : VERIFICATION u Réponse à la question : faisons-nous le produit correctement? u Tests u Erreurs par rapport aux définitions précises établies lors des phases antérieures de développement Ph. Collet 14

V&V et cycle de vie r Les spécifications fonctionnelles définissent les intentions n Elles sont créées lors de la phase d analyse des besoins r La vérification du produit consiste à vérifier la conformité visà-vis de ces spécifications fonctionnelles n Revues, inspections, analyses, tests fonctionnels et structurels en boîte blanche r La validation du produit consiste à vérifier par le donneur d ordre la conformité vis-à-vis des besoins n Le plus souvent, tests fonctionnels en boîte noire n Théoriquement, la validation devrait être plutôt faite par les utilisateurs, sans tenir compte du cahier des charges n En pratique, la validation s appuie sur le cahier des charges pour créer des tests d acceptation Ph. Collet 15

Techniques statiques r Portent sur des documents (plutôt des programmes), sans exécuter le logiciel r Avantages n contrôle systématique valable pour toute exécution, applicables à tout document r Inconvénients n Ne portent pas forcément sur le code réel n Ne sont pas en situation réelle (interaction, environnement) n Vérifications sommaires, sauf pour les preuves n Ces preuves nécessient des spécifications formelles et complètes, donc difficiles Ph. Collet 16

Techniques dynamiques r Nécessitent une exécution du logiciel, une parmi des multitudes d autres possibles r Avantages n Vérification avec des conditions proches de la réalité n Plus à la portée du commun des programmeurs r Inconvénients n Il faut provoquer des expériences, donc écrire du code et construire des données d essais n Un test qui réussit ne démontre pas qu il n y a pas d erreurs F Les techniques statiques et dynamiques sont donc complémentaires Ph. Collet 17

Gestion de version et de configuration r De SVN à Git

Motivations r Quand on modifie des sources : n Des bugs apparaissent parfois (souvent!) r On pourrait sauver chaque version de chaque fichier modifié n Ou ne stocker que les différences! r Et quand on est plusieurs à modifier F Savoir qui modifie quoi F Ne rien écraser F Fusionner si on modifie à plusieurs F Revenir en arrière (un bug ) F Gérer des développements en // Ph. Collet 19

Principe de la différenciation r Outil diff r Différences entre 2 fichiers d après n Ligne de début/de fin n Insertion/Suppression d une ou plusieurs lignes r Facilité de détection et de construction d un patch r Pas de détection des lignes modifiées n Traitées comme suppression + insertion Ph. Collet 20

Différenciation : illustration Ph. Collet 21

Historique r SCCS (livré avec Unix dès Vx, Bell labs programmer workbench, fusionné en 1983) r RCS (W. Tichy 1985) r CVS (B. Berliner 1989) n Support dans beaucoup d environnements r Subversion (subversion.tigris.org) n Bonne gestion des modifications de l arborescence des répertoires n Installation et maintenance simplifiée r Visual Source Safe : The Microsoft Way r ClearCase (Rational) : L usine de gestion de traçabilité r Git, Mercurial Ph. Collet 22

Historique (suite) Ph. Collet 23

Ce que SVN n est pas r Un système de construction (makefile, ant ) r Un système de gestion de projet (Ms-project) r Un substitut à la communication entre développeurs (ex: conflit sémantique) r Un système de contrôle du changement (bug-tracking, ChangeLog) r Un système de tests automatisés r Un système fondé sur un processus particulier Ph. Collet 24

Commande(s) SVN r svn subcommand [switches] [cmd_args] n Commande de base coté client n subcommand : obligatoire n switches : options spécifiques à la sous-commande n cmd_args : arguments de la sous-commande svn checkout http://svn.c.net/rep/svn/trunk subv r svnadmin subcommand [switches] [cmd_args] n Administration de la base Ph. Collet 25

Base (ou dépôt) svn r Locale (accéder directement par le client) : n file:// r Accédée à travers Apache 2 (WebDAV) n http:// n https:// (SSL encryption) r Accédée par le protocole spécifique «svn» (possibilité de passer par ssh) n svn:// (nécessitée d avoir un serveur svnserve) n svn+ssh:// identique à svn://, mais tunneling ssh (et pas de serveur) Ph. Collet 26

Administrer une base SVN r Créer une base SVN n svnadmin create /chemin/vers/referentiel n Par défaut format de stockage FSFS (autre format Berkeley-DB moins performant, conservé pour compatibilité) administrateur create référentiel conf : répertoire des fichiers de config dav : répertoire spécifique à mod_dav_svn db : les données (pas directement «lisibles») format : un fichier avec un seul entier donnant le numéro de version des hooks de traitement hooks : répertoire des scripts de hook locks : répertoire des verrous de subversion README.txt : des infos sur les autres répertoires Ph. Collet 27

Administrer une base SVN r Au sein d'une base se trouvent un ou plusieurs projets. r À chaque projet correspond en général un répertoire situé à la racine du dépôt et qui contient lui-même les fichiers et dossiers du projet. n Organiser les répertoires : svn copy trunk branches/my-branch create --+--/batchxsl--+--/trunk +--/branches référentiel +--/tags Tronc de l arborescence Branches de travail Versions taggées administrateur Ph. Collet 28

Importer des sources r Importer des sources n svn import rep_local /chemin/vers/referentiel [options] n svn import mytree file:///usr/local/svn/newrepos/batchxsl/ trunk -m "Initial import" Fichiers locaux import référentiel Fichiers dans un projet utilisateur 1 Ph. Collet 29

Récupérer une copie locale des sources r svn checkout chemin/vers/referentiel/et/projet [options] r svn checkout http://svn.collab.net/repos/svn/trunk référentiel checkout utilisateur 1 copie locale modifications 1 modifications 2 utilisateur 2 copie locale Ph. Collet 30

Propager ses changements Mettre à jour par rapport à la base r Propagation de vos changements n svn commit r Récupération de nouvelles mises à jour n svn update utilisateur 1 copie locale commit référentiel commit update Ø mise à jour Ø fusion (travail sur le même fichier) Ø conflit (travail sur le même endroit du même fichier) modifications 1 modifications 2 utilisateur 2 copie locale Ph. Collet 31

Signification des sorties SVN pour update et checkout r U file : votre répertoire a été mis à jour r A file : fichier ajouté à votre copie privée, sera propagé après commit r D file : fichier effacé définitivement après commit r C file : conflit détecté lors de fusion r G file : fusion effectuée (car pas de conflit) Ph. Collet 32

Quelques commandes et options r Ajouter un fichier/répertoire : svn add n + commit r Retirer un fichier/répertoire : svn delete n + commit r Copie des fichiers/répertoires : svn copy n + commit r Déplacer des fichiers/répertoires : svn move n + commit Ph. Collet 33

Quelques commandes et options (suite) r Liste des répertoires dans le référentiel : n svn list r Affichage des messages de commit : n svn log r Mes modifications locales (pas de connection au référentiel) : n svn status r Visualiser les différences : n svn diff r Revenir en arrière (undo) : n svn revert r Indiquer qu un conflit est résolu sur un fichier : n svn resolved sandwich.txt Ph. Collet 34

Illustration : TortoiseSVN Ph. Collet 35

Illustration : plugin subclipse dans Eclipse Ph. Collet 36

Centralisation vs. Distribution r SVN: pas d accès à une base partagée sans connexion réseau r GIT (et Mercurial, Bazaar): n «Distributed» Revision control u Plus de serveur central (si le serveur tombe, le service est indisponible) u Chacun à une base locale, il existe une ou plusieurs bases distribuées sur des serveurs (une base est la base maître) n On peut donc : u commiter en local, sans que les autres développeurs soient tenus informés u puis «pousser» quand le moment est opportun vers la base maître u Updater depuis la base maître n Avantages / inconvénients : u Si la base maître tombe, on clone sa base locale sur une autre base u Complexe à utiliser : parfois on oublie de «pousser» vers la base Ph. Collet 37

Git : illustration commit local push utilisateur 1 copie locale pull push pull master Autre repo local commit pull utilisateur 2 copie locale Ph. Collet 38

Git r http://git-scm.com/ r Gestion de version distribuée open-source n gestion des branches et des merges r Chaque copie de repository distribué est autonome n gère son propre historique et ses versions n peut-être utilisé hors connexion indépendamment du repository original n Les sources sont publiables d'un repository vers un autre (push) n Le partage et la réintégration des sources (pull) est très simple Ph. Collet 39

Principales commandes Git r git init : crée un nouveau dépôt r git clone : clone un dépôt distant r git add : ajoute les nouveaux objets depuis le dernier commit. Les objets précédents restent inchangés r git commit : marquer les changements en local r git branch : crée une nouvelle branche de développement r git merge : fusionne plusieurs branches de développement r git push : publie le commit vers un repository distant r git pull : récupère depuis un repository distant Ph. Collet 40

Client Git : SourceTree (Mac, Windows) Ph. Collet 41

Client Git : GitEye (Mac, Windows, Linux) Ph. Collet 42

Attention! r Ne pas utiliser EGit sous Eclipse n Effectue des commandes dans votre dos n Se plante n Met le bazar dans tous les repositories Ph. Collet 43

Références r Git n Pro-Git Book : http://git-scm.com/book/fr n http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf n http://www.git-tower.com/files/cheatsheet/git_cheat_sheet_grey.pdf n http://git-scm.com/ r SVN n The SVN Book: http://svnbook.red-bean.com/ n http://subversion.tigris.org/ Ph. Collet 44

Questions Ph. Collet 45