Il n’y a pas de « formules magiques » qui permettent d’estimer le coût de production du logiciel au sou. Cependant, il existe de nombreuses « bonnes pratiques » qui aident considérablement le gestionnaire de projet dans cette activité. Dans cet article, nous abordons le sujet.

Introduction

L’ un des aspects les plus sensibles et controversés de la gestion d’un projet de développement logiciel est l’estimation des coûts. Tout le monde veut savoir « combien cela coûtera » le Logiciel qui doit être développé : le client, le chef de projet et les responsables des entreprises concernées.

A lire également : Employer un jardinier pour réduire les impôts

Une estimation précise des coûts des projets logiciels peut apporter une variété d’avantages à la fois pour une entreprise de construction de logiciels et pour une organisation qui acquiert des logiciels [ATSCSSW].

La gestion de projet nécessite une valeur fiable, et non un chiffre exact, pour :

A lire aussi : Le crédit d'impôt pour le jardinage

  • taille du budget ;
  • conclure des contrats raisonnables (à la fois du point de vue du fournisseurtant du point de vue de l’acheteur) ;
  • prévoir des délais de développement raisonnables (tant du point de vue du fournisseur que du point de vue de l’acheteur) et, par conséquent, assumer le délai de mise sur le marché qui en découle ;
  • dimensionner adéquatement l’équipe de développement ;
  • influencer les choix des fournisseurs et, éventuellement, « faire ou acheter »

Estimer le calendrier (et les coûts) est tout sauf une activité banale. Généralement, une estimation des coûts est requise dès le début, lorsque l’information est rare et que les grandes lignes du projet ne sont pas encore bien définies.

Malheureusement, il n’y a pas de « formules magiques » pour estimer le coût du Logiciel, mais le corpus de connaissances dans ce domaine a considérablement augmenté et il existe de nombreuses bonnes pratiques qui aident le Chef de Projet dans cette tâche.

Dans cet article, nous allons parler des principaux aspects liés à l’estimation des coûts logiciels en illustrantcertaines techniques dans leurs lignes essentielles qui sont placées dans la vaste discipline connue sous le nom de Software Measurement, dont l’objet est la quantification des attributs dimensionnels et qualitatifs produits logiciels et activités liés à leur développement (processus).

Considérations préliminaires

Les estimations dans le monde de l’informatique sont difficiles à donner en raison du simple fait que le logiciel est un actif « incorporel », il n’est pas le résultat d’une activité de production classique et dépend aussi beaucoup du facteur humain (développeur, méthodologie utilisée et organisation de conception évidemment plus important que le IDE, langue ou système d’exploitation que vous utilisez).

L’ estimation représente un dimensionnement du temps nécessaire à la réalisation d’un certain développement logiciel. L’estimation, en tant que telle, est affectée par une marge d’erreur. Bien sûr, la certitude absolue dans l’évaluation des coûtsn’est possible que lorsque le projet est proche de sa conclusion ou est déjà terminé (final).

Généralement, si l’on trace l’évolution de l’erreur d’estimation en fonction du temps, on obtient une courbe du type « branche hyperbole » : dans un premier temps l’estimation est affectée par une marge d’erreur qui, à la suite de diminutions avec l’avancement du projet, avec l’acquisition d’informations et avec le suivi des travaux [INGSW].

Figure 1 : Tendance temporelle de l’erreur d’estimation [INGSW]

Il est donc bon de garder à l’esprit que les estimations initiales présentent un plus grand degré d’incertitude.

Citant Kent Beck et Kent Fowler : « Ne vous attendez pas à trop d’estimations précoces, mais attendez-vous à ce qu’elles s’améliorent. Le premier plan est la partie la plus difficile et la moins précise de la planification de la libération. Heureusement, vous n’avez à le faire qu’une fois. Plus nous prévoyons, moins nous serons précis ! » [KBMFPXP].

Figure 2- Prêt… Le feu… But… But… But… [KBMFPXP]

Souvent (malheureusement) des estimations sont demandées même s’il y a peu d’informations dans le plan ; dans ces situations, le risque de commettre des erreurs (même grossières) est élevé. Pour cette raison, l’estimation ne doit pas comporter un seul nombre, mais au moins deux : l’estimation et le degré d’incertitude de celle-ci.

