Estimation du coût de développement UML à partir du cahier des charges Philippe Larvet Frédérique Vallée Estimation des projets logiciels - CNAM/CMSL page n 1
Plan de la présentation ❶ Introduction ❷ Choix de la caractéristique de coût ❸ Choix des caractéristiques de projets ❹ Données disponibles ❺ Modélisations ❻ Conclusion et perspectives Estimation des projets logiciels - CNAM/CMSL - page n 2
1 - Introduction! Maîtriser les coûts de développement! Le plus en amont possible et pour cela :! S'appuyer sur une bonne estimation initiale du coût de développement total Estimation des projets logiciels - CNAM/CMSL - page n 3
Démarche employée Démarche en 4 étapes :! Définition de la caractéristique de coût à évaluer variable à expliquer! Définition des caractéristiques de projet potentiellement utiles et connues en amont variables explicatives! Collecte des données! Analyse des données et construction d'un modèle de coût Estimation des projets logiciels - CNAM/CMSL - page n 4
2 - Choix de la caractéristique de coût! Caractéristique de coût visée = coût de développement total spécification + conception + codage + documentation + management! Ramenée à l'évaluation du coût de codage par la formule : coût de développement = coût de codage / 17% Estimation des projets logiciels - CNAM/CMSL - page n 5
Justification de la formule Distribution du ratio coût de codage sur coût total pour l'échantillon de modélisation : 8 6 4 2 0 14 15 16 17 18 19 20 Estimation des projets logiciels - CNAM/CMSL - page n 6
3 - Choix des caractéristiques de projets! Objectif principal : pouvoir évaluer le nombre de classes métiers à concevoir! Métriques textuelles candidates : nombre total de mots, nombre de mots conservés nombre de classes candidates automatiquement calculées (directement par l'analyseur linguistique) nombre de classes candidates revues manuellement (après relecture de l'évaluation automatique) nombre de «vraies classes» (déterminé manuellement) Estimation des projets logiciels - CNAM/CMSL - page n 7
3 - Choix des caractéristiques de projets! Objectif secondaire : voir l'impact d'autres caractéristiques du projet! Métriques projet candidates : nombre de fonctions à développer nombre d'exigences à couvrir nombre de use cases de 1er niveau taux de réutilisation langage de développement méthode de développement Estimation des projets logiciels - CNAM/CMSL - page n 8
4 - Données disponibles : métriques textuelles Document Nbre total de mots Nbre de mots conservés (sans doublon) Candidats classes (auto) Candidats classes(revu manuellement) "Vraies" classes Projet 1 Société A 380 77 33 27 Projet 2 Société A 903 163 98 43 Projet 3 Société A 3179 323 151 67 Projet 4 Société A 2440 547 236 102 Projet 5 Société A 2448 406 243 103 Projet 6 Société A 4434 537 371 223 80 Projet 7 Société A 4075 646 385 92 Projet 8 Société A 3839 701 400 192 Projet 9 Société A 13528 707 443 262 82 Projet 10 Société A 6311 753 527 318 120 Projet 11 Société A 16201 1542 1072 467 233 Projet 12 Société A 49246 2981 2135 720 300 Estimation des projets logiciels - CNAM/CMSL - page n 9
Autres métriques de projet (1/2) Nom du projet Nb de fonctions à développer Nb d'exigences à couvrir Nb de Use Cases de 1er niveau Taux de reuse Langage de dévt Méthode de dévt Nb de classes métier Charge de codage (j/h) Projet 1 Société B 25 72 52 15% C/C++ en V 125 212 Projet 2 Société B 37 145 75 25% C/C++ en V 240 420 Projet 3 Société B 75 280 90 40% C++ en Y 700 1240 Projet 4 Société B 18 60 27 12% C++ en Y 121 245 Projet 5 Société B 20 47 32 20% Java itératif 67 97 Projet 6 Société B 38 75 82 12% C++ en V 325 712 Projet 7 Société B 15 67 55 15% C/C++ en Y 215 380 Projet 8 Société B 140 760 225 10% C/C++ en V 1850 3400 Projet 9 Société B 70 420 420 25% C/C++ en V 435 720 Projet 10 Société B 45 92 67 40% C++ en Y 90 150 Projet 11 Société B 150 625 280 8% C++ en Y 560 1025 Projet 12 Société B 70 320 120 10% C++ itératif 440 780 Projet 1 Société C 65 27 5% C/C++ en V 65 121 Projet 2 Société C 75 32 10% C++ en Y 70 125 Projet 3 Société C 125 50 10% C++ en V 280 465 Projet 4 Société C 25 12 15% Java itératif 27 42 Projet 5 Société C 20 80 32 20% Java itératif 65 72 Projet 6 Société C 360 450 7% C/C++ en V 850 1680 Projet 7 Société C 250 70 135 12% C/C++ en Y 620 980 Projet 8 Société C 190 285 5% C++ itératif 780 1750 Projet 9 Société C 20 20 15% Java itératif 42 65 Estimation des projets logiciels - CNAM/CMSL - page n 10
Autres métriques de projet (2/2) Nom du projet Charge totale du projet (j/h) Charge de spécification (j/h) Charge de concep tion (j/h) Charge de documentation (j/h) Charge de codage (j/h) Ratio codage sur coût total Projet 1 Société B 1250 570 162 296 212 17% Projet 2 Société B 2410 1025 350 598 420 17% Projet 3 Société B 6900 2850 1055 1735 1240 18% Projet 4 Société B 1670 808 214 395 245 15% Projet 5 Société B 500 205 75 120 97 19% Projet 6 Société B 4760 2422 522 1090 712 15% Projet 7 Société B 2220 998 285 545 380 17% Projet 8 Société B 19100 7450 3080 5020 3400 18% Projet 9 Société B 4090 1735 592 1015 720 18% Projet 10 Société B 870 395 112 206 150 17% Projet 11 Société B 6310 2648 970 1646 1025 16% Projet 12 Société B 4560 1975 690 1100 780 17% Projet 1 Société C 720 328 114 150 121 17% Projet 2 Société C 745 327 108 180 125 17% Projet 3 Société C 2700 1060 438 724 465 17% Projet 4 Société C 266 120 36 67 42 16% Projet 5 Société C 445 202 62 107 72 16% Projet 6 Société C 9150 4118 1260 2017 1680 18% Projet 7 Société C 4865 2115 620 1135 980 20% Projet 8 Société C 10680 4670 1362 2820 1750 16% Projet 9 Société C 348 140 52 89 65 19% Projet 13 Société A 7020 3025 1135 1760 1070 15% Estimation des projets logiciels - CNAM/CMSL - page n 11
5 - Modélisations! 1er temps : modélisation du nombre de classes métier à partir des métriques Régression linéaire et logarithmique textuelles Nombre de classes réelles 350 300 250 200 150 100 50 0 0 500 1000 1500 2000 2500 Nombre de classes candidates (auto) Vraies classes Classes linéaires estim ées Classes log estimées Nombre de classes métier = 3,42 * Nombre de classes candidates 0,584 Estimation des projets logiciels - CNAM/CMSL - page n 12
Modélisations (suite)! 2ème temps : modélisation du coût de codage à partir du nombre de classes métier Régression linéaire Classes/Coût Charge de codage 4000 3500 3000 2500 2000 1500 1000 500 0 0 500 1000 1500 2000 Nombre de classes métier Valeur réelle Résultat de calcul Coût de codage (en h.j) = 1,88 * Nombre de classes métier + 2,02 Estimation des projets logiciels - CNAM/CMSL - page n 13
Modélisations (fin)! Qualités des modélisations : erreur moyenne sur 1ère formule (calcul du nombre de classes métiers) : 18,9% erreur moyenne sur 2ème formule (calcul du coût de codage) : 15,7% erreur moyenne sur 3ème formule (calcul du coût total) : 0,9% Estimation des projets logiciels - CNAM/CMSL - page n 14
6 - Conclusion et perspectives! Les premiers résultats sont encourageants! Les 2 modèles par régression doivent être affinés à l'aide : de nouvelles métriques, d'un échantillon plus important, d'autres techniques de modélisation statistiques,! de manière à diminuer l'erreur globale. Attention : Les modèles ont été construits à partir d'un retour d'expérience et sont SPECIFIQUES de ce retour d'expérience. Estimation des projets logiciels - CNAM/CMSL - page n 15