Estimation des projets PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document provides an overview of project estimation, including its importance, difficulties, and different methods of estimation. It discusses the process of estimation, the different stages involved, and the sources of information needed for accurate estimations. The document also details various methods such as analogies, expert judgment, global estimations, analytical approaches, and algorithmic models.
Full Transcript
Chapitre: Estimation des projets Conduite de projets informatiques 1 Introduction: Il est indispensable pour le client, le chef de projet et le management d'estimer à l'avance la durée le coût et l’effort d'un projet logiciel. Il convient également d'en mesurer les risques en recen...
Chapitre: Estimation des projets Conduite de projets informatiques 1 Introduction: Il est indispensable pour le client, le chef de projet et le management d'estimer à l'avance la durée le coût et l’effort d'un projet logiciel. Il convient également d'en mesurer les risques en recensant les dépendances extérieures qui influeront sur les coûts et délais. Mais, trop souvent, on ne comprend pas que l'estimation est une activité très difficile. Conduite de projets informatiques 2 Importance l’estimation La planification rigoureuse et le pilotage du projet ne sont pas possibles sans une estimation sérieuse et fiable. Mais généralement notre industrie du logiciel ne sait pas estimer correctement les projets et n’utilise pas convenablement les estimations, ce qui produit à deux situations : sous-estimation d’un projet : qui entraîne : un sous-effectif, une sous-appréciation de la charge, avec le risque de livrables de médiocre qualité et l’établissement d’un planning trop serré. Surestimation : accordez à un projet plus de ressources que nécessaires sans contrôler l’utilisation de ces ressources, le projet coûtera beaucoup plus cher, et durera plus longtemps; Conduite de projets informatiques 3 Difficulté de l’estimation L'estimation est un exercice difficile, impossible en théorie et faisant donc appel à des heuristiques. La liste suivante indique quelques difficultés liées a l’estimation : - L’estimation nécessite toujours une estimation de la taille du projet. c’est l’étape la plus difficile. - Le processus d’estimation nécessite des raffinements successifs, il est impossible de fournir une estimation correcte jusqu'à ce que le logiciel soit saisi dans son intégralité. - Souvent, on ne recueille ni n’analyse les mesures des performances des projets terminés. - L’utilisation de données historiques est cependant la meilleure manière pour élaborer des estimations d’un nouveau travail. Conduite de projets informatiques 4 Processus de l’estimation Le processus d’estimation requiert des raffinements successifs. La tâche d’estimation des coûts et durée est effectuée où il s'agit d'établir le plan projet et le plan qualité qui serviront au cadre contractuel du projet, lors du déroulement du projet afin d'affiner les prévisions et de les mettre à jour. Dans de trop nombreux cas, l'estimation préalable est faite à l’impatience dans le but de remporter un marché, la planification qui s'ensuit est souvent pénalisée par une sous-estimation initiale des coûts et délais globaux. Conduite de projets informatiques 5 Processus de l’estimation De manière générale, le processus d'estimation passe par les étapes suivantes: Estimer la taille du produit à développer. Estimer la charge (effort) en mois hommes ou en jours hommes. Estimer le coût du projet en monnaie locale. Construire le calendrier du planning. Conduite de projets informatiques 6 Processus de l’estimation Conduite de projets informatiques 7 Les sources d’information Les sources d’information relatives au porté du projet, sont obtenue à partir de l’appel d’offres, de la spécification des exigences du logiciel et spécification des besoins des clients. Lors de la réestimation du projet dans les phases ultérieures du cycle de vie, les documents de conception fourniront des détails additionnels. Conduite de projets informatiques 8 1- Estimation de la taille La première étape d’estimation consiste à estimer, le plus précisément possible, la taille du logiciel à développer. Celle-ci s’est mesurée généralement en nombre d’instructions (lignes de code) ou en points de fonction. Les deux principaux moyens d’estimation de la taille sont : – L’analogie : Si vous avez déjà fait un projet similaire dont vous connaissez la taille. – On peut utiliser une approche algorithmique pour convertir les points de fonction en une mesure de la taille. Conduite de projets informatiques 9 2- Estimation de la charge(effort) Déduire la charge totale du projet a partir de la taille estimé ne peut s’envisager qu’après Définition d’un processus de développement adopté pour le développement. Il existe deux manières de déduire la charge à partir de la taille : 1- utiliser l’historique de votre Organisme pour recenser les charges réelles consommées par les précédents projets pour réaliser les ouvrages. C’est la meilleure façon pour estimer la charge d’un nouveaux système. 2- Si on ne dispose pas d’un historique utilisable, on peut appliquer une approche Algorithmique reconnue telle que le modèle COCOMO ou PUTNAM pour convertir une estimation de taille en estimation de charge. Ces modèles, issus des données de l’industrie du logiciel, ne sont pas être aussi précis que ceux de l’ historique, mais ils donneront, toutefois, une première approche des estimations de charges. Conduite de projets informatiques 10 3- Estimation des délais consiste à déterminer les délais à partir de la charge estimée. Ce qui implique généralement d’estimer les ressources affectées au projet. Lorsque vous aurez ces informations, vous devez planifier les tâches. Pour estimer les délais nécessaire aux développements : on utilise: 1- les historiques des projets réalisés par votre Organisme 2- des formules empiriques peuvent être utile. Conduite de projets informatiques 11 4- Estimation du coût L’estimation exacte du coût total du projet dépend de la façon dont on affecte les coûts. Souvent, le directeur de projet estimera seulement le coût du travail. les coûts additionnels non considérés sont identifié comme des frais généraux. Le coût du travail peut être obtenu en multipliant, simplement, l’estimation de charge en heures par un taux en dinar( ou en euro, en dollar…). Un calcul plus précis de coût de la charge résulte de l’utilisation d’un taux pour chaque catégorie de personnel (technicien, qualiticien, encadrement, documentation, support, etc.). Conduite de projets informatiques 12 5- Quelques règles d'or pour l'estimation Il faut prendre le temps suffisant pour faire une bonne estimation de votre projet et il faut Prévoir du temps pour l'estimation et la planification. Pour les grands projets , l’étape d’estimation doit être considérée comme un véritable mini projet. Utiliser des données de projets précédents. Si possible, utilisez des données enregistrées de votre propre Organisme sur des projets similaires. Il en découlera une estimation plus précise. Si votre Organisme n’a pas encore constitué cet historique, il est grand temps de commencer à recueillir les données. Conduite de projets informatiques 13 5- Quelques règles d'or pour l'estimation Utilisez des estimations fondées sur les expériences des développeurs. Les estimations, préparées par des personnes différentes de celles qui feront le travail, sont moins précises. Estimer par consensus : consulter les différentes équipes et Prendre l'avis des développeurs qui vont effectivement effectuer le travail. Estimer par difficultés (facile, moyen, difficile) Utiliser plusieurs techniques et modèle d’estimation, Changer de méthodes d'estimation au fil de l'avancement du projet et comparer les résultats. Conduite de projets informatiques 14 5- Quelques règles d'or pour l'estimation Utilisez au moins un outil d’estimation du logiciel. Ces outils vous assurent que vous n’oublierez rien et vous permettent d’ajuster une estimation rapidement et facilement. Réestimer le projet, plusieurs fois, au cours de son cycle de vie. Conduite de projets informatiques 15 Classification des méthodes Peuvent être classé selon plusieurs catégories qu’on cite : La méthode du jugement d'expert Les méthodes par analogie Les méthodes globales (top-down) Les méthodes analytiques (bottom-up) Les méthodes s'appuyant sur des modèles algorithmiques Conduite de projets informatiques 16 1- Méthodes d’analogie Ces méthodes font référence à d'autres projets comparables pour estimer des caractéristiques et la charge d’un nouveau projet. Un estimateur expérimenté peut produire des estimations convenables, par analogie, s’il connaît les valeurs précises des tailles des parties d’un projet précédent et si le nouveau projet est suffisamment voisin du projet précédent. Conduite de projets informatiques 17 2- Méthode du jugement expert C’est une méthode rapide mais nécessite des personnes possédant beaucoup d'expérience Le principe est de demander à un groupe d'expert leur estimation pour atteindre un consensus. Conduite de projets informatiques 18 2- Méthode du jugement expert Les étapes sont : le coordinateur présente les spécifications à chaque expert chaque expert donne trois estimation : optimiste, pessimiste et probable, la moyenne = (optimiste + pessimiste + 4 * probabe)/6 Chaque expert remplit une fiche anonyme ; le coordinateur prépare une synthèse et demande à chaque expert de réviser son estimation en expliquant les raisons de son estimation ; les experts remplissent de nouveau les fiches, et l'on réitère jusqu'au consensus ; Conduite de projets informatiques 19 3- Méthodes d’évaluation globale (Top Down) Ces méthodes estiment la charge à partir des propriétés globales, puis la répartissent sur les différents composants. Le principe consiste à faire une estimation globale à partir de propriétés générales du produit, en jonction avec d'autres méthodes, puis à faire une répartition entre les divers composants. Conduite de projets informatiques 20 4- Méthodes analytiques (bottom-up) Ces approches exigent une analyse détaillée préalable. Le principe consiste à faire l'estimation individuelle de chacun des éléments (élément par élément) du projet puis d'en faire une agrégation et d'ajouter les coûts communs. Conduite de projets informatiques 21 5- Modèles algorithmiques Estimation à l'aide de fonctions mathématiques et d'un certain nombre de variables jugées significatives. Plusieurs méthodes dans cette classe, tel que: Méthode MCP de Gédin ; Modèle de Putnam Méthode des 10 paramètres ; Méthode COCOMO de Boehm ; Méthode des points de fonction ; La méthode d’estimation rapide du calendrier. Conduite de projets informatiques 22 Méthode d’estimation des lignes du code Cette méthode utilise les tailles de précédents projets (produits concurrents), pour l’estimation de la taille du projet en cours de réalisation. Ou de plus, diviser le projet en plusieurs parties facilement quantifiables. Le principe consiste à estimer pour chaque partie i du projet sa taille maximale maxi, sa taille minimale mini et sa taille la plus juste ji (approximatif) : Taille = (a*mini+c*ji+b*maxi)/ (a+b+c) Conduite de projets informatiques 23 Exemple : un projet A composé de 2 partiesP1, P2. on utilisera les facteurs (a,c,b)= (1,4,1) Conduite de projets informatiques 24 Modèle COCOMO La méthode COCOMO, (COnstructive COst Model) a été développée par Dr. Barry Boehm en 1981 pour estimer l'effort et le temps de développement d'un produit logiciel à partir de l’estimation de la taille du logiciel. elle est issue du cycle de vie en spirale. La méthode COCOMO est une méthode algorithmique. A l'origine elle a été construite à partir d'une analyse des données par régression pratiquée sur 63 projets logiciels comprenant de 2000 à 100.000 lignes de code dans l'entreprise TRW (USA). Un nouveau modèle appelé COCOTS, est développé par l'équipe de COCOMO. Ce modèle permet d'estimer les coûts des projets logiciels Conduite utilisant des composants existants. de projets informatiques 25 Modèle d'estimation Le modèle COCOMO s'appuie sur une estimation de la taille pour estimer l'effort en homme*mois (HM) calculée par la Formule : Effort = E = C*M*tailleˢ C : facteur de complexité M : facteur multiplicateur Taille : en milliers de lignes de code source livrées (KLOC) S : proche de 1 le temps de développement (TDEV) est estimé comme suit : TDEV = C* M*Es Conduite de projets informatiques 26 Modèle COCOMO Le modèle COCOMO est constitué de trois modèles : 1- le modèle de base 2- le modèle intermédiaire 3- le modèle détaillé ou expert Conduite de projets informatiques 27 Le modèle cocomo de base Le modèle de base estime l'effort en fonction de la taille et d'un facteur d'échelle qui dépend du type de projet. Les 3 types de projet identifiés sont : a/ organique : Il est utilisé pour des systèmes à innovation minimale, qui implique une petite équipe expérimentée. (ex: petite gestion, système de notes dans une école, petits systèmes d'exploitation, traducteurs) b/ médian (semi-detached) : Il est utilisé pour des systèmes a un degré d'innovation raisonnable, (exemples: Compilateurs, Contrôle de processus simple, système bancaire interactif) c/ imbriqué : utilisé pour des projets dont le niveau d'innovation est important, complexe, grande équipe, avec beaucoup d'interactions, (exemples: Gros système d'exploitation, Systèmes transactionnels complexes, système de contrôleConduite aérospatial...) de projets informatiques 28 Pour les projets basés sur les technologies traditionnelles, COCOMO de base est bien adapté. Conduite de projets informatiques 29 Le modèle cocomo de base les formules d’estimation COCOMO pour le modèle de base sont : remarque : dans ce modèle M : facteur multiplicateur=1 Conduite de projets informatiques 30 Remarque Taille : Exclut en général les environnements de tests, les supports de développement, les commentaires. HOMMES MOIS (HM) : HM = 152 Heures (Normes américaines) KDSI = thousands of "delivered source instructions" Conduite de projets informatiques 31 Exemple Conduite de projets informatiques 32 Distribution de l'effort par phase : Le temps de développement commence après la spécification fonctionnelle et termine après l'intégration. De ces chiffres on peut déduire : la productivité = taille(DSI)/ E(HM) et déduire le nombre moyen de personnes sur le projet FSP (Full Time Equivalent Software Personnel) : FSP=E/TDEV. Conduite de projets informatiques 33 On peut ensuite calculer la distribution de l'effort par phases (%) – RPD (Requirements and Preliminary Design) : Conception globale et Plan d'intégration – DD (Detail Design) : Conception détaillée – CUT (Code and Unit Test) : Programmation et Tests unitaires – IT (Integration and Test) : Intégration et test d’integration Conduite de projets informatiques 34 ci dessous la distribution de l’effort par phases en pourcentage: Conduite de projets informatiques 35 ci dessous la distribution de temps par phases en pourcentage: Conduite de projets informatiques 36 EXEMPLE : Soit un projet estimé à 32 KDSI en mode organique, E = 2.4 * (32)1.05 = 91 HM TDEV = 2.5 * (91)0.38 = 14 Mois PRODUCTIVITE = taille(DSI)/ E = 32000 DSI/91 HM = 352 DSI/HM FSP = E/ TDEV= 91 HM / 14 MOIS = 6.5 FSP Conduite de projets informatiques 37 EXEMPLE : PHASE DE CONCEPTION : 0.16 * 91 = 14.5 HM PHASE DE CODAGE : 0.62 * 91 = 56.5 HM PHASE D'INTÉGRATION : 0.22 * 91 = 20 HM PHASE DE CONCEPTION : 0.19 * 14 = 2.6 Mois PHASE DE CODAGE : 0.55 * 14 = 7.7 Mois PHASE D'INTÉGRATION : 0.26 * 14 = 3.7 Mois En divisant on obtient le nombre de personnes nécessaires pour chaque phase. Conduite de projets informatiques 38 Modèle intermédiaire Le modèle intermédiaire introduit des facteurs de productivité représentants un avis subjectif du produit, du matériel, du personnel, et des attributs du projet. Chaque facteur prend une valeur qui peut varier selon son importance dans le projet. Les facteurs sont multipliés entre eux pour donner un facteur d'ajustement qui modifie l'estimation donnée par la formule de base. Conduite de projets informatiques 39 Conduite de projets informatiques 40 1. Attributs du produit : RELY (Fiabilité requise) : Le niveau de fiabilité attendu du logiciel. DATA (Taille de la base de données) : Quantité de données manipulées par le logiciel. CPLX (Complexité du produit) : Complexité des fonctions, des algorithmes et des interfaces du logiciel. Conduite de projets informatiques 41 2. Attributs de la plateforme : TIME (Contraintes de temps d'exécution) : Besoins en performances temporelles. STOR (Contraintes de stockage) : Besoins en termes de mémoire et de stockage. VIRT: Fréquence des change Conduite de projets informatiques 42 3. Attributs du personnel : ACAP (Capacités analytiques de l'équipe) : Niveau d'expertise en analyse des besoins et en résolution de problèmes. AEXP (Expérience en applications) : Familiarité avec le domaine d'application. VEXP (Expérience en plateforme) : Familiarité avec la plateforme matérielle et logicielle. LEXP (Expérience en langage et outils) : Expertise dans les langages de programmation et outils utilisés. Conduite de projets informatiques 43 4. Attributs du projet : MODP : Pratique des techniques modernes de programmation. TOOL (Utilisation des outils logiciels) : Qualité et adéquation des outils utilisés pour le développement. SCED (Contraintes de calendrier) : Degré de pression exercé pour respecter les délais. Conduite de projets informatiques 44 Conduite de projets informatiques 45 Ci-dessus les formules d’estimation d’effort et temps de développement modèle intermédiaire Conduite de projets informatiques 46 Procédure de Calcul de l'effort (HM) dans le modèle intermédiaire : se fait comme suit : Identifier le mode de développement (organique, médian, imbriqué). Estimer le nombre de lignes du code source ( KLOC ou KDSI), puis calculer l’effort ( homme*mois) par la formule appropriée. On obtient donc l’effort HM nominal de base. Estimer les facteurs de productivité et calculer le facteur d'ajustement (M) en multipliant les facteurs ensemble conformément au tableau. Conduite de projets informatiques 47 Procédure de Calcul de l'effort (HM) dans le modèle intermédiaire : Multiplier l'effort 'nominal' de base par le facteur d'ajustement : effort = effort nominal* M Calculer le temps de développement TDEV en utilisant la formule indiqué dans le tableau : (on notera que les coefficients restent inchangés par rapport au modèle de base) Dans le modèle intermédiaire, les coefficients multiplicateurs s'appliquent uniformément sur l'ensemble des phases. Conduite de projets informatiques 48 Modèle expert Le modèle expert inclut toutes les caractéristiques du modèle intermédiaire avec une estimation de l'impact de la conduite des coûts sur chaque étape du cycle de développement : définition initiale du produit, définition détaillée, codage, intégration. De plus, le projet est analysé en termes d'une hiérarchie : module, sous système et système. Il permet une véritable gestion de projet, utile pour de grands projets. Conduite de projets informatiques 49 Inconvénients Dépend de ligne de code. Cependant L’écriture de lignes de code représente une petite partie du développement le nombre de lignes ne peut être compté qu'a posteriori pour des langages différents un même logiciel se code avec un nombre de lignes différent Conduite de projets informatiques 50 Exercice Le tableau1 ci-dessous inclus les détailles des tailles du projet 1 en mode organique, et le projet 2 en mode médian, les coefficients des tailles (Taille min, Taille juste, Taille max) sont (1,4,1). En appliquant le modèle cocomo de base sur le projet1 et cocomo intermédiaire sur le projet2, calculez pour chaque projet : l’effort et temps de développement, FSP, la productivité et la distribution de l’effort par phases. Conduite de projets informatiques 51 Conduite de projets informatiques 52