PDFprof.com Search Engine



Analyse des principes du génie logiciel au niveau

PDF
Images
List Docs
  • Quels sont les principes du génie logiciel ?

    Le vrai défi du génie logiciel est de faire en sorte que les systèmes informatiques qui maintenant nous environnent de toutes parts, et avec lesquels nous sommes de plus en plus en interaction, restent à notre service, se plient à notre logique, évoluent à notre rythme : il reste fort à faire pour qu'il en soit ainsi,

  • Quels sont les principaux défis du génie logiciel ?

    Concevoir puis mettre en place des logiciels de comptabilité, de gestion des stocks, de traitement des images, d'applications web en suivant les demandes des entreprises ou des administrations, c'est le rôle de l'ingénieur logiciel.

  • C'est quoi un ingénieur en génie logiciel ?

    Les différents domaines de spécialisation du génie logiciel
    Développeur d'application mobile.
    Développeur de jeux.
    Administrateur système ou sysadmin.
    Administrateur réseau.

ANALYSE DES PRlNCIPES DU GÉNIE LOGICIEL AU NIVEAU DU. DÉVELOPPEMENT AGILE. MÉMOIRE. PRÉSENTÉ. COMME EXIGENCE PARTIELLE. DE LA MAÎTRISE EN INFORMATIQUE. PAR.

Analyse des principes du génie logiciel au niveau
Analyse Granulométrique
Cours d'Analyse et Conception des Systèmes d'Information
Analyse et Conception du Système d'Information (Merise)
L'analyse du sol : échantillonnage instrumentation et contrôle
Génie statistique Dimension générique « Ingénieur diplômé
Analyse Numérique
Les combustibles fossiles (charbon pétrole gaz naturel)
Combustibles fossiles
LES COMBUSTIBLES FOSSILES
Chapitre 1 : Introduction
Next PDF List

Analyse des principes du génie logiciel au niveau

UNIVERSITÉ DU QUÉBEC À MONTRÉALANALYSE DES PRlNCIPES DU GÉNIE LOGICIEL AU NIVEAU DUDÉVELOPPEMENT AGILEMÉMOIREPRÉSENTÉCOMME EXIGENCE PARTIELLEDE LA MAÎTRISEEN INFORMATIQUEPARHOUDA BAGANEMARS2üllUNIVERSITÉ DU QUÉBEC À MONTRÉALService des bibliothèquesAvertissementLa diffusion de ce mémoire se fait dans le respect des droits de son auteur, qui a signéle formulaire Autorisation de reproduire et de diffuser un travail de recherche de cyclessupérieurs(SDU-522 -Rév.01-2006).

Cette autorisation stipule que "conformément àl'article 11 du Règlement no 8 des études de cycles supérieurs, [l'auteur) concède àl'Université du Québec à Montréal une licence non exclusive d'utilisation et depublicationde la totalité ou d'une partie importante de [son] travail de recherche pourdes fins pédagogiques et non commerciales.

Plus précisément, [l'auteur] autorisel'Universitédu Québec à Montréal à reproduire, diffuser, prêter, distribuer ou vendre descopiesde [son] travail de recherche à des fins non commerciales sur quelque supportquece soit, y compris l'Internet.

Cette licence et cette autorisation n'entraînent pas unerenonciation de [la] part[de l'auteur] à [ses] droits moraux ni à [ses] droits de propriétéintellectuelle.

