“You can not plan if you can not measure
AND
IF YOU FAIL TO PLAN YOU HAVE PLANNED TO FAIL.”
Introduction & Motivation
- Une large proportion des développements de systèmes informatiques :
– Dépasse les budgets, ou
– Est délivrée après le temps défini ou pas délivré du tout, ou
– N’est pas délivrée avec les fonctionnalités spécifiées.
- Afin de planifier, il est nécessaire de disposer d’estimations fiables de l’effort à fournir (“Estimation Exacte” étant une impossibilité par nature).
Peut-on utiliser les modèles de cas d’utilisation pour réaliser et/ou améliorer ces estimations ?
Approche pour l’amélioration de l’estimation
Bonne pratique pour l’estimation :
-
NE JAMAIS UTILISER UNE SEULE MÉTHODE
- Combiner l’estimation de différents experts et les stratégies d’estimation.
- Faire des estimations “top-down” et “bottom-up” de manière indépendante.
- Justifier et critiquer les estimations.
Afin d’améliorer les estimations réalisées par des experts, l’utilisation de méthodes est relevante.
- Un use case model définit la « portée fonctionnelle » du système à développer.
-
La « portée fonctionnelle » est la base de l’estimation top-down
- Les paramètres de l’estimation peuvent dérivés d’un use case model.
- Suivant un processus de développement dirigé par des use cases, un use case de haut niveau est disponible au commencement, tandis qu’un use case détaillé est disponible au début de la phase d’élaboration.
- Plusieurs compagnies utilisent l’approche “use case model” dans l’estimation de leur processus.
-
Comment peut-on utiliser de la meilleure façon un use case model dans l’estimation de l’effort pour le développement logiciel ?
La méthode d’estimation des Use Case Points
La technique des “Use Case Points” a été développée sur base de celle des «Function Points» en 1993 par Gustav Karner lorsqu’il travaillait chez Objectory AB et ce sous la supervision d’Ivar Jacobson.
Cette technique de “use case points” est en fait une évolution des «Function Points» mieux adaptée pour des projets orientés objets dans le cadre desquels les fonctionnalités du système sont exprimées en «use cases». Cette méthode est implémentée en utilisant un tableau Excel.
Quelques résultats de cas d’étude
Company |
Project |
Use Case Estimate (in hours) |
Expert Estimate |
Actual Effort |
Deviation use case est. |
Deviation exp. est. |
Mogul |
A |
2550 |
2730 |
3670 |
-31% |
-26% |
Mogul |
B |
2730 |
2340 |
2860 |
-5% |
-18% |
Mogul |
C |
2080 |
2100 |
2740 |
-24% |
-23% |
CGE&Y |
A |
10831 |
7000 |
10043 |
+8% |
-30% |
CGE&Y |
B |
14965 |
12600 |
12000 |
+25% |
+5% |
IBM |
A |
4086 |
2772* |
3360 |
+22% |
-18% |
Constatation :
La méthode des use case points produit des estimations proches de l”effort actuel dans les différents projets.
Cela signifie que la méthode des use case points peut « supporter/renforcer » une expertise lorsqu’un use case model existe pour le projet.
Pré-requis pour appliquer la méthode des UCP
-
Existence de Use Cases (pas évident au début d’un projet)
-
Le use case model doit être correct:
-
-
Il doit inclure les exigences (requirements) fonctionnelles de tous les groupes d’utilisateurs.
-
-
-
La difficulté principale étant l’accès à des experts liés à chaque domaine, motivés et expérimentés.
-
-
Niveau de détail approprié:
-
-
Le use case model doit être décrit à un niveau approprié de détail. La principale difficulté étant d’obtenir des use cases équilibrés et éviter des expansions ”infinies”. Les solutions possibles sont l’utilisations de ”Guidelines”, de bons exemples de use case models.
-
Si nous supposons que les exigences sont définies comme un ensemble de cas d’utilisation, alors on peut utiliser la méthode UCP (Use Case Points) comme base pour l’estimation de l’Effort/Coût
-
-
Étapes dans une estimation « Use Case Points »
- Des Use Case on va retirer les Unadjusted Use Case Points .
Les “Unadjusted Use Case Points” sont les points dérivés directement de la complexité des use cases et du nombre et type d’acteurs impliqués.
- Des UUC Points on va déterminer les Adjusted Use Case Points en multipliant les UUC Points par des facteurs de complexité.
- Enfin associant un nombre d’heures pour chaque AUCP, on pourra obtenir une estimation en Jours Homme.
Couverture des “Use Case Points”
Les “Use Case Points” peuvent être utilisés pour estimer la charge de travail nécessaire à la réalisation du design détaillé, de l’implémentation, et des tests unitaires et d’intégration, pour un système dont les besoins sont exprimés en use cases.
Schématiquement la couverture des “Use Case Points” est la suivante:
-
Inclus Non inclus Gestion du projet Analyse Design détaillé Implémentation Tests unitaires Tests d’intégration Autres tests, tels que les tests de réception;
Roll out du système;
Documentation, autre que la documentation du design et de l’implémentation;
Garantie
Pour les éléments non inclus, les activités sont estimées à l’aide d’experts ayant mené des projets d’envergure similaire.
Calcul du budget approximatif
Le nombre de jours homme sera multiplié par le jour standard (en EUR par jour) afin d’obtenir un budget approximatif.
Détermination de la durée du projet
Le rapport Charge – Délai dépend de divers facteurs.
1. Qui dit augmentation de la taille dit augmentation besoins coordination et augmentation risques incohérence
2. Durée en mois > Nombre maximum de personnes dans l’équipe
3. Pour les petits projets entre 3 MH et 30 MH (Mois/Homme), nous avons :
- Durée minimum conseillée = 3,0. ³√Mandays = durée en jours
- Durée minimum conseillée = 2,50. ³√M/H= durée en année
4. La répartition de charge est progressive : intégration progressive de personnel, dissymétrie début/fin
Ces éléments sortent de la méthode des use case points.
On peut cependant donner la répartition de l’effort suivante:
La méthode des UCP ne traitant que du design, de l’implémentation et des tests, on peut arriver à un total global à l’aide d’une règle de 3.