1. Objectifs
Les objectifs de cette partie sont de présenter la méthode de
comptage suivant la méthode des points de fonction. Les différentes
définitions des composants ou termes utilisés par cette méthode sont
issus des recommandations et des règles de l’IFPUG.
La méthode présentée dans cette partie s’arrête à un comptage du
nombre brut de points de fonction tel qu’il est pratiqué et
recommandé à la SNCF. Cette partie peut faire office de référence
pour toute personne voulant se renseigner sur cette méthode.
2. Méthode des points de fonction.
Recommandations selon l’IFPUG (International Function Points User
Group)
Historique
En 1979, Alan Albrecht propose une première version de sa
méthode. Cette parution n’a pas été sans réactions. C’était en effet
la première fois que l’on proposait une mesure de la production de
logicielle basée sur les fonctions utilisateurs. Elle doit aider à
prévoir la taille d’un projet, son effort de développement et la
productivité du développement informatique.
Albrecht a ainsi développé une métrique indépendante de la
technique de développement qui n’a pas les inconvénients du comptage
du nombre de lignes de code.
Cette méthode à l’origine était fondée sur quatre entités
(entrée, sortie, interrogation, fichiers) sans catégorie de
complexité avec un intervalle d’ajustement de +/- 25%. Depuis 1984,
les comptages se font a partir des entités entrées, sorties,
interrogations, données externes et internes, avec pour chacune de
ces entités un niveau de complexité simple, moyen ou élevé.
En 1986, a été fondé l’IFPUG (International Function Points User
Group) pour assurer la plus grande diffusion de cette méthode tout
en garantissant son adéquation aux besoins des utilisateurs et sa
normalisation. La méthode de comptage en points de fonction est
décrite en détail dans le " Counting Practices
Manual ".
De même en France, la FFUP (French Function Point User’s Group)
créée en 1992 a la même vocation.
Le point de fonction est maintenant normalisé par l’AFNOR, sous
la référence normative expérimentale XP Z 67-160.
Albrecht émet l’hypothèse qu’il existe une relation entre le
nombre de points de fonction et la charge de développement. Le
passage du nombre de points de fonction à la charge peut se faire
par multiplication par un ratio dépendant du type de projet, par
régression linéaire, régression exponentielle…
3. Définition du contexte
3.1. Frontières de l’application
Utiliser la cartographie applicative pour identifier les limites
de l’application à mesurer.
Ces limites définissent :
>un ensemble de fonctions du métier identifiables et comprises
par l’utilisateur
>des frontières stables, correspondant à la façon dont
l’application est maintenue
>elles mettent en évidence les échanges de données entre
l’intérieur et l’extérieur de l’application
>elles définissent la base des autres mesures (efforts, coût,
défauts…)
La notion d’application pour la mesure en points de
fonction.
D’une entreprise a l’autre la notion d’application traduit
parfois des notions très différentes. Ceci peut avoir des
conséquences sensibles sur la façon de déterminer les frontières ou
les limites des applications à mesurer.
Comment définir la notion d’application pour une mesure en points
de fonction :
>Une application correspond au plus petit ensemble de
fonctionnalités formant un tout cohérent pour l’utilisateur
>C’est un ensemble cohérent dans une entreprise considérée,
compte tenu de son métier et de l’organisation de ses utilisateurs
>Le périmètre de l’application définit le plus petit ensemble
de fonctionnalités qui doivent être conjointement gérées pour
répondre aux besoins des utilisateurs
>Aucune considération technologique, ou considération liée a
l’organisation des équipes de maintenance, n’est déterminante pour
fixer les frontières de l’application.
Il est normal que le périmètre d’une application varie d’une
entreprise à l’autre en fonction de son organisation et de sa façon
de répondre aux besoins fonctionnels de ses utilisateurs. La taille
d’une application doit rester équilibrée. Il est normal que les
applications soient interfacées entre elles.
3.2. Identification de
l’utilisateur
Les points de fonction mesurent ce que l’utilisateur a demandé et
reçu. Il faut identifier l’utilisateur.
L’identification de l’utilisateur est dépendante des objectifs de
la mesure et modifie le périmètre de la mesure. Par
exemple :
>pour la mesure d’un progiciel, seules les fonctionnalités
utilisées par l’utilisateur doivent être considérées
>lors de la mesure d’un développement, toutes les
fonctionnalités livrées dans le cadre du projet sont prises en
compte
Les règles de l’IFPUG font référence à la notion de vue
utilisateur, on parle aussi de utilisateur expérimenté.
3.3. Règles et procédures des
frontières du comptage
La frontière est déterminée sur la base du point de vue
utilisateur. L’important est de se concentrer sur ce que
l’utilisateur peut comprendre et décrire.
La frontière entre des applications qui sont liées ne doit pas
être basée sur des considérations technologiques mais sur la
séparation des fonctions de gestion telles qu’elles sont vues par
l’utilisateur.
4. Définition des différents composants
utilisés par la méthode des points de fonction
4.1. Définitions des GDE et GDI
Le terme identifiable par l’utilisateur dans les définitions des
GDE et des GDI désigne un ensemble de données liées à un niveau tel
qu’un utilisateur expérimenté puisse identifier ces données comme
répondant à un besoin d’utilisateur de l’application
La notion de vue utilisateur correspond a une vision
fonctionnelle des processus élémentaires et données ou ensemble de
données susceptibles.
La participation aux mesures en points de fonction d’utilisateurs
expérimentés peut aider à prendre du recul par rapport aux
contraintes techniques auxquelles peut se confronter un
informaticien. Mais l’opinion d’un utilisateur n’est déterminante
que si elle est justifiée par une meilleure perception du
fonctionnel.
4.2. Groupe logique de données
internes [ GDI ]
Définition :
Groupe de données liées logiquement, ou de paramètres de contrôle
identifiables par l’utilisateur, mis à jour et utilisés à
l’intérieur de la frontière de l’application.
Les groupes de données maintenus par plusieurs applications sont
comptés dans chacune des applications où ils apparaissent , avec
dans chacune les attributs qui leur sont propres.
Pour le comptage on peut partir d’un modèle de données
(considérer les entités, les relations porteuses de données ou
n-aires), d’une liste de fichiers physiques, d’une liste de segments
tables dans un SGBD. Chacun de ces objets peut être candidat à être
un GDI, il faut considérer la vue utilisateur et ne pas présumer
qu’un fichier physique égale un fichier logique.
4.3. Groupe de données externes [
GDE ]
Définition :
Groupe de données liées logiquement, ou de paramètre de contrôle,
identifiables par l’utilisateur, utilisés par l’application, mis à
jour par une autre application.
4.4. Les entrées
Définitions :
Données ou paramètres de contrôle qui
>entrent dans l’application
>maintiennent un ou plusieurs GDI
>initialisent ou contrôlent un traitement
>font l’objet d’un traitement unique
Remarque
Le support peut être un écran, une disquette, une bande, un
fichier disque…
Un écran peut conduire à plusieurs Entrées et inversement une
entrée peut conduire à plusieurs écrans.
Si on peut lancer le même traitement par plusieurs moyens (par
exemple commande " A ", " Add " ou
" Ajout "…), il s’agit toujours d’une même Entrée.
4.5. Les sorties
Définition
Données ou paramètres de contrôle qui
>sortent de l’application
>sont le résultat d’un traitement unique autre qu’un simple
traitement d’extraction de données
Remarques :
Le support peut être du papier, un écran, une disquette, une
bande, un fichier disque…
Regarder les sorties au niveau logique (vue utilisateur) et pas
au niveau physique ; une sortie physique peut en effet
correspondre à plusieurs Sorties et inversement, plusieurs sorties
physiques peuvent correspondre à une seule Sortie.
Si on peut lancer un traitement par plusieurs moyens (par exemple
commande " E " ou " Editer ", touche de
fonction), il s’agit toujours d’une même Sortie.
4.6. Les interrogations
Définition
Combinaison Entrée-Sortie qui :
>ne fait pas de mise à jour de GDI
>ne résulte pas d’un traitement autre que des extractions de
données
>ne contient pas de données dérivées (calculées en sortie)
4.7. Résumé
Les différents types de composants de la méthode sont illustrés
par le schéma ci-dessous :
 Figure 1 : Composants de la méthode des points de