L’ estimation n’est pas « feu & oublier », c’est-à-dire qu’elle n’est pas estimée qu’une seule fois et seulement [CE5PF]. L’estimation doit toujours être mise à jour et surveillée par des contrôles réguliers et définis (par exemple, pendant l’avancement des travaux hebdomadaires).

À la fin du projet, la différence entre l’estimation budgétisée et l’état final doit faire l’objet d’une évaluation qualitative et quantitative du rendement du projet (document final du projet et leçons apprises).

Figure 3 : Mise à jour de l’estimation longuele cycle de vie du projet

Ce faisant, l’expérience de conception (que le projet soit « bien » ou « mauvais ») sera cumulative et constituera un bagage d’information précieux pour les projets futurs.

Beaucoup et d’une nature différente sont les facteurs qui influencent l’effort requis pour exécuter un projet logiciel. [ATSCSSW]. Certains, communs à de nombreux environnements, sont ci-dessous

Taille du logiciel

Un tel facteur semble généralement accepté comme le principal et est utilisé par de nombreux modèles d’estimation.

Facteurs humains

La productivité dépend largement des capacités des ressources humaines employées et des préoccupations

  • Motivations. L’équipe est-elle motivée ? Le chef de projet est-il capable de le motiver ? Les conditions « environnementales » sont-elles favorables au projet ? Y a-t-il un « sentiment » dans l’équipe et avec le client ?
  • Formation et compétence. L’équipe est-elle bien préparée ? Des cours de formation et/ou une formation sont nécessairesdu mentorat ?
  • Cycle de développement logiciel. Le SDLC est-il défini ? Est-il consolidé ? Attendez-vous aux mesures Quotiy Software Assurance appropriées ?

Complexité des applications

Tous les autres facteurs étant égaux, différentes applications peuvent avoir des niveaux de difficulté différents.

Stabilité des exigences

C’ est sans aucun doute l’un des facteurs les plus critiques, en particulier pour les problèmes qui peuvent être causés par des changements dans les exigences d’un projet déjà lancé, surtout lorsque le projet est déjà en phase avancée.

Nouvelles technologies

L’ utilisation de nouvelles technologies, qui n’ont pas déjà été largement utilisées dans les projets précédents, peut ajouter un aspect de complexité.

Environnement de développement

L’ utilisation de certains environnements de développement a son importance dans les projets.

Environnement de travail

Il est facile de comprendre que cela a aussi son influence sur le projet. L’un desles approches les plus courantes sont basées sur le facteur d’expérience opérant par analogie avec des implémentations similaires (pratique totalement qualitative). Le même PMBOK, Project Management Body of Knowledge [PMBOK] fournit parmi les techniques d’estimation de la durée des tâches d’un projet le « jugement d’expert » (estimation basée sur l’expérience) et l’estimation pour analogie (« estimation analogue »), tandis que, en troisième lieu, il implique l’utilisation de modèles ( » simulation »).

Figure 4 : estimation des coûts du logiciel PMBOK

La mesure de toute entité doit être guidée autant que possible par des évaluations objectives et non subjectives ou, du moins, tenter de ramener à l’objectif ce qui, par sa nature objective, n’est pas : « Vous ne pouvez pas contrôler ce que vous ne pouvez pas mesurer ». En théorie, un critère quantitatif ou au moins un mélange entre les deux approches (comme nous le verrons plus loin) serait préférable. Il est essentiel de garder à l’esprit queL’estimation des coûts logiciels ne vise pas à « deviner » ou à « prédire » le nombre exact de jours-homme requis pour développer une application, mais à fournir une estimation.

Méthodes d’estimation des coûts

L’ image suivante résume les principales méthodes d’estimation des coûts.

Figure 5 – Principales techniques logicielles d’estimation des coûts [ISSCE]

Une distinction peut être faite entre deux familles de méthodes d’estimation : celles basées sur des modèles et celles qui ne le sont pas.

Méthodes basées sur des modèles

Les modèles d’estimation des coûts vous permettent de calculer le temps et les efforts à partir d’une estimation de la taille globale du logiciel à développer. L’effort qui est obtenu est en fonction de la « taille » du logiciel :

