Méthodes de conception pour les logiciels



Documents pareils
Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Développement itératif, évolutif et agile

Analyse,, Conception des Systèmes Informatiques

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Rational Unified Process

Cours Gestion de projet

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Diagrammes de Package, de déploiement et de composants UML

Systèmes et réseaux d information et de communication

Processus d Informatisation

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Chapitre I : le langage UML et le processus unifié

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Les méthodes itératives. Hugues MEUNIER

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

IFT2255 : Génie logiciel

Gestion Projet. Cours 3. Le cycle de vie

Génie logiciel (Un aperçu)

2. Activités et Modèles de développement en Génie Logiciel

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Génie Logiciel LA QUALITE 1/5 LA QUALITE 3/5 LA QUALITE 2/5 LA QUALITE 4/5 LA QUALITE 5/5

Le génie logiciel. maintenance de logiciels.

Développement spécifique d'un système d information

LA GESTION DE PROJET INFORMATIQUE

LA GESTION DE PROJET INFORMATIQUE

Réussir l externalisation de sa consolidation

étude de rémunérations

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Brique BDL Gestion de Projet Logiciel

Introduction. Nicolas Phalippon IR3. Source: rapport commandé par le Congrès américain. Présentation du 24/10/02

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)

Outil de gestion et de suivi des projets

GL Le Génie Logiciel

URBANISME DES SYSTÈMES D INFORMATION

Module Projet Personnel Professionnel

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

SECTION 5 BANQUE DE PROJETS

Méthodologies de développement de logiciels de gestion

TIERCE MAINTENANCE APPLICATIVE

CQP Développeur Nouvelles Technologies (DNT)

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Introduction au génie logiciel

UML est-il soluble dans les méthodes agiles?

LE KIT DU MANAGER DE PROJETS

GESTION DE PROJET. - Tél : N enregistrement formation :

- Le Diagramme de Gantt. - Le Diagramme de Pert - La Méthode QQCQCCP - La Méthode MOSI - Cahier des charges fonctionnel

Les projets d investissement en PME

FORMAT FORMA ION SUR LA ION SUR LA GESTION DE PROJET & MS PROJECT

2.DIFFERENTS MODELES DE CYCLE DE VIE

ITIL V3. Objectifs et principes-clés de la conception des services

INDUSTRIALISATION ET RATIONALISATION

Comment réussir la mise en place d un ERP?

Le Processus Unifié. Une Démarche Orientée Modèle. IUP NTIE - Master 1 - Jérémie Guiochet - 4/11/09

Bertrand Cornanguer Sogeti

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

PEPI GPI (Gestion de Projet Informatique) - Note de Cadrage décembre

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Formation : Modélisation avec UML 2.0 et Mise en pratique

Gestion de projets logiciels. Xavier Dubuc

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

Méthodes de développement

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

Méthodes de développement. Analyse des exigences (spécification)

Le Guide Pratique des Processus Métiers

En face du commanditaire, on met un chef de projet qui connait le domaine (banque, administration, etc.)

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

SIMULER ET CONCEVOIR LE TRAVAIL FUTUR

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Circuit du médicament informatisé

S3CP. Socle commun de connaissances et de compétences professionnelles

Identification du module

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

PROFIL DE POSTE AFFECTATION. SERIA (service informatique académique) DESCRIPTION DU POSTE

Chef de projet H/F. Vous avez au minimum 3 ans d expérience en pilotage de projet de préférence dans le monde du PLM et de management d équipe.

CHAPITRE 3 : LES METHODES AGILES?

Activités. Boîte à idées pour remplir la fiche de poste * Direction. Animation d équipe et organisation du travail. Conduite de projets

Méthodologie de conceptualisation BI

STRATEGIE, GOUVERNANCE ET TRANSFORMATION DE LA DSI

Enquête 2014 de rémunération globale sur les emplois en TIC

Dossier d'étude technique

Chapitre 1 : Introduction au contrôle de gestion. Marie Gies - Contrôle de gestion et gestion prévisionnelle - Chapitre 1

Gé nié Logiciél Livré Blanc

Rendez-vous la liberté avec Rational Quality Manager

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Maîtrise d ouvrage agile

1. QU'EST CE QUE LE TABLEAU DE BORD D UN PROJET?

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Mise en place d'une solution libre de gestion d'entreprise. Maurice MORETTI Directeur associé

Cycle de formation Gestion de projet

GL Processus de développement Cycles de vie

Université de Bangui. Modélisons en UML

«Identifier et définir le besoin en recrutement»

Présentation UBO 12/2008 Présentation des méthodes agiles

les outils de la gestion de projet

Business Process Design Max Pauron

C ) Détail volets A, B, C, D et E. Hypothèses (facteurs externes au projet) Sources de vérification. Actions Objectifs Méthode, résultats

DEMANDE D INFORMATION RFI (Request for information)

Transcription:

lab-sticc.univ-brest.fr/~babau/ Méthodes de conception pour les logiciels Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1

Plan Introduction Pourquoi une méthode? Objectifs d une méthode Les méthodes de développement Introduction Le cycle en V Compléments Gestion de projet 3 Plan Introduction Pourquoi une méthode? Objectifs d une méthode Les méthodes de développement Introduction Le cycle en V Compléments Gestion de projet 4 2

