Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

59
Éléments de Méthodologie Informatique Illustration : eXtreme Programming

Transcript of Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Page 1: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Éléments de Méthodologie InformatiqueIllustration :

eXtreme Programming

Page 2: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Pourquoi ce cours ?

• Donner des éléments de méthodologie de projet (informatique)

• Introduire le vocabulaire et les concepts mis en jeux

• Guider le déroulement du projet d’informatique de L2

Page 3: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Plan

• Panaroma général– Définitions– Problématiques

• Méthodes & Standards– Typologie– Principales méthodes

• Exemple : eXtreme

Programming

Page 4: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Partie I : Panorama général

Dekoiçacôse ?

Page 5: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Méthode & Méthodologie

• Étymologie grecque :

• Méthodologie =science de la méthode

meta après, qui suit+ hodos chemin, voie, moyen= methodos  la poursuite ou

la recherche d'une voie

Page 6: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Exemple de méthode (qualité)• Principe de Quintilien

– Quis, Quid, Ubi, Quibus auxiliis, Cur, Quomodo, Quando

• Méthode QQOQCP– Qui ? – Quoi ? – Où ? – Quand ? – Comment ? – Pourquoi ?

Page 7: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Méthodologie Informatique ?

• Plutôt que méthodologie– méthodes (standards)

destinées à améliorer– la conduite de projets

informatiques – pour le développement de

logiciels

Page 8: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Méthodologie Informatique

• Définition :– Utiliser des méthodes et des

outils dans le but de…– Produire des logiciels de

qualité…– En respectant les contraintes

de délai et de coût

• Exemples :– Méthodes : UP, XP, CMM, …– Outils : langage UML, AGL, …

Page 9: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

QQOQCP

• Qui : Les étudiants de L2 + Prof• Quoi : Éléments de méthodo• Où : Ici !• Quand : Maintenant !• Comment : Cours (diaporama)• Pourquoi :

Bonne question !Commençons par une fable…

Page 10: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

What for ? (metaphor)

A physician, a civil engineer, and a computer scientist were arguing about what was the oldest professionin the world.

Page 11: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

What for ? (metaphor) – contd

The physician remarked,« Well, in the Bible, it says that God created Eve from a rib taken out of Adam. This clearly required surgery, and so I can rightly claim that mine is the oldest profession in the world. »

Page 12: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

What for ? (metaphor) – contd

The civil engineer interrupted, and said, « But even earlier in the book of Genesis, it states that God created the order of the heavens and the earth from out of the chaos. This was the first and certainly the most spectacular application of civil engineering. Therefore, fair doctor, you are wrong: mine is the oldest profession in the world. »

Page 13: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

What for ? (metaphor) - end

The computer scientist leaned back in her chair, smiled, and then said confidently,

« Ah, but who do you think created the chaos? »

Page 14: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Industrie Informatique

• Matériel– Fiable/Standardisé

• Logiciel– Complexe– Production souvent unitaire– Technique

Le développement logiciel est problématique :Taux de succès faible

décroissant avec la taille des projets et la taille des entreprises

Page 15: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Développement Logiciel

• Étude sur la réussite des projets informatiques :– Succès : 29% – Mitigés : 53% – Abandon : 18% (Source : Standish Group 2004)

• Discipline : Génie Logiciel

Page 16: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Méthodologie : Pour quoi faire ?

• Maîtriser les risques – Dépassement des délais– Abandon du projet– Logiciel défaillant– Logiciel inadapté– Développements inutiles– Logiciel impossible à

maintenir ou à faire évoluer– …

Page 17: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Problématique projet

Objectif

Moyens Délais

Gestion de la production

Gestion des

moyens

Gestion des

délais

Page 18: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Métiers

• Maîtrise d’ouvrage (utilisateur)– Chef de projet MOA– Expert métier– Utilisateur

• Maîtrise d’œuvre (concepteur)– Chef de projet MOE– Concepteur/Développeur– Intégrateur– …

Page 19: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Historique

• 1945 : – programmation en code

binaire/assembleur– 1 seul développeur– projets de petite taille

• 1955 :– Apparition des langages

évolués– projets + importants

Page 20: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Historique - suite

• 1965 : – Crise du logiciel :