effort=f (taille)

Le point de départ pour calculer l’effort est la taille d’un projet. Il existe différents types de mesures pour mesurer lalogiciel. Mesures dimensionnelles : Définissez la taille du produit logiciel en fonction du nombre d’occurrences d’un objet donné : Line Of Code (LOC), nombre de programmes, structures de données.

Les mesures fonctionnelles définissent la taille d’un produit logiciel en fonction des fonctionnalités fournies à l’utilisateur. Ils sont basés sur des formules empiriques, établies sur une base statistique (Points de fonction, Points de cas d’utilisation, Points d’objet).

Les modèles les plus connus d’estimation des coûts logiciels sont :

  • COCOMO TRW (Boehm)
  • Fonctions IBM POINTS (Albrecht)
  • EMPIACS Computer Associates (Rubin)
  • PRIX RCA
  • SLIM QSM (Putnam)
  • Recherche sur la productivité des logiciels SPQR

Parmi eux COCOCOMO est l’un des plus établis. Le COCOMO 81 (Constructive Cost Model, développé par Barry Boehm depuis le début des années 1980) a été élaboré en supposant qu’une cascade de processoWaterfall serait utilisée(analyse, projet, développement et essais) et que tous les logiciels seraient développés à partir de zéro. Le modèle COCOMO est exprimé par de multiples formules qui fournissent l’effort et le temps nécessaires pour mener à bien les activités du projet jusqu’au test d’acceptation. Les coûts de planification et d’analyse des besoins sont calculés séparément. Ces formules ont été obtenues sur la base des coûts d’un certain nombre de projets réels dans certains secteurs d’application.

Dans le modèle de base, la seule variable indépendante considérée est la taille S en KLOC (KilloLines Of Code, « milliers de lignes de code ») de l’application, qui est utilisée pour calculer d’abord l’effort M en moiss-personne et le temps de développement T en mois et fournit également la répartition de l’effort et du temps entre différentes phases en fonction des pourcentages qui dépendent de la taille de l’application. En plus de cela, le modèle COCOMO permet également audimensionner l’équipe de développement pour chaque étape. Le nombre de membres de l’équipe de développement à n’importe quel stade est obtenu en divisant l’effort requis par la phase par le temps nécessaire à la réalisation de la phase.

Depuis sa formulation (COCOMO 81), il y a eu de nombreux changements dans l’ingénierie logicielle. COCOCOMO II est la mise à jour du modèle COCOMO 81 et est conçu pour s’adapter aux différentes nouvelles approches du développement logiciel [WP_COCOMO].

Une liste des outils d’estimation des coûts logiciels qui appliquent la méthode COCOMO se trouve sur le lien suivant

http://www.laatuk.com/tools/effort_estimation_tools.html

Figure 6 : outil d’estimation de l’effort COCOMO de Costar [COSTAR]

Méthodes paramétriques

La méthode paramétrique consiste à introduire des caractéristiques de conception dans un modèle mathématique pour l’estimation des coûts à l’aide d’une série defacteurs avec leurs poids. Le coût total provient de la somme de tous les facteurs pour le poids relatif.

Points de fonction et points de cas d’utilisation

L’ analyse des points de fonction (FPA) et les points de cas d’utilisation sont des mesures standard pour mesurer les applications logicielles vues du point de vue de l’utilisateur.

Le modèle de point de fonction introduit par Albrecht est devenu par la suite une norme internationale pour la mesure fonctionnelle reconnue par l’ISO (Organisation internationale de normalisation) qui permet de dimensionner la partie fonctionnelle du logiciel, c’est-à-dire de prendre en compte les caractéristiques qu’il contient à partir du point de vue de l’utilisateur final. et indépendamment des considérations de type techniques comme les langages, la plate-forme, l’architecture, etc.

Le but de la méthode est alors de quantifier uniquement les fonctionnalités que le programme offre à l’utilisateur. Cette technique est basée sur deux exigences de base :doit être indépendant de la technologie et doit mesurer toutes les fonctions fournies à l’utilisateur uniquement.

Voici la procédure de comptage des points de fonction et de leurs composants (voir [FPJP] pour plus de détails)