Qu est-ce qu un projet Ensemble d activités pour atteindre un objectif précisément défini Un projet Un objectif clairement identifié et quantifié Un délai de réalisation Avec des contraintes de réalisation Moyens humains Compétences techniques Matériel disponibles Budgets 5 De la gestion de projet Les projets informatiques n atteignent pas souvent leurs objectifs Dépassement de délais Surcouts Qualité insuffisante Maitriser les délais, les coûts et la qualité Les projets sont menés à plusieurs Acteurs divers (informaticiens et non informaticiens) Sous-traitance (offshore) Maitriser la gestion de projet 6 3

Principes généraux de la gestion de projet Un projet répond à une demande Identifier les objectifs : bien comprendre les besoins Les besoins sont clairement explicités Établir les actions à mener pour répondre aux besoins Mobiliser des personnes et des moyens Organiser cette mobilisation Plan d actions, délais, coûts Gérer des ressources humaines et matérielles évaluation et suivi des tâches Repérer les éléments critiques Maitriser la communication Être clair => Formaliser et adapter les techniques de gestion de projet 7 Projet Une définition Ensemble d actions à entreprendre afin de répondre à un besoin défini (avec une qualité suffisante), dans un délai fixé, mobilisant des ressources humaines et matérielles, possédant un coût. Conduite de projet Organisation méthodologique mise en œuvre pour faire en sorte que l ouvrage réalisé par le maître d œuvre (fournisseur) réponde aux attentes (qualité) du maître d ouvrage (client) dans les contraintes de délai et de coût. Direction de projet Gestion des hommes : organisation, communication, animation Gestion technique : objectifs, méthode, qualité Gestion de moyens : planification, contrôle, coûts, délais 8 4

Les intervenants du projet Maître d ouvrage (MOA) : le client Définit les besoins Déclenche le financement Fait l interface entre les utilisateurs et le MOE Valide les livrables Fait le suivi d exploitation Il faut que ça serve Maître d œuvre (MOE) : le chef de projet Coordonne la réalisation Définit une référentiel qualité Suit les actions et gère les risques Qualifie les livrables Il faut que ça avance Equipe projet Réalise les travaux Il faut que ça marche 9 Les intervenants du projet Maître d ouvrage (MOA) : le client Respect des besoins utilisateurs Respect des contraintes techniques Il faut que ça serve Maître d œuvre (MOE) : le chef de projet Maitriser la qualité, les délais et les coûts Il faut que ça avance Equipe projet Résoudre les problèmes techniques Il faut que ça marche 10 5

Conduire un projet S appuyer sur des méthodes Spécifiant des processus de développement Qui, Quand, Quoi, Comment Organisant les activités du projet Définissant les artefacts (résultats) du projet Se basant sur des modèles clairs et précis 11 12 6

Plan Introduction Pourquoi une méthode? Objectifs d une méthode Les méthodes de développement Introduction Le cycle en V Compléments Gestion de projet 13 Génie logiciel Une définition Ensemble de méthodes, techniques et outils pour la production et la maintenance de composants logiciels de qualité Principes Rigueur et formalisation Séparation des préoccupations, découpage d un problème en sous-problème Modularité, abstraction, généricité, faible couplage De plus en plus de modèles Pourquoi appliquer des principes de génie logiciel Logiciels de plus en plus importants et complexes En terme de fonctionnalités et de propriétés extra-fonctionnelles attendues Intégration de technologies diverses en constante évolution Enjeux stratégiques pour l entreprise 14 7

Rappels sur les modèles Besoin de modèles pour Echanger des informations Intégrer les concepts et les approches spécifiques métier au logiciel Expliquer l impact du traitement automatique de l information au métier Maitriser le développement Des diagrammes différents 13 types de diagrammes UML Des modèles spécifiques (EMF) Des utilisations diverses Documentation Conception Programmation Vérification Rechercher une approche intégrée 15 Intégration de modèles par les méthodes Définir les modèles, les principes de mise en œuvre et assurer un enchainement dans la construction des modèles 16 8

UML n est pas une méthode UML est un langage Connaitre UML (ou maitriser un AGL) n est pas suffisant pour réaliser de bonnes conceptions «Maitriser l orthographe (lexique) et la grammaire (syntaxe) de la langue française, et un éditeur de texte, ne suffisent pas pour être un écrivain de talent» Pour réussir un projet de développement informatique, il faut aussi Maitriser les techniques de conception et de programmation (objet) Avoir un certain nombre de qualités «projet» Et, suivre des méthodes de conception Propositions de cheminements à suivre pour concevoir Cheminements reproductibles et avérés 17 Méthode et processus Une définition de méthode guide ou démarche, plus ou moins formalisé, reproductible permettant d obtenir des solutions fiables à un problème capitalise l expérience de projets antérieurs et les règles dans le domaine du projet Une méthode définit Une chronologie des activités Des concepts de modélisation Un ensemble de règles et de conseils pour tous les participants au projet Processus Méthode ou application de la méthode Décrire qui (des personnes) fait quoi (des artefacts) a quel moment (quand) et de quelle façon (comment) pour atteindre un certain objectif Ensemble de bonnes pratiques issues de l état de l art, de l expérience 18 9

