Éléments de Méthodologie Informatique

Slides:



Advertisements
Présentations similaires
EPITECH 2009 UML EPITECH 2009
Advertisements

Applications N-Tiers Rappels: architecture et méthodologie
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Analyse et Programmation Orientées Objets
Analyse et Programmation Orientées Objets Cycle de vie dun projet.
1 Modéliser Ou comment RE-présenter sa connaissance.
Eléments de Génie Logiciel
Les Evolutions et la Maintenance
Le processus unifié UML est un langage de modélisation et n ’impose pas de démarche de développement Le processus unifié : méthodologie de développement.
UML - Présentation.
Chapitre 7 : démarche de conception, conduite de projet SI
Les démarches de développement
Les démarches de développement
UML (Unified Modeling Langage)
Rational Unified Process (RUP)
Les Ateliers de Génie Logiciel
Filière Informatique et Réseaux
MIAGE MASTER 1 Cours de gestion de projet
MANAGEMENT DU PRODUIT Organisation Technique du Produit (OTP) Objet Arborescence Produits Relation autres domaines Décomposition du système Gestion.
Introduction au Génie Logiciel
METHODE AGIL Présenté par : GRIOUI Haykel MILADI Hedi CHARFI Habib
Feature Driven Development (FDD)
Rationaliser la conception participative
Modèle, Méthode et Conception
Management des systèmes d’information Conclusion
SYSTEMES D’INFORMATION
Unified Modeling Langage
TESTING BUSINESS PROCESSES
Équipe de projet Méthodologie
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
La gestion par activités (ABM)
Les étapes du cycle de développement du génie logiciel
Portée, arrimages et intervenants Évolution des méthodes
Démarche de développement
Processus d'un projet F.Pfister
Sensibilisation a la modelisation
La Gestion de Projet.
Partie A Système d ’information et organisation
ANALYSE METHODE & OUTILS
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Le management de l'IVVQ Processus techniques IVVQ
Supports de formation au SQ Unifié
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
GENIE LOGICIEL
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
1 Emeric ROLLIN 1 Génie Logiciel GENIE LOGICIEL
UML : un peu d’histoire H. Lounis.
Introduction au Génie Logiciel
Initiation à la conception des systèmes d'informations
Gestion de projet Cycles de production
1 Emeric ROLLIN 1 Génie Logiciel GENIE LOGICIEL
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Année 2006 – 2007 ENSEA © Emeric Rollin
Unified Modeling Language
ISNET-43 Atelier de génie logiciel Approche fonctionnelle ou objets Concurrence ou complémentarité ? Synthèse.
Quels enjeux Les Nouvelles Technologies sont utilisées sur tous types de projets Applications B2E, B2B, B2C Produits Client-Serveur.
L’enseignement de spécialité SLAM
OPTIMISATION DE LA PLANIFICATION
Les démarches de développement
Soutenance Phase 1 Bibliographie et Analyse des besoins
2 Tracks Unified Process
TIJARIATE Méthodes Orientées Objets Unified Process (UP) - Groupe A
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Les concepts d’UML - Le Processus Unifié -
1 JEE 2010 Architectures n-tiers F.Pfister
UML support à la COO 2ème année IUT Calais-Boulogne Bénédicte Talon
Conférence 2TUP Stéphane Barthon 03/12/
Présentation de la méthode Merise
SIO Gestion de projets, applications SIO Hager Khechine, MBA, PhD. Séance 2 : Méthodes de découpage de projets.
Transcription de la présentation:

É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

Plan Panaroma général Méthodes & Standards Définitions Problématiques Méthodes & Standards Typologie Principales méthodes Exemple : eXtreme Programming

Partie I : Panorama général Dekoiçacôse ?

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

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 ?

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

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, …

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…

What for ? (metaphor) A physician, a civil engineer, and a computer scientist were arguing about what was the oldest profession in the world.

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. »

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. »

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? »

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

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

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 …

Gestion de la production Problématique projet Gestion de la production Objectif Moyens Délais Gestion des moyens Gestion des délais

Métiers Maîtrise d’ouvrage (utilisateur) Maîtrise d’œuvre (concepteur) Chef de projet MOA Expert métier Utilisateur Maîtrise d’œuvre (concepteur) Chef de projet MOE Concepteur/Développeur Intégrateur …

Historique 1945 : 1955 : programmation en code binaire/assembleur 1 seul développeur projets de petite taille 1955 : Apparition des langages évolués projets + importants

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)

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, …)

Historique - suite 1980 : 1990 : 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, …

Partie II : Méthodes & Standards Voilacékoi !

Modèle en cascade

Cycle en V

Modèle en spirale 4 - Validation 3 - Réalisation 2 - Conception 1 - Analyse

Modèle en spirale - suite

Modèle itératif Nouveau Besoin Élaboration Faisabilité Fabrication Transition Exploitation ou Test

Merise Étapes Outils Délivrables Modèle Organisationnel des Traitements Modèle Conceptuel des Données Modèle Conceptuel des Traitements Modèle Logique des Données Étude préalable Étude détaillée Réalisation Délivrables Maquettes Prototypes Mise en oeuvre

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

Unified Process

Unified Process – suite

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

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é

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

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

Unified Process - fin Transition Objectifs Activités Artefacts 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

Two Track Unified Process Branche fonctionnelle Branche technique Capture des besoins techniques Capture des besoins Architecture logicielle et applicative Spécifications fonctionnelles Frameworks techniques Analyse Conception Codage Test Recette Phase de réalisation Déploiement

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

Capability Maturity Model 5 niveaux de maturité

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

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

Typologie des méthodes Cascade Cycle en V Merise CMM 2TUP Formalisme XP UP Itératif

Partie III : eXtreme Programming Pacifacile…

Prise en compte des risques 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

Les 4 variables Coûts Délais Qualité Périmètre Avoir le « bon » budget 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

Les 4 valeurs Communication Simplicité Feedback Courage Essentielle au déroulement du projet Simplicité Éviter l’usine à gaz… Feedback Tester le système Courage Accepter le refactoring

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

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

Le code Coder Tester Écouter Concevoir Formuler, mettre en œuvre Fiabiliser, augmenter la confiance Écouter Problématique client, équipe de développement Concevoir Organiser le système

Mise en œuvre XP Jeu du planning Petites livraisons 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

Mise en œuvre XP – suite Métaphore Conception simple Tests 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

Mise en œuvre XP - suite Refactoring Programmation en binômes 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

Mise en œuvre XP - suite Intégration continue Heures travaillées 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

Annexe Compléments UML

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)

Modélisation Aspect Fonctionnel Aspect Donné/Objet Aspect Dynamique 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, …

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

Références