Figure 7 : analyse des points de fonction [FPJP]

Les points de cas d’utilisation (Gustav Karner en 1993) sont une modification des points de fonction et basent leur fonctionnement sur le cas d’utilisation de l’utilisateur.

Estimation du coût du point de cas d’utilisation

Cette technique d’estimation est basée sur le concept de point de cas d’utilisation (UCP) dont la valeur mesure l’ « amplitude » (ou le poids) de l’application.

Le nombre de PUC est directement proportionnel aux paramètres suivants :

  • Nombre et complexité des cas d’utilisation du système
  • Nombre et complexité des acteurs impliqués dans le système
  • Exigences non fonctionnelles (telles que la portabilité, la performance, la maintenabilité ;…)
  • Facteurs liés à l’environnement dans lequel le projet est développé (p. ex. : technologies, outils de développement, motivation de l’équipe, méodologie du développement,…)

L’ équation pour déterminer le PUC se compose de 5 variables :

  • Poids du cas d’utilisation non ajusté – UUCW
  • Poids non ajusté de l’acteur – UAW
  • Facteur de complexité technique (TCF)
  • Facteur d’environnement – EF
  • Facteur « correctif » (FC)

Chaque variable est définie et calculée séparément ; l’équation complète est :

UCP = UUUCP * TCF * ECF * FC (où UUUCP = UUCW UAW)

Poids total des cas d’utilisation (UUCW)

Le « poids » de chaque cas d’utilisation est proportionnel à sa complexité exprimée en termes de transactions, c’est-à-dire par le nombre d’étapes nécessaires pour atteindre son objectif, c’est-à-dire l’ « Utilisateur »Objectif » « [CBWEUC].

Figure 8 – Exemple de nombre de transactions de cas d’utilisation [MCEWUCP]

En commençant par l’analyse des étapes du cas d’utilisation (avec toutes les difficultés attachées et comptage dues à la bonté et au bon niveau de détail de description [EOOSPWUC]), vous pouvez classer un cas d’utilisation dans trois catégories de complexité différente (simple, moyenne et complexe) et obtenir son « poids ».

En additionnant tous les poids des cas d’utilisation individuels du système, on obtient la valeur de la variable « Poids non ajusté des cas d’utilisation » (UUUCW), c’est-à-dire le poids total « non adéquat » des cas d’utilisation.

Figure 9 – Exemple de l’UUCW [TEISDP]

Poids total des acteurs (UAW)

Comme dans les cas d’utilisation, il est possible de classer le type d’Acteurs en simple, moyen et complexe.

  • Simple : Interactions bassesavec des protocoles connus (ex. : interaction avec SGBD, services Web,…)
  • Moyenne : Interactions de bas niveau avec des protocoles non standard ou peu connus
  • Complexe : Interface utilisateur (complexité de réalisation et sujet à révision fréquente)

Le terme « acteur » désigne tout « sujet » qui interagit de manière externe avec le système (p. ex. : un opérateur, un autre programme/service, un système matériel,…). Chaque type d’Acteur a un certain poids en fonction de la complexité qu’il apporte au système pour lui permettre d’interfacer. Par exemple : un opérateur peut interagir avec le système via une interface « spartan » de ligne de commande tandis qu’un autre peut nécessiter une interface graphique complexe (interface graphique ou Web) ; le poids qui doit être attribué (en termes de complexité de conception et de développement) à différents types d’opérateurs doit être différent.

Figure 10 – Exemple de UAW [TEISDP]

Le calcul de la somme des produits de tous les poids des types individuels pour le nombre d’acteurs relatifs donne la valeur de la variable « Poids non ajusté des acteurs » (UAW), c’est-à-dire le poids total « non adéquat » des acteurs.

UUUCP = UAW UUUCW

Calcul du facteur de complexité technique (TCF)

L’ étape suivante consiste à calculer la complexité technique du système en décrétant les pondérations appropriées pour chaque facteur. Les valeurs à attribuer doivent être comprises entre 0 (non pertinentes) et 5 (importantes).

Figure 11 – Exemple de TCF [TEISDP]

La somme des 13 pondérations pour leur valeur attribuée est nommée TFactor. Le facteur de complexité technologique est calculé par la formule suivante :