Sauf ententè contraire, [l'auteur] conservela liberté de diffuser et decommercialiserou non ce travail dont [il] possède un exemplaire.»REMERCIEMENTSJe tiens à remercIer tout d'abord mon directeur de recherche, Monsieur GuyTremblay, professeur à l'Université du Québec à Montréal, pour sa disponibilité, sapatience, sa lecture méticuleuse de chacun des chapitres de ce mémoire ainsi que pourses précieux conseils.

Je suis particulièrement reconnaissante pourle temps qu'il m'a sigénéreusement accordé et la promptitude de ses rétroactions sur mon travail.

Ce fut unplaisir de travailler avec lui.J'aimerais aussi remercier mon codirecteur, Monsieur Normand Séguin, professeurà l'Universitédu Québec à Montréal, pour m'avoir corrununiqué son enthousiasmecontagieux enversle sujet de recherche.

Je lui suis très reconnaissante d'avoir été attentifaux avancés de ma recherche et dem'avoir soutenu lors de la rédaction.Je désire remercier mes directeurs pour leur support financier (subvention CRSNGdu prof.

Tremblay et subvention de démarrage de la Faculté des sciences du prof.Séguin), ce quim'a aussi permis de bénéficier de la bourse FARE de l'UQAM.

Jeremercie aussi la Mission Universitaire de Tunisie en Amérique du Nord pourla boursed'exemption des frais majorés qu'ellem'a accordée durant mes études.Je remercie également Monsieur Hafedh Mili, professeur à l'Universitédu Québecà Montréal, qui m'a permis de faire partie du laboratoire LATECE (LAboratoire derecherche sur les TEchnologies du Corrunerce Electronique).Qu'il soit ici assuré de maprofonde gratitude et de mon très grand respect pour son aide professionnel et personnel.Mes remerciements vont également aux professeurs chargés de corriger ce mémoire ettous mes enseignants de maîtrise, en particulier M.

Guy Tremblay, M. GhislainLévesque,M. Roger Nkambou, M. Roger Villemaire, M. Abdellatif Obaïd, M. Bévo E.Valery et M. Daniel Dubois.

Une pensée très particulière est adressée à Ghizlane ElBoussaidi, professeureà l'École de technologie supérieure.

Je la remercie pour saprésence dans les moments difficiles.

Un remerciement spécial à tous les membres duLATECE,en particulier Romdhane, Wassim, Jean-Sébastien, Rana, Gino ct Mélanie.Ces remerciements ne peuvent se compléter sans remercier: mon père pour saconfiance et ses encouragements qui sont les piliers fondateurs de ce queje suis et de cequeje fais, ma mère pour son soutien discret et constant, mon frère Hazem et mes soeursHiba et Haifa.

Enfin, un très grand merci à Ziedet Wafa pour leur présence dans ma vie.TABLE DES MATIÈRESLISTE DES FIGURES IVLISTE DES TABLEAUX VRÉSUMÉ VIIIINTRODUCTION 1CHAPITRE lCADRE CONCEPTUEL 41.

2) Définition des concepts clés 51.2. 1) Qu'est-cequ'un concept? 51.2. 2) Qu'est-cequ'un principe? 61.2. 3) Qu'est-cequ'une valeur? 61.2. 4) Qu'est-cequ'une pratique? 61.2. 5) Qu'est-cequ'une méthode? 71. 3) Domaines de connaissance du génie logiciel 71. 4) Activités du génielogicieL Il1. 5) Conclusion 12CHAPITRE IILE DÉVELOPPEMENT AGILE132. 1) Introduction 132. 2) Origine du terme Agile 132. 3) Origine du comant de pensée Agile142. 4) Le développement agile 182.4. 1) Développement itératif 192.4. 2) Développement incrémentai 191112.4. 3) Développement adaptatif 192. 5) Conclusion20CHAPITRE IIIOBJECTIFS ET MÉTHODOLOGIES213. 1) Introduction 213. 2) Sujet de recherche ,223. 3) Objectif de la recherche233. 4) Méthodologie 243. 5) Structure du document 28CHAPITRE IVANALYSE DES PRINCIPES DU MANIFESTE AGILE294. 1) Introduction 294. 2) Valeurs agiles304.2. 1) Première valeur du manifeste 334.2. 2) Deuxième valeur du manifeste 344.2. 3) Troisième valeur du manifeste 374.2. 4) Quatrième valeur du manifeste 384. 3) Les principes derrièrele manifeste agile 394.3. 1) Principe 1404.3. 2) Principe 2 424.3. 3) Principe 3 444.3. 4) Principe 4464.3. 5) Principe 5 474.3. 6) Principe 6 494.3. 7) Principe 7 :51IV4.3. 8) Principe 8 534.3. 9) Principe 9544.3.10Principe 10 564.3.11 PrincipeIl 584.3.12Principe12 : 604. 4) Synthèse 634.4. 1) Dépendance entre les valeurs et les principes agiles 634.4. 2) Correspondance entre les principes agiles et les conceptsdu génie logiciel 644. 5) Conclusion 68CHAPITRE VANALYSE DES PRINCIPES DE QUELQUES MÉTHODES AGILES 695. 1) Introduction695.2 eXtreme Programming (XP) 705.2. 1) Valeurs 735.2. 2) Pratiques : 755.2. 3) Principes 785.2. 4) Synthèse 855. 3) Scrum 895.3. 1) Vue d'ensemble905.3. 2) Valeurs 925.3. 3) Pratiques 955.3. 4) Principes 975.3. 5) Synthèse 1075. 4) Dynamic System Development Method (DSDM) 1095.4. 1) PrincipesIIIv5.4. 2) Synthèse 124CONCLUSION 127Travaux accomplis 127Travaux futurs 130BIBLIOGRAPHIE131Figure 1. 1) Figure 1. 2) Figure 3. 1) Figure 3. 2) Figure 4. 1) Figure4. 2) Figure 4. 3) Figure5. 1) Figure 5. 2) Figure 5. 3) Figure 5. 4) Figure 5. 5) Figure 5.