Les méthodes Grandes classes de méthodes Méthodes pour l organisation stratégique Méthodes de développement Méthodes de conduite de projet Méthodes d assurance et de contrôle qualité Méthodes de développement Construire des systèmes opérationnels Organiser le travail dans le projet Gérer le cycle de vie complet Gérer les risques Obtenir de manière répétitive des produits de qualité constante 19 Artefacts et notations Une méthode produit des artefacts Artefact Tout élément d'information utilisé ou généré pendant la totalité du cycle de développement d'un système logiciel Modèles, code et documents Exemples morceau de code, commentaire, spécification statique d'une classe, spécification comportementale d'une classe, jeu de test, programme de test, interview d'un utilisateur potentiel du système, description du contexte d'installation matériel, diagramme d'une architecture globale, prototype, rapport de réalisation, modèle de dialogue, rapport de qualimétrie, manuel utilisateur... Notation (e.g. UML) Permet de représenter de façon uniforme l'ensemble des artefacts logiciels produits ou utilisés pendant le cycle de développement Formalisme de représentation qui facilite la communication, l organisation et la vérification 20 10

Méthode, projet, conception Méthode : décrire (expliciter et formaliser) les activités Qui fait l activité et comment Définir les productions, le quoi (artefacts) Valider les artefacts produits (qualité) Planification (quand) Gestion de projet Assurer le suivi du projet (mise en œuvre de la méthode) pour la maitrise des activités Et donc du coût, des délais et des moyens Conception Appliquer des principes de génie logiciel Pour produire de «bons» artefacts 21 Plan Introduction Pourquoi une méthode? Objectifs d une méthode Les méthodes de développement Introduction Le cycle en V Compléments Gestion de projet 22 11

Les phases d un projet de développement Lancement / avant projet Expression du besoin/cahier des charges (MOA) Réponse à appel d offres (MOE : DSI ou prestataires) Définition/Etude Mise en place référentiel projet, outils, méthodes, équipe, planning Spécifications détaillées Réalisation Conception Développement Tests, intégration Recette Capitalisation Bilan, retour d expérience 23 Plan Introduction Pourquoi une méthode? Objectifs d une méthode Les méthodes de développement Introduction Le cycle en V Compléments Gestion de projet 24 12

Phases classiques du développement (1/4) Phases amont : compréhension et analyse des besoins (1) Expression des besoins Comprendre le client : analyse métier (les données et les processus de l entreprise) Comprendre les besoins du client (quel logiciel pour le client «Que veut-on?» ) (2) Etude de faisabilité Estimation de la faisabilité des besoins Cela doit répondre aux questions «Est-ce réalisable?» et «À quel coût?». (3) Analyse des besoins ou spécification fonctionnelle Traduire les besoins du client en besoins pour l informatique C est le cahier des charges du produit final, tel que le désire le client. Il doit couvrir l intégralité des cas d utilisation du produit, en expliquant ce qu il doit faire et non pas comment il va le faire. 25 Phases classiques du développement (2/4) Phases de développement : réaliser le produit (4) Conception générale Définition de l architecture générale du logiciel Choix techniques généraux (5) Conception détaillée Découpage en modules élémentaires ou sous-ensembles du logiciel Spécification des entrées/sorties de chaque module Choix techniques pointus (6) Réalisation ou codage Produire des modules codés (7) Intégration Les modules codés sont assemblés 26 13

Phases classiques du développement (3/4) Phases d évaluation : vérification (8) Tests unitaires Tests des modules : le module correspond à sa spécification (9) Tests d intégration Tests d intégration des modules : l interfaçage des modules est correct, l assemblage est correct (10) Validation Vérifier la conformité vis-à-vis des spécifications fonctionnelles (11) Qualification ou recette Vérification du respect du contrat initial avec le client Dernière vérification avant mise en production 27 Phases classiques du développement (4/4) Phases de suivi : accompagnement (12) Mise en production Déploiement du service (13) Maintenance Correction des anomalies résiduelles (maintenance corrective) et des évolutions (maintenances évolutives) (14) Documentation Produire les informations nécessaires pour l utilisation du logiciel et pour les développements ultérieurs 28 14

Le cycle en V (12 et 13) (1 et 2) (3) (4 et 5) (10) (9) (11) (6 et 7) (8) 29 Le cycle en V (1 et 2) (3) (4) (5) Validé par Validé par Validé par Validé par (11) (10) (9) (8) (6 et 7) toute description est accompagnée de tests qui permettront de s assurer que le résultat correspond à sa description permet ainsi d éviter un écueil bien connu de la spécification du logiciel : énoncer une propriété qu il est impossible de vérifier objectivement après la réalisation vérification trop tardive du bon fonctionnement du système. 30 15

Cycle en cascade (3) (5 et 10) (6 et 8) (7 et 9) (12) (13) 31 Expression des besoins Permettre une meilleure compréhension du système Comprendre le domaine Aspects fonctionnels et non fonctionnels (sécurité, ) Comprendre et structurer les besoins du client Clarifier, filtrer et organiser les besoins Ne pas chercher l exhaustivité Une fois identifiés et structurés, ces besoins : Définissent le contour du système à modéliser Précisent le but à atteindre Permettent d identifier les fonctionnalités principales (critiques) du système Définir le domaine UML : diagrammes d activité et diagrammes de classe 32 16