TCF = 0,6 (0,01 * TotalFactor)

où 0,6 et 0,01 sont les valeurs attribuées aux constantes C1 et C2.

Calculdu facteur environnement (FE)

À l’instar des facteurs technologiques, le facteur de l’environnement doit maintenant être évalué, en tenant compte, par exemple, des éléments suivants :

Figure 12 – Exemple d’EF [TEISDP]

Encore une fois, les valeurs à attribuer doivent être comprises entre 0 (sans influence) et 5 (déterminant). La somme des 8 pondérations pour leur valeur attribuée est appelée eFactor. La formule de calcul de l’EF est la suivante :

EF = C1 (C2 * Efactor)

où C1 et C2 sont deux constantes valant respectivement 1,4 et -0,03.

Calculé ensuite les facteurs liés au poids des cas d’utilisation, le poids des acteurs en jeu, les facteurs TCF et EF vous pouvez calculer les points de cas d’utilisation (UCP). Les facteurs UUUCP, TCF et EF calculés précédemment doivent être multipliés entre eux.

UCP = UUUCP * TCF * AF

UUUCP = UAW UUUCW

Le résultat obtenu doit être multiplié par un facteur « correctif » (FC) qui permet la conversion des points de cas d’utilisation en heures-homme. Karner a déterminé que ce facteur devrait être de 20 heures-homme pour chaque cas d’utilisation.

Estimation finale UCP = UCP * 20

Plus tard, Schneider et Winters ont proposé qu’un tel facteur multiplicatif puisse varier en fonction de la complexité des facteurs environnementaux (Efactor). [AUCAPC]

Plus précisément, le facteur correctif devrait être de 28 (donc 40 % de plus que la valeur initiale 20) dans le cas où il y aurait simultanément trois facteurs de risque environnementaux. [EOOSPWUC].

Par exemple, l’image suivante montre deux cas d’estimation. Dans le premier cas (fig. 13A), le facteur correctif est de 20 parce qu’il n’y a que deux facteurs environnementaux critiques (E4 et E6). Dans le second cas (fig. 13B), étant les facteurscritiques jusqu’à quatre (E2, E4, E5 et E6) le facteur correctif est de 28. Notez que l’estimation passe de 37 7055 gu (jours-homme) à 57 6356 gu.

Figure 13 – Exemples de seuils Schneider et Winters

Le modèle UCP peut être facilement réalisé à l’aide d’une feuille de calcul Excel, bien qu’aujourd’hui il commence à être disponible dans des outils tels que Sparx Enterprise Architect

http://www.sparxsystems.com.au/resources/ucmetrics.html

Figure 14 : panneau d’estimation de Sparx Enterprise Architect UCP

Méthodes non basées sur des modèles

De telles méthodes n’impliquent pas la construction de modèles, mais la production directe d’une estimation.

Prix à gagner

Comme son nom l’indique, la méthode des prix à gagner est utilisée pour adjuger un appel d’offres ou un marché sur une base purement économique. Que ce soit d’une part, il peut effectivement être utile de gagner un, peut entraîner de nombreux problèmes de processus (par exemple des difficultés à respecter les durés/coûts établis) et le produit final peut être fortement affecté (par exemple, une qualité inférieure) avec des dommages possibles à l’image et la survie de l’organisation de développement à long terme (le client réel est celui qui vous recherche au moins pour la deuxième fois). Le prix à gagner entraîne systématiquement des problèmes majeurs de gestion de projet et ces risques doivent être pesés et gérés (Gestion des risques) avant de livrer l’offre. Pour mémoire, il est bon de mentionner la soi-disant « estimation de Parkinson » dans laquelle vous supposez qu’un projet logiciel consomme tout simplement tout le budget à sa disposition ( ! ?). Bien sûr, cette évaluation suit exclusivement des raisons commerciales et n’a en fait aucune dignité méthodologique : l’évaluation prévient complètement l’application, l’environnement et l’équipe.

Jugement d’expert

Il est effectuéconsultation d’un ou de plusieurs experts (si possible, au moins deux, pour procéder à une vérification croisée) afin d’obtenir une estimation de l’effort de type subjectif. L’effort peut être de bas en haut ou de haut en bas, en fonction d’une répartition par composant ou par tâche. Une estimation de l’effort d’intégration des composantes ou des activités peut également être faite afin d’obtenir un total aussi précis que possible.