5) LISTE DES FIGURESDécoupage des thèmes pour les cinq premiers domaines deconnaissances(Abranet al., 2004) 9Découpages des thèmes pour lescinq derniers domaines deconnaissances (Abranet al., 2004) 10Méthodes d'analyse des principes agiles selon Séguin (Séguin,2006), , 27Structure du mémoire28Le manifeste pour le développement Agile de logiciels (Becket al., 2001) 32Extrait d'un baeklog produit dans un projet Serum (Kniberg,2007) 36Exemples de documentations utilisées dans les méthodesagiles (Agile-Alliance, 2002) 36Cycle de vie de la méthodeXP (Agile-Alliance, 2002) 72Les pratiques d'eXtreme Progranuning (Jeffries, 2006) 76Positionnement de Serum par rapport aux autres méthodesagile (Larman, 2003)90Cycle de vie de la méthode Serum (Agile-Alliance, 2002) 91Éléments de Serum (Aubry, 2010) 96Cycle de vie de la méthode DSDM (Agile-Alliance, 2002) 109Tableau 1.

1) Tableau 2. 1) Tableau 3. 1) Tableau 4. 1) Tableau 4. 2) Tableau 4. 3) Tableau 4. 4) Tableau 4. 5) Tableau 4. 6) Tableau 4. 7) Tableau 4. 8) Tableau 4. 9) Tableau 4.10Tableau 4.11Tableau 4.12Tableau 4.13Tableau 4.14Tableau 4.15Tableau5.

1) LISTE DES TABLEAUXProcessus de cycle de vie logiciel fSO/fEC f 2207 (Séguin, 2006).12Évolution des méthodes agiles18Phases de la méthodologie de recherche pour l'identification desprincipes du génie logiciel (Séguin, 2006) 22Grille d'analyse du principe 1 selon les critères individuels42Grille d'analyse du principe 2 selon les critères individuels 44Grille d'analyse du principe 3 selon les critères individuels .45Grille d'analyse du principe 4 selon les critères individuels 47Grille d'analyse du principe 5 selon les critères individuels 49Grille d'analyse du principe 6 selon les critères individuels 50Grille d'analyse du principe 7 selon les critères individuels 52Grille d'analyse du principe 8 selon les critères individuels 54Grille d'analyse du principe 9 selon les critères individuels 55Grille d'analyse du principe10 selon les critères individuels 57Grille d'analyse du principe11 selon les critères individuels 59Grille d'analyse du principe12 selon les critères individuels 61Les valems agiles versus les principes agiles 63Les concepts du génie logiciel versus les principes du manifesteagile 64Résultat de l'évaluation des principes selon les critèresindividuels 67Grille d'analyse du principe 1 deXP selon les critères individuels.80VITableau 5.

2) Tableau 5. 3) Tableau 5. 4) Tableau 5. 5) Tableau 5. 6) Tableau 5. 7) Tableau 5. 8) Tableau 5.

9) Tableau 5.10Tableau 5.11Tableau 5.12Tableau 5.13Tableau 5.14Tableau 5.15Tableau 5.16 Grille d'analyse du principe 2 de XP selon les critères individuels.81Grille d'analyse du principe 3 deXP selon les critères individuels.82Grille d'analyse du principe 4 deXP selon les critères individuels.83Grille d'analyse du principe 5 deXP selon les critères individuels.84Les pratiques del'eXtreme Programming versus les principes dumanifeste agile 86Résultat de l'évaluation des principes deXP selon les critèresindividuels 88Grille d'analyse du principe 1 deSerum selon les critèresindividuels 98Grille d'analyse du principe 2 deSerum selon les critèresindividuels 100Grille d'analyse du principe 3 deSerum selon les critèresindividuels101Grille d'analyse du principe 4 de Serum selon les critèresindividuels 103Grille d'analyse du principe 5 deSerum selon les critèresindividuels 104Grille d'analyse du principe 6 deSerum selon les critèresindividuels 105Résultat de l'évaluation des principes deSerum selon les critèresindividuels 108Grille d'analyse du principe 1 deDSDM selon les critèresindividuels 112Grille d'analyse du principe 2 deDSDM selon les critèresindividuels 113Tableau 5.17Tableau 5.18Tableau 5.19Tableau 5.20Tableau 5.21Tableau 5.22Tableau 5.23Tableau 5.24Tableau Principes retenusVIIGrille d'analyse du principe 3 de DSDM selon les critèresindividuels 115Grille d'analyse du principe 4 deDSDM selon les critèresindividuels 116Grille d'analyse du principe 5 deDSDM selon les critèresindividuels 117Grille d'analyse du principe 6 deDSDM selon les critèresindividuels 119Grille d'analyse du principe 7 deDSDM selon les critèresindividuels 120Grille d'analyse du principe 8 deDSDM selon les critèresindividuels121Grille d'analyse du principe 9 de DSDM selon les critèresindividuels 123Résultatde l'évaluation des principes de DSDMselon les critèresindividuels 126128RÉSUMÉDansle cadre du développement de logiciel, deux courants de pensée se fontconcurrence depuis quelques années:le développement de logiciels s'appuyant sur unemodélisation plus détaillée et le développement de logiciels basé sur des méthodes agiles quimettent l'accent sur la production de code opérationnel plutôt que sur la documentation.Chaque courant s'appuie sur ses propres principes.

