Chapitre 5 : Point Fonction & métriques de Bang (De Marco)
Les métriques logicielles visent à mesurer, estimer et comparer des systèmes. Ici deux approches opposées :
le Point Fonction (FPA) — métrique de taille fonctionnelle ⇒ capacité fonctionnelle ;
les métriques de Bang (De Marco) — complexité structurelle du code ⇒ rendement.
Critère |
Point Fonction |
Métriques de Bang |
|---|---|---|
Dépend du code |
Non |
Oui |
Dépend du langage |
Non |
Oui |
Mesure la complexité technique |
Non |
Oui |
Tient compte des spécifications (cahier des charges, fiche technique) |
Oui |
Non |
Mesure la taille fonctionnelle |
Oui |
Non |
Point de vue |
Utilisateur |
Technique / développeur |
Note
Chapitre présenté en exposé.
Le Point Fonction (Function Point Analysis)
Le Point Fonction (PF) mesure la taille fonctionnelle d’un logiciel — ce que le système fait pour l’utilisateur, indépendamment de la solution technique. Il est donc :
indépendant du langage ;
indépendant de l’architecture ;
indépendant du nombre de lignes de code ;
basé uniquement sur les spécifications fonctionnelles.
Note
Deux implémentations techniques différentes d’un même besoin utilisateur ont le même nombre de points fonction.
Le calcul repose sur cinq types de fonctions.
Fonctions transactionnelles
Type |
Nom |
Description |
|---|---|---|
EI |
External Input |
Entrée de données modifiant un état interne |
EO |
External Output |
Sortie avec traitement ou calcul |
EQ |
External Inquiry |
Requête simple sans mise à jour |
Fonctions de données
Type |
Nom |
Description |
|---|---|---|
ILF |
Internal Logical File |
Données internes maintenues par le système |
EIF |
External Interface File |
Données externes référencées |
Pondérations standard (IFPUG)
Type |
Faible |
Moyen |
Élevé |
|---|---|---|---|
EI |
3 |
4 |
6 |
EO |
4 |
5 |
7 |
EQ |
3 |
4 |
6 |
ILF |
7 |
10 |
15 |
EIF |
5 |
7 |
10 |
Classification : DET, FTR, RET
Notion |
Définition |
Exemple |
Contre-exemple |
|---|---|---|---|
DET (Data Element Type) |
Champ élémentaire reconnu par l’utilisateur, non dérivé automatiquement |
nom, prénom, date, statut, montant, code |
index, clés étrangères, champs calculés/techniques invisibles |
FTR (File Type Reference) |
un ILF ou EIF lu/modifié par une fonction transactionnelle |
fichiers de config, logs d’erreurs |
|
RET (Record Element Type) |
un sous-ensemble logique reconnu par l’utilisateur |
Facture (ligne de facture), commande (ligne de commande) |
client (client de base, adresse) |
Classification des EI
EI |
FTR = 0–1 |
FTR = 2 |
FTR ≥ 3 |
|---|---|---|---|
DET 1–4 |
Faible |
Faible |
Moyen |
DET 5–15 |
Faible |
Moyen |
Élevé |
DET ≥ 16 |
Moyen |
Élevé |
Élevé |
Classification des ILF
ILF |
1–19 DET |
20–50 DET |
≥ 51 DET |
|---|---|---|---|
1 RET |
Faible |
Faible |
Moyen |
2–5 RET |
Faible |
Moyen |
Élevé |
≥ 6 RET |
Moyen |
Élevé |
Élevé |
Exemple — ILF Commande
RET : Commande (numéro, date, client, total, adresse) + Ligne de commande (produit, quantité, prix, TVA, total) → 2 RET ; 12 DET ⇒ complexité faible ⇒ contribution 7 PF.
Calcul du nombre de points fonction
Nombre de fonctions non ajusté (UFC) :
Facteur de complexité technique (TFC), basé sur 14 caractéristiques générales notées de 0 à 5 :
Point Fonction final :
Les métriques de Bang (De Marco)
Ensemble de mesures basées sur la théorie des graphes, du point de vue technique (code) :
mesurent la complexité structurelle et la connectivité d’un programme ;
permettent d’identifier les zones à risque ;
deux catégories : métriques de complexité (lignes de code, variables, fonctions…) et métriques de connectivité (chemins, cycles…).
exemples : Cyclomatic Complexity (CC), Number of Lines of Code (LOC), Number of Modules (NM).
Exercice
Soit le document de spécification détaillé du logiciel Silogic :
Calculez le Point Fonction : (a) le facteur de complexité technique (TFC) ; (b) le nombre de fonctions non ajusté (UFC).
Calculez les métriques de Bang (fonctions, données) de ce système.