Estimation par analogie

L’ estimation par analogie consiste en la réutilisation de l’expérience accumulée et dûment documentée (diagrammes de Gantt précédents, leçons apprises, PID, document de fin de projet,…) pour fournir des prédictions quant à la mesure à laquelle elle devra être réalisée. L’idée principale est d’identifier les projets déjà achevés qui sont particulièrement semblables à un nouveau projet. En fait, les normes de productivité pour WBS sur lesquelles il existe un ensemble important d’expériences.

Cette méthodologie n’est applicable que si vous disposez d’un processus de gestion des projets approprié et si vous avez un référentiel de projets à utiliser. Dans les structures complexes, c’est la tâche typique d’un BP qui contrôle la clôture des projets, leur utilisation et leur historicisation.

Estimation du temps basée sur la programmation

Cette règle de base consiste à donner un modèle générique qui rapporte les pourcentages pour chaque phase prédite par le cycle de développement du logiciel. En fait, il s’agit d’une « règle empirique », une règle empirique, qui permet une estimation facile et immédiate (autant qu’un résumé) des coûts sans nécessiter de calculs et de raisonnements particuliers. Par exemple, la règle proposée prévoit que l’analyse de cube 10% du temps de travail total, Conception et collecte de données d’essai 20%, développement 35%, test 25%, documentation et livraison 5%, avec un 5% de frais généraux.

Figure 15 – Temps basé sur la programmationestimation (règles de base) [TEISDP]

Considérations

D’ après ce qui a été décrit ici, il est facile de supposer qu’il n’y a pas de vérité absolue ou de méthode qui fonctionne tout le temps et de toute façon. L’important est d’utiliser une méthode d’estimation des coûts de manière sérieuse et pragmatique tout en veillant à effectuer le « calibrage » approprié de manière itérative et continue. Par exemple, je rapporte mes expériences liées aux activités et aux projets qui m’impliquent. Dans la mesure du possible, j’utilise un mélange des différentes approches vues précédemment. J’estime d’abord sur la base de l’expérience (« par expérience »), puis je compare cette estimation à une estimation obtenue par analogie (« par analogie »). L’estimation que j’obtiens en comparant ces deux je la soumets à un « contrôle » qualitatif avec la règle empirique « Estimation du temps basée sur la programmation ». S’il est vrai que cette règle grossière est « faible » à utiliser seule, il est également vrai que cela peut être un bon contrôlepour vérifier l’estimation appliquée jusqu’à présent. Enfin, j’applique le point de cas d’utilisation. « Croisement » les uns avec les autres les estimations obtenues, je déduis l’estimation à présenter au client en décidant du facteur d’incertitude. Cette dernière est faible si les estimations calculées « convergent » vers le même ordre de grandeur.

Figure 16 – Exemple d’une méthode « mixte » possible d’estimation des coûts

Un exemple pratique

Dans une application multicanal, on m’a demandé d’estimer pour faire évoluer un service pour gérer un nouveau canal. Ce service est chargé de récupérer une liste d’opérations à partir d’un SGBD et de filtrer ces données avec des logiques spécifiques pour le canal considéré. Par expérience, mon « homme droit » a déclaré une estimation de 32 gu (jours-homme) résultant de ces entrées :

  • 3 gu d’analyse
  • 5 gu par Design
  • 3 gu pour accéder au SGBD
  • 3 gu pour la logique de filtre de service
  • 5 gu pour leComposant WebPart
  • 7 gu pour les tests
  • 1 gu pour les procédures SQA (code d’audit, code Covergae et rapports de test)
  • 2 gu pour la documentation de publication
  • 2 gu pour la livraison
  • 1 gu pour le test d’intégration

tous en supposant une conception basée sur le développement précédent et en tenant compte des lignes directrices architecturales du projet.

Figure 17 – Le service de l’exemple proposé