Spécifications fonctionnelles Objectif Décrire le problème (ce que doit faire le système et comment il le fait tel que vu d un point de vue métier) sans spécifier la solution technique Préciser les besoins Traduire dans un langage qui se rapproche doucement de celui des informaticiens les modèles exprimés dans l expression des besoins Pour rester compréhensible par les clients ou utilisateurs, on ne prend en considération que des entités du domaine (métier) Elément de référence Entre le clients et les concepteurs du logiciel L analyse doit servir de support pour la conception, l implantation et la maintenance Définir les exigences et les contraintes UML : diagrammes de cas d utilisation 33 Conception Le modèle de la conception décrit la solution (comment le problème est résolu) Modélisation architecturale Faire des choix Le but de la conception est de fixer les choix techniques et de préparer l implantation Modèle pivot pour les informaticiens La conception doit servir de support pour l implantation et la maintenance Le modèle de la conception n est pas destiné à être compréhensible par les utilisateurs mais par les développeurs Bonne structuration (Design Pattern) et bonnes pratiques (styles architecturaux) UML : diagrammes de classe, de package et de composants, diagrammes de séquence 34 17

Qualités pour la conception Observer et expérimenter Une conception est rarement pertinente au premier jet Prendre du recul, se remettre en question Il n y a pas de recettes toutes faites Abstraire Ne pas se plonger/s enliser dans les détails technologiques Ne pas se focaliser sur un détail Savoir extraire un aspect du problème (via un modèle spécifique) Etre guidé par le résultat attendu Le client doit être satisfait (enjeux financiers) C est le client qui décide de la validité du résultat 35 Méthode et UML 36 18

Analyse des besoins Modélisation métier Diagramme de classes pour les données Description d activité pour les processus Identification et représentation des besoins Diagramme de cas d utilisation Description des acteurs et des cas d utilisation Spécification détaillée des besoins Détail des cas d utilisation Diagrammes de séquence et d activités Interaction utilisateur / application Complété par des exigences (le plus important) Maquette de l IHM de l application (non couvert par UML) 37 Conception Elaboration d un modèle «idéal» Diagrammes de classe Modèle du domaine : -> classes métier IHM : -> classes dialogue Modèle d interaction métier /IHM : -> classes de contrôle Modèles des interactions Diagramme de séquence pour les objets Exécution symbolique de l application Diagramme d activité pour les IHM Enchainement des menus, fenêtres, Mise en place de Design Pattern Solution stable et évolutive 38 19

Conception détaillée Passage du monde «idéal» au monde «réel» Diagrammes de classe Intégration des spécificités du langage d implémentation Intégration des spécificités des outils Mise en œuvre des design-pattern Diagrammes d interaction Diagramme de séquence pour les objets Diagrammes de déploiement Architecture matérielle et logique de l application 39 Limites du cycle en V Cycle idéal dans la réalité, il est quasiment impossible d obtenir des spécifications fonctionnelles complètes et qui ne seront pas modifiées par la suite dans la réalité, la conception n est pas idéale et lors de l implémentation, on identifie des cas limites et des problèmes conceptuels Cycle pour un développement entier Dans les projets, on traite souvent d évolutions de logiciels existants Pas d élément sur le comment (comment réaliser chaque étape) 40 20

Un cycle en V adapté et détaillé Client Analyste Développeur Expert (1 et 2) (3) Définition des besoins validation du SFD KO Rédaction du SFD (4) OK lecture du SFD rédaction du STD (5) KO SFD : spécifications fonctionnelles détaillées STD : spécifications techniques détaillées OK validation du STD 41 Un cycle en V adapté et détaillé Client Analyste Développeur Expert (5) MAJ du STD rédaction du FTU Codage OK (6) validation du FTU KO FTU: spécifications des tests unitaires MAJ du FTU Lancer les tests unitaires (8) 42 21

Un cycle en V adapté et détaillé Client Analyste Développeur Expert (9) Lancement des tests d intégration KO OK livraison Ouvrir des anomalies KO Vérification de l anomalie OK Test de l application KO Annonce d anomalies OK (10) rejet Correction de l anomalie 43 Pour une même étape Compréhension du problème Mise en place de la solution Vérification de la solution Livraison de la solution Mise en place d un processus de développement Une étape n est pas liée à une seule personne Une étape correspond à plusieurs tâches La reprise d erreurs est possible tout au long du cycle de vie Un processus strict à respecter Communication tout au long du projet Tout est formalisé dans des documents 44 22

Quelques chiffres Répartition des activités Analyse et conception 45% Réalisation et tests unitaires : 35% Codage 15 à 20% du total Intégration et validation : 25% Dérives dans les estimations Étude préalable : de 10 à 25 % Conception : de 10% à 35 % Réalisation : de 30% à 40% Mise en œuvre : de 5% à 20% 45 Plan Introduction Pourquoi une méthode? Objectifs d une méthode Les méthodes de développement Introduction Le cycle en V Compléments Gestion de projet 46 23

Approches pilotées par les besoins Objectifs Construction d un système qui réponde aux besoins Utilisation des Cas d Utilisation (CU) UML Tout au long du cycle de vie Validation des besoins / utilisateurs Point de départ pour l analyse (découverte des objets, de leurs relations, de leur comportement) et la conception (sous-systèmes) Guide pour la construction des interfaces Guide pour la mise au point des plans de tests 47 Gérer plusieurs points de vue Modèle «4+1» vues, dit de Kruchten mieux séparer les préoccupations Aspects statiques : classes, objets et paquetages Aspects dynamiques: séquences, machines à états Aspects statiques : fichiers sources, exécutables Aspects parallélisme : processus, threads, activités Aspects fonctionnels: acteurs et exigences Aspects répartition : déploiement, nœuds, modules, réseaux 48 24

