Point de fonction
Un point de fonction (ou Function Point en anglais) est une unité de mesure utilisée pour évaluer la taille fonctionnelle d'un logiciel ou d'un système d'information en fonction des fonctionnalités qu'il fournit à l'utilisateur. Cette méthode est largement utilisée dans l'industrie du logiciel pour estimer l'effort de développement, la complexité, et le coût d'un projet logiciel, indépendamment de la technologie, du langage de programmation ou de la méthodologie utilisée.
Les principes du point de fonction
Le concept de points de fonction a été introduit dans les années 1970 par Allan Albrecht d'IBM. Contrairement aux mesures basées sur des lignes de code (LOC), les points de fonction mesurent ce que le système fait du point de vue de l'utilisateur, c'est-à-dire la quantité de fonctionnalités livrées, plutôt que la taille du code produit.
Composantes du point de fonction
Le calcul des points de fonction repose sur plusieurs types d'éléments fonctionnels répartis en deux catégories :
1. Fonctions de données :
- Les fichiers internes (Internal Logical Files - ILF) : Bases de données ou groupes d'informations logiques gérés par le système.
- Les fichiers externes (External Interface Files - EIF) : Informations logiques gérées par des systèmes externes mais consultées par le système évalué.
2. Fonctions transactionnelles :
- Les entrées externes (External Inputs - EI) : Informations ou commandes provenant de l'utilisateur ou d'autres systèmes qui modifient les fichiers internes.
- Les sorties externes (External Outputs - EO) : Données fournies à l'utilisateur ou à d'autres systèmes, y compris les rapports et les écrans.
- Les requêtes externes (External Inquiries - EQ) : Requêtes des utilisateurs qui interrogent le système pour obtenir des informations sans modification des fichiers internes.
Calcul des points de fonction
Pour chaque type d'élément fonctionnel, un poids est attribué en fonction de sa complexité (faible, moyenne, élevée). La somme des poids est ensuite ajustée à l'aide d'une série de facteurs de complexité prenant en compte différents aspects du système (comme la performance, la réutilisabilité, l'interaction avec d'autres systèmes,...).
Le calcul global se déroule ainsi :
- Compter les fonctions du logiciel (entrées, sorties, fichiers,...).
- Attribuer des poids selon la complexité.
- Ajuster la somme en fonction des facteurs de complexité (comme la sécurité, la performance,...).
Utilité des points de fonction :
- Estimation des coûts : Ils aident à estimer les coûts et les délais de développement en fonction de la taille fonctionnelle du projet.
- Suivi de la productivité : En mesurant le nombre de points de fonction produits par heure, il est possible de suivre la productivité des équipes de développement.
- Comparaison de projets : Ils permettent de comparer des projets entre eux, même s'ils sont développés dans différents langages ou environnements technologiques.
- Évaluation de la maintenance : En comptant les points de fonction modifiés lors d'une mise à jour, il est possible de mesurer l'effort de maintenance.