Estimation COCOMO
Introduction:
Combien pèse un projet ?
- La charge ou effort est la quantité de travail nécessaire mesurée en moisxhommes (ou joursxhommes ou annéesxhommes) dans de telles unités .
- Il faut prendre en compte le fait qu’un mois correspond à 20 jours si les week-ends ne sont pas des périodes de travail .
- Connaissant la charge et le coût unitaire du moisxhomme.
→ On peut avoir une estimation du coût en ressources humaines d’un projet
- En se limitant au projets de type informatique, ou le coût d’un programmeur est estimé à environ 400 Dh HT par jour
- La durée ce calcul à partir de la charge lorsque l’on sait combien de personnes sont affectées au projet.
Exemple :
- Une charge de 6 moisxhommes
- Une durée de 6 mois si on ne dispose que d’une seule personne.
- 1 mois si on dispose de 6 personnes
- Toutefois ce mode de calcul est relativement théorique car toutes les personnes ne sont pas équivalentes ( et n’ont pas la même spécialité ) et les tâches sont en général interdépendantes.
- Il existe un certain nombre de méthodes.
- Il existe aussi des trucs (malheureusement plus courants qu’on ne le croit) qui sont des agissements ni scientifiques, ni honnêtes :
- La méthode de la dilatation consiste à ajuster le temps de développement d'un projet au temps disponible (“ Le travail se dilate jusqu'à remplir le temps disponible”)
- La méthode du marché consiste à ajuster la charge au prix proposé ( dans un appel d’offres par exemple)
- Plus sérieusement, les méthodes employées sont :
- La méthode Delphi.
- La méthode de la répartition proportionnelle.
- La méthode d'évaluation analytique
- La méthode COCOMO
- la méthode des points fonctionnels
COCOMO: Objectif :
COCOMO :(COnstructive COst Model)
- la méthode a été développée par Dr.Barry Boehm pour:
- Estimer l’effort
- Estimer le temps
de développement d’un produit logiciel.
- A l’origine elle a été construite à partir d’une analyse des données par régression pratiquée sur 63 projets logiciels (gestion et informatique industrielle ) comprenant de 2000 à 100.000 lignes de code dans l’entreprise TRW (USA).
- Aujourd’hui, COCOMO est un nouveau produit beaucoup plus adapté à l’aspect réutilisation des composants (modules existants ).
- Le modèle COCOMO 81 est en fait constitué de trois modèles :
1- le modèle de base
2- Le modèle intermediaire
3- Le modèle expert détaillé
- Objectif du COCOMO. Évaluer les critères de projet :
- Effort
- Durée
- Effectif
- Productivité
- Cette méthode, qui ne s’applique qu'à l'étape de réalisation, suppose l'existence d’une corrélation entre la taille (en instructions source ) d’un programme et la charge consommée .
Principe de COCOMO :
Les trois types de projet identifiés sont :
Type | Taille | Description |
Organique | < 50 KLOC | Projets simples ménès avec de petites équipes |
Médian (Semi-detached) | < 300 KLOC | Projets intermédiaires menés avec des équipes mixtes |
Imbriqué (Embedded) | > 300 KLOC | Projets complexes devant obéir à des ensembles de contraintes |
KLOC représente le nombre, en milliers, de lignes de code (LOC = Lines Of Code); en fait il s’agit du nombre d’instructions source .
Modèle de base :
Il faut identifier le mode de développement : organique, médian ou imbriqué.
Le résultat s’exprime par la formule suivante dans le modèle de base Cocomo81:
Effort = ax(KLOC)^b en homme mois
TDEV = 2.5 X (effort)^C en mois
Boehem a déterminé les valeurs a, b et c a à partir des résultats d’analyse statistique sur un échantillon significatif de projets.
Mode(Type) | a | b | c |
Organique | 2.4 | 1.05 | 0.38 |
Semi-detached | 3.0 | 1.12 | 0.35 |
Imbriqué | 3.6 | 1.20 | 0.32 |
Equations pour calculer l’effort de la productivité selon le type de projet:
Types de projet | Effort | Productivité |
Organique | MM=2,4*(KLOC)^1,05 | TDEV=2,5*(MM)^0,38 |
Semi-détaché | MM=3*(KLOC)^1,12 | TDEV=2,5*(MM)^0,35 |
Imbriqué | MM=3,6*(KLOC)^1,20 | TDEV=2,5*(MM)^0,32 |
Exemple1 :
Soit un projet estimé à 32000 lignes de code.
Effort ?
→Effort=Charge=2.4*(32)^1.05=91 hm
Temps de développement ?
→TDEV=Delais=2,5*(91)^0.38=14 mois
Productivité ?
→Productivité = Taille(en LOC)/Effort =32000/91 = 352 LOC/hm
Nombre Moyen de personnel?
→ Taille de l'equipe = Effort/Temps =91/14 = 7 personnes
Taille | Effort | Productivité | Moyen de personnel |
8 KLOC | |||
128 KLOC |
Modèle intermediaire :
Le modèle intermédiaire Cocomo81 est plus élaboré et prend en compte des facteurs d’ajustement intégrant les conditions de développement. L'équation donnant la charge est alors :
Effort=a*(EAF)x(KLOC)^b en homme mois
ou EAF (Effort Adjustment Factor), qui vaut 1 dans le modèle de base, est calculé à partir de 15 critères regroupés en 4 catégories : Produit, ordinateur, personnel et projet.
- Produit (Logiciel)
- Matériels(Ordinateur)
- Personnel
- Projet
Le tableau ci-après donne les valeurs affectées à chaque paramètre suivant son importance. EAF est le produit de toutes ces valeurs.
Par ailleurs, les valeurs de a,b et c sont données par le tableau ci-dessous :
Mode (Type) | a | b | c |
Organique | 3.2 | 1.05 | 0.38 |
Semi-detached | 3.0 | 1.12 | 0.35 |
Impriqué | 2.8 | 1.20 | 0.32 |
Exemple :
- RELY : fiabilité requise pour le logiciel
- Projet de 10 KLOC.
Effort?
→Effort=Charge=3.2*(10)^1.05=36 hm
Choix du facteur correcteur:
- Très faible fiabilité :Effort * 0.75 =27 hm
- Très forte fiabilité : Effort * 1.4 =50.4 hm
Etapes d’utilisation
Les étapes
- Identifier le mode du développement
- Estimer le nombre de LOC
- Calculer La charge (effort) en nombre de mois.hommes
- Estimer les 15 facteurs de productivité
- Calculer le facteur d’ajustement (EAF)
- Multiplier l’effort nominal par le facteur d’ajustement.
Méthode de répartition proportionnelle:
Cette méthode est basée sur l’observation d’une proportionnalité entre les charges de réalisation des diverses étapes du cycle de vie d’un projet.
Les ratios habituellement observés sont :
Etape | Ratio |
Etude préalable | 10% du projet |
Etude détaillé | 23% du projet |
Etude technique | 10% de la charge de réalisation |
Réalisation | 2 fois la charge de l'étude detaillée |
Mise en oeuvre | 35% de la charge de réalisation |
Les charges complémentaires:
Etape | Charge complementaire |
Encadrement réalisation | (20 % de la charge de réalisation) |
Encadrement autres étapes | (10 % de la charge totale des autres étapes) |
Recette | (20 % de la charge de réalisation ) |
Documentation utilisateur | (5% de la charge de réalisation) |
Référence : ISAE(Genie Logiciel: Fehmi Ben Rejab )