Quelle Mesure Logicielle choisir ?

IFPUG (International Function Point User Group) et COSMIC (Common Software Measurement International Consortium) sont deux méthodes normées ISO permettant de mesurer la taille fonctionnelle des logiciels avant même leur développement. Il s’agit des deux méthodes à Points de Fonction les plus utilisées actuellement dans le secteur de l’ingénierie logicielle.Même si ces deux méthodes permettent de […]

Vous aimez cet article, partagez le !

IFPUG (International Function Point User Group) et COSMIC (Common Software Measurement International Consortium) sont deux méthodes normées ISO permettant de mesurer la taille fonctionnelle des logiciels avant même leur développement. Il s’agit des deux méthodes à Points de Fonction les plus utilisées actuellement dans le secteur de l’ingénierie logicielle.
Même si ces deux méthodes permettent de mesurer la taille fonctionnelle d’un logiciel, elles se distinguent sur certains points. Elles ne conviennent donc pas forcément à tous les types de projets de développement ou de maintenance logicielle.
Mesurer une application logicielle, c’est savoir quelle est la méthode de mesure la plus adaptée.
Cet article identifie les similitudes et les différences conceptuelles entre les deux méthodes IFPUG et COSMIC FP pour vous aider à faire le meilleur choix.

 

Une description brève des deux méthodes 

De manière générale, les méthodes de mesure en Points de Fonction consistent à identifier les processus fonctionnels ou élémentaires à partir des Exigences Fonctionnelles de l’Utilisateur et à répertorier les Composants Fonctionnels de Base (BFC) qui les composent. Ces BFC différent d’une méthode à une autre.

La méthode IFPUG repose sur cinq types de BFC pour mesurer une application logicielle. Les deux premiers composants ILF (Fichier Logique interne) et EIF (Fichier d’Interface externe) mesurent les données qui sont soit maintenues soit référencées par l’application au cours des processus métier. Les trois autres composants EI (External Input), EO (External Output) et EQ (External Inquiry) mesurent les processus élémentaires qui apportent les données à l’application logicielle ou envoient les informations depuis l’application logicielle.

Tous les composants sont évalués et une complexité leur est assignée. La complexité peut varier de 3 à 15 Points de Fonction. Le total de tous les composants est additionné pour produire la taille fonctionnelle de l’application logicielle. Par conséquent, pour tout composant fonctionnel donné, le nombre maximal de Points de Fonction IFPUG pouvant être attribué est de 15.

La méthode COSMIC repose sur quatre types de BFC pour mesurer une application logicielle. Ces composants sont les mouvements de données de type: Entrée, Sortie, Lecture, éCriture. Les données logiques doivent être identifiées, mais ne sont pas valorisées en tant que telles.

Chaque mouvement de données est alors considéré comme une unité de taille fonctionnelle appelée CFSU (Cosmic Functional Size Unit). La taille totale du projet est égale à la somme de tous les mouvements de données de tous les processus fonctionnels du logiciel.

Cette philosophie peut conduire à des décomptes plus élevés que ceux typiques de la méthode IFPUG. La plage de Points de Fonction pour chaque processus peut varier de 2 à l’infini. Par conséquent, pour tout processus fonctionnel donné, le nombre maximal de Points de Fonction IFPUG pouvant être attribués est l’infini.

Similarités entres IFPUG et COSMIC :

Les méthodes IFPUG et COSMIC partagent les caractéristiques suivantes :

  • Elles sont des normes ISO
  • Elles sont développées et affinées par des experts internationaux
  • Leurs données projets sont collectées par le référentiel ISBSG
  • Elles ne mesurent pas explicitement les algorithmes, les transformations de données, les calculs, etc.

 

Différences entre IFPUG et COSMIC 