fonction
5. Définition des complexités
de chaque composant
5.1. Les niveaux de complexité
Pour chaque composant (données ou traitements), on détermine le
niveau de complexité :
>faible >moyen >élevé
Pour chaque composant, le niveau de complexité se détermine de la
même façon. Pour chaque composant, on utilise une matrice dont les
entrées lui sont propres mais qui reposent sur un comptage simple.
Pour chaque Groupe logique de Données Internes et chaque
Groupe logique de Données Externes, on utilise : >le
nombre de Sous-ensemble Logique de Données >le nombre de
Données Elémentaires
Pour chaque Entrée et chaque Sortie, on
utilise : >le nombre de Groupes logiques de Données
Référencés >le nombre de Données Elémentaire
Pour
chaque Interrogation, on évalue : >la complexité de la
partie Entrée >la complexité de la partie Sortie puis on
garde le maximum de ces deux évaluations comme niveau de complexité
de l’Interrogation.
5.2. Complexité des groupes
logiques de données (GDI et GDE)
Le niveau de complexité est déterminé par le nombre de
Sous-ensemble Logique de Données (SLD) et de Données Elémentaires du
groupe logique de données.
Les SLD sont des sous groupements de GDI (GDE) fondés sur la vue
logique de l’utilisateur des données. Les DE sont des zones non
récurrentes que l’utilisateur peut reconnaître et qui figurent dans
le GDI (GDE).
Un SLD est un sous-groupe de données non manipulé indépendamment.
Si plusieurs entités ne sont manipulées qu’ensemble, elles comptent
pour un seul groupe logique de données, ce groupe étant composés de
plusieurs SLD.
Une DE est un attribut au sens de MERISE. Les zones qui
apparaissent plusieurs fois dans un même GDI pour des raisons
techniques, ne sont comptées qu’une seule fois.
Tableau 1 : Matrice niveau de complexité GDE/GDI
5.3. Complexité d’une
entrée ou partie entrée d’une interrogation
Le niveau de complexité d’une Entrée est déterminé par le nombre
de Groupe de Données Référencées (GDR) et de DE de l’Entrée ou de la
partie Entrée de l’Interrogation
Nombre de GDR :
>le Groupe logique de Données Internes mis à jour par
l’Entrée
>le Groupe logique de Données Internes consultés par
l’Entrée
>le Groupe logique de Données Externes consultés par
l’Entrée
Seules les DE mis à jour par l’Entrée sont
comptabilisées.
Tableau 2 : Matrice niveau de complexité d’une Entrée ou
partie Entrée d'une Interrogation
5.4. Complexité d’une
sortie ou partie sortie d’une interrogation
Le niveau de complexité d’une Sortie est déterminé par le nombre
de Groupe de Données Référencées (GDR) et de DE de la Sortie ou de
la partie Sortie de l’Interrogation
Nombre de GDR :
>le Groupe logique de Données Internes consulté par la
Sortie
>le Groupe logique de Données Externes consulté par la
Sortie
Le nombre de DE est celui de DE utilisées par la Sortie.
Tableau 3 : Matrice niveau de complexité d’une Sortie ou
partie Sortie d’une Interrogation
6. Calcul des points de
fonction
Comptage des points de fonction bruts.
Le calcul se fait en sommant pour chaque type de composant, les
composants ayant même niveau de complexité. Chaque nombre est
ensuite multiplié par le poids correspondant. On réalise ensuite les
sous-totaux et le total général des points de fonction
bruts.
Tableau 4 : Grille de complexité
7. Résumé du comptage en nombre
brut de points de fonction
On peut résumer les différentes étape d’un comptage par le schéma
ci dessous :
 Figure 2
: Etape de comptage en points de fonction
|