l'intuition ne suffit pas pour développer correctement du logiciel

• 1968 :– Première conférence sur le

Génie Logiciel (Software engineering)

Page 21: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Historique - suite• 1970 :

– Notion de programmation structurée :

• suppression du GOTO,• structuration du code

• 1972 : – Développement des méthodes de

preuves de programmes

• 1975 : – Développer un projet coder

• cycle de vie• développement de méthodes

associées (modèles en V, W, …)

Page 22: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Historique - suite

• 1980 : – Approche fonctionnelle :

• importance des premières phases de conception

• Méthodes : Merise, …

• 1990 : – Développement de la POO

• Objectif : réutilisation• Méthodes : UP, XP, …

Page 23: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Partie II : Méthodes & Standards

Voilacékoi !

Page 24: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Modèle en cascade

Page 25: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Cycle en V

Page 26: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Modèle en spirale

4 - Validation

1 - Analyse2 - Conception

3 - Réalisation

Page 27: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Modèle en spirale - suite

Page 28: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Modèle itératif

Élaboration

Fabrication

Transition

Faisabilité

Nouveau Besoin

Exploitation ou Test

Page 29: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Merise

Étude préalable

Étude détaillée

Réalisation

Mise en oeuvre

Étapes OutilsModèle Organisationnel des TraitementsModèle Conceptuel des DonnéesModèle Conceptuel des Traitements

Modèle Logique des Données

Délivrables

MaquettesPrototypes

Page 30: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Merise - suite

• Maquette– Expression des besoins et

spécification des éléments– IHM– Développement jetable

destiné à valider une hypothèse

• Prototype– Version préliminaire ou

système incomplet destiné à un essai grandeur nature

Page 31: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Unified Process

Page 32: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Unified Process – suite

Page 33: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Unified Process – suite

• 4 phases :– INCEPTION (10%)

• Lancement

– ELABORATION (30%)• Analyse, spécification

– CONSTRUCTION (50%)• Développement du logiciel

– TRANSITION (10%)• Mise en œuvre

• Langage de modélisation : UML

Page 34: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Unified Process - suite

• Inception (mise en route)– Objectifs

• périmètre, use case critiques, architecture, risques, coûts, délai

– Activités• énoncer le contexte, les

exigences, les contraintes, planifier

– Artefacts • documents de vision, plan

projet, étude rentabilité

Page 35: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Unified Process - suite

• Elaboration– Objectifs

• valider l’architecture, vision de réf, plan de réf

– Activités• étude des cas d’utilisation,

définition de l’environnement de dév, élaborer l ’architecture

– Artefacts• un modèle de use case (80%),

description logicielle, prototype, manuel utilisateur

Page 36: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Unified Process - suite

• Construction– Objectifs

• Fournir une version beta, minimiser les coûts, qualité

– Activités• gérer les ressources,

développer et tester

– Les artefacts• le logiciel, manuel

d’utilisation, description de la version

Page 37: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Unified Process - fin

• Transition– Objectifs

• mise en œuvre, livrer une version finale, former les utilisateurs

– Activités• beta test, mettre en service,

former, améliorer les perf

– Artefacts• néant

Page 38: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Two Track Unified ProcessBranche

fonctionnelle

Capture des besoins

Spécifications fonctionnelles

Analyse

Capture des besoins techniques

Architecture logicielle et applicative

Frameworks techniques

Déploiement

Recette

Test

Codage

Conception

Branche technique

Phase deréalisation

Page 39: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Capability Maturity Model

• Outil d’évaluation de la capacité en terme de développement logiciel – Management– Développement– Maintenance

• Processus continu d’amélioration fondé sur une démarche par paliers

Page 40: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Capability Maturity Model

5 niveaux de maturité

Page 41: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

eXtreme Programming

• L'eXtreme Programming est une méthode de développement logiciel mettant en oeuvre des processus agiles et dont l'objectif est la simplicité.

• La mise en oeuvre d'XP s'appuie sur une équipe unie permettant une communication rapide entre tous les acteurs du projet

Page 42: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

eXtreme Programming - suite• Principales caractéristiques

– 1 représentant du client est intégré à plein temps dans l’équipe informatique

– Programmation en binôme

– Écriture des tests avant codage