« Par analogie », en trouvant les informations relatives au contexte des développements antérieurs des autres canaux, j’ai à ma disposition une estimation de 37 gu (obtenue à partir de la moyenne des rapports obtenus pour le développement des trois canaux précédents : 44 gu de la première chaîne, 30 gu de la seconde et 37 du troisième canal). En comparant les deux estimations entre elles (32 gu et 37 gu), nous avons qu’elles sont du même ordre de grandeur. Je prends comme candidat estimation la moyenne entre les deux approximant pour excès pour la commodité des calculs : 35 gu. Nous appliquonsmaintenant la règle empirique Estimation du temps basée sur la programmation en tenant compte du fait que le développement considéré a lieu à travers un cycle de développement itératif axé sur la pratique agile TDD [MOKA-METH] et à partir de la prédiction de 3 gu pour analyse.

Figure 18 – « règles de base » pour l’estimation du temps de l’exemple proposé

Nous obtenons 28,5 gu ce qui confirme indicativement l’ordre de grandeur précédent de trente jours. Je confirme donc l’estimation du candidat de 35 gu pour le moment.

J’ effectue comme dernière étape dans notre processus d’estimation des coûts le calcul en utilisant UCP. En classant les points de cas d’utilisation, je prédis deux acteurs de faible complexité (l’interface Web via HTTP et l’accès au SGBD en utilisant Hibernate) et un cas d’utilisation de complexité moyenne.

Figure 19 – PUC de l’exemple proposé

Le résultat que j’obtiens est : 30.356 gu.

Allons tirer les sommes. L’activité ressemble àêtre de l’ordre de grandeur de trente jours. En comparant les 35 gu jusqu’à présent calculés (par expérience, par analogie et par programmation) avec l’estimation UCP de 30,35 gu Je choisis la moyenne entre les deux comme valeur d’estimation, en l’approchant par excès : 33 gu. La fiabilité de l’estimation est bonne parce que les différentes valeurs des estimations obtenues sont indicatives du même ordre de grandeur ; je suppose donc une valeur d’incertitude de seulement 10 %. Si les estimations individuelles se révélaient très différentes entre elles, je supposerais un facteur d’incertitude plus élevé (20 % ou 30 %). Dans le cas d’un facteur d’incertitude supérieur à 30%, il semble nécessaire d’approfondir le contexte du projet pour pouvoir diminuer le facteur d’incertitude et donner une estimation plus fiable.

Figure 20 – Estimation de l’exemple proposé

Conclusions

Le thème de l’estimation des coûts logiciels est d’une grande importance économique, à la fois pourà la fois pour les acheteurs de logiciels et conduit souvent et détermine les décisions d’affaires importantes. Comme nous l’avons vu, il n’est pas possible de définir des règles précises valables dans tous les scénarios et, en général, l’estimation des coûts est une pratique ardue et délicate sur laquelle il est bon de mûrir des expériences et des réflexions. L’estimation des coûts n’est pas une activité qui doit être effectuée « ponctuellement », mais doit être vérifiée et examinée périodiquement. Ce n’est qu’à travers un processus rigoureux basé sur l’amélioration continue (historicisation du projet Gantts, analyse des rapports finaux, leçons apprises,…) que votre approche de l’estimation des coûts logiciels peut être efficace.

Références

[ KBMFPXP] K. Beck – M. Fowler, « Planning Extreme Programming », Addison Wesley, 2000

[ PMBOK] « Guide to the Project Management Body of Knowledge (PMBOK) », édition 2000, Project Management Institute, ISBN 1-880410-23-0 http://www.pmi.org/

[EOOSPWUC] K. Ribu (Université d’Oslo-Département d’informatique), « Estimating Object-Oriented Software Projects with Use Cases » http://heim.ifi.uio.no/~kribu/oppgave.pdf

[ MCEWUCP] M. Cohn, « Estimating With Use Case Points » http://www.methodsandtools.com/archive/archive.php?id=25 http://www.methodsandtools.com/PDF/mt200503.pdf

[ TEISDP] Thomas Fihlman, « Estimation du temps dans les projets de développement de logiciels » http://www.callista.se/ITPartner/timeart.htm

[ AUCAPG] G. Schneider – Jason P. Winters, « Appliquer des cas d’utilisation : Guide pratique »

