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
|