Diverses recherches ont été menées surles fondementsdu génie logiciel plus " classique », de façon à en définir les principes.

Parmices travaux figurela thèse de Normand Séguin, notre codirecteur.

En revanche, aucunerecherche n'a tenté d'étudierles fondements du développement agile de logiciel.Au début des années 2000, plusieurs grands noms du développement logiciel se sontréunis, parmi eux Cunningham, Beek, Schwaber, Sutherland et Fowler.

Ces derniers onttenté d'extraire,de leurs approches respectives, quatre valeurs et douze principes communs àtous dans le but de produire un " Manifeste agile ».

Le développement agile de logiciel peutse faire à l'aide d'un ensemble de méthodes agiles.

Bien que chaque méthode adhère auxvaleurs et principesdu manifeste, chacune met de l'avant des valeurs, des principes et despratiques complémentaires.Ce mémoire présenteles résultats d'une étude de 32 énoncés présentés comme étantdes" principes agiles» répertoriés dans la littérature.

La liste des principes étudiés estformée à partir des douze principesdu manifeste agile, cinq principes de J'eXtremeprogramming (XP),six de Serum et neuf de Dynamie System Development Method (DSDM).Notre étude est fondée sur une méthodologie analytique reposant sur une liste de critèrespour vérifiersi un " principe agile» correspond bien à un principe de génie logiciel.

Notreanalyse a permis d'identifier19 principes qui répondent aux critères.

Tous les principesretenus sont des propositions prescriptives guidant l'action dansle processus dedéveloppement de logiciel.Mots clés: génie logiciel, développement agile, manifeste agile, méthodes agiles,principe, SWEBOK, eXtreme Programming, Scrum, DSDM.INTRODUCTION·Au cours dela dernière décennie, le développement de logiciel agile a changé la façondontle développement de logiciel est perçu aujourd'hui.

Les méthodes et les pratiques desapproches agiles s'imposentde plus en plus dans le paysage du développement logiciel.C'est probablement parce qu'elles démontrent, dans certaines situations, une forte capacité àlivrer un logiciel qui répond aux attentes des clients.

En suivant un processus itératif,incrémentai et adaptatif, en mettantau premier plan les facteurs humains, le développementagile permet de livrer régulièrement un logiciel utile, fonctionnelet de qualité.La notion de développement agile de logiciel est née à travers un manifeste signé par17 auteurs et créateurs de méthodes agiles.

Le manifeste se base sur quatre valeursfondamentales qui se déclinent en douze principes généraux communs à toutes les méthodesagiles.

Bien que toutes les méthodes agiles aient des caractéristiques communes, chacuneintroduit aussi ses propres valeurs, principes et pratiques.Le présent travail s'inspirede la thèse de doctorat de Normand Séguin (Séguin, 2006)qUi avait analysé 308 principes du génie logiciel recensés depuis i970 à l'aide d'uneméthodologie analytique pourne conserver que 34 principes qui satisfont à des critèresd'identification précis.

En nous basant sur cette méthodologie, nous analyseronsun total de32 supposés principes énoncés par les tenants du mouvement agile depuis le début desannées 2000.

Notre but principal est doncde vérifier si les principes agiles publiés étaientvraiment des principes selon les critères d'identification proposés dans la thèsede NormandSéguin (Séguin, 2006).

2) Pour atteindre ce but, plusieurs tâches doivent être réalisées:v' Définir les éléments de notre cadre conceptuel;v' Clarifier ce qu'est le développement agile et dissiper certaines ambiguïtésentourant sa définition, ses méthodes et son vocabulaire;v' Analyser les principes du manifeste agile selon des critères d'identificationprécis;v' Analyser les pnnclpes des méthodes eXtreme Programming, Scrum, DSDMselon les mêmes critères d'identification;v' Présenter une synthèse des résultats obtenus.À notre connaissance, aucun autre travail de recherche ne s'est intéressé à ce genred'étude.

