_____________ II. Estimation des projets logiciels Frédéric FICHOT _____________ FIIFO 4ème année Frédéric FICHOT
Les principes de BOEHM 1981 : Software Engineering Economics Historique constitué de plusieurs milliers de projets La productivité évolue assez lentement en logiciel et essentiellement grâce aux langages Le nombre de lignes de code à écrire est la variable la mieux évaluée par les développeurs Analyse de données La taille du code à écrire est corrélée à la charge et à la durée du projet
Les étapes de la méthode COCOMO/NATO Estimer le nombre de lignes de code à écrire et les caractéristiques du projet et de l’équipe Calculer la charge du développement d’un projet de cette catégorie pour un niveau de confiance choisi Calculer la durée du développement pour ce niveau de confiance Répartir les charges et les durées sur les phases du cycle de vie en déduire les effectifs optimaux par phase Calculer la probabilité de tenir les objectifs assignés
Estimer le nombre de lignes (I.1) Fonctions C.P. Ing. 1 Ing. 2 Opt +P Pess Opt +P Pess Opt +P Pess A 2.500 3.000 5.000 2.000 2.750 4.000 3.000 3.500 4.500 B 1.000 1.250 3.000 750 1.250 2.500 1.000 1.500 2.500 C 3.500 5.000 8.500 2.500 3.500 7.500 3.000 4.000 9.000 D 2.250 2.750 3.500 2.000 2.500 3.000 2.500 2.750 3.000 E 5.000 6.000 8.000 6.000 6.500 8.000 4.500 5.500 7.500 F 7.000 7.500 9.000 5.500 6.500 8.500 7.000 8.000 9.500 Estimation contradictoire aveugle puis croisement des résultats
Approche stochastique : les 3 points (I.2) Détermination de 3 estimations : Optimiste -1 %d'être inférieur Plus probable (ou nominal) (au sens de l'estimateur) Pessimiste -1 % d'être supérieur Loi considérée comme la plus proche de l'estimation humaine (MOREL, 1975 Théorie des aléas) biais O i E p Loi Béta de PEARSON : E = (o + 4 i + p) / 6 La résultante de plus de 6 évènements indépendants suivant une loi Béta suit une loi de GAUSS
Calculer la charge et la durée (II &III) 3 categories de projet : Organique : batch, calcul (-3 %) Médian : tous les autres (79 %) Imbriqué : embarqué, système (18 %) Forme des équations HM = A (KCSI) TDEV = C (HM) HM : Homme Mois KCSI : Milliers d'instruc- tions source prévues TDEV : Durée du projet en Mois B D CATEGORIES A B C D Organique 2,4 1,05 2,5 0,38 Médian 3 1,12 2,5 0,35 Imbriqué 3,6 1,2 2,5 0,32 HM est hors charge de spécification et hors charge de validation
Affiner la charge (II.1) OPTIMISTE MOYENNE 50 % 50 % O E P Loi Normale HM = N*A*KCSI**B MOYENNE HM = N*A*KCSI**B 50 % 50 % O E P PESSIMISTE HM = F*N*A*KCSI**B Loi Normale N : facteur correctif national (France = 1,1) F : composante principale utilisée à un écart moyen à la moyenne, une seule composante utilisée à la fois et seulement sur l’hypothèse pessimiste
Affiner la charge (II.2) F = 1 + (V-1)/3 Facteur multiplicatif de la variance empirique F = 1 + (V-1)/3
Calcul de la charge pour un niveau de confiance donné (V) Moins d’une chance/2 de tenir le pronostic (<50 %) 80 % E P Budget Budget = E + [(P – E) / 3] x t Approximation de l’écart moyen à la moyenne 1/3 de l’étendue [EP] (écart empirique de STUDENT) où t est la valeur tabulée pour une Intégrale de la loi de GAUSS = 0,8
Répartition de la charge (IV.1) Petits Interméd. Moyens Grands Très grand Distribution des charges en 2KCSI 8 KCSI 32 KCSI 128 KCSI 512 KCSI Organique Spécifications fonctionnelles 6 - Conception globale 16 Conception dét. codage, TU 68 65 62 59 Intégration 19 22 25 Médian 7 17 64 61 58 55 52 28 31 Imbriqué 8 18 60 57 54 51 48 34 Phase de spécification
Répartition de la durée (IV.2) Petits Interméd. Moyens Grands Très grand Distribution des délais en % 2KCSI 8 KCSI 32 KCSI 128 KCSI 512 KCSI Organique Spécifications fonctionnelle 10 11 12 13 - Conception globale 19 Conception dét. codage, TU 63 59 55 51 Intégration 18 22 26 30 Médian 16 20 24 25 27 28 56 52 48 44 40 23 29 32 Imbriqué 34 36 Phase de spécification
Répartition optimale de l’effort dans le temps (IV.3) Loi de Rayleigh dite de l’effort optimal Pente : niveau technologique charge instantanée Effort nécessaire non satisfait Etreinte fatale Glissement Perte de rendement Spé C.P. Réalisation Intégration temps Chômage technique Amélioration de L.PUTNAM au modèle de BOEHM
Histogramme des charges (IV.4) Effort / effectifs Réalisation des composants Phase d’intégration Phase de Conception Préliminaire Phase de Spécification durée Charge Effectif = Durée
Fonction de répartition de la Loi de Laplace-Gauss Probabilité pour une valeur inférieure à t
Exercice Fonctions VOUS Ing. 1 Ing. 2 On vous demande de préparer un devis d'engagement complet pour un projet de développement d'un logiciel de type imbriqué qui sera réalisé en France. Ce logiciel sera programmé en ADA et le niveau de fiabilité de cette application est extrêmement élevé. Vous disposez des données suivantes sur le logiciel : Evaluation de la taille en nombre de lignes des fonctions assurées par le logiciel,. Votre devis d'engagement doit contenir, pour un niveau de confiance de 2/3, les informations suivantes : Durée et charge totale du projet, Vous représenterez graphiquement la répartition de la charge et des effectifs au cours du projet. Fonctions VOUS Ing. 1 Ing. 2 OPT +PROB PESS OPT +PROB PESS OPT +PROB PESS F1 6.500 7.000 10.000 5.900 6.750 8.000 5.500 6.500 9.500 F2 5.500 7.500 9.000 5.750 6.250 8.500 6.000 7.500 9.500 F3 4.500 6.000 8.500 3.500 5.000 7.500 4.000 5.000 8.000
MAINTENANCE CORRECTIVE COCOMO _____________ II. Estimation des projets logiciels MAINTENANCE CORRECTIVE COCOMO Domaine d'application : Correction de défauts Amélioration de certaines portions peu maintenables Développement de modules d'interfaces Aménagement des dialogues homme-machine Opérations ne remettant pas en cause les caractéristiques du produit Modification et effort restent limités _____________ FIIFO 4ème année
EFFORT DE MAINTENANCE CORRECTIVE _____________ II. Estimation des projets logiciels EFFORT DE MAINTENANCE CORRECTIVE Charge brute annuelle de maintenance : Taux annuel de modification * charge brute de développement (HM) Le taux annuel de modification (TAM) est déterminé par le rapport : Le TAM peut aussi être affiné en fonction : Du nombre de sites Du niveau de qualité requis La charge brute (HM) peut aussi être affinée par l’utilisation des facteurs correctifs (peuvent être différents de ceux utilisés lors du développement initial). nombre d'instructions modifiées nombre total d'instructions _____________ FIIFO 4ème année effort An 1 An 2 … temps
MAINTENANCE EVOLUTIVE _____________ II. Estimation des projets logiciels MAINTENANCE EVOLUTIVE Domaine d'application : Ajout de nouvelles fonctionnalités Modification de fonctionnalités existantes Modification profonde de la structure du logiciel Ajout d'importants modules d'interface Opération lourde Modification profonde du logiciel Evaluer CM, PM, IM CM : pourcentage de conception modifiée PM : pourcentage de code modifié IM : pourcentage d'intégration modifiée Calculer le facteur d'adaptation FA = 0,4 CM + 0,3 PM + 0,3 IM Calculer la taille équivalente KCSIE = FA / 100 * KCSI Utiliser la démarche d'estimation à partir de la taille équivalente pour estimer la charge et le délai nécessaires _____________ FIIFO 4ème année