Approches centrées sur l architecture Une définition Software architecture is not only concerned with structure and behavior, but also with usage, functionality, performance, resilience, reuse, comprehensibility, economic and technological constraints and tradeoffs, and esthetics (RUP, 98) Organisation du logiciel Composants et règles d assemblage de composants Prise en compte d aspects non fonctionnels Portabilité, extensibilité, maintenabilité, Performance, sécurité, persistance Fiabilité, disponibilité, sureté, tolérance aux fautes 49 Approches centrées sur l architecture Objectif de la conception : construire une architecture Qui permette de promouvoir la réutilisation Qui permette de séparer les préoccupations Gérer la complexité Travail en équipe Découpage en packages Stable 50 25

Approches centrées sur l architecture Utiliser un style architectural : suivre des principes d organisation Architecture en couches, architecture client/serveur Utilisation de pattern : modèle MVC, Utilisation de design pattern : composite, visiteur, fabrique, Réutiliser des composants ou des architectures Bibliothèques Repository Framework architectural Encapsuler les solutions réutilisables Repository de composants Production de frameworks 51 La gestion des risques et des opportunités Risque = événement indésirable, incertain, pouvant mettre en danger le projet en impactant La date de fin Les coûts Les spécifications (techniques, qualité, performance, stabilité) Divers : image d entreprise, environnement, juridique, social Préoccupation essentielle de la gestion de projet Objectifs Anticiper les risques Réduire l impact d événements négatifs Profiter des opportunités qui se présentent 52 26

Diminution des risques Différentes natures de risques Besoins Mauvaise interprétation des besoins, du domaine Technique Mauvaise maitrise des technologies Architecture technique inadaptée (performances insuffisantes) Développement Impossibilité de fournir un résultat de qualité Développement trop complexe Autres Outil inutilisable (formation, administration) Risques non techniques (personnel de développement insuffisant, problèmes commerciaux ou financiers) Gestion des risques Identifier et classer les risques par importance Organiser des itérations en fonction des risques Anticiper les difficultés avant qu elles ne se produisent Tout risque fatal pour le projet est à découvrir au plus tôt 53 Identifier les risques Description Déclencheur du risque Conséquences Nature : technique, juridique, qualité, humain Actions préventives actions pour éviter/limiter le risque Actions correctives actions pour traiter le risque rencontré Coût du risque s il est rencontré Evolution du risque Évaluation régulière pour analyser l évolution et déclencher les plans d actions 54 27

Caractériser les risques Probabilité : évaluer la probabilité que le risque se présente (P) Echelle de 1 à 4 : par exemple de très peu probable à quasi-inévitable Gravité/Impact : évaluer l impact sur le projet (I) Echelle de 1 à 4 : par exemple de sans impact réel à vie humaine en danger Non-Détection : évaluer la capacité de détecter le risque (D) Echelle de 1 à 4 : par exemple de détectable systématiquement à indétectable Caractéristique pas toujours utilisée Poids ou criticité = P * I (ou P * I * D) Echelle de 1 à 16 (ou de 1 à 64) Entre 9 et 12 : criticité moyenne, impactant les objectifs du projet, sans le remettre en cause dans son ensemble Entre 13 et 16 : conséquences pouvant interrompre le projet 55 Réduction des risques Supprimer la cause : ne pas utiliser la technologie X non maîtrisée Modifier le projet : abandon d une fonction Partage/Transfert de responsabilité : sous-traiter certains travaux à un spécialiste Limiter les conséquences : prévoir un système de secours, affecter une ressource spécifique Surveiller le risque : méthode de détection (augmenter la fréquence des tests), mise en place d indicateurs spécifiques 56 28

Gestion des risques et pilotage de projet Suivre les risques principaux (criticité 9) Déterminer les risques à suivre dès le lancement du projet Etablir un tableau des risques et réévaluer régulièrement Identifier les points critiques à suivre (lieux/moments où la probabilité/gravité peuvent évoluer) Mettre en place des alertes Déclencher les actions préventives en cas de besoin Réévaluer périodiquement (chaque semaine/mois) : stable, à la hausse, à la baisse Identifier de nouveaux risques Capitaliser les retours d expérience Evaluer risques résiduels en fin de projet 57 Approches itératives et incrémentales Gestion de la complexité Pas «tout en même temps» Etalement des décisions importantes Maîtrise des risques élevés précoce Diminution de l échec Architecture mise à l épreuve rapidement (prototype réel) Intégration continue Progrès immédiatement visibles Maintien de l intérêt des équipes (court terme, prototypes vs documents) Prise en compte des modifications de besoins Feedback, implication des utilisateurs et adaptation précoce Apprentissage rapide et adaptation de la méthode Amélioration de la productivité et de la qualité du logiciel Possibilité d'explorer méthodiquement les leçons tirées d'une itération (élément à conserver, problèmes, éléments à essayer ) Mais gestion de projet plus complexe : planification adaptative 58 29