Les travaux portant surle développement agile de logiciel se limitent tous àexpliquer les principes agiles.

C'est ce qui distingue notre recherche.Afin d'atteindre nos objectifs,la structure du mémoire suivante a été adoptée.

Dans lepremier chapitre, nous allons présenter et définir les concepts clés du développement agile,ces concepts nous paraissant fondamentaux dansla compréhension de ce travail.

Nousclarifierons, dansle deuxième chapitre, comment le développement agile ainsi que sesméthodes ont évoluéet pourquoi le besoin d'employer les méthodes agiles s'est imposé.Dansle troisième chapitre, nous présentons notre méthodologie d'analyse ainsi que lesdifférents critères d'identifications utilisés.

Le quatrième chapitre explorera le manifesteagile et examinera ses quatre valeurs et ses douze principes en profondeur.

L'ensemble desméthodes agiles respecteles principes du manifeste, mais chaque méthode a ses propresprincipes.

Par conséquent, nous étudierons, dansle cinquième chapitre, les principes de troisméthodes agiles.

La première méthode,eXtreme Programming, est la méthode la plusconnue et utilisée parmiles méthodes agiles.

Elle est centrée sur la partie construction delogiciel.

Une de ses particularités réside dans l'approche de planification qui se matérialisesousla forme d'une pratique intitulée Planning game.

On notera aussi d'autres pratiquesliéesau code comme le Pair programming, le Refactoring que nous abordons en détail dansle chapitre cinq.

La deuxième méthode étudiée, Scrum, est considérée comme unframework3de gestion conçupour les projets de développement de logiciels.

Elle souligne sa différencedans des pratiques de réunions quotidiennes qui ontpour objectifs d'améliorer la motivationde l'équipe, de synchroniser les tâches et d'améliorer le partage des connaissances.

Enfin, latroisième méthode étudiée,Dynamic Systems Development Method, se caractérise par le faitqu'elle couvre l'ensemble du cycle de développement, contrairement à Serum qui est axé surla gestion de projet.

Chaque méthode étudiée offre une approche légèrement différente, maistoutes ces méthodes ont des processus et des principes spécifiques qui soutiennentune ouplusieurs valeurs du manifeste agile.Dans le dernier chapitre, nous conclurons et discuteronsles résultats de notre étude.CHAPITRE lCADRE CONCEPTUEL" Une origine est toujours lafille d'une origine plus ancienne. »Erik Orsenna1.

1) IntroductionEn 200 l, de nouvelles idées de développement de logiciel ont été présentées sous laformed'un manifeste appelé "manifeste agile ».

Ce dernier présente quatre valeurs et douzeprincipes.

Le but de notre étude est d'analyserle manifeste agile ct d'en extraire les principesqui étaient vraiment des principes selon des critères d'identification qui seront présentés endétail dans le troisième chapitre.

Cette analyse est faite ense basant sur un travail derecherche analytique sur les principes fondamentaux du génie logiciel présenté dans la thèsede Normand Séguin (Séguin, 2006).

Séguin a développé un cadre pour comparer lesprincipes proposés par divers auteurs et par la suiteil les a évalués en utilisant ce cadre.Le développement agile est un nouveau courant de pensée.

Il n'a pas étécomplètement et objectivement examiné dans la littérature.

La plupali des articles et deslivres concernantle développement de logiciel agile ont été écrits par les auteurs dumanifeste agile qui favorisent également leurs propres méthodes agiles.

En conséquence,leurs écrits n'effectuent pas d'analyse objective des forces et des faiblessesdudéveloppement agile de logiciel.

La plupart des méthodes agiles ont été à l'origine conçuespour de petites équipes.

Dans cette étude nous visonsà analyser le manifeste agile dans lathéorie, plus spécifiquement au niveau des principes sous-jacents.

5) Le manifeste agile donne une base à toutes les méthodes dites agiles, telles quel'eXtreme programming (XP) et Serum.

Nous avons analysé les principes du manifeste agileet avons découvert par la suite que la littérature présente aussi des principes associéschaque méthode agile.

Ainsi, nous avons décidé de les analyser.1.

2) Définition des concepts clésNotre démarche d'identifications de pnnclpes agiles nécessite une définitionminutieuse de plusieurs termes.

Il existe une confusion au sujet des termes"concept »," pnnclpes », "valeur », "pratique» et "méthode».

La littérature recense un nombre'i