ift3902 : (gestion de projet pour le) développement, …pift3902/automne%202004/... · université...
TRANSCRIPT
Yann-Gaël Guéhéneuc
© Yann-Gaël Guéhéneuc 2004
Département d’informatique et de recherche opérationnelle
Université de Montréal
IFT3902 :(Gestion de projet pour le)
développement, (et la)maintenance des logiciels
Professeur [email protected], local 2345
(Cours inspiré du cours du Pr. François Lustman)
2/43
Les métriques
1. Introduction2. Métriques de produit3. Métriques de processus4. Métrique de qualité5. Conclusion
3/43
1. Introduction (1/5)
n Une application définit une métrique (ou une distance) sur X, ssi–––
+ℜ→2: Xd
),(),( , xydyxdXyx =∈∀yxyxdXyx =⇔=∈∀ 0),( ,
),(),(),( ,, zydyxdzxdXzyx +≤∈∀
4/43
1. Introduction (2/5)
nMétriques en génie logiciel« Lorsque vous pouvez mesurer ce dont vous parlez et l’exprimer en nombres, vous savez quelque chose à son sujet ; mais lorsque vous ne pouvez l’exprimer en nombres, votre connaissance est maigre et peu satisfaisante : c’est peut-être le début de la connaissance mais dans vos pensées, vous avez à peine progressé jusqu’au stade de la science. »
Lord Kelvin (traduction approximative)
5/43
1. Introduction (3/5)
nMétriques en génie logiciel– Formulation– Collection– Analyse
« C’est une erreur de proposer une mesure sans consensus sur la caractéristique mesurée »
Norman Fenton (traduction approximative)
6/43
1. Introduction (4/5)
nMétriques en génie logiciel– Privées– Publiques
n Éthique !
7/43
1. Introduction (5/5)
nMétriques en génie logiciel– Métriques directes / métriques indirectes
• Métrique directe – Résultat direct de l’observation– Exemple : KLOC
• Métrique indirecte– Résultat d’une transformation des résultats de l’observation– Exemple : complexité cyclomatique
8/43
Les métriques
1. Introduction2. Métriques de produit3. Métriques de processus4. Métrique de qualité5. Conclusion
9/43
2. Métriques de produit (1/4)
n Exemples– Nombre de lignes de code
final Entity targetEntity = relationship.getTargetActor();final String targetEntityName = targetEntity.getName();
if (!(targetEntity instanceof Ghost)|| (this.visibleElements & VisibilityElement.GHOST_ENTITIES_DISPLAY)== VisibilityElement.GHOST_ENTITIES_DISPLAY) {
final StringBuffer relationshipNames;if (relationships.containsKey(targetEntityName)) {
relationshipNames =(StringBuffer) relationships.get(targetEntityName);
}else {
relationshipNames = newStringBuffer();relationships.put(targetEntityName, relationshipNames);
10/43
2. Métriques de produit (2/4)
n Exemples– Complexité cyclomatique (McCabe)
• Mesure du nombre de chemins indépendants dans un algorithme. Mesure de la complexité de l’algorithme par rapport au nombre de chemin pour traverser cet algorithme
11/43
2. Métriques de produit (3/4)
n Exemples– Complexité cyclomatique
• V(G) = (# Liens) - (# Nœuds) + 1
12/43
2. Métriques de produit (4/4)
n Plus au chapitre 5.5. Contrôle du produit : métriques
n Plus dans le cours IFT3903…
13/43
Les métriques
1. Introduction2. Métriques de produit3. Métriques de processus4. Métrique de qualité5. Conclusion
14/43
3. Métriques de processus (1/17)
nMétriques de maturité– Structure interne
• Caractéristiques des équipes• Caractéristiques de la hiérarchie• Niveau de coopération
– Questionnaires– Voir par exemple les entreprises Decision Point, Inc.,
Workforce Metrics…
15/43
3. Métriques de processus (2/17)
nMétriques de maturité– Gestion
• Niveau du projet• Qualité et configuration de la gestion
– Questionnaires– Voir par exemple S. J. Leadabrand and W.E. Burns ;
Assessment Metrics for Use with the Capability MaturityModel: Are We Improving? ; CrossTalk, February 1994
16/43
3. Métriques de processus (3/17)
nMétriques de maturité– Personnels
• Expérience– Certification
• Efficacité– Questionnaires
• Flexibilité– Questionnaires
• Mises à niveau– Nombre de cours– Augmentation de la qualité
17/43
3. Métriques de processus (4/17)
nMétriques de maturité– Technologie
• Disposition des ressources informatiques• Niveau de technologie• Niveau de remplacement des technologies
– Questionnaires
18/43
3. Métriques de processus (5/17)
nMétriques de maturité– Documentation
• Application des standards• Nombre de standards utilisés
– Questionnaires
19/43
3. Métriques de processus (6/17)
nMétriques de maturité– Processus
• Productivité• Efficacité• Qualité• Traçabilité
– Mean time to defect : moyenne du temps entre la découverte d’un problème et du suivant pendant le développement
– Métriques actuelles / planifiées
20/43
3. Métriques de processus (7/17)
nMétriques de gestion– Projet
• Jalons– Nombre de jalons– Nombre de besoins remplis par jalons– Niveau de contrôle des métriques
• Risques– « Photos » avant / après– Modèles
21/43
3. Métriques de processus (8/17)
nMétriques de gestion– Qualité
• Satisfaction des clients– Caractéristiques de taille– Caractéristiques de structure– Évaluation empirique
22/43
3. Métriques de processus (9/17)
nMétriques de gestion– Qualité
• Revue– Nombre de revues– Dépendances entre revues– Niveau de revues
23/43
3. Métriques de processus (10/17)
nMétriques de gestion– Qualité
• Productivité– Performance– Productivité / qualité
• Efficacité– Temps– Ressources
24/43
3. Métriques de processus (11/17)
nMétriques de gestion– Qualité
• Assurance de la qualité– Évaluation de la qualité– Prévention des erreurs– Niveau de mesure– Analyse des données
– Normes ISO 9000-3
25/43
3. Métriques de processus (12/17)
nMétriques de gestion– Configuration
• Changements– Tailles– Dépendances– Intervalles– Révision
• Versions– Nombre de versions– Nombre de versions par clients– Différences entre versions
26/43
3. Métriques de processus (13/17)
nMétriques du cycle de vie– Définitions des problèmes
• Types des problèmes• Standards pour la définition• Niveau d’utilisation d’outils• Stabilité
27/43
3. Métriques de processus (14/17)
nMétriques du cycle de vie– Besoins et spécifications
• Niveau du flot depuis la définition des problèmes• Moyenne de la participation• Méthode de développement• Niveau des estimations• Intégration• Cas d’utilisation
28/43
3. Métriques de processus (15/17)
nMétriques du cycle de vie– Conception
• Niveau d’automatisation• Utilisation de bibliothèques• Niveau de réutilisation
29/43
3. Métriques de processus (16/17)
nMétriques du cycle de vie– Implantation
• Niveau d’automatisation• Moyenne de la qualité du code• Niveau de couverture de tests• Performances• Distribution
30/43
3. Métriques de processus (17/17)
nMétriques du cycle de vie– Maintenance
• Gestion des erreurs• Changeabilité• Extensibilité• Modifications légères• Fiabilité• Contrôle des configurations
31/43
Les métriques
1. Introduction2. Métriques de produit3. Métriques de processus4. Métrique de qualité5. Conclusion
32/43
4. Métriques de qualité (1/10)
n Conformité– Mesure des erreurs
• Date de détection• Date de correction• Criticité• Nombre de tests• Origine• Code affecté par la correction
33/43
4. Métriques de qualité (2/10)
n Efficacité– Questionnaires
• Voir par exemple Kevin McIsaac ; Metrics, Assessment Process ; ZDnet on-line, October 2002
– Analyses / évaluation comparatives (benchmarking)
34/43
4. Métriques de qualité (3/10)
n Fiabilité– Probabilité qu’un programme s’exécute sans
défaillances dans un environnement donnépour une période de temps donnée (Fenton)
– Temps moyen pour un défaut (MTTF), de réparation (MTTR), entre défauts (MTBF = MTTF + MTTR)• Disponibilité : MTTF / MTBF × 100
35/43
4. Métriques de qualité (4/10)
nMaintenabilité– Modèle de Coleman-Oman
• MI < 65 : maintenabilité faible• 65 ≤ MI < 85 : maintenabilité bonne• 85 ≤ MI : maintenabilité excellente
aveV : volume de Halstead moyenaveV(g’) : complexité cyclomatique moyenneaveLOC : nombre moyen de lignes de codeperCM : pourcentage de lignes de commentaires
perCMaveLOC
gaveVaveVMI
××+×−
×−×−=
46.2sin50)ln(2.16
)'(23.0)ln(2.5171
36/43
4. Métriques de qualité (5/10)
n Intégrité– Vérification par le BIOS de l’authentification de
l’utilisateur– Nombre d’attaques– Accès à la(aux) base(s) de données
• Nombre de clés étrangères• Profondeur de l’arbre de références• Nombre d’algorithmes de prévention de la corruption
37/43
4. Métriques de qualité (6/10)
n Testabilité– Unitaire
• Pourcentage de classes avec des dépendances codées explicitement
• Pourcentage de classes avec des dépendances implicites (utilisation de Class.forName())
– Intégration• T. B. Nguyen, M. Delaunay, C. Robach ; Testability
Analysis For Software Components ; ICSM, October 2002
38/43
4. Métriques de qualité (7/10)
n Utilisabilité– Questionnaires
• Pourcentage de la tâche complétée• Ratio succès / échecs• Charge de travail• Nombre de commandes utilisées• Temps d’apprentissage• Nombre de fois que l’usage exprime sa frustration ou
sa colère
39/43
4. Métriques de qualité (8/10)
n Inter-opérabilité– Échangeabilité des données
• Nombre d’interfaces de conversion des données implantées / nombre d’interfaces de conversion spécifiées (nécessaires)
– Cohérence des interfaces• Nombre de protocoles implémentant des formats
cohérents / nombre de protocoles spécifiés (nécessaires)
40/43
4. Métriques de qualité (9/10)
n Portabilité– Nombre de composants liés à la portabilité
implantés / nombre de composants liés à la portabilité identifiés (nécessaires)
41/43
4. Métriques de qualité (10/10)
n Réutilisabilité– Moins d’appels par lignes de code– Moins de paramètres d’entrées/sorties– Plus de commentaire par lignes de code– Plus d’appels à des fonctions « utilitaires » par
ligne de code
42/43
Les métriques
1. Introduction2. Métriques de produit3. Métrique de qualité4. Métriques de processus5. Conclusion
43/43
4. Conclusion
n Une science à part entière
n Un sujet de recherche prometteur
n Attention aux aspects humains