Développement UP Un cycle de vie produit une version Un cycle de vie = 4 phases Lancement Elaboration Construction (50% du cycle de vie : développement principal et mise au point) Transition Une phase se découpe en itérations successives Approche incrémentale Une phase et une itération se termine par un jalon 59 Un jalon Un jalon marque la fin de la phase La phase est finie Restitution des résultats obtenus lors de la phase Prise de décision Est-ce qu on continue le projet? Est-ce qu on abandonne le projet? Est-ce que l on recommence la phase? Echec de la phase 60 30

La méthode UP : phases et activités 4 phases, plusieurs itération par phase Dans chaque phase /itération : toutes les activités de développement 61 Les phases UP Lancement : étude prospective Quel est le domaine d application? Que doit faire le système? Quels sont les risques? Quel sont les coûts, les délais, les ressources et les moyens pour le projet? Comment le planifier? Jalon : «objectifs du projet» Prise de décision: Est-ce qu on accepte le projet? Elaboration : mise en place d un prototype Spécification de la plupart des cas d utilisation Conception de l architecture de référence (squelette du système) Mise en œuvre de cette architecture (CU critiques, <10 % des besoins) Planification complète Les besoins sont-ils considérés? L architecture stable? Les risques sont contrôlés? Jalon : «architecture» Prise de décision: Est-ce qu on peut passer à la réalisation? 62 31

Les phases UP Construction : développement Développement par itérations / incréments Pour aboutir à une architecture stable Le produit contient tout ce qui avait été planifié Il peut rester quelques erreurs non détectées Jalon : «opérationnel» Prise de décision: le produit est-il suffisamment correct pour être installé chez un client? Transition : mise en place et suivi Produit livré (version béta) Correction du reliquat d erreurs Essais et améliorations du produit Formation des utilisateurs Installation de l assistance en ligne Le produit est-il satisfaisant? Les manuels sont-ils prêts? Jalon : «release du produit» Prise de décision: le projet est fini? 63 Lancement Vs activités Modélisation métier Comprendre le contexte du système (50-70% du contexte) Expression des besoins Etablir les besoins fonctionnels et non fonctionnels (80%) Traduire les besoins fonctionnels en cas d'utilisation (50%) Détailler les premiers cas par ordre de priorité (10%) Analyse Analyse des cas d'utilisation (10% considérés) Pour mieux comprendre le système à réaliser, guider le choix de l'architecture Conception Première ébauche de l architecture Nœuds, réseau, sous-systèmes, couches logicielles Examen des aspects importants et à plus haut risque Environnement Inventaire et choix des outils de développement On fait une première «passe» sur toutes les activités Comprendre le projet et identifier tous les enjeux 64 32

Livrables de la phase de lancement Première version du modèle du domaine ou de contexte de l entreprise Liste des besoins fonctionnels et non fonctionnels Ébauche des modèles de cas, d analyse et de conception Esquisse d une architecture Liste ordonnée de risques et liste ordonnée de cas Grandes lignes d un planning pour un projet complet Première évaluation du projet, estimation grossière des coûts Glossaire 65 Jalon de lancement «objectifs du projet» Interlocuteurs présents Client : resp. projet, resp. qualité, resp. achats Prestataire : chef de projet, resp. qualité, chargé d affaires Objectifs du jalon Rappeler les objectifs et le contexte du projet Présenter l équipe en charge de la réalisation Lister les données d entrée, les éléments manquants les éléments à produire pendant le projet Préciser le planning/les jalons mis à jour selon la date réelle T0 Identifier les premières actions à mener par le client et le prestataire Lister et évaluer les premiers risques 66 33

Elaboration Vs activités Modélisation métier Définir le contexte du système (100% du contexte) Expression des besoins Terminer la capture des besoins (CU) et en détailler de 40 à 80% Faire un prototype de l'interface utilisateur Analyse Analyse architecturale complète du domaine (architecture de référence) Raffinement des cas d'utilisation (>10%) Conception Terminer la conception architecturale Effectuer la conception correspondant aux cas sélectionnés Réalisation IHM Prototype Faire en sorte de pouvoir éprouver les choix Test Des prototypes et maquettes réalisés (édition et navigation) 67 Livrables de la phase d élaboration Un modèle de l'entreprise (processus, glossaire) complet Les cas d utilisation et l expression des besoins (80%) La description des architectures Technique, composants, classes Une version des modèles Conception (<10%), implémentation (<10%) et déploiement Une architecture de base exécutable Un manuel utilisateur préliminaire Une liste des risques mise à jour Un projet de planning pour les phases suivantes Itérations Évaluation du coût du projet 68 34

Construction Vs activités Plusieurs itérations Selon le risque et les priorités Expression des besoins Spécifier l'interface utilisateur Analyse Terminer l'analyse de tous les cas d'utilisation, la construction du modèle structurel d'analyse, le découpage en packages... Conception L'architecture est fixée et il faut concevoir les sous-systèmes Concevoir les classes Réalisation Réaliser, faire des tests unitaires, intégrer les incréments Test Toutes les activités de test : plan de test, conception de test, évaluation... 69 Livrables de la phase de construction Un plan du projet pour la phase de transition L'exécutable Tous les documents et les modèles du système Une description à jour de l'architecture Un manuel utilisateur suffisamment détaillé pour les tests 70 35