– Intégration continue dès le début du projet

– Livraisons fréquentes

Page 43: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Typologie des méthodes

Cascade

Itératif

Formalisme

CMM

Cycle en V

Merise

UP

2TUP

XP

Page 44: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Partie III : eXtreme Programming

Pacifacile…

Page 45: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Prise en compte des risques

Risque Solution XP

Dép. délai Cycles courts (1)

Abandon Cycles courts

Détérioration Tests (2)

Défaillance Tests

Inadéquation Client intégré (3)

Évolution besoin (1) + (2)

Fonct. inutiles Priorités

Turnover Responsabilisation

Page 46: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Les 4 variables

• Coûts– Avoir le « bon » budget 

• Délais– Augmentation des délais

• Amélioration qualité• Diminution du feedback

• Qualité– Délicate à piloter

• Périmètre– Définir et résoudre le

problème essentiel

Page 47: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Les 4 valeurs

• Communication– Essentielle au déroulement

du projet

• Simplicité– Éviter l’usine à gaz…

• Feedback– Tester le système

• Courage– Accepter le refactoring

Page 48: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Les principes fondamentaux

• Accélérer le feedback– Tests, cycles de livraison courts

• Supposer la simplicité– …quitte à complexifier ensuite

• Changer de façon incrémentale– Modifier par étapes

• Accueillir le changement– Rester disponible

• Chercher la qualité– Pour mieux travailler

Page 49: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Autres principes• Apprendre à apprendre• Réduire l’investissement initial• Jouer pour gagner• Expérimenter dans le concret• Communiquer ouvertement et

honnêtement• Exploiter l’instinct des gens• Accepter ses responsabilités• Adapter les principes si nécessaire• Voyager léger• Mesurer sans tricher

Page 50: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Le code

• Coder– Formuler, mettre en œuvre

• Tester– Fiabiliser, augmenter la

confiance

• Écouter– Problématique client,

équipe de développement

• Concevoir– Organiser le système

Page 51: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Mise en œuvre XP

• Jeu du planning– But : définir et mettre à jour

le périmètre, les livraisons et le planning

– Moyen : utiliser un jeu pour dépassionner le dialogue MOE/MOA

• Petites livraisons– But : définir les livraisons

les plus petites/pertinentes possibles

Page 52: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Mise en œuvre XP – suite

• Métaphore– But : identifier simplement

les composants du système

• Conception simple– Moyens : tests, refactoring,

programmation en binôme

• Tests– But : fiabiliser– Moyens : tests unitaires,

tests fonctionnels

Page 53: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Mise en œuvre XP - suite

• Refactoring– But : adapter le système– Moyens : tests, conception simple,

programmation en binômes

• Programmation en binômes– Mode : un membre au clavier, l’autre

avec plus de recul

• Responsabilité collective du code– Mode : tout le monde peut modifier

le code à tout moment

Page 54: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Mise en œuvre XP - suite

• Intégration continue– But : intégrer continûment les

développements

• Heures travaillées– Inutile d’accumuler des heures

supplémentaires

• Client sur site– But : s’assurer en permanence

de l’adéquation

• Règles de codage– But : améliorer la communication

Page 55: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Annexe

Compléments UML

Page 56: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Qu’est-ce que UML ?

• Unified Modeling Language– Langage graphique de

modélisation des données et des traitements

– Adapté aux langages Orientés Objet

– Utilisé dans certaines méthode (UP)

Page 57: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Modélisation• Aspect Fonctionnel

– Objectif : décrire les fonctionnalités du système du point de vue de l’utilisateur

– Diagrammes : cas d’utilisation, …

• Aspect Donné/Objet– Objectif : décrire la structuration du

système en objets, attributs, opérations et associations

– Diagrammes : de classe, d’objet, …

• Aspect Dynamique– Objectif : décrire le comportement

interne du système– Diagrammes : de séquence, …

Page 58: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Diagrammes structurels

• Diagramme de classe (L1)• Diagramme d’objet (L1)• Diagramme de composant

– Décrire la décomposition d’un logiciel en composants physiques (fichiers, librairies, packages) et la relation entre ces composants

Page 59: Éléments de Méthodologie Informatique Illustration : eXtreme Programming.

Références