CritèreIFPUGCOSMIC
ApplicabilitéApplications business telles que MIS*Applications business, systèmes embarqués, temps réel
Méthodes pour traiter les logiciels multicouchesNon explicite dans le manuelContient des règles pour compter les architectures multicouches
Niveau de détail requis dans les spécifications fonctionnellesNiveau permettant de connaitre les données manipuléesNiveau de détail requis dans les spécifications fonctionnelles
Règles de comptageDifférentes règles de détermination de complexité pour chaque type de processusMême règle pour tous les processus
Comptage accès multiple aux groupes de donnéesNon, compte l’accès à un groupe de données une seule fois par processusOui, prend en compte les Lectures et éCritures multiples dans un seul processus
Unité de mesure1 PF n’est pas défini1 PFC existe et est bien défini
Taille maximum d’un processus7 PF pour les transactions et 15 PF pour les donnéesInfini (avionique = 100 PFC)
Mesure de la réutilisationLimitée. Ne mesure la réutilisation d’un composant que s’il constitue un processus élémentaire entier.Oui
Difficulté et rapidité d’apprentissageComplexeSimple et rapide
ManuelÀ acheter sur le site de l’IFPUG (546 pages)À télécharger gratuitement depuis le site web COSMIC (115 pages)

* Pour le cas de projets de types systèmes intégré ou temps réel, plusieurs études ont montré que la méthode COSMIC est plus adaptée que la méthode IFPUG. Une des raisons qui expliquent cela : les processus longs de ces types de projets (où les fonctions sont souvent des « routines de service ») pour lesquels l’IFPUG ne peut assigner plus de 7PF et donc souffre du problème appelé « effet de coupure » ou « “cut-off” effect ».

 

IFPUG ou COSMIC, Que choisir ?

Chacune des deux méthodes a ses avantages et ses inconvénients. Néanmoins, il est possible de faire choisir la plus adaptée en fonction du contexte de projet, des besoins de l’utilisateur et des contraintes de l’environnement.

Le tableau si dessous synthétise nos préconisations :

Critère ou besoinIFPUG ou COSMIC
Systèmes intégré ou temps réelCOSMIC
Besoin de données de benchmarkingIFPUG
Besoin de mesure de réutilisationCOSMIC
Temps d’apprentissage/formationCOSMIC

 

Gérer les mesures IFPUG et COSMIC FP dans la même application

De nos jours, une application logicielle est souvent composée de nombreux modules, chacun avec ses propres caractéristiques, ses propres langages de programmation, etc.

Dans certains cas, une métrique peut sembler plus appropriée pour mesurer un morceau de logiciel en particulier.

Il est donc important de noter qu’il est possible, dans le processus de mesure d’un même logiciel, d’appliquer différentes métriques chacune pour un morceau du logiciel.

Évidemment, ce qu’il ne faut pas faire, c’est ajouter une mesure à une autre. Un point de fonction IFPUG n’équivaut pas un point de fonction COSMIC !

Dans l’objectif de permettre l’obtention d’une mesure globale du logiciel mélangeant les deux métriques IFPUG et COSMIC, certaines études ont été déterminé des facteurs de conversion de COSMIC en IFPUG ou inversement. Par exemple, pour Desharnais: 1CFP = 1,0 * IFPUG –3; et pour van Heringeen: 1CFP = 1,22 * IFPUG – 64. Ces facteurs dépendent des bases de données à partir desquelles ont été dérivés. Il est donc difficile de s’y fier surtout qu’il est difficile de savoir si la base de données utilisée couvre et représente bien le logiciel objet de mesure.

En tout cas, Nous préconisons d’étudier les deux mesures séparément, chacune ayant ses propres caractéristiques. Ceci signifie naturellement qu’il y aura des indicateurs différents pour chacune des deux mesure (c.à.d diffèrents indicateurs de productivité, de défauts, etc.).

Recevoir de nos nouvelles

Si vous souhaitez être informé de la parution des nouveaux articles ou des prochains webinaires, laissez nous votre adresse.

Vous voulez booster vos projets logiciels ?

Discutons-en !

Vous souhaitez savoir comment nous aidons les entreprises à mieux maîtriser les projets logiciels ?