Transition Vs activités Préparer la version beta à tester Installer la version sur le site, convertir et faire migrer les données nécessaires... Gérer le retour des sites Le système fait- il ce qui était attendu? Erreurs découvertes? Adapter le produit corrigé aux contextes utilisateurs (installation...) Terminer les livrables du projet (modèles, documents...) Déterminer la fin du projet Reporter la correction des erreurs trop importantes (nouvelle version) Organiser une revue de fin de projet (pour apprendre)... Planifier le prochain cycle de développement 71 Livrables de la phase de transition L'exécutable et son programme d'installation Selon les cibles Les documents légaux Contrat, licences, garanties Les documents de développement Les manuels utilisateur, administrateur et opérateur Le matériel de formation Cours, exercices Les références pour le support utilisateur Suivi de bug, assistance Site Web 72 36

Plan Introduction Pourquoi une méthode? Objectifs d une méthode Les méthodes de développement Introduction Le cycle en V Compléments Gestion de projet 73 Piloter un projet Comment piloter un projet logiciel? Prise de décision : chef de projet Rôle : suivre et guider le projet Attribuer (arrêter) une activité, préparer les évaluations, suivre le planning Le droit à l erreur Ne décide pas de tout, ne fait pas le travail à la place de Mais décide de l organisation du projet Peut revenir en arrière Développer la notion de responsabilité Suivi du projet :analyse, reporting, synthèse Le reporting concerne un type de rapports qui répond aux questions «Que s est-il passé?» ou «Que se passe-t-il en ce moment?» Différent d un tableau de bord 74 37

Organiser le projet en lots Les informations caractérisant chaque lot Les objectifs : ce qui doit être réalisé lorsque le lot est terminé Les ou les responsables Les livrables : matériels, logiciels, rapports, études, données Les données d'entrée : informations, documents, données nécessaires à la réalisation du lot Les ressources : moyens matériels/humains, outils, fournitures La durée de réalisation tenant compte des disponibilités et capacités des ressources Le budget prévisionnel fonction des ressources allouées et de la durée de travail La performance : indicateurs de performance et/ou de respect des normes et standards pour assurer le suivi de la réalisation 75 Mobiliser les moyens Constituer l équipe projet Identifier l ensemble des consultants pour le début du projet Affecter les consultants au projet (ordre de mission) Programmer la date de démarrage prévue pour chacun Identifier les rôles de chaque consultant Constituer une équipe par lot le cas échéant Programmer les (auto) formations le cas échéant Planifier la montée en charge de l équipe dans le temps Organiser la mise à disposition des outils Acquérir et installer la plateforme de développement, de tests, et les outils, logiciels et documentation nécessaires Mettre en place l espace projet, les liens réseau si besoin 76 38

Planifier la réalisation des lots Structurer le projet Planning macro Jalons principaux Prise de connaissance Réalisation Maintenance démarrage montée en compétences spéc. initiales réalisation 8 itérations*3 sem. + spéc. complémentaires garantie T0 T1 T2 T3 T4 1,5 mois 2 semaines 4,5 mois 12 mois 03/01/2011 Lancement 07/02/2011 21/02/2011 15/07/2011 Livraison 14/07/2012 Pour chaque lot/composant du projet, identifier la phase Documentation Traitement des anomalies 77 Associer des tâches aux lots Définition des tâches, pour chaque lot Tâche = opération élémentaire indispensable à la réalisation du lot Identifier des tâches unitaires, courtes (charge = 10 jours max.) Prévoir l enchaînement des tâches : contrainte d antériorité Identifier le chemin critique Graphe PERT (Program Evaluation and Review Technique) 78 39

Lister les tâches Définir charges et antériorité des tâches Id Tâches Charge (jours) A Avant-projet/définition du produit 6 B Etude de marché 3 Tâches antérieures C Etude de faisabilité 4 A D Réalisation des prototypes 40 A E Définition politique/budget pub 5 A F Estimation des coûts 5 C G Présentation prototypes au client 2 D H Détermination du prix du produit 3 B, E, F I Evaluation du C.A. 2 H J Rapport de synthèse avant lancement série 2 F, G, I 79 Planifier les tâches Planification des tâches et des ressources Le PERT ne prend pas en compte la disponibilité des ressources (moyens humains et techniques) Pour chaque tâche Préciser la charge prévue Allouer une/plusieurs ressources (en tenant compte des disponibilités) Planifier la tâche, en tenant des contraintes d antériorité du PERT Planning de référence du projet : diagramme de GANTT 80 40

Planifier une tâche Calcul de la date de début d une tâche Date au plut tôt calculer la durée de chaque parcours parvenant à la tâche date au plus tôt en fonction du chemin le plus long Date au plus tard Identifier la dernière étape prendre la date au plus tôt de cette dernière étape retrancher de cette date les durées du chemin le plus long pour remonter à la tâche considérée Date au plus tard Recherche du chemin critique le chemin le plus long, qui ne comporte aucune marge entre date au plus tôt/au plus tard est le chemin critique toute tâche sur ce chemin qui prend du retard impacte la fin du projet 81 Diagramme de Gantt Chemin critique 82 41

Adapter le planning Adapter le planning selon les ressources disponibles Eviter les surcharges (heures sup.) à un moment et les sous-charge à d autres moments Deux méthodes Lissage : supprimer les surcharges par ajouts de ressources ponctuelles Nivellement : répartir l utilisation des ressources tout au long du projet en décalant des tâches selon la marge disponible Une contrainte : respecter la date prévue de fin de projet 83 Nivellement (1/2) 84 42

