IFPUG
| IFPUG | FP | RET | DET | FTR | EO | EI | EQ | ILF | EIF | UAF | VAF | GSC | Tableaux |
Table des matières
Qu'est ce que IFPUG
IFPUG signifie International Function Point User Group et consiste en une méthode de calcul de point de fonction régit par des règles permettant de mieux quantifié des projets et applications. http://www.ifpug.org/
L'analyse par point de fonction à été développé par Allan J. Albrecht au milieu des années 1970. C'était une tentative de surpasser les difficultés associées à l'utilisation du nombre de ligne de code dans l'évaluation de la taille des logiciels, d'assister dans le développement et de prédire les efforts liés au développement.
Productivité
Avant 1979, il n'y avait pas de définition de "biens et services" pour un projet logiciel. Depuis, A.L. Albrecht d'IBM à publié un papier à propos des points de fonction où il définit les "biens et services" d'un logiciel comme étant les fonctionnalités d'affaires offertes.
La définition de productivité est le ratio d'entrant/sortant sur une période donnée considérant la qualité.
Productivité = sortants/entrants (sur une période de temps, considérant la qualité)
Pourquoi utiliser IFPUG?
Gains
- Communication avec les groupes d'usagers d'affaires
- Peut réduire le sur-temps
- Inventorier les transactions et fichiers de l'application/projet
- Permet de connaître la dimension d'une application/projet
- Différentes personnes peuvent calculer les points de fonction d'une application et arriver à un nombre semblable (marge d'erreur)
- Permet d'établir un coût unitaire aux applications/projets offrant un moyen subjectif de comparaison
Utilisation
- Défini quand et quoi effectuer une reconfiguration des processus
- Évaluer les cas de tests
- Comprendre les éventails de productivités
- Comprendre la dérive des objectifs
- Calculer le coût réel des logiciels
- Estimer le coût global d'un projet, son échéancier et efforts
- Comprendre les coûts de maintenance
- Aider lors de la négociation de contrats
- Comprendre les métriques appropriées
Quand ne pas utiliser les points de fonction
- Maintenance (correction de problèmes)
- Problèmes de performance
Décompte des points de fonction
Méthodologie
Il faut avoir fait l’analyse fonctionnelle, qui consiste entre autre à dresser la liste des "points de fonction". Ensuite lorsque la liste des fonctionnalités est terminée nous pouvons débuter l'identification des points de fonction.
Qu'est-ce qu'un point de fonction?
Un point de fonction, c’est une fonctionnalité ou une entité que le logiciel rend disponible.
Un point de fonction, ce n’est pas nécessairement une "fonction" qui fait quelque chose. Un point de fonction peut aussi être le nom d’une table, un fichier, une source de données quelconque...
Quels sont les types de points de fonction?
Un logiciel est un ensemble de processus inter-reliés. Ils sont tous plus ou moins dépendent les uns des autres. Il existe 2 types de processus élémentaire dans un logiciel:
- Les données au repos (Data at rest).
- Les données en mouvement (Data in motion)
Un processus élémentaire est la plus petite activité qui soit significative pour l'usager. Il doit être indépendant, laisser l'application dans un état de cohérence fonctionnelle et appliquer une logique de traitement unique.

Comment évaluer les points de fonction?
- Déterminer le type de décompte de point de fonction (Development Project Function Point Count, Enhancement Project Function Point Count et Application Function Point Count)
- Déterminer les limites (frontières) de l'application (Boundary)
- Identifier et évaluez les types de fonction transactionnelle afin de déterminer leur contribution au décompte de point de fonction non-ajusté. (EI, EO et EQ)
- Identifier et évaluez les types de fonction des données afin de déterminer leur contribution au décompte de point de fonction non-ajusté. (ILF et EIF)
- Déterminer la valeur du facteur d'ajustement (value adjustment factor - VAF)
- Calculer le décompte de point de fonction ajusté FP
Étapes d'analyse des points de fonction des EI, EO et EQ
| Documentation de l'application | |
| Modèle de transactions | T1. Identifier les transactions T2. Type de transaction (EO, EI, EQ) T3. Nombre de DET et FTR |
| Modèle de données | T3. Nombre de DET et FTR |
| Règles de FPA | |
| Règles des transactions | T1. Identifier les transactions T2. Type de transaction (EO, EI, EQ) T3. Nombre de DET et FTR |
| Complexité des fonctions | T4. Déterminer basse/moyenne/élevée |
| Tables de poids | T5. Valeurs déterminées |
| T6. Faire la somme de toutes les transactions pour obtenir le UAF | |
Étapes d'analyse des points de fonction des ILF et EIF
| Documentation de l'application | |
| Modèle de transactions | T1. Identifier les fichiers T2. Type de fichier (ILF ou EIF) T3. Nombre de DET et RET |
| Modèle de données | T1. Identifier les fichiers T3. Nombre de DET et RET |
| Règles de FPA | |
| Règles des transactions | T1. Identifier les fichiers T2. Type de fichier (ILF ou EIF) T3. Nombre de DET et RET |
| Complexité des fonctions | T4. Déterminer basse/moyenne/élevée |
| Tables de poids | T5. Valeurs déterminées |
| T6. Faire la somme de tous les fichiers pour obtenir le UAF pour fichiers | |
Évaluation des RET, DET et FTR:
Tout les composantes sont évaluées selon leur DET et soit leur RET ou FTR.
| Composant | RET | FTR | DET |
| External Inputs (EI) | X | X | |
| External Outputs (EO) | X | X | |
| External Inquiries (EQ) | X | X | |
| External Interface Files (EIF) | X | X | |
| Internal Logical Files (ILF) | X | X |