[ GKREFOP] Gustav Karner, « Estimation des ressources pour les projets objectoires » http://www.bfpug.com.br/Artigos/UCP/Karner Resource Estimation for Objectory Projects.doc

[ AJALBRECHT] A.J. Albrecht, « Mesurer la productivité du développement d’applications », Proc. d’IBM

[ RCPEUCP] Roy Clem, « Estimation de projet avec utilisationPoints de cas » http://www.codeproject.com/gen/design/usecasep.asp

[ ISSCE] Ian Sommerville, « Software Engineering 7″, « Chapitre 26 : Software Cost Estimation » http://www.comp.lancs.ac.uk/computing/resources/IanS/SE7/SampleChapters/index.html

[ AC-UCG] A.R. Cockburn, « Writing Effective Use Cases », Addison-Wesley, 2001 http://alistair.cockburn.us/index.php/Structuring_use_cases_with_goals

[ AUCPG] G.Schneider – J. P. Winters, « Application de cas d’utilisation. Un guide pratique »

[ PMRDA] R.D. Archibald, « Gestion de projet. Gestion de projets et programmes complexes », Franco Angeli, 2006

[ WPCOCOMO] http://en.wikipedia.org/wiki/COCOMO

[ INGSW] A. Binato – A. Fuggetta – L.Sfardini, « Ingénierie logicielle. Créativité et méthode », Pearson/Addison Wesley, 2006

[ WP_FPA] http://en.wikipedia.org/wiki/Function_point_analysis

[COCOMONASA] http://cost.jsc.nasa.gov/COCOMO.html

[ COSTAR] http://www.softstarsystems.com/

[ FPJP] M.Lelli, « Logiciel de mesure avec des points de fonction » http://www.javaportal.it/rw/39650/editorial.html

[ CE5PF] F. Rabini, « Estimation des coûts logiciels. 5 pièces faciles » http://www.cs.uniroma2.it/upload/2006/ASS/Software Cost Estimation.pdf

[ ATSCSSW] S. Morasca, « Analysis of Software Development Cost Estimating Techniques » http://www.cnipa.gov.it/site/_files/Morasca-convegno FP.pdf

[ MOKA-METH] Articles de la section Méthodologie édité par Stefano Rossini 1. « Offshore. Partie I : Agile Methodologies & Offshore Projects », MokaByte 108, juin 2006 2. « Offshore. Partie II : Meilleures pratiques pour la gestion des projets extracôtiers (1) », MokaByte 109, juillet/août 2006 3. « Offshore. Partie III : Meilleures pratiques pour lagestion des projets extracôtiers (2) », MokaByte 110, septembre 2006 4. « Offshore. Partie IV : Meilleures pratiques pour la gestion des projets extracôtiers (3) », MokaByte 111, octobre 2006 5. « Pratiques de développement de logiciels. I Partie : TDD : Test Driven Development », MokaByte 86, juin 2004 6. « Pratiques de développement de logiciels. Partie II : Intégration continue : Théorie », MokaByte 87, juillet/août 2004 7. « Pratiques de développement de logiciels. Partie III : Intégration continue : Pratique », MokaByte 88, septembre 2004 8. « Pratiques de développement de logiciels. IV partie : Refactoring », Mokabyte 89, octobre 2004 9. « Pratiques de développement de logiciels. Partie V : Spike Solution », MokaByte 93, février 2005 10. « Pratiques de développement de logiciels. Partie VI : QSA par code couverture », MokaByte 99, septembre 2005 11. « SDLC : Processus et méthodologies de développement. Partie I : Introduction aux méthodologies de développement », MokaByte 83, mars 200412. « SDLC : Processus et méthodologies de développement. Deuxième partie : Agile Methodologies », MokaByte 85, mai 2004 13. « Assurance logicielle de qualité. Partie I : QSA by Code Auditing », MokaByte 90, novembre 2004 14. « Assurance logicielle de qualité. Deuxième partie : les essais », MokaByte 91, décembre 2004 15. « Java Application Profiling », MokaByte 90, novembre 2004

ARTICLES LIÉS

Abonnez-vous à notre newsletter

Abonnez-vous à notre newsletter

Rejoignez notre liste de diffusion pour recevoir les dernières nouvelles et mises à jour de notre équipe.

You have Successfully Subscribed!