Nivellement (2/2) 85 Evaluation de la charge Premier modèle d estimation COCOMO KLS = 1000 lignes de code source Par exemple 2 000 lignes 2 KLS Effort globale en homme/mois pour un programme de complexité simple (2) 2.4 * KLS 1.05 5 h/mois pour un programme de complexité moyenne (32) 3 * KLS 1.12 145 h/mois pour un programme de complexité forte (2) 3.6 * KLS 1.2 8.27 h/mois Temps de développement en mois pour un programme de complexité simple (2) 2.5* effort 0.38 4.6 mois pour un programme de complexité moyenne (32) 2.5 * effort 0.35 14.27 mois pour un programme de complexité forte (2) 2.5 * effort 0.32 4.91 mois Moyens en personnel (effort/temps) pour un programme de complexité simple (2) 1.1 personne pour un programme de complexité moyenne (32) 10.17 personnes pour un programme de complexité forte (2) 1.68 personne 86 43

Evaluation de la charge Premier modèle d estimation COCOMO Productivité en ligne de code pour un programme de complexité simple (2) 400 lignes/mois pour un programme de complexité moyenne (32) 220 lignes/mois pour un programme de complexité forte (2) 241 lignes/mois Entre 10 et 20 lignes de code utiles par jour Répartition (complexité moyenne et 32 KLS) Expression des besoins et planification 7% Conception générale 17% Conception détaillée 25% Programmation et tests unitaires 33% Tests et intégration 25% 87 Evaluation du coût Coûts en matériel PC, Coûts en logiciel Outils de développement Licence Couts Salaires cout total employeur : salaire net + charges (salariales et patronales) Environ 2.25 fois le salaire net Brut chargé pour un ingénieur expert (ANR) 8550 /mois Brut chargé pour un ingénieur junior (ANR) de 4500 à 6450 /mois Couts de structure (ANR : 80% du brut chargé) 88 44

Gestion de problèmes Un document d entrée n est pas clair Le document est incomplet Le document est ambigüe Une tâche n avance pas Une difficulté non prévue survient On ne trouve pas de solution simple la personne est malade, REAGIR AU PLUS TOT : bien avant la fin de la tâche Consulter celui qui a produit les entrées pour préciser un point Consulter un expert Technique pour solutionner un problème Du domaine pour préciser un point Toujours aviser le chef de projet qui pourra réagir En affectant de nouvelles ressources En adaptant son planning En modifiant les spécifications fonctionnelle En positionnant une alerte 89 Quelques règles En début de projet : bien poser le problème que doit-on faire? l objectif du projet (sans ambiguïté) comment? les moyens (budget/ressources) avec qui? MOA, MOE, équipe projet et rôles Ne pas être dans «l à peu près» périmètre du projet bien défini et figé plannings réalistes maîtriser la complexité projet découpé en entités et en tâches claires points de contrôle (jalons tests, qualification, documentation) équipe bien adaptée, chef de projet impliqué facteurs relationnels : communiquer efficacement, acteurs formés anticiper les besoins et les difficultés coûts suivis et maîtrisés outils de gestion appropriés 90 45

Qualités relationnelles pour l équipe projet Etre tourné vers le monde extérieur Et non vers le (son?!) code Dialoguer et communiquer avec les gens Qui utiliseront le système Savoir communiquer avec le(s) client(s) et/ou utilisateur(s) Qui font le système Savoir communiquer en interne Faire des modèles clairs, précis, exhaustifs À destination du lecteur Travailler a plusieurs Un projet n est jamais réalisé tout seul dans son coin Accepter les conseils et propositions des autres et ne pas s imposer 91 Conclusion Une méthode Des règles pragmatiques l organisation doit être au service de la production Des règles communes d organisation, de présentation Des règles éprouvées et reconnues expérience, standards Des adaptations selon le contexte pas de rigidité Expliciter et formaliser toutes les activités liées au développement Développer n est pas simplement coder Pas d activités «invisibles» Associée à un exécutant, avec des objectifs, des artefacts Pas d activité «isolée» Liens avec les autres activités au sein d un processus global Une activité est intégrée dans un processus 92 46

Conclusion Pilotage par les besoins Etre au service du client Diminution des risques Identifier au plus tôt Commencer par le plus difficile Centré sur l architecture Structurer tous les modèles (UC, déploiement et composants, classes) Des modèles pour Préciser, formaliser : lever les ambigüités, éviter les confusions Expliciter, commenter, noter, tracer : communiquer, suivre, se référer Faire des modèles : partager, interpréter 93 Conclusion Qualités humaines Être tourné vers le client Comprendre le client (métier et domaine) Comprendre les besoins du client (besoins) Comprendre les capacités d intégration de suivi du client (déploiement) Savoir travailler en équipe Savoir communiquer Utiliser des modèles Respecter des conventions Produire des documents réutilisables Qualités projet Respecter la planification Respecter les délais Être guidé par des objectifs Faire valider chaque production Réagir au plus vite en cas de problème 94 47

Bibliographie Cours d Olivier Nedelec http://www-inf.intedu.eu/cours/csc4002/enligne/cours/coursuml/3.7.html Cours de Yannick Prié http://liris.cnrs.fr/~yprie/ Rational Unified Process Best Practices for Software Development Teams IBM Rational Unified Process Web Site 95 48